Traceability matrix

Every requirement in requirements/index.md, joined to the commits that carry its Requirement: trailer on HEAD, joined to the merged pull requests those commits arrived in. Computed, never authored — nothing on this page is hand-maintained.

14
requirements
12
traced
0
on main, no PR
2
untraced
204
commits scanned
REQStatusRequirement Commits (trailer)Merged PRs
REQ-001 traced All agent coordination happens through the tracker; every agent action produces a durable, visible artifact. No hidden context, no side channels.
§1 P1–P2
  • c1b6351 fix(qa-verdict): return a rejected in-review story to status
    devops · claude-code/2.1
  • b8b3c10 fix(labels): trigger terminal-label tests on pull_request
    devops · claude-code/2.0
  • ec45357 feat(labels): strip stale status:* labels when an issue clos
    devops · claude-code/2.0
  • c0ae022 feat(sync): add missing open issues to the project board
    developer · claude-code/2.1.258
  • 1eec1ea fix(dispatch): a diagnostic crash must not take down session
    developer · claude-code/2.1.220
  • df33c4c fix(dispatch): judge a session on what it shipped, not its e
    developer · claude-code/2.1.220
  • +1 more
  • #86 fix(qa-verdict): return a rejected in-review story
  • #44 P0-16: strip stale status:* labels when an issue c
  • #37 P0-11: add missing open issues to the project boar
  • #34 BUG: a crash in the spend diagnostics took down se
  • #26 P0-13: A session is judged on what it shipped, not
  • #19 P0-9: Generated tracker surfaces — project board s
REQ-002 traced Roles are harness-neutral packs (skills, tools, policy, templates) with distinct signed bot identities; attribution is cryptographic.
§3
  • 3aff6ae fix: adding two roles broke the dashboards build and made th
    devops · claude-code
  • a6c5a99 chore(throughput): raise WIP to 6, own ceremonies/, settle R
    delivery-lead · claude-code
  • 98a528b fix(devops): require a GitHub closing keyword in dod-check's
    developer · claude-code/2.1.258
  • 42604d5 fix(assign): eligibility reads each role's own dispatchable_
    developer · claude-code/2.1.258
  • 313171f fix(routing): make delivery-lead dispatchable, and check the
    devops · claude-code/2.1.220
  • d9f1d4f fix(dispatch): make dispatchable_from a per-role pack declar
    devops · claude-code/2.1.258
  • +14 more
  • #248 fix: adding two roles broke the dashboards build a
  • #125 chore(throughput): raise WIP to 6, own ceremonies/
  • #94 fix(devops): dod-check requires a closing keyword,
  • #81 fix(assign): eligibility reads each role's own dis
  • #77 BUG: delivery-lead is routable by the loop but not
  • #74 fix(dispatch): make dispatchable_from a per-role p
  • #72 P1-9: Delivery Lead role pack — governance gets an
  • #63 BUG: two role packs shipped unroutable, and the de
  • #56 P1-5: Tech Writer role pack v0
  • #55 P1-4: Architect role pack v0
  • #43 P0-17: Per-role dispatch credentials — least privi
  • #41 P1-1: Product Manager role pack v0
  • #36 BUG: settings defaultMode is ignored; permission m
  • #32 BUG: the compiled allowlist cannot express a shell
  • #30 P0-15: Dispatcher grants the permissions it compil
  • #17 P0-8: Orchestrator pack v0 — assignment loop
  • #12 P0-3: Developer role pack v0
  • #11 P0-2: Dispatcher v0 — work item → headless agent s
REQ-003 traced Harness adapter: Claude Code, Codex, DeepSeek (et al.) interchangeable behind one dispatch contract; single-harness mode fully functional.
§11.2
  • 9651194 feat(dispatch): work item -> headless agent session (v0)
    developer · claude-code/2.1.220
  • #11 P0-2: Dispatcher v0 — work item → headless agent s
