spec-builder
nothing is invented
blue = the human
purple = the model
green = deterministic / free
red = flagged
the AI
guesses what to build
→
hallucinated requirement
looks plausible
gets merged
gets estimated
gets built
discovered in UAT
raw input
an idea
meeting notes
a transcript
an existing PRD
legacy docs
a codebase
→
spec-builder
Elicit: infer STRUCTURE, ask for DECISIONS
AskUserQuestion - batches of at most 4
priorities
permission scope
NFR targets
volumes
security posture
output language
→
unanswered
AS-nn assumption
OI-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 roles
open issues so far
the human confirms or corrects
spec-builder
→
scripts/scaffold.py
--dry-run first
docs/specs/ - 14 files
README
01 overview
02 stakeholders
03 glossary
04 business flows
05 functional reqs
06 access control
07 non-functional
08 data model
09 integration
10 UI / UX
11 assumptions
12 feasibility
13 revisions
ADDED
KEPT
CONFLICT
Fill in order - each section depends on the last
README
01 overview
02 stakeholders
03 glossary
04 business flows
05 functional reqs
06 access control
07 non-functional
08 data model
09 integration
10 UI / UX
11 assumptions
12 feasibility
13 revisions
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 both
every screen in 10 names an FR
every role in 06 exists in 03
every entity in 06 exists in 08
no blank cells, all links resolve
Nothing is invented
every OI
every AS
every Partial / No
every NFR target proposed, not received
spec-builder
→
docs/specs/
the contract exists
→
harness-bootstrap