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
@@ -8,7 +8,7 @@ metadata:
8
8
 
9
9
  prerequisites:
10
10
  required:
11
- - check: file:.godpowers/PROGRESS.md
11
+ - check: state:initialized == true
12
12
  reason: "/god-design needs an initialized project"
13
13
  auto-complete: /god-init
14
14
  - check: file:.godpowers/prd/PRD.md
@@ -37,7 +37,7 @@ execution:
37
37
  writes:
38
38
  - DESIGN.md
39
39
  - PRODUCT.md
40
- - .godpowers/design/STATE.md
40
+ - .godpowers/state.json
41
41
 
42
42
  standards:
43
43
  have-nots:
@@ -0,0 +1,47 @@
1
+ apiVersion: godpowers/v1
2
+ kind: CommandRouting
3
+ metadata:
4
+ command: /god-extend
5
+ description: Extend verb dispatcher
6
+ tier: 0
7
+ family: extend
8
+
9
+ prerequisites:
10
+ required: []
11
+
12
+ execution:
13
+ spawns: [built-in]
14
+ context: fresh
15
+ reads:
16
+ - routing/god-extension-scaffold.yaml
17
+ - routing/god-extension-add.yaml
18
+ - routing/god-extension-list.yaml
19
+ - routing/god-extension-info.yaml
20
+ - routing/god-extension-remove.yaml
21
+ - routing/god-test-extension.yaml
22
+ - routing/god-build-agent.yaml
23
+ writes: []
24
+
25
+ dispatch:
26
+ scaffold: /god-extension-scaffold
27
+ add: /god-extension-add
28
+ list: /god-extension-list
29
+ info: /god-extension-info
30
+ remove: /god-extension-remove
31
+ test: /god-test-extension
32
+ agent: /god-build-agent
33
+
34
+ success-path:
35
+ next-recommended: varies
36
+ outcome:
37
+ type: contextual
38
+ label: Extend dispatch route
39
+ reason: The next route depends on the requested extension operation.
40
+ allowed-next: [/god-extension-scaffold, /god-extension-add, /god-extension-list, /god-extension-info, /god-extension-remove, /god-test-extension, /god-build-agent]
41
+
42
+ failure-path:
43
+ on-error: /god-doctor
44
+
45
+ endoff:
46
+ state-update: no direct state update; selected leaf command owns state
47
+ events: [agent.start, decision.route, agent.end]
@@ -0,0 +1,37 @@
1
+ apiVersion: godpowers/v1
2
+ kind: CommandRouting
3
+ metadata:
4
+ command: /god-fix
5
+ description: Fix verb dispatcher
6
+ tier: 0
7
+ family: build
8
+
9
+ prerequisites:
10
+ required: []
11
+
12
+ execution:
13
+ spawns: [built-in]
14
+ context: fresh
15
+ reads:
16
+ - routing/god-debug.yaml
17
+ - routing/god-hotfix.yaml
18
+ writes: []
19
+
20
+ dispatch:
21
+ debug: /god-debug
22
+ hotfix: /god-hotfix
23
+
24
+ success-path:
25
+ next-recommended: varies
26
+ outcome:
27
+ type: contextual
28
+ label: Fix dispatch route
29
+ reason: The next route depends on whether production urgency is present.
30
+ allowed-next: [/god-debug, /god-hotfix]
31
+
32
+ failure-path:
33
+ on-error: /god-doctor
34
+
35
+ endoff:
36
+ state-update: no direct state update; selected leaf command owns state
37
+ events: [agent.start, decision.route, agent.end]
@@ -22,7 +22,10 @@ execution:
22
22
  spawns: [god-launch-strategist]
23
23
  context: fresh
24
24
  writes:
25
- - .godpowers/launch/STATE.md
25
+ - .godpowers/state.json
26
+ - landing copy
27
+ - OG cards
28
+ - launch runbook
26
29
 
27
30
  standards:
28
31
  substitution-test: true
