| 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
|