godpowers 2.6.0 → 3.0.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 (96) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +46 -34
  3. package/RELEASE.md +49 -37
  4. package/SKILL.md +46 -48
  5. package/agents/god-deploy-engineer.md +2 -2
  6. package/agents/god-designer.md +3 -2
  7. package/agents/god-greenfieldifier.md +2 -4
  8. package/agents/god-launch-strategist.md +4 -5
  9. package/agents/god-observability-engineer.md +5 -5
  10. package/agents/god-reconciler.md +10 -4
  11. package/agents/god-retrospective.md +1 -1
  12. package/agents/god-updater.md +5 -5
  13. package/bin/install.js +11 -6
  14. package/extensions/data-pack/manifest.yaml +1 -1
  15. package/extensions/data-pack/package.json +1 -1
  16. package/extensions/launch-pack/manifest.yaml +1 -1
  17. package/extensions/launch-pack/package.json +1 -1
  18. package/extensions/security-pack/manifest.yaml +1 -1
  19. package/extensions/security-pack/package.json +1 -1
  20. package/fixtures/gate/build-pass/.godpowers/state.json +33 -0
  21. package/lib/README.md +2 -0
  22. package/lib/artifact-map.js +15 -3
  23. package/lib/cli-dispatch.js +39 -1
  24. package/lib/command-families.js +13 -8
  25. package/lib/context-writer.js +4 -4
  26. package/lib/gate.js +107 -9
  27. package/lib/install-profiles.js +39 -13
  28. package/lib/installer-args.js +25 -1
  29. package/lib/pillars.js +2 -4
  30. package/lib/recipes.js +16 -0
  31. package/lib/router.js +1 -5
  32. package/lib/source-sync.js +1 -1
  33. package/lib/state-advance.js +244 -0
  34. package/lib/state-lock.js +8 -4
  35. package/lib/state-views.js +460 -0
  36. package/lib/state.js +52 -3
  37. package/package.json +2 -2
  38. package/routing/god-audit.yaml +1 -1
  39. package/routing/god-build.yaml +1 -1
  40. package/routing/god-capture.yaml +41 -0
  41. package/routing/god-context.yaml +1 -1
  42. package/routing/god-deploy.yaml +3 -1
  43. package/routing/god-design.yaml +2 -2
  44. package/routing/god-extend.yaml +47 -0
  45. package/routing/god-fix.yaml +37 -0
  46. package/routing/god-launch.yaml +4 -1
  47. package/routing/god-lifecycle.yaml +1 -1
  48. package/routing/god-locate.yaml +1 -1
  49. package/routing/god-migrate.yaml +0 -1
  50. package/routing/god-mode.yaml +1 -1
  51. package/routing/god-observe.yaml +4 -1
  52. package/routing/god-plan.yaml +45 -0
  53. package/routing/god-prd.yaml +1 -1
  54. package/routing/god-reconcile.yaml +2 -5
  55. package/routing/god-ship.yaml +39 -0
  56. package/routing/god-sync.yaml +1 -1
  57. package/routing/recipes/returning-after-break.yaml +1 -1
  58. package/schema/state.v1.json +68 -1
  59. package/skills/god-arch.md +1 -1
  60. package/skills/god-build.md +6 -4
  61. package/skills/god-capture.md +45 -0
  62. package/skills/god-deploy.md +16 -14
  63. package/skills/god-design.md +3 -3
  64. package/skills/god-doctor.md +1 -1
  65. package/skills/god-extend.md +48 -0
  66. package/skills/god-fast.md +2 -2
  67. package/skills/god-feature.md +1 -1
  68. package/skills/god-fix.md +43 -0
  69. package/skills/god-harden.md +3 -3
  70. package/skills/god-hotfix.md +1 -1
  71. package/skills/god-init.md +14 -10
  72. package/skills/god-launch.md +14 -12
  73. package/skills/god-lifecycle.md +8 -1
  74. package/skills/god-locate.md +6 -0
  75. package/skills/god-mode.md +5 -4
  76. package/skills/god-observe.md +15 -13
  77. package/skills/god-pause-work.md +2 -2
  78. package/skills/god-plan.md +51 -0
  79. package/skills/god-prd.md +5 -4
  80. package/skills/god-quick.md +1 -1
  81. package/skills/god-repo.md +1 -1
  82. package/skills/god-resume-work.md +5 -4
  83. package/skills/god-roadmap-check.md +1 -0
  84. package/skills/god-roadmap-update.md +1 -1
  85. package/skills/god-roadmap.md +1 -1
  86. package/skills/god-rollback.md +1 -1
  87. package/skills/god-ship.md +44 -0
  88. package/skills/god-skip.md +2 -2
  89. package/skills/god-stack.md +1 -1
  90. package/skills/god-standards.md +1 -1
  91. package/skills/god-status.md +14 -9
  92. package/skills/god-story.md +1 -1
  93. package/skills/god-sync.md +2 -2
  94. package/skills/god-version.md +1 -1
  95. package/workflows/bluefield-arc.yaml +2 -4
  96. package/workflows/brownfield-arc.yaml +2 -4
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: god-fix
3
+ description: |
4
+ Fix verb dispatcher. Routes bug, regression, and production outage intent
5
+ to the existing debug or hotfix leaf commands.
6
+
7
+ Triggers on: "god fix", "/god-fix", "fix this bug", "debug this",
8
+ "production is broken", "hotfix"
9
+ ---
10
+
11
+ # /god-fix
12
+
13
+ Route fix intent to the smallest existing repair command.
14
+
15
+ ## Runtime module resolution
16
+
17
+ Resolve the Godpowers runtime root before inspecting routes:
18
+
19
+ 1. If `<projectRoot>/routing/god-debug.yaml` exists, use the repository checkout runtime at `<projectRoot>`.
20
+ 2. Otherwise use the installed bundle at `<tool-config-dir>/godpowers-runtime`.
21
+ 3. Read routing metadata from `<runtimeRoot>/routing/`.
22
+
23
+ ## Dispatch
24
+
25
+ | Signal | Hand off to |
26
+ |---|---|
27
+ | `hotfix`, `production`, `outage`, `urgent`, `down` | `/god-hotfix` |
28
+ | `debug`, `bug`, `failing`, `error`, `regression` | `/god-debug` |
29
+
30
+ Default to `/god-debug` when urgency is unclear.
31
+
32
+ ## Process
33
+
34
+ 1. Select the target leaf command from the table.
35
+ 2. Read the selected leaf route YAML so prerequisites and next-step metadata stay source-controlled.
36
+ 3. Show the selected command, the matched signal, and whether production urgency was detected.
37
+ 4. Hand off to the selected leaf command after user confirmation.
38
+
39
+ ## Guardrails
40
+
41
+ - Do not edit code directly from this dispatcher.
42
+ - Do not skip regression-test expectations from `/god-debug` or `/god-hotfix`.
43
+ - Keep both leaf commands callable as direct shortcuts.
@@ -13,7 +13,7 @@ Spawn the **god-harden-auditor** agent in a fresh context via the host platform'
13
13
 
