jonnifyagile agents
jonnify / Agile Agent Workflow / A4 · Spec / A4.6 · Traceability

A4.6 · The spec layer

Correct by definition

Completion is not a claim a person makes — it is a closure a rule verifies. The traceability chain is the ledger that makes “done” checkable from the text alone.

Every deliverable is realized by a story; every story is accepted by a check and encodes an invariant; every requirement is satisfied; every invariant holds under test. Step the chain on the right over the Portal's real F6.1 ids; when every link resolves, the rung is correct by definition. Three dives: the chain, the closure, and a broken link.

Step the F6.1 chain · deliverable to proof

F6.1-D4 · deliverable the course controller F6.1-US2 · user story realized by Given/When/Then accepted by F6.1-INV1 encodes F6.1-R# · req built · governed by a requirement is proven by an invariant or an acceptance test every id is reachable from intent to proof
deliverable · F6.1-D4 (the course controller) is the start of the chain — a concrete artifact in f6.1.md. It is realized by at least one user story; step forward to walk the rest.

What traceability is

A roadmap ordered the work; a spec defined it; stories accepted it; invariants pinned it. A4.6 closes the chapter's argument: completion is a closure, not a claim. Traceability is the property that every artifact carries a stable id and every id is reachable from intent to proof — so “done” can be read from the text, not asserted by a person.

The chain runs straight down. A deliverable is realized by a user story; the story is accepted by its Given/When/Then and encodes an invariant; the deliverable is also built by an agent story governed by a requirement, which is proven by an invariant or an acceptance test. This is the same idea A1.05 — Correct by definition named; A4.6 makes it operational over the Portal's real F6.1 ids.

# specs.approach.md — the traceability chain (verbatim).
Deliverable (fN.M.md  · FN.M-D#)
   └─ realized by → User story (fN.M.stories.md · FN.M-US#)
        ├─ accepted by → Acceptance criteria (Given/When/Then on the story)
        └─ encodes     → Invariant (fN.M.md · FN.M-INV#)
   └─ built by   → Agent story (fN.M.llms.md · FN.M-AS#)
        └─ governed by → Requirement (fN.M.llms.md · FN.M-R#)
             └─ proven by → Invariant (FN.M-INV#)  or  an acceptance test

Traceability turns “done” into a property you can read: every id reachable from intent to proof, the completion rule a closure rather than an opinion.

The three dives

Each dive takes one part of the closure, in the arc walk → close → break: the chain that links every id, the completion rule that closes it, and the broken link that opens it again and names the gap. Read them in order — A4.6.1 starts.

Break a link, read the gap

A walking chain is not yet a guarantee — the guarantee is that a missing link is caught. Two closures make the chain checkable from the text: the stories file ends with a Coverage line (D#→US# · …) mapping every deliverable to its stories, and each story's INVEST line ends with encodes FN.M-INV#, so every invariant is reachable from a story. Break either and the rung is not done.

Below is F6.1's intact Coverage line. Drop the stories that cover a deliverable, or a story's encodes, and the readout reports not done and names the exact hole. Completion is a closure: one broken link is enough to open it.

F6.1 coverage · break a link

Coverage: D1→US1 · D2→US1,US3,US4 · D3→US2 · D4→US2,US3,US5 D5→US2 · D6→US1 · D7→US4,US5 F6.1-US2 encodes F6.1-INV1 · the master invariant reachable from a story CLOSED · done every deliverable maps to a story · every invariant is reachable
Intact chain · every deliverable D1–D7 maps to a story and every invariant is reachable from a story's encodes. The chain closes — correct by definition.
the principle

Completion closes by a rule, not a claim: every deliverable traces to a story, an acceptance check, and an invariant. No behavior is unpinned, and no gate is merely asserted.

on the Portal

F6.1's Coverage line maps D1…D7 to US1…US5 and each story names the invariant it encodes; the rung is done only when the chain closes — read it, do not assert it.

A closure is only as strong as its links: remove one and the rule reports not done and names the gap — which is why completion is verified, never asserted.

The first dive — A4.6.1 · The chain — walks every id from deliverable to proof over the real F6.1 triad. Then A4.6.2 closes the four clauses, and A4.6.3 breaks a link.

References

The sources behind traceability and the completion closure, and where it connects in the course.

Sources

Related in this course