@@ -4,7 +4,7 @@ metadata:
4
4
  command: /god-lifecycle
5
5
  description: Show project phase
6
6
  tier: 0
7
- family: continue
7
+ family: compatibility
8
8
  trigger-precedence:
9
9
  - trigger: where am i
10
10
  prefer: /god-locate
@@ -4,7 +4,7 @@ metadata:
4
4
  command: /god-locate
5
5
  description:
6
6
  tier: 0
7
- family: continue
7
+ family: compatibility
8
8
 
9
9
  prerequisites:
10
10
  required: []
@@ -27,7 +27,6 @@ execution:
27
27
  - .godpowers/arch/ARCH.md
28
28
  - .godpowers/roadmap/ROADMAP.md
29
29
  - .godpowers/stack/DECISION.md
30
- - .godpowers/build/STATE.md
31
30
  - .godpowers/state.json
32
31
  - .planning/GODPOWERS-SYNC.md
33
32
  - .legacy-planning/GODPOWERS-SYNC.md
@@ -8,7 +8,7 @@ metadata:
8
8
 
9
9
  prerequisites:
10
10
  required:
11
- - check: file:.godpowers/PROGRESS.md OR mode-A-greenfield
11
+ - check: state:initialized == true OR mode-A-greenfield
12
12
  auto-complete: /god-init
13
13
  human-required: true
14
14
  - check: safe-sync-clear
@@ -19,7 +19,10 @@ execution:
19
19
  spawns: [god-observability-engineer]
20
20
  context: fresh
21
21
  writes:
22
- - .godpowers/observe/STATE.md
22
+ - .godpowers/state.json
23
+ - alert definitions
24
+ - dashboard definitions
25
+ - runbooks
23
26
 
24
27
  standards:
25
28
  substitution-test: true
@@ -0,0 +1,45 @@
1
+ apiVersion: godpowers/v1
2
+ kind: CommandRouting
3
+ metadata:
4
+ command: /god-plan
5
+ description: Planning verb dispatcher
6
+ tier: 0
7
+ family: start
8
+
9
+ prerequisites:
10
+ required: []
11
+
12
+ execution:
13
+ spawns: [built-in]
14
+ context: fresh
15
+ reads:
16
+ - routing/god-prd.yaml
17
+ - routing/god-design.yaml
18
+ - routing/god-arch.yaml
19
+ - routing/god-roadmap.yaml
20
+ - routing/god-stack.yaml
21
+ - routing/god-reconstruct.yaml
22
+ writes: []
23
+
24
+ dispatch:
25
+ prd: /god-prd
26
+ design: /god-design
27
+ arch: /god-arch
28
+ roadmap: /god-roadmap
29
+ stack: /god-stack
30
+ reconstruct: /god-reconstruct
31
+
32
+ success-path:
33
+ next-recommended: varies
34
+ outcome:
35
+ type: contextual
36
+ label: Planning dispatch route
37
+ reason: The next route depends on the requested planning artifact.
38
+ allowed-next: [/god-prd, /god-design, /god-arch, /god-roadmap, /god-stack, /god-reconstruct]
39
+
40
+ failure-path:
41
+ on-error: /god-doctor
42
+
43
+ endoff:
44
+ state-update: no direct state update; selected leaf command owns state
45
+ events: [agent.start, decision.route, agent.end]
@@ -8,7 +8,7 @@ metadata:
8
8
 
9
9
  prerequisites:
10
10
  required:
11
- - check: file:.godpowers/PROGRESS.md
11
+ - check: state:initialized == true
12
12
  auto-complete: /god-init
13
13
  human-required: true
14
14
  recommended:
@@ -8,7 +8,7 @@ metadata:
8
8
 
9
9
  prerequisites:
10
10
  required:
11
- - check: file:.godpowers/PROGRESS.md
11
+ - check: state:initialized == true
12
12
  auto-complete: /god-init
13
13
  human-required: true
14
14
 