14
14
  ## Setup
15
15
 
16
- 1. Verify build is complete (`.godpowers/build/STATE.md` exists).
16
+ 1. Verify build is complete through `.godpowers/state.json` `tier-2.build.status == done`.
17
17
  2. Spawn god-harden-auditor with full code access.
18
18
  3. The agent writes `.godpowers/harden/FINDINGS.md`.
19
19
 
@@ -23,8 +23,8 @@ After god-harden-auditor returns:
23
23
  1. Verify FINDINGS.md exists on disk
24
24
  2. Run `npx godpowers gate --tier=harden --project=.` and do not proceed on a non-zero exit
25
25
  3. Read findings classification:
26
- - If any Critical: PROGRESS.md status = failed, launch is BLOCKED
27
- - If only High/Medium/Low: PROGRESS.md status = done
26
+ - If any Critical: run `npx godpowers state advance --step=harden --status=failed --project=.` and keep launch BLOCKED
27
+ - If only High/Medium/Low: run `npx godpowers state advance --step=harden --status=done --project=.`
28
28
 
29
29
  ## Have-Nots
30
30
 
@@ -72,7 +72,7 @@ Spawn **god-observability-engineer** briefly:
72
72
  - Confirm recovery in metrics
73
73
 
74
74
  ### Phase 7: Schedule Postmortem
75
- Update PROGRESS.md with a TODO:
75
+ Record a state-backed follow-up TODO through the owning command wrapper:
76
76
  "Run /god-postmortem within 48 hours for incident <id>"
77
77
 
78
78
  Hotfix doesn't replace postmortem; it precedes it.
@@ -3,7 +3,8 @@ name: god-init
3
3
  description: |
4
4
  Initialize a Godpowers project. Detects operating mode (greenfield, gap-fill,
5
5
  audit, multi-repo) and project scale. Creates native Pillars project context
6
- plus the .godpowers/ workflow state directory with PROGRESS.md.
6
+ plus the .godpowers/ workflow state directory with state.json and generated
7
+ PROGRESS.md.
7
8
 
8
9
  Triggers on: "god init", "start a project", "new project", "initialize"
9
10
  ---
@@ -18,9 +19,11 @@ This skill is a thin wrapper. Detection happens automatically; user never
18
19
  needs to specify a mode.
19
20
 
20
21
  1. Check if `.godpowers/` already exists:
21
- - If yes: read PROGRESS.md, call `lib/pillars.pillarizeExisting(projectRoot)`
22
- to ensure the existing Godpowers project is also Pillar-ized, report
23
- current state, ask if user wants to reset or resume
22
+ - If yes: read `.godpowers/state.json`, use generated `.godpowers/PROGRESS.md`
23
+ only as a legacy fallback, call
24
+ `lib/pillars.pillarizeExisting(projectRoot)` to ensure the existing
25
+ Godpowers project is also Pillar-ized, report current state, ask if user
26
+ wants to reset or resume
24
27
  - If no: proceed with initialization
25
28
 
26
29
  2. **Auto-detect what kind of project this is** (background, no user prompt):
@@ -124,7 +127,8 @@ needs to specify a mode.
124
127
  - For brownfield: schedule preflight before archaeology + reconstruction
125
128
  - For bluefield: load org-context, then schedule preflight as constraint intake
126
129
  - Create directory structure
127
- - Write PROGRESS.md with mode, scale, timestamp, tier states
130
+ - Write `.godpowers/state.json` with mode, scale, timestamp, tier states,
131
+ then regenerate the managed `.godpowers/PROGRESS.md` view
128
132
  - Return mode/scale/announcement to this skill
129
133
 
130
134
  8. Detect scale by analyzing the description:
@@ -150,7 +154,7 @@ needs to specify a mode.
150
154
  deploy.md
151
155
  observe.md
152
156
  .godpowers/
153
- PROGRESS.md
157
+ PROGRESS.md # generated managed view
154
158
  prep/
155
159
  INITIAL-FINDINGS.md
156
160
  IMPORTED-CONTEXT.md # only when legacy planning / Superpowers / BMAD context exists
@@ -167,7 +171,7 @@ needs to specify a mode.
167
171
  harden/
