godpowers 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/README.md +14 -3
  3. package/RELEASE.md +43 -71
  4. package/SKILL.md +3 -3
  5. package/agents/god-architect.md +3 -0
  6. package/agents/god-executor.md +17 -0
  7. package/agents/god-greenfieldifier.md +10 -2
  8. package/agents/god-launch-strategist.md +3 -0
  9. package/agents/god-orchestrator.md +27 -1
  10. package/agents/god-planner.md +9 -1
  11. package/agents/god-pm.md +23 -1
  12. package/agents/god-quality-reviewer.md +8 -1
  13. package/agents/god-reconstructor.md +17 -0
  14. package/agents/god-roadmap-reconciler.md +7 -0
  15. package/agents/god-roadmap-updater.md +16 -1
  16. package/agents/god-roadmapper.md +18 -7
  17. package/agents/god-spec-reviewer.md +8 -0
  18. package/agents/god-storyteller.md +5 -0
  19. package/agents/god-updater.md +6 -0
  20. package/bin/install.js +1 -1
  21. package/hooks/session-start.sh +1 -0
  22. package/lib/README.md +16 -0
  23. package/lib/context-writer.js +17 -6
  24. package/lib/dashboard.js +20 -0
  25. package/lib/feature-awareness.js +6 -0
  26. package/lib/requirements.js +524 -0
  27. package/lib/reverse-sync.js +19 -1
  28. package/lib/route-quality-sync.js +1 -0
  29. package/lib/state.js +5 -0
  30. package/package.json +2 -2
  31. package/routing/god-progress.yaml +27 -0
  32. package/routing/recipes/whats-done.yaml +28 -0
  33. package/schema/state.v1.json +25 -0
  34. package/skills/god-doctor.md +2 -2
  35. package/skills/god-locate.md +1 -0
  36. package/skills/god-progress.md +105 -0
  37. package/skills/god-status.md +11 -0
  38. package/skills/god-version.md +2 -2
  39. package/templates/PRD.md +12 -4
  40. package/templates/PROGRESS.md +2 -0
  41. package/templates/REQUIREMENTS.md +45 -0
  42. package/templates/ROADMAP.md +23 -5
package/CHANGELOG.md CHANGED
@@ -7,6 +7,64 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.2.0] - 2026-05-30
11
+
12
+ ### Added
13
+ - Deliverable progress tracking, so a project run always communicates which
14
+ requirements are finished, which are in flight, and which are untouched:
15
+ - `/god-progress` reports requirement and roadmap-increment status (done / in
16
+ progress / not started, grouped by increment and priority) and refreshes a
17
+ human-readable `.godpowers/REQUIREMENTS.md` checklist the user can open or
18
+ share.
19
+ - Status is derived from disk by `lib/requirements.js` (PRD requirements +
20
+ ROADMAP increments + the linkage map + build state), so it cannot drift from
21
+ what is actually implemented.
22
+ - The Godpowers Dashboard (`/god-status`, `/god-next`, `/god-mode` closeout)
23
+ gains a `Deliverable progress` section, and `/god-mode` build steps report
24
+ requirement completion as it happens.
25
+ - PRD functional requirements now carry stable ids (`P-MUST-NN` /
26
+ `P-SHOULD-NN` / `P-COULD-NN`) and ROADMAP delivery increments carry
27
+ `M-slug` ids with a per-increment `Status` and the requirement ids they
28
+ deliver, so requirements map to increments and to implementing code.
29
+ - `reverse-sync` and `/god-sync` refresh the ledger and cache the summary in
30
+ `state.json.deliverables` whenever the linkage map changes.
31
+ - A `whats-done` intent recipe so phrases like "how far along are we" and
32
+ "what's done" route to `/god-progress`.
33
+ - A reconstructed self-ledger for Godpowers itself (`.godpowers/prd/PRD.md`,
34
+ `.godpowers/roadmap/ROADMAP.md`, `.godpowers/REQUIREMENTS.md`) via
35
+ `scripts/reconstruct-self-ledger.js`, so the project dogfoods its own
36
+ deliverable tracking.
37
+ - `deliverable-progress-tracking` registered in the feature-awareness set so
38
+ existing projects learn about `/god-progress` on the next refresh.
39
+
40
+ ### Changed
41
+ - Build agents thread requirement ids end to end: `god-planner` names the
42
+ requirement ids each slice delivers and `god-executor` stamps
43
+ `// Implements: P-...` annotations into code, which the reviewers now verify,
44
+ so the linkage map (and therefore the ledger) populates during real builds.
45
+ - Sibling agents that produce or consume the PRD and ROADMAP
46
+ (`god-reconstructor`, `god-roadmap-updater`, `god-roadmap-reconciler`,
47
+ `god-greenfieldifier`, and others) now preserve stable requirement and
48
+ increment ids and refresh the ledger.
49
+ - Reconciled documentation surface counts and version references to v2.2.0
50
+ (111 slash commands, 41 recipes) and added `/god-progress` and
51
+ `REQUIREMENTS.md` to command lists, artifact inventories, and the linkage doc.
52
+
53
+ ## [2.1.1] - 2026-05-30
54
+
55
+ ### Changed
56
+ - The context off-switch now empties the canonical `AGENTS.md` instead of
57
+ deleting it; auto-generated pointer files (`CLAUDE.md`, `.cursorrules`, etc.)
58
+ are still removed when only the Godpowers fence remains
59
+ (`lib/context-writer.js`).
60
+
61
+ ### Fixed
62
+ - Documentation: dropped unverifiable external impeccable rule/finding counts;
63
+ reconciled the project-mode taxonomy (A/B/C/E primary modes, with D as the
64
+ orthogonal multi-repo suite overlay) in `concepts.md` and `ROADMAP.md`;
65
+ documented all `lib/` modules in `lib/README.md`; and clarified how the
66
+ artifact-category counts relate in `greenfield-coverage.md`.
67
+
10
68
  ## [2.1.0] - 2026-05-30