@@ -21,11 +21,8 @@ execution:
21
21
  - .godpowers/roadmap/ROADMAP.md
22
22
  - .godpowers/stack/DECISION.md
23
23
  - .godpowers/repo/AUDIT.md
24
- - .godpowers/build/STATE.md
25
- - .godpowers/deploy/STATE.md
26
- - .godpowers/observe/STATE.md
24
+ - .godpowers/state.json
27
25
  - .godpowers/harden/FINDINGS.md
28
- - .godpowers/launch/STATE.md
29
26
  - .godpowers/backlog/BACKLOG.md
30
27
  - .godpowers/seeds/
31
28
  - .godpowers/todos/TODOS.md
@@ -0,0 +1,39 @@
1
+ apiVersion: godpowers/v1
2
+ kind: CommandRouting
3
+ metadata:
4
+ command: /god-ship
5
+ description: Ship verb dispatcher
6
+ tier: 0
7
+ family: operate
8
+
9
+ prerequisites:
10
+ required: []
11
+
12
+ execution:
13
+ spawns: [built-in]
14
+ context: fresh
15
+ reads:
16
+ - routing/god-deploy.yaml
17
+ - routing/god-observe.yaml
18
+ - routing/god-launch.yaml
19
+ writes: []
20
+
21
+ dispatch:
22
+ deploy: /god-deploy
23
+ observe: /god-observe
24
+ launch: /god-launch
25
+
26
+ success-path:
27
+ next-recommended: varies
28
+ outcome:
29
+ type: contextual
30
+ label: Ship dispatch route
31
+ reason: The next route depends on the requested shipping closure step.
32
+ allowed-next: [/god-deploy, /god-observe, /god-launch]
33
+
34
+ failure-path:
35
+ on-error: /god-doctor
36
+
37
+ endoff:
38
+ state-update: no direct state update; selected leaf command owns state
39
+ events: [agent.start, decision.route, agent.end]
@@ -8,7 +8,7 @@ metadata:
8
8
 
9
9
  prerequisites:
10
10
  required:
11
- - check: file:.godpowers/PROGRESS.md
11
+ - check: state:initialized == true
12
12
  auto-complete: /god-init
13
13
  human-required: true
14
14
 
@@ -15,7 +15,7 @@ triggers:
15
15
  - "back after a week"
16
16
  - "coming back"
17
17
  state-conditions:
18
- - "file:.godpowers/PROGRESS.md"
18
+ - "state:initialized == true"
19
19
 
20
20
  sequences:
21
21
  default:
@@ -269,7 +269,7 @@
269
269
  "properties": {
270
270
  "status": {
271
271
  "type": "string",
272
- "enum": ["pending", "in-flight", "done", "skipped", "imported", "failed", "re-invoked"]
272
+ "enum": ["pending", "in-flight", "done", "skipped", "imported", "failed", "re-invoked", "not-required"]
273
273
  },
274
274
  "artifact": {
275
275
  "type": "string",
@@ -297,8 +297,75 @@
297
297
  "notes": {
298
298
  "type": "string",
299
299
  "description": "Free-form for skip reason, failure detail, etc."
300
+ },
301
+ "readiness-scope": {
302
+ "type": "string",
303
+ "description": "Deploy, observe, or launch readiness scope such as local-readiness, local-staging, ci-readiness, deployed-staging, live-target, or deferred-external-access."
304
+ },
305
+ "verified-target-type": {
306
+ "type": "string",
307
+ "description": "Target class verified by deploy, observe, or launch work, such as local-staging, ci, deployed-staging, production, or live."
308
+ },
309
+ "target-evidence": {
310
+ "type": "string",
311
+ "description": "Evidence source for a deploy, observe, or launch target, such as config, CI variable, IaC output, provider CLI output, docs, or current user input."
312
+ },
313
+ "external-access-deferral": {
314
+ "type": "string",
315
+ "description": "Relative artifact path or concise reason when deployed staging, provider, dashboard, or live launch access is deferred."
316
+ },
317
+ "waiting-artifact": {
318
+ "type": "string",
319
+ "description": "Relative artifact path for the smallest outstanding external access bundle."
320
+ },
321
+ "rollback-evidence": {
322
+ "type": "string",
323
+ "description": "Deploy rollback command, run result, or artifact path proving rollback was tested."
324
+ },
325
+ "slo-evidence": {
326
+ "type": "string",
327
+ "description": "Observability evidence for SLO definitions and error budget policy coverage."
328
+ },
329
+ "alert-evidence": {
330
+ "type": "string",
331
+ "description": "Observability evidence for alert definitions and alert response coverage."
332
+ },
333
+ "runbook-evidence": {
334
+ "type": "string",
335
+ "description": "Observability or launch evidence for tested runbooks."
336
+ },
337
+ "launch-evidence": {
338
+ "type": "string",
339
+ "description": "Launch evidence for live launch, local launch-readiness, source attribution, or launch deferral."
340
+ },
341
+ "verification": {
342
+ "type": "object",
343
+ "description": "Structured verification evidence used by executable gates instead of markdown STATE.md parsing.",
344
+ "properties": {
345
+ "commands": {
346
+ "type": "array",
347
+ "items": { "$ref": "#/$defs/VerificationCommand" }
348
+ }
349
+ },
350
+ "additionalProperties": true
300
351
  }
301
352
  }
353
+ },
354
+ "VerificationCommand": {
355
+ "type": "object",
356
+ "required": ["command", "status"],
357
+ "properties": {
358
+ "command": { "type": "string" },
359
+ "status": {
360
+ "type": "string",
361
+ "enum": ["pass", "passed", "green", "success", "succeeded", "ok", "fail", "failed", "red", "error", "skipped"]
362
+ },
363
+ "exitCode": { "type": "integer" },
364
+ "ranAt": { "type": "string", "format": "date-time" },
365
+ "durationMs": { "type": "integer", "minimum": 0 },
366
+ "diagnostics": { "type": "string" }
367
+ },
368
+ "additionalProperties": true
302
369
  }
303
370
  },
304
371
  "additionalProperties": false
@@ -27,7 +27,7 @@ After god-architect returns:
27
27
  1. Verify ARCH.md and ADRs exist on disk
28
28
  2. Spawn god-auditor to verify have-nots pass
29
29
  3. Run `npx godpowers gate --tier=arch --project=.` and do not proceed on a non-zero exit
30
- 4. Update `.godpowers/PROGRESS.md`: Architecture status = done
30
+ 4. Run `npx godpowers state advance --step=arch --status=done --project=.` to update `state.json` and regenerate `.godpowers/PROGRESS.md`.
31
31
 
32
32
  ## Pause Format
33
33
 
@@ -61,7 +61,8 @@ For each slice in the wave (parallel):
61
61
  - If FAIL: return slice to god-executor with findings, including any
62
62
  overcomplication, speculative abstraction, or unrelated cleanup
63
63
  - If PASS: commit the slice atomically
64
- 5. Update `.godpowers/build/STATE.md`
64
+ 5. Record build status and slice evidence in `.godpowers/state.json` so
65
+ `.godpowers/build/STATE.md` regenerates as a managed view.
65
66
 
66
67
  Move to next wave only when current wave is fully committed.
67
68
 
@@ -76,9 +77,10 @@ After all waves:
76
77
  decompose, prune, or escalate. Pass the exact failing diagnostics, rerun the
77
78
  command, and repeat until green or until the same root failure exhausts the
78
79
  repair budget.
79
- 5. Record the exact verification commands that passed in `.godpowers/build/STATE.md`
80
+ 5. Record the exact verification commands that passed in `.godpowers/state.json`
81
+ under `tiers.tier-2.build.verification.commands`
80
82
  6. Run `npx godpowers gate --tier=build --project=.` and do not proceed on a non-zero exit