REQ-004 traced Tracker adapter: GitHub Projects ↔ Jira swappable via canonical work-item schema; git remains code-side source of truth either way.
§11.1
  • 6368875 chore(products): register foundry-trial (Shashank2577/foundr
    human · foundry-init
  • fd606f9 feat(products): register ai-sdlc-pilot, the first product th
    devops · claude-code
  • 3791713 feat(tracker): generated project board sync + wiki publish
    developer · claude-code/2.1.220
  • #334 chore(products): register foundry-trial
  • #243 feat(products): register ai-sdlc-pilot, the first
  • #19 P0-9: Generated tracker surfaces — project board s
REQ-005 traced Git-native traceability spine: signed commits, commit trailers (Work-Item, Requirement, Agent-Role, Harness), git notes for metadata, CODEOWNERS routi
§4
  • 4c0f469 fix(dod-check): fold wrapped list items before matching them
    devops · claude-code
  • 3055987 fix(dispatch): declare GITHUB_REPOSITORY so session end cann
    devops · claude-code
  • 6f6fd18 fix(dod-check): ignore checkbox-shaped text inside code fenc
    devops · claude-code
  • 0f447a3 ci(unit-tests): discover every python test, do not enumerate
    devops · claude-code
  • ea4a9a8 ci(dod): wire the DoD check's own tests, applying the sessio
    devops · claude-code/2.1.220
  • deca802 fix(policy): require a GitHub closing keyword in linked_work
    architect · claude-code/2.0
  • +5 more
  • #220 fix(dod-check): fold wrapped list items before mat
  • #201 fix(dispatch): declare GITHUB_REPOSITORY so sessio
  • #177 fix(dod-check): ignore checkbox-shaped text inside
  • #175 ci(unit-tests): discover every python test, do not
  • #94 fix(devops): dod-check requires a closing keyword,
  • #93 fix(policy): DoD linked_work_item requires a closi
  • #89 fix(dispatch): wire test-dispatch-session-end.sh i
  • #85 BUG: fail CI when a test file runs nowhere
  • #56 P1-5: Tech Writer role pack v0
  • #14 P0-5: Traceability matrix generator v0
  • #10 P0-1: DoD check — policy-as-code required status c
REQ-006 traced All five ceremonies (refinement, planning, standup, review/demo, retro) run autonomously on schedule and each terminates in artifacts. Standups are ev
§5
  • 08c99ea fix(requirements): REQ-006 must test ceremonies that run, no
    product-manager · claude-code
  • a6c5a99 chore(throughput): raise WIP to 6, own ceremonies/, settle R
    delivery-lead · claude-code
  • 83e4fe6 feat(retro): event-derived retro ceremony, one issue per win
    devops · claude-code/2.1
  • 65ccf28 feat(refinement): dispatch the PM when the ready queue empti
    devops · claude-code/2.1.258
  • 4bf175b chore(orchestrator): declare the refill floor and claim cere
    orchestrator · claude-code/2.1.220
  • 761a930 feat(role-packs): add Product Manager role pack v0
    developer · claude-code/2.1.258
  • +3 more
  • #147 fix(requirements): REQ-006 must test ceremonies th
  • #125 chore(throughput): raise WIP to 6, own ceremonies/
  • #57 feat(retro): event-derived retro ceremony, one iss
  • #48 P1-2: Refinement trigger — dispatch the PM when th
  • #47 P1-2 (prep): declare the refill floor and claim ce
  • #41 P1-1: Product Manager role pack v0
  • #17 P0-8: Orchestrator pack v0 — assignment loop
  • #15 P0-6: Standup digest v0 — event-derived, never sel
REQ-007 traced Human-in-the-loop = decision gates (approve / choose between costed options), never free-text supervision. Few gates, all visual, each with an SLA and
§7
  • 4c0f469 fix(dod-check): fold wrapped list items before matching them
    devops · claude-code
  • f435b14 fix(governance): narrow delivery-lead scope; gate on write c
    delivery-lead · claude-code
  • 8009aa9 fix(devops): replace GNU date -d in gate-sla.sh with portabl
    devops · claude-code/2.0
  • 9bc5dd5 fix(gate-sla): make the SLA tests self-contained, restore PR
    devops · claude-code/2.1
  • d04c52f feat(delivery-lead): add role pack — governance gets an owne
    developer · claude-code/2.1.258
  • 2b87d85 docs(gates): document the three approval gates and their SLA
    techwriter · claude-code/2.1.258
  • +8 more
  • #220 fix(dod-check): fold wrapped list items before mat
  • #102 fix(governance): narrow delivery-lead scope; gate
  • #90 fix(devops): replace GNU date -d in gate-sla.sh wi
  • #65 P1-7: Enforce the approval-gate SLA
  • #72 P1-9: Delivery Lead role pack — governance gets an
  • #66 P1-8: Document the approval gates and their SLA
  • #61 BUG: escalations ask for a decision without saying
  • #48 P1-2: Refinement trigger — dispatch the PM when th
  • #47 P1-2 (prep): declare the refill floor and claim ce
  • #46 P1-3: Approval gates as policy — critical work wai
  • #24 P0-12: Budgets measure cost; sessions report what
  • #21 P0-10: One GitHub credential + correct setup steps
REQ-008 untraced Client layer: transcript→PRD with provenance-linked REQs, versioned client sign-offs, change requests with impact analysis, Monte Carlo estimation wit
§6
    —
    —
REQ-009 traced QA holds a veto (`qa:rejected` blocks closure); Definition of Done is policy-as-code enforced as a required check; QA reports are published HTML artif
§8
  • ea4a9a8 ci(dod): wire the DoD check's own tests, applying the sessio
    devops · claude-code/2.1.220
  • c1b6351 fix(qa-verdict): return a rejected in-review story to status
    devops · claude-code/2.1
  • 42604d5 fix(assign): eligibility reads each role's own dispatchable_
    developer · claude-code/2.1.258
  • 2bc6432 fix(qa-verdict): re-check qa-gate on PRs when a verdict chan
    devops · claude-code/2.0
  • d9f1d4f fix(dispatch): make dispatchable_from a per-role pack declar
    devops · claude-code/2.1.258
  • 428f32c feat(qa): QA role pack v0 + binding verdict enforcement
    developer · claude-code/2.1.220
  • +1 more
  • #94 fix(devops): dod-check requires a closing keyword,
  • #86 fix(qa-verdict): return a rejected in-review story
  • #81 fix(assign): eligibility reads each role's own dis
  • #80 fix(qa-verdict): re-check qa-gate when a verdict c
  • #74 fix(dispatch): make dispatchable_from a per-role p
  • #13 P0-4: QA role pack v0 + verdict enforcement
  • #10 P0-1: DoD check — policy-as-code required status c
REQ-010 untraced Environment ladder preview→dev→staging→prod; production deploys sit behind a human gate (GitHub environment required reviewer); every release ships a
§9
    —
    —
REQ-011 traced Visibility layer: boards, generated dashboards (burndown, velocity, cost-per-story), computed traceability matrix (REQ→release, red/green). The progra
§10
  • 3aff6ae fix: adding two roles broke the dashboards build and made th
    devops · claude-code
  • e1c04b1 fix(dashboards): cancel superseded builds so the pages group
    devops · claude-code
  • 7fbcf55 chore(rename): point live defaults at ai-sdlc, keep historic
    developer · claude-code
  • 08c99ea fix(requirements): REQ-006 must test ceremonies that run, no
    product-manager · claude-code
  • cd6f3dc fix(dashboards): assert the invariant, not a snapshot of tod
    developer · claude-code
  • 2b87d85 docs(gates): document the three approval gates and their SLA
    techwriter · claude-code/2.1.258
  • +8 more
  • #248 fix: adding two roles broke the dashboards build a
  • #247 fix(dashboards): cancel superseded builds so the p
  • #204 chore(rename): point live defaults at ai-sdlc, kee
  • #147 fix(requirements): REQ-006 must test ceremonies th
  • #143 fix(dashboards): assert the invariant, not a snaps
  • #66 P1-8: Document the approval gates and their SLA
  • #44 P0-16: strip stale status:* labels when an issue c
  • #37 P0-11: add missing open issues to the project boar
  • #28 P0-14: Programme status page — traced vs actually
  • #19 P0-9: Generated tracker surfaces — project board s
  • #15 P0-6: Standup digest v0 — event-derived, never sel
  • #14 P0-5: Traceability matrix generator v0
REQ-012 traced Guardrails: least-privilege per role, per-work-item budgets (tokens/time/retries), escalation ladder (retry → alt approach → alt harness → human), not
§13
  • fd606f9 feat(products): register ai-sdlc-pilot, the first product th
    devops · claude-code
  • 159de2a fix(dispatch): move the control plane out of the workspace e
    devops · claude-code
  • 985ad4e fix(dispatch): the product checkout was deleting the control
    devops · claude-code
  • 0f447a3 ci(unit-tests): discover every python test, do not enumerate
    devops · claude-code
  • 5ff7db7 ci(dashboards): discover generator tests and pages instead o
    devops · claude-code
  • f435b14 fix(governance): narrow delivery-lead scope; gate on write c
    delivery-lead · claude-code
  • +19 more
  • #243 feat(products): register ai-sdlc-pilot, the first
  • #230 fix(dispatch): move the control plane out of the w
  • #229 fix(dispatch): the product checkout was deleting t
  • #175 ci(unit-tests): discover every python test, do not
  • #141 ci(dashboards): discover generator tests and pages
  • #102 fix(governance): narrow delivery-lead scope; gate
  • #88 fix(dispatch): session end moves a successful item
  • #74 fix(dispatch): make dispatchable_from a per-role p
  • #73 fix(dispatch): session-end rollback strips every s
  • #72 P1-9: Delivery Lead role pack — governance gets an
  • #71 BUG: the developer turn budget kills half of all r
  • #63 BUG: two role packs shipped unroutable, and the de
  • #46 P1-3: Approval gates as policy — critical work wai
  • #43 P0-17: Per-role dispatch credentials — least privi
  • #36 BUG: settings defaultMode is ignored; permission m
  • #34 BUG: a crash in the spend diagnostics took down se
  • #32 BUG: the compiled allowlist cannot express a shell
  • #30 P0-15: Dispatcher grants the permissions it compil
  • #26 P0-13: A session is judged on what it shipped, not
  • #24 P0-12: Budgets measure cost; sessions report what
  • #21 P0-10: One GitHub credential + correct setup steps
  • #16 P0-7: Budgets + escalation ladder v0
  • #12 P0-3: Developer role pack v0
REQ-013 traced Persistent engineering memory across ephemeral sessions (git notes + MCP — Seal); retro learnings promote into role packs via reviewed PRs.
§12
  • c98915e feat(memory): git notes store, recovered from an unpushable
    developer · claude-code
  • 83e4fe6 feat(retro): event-derived retro ceremony, one issue per win
    devops · claude-code/2.1
  • #136 feat(memory): git notes store, recovered from an u
  • #57 feat(retro): event-derived retro ceremony, one iss
REQ-014 traced Self-hosting: the system builds itself through itself. POC exit = one full sprint where every story improves the system, flows through the system, and
Self-hosting plan
  • fd606f9 feat(products): register ai-sdlc-pilot, the first product th
    devops · claude-code
  • 159de2a fix(dispatch): move the control plane out of the workspace e
    devops · claude-code
  • 985ad4e fix(dispatch): the product checkout was deleting the control
    devops · claude-code
  • 3055987 fix(dispatch): declare GITHUB_REPOSITORY so session end cann
    devops · claude-code
  • 0195f68 ci(dashboards): install PyYAML for the status generator
    developer · claude-code/2.1.220
  • 029c78e feat(dashboards): programme status — traced vs actually sati
    developer · claude-code/2.1.220
  • +1 more
  • #243 feat(products): register ai-sdlc-pilot, the first
  • #230 fix(dispatch): move the control plane out of the w
  • #229 fix(dispatch): the product checkout was deleting t
  • #201 fix(dispatch): declare GITHUB_REPOSITORY so sessio
  • #28 P0-14: Programme status page — traced vs actually