11
69
 
12
70
  ### Security
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/aihxp/godpowers/actions/workflows/ci.yml/badge.svg)](https://github.com/aihxp/godpowers/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5
- [![Version](https://img.shields.io/badge/version-2.1.0-blue)](CHANGELOG.md)
5
+ [![Version](https://img.shields.io/badge/version-2.2.0-blue)](CHANGELOG.md)
6
6
  [![npm](https://img.shields.io/npm/v/godpowers.svg)](https://www.npmjs.com/package/godpowers)
7
7
 
8
8
  **Ship fast. Ship right. Ship everything. Ship accountably.**
@@ -21,7 +21,7 @@ Godpowers makes AI coding accountable: every serious run should leave disk
21
21
  state, artifacts, validation gates, host guarantees, and a next action. Code is
22
22
  only one output. The project memory and proof trail matter too.
23
23
 
24
- Version 2.1.0 keeps the proof loop executable. `npx godpowers quick-proof
24
+ Version 2.2.0 keeps the proof loop executable. `npx godpowers quick-proof
25
25
  --project=.` now renders a shipped fixture with real `.godpowers/state.json`,
26
26
  computed next action, missing-artifact visibility, and host guarantees. The
27
27
  2.0 line also ships a proof transcript, adoption canary harness, published npm
@@ -236,6 +236,7 @@ extension files, with parser coverage in `scripts/test-yaml-parser.js`.
236
236
  | `/god-launch` | Launch (gated on harden) | god-launch-strategist |
237
237
  | `/god-harden` | Adversarial security review | god-harden-auditor |
238
238
  | `/god-status` | Re-derive state from disk | (built-in) |
239
+ | `/god-progress` | Deliverable progress: requirements and increments done / in progress / left | (built-in) |
239
240
  | `/god-automation-status` | Show host automation provider support | (built-in) |
240
241
  | `/god-automation-setup` | Prepare opt-in automation setup | (built-in) |
241
242
  | `/god-dogfood` | Run messy-repo dogfood scenarios for release and autonomy readiness | (built-in) |
@@ -304,6 +305,15 @@ ends in a vague "done" state. The dashboard is backed by
304
305
  engine is available. Audit, hygiene, and remediation scores are reported as
305
306
  separate scores rather than being reused as workflow progress.
306
307
 
308
+ That dashboard reports **workflow progress** (which pipeline stage you are on).
309
+ For **deliverable progress** (how much of the actual product is built), run
310
+ `/god-progress`: it lists every PRD requirement as done, in progress, or not
311
+ started, groups them by roadmap increment, and writes a `.godpowers/REQUIREMENTS.md`
312
+ checklist you can open or share. Status is derived from the linkage map (code
313
+ that implements each requirement), so it can never drift from what is actually
314
+ on disk. The dashboard also surfaces a `Deliverable progress` line, and during a
315
+ `/god-mode` build each step reports how many requirements moved to done.
316
+
307
317
  Godpowers can also inspect automation support:
308
318
 
309
319
  ```bash
@@ -386,6 +396,7 @@ Skill updates: PROGRESS.md
386
396
 
387
397
  ```
388
398
  .godpowers/PROGRESS.md Cross-tier progress ledger
399
+ .godpowers/REQUIREMENTS.md Requirement checklist (done / in progress / not started)
389
400
  .godpowers/prd/PRD.md Product Requirements Document
390
401
  .godpowers/domain/GLOSSARY.md Domain vocabulary and resolved ambiguities
391
402
  .godpowers/arch/ARCH.md System Architecture
@@ -474,7 +485,7 @@ Pi. T3 Code inherits from the underlying agent (Codex / Claude / OpenCode).
474
485
  - [Getting Started](docs/getting-started.md)
475
486
  - [Quick Proof](docs/quick-proof.md)
476
487
  - [Concepts](docs/concepts.md)
477
- - [Command reference (all 110 skills + 40 agents)](docs/reference.md)
488
+ - [Command reference (all 111 skills + 40 agents)](docs/reference.md)
478
489
  - [Feature awareness](docs/feature-awareness.md)
479
490
  - [Adoption Canary](docs/adoption-canary.md)
480
491
  - [Repository documentation sync](docs/repo-doc-sync.md)
package/RELEASE.md CHANGED
@@ -1,83 +1,55 @@
1
- # Godpowers 2.1.0 Release
1
+ # Godpowers 2.2.0 Release
2
2
 
3
- Date: 2026-05-30
3
+ > Status: Ready for release
4
+ > Date: 2026-05-30
4
5
 
5
- Godpowers 2.1.0 is the security and drift hardening release. It keeps the 2.0
6
- proof, request-trace, and command surfaces stable while closing a
7
- command-injection vector, hardening runtime file handling and the installer,
8
- and reconciling documentation drift across the repository.
6
+ Godpowers 2.2.0 adds deliverable progress tracking on top of the 2.1.1
7
+ documentation and off-switch safety patch. It keeps the public slash-command
8
+ surface stable and backward compatible.
9
9
 
10
- ## What is stable
10
+ ## What's in this release
11
11
 
12
- - 110 slash commands
12
+ - 111 slash commands
13
13
  - 40 specialist agents
14
14
  - 13 executable workflows
15
- - 40 intent recipes
16
- - 15-runtime installer
17
- - Codex installs with generated `god-*.toml` agent metadata files
18
- - Markdown specialist agent contracts at `<runtime>/agents/god-*.md`
19
- - Shared runtime bundle at `<runtime>/godpowers-runtime`
20
- - Native Pillars project context through `AGENTS.md` and `agents/*.md`
21
- - `.godpowers/` workflow state and artifact layout
22
- - Dashboard action briefs for next-step compression
23
- - Dashboard host guarantees for full, degraded, and unknown runtime capability
24
- - `godpowers status --project .` and `godpowers next --project .`
25
- - `godpowers quick-proof --project .`
26
- - Planning-system migration for GSD, BMAD, and Superpowers
27
- - Repository documentation, repository surface, route quality, recipe coverage,
28
- and release surface sync checks
29
- - Messy-repo dogfood scenarios
30
- - Extension authoring scaffold helper
31
- - Mode D suite release dry-run planner
32
- - Release gate enforcement through `npm run release:check`
15
+ - 41 intent recipes
16
+
17
+ ## Highlights
18
+
19
+ - Deliverable progress tracking: the new `/god-progress` command and the
20
+ `.godpowers/REQUIREMENTS.md` ledger report which PRD requirements and roadmap
21
+ increments are done, in progress, or not started. Status is derived from the
22
+ linkage map by `lib/requirements.js`, so it cannot drift from the code that is
23
+ actually implemented.
24
+ - Stable requirement and increment ids: PRD requirements carry
25
+ `P-MUST-NN`/`P-SHOULD-NN`/`P-COULD-NN`, and ROADMAP increments carry `M-slug`
26
+ ids with a per-increment `Status` and member requirement ids.
27
+ - The build chain populates the ledger during real runs: `god-planner` names the
28
+ requirement ids each slice delivers, `god-executor` stamps `// Implements: P-...`
29
+ annotations, and the spec and quality reviewers verify them.
30
+ - The dashboard (`/god-status`, `/god-next`, `/god-mode` closeout) gains a
31
+ `Deliverable progress` section, and a `whats-done` recipe routes natural
32
+ language like "how far along are we" to `/god-progress`.
33
+ - Documentation reconciled with the shipped surface and version: accurate
34
+ counts and `/god-progress`/`REQUIREMENTS.md` awareness across README,
35
+ ARCHITECTURE, reference, linkage, recipes, and the artifact inventories.
33
36
 
34
- ## What is new
35
-
36
- - Closed a command-injection vector in `lib/agent-browser-driver.js`. CLI
37
- arguments now flow through an argv array with the shell disabled, so URLs,
38
- selectors, and eval expressions sourced from project content or CLI flags
39
- cannot be interpreted as shell syntax.
40
- - Guarded runtime JSON parsing of `state.json` and `events.jsonl` against
41
- corrupt or partially-written files, replacing uncaught crashes with clear
42
- errors or skipped torn lines.
43
- - Corrected the review registry path to `.godpowers/REVIEW-REQUIRED.md` so the
44
- dashboard and automation see review items and the off-switch no longer
45
- deletes a repo-root file.
46
- - Made data-directory and runtime-bundle installs a clean replace so version
47
- upgrades never leave behind files that no longer ship.
48
- - Narrowed `agent-cache` deletion scope, added extension-scaffold name
49
- validation, added prototype-pollution guards to the YAML/manifest parser and
50
- router, and limited installer symlink reproduction to the source tree.
51
- - Added a skill/agent prose reference validator wired into the agent-ref test
52
- gate, wired have-not `A-13` into the architecture gate, and softened brittle
53
- exact-count tests to floors.
54
- - Reconciled documentation drift across README, ARCHITECTURE, ARCHITECTURE-MAP,
55
- docs, references, and skills (counts, linkage paths, HAVE-NOTS tally, stale
56
- sample output).
57
-
58
- ## Guardrails
37
+ ## Validation
59
38
 
60
- - The public slash-command surface remains frozen.
61
- - The runtime remains dependency-free.
62
- - `bin/install.js` stays a thin CLI entry point and delegates install behavior
63
- to `lib/installer-core.js`.
64
- - Every `child_process` call site uses an argv array with the shell disabled.
65
- - `scripts/static-check.js` continues to verify async APIs, JSDoc typedefs,
66
- agent-ref test coverage, shared harness adoption, skill metadata source
67
- parsing, and God Mode runbook delegation.
39
+ - `npm test` green across the full suite
40
+ - `npm run lint` clean
41
+ - `npm run release:check` green (tests, audit, package contents)
68
42
 
69
- ## Validation
43
+ ## Upgrade
70
44
 
71
- Release validation includes:
45
+ - `npm install -g godpowers@2.2.0` or `npx godpowers@2.2.0`
46
+ - Re-run `/god-context` in each project to refresh installed runtime metadata
47
+ - No breaking changes; existing `.godpowers/` state is compatible. Projects gain
48
+ a `REQUIREMENTS.md` ledger the next time `/god-progress` or `/god-sync` runs.
72
49
 
73
- - `npm test`
74
- - `npm run test:audit`
75
- - `npm run pack:check`
76
- - `npm run release:check`
77
- - `npm pack --json`
78
- - local install smoke tests across supported runtime shapes
79
- - npm publish when registry credentials are available
80
- - GitHub release creation for `v2.1.0`
50
+ ## Notes
81
51
 
82
- The `v2.1.0` tag should point to the release commit that matches the npm
83
- `godpowers@2.1.0` package.
52
+ - GitHub release creation for `v2.2.0`
53
+ - The tag should match the npm package version
54
+ - The `v2.2.0` tag should point to the release commit that matches the npm
55
+ `godpowers@2.2.0` package.
package/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: godpowers
3
- version: 2.1.0
3
+ version: 2.2.0
4
4
  description: |
5
5
  AI-powered development system that takes a project from raw idea to hardened
6
6
  production. Fuses artifact discipline, execution engine, quality enforcement,
@@ -121,8 +121,8 @@ with a disk-derived closeout that tells the user the current state and what is
121
121
  next.
122
122
 
123
123
  Every closeout must include a **Godpowers Dashboard**. This dashboard is the
124
- same mental model across `/god-status`, `/god-next`, `/god-mode`, and every
125
- command that completes, pauses, or proposes work.
124
+ same mental model across `/god-status`, `/god-progress`, `/god-next`,
125
+ `/god-mode`, and every command that completes, pauses, or proposes work.
126
126
 
127
127
  When the runtime bundle is available, compute this with
128
128
  `lib/dashboard.compute(projectRoot)` and render it with
@@ -97,6 +97,9 @@ ADRs to `.godpowers/arch/adr/`.
97
97
  - Consequences (what this makes easier/harder)
98
98
 
99
99
  4. **NFR-to-Architecture Map** - every PRD NFR maps to an architectural choice.
100
+ Where a decision serves a specific PRD functional requirement, reference its
101
+ id (P-MUST-NN / P-SHOULD-NN / P-COULD-NN) so the rationale traces back to the
102
+ requirement it supports.
100
103
 
101
104
  5. **Trust Boundaries** - every external integration has a boundary. Auth/authz
102
105
  model documented. Data classification (sensitive vs public).
@@ -44,6 +44,22 @@ For every behavior in this slice:
44
44
  2. Run the full test suite
45
45
  3. All tests must still pass
46
46
 
47
+ ## Requirement traceability (load-bearing)
48
+
49
+ The slice plan lists the PRD requirement ids this slice delivers (its
50
+ `Requirements:` field). Stamp them into the code so the linkage map,
51
+ reverse-sync, and the deliverable ledger (`/god-progress`) can trace each
52
+ requirement to its implementation. Without this, the ledger shows the
53
+ requirement as "not started" even after you ship it.
54
+
55
+ - Put a `// Implements: P-MUST-01` annotation near the top of the primary
56
+ file(s) you create or modify for the slice. Use the file's comment syntax
57
+ (`#`, `/* */`, `<!-- -->`). Combine ids when one file serves several:
58
+ `// Implements: P-MUST-01, P-MUST-02`.
59
+ - Prefer naming at least one test with the id, e.g.
60
+ `describe('P-MUST-01: user can sign in', ...)`; the scanner reads these too.
61
+ - Use the exact ids from the slice plan. Do not invent ids.
62
+
47
63
  ## Rules (non-negotiable)
48
64
 
49
65
  - **Code before test**: VIOLATION. Delete the implementation. Write the test first.
@@ -102,6 +118,7 @@ happen.
102
118
  demanded by the slice
103
119
  - Drive-by formatting, renaming, refactoring, or dead-code deletion unrelated
104
120
  to the slice
121
+ - A requirement id from the slice plan is not annotated in the code (`// Implements: P-...`)
105
122
 
106
123
  ## Repair Mode
107
124
 
@@ -101,11 +101,15 @@ canonical artifact loses existing concrete evidence.
101
101
 
102
102
  When approved, update all affected artifacts, not just the first one:
103
103
 
104
- - PRD: product goals, requirements, metrics, no-gos, open questions.
104
+ - PRD: product goals, requirements, metrics, no-gos, open questions. Preserve or
105
+ assign stable requirement ids (P-MUST-NN / P-SHOULD-NN / P-COULD-NN); never
106
+ renumber or reuse a shipped id.
105
107
  - DESIGN: product experience, UI surface, accessibility, workflow, brand.
106
108
  - PRODUCT: screens, journeys, user promises, operational UX.
107
109
  - ARCH: components, trust boundaries, ADRs, NFR mappings.
108
- - ROADMAP: sequence, gates, dependencies, delivery increments.
110
+ - ROADMAP: sequence, gates, dependencies, delivery increments. Keep increment
111
+ ids (`M-<slug>`) stable and preserve each increment's `**Status**:` field and
112
+ `**Features (from PRD)**:` requirement-id list.
109
113
  - STACK: decisions, flip points, org constraints, incompatibilities.
110
114
  - REPO: repository shape, CI, tests, security docs, install docs.
111
115
  - BUILD: build state, test expectations, review gates.
@@ -118,6 +122,10 @@ When approved, update all affected artifacts, not just the first one:
118
122
 
119
123
  After approved rewrites:
120
124
 
125
+ - If the PRD or ROADMAP changed, refresh the deliverable ledger with
126
+ `lib/requirements.writeLedger(projectRoot)` so `.godpowers/REQUIREMENTS.md`
127
+ stays consistent with the rewritten ids and any `// Implements:` annotations
128
+ already in code.
121
129
  - Update `.godpowers/SYNC-LOG.md`.
122
130
  - Update `.godpowers/PROGRESS.md`.
123
131
  - Update `.godpowers/state.json` with:
@@ -19,6 +19,9 @@ Put the product in front of users.
19
19
  If Critical findings are unresolved, REFUSE to proceed and tell orchestrator
20
20
  to pause for human resolution.
21
21
 
22
+ Confirm all P-MUST requirements show done in `.godpowers/REQUIREMENTS.md` before
23
+ launch.
24
+
22
25
  ## Process
23
26
 
24
27
  ### 1. Landing Page Copy
@@ -609,6 +609,11 @@ LOOP for this slice:
609
609
  - If FAIL: return slice to god-executor with findings, GOTO step 1
610
610
  - If PASS: atomic commit
611
611
  5. Update .godpowers/build/STATE.md with slice completion
612
+ 6. Refresh deliverable progress: run
613
+ `lib/requirements.writeLedger(projectRoot)` to update
614
+ `.godpowers/REQUIREMENTS.md` from the new linkage, then read the new done
615
+ count so the slice's step-result card can print the requirement line
616
+ (`Requirements: <done>/<total> done (+<delta> this slice)`).
612
617
  END LOOP
613
618
  ```
614
619
 
@@ -622,6 +627,11 @@ After all waves complete:
622
627
  4. If any verification fails, run the autonomous repair loop. Do not mark
623
628
  Build done and do not recommend later work while verification is red.
624
629
  5. Update PROGRESS.md: Build = done
630
+ 6. Refresh `.godpowers/REQUIREMENTS.md` (`lib/requirements.writeLedger`) and
631
+ cache the summary into `state.json` `deliverables`
632
+ (`lib/requirements.summarizeForState`). Report final requirement coverage in
633
+ the Build step-result card, and flag any gaps (a done increment with no
634
+ linked code) as an open item rather than declaring the build clean.
625
635
 
626
636
  CRITICAL RULES (build phase):
627
637
  - Never skip god-spec-reviewer
@@ -711,6 +721,11 @@ Planning visibility:
711
721
  Current milestone: <roadmap milestone, tier, or next planning gate when known>
712
722
  Completion basis: <state.json, PROGRESS.md, artifacts, or audit score source>
713
723
 
724
+ Deliverable progress:
725
+ Requirements: <done>/<total> done (<pct>%); <in-progress> in progress, <untouched> not started
726
+ Increments: <done> done, <building> building, <pending> pending
727
+ Ledger: .godpowers/REQUIREMENTS.md
728
+
714
729
  What changed:
715
730
  1. <highest-signal user-visible change>
716
731
  2. <highest-signal user-visible change>
@@ -748,13 +763,14 @@ Project is now in steady state. From here, ongoing work uses these workflows:
748
763
  Periodic hygiene:
749
764
  Quality audit: /god-audit
750
765
  Health check: /god-hygiene (combines audit + deps + docs)
766
+ Deliverable status: /god-progress (requirements + increments done/left)
751
767
 
752
768
  Next:
753
769
  Recommended: <single safest command or decision>
754
770
  Why: <one sentence tied to disk state>
755
771
 
756
772
  Proposition:
757
- 1. Review status: /god-status
773
+ 1. Review status: /god-status (pipeline) or /god-progress (deliverables)
758
774
  2. Continue work: /god-next or describe the next intent
759
775
  3. Commit release-ready changes: stage only the intended files, then commit
760
776
  4. Run deployed staging: provide STAGING_APP_URL=<deployed staging origin> when needed
@@ -899,6 +915,10 @@ Show:
899
915
  - plain-language workflow names. Say "project run" or "workflow" instead of
900
916
  unexplained "arc" in visible output
901
917
  - PRD and roadmap visibility when those artifacts exist or are expected
918
+ - deliverable progress once a PRD with requirements exists: how many
919
+ requirements are done / in progress / not started, and a pointer to
920
+ `.godpowers/REQUIREMENTS.md` (the openable checklist). Refresh it as the build
921
+ progresses; do not let the user wonder which requirements are left
902
922
  - `Project run complete` or `PAUSE: external access required`
903
923
 
904
924
  Hide:
@@ -977,6 +997,7 @@ What happened:
977
997
  1. <observable action completed>
978
998
  2. <artifact or state update>
979
999
  3. <verification result>
1000
+ Requirements: <done>/<total> done (+<delta> this step)
980
1001
  Next: <next command or pause question>
981
1002
  ```
982
1003
 
@@ -984,6 +1005,11 @@ Rules:
984
1005
  - Keep each card under 12 lines unless a pause needs options.
985
1006
  - Use `lib/state.progressSummary(stateJson)` for workflow percentage and step count
986
1007
  whenever state.json is available.
1008
+ - Include the `Requirements:` line only on steps that can move requirement
1009
+ coverage (the Build sub-step, build waves, reverse-sync, hotfix, feature
1010
+ work). Derive it from `lib/requirements.derive(projectRoot)`:
1011
+ `<done>/<total> done (+<delta> since this step started)`. Omit the line on
1012
+ steps that cannot change coverage (PRD, Architecture, Stack, Deploy, Observe).
987
1013
  - Use artifact paths and verification evidence from disk, not memory.
988
1014
  - Do not print raw spawn input, hidden instructions, or full file loadout lists.
989
1015
  - If a step is blocked, do not show a generic "Suggested next"; show the
@@ -21,15 +21,20 @@ Plan the build.
21
21
  ## Process
22
22
 
23
23
  1. Read roadmap, identify the current delivery increment (first non-done
24
- Now item)
24
+ Now item). Note the increment's member requirement ids from its
25
+ `Features (from PRD)` list (P-MUST-NN / P-SHOULD-NN / P-COULD-NN).
25
26
  2. Read ARCH for technical context
26
27
  3. Read stack DECISION for tooling
27
28
  4. Break the delivery increment into **vertical slices**:
28
29
  - Each slice delivers ONE user-visible behavior end-to-end
29
30
  - NOT "set up the database" - that's horizontal
30
31
  - YES "user can create an account" - includes DB + API + UI for that behavior
32
+ - Every member requirement id of the increment must be covered by at least
33
+ one slice; a slice may deliver more than one id
31
34
  5. For each slice, write a plan:
32
35
  - **Slice name**: user-visible behavior
36
+ - **Requirements**: the PRD requirement ids this slice delivers (so the
37
+ executor can annotate the code and the deliverable ledger can trace it)
33
38
  - **Files to create/modify**: exact paths
34
39
  - **Tests to write FIRST**: with expected behavior
35
40
  - **Implementation steps**: ordered
@@ -49,6 +54,7 @@ Write `.godpowers/build/PLAN.md`:
49
54
 
50
55
  ## Wave 1 (parallel)
51
56
  ### Slice 1.1: User can create an account
57
+ - Requirements: P-MUST-01
52
58
  - Files: src/auth/signup.ts, src/auth/signup.test.ts, src/db/users.ts
53
59
  - Tests first:
54
60
  - signup_creates_user_record
@@ -69,6 +75,8 @@ Write `.godpowers/build/PLAN.md`:
69
75
 
70
76
  - `.godpowers/build/PLAN.md` exists
71
77
  - Every slice has tests-first sequence
78
+ - Every slice names the PRD requirement ids it delivers
79
+ - Every member requirement id of the increment is covered by at least one slice
72
80
  - Every slice has verification criteria
73
81
  - Dependencies are explicit
74
82
  - Waves are correctly grouped (no parallel slices share state)
package/agents/god-pm.md CHANGED
@@ -23,12 +23,33 @@ required sections:
23
23
  1. **Problem Statement** (substitution-tested)
24
24
  2. **Target Users** (specific personas, not "developers")
25
25
  3. **Success Metrics** (with numbers and timelines)
26
- 4. **Functional Requirements** (MUST/SHOULD/COULD with acceptance criteria)
26
+ 4. **Functional Requirements** (MUST/SHOULD/COULD with acceptance criteria; each
27
+ carries a stable id)
27
28
  5. **Non-Functional Requirements** (latency, availability, security, scale)
28
29
  6. **Scope and No-Gos** (explicit list of what is NOT being built)
29
30
  7. **Appetite** (time/resource/technical constraints)
30
31
  8. **Open Questions** (with owner and due date)
31
32
 
33
+ ## Stable requirement ids
34
+
35
+ Give every functional requirement a stable id, numbered sequentially within its
36
+ priority: `P-MUST-01`, `P-MUST-02`, `P-SHOULD-01`, `P-COULD-01`. Put the id at
37
+ the start of the bullet, before the label:
38
+
39
+ ```
40
+ - P-MUST-01 [DECISION] User can sign in with email and password -- Acceptance: valid credentials return a session token
41
+ ```
42
+
43
+ These ids are load-bearing downstream and you must not skip them:
44
+ - `god-roadmapper` groups them into delivery increments.
45
+ - Code and tests reference them (`// Implements: P-MUST-01`,
46
+ `describe('P-MUST-01: ...')`), which feeds the linkage map.
47
+ - `/god-progress` and the dashboard derive done / in-progress / not-started
48
+ status per requirement from those links.
49
+
50
+ Never renumber or reuse an id once it has shipped; add new ids at the end of the
51
+ priority instead.
52
+
32
53
  ## Imported Preparation Context
33
54
 
34
55
  Before drafting, compute the Pillars load set for the PRD task with
@@ -90,6 +111,7 @@ Tag sentences inline: `[DECISION]`, `[HYPOTHESIS]`, `[OPEN QUESTION]`
90
111
  - Success metric has no number
91
112
  - Success metric has no timeline
92
113
  - Requirement has no acceptance criteria
114
+ - Any functional requirement has no stable id (P-MUST-NN / P-SHOULD-NN / P-COULD-NN)
93
115
  - No-gos section is empty or absent
94
116
  - Open question has no owner
95
117
  - Open question has no due date
@@ -57,6 +57,12 @@ Your job: would you ship this code in production?
57
57
  - Any follow-up cleanup is reported separately instead of being smuggled into
58
58
  the diff
59
59
 
60
+ ### 7. Requirement Traceability
61
+ - Code that delivers a planned PRD requirement bears an accurate
62
+ `// Implements: P-...` annotation
63
+ - Flag missing or inaccurate annotations: the deliverable ledger derives
64
+ requirement status from them, so a gap here understates delivered work
65
+
60
66
  ## Output
61
67
 
62
68
  Return verdict to orchestrator:
@@ -71,6 +77,7 @@ Return verdict to orchestrator:
71
77
  - [PASS/FAIL] Performance: [evidence]
72
78
  - [PASS/FAIL] Maintainability: [evidence]
73
79
  - [PASS/FAIL] Simplicity and surgicality: [evidence]
80
+ - [PASS/FAIL] Requirement traceability: [evidence]
74
81
 
75
82
  ### Verdict: PASS / FAIL
76
83
 
@@ -79,7 +86,7 @@ Return verdict to orchestrator:
79
86
 
80
87
  ## Pass Criteria
81
88
 
82
- ALL six dimensions must PASS. Any FAIL blocks the commit.
89
+ ALL seven dimensions must PASS. Any FAIL blocks the commit.
83
90
 
84
91
  If FAIL: orchestrator returns the slice to god-executor.
85
92
  If PASS: orchestrator commits the slice atomically.
@@ -40,6 +40,10 @@ From the code, derive:
40
40
  - **Target users**: who uses this? (from auth, user types, customer-facing strings)
41
41
  - **Success metrics**: what does the code measure? (from observability, logs, metrics)
42
42
  - **Functional requirements**: what features exist? (from routes, public APIs, UI)
43
+ - Assign every functional requirement a stable id, numbered sequentially
44
+ within its priority (P-MUST-01, P-MUST-02, P-SHOULD-01, P-COULD-01), placed
45
+ at the start of the bullet. These ids are load-bearing for the deliverable
46
+ ledger and the linkage map.
43
47
  - **Non-functional requirements**: what NFRs are enforced? (from rate limits, caching, indexes)
44
48
  - **Scope and no-gos**: what's deliberately NOT in the code?
45
49
 
@@ -68,6 +72,10 @@ From git history + current state:
68
72
  - **Next**: TODOs at module level, unimplemented endpoints, stubs
69
73
  - **Later**: high-level themes from issue tracker if accessible
70
74
 
75
+ Give each delivery increment a stable `M-<slug>` id, a `**Status**:` field
76
+ (pending/building/done), and a `**Features (from PRD)**:` list of the
77
+ reconstructed requirement ids it delivers.
78
+
71
79
  Write to `.godpowers/roadmap/ROADMAP.md`. Mark Done section explicitly so we don't "rebuild" things that already exist.
72
80
 
73
81
  ### 4. Reconstruct STACK
@@ -80,6 +88,15 @@ From package.json/pyproject.toml/Cargo.toml/etc:
80
88
 
81
89
  Write to `.godpowers/stack/DECISION.md`.
82
90
 
91
+ ### 5. Regenerate the deliverable ledger
92
+
93
+ After the PRD and ROADMAP are written (both carry the new ids), regenerate the
94
+ deliverable ledger by calling `lib/requirements.writeLedger(projectRoot)` so
95
+ `.godpowers/REQUIREMENTS.md` reflects the reconstructed state. Requirement
96
+ status is derived from the linkage map (code that carries `// Implements: P-...`
97
+ annotations), so reconstructed requirements without linked code will show as
98
+ not started until that linkage exists.
99
+
83
100
  ## Outputs
84
101
 
85
102
  All four artifacts written to `.godpowers/<tier>/<artifact>.md` with:
@@ -26,6 +26,8 @@ Before doing feature work, ask: does this overlap with ROADMAP.md?
26
26
 
27
27
  Parse milestones from Now / Next / Later sections. Extract:
28
28
  - Each milestone's goal and features
29
+ - The increment's `**Status**:` field (pending/building/done)
30
+ - The member PRD requirement ids from its `**Features (from PRD)**:` list
29
31
  - Status (in-progress / planned / themed)
30
32
  - Dependencies between milestones
31
33
 
@@ -36,6 +38,11 @@ For each milestone, check if the user intent overlaps:
36
38
  - **Semantic match**: same user-facing behavior described differently?
37
39
  - **Requirement match**: does PRD.md already include this requirement?
38
40
 
41
+ Also weigh the increment's `**Status**:` and its member requirement ids: an
42
+ increment marked `done`, or one whose `**Features (from PRD)**:` ids already
43
+ cover the intent, signals already-done or already-committed work rather than
44
+ something new.
45
+
39
46
  ### 3. Classify
40
47
 
41
48
  Pick exactly one:
@@ -43,7 +43,16 @@ When a planned milestone is no longer needed:
43
43
  - Mark superseded with reason
44
44
  - Don't silently delete; preserve history
45
45
 
46
- ### 5. Re-validate
46
+ ### 5. Preserve increment ids and fields
47
+ When editing any increment, keep its structured fields intact:
48
+ - Keep the increment id (`M-<slug>`) stable; never renumber or reassign it.
49
+ - Preserve and update the `**Status**:` field (pending/building/done) to match
50
+ reality; do not drop it.
51
+ - Preserve and update the `**Features (from PRD)**:` requirement-id list; do not
52
+ drop it. Add ids when an increment gains a requirement; never silently remove
53
+ shipped ones.
54
+
55
+ ### 6. Re-validate
47
56
 
48
57
  After any update, re-check roadmap have-nots:
49
58
  - R-01: milestone goal substitution-tested
@@ -60,6 +69,12 @@ Updated `.godpowers/roadmap/ROADMAP.md` with:
60
69
  - Diff annotations: what was added, removed, moved
61
70
  - Updated dates
62
71
  - Re-validated have-nots
72
+ - Increment ids, `**Status**:` fields, and `**Features (from PRD)**:` lists
73
+ preserved
74
+
75
+ After updating, the deliverable ledger can be refreshed via
76
+ `lib/requirements.writeLedger(projectRoot)` (or `/god-progress`) so
77
+ `.godpowers/REQUIREMENTS.md` reflects the roadmap changes.
63
78
 
64
79
  Append a `## Changelog` section at the bottom:
65
80