81
- 7. Update PROGRESS.md: Build status = done
83
+ 7. Run `npx godpowers state advance --step=build --status=done --project=.` to update `state.json` and regenerate `.godpowers/PROGRESS.md` plus `.godpowers/build/STATE.md`.
82
84
  8. If the build plan or implementation establishes durable conventions, plan
83
85
  pillar updates through `lib/pillars.planArtifactSync`. Under
84
86
  `/god-mode --yolo`, apply those updates immediately and log the decision.
@@ -93,7 +95,7 @@ Pause for user ONLY if:
93
95
  ## On Completion
94
96
 
95
97
  ```
96
- Build complete: .godpowers/build/STATE.md
98
+ Build complete: .godpowers/build/STATE.md (generated view)
97
99
  [N] slices delivered. [N] commits. All tests passing.
98
100
 
99
101
  Suggested next: /god-harden (adversarial review, gates Launch)
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: god-capture
3
+ description: |
4
+ Capture verb dispatcher. Routes thoughts, todos, backlog items, and seeds
5
+ to the existing capture leaf commands.
6
+
7
+ Triggers on: "god capture", "/god-capture", "capture this", "note this",
8
+ "add todo", "add backlog", "plant seed"
9
+ ---
10
+
11
+ # /god-capture
12
+
13
+ Route capture intent to the smallest existing capture command.
14
+
15
+ ## Runtime module resolution
16
+
17
+ Resolve the Godpowers runtime root before inspecting routes:
18
+
19
+ 1. If `<projectRoot>/routing/god-note.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
+ | `todo`, `task`, `remind`, `priority` | `/god-add-todo` |
28
+ | `backlog`, `later`, `someday`, `future` | `/god-add-backlog` |
29
+ | `when`, `if`, `after`, `once`, `trigger` | `/god-plant-seed` |
30
+ | `note`, `thought`, `remember` | `/god-note` |
31
+
32
+ Default to `/god-note` when no priority, backlog, or trigger signal exists.
33
+
34
+ ## Process
35
+
36
+ 1. Select the target leaf command from the table.
37
+ 2. Read the selected leaf route YAML so prerequisites and next-step metadata stay source-controlled.
38
+ 3. Show the selected command and the matched capture signal.
39
+ 4. Hand off to the selected leaf command after user confirmation.
40
+
41
+ ## Guardrails
42
+
43
+ - Do not write notes, todos, backlog items, or seeds directly from this dispatcher.
44
+ - Do not assign priority unless the user provided priority evidence.
45
+ - Keep each capture leaf callable as a direct shortcut.
@@ -13,15 +13,15 @@ Spawn the **god-deploy-engineer** 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 with passing state).
16
+ 1. Verify build is complete through `.godpowers/state.json` `tier-2.build.status == done` and passing build verification commands.
17
17
  2. Verify all tests pass.
18
18
  3. Spawn god-deploy-engineer with ARCH and stack DECISION paths.
19
- 4. The agent writes `.godpowers/deploy/STATE.md`.
19
+ 4. The agent returns structured deploy evidence for `.godpowers/state.json`; the generated `.godpowers/deploy/STATE.md` view refreshes after state mutation.
20
20
 
21
21
  ## Verification
22
22
 
23
23
  After god-deploy-engineer returns:
24
- 1. Verify STATE.md exists on disk
24
+ 1. Verify deploy evidence is recorded in `.godpowers/state.json`
25
25
  2. Verify rollback procedure has been tested (not paper-only)
26
26
  3. Verify the deploy path is one of:
27
27
  - real staging or production target tested
@@ -29,15 +29,17 @@ After god-deploy-engineer returns:
29
29
  commands
30
30
  - local/CI deploy readiness complete with deployed staging verification
31
31
  deferred in `.godpowers/deploy/WAITING-FOR-EXTERNAL-ACCESS.md`
