blue = the humanpurple = the modelgreen = deterministic / freered = flagged
the AIguesses what to build
→hallucinated requirement
looks plausiblegets mergedgets estimatedgets built
discovered in UAT
raw input
an ideameeting notesa transcriptan existing PRDlegacy docsa codebase
→spec-builder
Elicit: infer STRUCTURE, ask for DECISIONS
AskUserQuestion - batches of at most 4
prioritiespermission scopeNFR targetsvolumessecurity postureoutput language
→
unansweredAS-nn assumptionOI-nn open issue
Confirm the FR list FIRST
FR-01 submit requestMust
FR-02 approve requestMust
FR-03 export reportShould
FR-04 bulk importCould
the rolesopen issues so far
the human confirms or corrects
spec-builder→scripts/scaffold.py--dry-run firstdocs/specs/ - up to 15 files
■ always□ when selected
README01 overview02 stakeholders03 glossary04 business flows05 functional reqs06 access control07 non-functional08 data model09 integration10 UI / UX11 assumptions12 feasibility13 revisions14 design system
ADDEDKEPTCONFLICT
Fill in order - each section depends on the last
README01 overview02 stakeholders03 glossary04 business flows05 functional reqs06 access control07 non-functional08 data model09 integration10 UI / UX11 assumptions12 feasibility13 revisions14 design system
05observable FRs, anchored, BR-nn + a NEGATIVE case
07security NFRs, never "TBD" - an undecided value is an OI
12every FR gets Yes / Partial / No - Partial and No are the value
Traceability check - mechanical, not a judgement call
every FR from 05 appears in 12 - count bothevery screen in 10 names an FRevery role in 06 exists in 03every entity in 06 exists in 08no blank cells, all links resolve
Nothing is invented
every OIevery ASevery Partial / Noevery NFR target proposed, not received