fix(skills): architecture contradicted itself on stories, so no build passed - #542
fix(skills): architecture contradicted itself on stories, so no build passed#542axewilledge wants to merge 1 commit into
stories, so no build passed#542Conversation
…ld passed
Every project failed the build gate after the design phase with
`UNCOVERED_STORY: story N is in the PRD but no component's design.json lists it
in "stories"` — for every story, deterministically.
`architecture` says both things:
- the **stories** enrichment field (line 32): "the PRD story numbers this
component serves, as an integer array … Claim every story the component
actually serves."
- the **Recomputed and overwritten** bullet (line 145): "the component's
`stories` array — the platform restamps it from the design.cell citations, so
cite stories in the CELL, never here."
The second is stale, and it is the one that wins, because it is stated as a
platform fact ("anything you write there is discarded") — so the agent leaves
`stories` empty and the gate refuses every tag.
Three things say the first is the truth:
- `design_json.go`: "Stories is the agent-authored list of PRD stories this
component serves". Nothing recomputes it; `foldDesignJSON` copies it through.
- `build_gate.go`'s `componentStoryClaims` reads stories ONLY from
`components/<id>/design.json`. `CellFacts` has no story field at all, so
there is nothing in the cell for the platform to restamp FROM.
- `cell-design` already states the same: "The cell carries structure only …
recorded in that component's `design.json` `stories` list during enrichment
… never in the diagram."
The cell's `[stories:]` suffix was retired; no skill teaches it any more. This
bullet is what survived it.
Removed `stories` from the recomputed class and pointed the reader at the field
that owns it. `wiring` stays — that one really is restamped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review. 📝 WalkthroughSummary
WalkthroughThe architecture guidance now states that dependency Suggested reviewers: Merge Risk: ⚪ Minimal · up to This localized documentation correction removes a contradictory instruction about authoring component story coverage; no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Closing — folding this into #470 at the author's request so it can be tried out in one place. The fix is carried there as commit 3c7d959, plus a follow-up (5425195) for the deeper cause found afterwards: the canonical design.json template in the same skill omitted both |
Symptom
Every project fails the build gate after the design phase, deterministically:
Cause:
architecturecontradicts itselfIt states both:
storiesarray — the platform restamps it from the design.cell citations, so cite stories in the CELL, never here."The second is stale, and it's the one that wins, because it's framed as a platform fact — "anything you write there is discarded". An agent that believes the field is overwritten has no reason to fill it, so
storiesstays empty and the gate refuses every tag.Three independent confirmations that the field is agent-authored
services/aep-api/internal/spec/design_json.go—// Stories is the agent-authored list of PRD stories this component serves. Nothing recomputes it; the fold copies it straight through.services/aep-api/internal/spec/build_gate.go—componentStoryClaimsreads stories only fromcomponents/<id>/design.json, andCellFactshas no story field at all. There is nothing in the cell for the platform to restamp from.skills/cell-design/SKILL.mdalready agrees: "The cell carries structure only. Which PRD stories a component serves is recorded in that component'sdesign.jsonstorieslist during enrichment … never in the diagram."The cell's
[stories:]suffix was retired and no skill teaches it any more. This bullet is what survived it.Change
storiesremoved from the recomputed-and-overwritten class, with a pointer to the field that owns it.wiringstays — that one genuinely is restamped.One file, prose only, no code or contract change.
Verification
Found while debugging a report of "spec validation failed after the design phase" on a local stack — the failure reproduced on every project. I have not yet driven a full design→build cycle against the corrected skill (that needs a coding-agent run); the case for the change rests on the three code/skill facts above, each of which is checkable without a run. Worth a reviewer confirming that reading before merge.
🤖 Generated with Claude Code