32
- 4. Update `.godpowers/PROGRESS.md`: Deploy status can be done when a tested
33
- real target or tested local staging harness exists. If deployed staging is
34
- deferred, annotate Deploy as done-local with the waiting artifact path and
35
- do not pause unless the user explicitly requested staging.
32
+ 4. Run `npx godpowers state advance --step=deploy --status=done --project=.`
33
+ only when a tested real target or tested local staging harness exists. If
34
+ deployed staging is deferred, record the waiting artifact path in
35
+ `.godpowers/deploy/WAITING-FOR-EXTERNAL-ACCESS.md` and keep that evidence
36
+ in `state.json` through the owning deploy command rather than editing the
37
+ generated progress or deploy state views.
36
38
 
37
39
  ## On Completion
38
40
 
39
41
  ```
40
- Deploy pipeline complete: .godpowers/deploy/STATE.md
42
+ Deploy pipeline complete: .godpowers/deploy/STATE.md (generated view)
41
43
 
42
44
  Suggested next: /god-observe (wire SLOs, alerts, runbooks)
43
45
  ```
@@ -69,15 +71,15 @@ known, do not use it as staging without explicit user approval.
69
71
 
70
72
  ## Re-invocation contract
71
73
 
72
- What happens if `/god-deploy` is run when `.godpowers/deploy/STATE.md` already exists:
74
+ What happens if `/god-deploy` is run when deploy state evidence already exists:
73
75
 
74
76
  | Existing state | Behavior |
75
77
  |---|---|
76
- | File does not exist | Spawn god-deploy-engineer; produce file; mark sub-step done |
77
- | 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 |
78
- | File exists, fails lint or have-nots | Spawn god-deploy-engineer in update mode with current file + findings as input. Diff preview before overwrite. |
79
- | File exists, state.json says `pending` | Treat as imported: hash + register, no agent spawn. User can `/god-deploy --force` to re-run. |
80
- | `--force` flag passed | Snapshot existing file to `.godpowers/.trash/god-deploy-<ts>/`. Spawn agent fresh. |
78
+ | State evidence does not exist | Spawn god-deploy-engineer; record deploy evidence; mark sub-step done |
79
+ | 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 |
80
+ | State evidence fails checks or the owning wrapper reports a generated view checksum warning | Spawn god-deploy-engineer in update mode with current evidence plus findings as input. Diff preview before overwrite. |
81
+ | State evidence exists, state.json says `pending` | Treat as imported: hash + register, no agent spawn. User can `/god-deploy --force` to re-run. |
82
+ | `--force` flag passed | Snapshot existing evidence to `.godpowers/.trash/god-deploy-<ts>/`. Spawn agent fresh. |
81
83
  | `--dry-run` flag passed | Show what would happen; touch nothing |
82
84
 
83
85
  Snapshots in `.trash/` are recoverable via `/god-restore` for 30 days.
@@ -96,9 +96,9 @@ applied to design.
96
96
 
97
97
  After god-designer and god-design-reviewer return:
98
98
  1. Verify `DESIGN.md` exists on disk
99
- 2. Verify `.godpowers/design/STATE.md` exists on disk
99
+ 2. Record design lint, review verdict, and command history in `.godpowers/state.json`
100
100
  3. Run `npx godpowers gate --tier=design --project=.` and do not proceed on a non-zero exit
101
- 4. Update `.godpowers/PROGRESS.md`: Design status = done when the project requires design
101
+ 4. Run `npx godpowers state advance --step=design --status=done --project=.` when the project requires design, or `npx godpowers state advance --step=design --status=not-required --project=.` when design is explicitly not required.
102
102
 
103
103
  ## Output
104
104
 
@@ -107,7 +107,7 @@ Project root:
107
107
  - `PRODUCT.md` (impeccable strategic file, when impeccable installed)
108
108
 
109
109
  Inside `.godpowers/design/`:
110
- - `STATE.md` (lint history, version, impeccable command log)
110
+ - `STATE.md` (generated design state view from `.godpowers/state.json`)
111
111
  - `HISTORY.md` (append-only log of design changes; populated by god-designer)
112
112
  - `REJECTED.md` (append-only log of blocked changes; populated by god-design-reviewer)
113
113
 
@@ -48,7 +48,7 @@ Plain-text report grouped by severity:
48
48
  GODPOWERS DOCTOR
49
49
 
50
50
  Install: claude (~/.claude/)
51
- [OK] 112 skills installed
51
+ [OK] 117 skills installed
52
52
  [OK] 40 agents installed
53
53
  [OK] VERSION matches (2.3.1)
54
54
  [WARN] routing/god-doctor.yaml exists but skill file did not until now
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: god-extend
3
+ description: |
4
+ Extend verb dispatcher. Routes extension installation, inspection, removal,
5
+ testing, and authoring intent to existing extension leaf commands.
6
+
7
+ Triggers on: "god extend", "/god-extend", "install extension",
8
+ "list extensions", "remove extension", "scaffold extension"
9
+ ---
10
+
11
+ # /god-extend
12
+
13
+ Route extension intent to the smallest existing extension command.
14
+
15
+ ## Runtime module resolution
16
+
17
+ Resolve the Godpowers runtime root before inspecting routes:
18
+
19
+ 1. If `<projectRoot>/routing/god-extension-add.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
+ | `scaffold`, `author`, `create pack` | `/god-extension-scaffold` |
28
+ | `add`, `install` | `/god-extension-add` |
29
+ | `list`, `installed` | `/god-extension-list` |
30
+ | `info`, `inspect`, `details` | `/god-extension-info` |
31
+ | `remove`, `uninstall` | `/god-extension-remove` |
32
+ | `test`, `verify` | `/god-test-extension` |
33
+ | `agent`, `custom agent` | `/god-build-agent` |
34
+
35
+ Default to `/god-extension-list` when no stronger signal exists.
36
+
37
+ ## Process
38
+
39
+ 1. Select the target leaf command from the table.
40
+ 2. Read the selected leaf route YAML so prerequisites and next-step metadata stay source-controlled.
41
+ 3. Show the selected command, the matched signal, and whether the target mutates installed packs.
42
+ 4. Hand off to the selected leaf command after user confirmation.
43
+
44
+ ## Guardrails
45
+
46
+ - Do not install, remove, scaffold, or test extension packs directly from this dispatcher.
47
+ - Do not bypass package legitimacy checks from extension leaf commands.
48
+ - Keep each extension leaf callable as a direct shortcut.
@@ -3,7 +3,7 @@ name: god-fast
3
3
  description: |
4
4
  Make a quick inline edit without full Godpowers planning overhead. For trivial
5
5
  changes: typo fixes, config tweaks, single-line updates. No agents, no plans,
6
- no PROGRESS.md updates.
6
+ no state mutation.
7
7
 
8
8
  Triggers on: "god fast", "/god-fast", "quick fix", "trivial change", "tiny tweak"
9
9
  ---
@@ -36,7 +36,7 @@ Skip the full pipeline. Make a small edit inline.
36
36
 
37
37
  - If running tests reveals regressions: STOP. Switch to /god-build or /god-debug.
38
38
  - If the change touches more than 3 lines: STOP. Switch to /god-build.
39
- - Skip PROGRESS.md updates (this is below the planning threshold).
39
+ - Skip state mutation and generated progress view refreshes because this is below the planning threshold.
40
40
 
41
41
  ## On Completion
42
42
 
@@ -57,7 +57,7 @@ Spawn **god-planner** scoped to the feature only.
57
57
  Then run god-executor + god-spec-reviewer + god-quality-reviewer per slice.
58
58
 
59
59
  ### Phase 4: Deploy
60
- Use existing deploy pipeline (.godpowers/deploy/STATE.md). No new pipeline.
60
+ Use existing deploy pipeline from `.godpowers/state.json` deploy evidence. No new pipeline.
61
61
  Feature flag the rollout if the feature is high-risk.
62
62
 
63
63
  ### Phase 5: Harden (just the new code)