168
172
  ```
169
173
 
170
- 10. Write PROGRESS.md with mode, scale, timestamp, all tiers set to `pending`
174
+ 10. Write `state.json` with mode, scale, timestamp, and all tiers set to `pending`, then regenerate `.godpowers/PROGRESS.md`
171
175
 
172
176
  11. Report to the user:
173
177
  - Detected mode and scale
@@ -186,7 +190,7 @@ needs to specify a mode.
186
190
 
187
191
  ## Output
188
192
 
189
- `.godpowers/PROGRESS.md` created with initial state.
193
+ `.godpowers/state.json` created with initial state and `.godpowers/PROGRESS.md` generated as a managed human view.
190
194
 
191
195
  Always create `.godpowers/prep/INITIAL-FINDINGS.md`. This is Godpowers'
192
196
  durable answer to "what did init find in this codebase?" It captures codebase
@@ -201,7 +205,7 @@ as hypothesis-level input only.
201
205
 
202
206
  ## Native Pillars context and AI-tool context
203
207
 
204
- After PROGRESS.md is written, Pillars context is already present. Every
208
+ After `state.json` is written and the progress view is generated, Pillars context is already present. Every
205
209
  Godpowers project uses `AGENTS.md` plus `agents/*.md` as its native project
206
210
  truth layer.
207
211
 
@@ -243,7 +247,7 @@ If the user later wants to enable it manually, they run `/god-context on`.
243
247
 
244
248
  ## Mode D detection (multi-repo workspace)
245
249
 
246
- After PROGRESS.md is written, also check whether this directory is
250
+ After `state.json` is written, also check whether this directory is
247
251
  part of a multi-repo suite:
248
252
 
249
253
  1. Call `lib/multi-repo-detector.detect(projectRoot)`.
@@ -17,21 +17,23 @@ Spawn the **god-launch-strategist** agent in a fresh context via the host platfo
17
17
  2. If Critical findings exist: REFUSE to proceed. Tell user to resolve or
18
18
  explicitly accept the risk first.
19
19
  3. Spawn god-launch-strategist with PRD path and harden FINDINGS.md path.
20
- 4. The agent writes `.godpowers/launch/STATE.md` plus landing copy artifacts.
20
+ 4. The agent returns structured launch evidence for `.godpowers/state.json` plus landing copy artifacts; the generated `.godpowers/launch/STATE.md` view refreshes after state mutation.
21
21
 
22
22
  ## Verification
23
23
 
24
24
  After god-launch-strategist returns:
25
- 1. Verify STATE.md exists on disk
25
+ 1. Verify launch evidence is recorded in `.godpowers/state.json`
26
26
  2. Verify landing copy passes substitution test
27
27
  3. Verify OG cards rendered (not just meta tags)
28
28
  4. Verify one of:
29
29
  - launch target is live and smoke checked
30
30
  - local launch-readiness harness passed and external access bundle is the
31
31
  only missing item
32
- 5. Update `.godpowers/PROGRESS.md`: Launch status = done only when live launch
33
- or explicit local launch-readiness scope is complete. If external access is
34
- missing, mark Launch = waiting-for-external-access.
32
+ 5. Run `npx godpowers state advance --step=launch --status=done --project=.`
33
+ only when live launch or explicit local launch-readiness scope is complete.
34
+ If external access is missing, record the waiting artifact path in launch
35
+ state through the owning command wrapper rather than editing the generated
36
+ progress or launch state views.
35
37
 
36
38
  ## Pause Conditions
37
39
 
@@ -41,7 +43,7 @@ approval require human input.
41
43
  ## On Completion
42
44
 
43
45
  ```
44
- Launch complete: .godpowers/launch/STATE.md
46
+ Launch complete: .godpowers/launch/STATE.md (generated view)
45
47
 
46
48
  All Godpowers tiers done. Project is live.
47
49
 
@@ -71,15 +73,15 @@ approval.
71
73
 
72
74
  ## Re-invocation contract
73
75
 
74
- What happens if `/god-launch` is run when `.godpowers/launch/STATE.md` already exists:
76
+ What happens if `/god-launch` is run when launch state evidence already exists:
75
77
 
76
78
  | Existing state | Behavior |
77
79
  |---|---|
78
- | File does not exist | Spawn god-launch-strategist; produce file; mark sub-step done |
79
- | File exists, passes lint, state.json says `done` | Pause: ask user (A) re-run anyway with diff preview, (B) treat as imported (no-op), (C) cancel |
80
- | File exists, fails lint or have-nots | Spawn god-launch-strategist in update mode with current file + findings as input. Diff preview before overwrite. |
81
- | File exists, state.json says `pending` | Treat as imported: hash + register, no agent spawn. User can `/god-launch --force` to re-run. |
82
- | `--force` flag passed | Snapshot existing file to `.godpowers/.trash/god-launch-<ts>/`. Spawn agent fresh. |
80
+ | State evidence does not exist | Spawn god-launch-strategist; record launch evidence; mark sub-step done |
81
+ | State evidence exists and state.json says `done` | Pause: ask user (A) re-run anyway with diff preview, (B) treat as imported (no-op), (C) cancel |
82
+ | State evidence fails checks or the owning wrapper reports a generated view checksum warning | Spawn god-launch-strategist in update mode with current evidence plus findings as input. Diff preview before overwrite. |
83
+ | State evidence exists, state.json says `pending` | Treat as imported: hash + register, no agent spawn. User can `/god-launch --force` to re-run. |
84
+ | `--force` flag passed | Snapshot existing evidence to `.godpowers/.trash/god-launch-<ts>/`. Spawn agent fresh. |
83
85
  | `--dry-run` flag passed | Show what would happen; touch nothing |
84
86
 
85
87
  Snapshots in `.trash/` are recoverable via `/god-restore` for 30 days.
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  name: god-lifecycle
3
+ deprecated: true
4
+ successor: god-status --lifecycle
3
5
  description: |
4
6
  Show where the project is in its lifecycle and what workflows make sense
5
7
  next. Distinguishes: pre-init, planning, building, shipping, steady state,
@@ -11,13 +13,18 @@ description: |
11
13
 
12
14
  # /god-lifecycle
13
15
 
16
+ Deprecated: prefer `/god-status --lifecycle` for new workflows. This command
17
+ remains callable in the full profile for one minor release as a compatibility
18
+ alias.
19
+
14
20
  Show project phase and contextually appropriate workflows.
15
21
 
16
22
  ## Process
17
23
 
18
24
  1. Detect lifecycle phase from disk:
19
25
  - **No `.godpowers/`** -> Pre-init
20
- - **`.godpowers/PROGRESS.md` exists, not all tiers done** -> In progress
26
+ - **`.godpowers/state.json` exists, not all tracked steps done** -> In progress
27
+ - **Only generated legacy `.godpowers/PROGRESS.md` exists** -> In progress after re-deriving state from disk
21
28
  - **All tiers done, no special markers** -> Steady state
22
29
  - **`.godpowers/postmortems/<id>/` exists with no POSTMORTEM.md** -> Post-incident pending
23
30
  - **`.godpowers/migrations/<slug>/MIGRATION.md` exists, status != complete** -> In-migration
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  name: god-locate
3
+ deprecated: true
4
+ successor: god-status --locate
3
5
  description: |
4
6
  Orient a new chat session or new AI tool. Reads CHECKPOINT.md +
5
7
  state.json + events.jsonl tail + intent.yaml + reflog tail and
@@ -12,6 +14,10 @@ description: |
12
14
 
13
15
  # /god-locate
14
16
 
17
+ Deprecated: prefer `/god-status --locate` for new workflows. This command
18
+ remains callable in the full profile for one minor release as a compatibility
19
+ alias.
20
+
15
21
  Orient a new session against disk reality. Single-screen output.
16
22
 
17
23
  ## When to use
@@ -19,8 +19,9 @@ workflow.
19
19
 
20
20
  1. Resolve whether this is a new project run or a resume:
21
21
  - If `.godpowers/state.json`, `.godpowers/PROGRESS.md`, or
22
- `.godpowers/CHECKPOINT.md` exists, this is a resume. Do not ask the user
23
- to describe the project again. Call
22
+ `.godpowers/CHECKPOINT.md` exists, this is a resume. Treat `state.json`
23
+ as the source of truth and `PROGRESS.md` as a generated legacy fallback.
24
+ Do not ask the user to describe the project again. Call
24
25
  `lib/pillars.pillarizeExisting(projectRoot)` first, then rehydrate intent
25
26
  from disk and continue.
26
27
  - If no durable Godpowers state exists and no project description was
@@ -41,7 +42,7 @@ workflow.
41
42
  starting with `agents/context.md` and `agents/repo.md`
42
43
  - `.godpowers/CHECKPOINT.md` first, when present
43
44
  - `.godpowers/state.json`
44
- - `.godpowers/PROGRESS.md`
45
+ - `.godpowers/PROGRESS.md` only as a generated legacy fallback when state is missing
45
46
  - `.godpowers/intent.yaml`, when present
46
47
  - `.godpowers/prep/INITIAL-FINDINGS.md`, when present
47
48
  - `.godpowers/prep/IMPORTED-CONTEXT.md`, when present
@@ -78,7 +79,7 @@ workflow.
78
79
  - The detected mode (A/B/C/E)
79
80
  - The active flags
80
81
  - Instruction that existing `.godpowers` state means resume, not prompt
81
- - Instruction to read `.godpowers/PROGRESS.md` from disk if it exists
82
+ - Instruction to read `.godpowers/state.json` from disk, using `.godpowers/PROGRESS.md` only as generated legacy fallback when state is missing
82
83
  - Instruction to read `.godpowers/prep/INITIAL-FINDINGS.md` and
83
84
  `.godpowers/prep/IMPORTED-CONTEXT.md` if present before choosing the
84
85
  first planning or build step
@@ -13,14 +13,14 @@ Spawn the **god-observability-engineer** agent in a fresh context via the host p
13
13
 
14
14
  ## Setup
15
15
 
16
- 1. Verify `.godpowers/deploy/STATE.md` exists. App is deployed.
16
+ 1. Verify `.godpowers/state.json` records `tier-3.deploy.status == done`.
17
17
  2. Spawn god-observability-engineer with PRD (for success metrics) and ARCH paths.
18
- 3. The agent writes `.godpowers/observe/STATE.md`.
18
+ 3. The agent returns structured observability evidence for `.godpowers/state.json`; the generated `.godpowers/observe/STATE.md` view refreshes after state mutation.
19
19
 
20
20
  ## Verification
21
21
 
22
22
  After god-observability-engineer returns:
23
- 1. Verify STATE.md exists on disk
23
+ 1. Verify observability evidence is recorded in `.godpowers/state.json`
24
24
  2. Verify each SLO has an error budget policy
25
25
  3. Verify each alert has a runbook
26
26
  4. Verify provider work is one of:
@@ -28,14 +28,16 @@ After god-observability-engineer returns:
28
28
  - provider-neutral definitions as code created and locally checked
29
29
  - missing dashboard/API credentials appended to the single external access
30
30
  bundle
31
- 5. Update `.godpowers/PROGRESS.md`: Observe status = done only for verified
32
- real provider config or local definitions as code. If external access is
33
- missing, mark Observe = waiting-for-external-access.
31
+ 5. Run `npx godpowers state advance --step=observe --status=done --project=.`
32
+ only for verified real provider config or local definitions as code. If
33
+ external access is missing, record the missing access bundle in deploy or
34
+ observe state through the owning command wrapper rather than editing the
35
+ generated progress or observe state views.
34
36
 
35
37
  ## On Completion
36
38
 
37
39
  ```
38
- Observability complete: .godpowers/observe/STATE.md
40
+ Observability complete: .godpowers/observe/STATE.md (generated view)
39
41
 
40
42
  Suggested next: /god-harden (adversarial security review, gates Launch)
41
43
  ```
@@ -53,15 +55,15 @@ named command cannot run without one exact credential.
53
55
 
54
56
  ## Re-invocation contract
55
57
 
56
- What happens if `/god-observe` is run when `.godpowers/observe/STATE.md` already exists:
58
+ What happens if `/god-observe` is run when observe state evidence already exists:
57
59
 
58
60
  | Existing state | Behavior |
59
61
  |---|---|
60
- | File does not exist | Spawn god-observability-engineer; produce file; mark sub-step done |
61
- | File exists, passes lint, state.json says `done` | Pause: ask user (A) re-run anyway with diff preview, (B) treat as imported (no-op), (C) cancel |
62
- | File exists, fails lint or have-nots | Spawn god-observability-engineer in update mode with current file + findings as input. Diff preview before overwrite. |
63
- | File exists, state.json says `pending` | Treat as imported: hash + register, no agent spawn. User can `/god-observe --force` to re-run. |
64
- | `--force` flag passed | Snapshot existing file to `.godpowers/.trash/god-observe-<ts>/`. Spawn agent fresh. |
62
+ | State evidence does not exist | Spawn god-observability-engineer; record observability evidence; mark sub-step done |
63
+ | State evidence exists and state.json says `done` | Pause: ask user (A) re-run anyway with diff preview, (B) treat as imported (no-op), (C) cancel |
64
+ | State evidence fails checks or the owning wrapper reports a generated view checksum warning | Spawn god-observability-engineer in update mode with current evidence plus findings as input. Diff preview before overwrite. |
65
+ | State evidence exists, state.json says `pending` | Treat as imported: hash + register, no agent spawn. User can `/god-observe --force` to re-run. |
66
+ | `--force` flag passed | Snapshot existing evidence to `.godpowers/.trash/god-observe-<ts>/`. Spawn agent fresh. |
65
67
  | `--dry-run` flag passed | Show what would happen; touch nothing |
66
68
 
67
69
  Snapshots in `.trash/` are recoverable via `/god-restore` for 30 days.
@@ -15,7 +15,7 @@ Create a context handoff so you can resume cleanly later.
15
15
 
16
16
  ## Process
17
17
 
18
- 1. Read `.godpowers/PROGRESS.md` to capture current state
18
+ 1. Read `.godpowers/state.json` to capture current state; use `.godpowers/PROGRESS.md` only as a generated legacy fallback when state is missing.
19
19
  2. Identify what was actively being worked on:
20
20
  - Which slice? Which agent was running?
21
21
  - What was the next step?
@@ -53,7 +53,7 @@ Paused: [timestamp]
53
53
  `/god-resume-work` to load this context, then continue.
54
54
  ```
55
55
 
56
- 5. Update PROGRESS.md to mark current sub-step as `in-flight` if not already
56
+ 5. Run `npx godpowers state advance --step=<current-step> --status=in-flight --project=.` if the current sub-step is not already in flight.
57
57
 
58
58
  ## On Completion
59
59
 
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: god-plan
3
+ description: |
4
+ Planning verb dispatcher. Routes planning intent to PRD, design,
5
+ architecture, roadmap, stack, or reconstruction leaf commands without
6
+ replacing those commands.
7
+
8
+ Triggers on: "god plan", "/god-plan", "plan this", "write the prd",
9
+ "choose architecture", "roadmap this", "pick stack"
10
+ ---
11
+
12
+ # /god-plan
13
+
14
+ Route planning intent to the smallest existing planning command.
15
+
16
+ ## Runtime module resolution
17
+
18
+ Resolve the Godpowers runtime root before inspecting routes:
19
+
20
+ 1. If `<projectRoot>/routing/god-prd.yaml` exists, use the repository checkout runtime at `<projectRoot>`.
21
+ 2. Otherwise use the installed bundle at `<tool-config-dir>/godpowers-runtime`.
22
+ 3. Read routing metadata from `<runtimeRoot>/routing/`.
23
+
24
+ ## Dispatch
25
+
26
+ Use the first explicit argument when present. Otherwise classify the user text.
27
+
28
+ | Signal | Hand off to |
29
+ |---|---|
30
+ | `prd`, `requirements`, `spec` | `/god-prd` |
31
+ | `design`, `product`, `ux` | `/god-design` |
32
+ | `arch`, `architecture`, `system` | `/god-arch` |
33
+ | `roadmap`, `milestone`, `sequence` | `/god-roadmap` |
34
+ | `stack`, `technology`, `dependency choice` | `/god-stack` |
35
+ | `reconstruct`, `brownfield plan`, `existing code` | `/god-reconstruct` |
36
+
37
+ Default to `/god-prd` when no stronger signal exists.
38
+
39
+ ## Process
40
+
41
+ 1. Select the target leaf command from the table.
42
+ 2. Read the selected leaf route YAML so prerequisites and next-step metadata stay source-controlled.
43
+ 3. Show the selected command, the matched signal, and the next command from the selected route.
44
+ 4. Hand off to the selected leaf command after user confirmation.
45
+
46
+ ## Guardrails
47
+
48
+ - Do not create planning artifacts directly.
49
+ - Do not spawn planning agents from this dispatcher.
50
+ - Do not bypass executable gates declared by the selected leaf route.
51
+ - Keep the selected leaf command callable as a direct shortcut.
package/skills/god-prd.md CHANGED
@@ -13,11 +13,12 @@ Spawn the **god-pm** agent in a fresh context via the host platform's native age
13
13
 
14
14
  ## Setup
15
15
 
16
- 1. If `.godpowers/PROGRESS.md` does not exist: tell the user to run `/god-init` first
16
+ 1. If `.godpowers/state.json` does not exist: tell the user to run `/god-init` first.
17
17
  2. Read `.godpowers/prep/INITIAL-FINDINGS.md` if present.
18
18
  3. Read `.godpowers/prep/IMPORTED-CONTEXT.md` if present.
19
- 4. Spawn god-pm with the user's project description from PROGRESS.md plus any
20
- prep artifacts. Prep artifacts are context, not source of truth.
19
+ 4. Spawn god-pm with the user's project description from `state.json`,
20
+ `.godpowers/intent.yaml`, and any prep artifacts. Prep artifacts are
21
+ context, not source of truth.
21
22
  5. The agent writes `.godpowers/prd/PRD.md`
22
23
  6. The agent runs have-nots checks before declaring done
23
24
  7. If god-pm pauses for a human question: relay to user using pause format
@@ -31,7 +32,7 @@ After god-pm returns:
31
32
  1. Verify `.godpowers/prd/PRD.md` exists on disk
32
33
  2. Spawn god-auditor briefly to verify have-nots pass
33
34
  3. Run `npx godpowers gate --tier=prd --project=.` and do not proceed on a non-zero exit
34
- 4. Update `.godpowers/PROGRESS.md`: PRD status = done
35
+ 4. Run `npx godpowers state advance --step=prd --status=done --project=.` to update `state.json` and regenerate `.godpowers/PROGRESS.md`.
35
36
 
36
37
  ## Pause Format
37
38
 
@@ -39,7 +39,7 @@ workflow.
39
39
 
40
40
  - Planning tier (PRD/ARCH/ROADMAP/STACK)
41
41
  - Build planning into waves (single slice only)
42
- - PROGRESS.md updates if no `.godpowers/` exists
42
+ - State mutation if no `.godpowers/` exists
43
43
 
44
44
  ## On Completion
45
45
 
@@ -23,7 +23,7 @@ After god-repo-scaffolder returns:
23
23
  1. Verify AUDIT.md exists on disk
24
24
  2. Verify CI passes on the empty scaffold
25
25
  3. Run `npx godpowers gate --tier=repo --project=.` and do not proceed on a non-zero exit
26
- 4. Update `.godpowers/PROGRESS.md`: Repo status = done
26
+ 4. Run `npx godpowers state advance --step=repo --status=done --project=.` to update `state.json` and regenerate `.godpowers/PROGRESS.md`.
27
27
 
28
28
  ## On Completion
29
29
 
@@ -2,8 +2,9 @@
2
2
  name: god-resume-work
3
3
  description: |
4
4
  Resume work from a previous session. Reads .godpowers/HANDOFF.md if it
5
- exists, otherwise re-derives state from PROGRESS.md and disk. Continues
6
- from the last incomplete sub-step.
5
+ exists, otherwise re-derives state from state.json and disk, with
6
+ PROGRESS.md as a generated legacy fallback. Continues from the last
7
+ incomplete sub-step.
7
8
 
8
9
  Triggers on: "god resume", "/god-resume-work", "resume work", "continue",
9
10
  "pick up where I left off"
@@ -24,9 +25,9 @@ Load context and continue.
24
25
  - Confirm with user: "Pick up here?"
25
26
  - If yes: route to the specific next action
26
27
 
27
- 3. If only PROGRESS.md exists:
28
+ 3. If only generated legacy PROGRESS.md exists:
28
29
  - Run the same logic as /god-next
29
- - Suggest the next command based on state
30
+ - Suggest the next command based on re-derived state
30
31
 
31
32
  4. After resuming, archive HANDOFF.md:
32
33
  - Move to `.godpowers/archive/HANDOFF-[timestamp].md` so the trail is preserved
@@ -2,6 +2,7 @@
2
2
  name: god-roadmap-check
3
3
  deprecated: true
4
4
  replacement: god-reconcile
5
+ successor: god-reconcile
5
6
  description: |
6
7
  Check if user intent overlaps with the existing ROADMAP.md before doing
7
8
  feature work. Returns: already-done, in-progress, enhancement,
@@ -43,7 +43,7 @@ Agent updates the roadmap and re-validates have-nots.
43
43
  After god-roadmap-updater returns:
44
44
  1. Verify ROADMAP.md still passes have-nots (R-01 through R-07)
45
45
  2. Verify Roadmap Changelog section is appended
46
- 3. Update PROGRESS.md if applicable
46
+ 3. If the update changes tracked roadmap completion, run `npx godpowers state advance --step=roadmap --status=done --project=.` or the owning command wrapper.
47
47
 
48
48
  ## On Completion
49
49
 
@@ -24,7 +24,7 @@ After god-roadmapper returns:
24
24
  1. Verify ROADMAP.md exists on disk
25
25
  2. Spawn god-auditor to verify have-nots pass
26
26
  3. Run `npx godpowers gate --tier=roadmap --project=.` and do not proceed on a non-zero exit
27
- 4. Update `.godpowers/PROGRESS.md`: Roadmap status = done
27
+ 4. Run `npx godpowers state advance --step=roadmap --status=done --project=.` to update `state.json` and regenerate `.godpowers/PROGRESS.md`.
28
28
 
29
29
  ## On Completion
30
30
 
@@ -38,7 +38,7 @@ Examples:
38
38
  5. Mark each tier `status: pending` in state.json.
39
39
  6. Append a `op:rollback` event to the reflog with the full closure.
40
40
  7. Truncate the linkage map entries belonging to rolled-back artifacts.
41
- 8. Update PROGRESS.md.
41
+ 8. Regenerate managed state views from `state.json`.
42
42
 
43
43
  ## Difference from /god-undo
44
44
 
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: god-ship
3
+ description: |
4
+ Ship verb dispatcher. Routes release, deploy, observability, and launch
5
+ closure intent to existing deploy, observe, and launch leaf commands.
6
+
7
+ Triggers on: "god ship", "/god-ship", "ship this", "deploy this",
8
+ "launch this", "wire observability"
9
+ ---
10
+
11
+ # /god-ship
12
+
13
+ Route shipping intent to the smallest existing shipping command.
14
+
15
+ ## Runtime module resolution
16
+
17
+ Resolve the Godpowers runtime root before inspecting routes:
18
+
19
+ 1. If `<projectRoot>/routing/god-deploy.yaml` exists, use the repository checkout runtime at `<projectRoot>`.
20
+ 2. Otherwise use the installed bundle at `<tool-config-dir>/godpowers-runtime`.
21
+ 3. Read routing metadata from `<runtimeRoot>/routing/`.
22
+
23
+ ## Dispatch
24
+
25
+ | Signal | Hand off to |
26
+ |---|---|
27
+ | `deploy`, `pipeline`, `environment` | `/god-deploy` |
28
+ | `observe`, `observability`, `slo`, `alert`, `runbook` | `/god-observe` |
29
+ | `launch`, `release copy`, `go live` | `/god-launch` |
30
+
31
+ Default to `/god-deploy` when no stronger signal exists.
32
+
33
+ ## Process
34
+
35
+ 1. Select the target leaf command from the table.
36
+ 2. Read the selected leaf route YAML so prerequisites and next-step metadata stay source-controlled.
37
+ 3. Show the selected command, the matched signal, and the release gate implied by that leaf.
38
+ 4. Hand off to the selected leaf command after user confirmation.
39
+
40
+ ## Guardrails
41
+
42
+ - Do not publish, tag, deploy, or create release notes directly from this dispatcher.
43
+ - Do not bypass safe-sync, harden, or launch prerequisites from the selected route.
44
+ - Keep deploy, observe, and launch callable as direct shortcuts.
@@ -32,7 +32,7 @@ The reason is required. Skips without reason are rejected.
32
32
  mandatory; e.g. /god-mode rejects skipping the final /god-sync).
33
33
  3. Mark the sub-step `status: skipped` in state.json with `skipped-reason`.
34
34
  4. Append a `op:skip` event to the reflog.
35
- 5. Update PROGRESS.md so the user sees the skip annotated.
35
+ 5. Regenerate the managed progress view from `state.json` so the user sees the skip annotated.
36
36
 
37
37
  ## What skip does NOT do
38
38
 
@@ -59,7 +59,7 @@ Reverse a previous skip. Marks the sub-step `pending` again.
59
59
 
60
60
  ## Implementation
61
61
 
62
- Built-in. Reads + writes `state.json` and PROGRESS.md. Appends to reflog.
62
+ Built-in. Reads and writes `state.json`, regenerates the managed progress view, and appends to reflog.
63
63
 
64
64
 
65
65
  ## Locking
@@ -22,7 +22,7 @@ Spawn the **god-stack-selector** agent in a fresh context via the host platform'
22
22
  After god-stack-selector returns:
23
23
  1. Verify DECISION.md exists on disk
24
24
  2. Run `npx godpowers gate --tier=stack --project=.` and do not proceed on a non-zero exit
25
- 3. Update `.godpowers/PROGRESS.md`: Stack status = done
25
+ 3. Run `npx godpowers state advance --step=stack --status=done --project=.` to update `state.json` and regenerate `.godpowers/PROGRESS.md`.
26
26
 
27
27
  ## On Completion
28
28
 
@@ -22,7 +22,7 @@ Run quality gate check on an artifact.
22
22
 
23
23
  ## Process
24
24
 
25
- 1. Identify the artifact to check (user provides, or auto-detect from PROGRESS.md)
25
+ 1. Identify the artifact to check, using the user-provided path first, then `state.json`, then generated progress view fallback.
26
26
  2. Resolve the Godpowers runtime root: use `<projectRoot>` when `<projectRoot>/lib/router.js` exists, otherwise use the installed bundle at `<tool-config-dir>/godpowers-runtime`
27
27
  3. Look up the routing for the relevant tier (`<runtimeRoot>/lib/router.js` getStandards)
28
28
  4. Spawn god-standards-check in fresh context with: