Repository navigation
Spec 016 T016, T017: one description per answer, and renames that fail both sides - #706
Merged
Merged
Conversation
…l both sides one-description.spec refuses an interface, a class or an object type in the site or the pathway browser under a contract name, a name a reader re-exports the contract's type as, or one of the readers' own aliases (Search.Entry, SearchResult and the rest, written down and held to the code both ways, so an alias turned into an interface is still caught). Wrapped, mapped, parenthesised and array shapes count. tasks.md records a field renamed in each of the search family's moves failing the writer and every reader. The single icon's test checks its image's address, not its loading, which the replay cannot serve (#704's review). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces #705, with its review's findings fixed, and #704's review's note.
From #705's review:
Search.Entry,Search.Result,Search.Facet,Search.PathwayOfandSearch.Icon.*, and the site'sSearchResultandResultGroup. They're held in a written list that the spec checks against the code both ways, so turning an alias into an interface is still caught. I showed that onSearch.Entry: the alias list fails, and the interface is named.Readonly<{…}>and other wrapped object types, mapped types, parenthesised and array object types, and classes. Names of other types (Record,Pick, indexed access) are allowed, as aliases.From #704's review: the single icon's test now checks its image's address, not its loading. The replay doesn't serve the release's files to an
<img>, so the old check depended on the live host. The test passes on replay.Spec 016 User Story 1: the guarantee is shown, not assumed.
T016:
projects/contract/one-description.spec.tsrefuses an interface or an object type in the site's or the pathway browser's code (anywhere, namespaces included) under one of two kinds of name:SearchEntryis the contract'sSearchEntryView, for example.An alias of the contract's type is a name, not a description, and is allowed. A re-added
interface SearchEntryin the site's search model failed it, naming the file.T017:
tasks.mdrecords a field renamed in each of the search family's moves, failing the writer and every reader:count;exactType;numberOfMatches.The commands and the failing lines are listed there. The pathway browser reads
exactTypeonly in templates, which the site's production build checks.Test-only; nothing served changes. Lint and dead code are at their baselines, and preflight passes.
🤖 Generated with Claude Code