Turn D6 into a scope-boundary row so learners see what is excluded - #15
Merged
Conversation
D6 asked "anything explicitly unwanted?" and failed three ways: - Its Options column held a single entry, "Add exclusions freely." AskUserQuestion requires 2-4 options, so the row could not be asked through the mechanism §0 step 1 requires. - Its Default was a pointer, `Nothing beyond §1 "Not Included"`. The gate presents rows one at a time, so the learner was asked about exclusions without ever being shown them. - The subtractive framing is near-empty in standalone-takeaway mode: the deliverable is fixed and pinned by 20 acceptance criteria, and every meaningful subtraction is already an Options pick at D7-D15. The row now discloses rather than invites: the question carries the §1 list, and a second option lets the learner name anything they want back instead of the spec guessing for them. Each excluded item gets a handling rule — restore, buildable-but-unsupported, defer to D14, or unavailable in this build mode — so the agent's response is determinate. One table row changed. §1 and the §0 gate are untouched, and every existing D<n> cross-reference stays valid. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Jul 28, 2026
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.
The problem
At the §0 pre-build gate the learner is asked one question per Ledger row. D6 asked "anything explicitly unwanted?" — and never showed them what was already excluded. Three concrete failures:
Add exclusions freely.AskUserQuestionrequires 2–4 options, so the row can't be presented through the mechanism §0 step 1 mandates. It's the only row in the Ledger with a single option.Nothing beyond §1 "Not Included"is a pointer. The gate presents rows one at a time, so the learner answers a question about exclusions with the exclusions themselves 20 lines away in a section they aren't shown.The change
One table row. D6 becomes a scope boundary: the question carries the §1 list so the learner is choosing against something they can see, and a second option lets them name anything they want back — the spec doesn't guess which.
Each excluded item gets a handling rule so the agent's response is determinate rather than improvised:
A genuine additional exclusion still reaches the agent through the question tool's automatic "Other", and must name the ACs it retires.
Scope
Deliberately minimal — the lowest-risk option of the three considered:
Verified: one line changed, D6 still has the same eight columns as D5 and D7, no Ledger rows added or renumbered, every existing
D<n>cross-reference still valid.Companion PRs: the same row in
spec.coding-agent-lab.md, and the generation guide so future specs are born with it.🤖 Generated with Claude Code