godpowers 3.0.1 → 3.11.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 (67) hide show
  1. package/CHANGELOG.md +255 -2
  2. package/README.md +31 -14
  3. package/RELEASE.md +21 -33
  4. package/SKILL.md +71 -112
  5. package/bin/install.js +44 -0
  6. package/fixtures/gate/harden-pass/.godpowers/state.json +26 -0
  7. package/lib/README.md +1 -0
  8. package/lib/artifact-map.js +2 -1
  9. package/lib/cli-dispatch.js +449 -3
  10. package/lib/command-families.js +10 -2
  11. package/lib/evidence/.provenance.json +45 -0
  12. package/lib/evidence-import.js +147 -0
  13. package/lib/evidence.js +908 -0
  14. package/lib/gate.js +26 -15
  15. package/lib/install-profiles.js +4 -1
  16. package/lib/installer-args.js +241 -1
  17. package/lib/quarterback.js +183 -0
  18. package/lib/surface-profile.js +168 -0
  19. package/lib/work-report.js +137 -0
  20. package/package.json +2 -2
  21. package/references/orchestration/GOD-MODE-RUNBOOK.md +9 -14
  22. package/references/orchestration/GOD-ORCHESTRATOR-RUNBOOK.md +40 -82
  23. package/references/shared/DASHBOARD-CONTRACT.md +66 -29
  24. package/references/shared/README.md +1 -1
  25. package/routing/god-demo.yaml +35 -0
  26. package/routing/god-first-run.yaml +34 -0
  27. package/routing/god-surface.yaml +39 -0
  28. package/routing/recipes/try-safely.yaml +26 -0
  29. package/skills/god-agent-audit.md +5 -6
  30. package/skills/god-archaeology.md +5 -6
  31. package/skills/god-audit.md +6 -7
  32. package/skills/god-automation-setup.md +6 -7
  33. package/skills/god-automation-status.md +6 -7
  34. package/skills/god-context-scan.md +7 -8
  35. package/skills/god-demo.md +53 -0
  36. package/skills/god-design-impact.md +5 -6
  37. package/skills/god-discuss.md +5 -6
  38. package/skills/god-docs.md +5 -10
  39. package/skills/god-doctor.md +8 -9
  40. package/skills/god-dogfood.md +7 -10
  41. package/skills/god-explore.md +5 -7
  42. package/skills/god-first-run.md +64 -0
  43. package/skills/god-harden.md +5 -2
  44. package/skills/god-help.md +77 -51
  45. package/skills/god-hygiene.md +5 -6
  46. package/skills/god-lifecycle.md +11 -13
  47. package/skills/god-list-assumptions.md +7 -8
  48. package/skills/god-locate.md +7 -8
  49. package/skills/god-map-codebase.md +5 -6
  50. package/skills/god-migrate.md +6 -15
  51. package/skills/god-next.md +16 -17
  52. package/skills/god-preflight.md +7 -8
  53. package/skills/god-progress.md +7 -8
  54. package/skills/god-reconcile.md +5 -6
  55. package/skills/god-reconstruct.md +5 -7
  56. package/skills/god-refactor.md +6 -7
  57. package/skills/god-roadmap-check.md +6 -7
  58. package/skills/god-scan.md +5 -9
  59. package/skills/god-spike.md +5 -6
  60. package/skills/god-standards.md +5 -6
  61. package/skills/god-status.md +12 -10
  62. package/skills/god-surface.md +61 -0
  63. package/skills/god-sync.md +4 -8
  64. package/skills/god-tech-debt.md +5 -6
  65. package/skills/god-test-runtime.md +4 -8
  66. package/skills/god-version.md +1 -1
  67. package/skills/god.md +53 -52
package/SKILL.md CHANGED
@@ -96,120 +96,82 @@ answer a question, inspect first. When a term is resolved, record it in
96
96
  `.godpowers/domain/GLOSSARY.md` with canonical spelling, avoided aliases,
97
97
  relationships, and any unresolved ambiguity.
98
98
 
99
- ### 9. Proposal Closeout
100
- When you answer with a recommendation, proposal, or exploratory plan and do not
101
- make file edits, run commands, or hand off to another command, end with a
102
- proposition block. The block must give the user concrete next moves instead of
103
- leaving them at a dead stop.
99
+ ### 9. Next Commands Closeout
100
+ When you answer with a recommendation, proposal, status report, diagnostic,
101
+ audit, lifecycle view, reconciliation, or exploratory plan, end with
102
+ `Next commands:` unless a downstream command already launched.
104
103
 
105
- This also applies to diagnostic, status, audit, lifecycle, reconciliation, and
106
- decision-support reports when they end with suggestions, options, or a
107
- recommended sequence.
104
+ The block must contain 1 to 4 runnable commands. Put the best option first.
105
+ Each line must be a concrete command plus one plain sentence explaining what it
106
+ will do. Do not end with abstract options such as "implement partial" or
107
+ "discuss more" unless those words are part of the command argument.
108
108
 
109
109
  Use this shape:
110
110
 
111
111
  ```
112
- Proposition:
113
- 1. Implement partial: <smallest safe slice and command>
114
- 2. Implement complete: <larger command or project run>
115
- 3. Discuss more: <focused question or /god-discuss topic>
116
- 4. Run God Mode: /god-mode <optional flags or scope>
117
- Recommended: <one option and why>
112
+ Next commands:
113
+ - /god-next: Continue with the safest state-derived next step.
114
+ - /god-status --full: Inspect the complete dashboard when you need all checks.
115
+ - /god-discuss <topic>: Resolve the named open question before work starts.
118
116
  ```
119
117
 
120
- Only include options that actually fit the situation. If `/god-mode` is too
121
- broad or unsafe for the request, say so and offer `/god-feature`,
122
- `/god-refactor`, `/god-spike`, or `/god-discuss` instead.
118
+ Only include commands that fit the current state. If `/god-mode` is too broad
119
+ or unsafe for the request, use `/god-feature`, `/god-refactor`, `/god-spike`,
120
+ `/god-fast`, `/god-quick`, or `/god-discuss` instead.
123
121
 
124
122
  ### 10. Completion Closeout
125
123
  When you complete work, especially from `/god-mode`, `/god-build`,
126
124
  `/god-feature`, `/god-hotfix`, `/god-refactor`, `/god-quick`, or any command
127
- that edits code or artifacts, do not stop at "complete" plus validation. End
128
- with a disk-derived closeout that tells the user the current state and what is
129
- next.
130
-
131
- Every closeout must include a **Godpowers Dashboard**. This dashboard is the
132
- same mental model across `/god-status`, `/god-progress`, `/god-next`,
133
- `/god-mode`, and every command that completes, pauses, or proposes work.
134
-
135
- When the runtime bundle is available, compute this with
136
- `lib/dashboard.compute(projectRoot)` and render it with
137
- `lib/dashboard.render(result)`. The executable dashboard engine is the shared
138
- source for phase, tier, step, progress, PRD and roadmap visibility, proactive
139
- checks, host guarantees, open items, and the next route. If the runtime module
140
- is unavailable, fall back to a manual disk scan and say `Dashboard engine:
141
- unavailable, manual scan used`.
125
+ that edits code or artifacts, do not stop at "complete" plus validation.
126
+ End with a concise disk-derived closeout that tells the user what changed,
127
+ what needs attention, and what command to run next.
128
+
129
+ Closeouts use the dashboard engine for computation, but they do not print the
130
+ full dashboard by default. When the runtime bundle is available, compute with
131
+ `lib/dashboard.compute(projectRoot)` and render a compact action brief. The
132
+ complete dashboard is available through `/god-status --full`.
133
+
134
+ If the runtime module is unavailable, silently use a manual disk scan. Mention
135
+ the fallback only when the missing runtime changes the recommendation, then
136
+ suggest `/god-doctor`.
142
137
 
143
138
  Use this shape:
144
139
 
145
140
  ```
146
- Godpowers Dashboard
147
-
148
- Current status:
149
- State: <complete | partial | blocked | complete with deferred item>
150
- Phase: <plain-language phase> (tier <human ordinal> of <human total>) when available
151
- Step: <sub-step label> (<step n> of <total steps>) when available
152
- Progress: <pct>% (<done> of <total> steps complete) when available
153
- Worktree: <clean | modified files unstaged | staged changes | mixed>
154
- Index: <untouched | staged files listed>
155
-
156
- Action brief:
157
- Next: <recommended command or user decision>
158
- Why: <route reason tied to disk state>
159
- Readiness: <ready | needs attention>
160
- Attention: <top blockers or none>
161
- Host guarantees: <full | degraded | unknown with host and first gap>
162
-
163
- Planning visibility:
164
- PRD: <done | pending | missing | deferred> <artifact path when present>
165
- Roadmap: <done | pending | missing | deferred> <artifact path when present>
166
- Current milestone: <roadmap milestone, tier, or next planning gate when known>
167
- Completion: <pct>% <brief basis, for example done steps over total tracked steps>
168
-
169
- What changed:
170
- 1. <highest-signal change>
171
- 2. <highest-signal change>
141
+ <one sentence describing the completed result>
142
+
143
+ Changed:
144
+ - <highest-signal user-visible change>
145
+ - <highest-signal user-visible change>
172
146
 
173
147
  Validation:
174
- + <command>: <result>
175
-
176
- Proactive checks:
177
- Checkpoint: <fresh | refreshed | missing | stale | conflicts with state.json>
178
- Reviews: <none | N pending, suggest /god-review-changes>
179
- Sync: <fresh | missing | stale | local helper ran | suggest /god-sync>
180
- Docs: <fresh | N stale, suggest /god-docs | repo-doc-sync ran>
181
- Repo surface: <fresh | N stale, suggest /god-doctor | repo-surface-sync ran>
182
- Host: <full | degraded | unknown with host and first gap>
183
- Runtime: <not-applicable | known URL, suggest /god-test-runtime | no known URL, defer deployed verification>
184
- Automation: <not configured | N active | available via provider, suggest /god-automation-setup>
185
- Security: <clear | sensitive files changed, suggest /god-harden>
186
- Dependencies: <clear | dependency files changed, suggest /god-update-deps>
187
- Hygiene: <fresh | stale, suggest /god-hygiene>
188
-
189
- Open items:
190
- 1. <deferred staging, unstaged files, pending review, blocker, or none>
191
-
192
- Next:
193
- Recommended: <one concrete command or user decision>
194
- Why: <one sentence tied to current state>
148
+ - <command>: <result>
149
+
150
+ Attention:
151
+ - <only blockers or signals that change the recommendation>
152
+
153
+ Next commands:
154
+ - <recommended command>: <one sentence reason>
155
+ - /god-status --full: See the complete dashboard and proactive checks.
195
156
  ```
196
157
 
197
- If the command intentionally did not stage, commit, push, or deploy, say that
198
- plainly and explain what the user can do next. If deployed staging is deferred,
199
- include the deferred artifact path or exact missing input. If the worktree has
200
- pre-existing unrelated changes, say the index was left untouched and recommend
201
- a scoped review or staging command rather than implying the project is fully
202
- shipped.
158
+ Omit empty sections. Do not print rows that only say `fresh`, `clear`, `none`,
159
+ or `not-applicable`. If the command intentionally did not stage, commit, push,
160
+ or deploy, say that plainly in the completion sentence or `Attention`.
161
+ If deployed staging is deferred, include the deferred artifact path or exact
162
+ missing input. If the worktree has pre-existing unrelated changes, say the
163
+ index was left untouched and recommend a scoped review or staging command
164
+ rather than implying the project is fully shipped.
203
165
 
204
- When the command only recommends work, keep the same dashboard but set
205
- `State: proposal` and end with the proposition block from Section 9. When the
206
- command pauses, set `State: blocked` or `State: paused` and make `Next` the
207
- one exact user decision needed to continue.
166
+ When the command only recommends work, use the same compact shape and end with
167
+ `Next commands:` from Section 9. When the command pauses, make the first next
168
+ command the exact user decision or command needed to continue.
208
169
 
209
170
  ### 11. Command Family UX
210
171
  Godpowers has many leaf commands, but user-facing routing should start from
211
- families. Keep the full command surface available while presenting these
212
- families first:
172
+ families and likely next moves. Keep the full command surface available, but
173
+ show the full catalog only when the user asks for `/god-help all`,
174
+ `/god-help <family>`, `/god-help search <keyword>`, or a direct command.
213
175
 
214
176
  - Start: start or import a project.
215
177
  - Continue: understand state and choose the next move.
@@ -225,9 +187,9 @@ families first:
225
187
 
226
188
  When choosing between similar commands, use the ladders from
227
189
  `lib/command-families.js`: capture ladder, work size ladder, verification
228
- ladder, status views, and trigger precedence. `/god-help` should render
229
- families before leaf commands, and `/god` should use the family helpers before
230
- asking the user to choose from a long list.
190
+ ladder, status views, and trigger precedence. `/god-help` should render 3 to 6
191
+ state-relevant choices by default, and `/god` should recommend one command
192
+ before showing alternatives.
231
193
 
232
194
  ### 12. User-Facing Vocabulary
233
195
  Godpowers may use internal words such as "arc" in routing, recipes, and agent
@@ -249,32 +211,29 @@ and roadmap visibility when those files exist or are expected. Show whether
249
211
  the PRD is done, whether the roadmap exists, which milestone or tier is active,
250
212
  how close the tracked workflow is to completion, and the next concrete move.
251
213
 
252
- ### 13. Auto-Invoke Visibility
214
+ ### 13. Automatic Work Visibility
253
215
  When Godpowers automatically runs another command, agent, or local runtime
254
- helper, show the user what happened. Do not describe these as "background"
255
- unless they are truly detached from the current run. Most Godpowers sync work
256
- is auto-invoked but still part of the current workflow.
216
+ helper, make the user-visible message proportional to the outcome. Internal
217
+ helper names do not appear by default.
257
218
 
258
- Use this shape whenever an automatic step runs or is skipped:
219
+ If the automatic step changed user-visible artifacts or changed the next
220
+ recommendation, say it in one plain sentence:
259
221
 
260
222
  ```
261
- Auto-invoked:
262
- Trigger: <what caused this automatic step>
263
- Agent: <god-updater | god-context-writer | none, local runtime only>
264
- Local syncs:
265
- + <feature-awareness | planning-system-import | reverse-sync | source-sync | repo-doc-sync | repo-surface-sync | route-quality-sync | recipe-coverage-sync | release-surface-sync | host-capabilities | dogfood-runner | pillars-sync | checkpoint-sync | context-refresh>: <result or skipped reason>
266
- Artifacts: <changed files, no-op, or deferred>
267
- Log: <SYNC-LOG.md, CHECKPOINT.md, REVIEW-REQUIRED.md, or none>
223
+ Synced project artifacts after the change. Details were written to .godpowers/SYNC-LOG.md.
268
224
  ```
269
225
 
270
- If no agent was spawned, say so plainly:
226
+ If the automatic step is routine and does not change the recommendation, keep
227
+ the details in `.godpowers/SYNC-LOG.md`, `.godpowers/CHECKPOINT.md`, or
228
+ `.godpowers/REVIEW-REQUIRED.md` without printing a card.
271
229
 
272
- ```
273
- Agent: none, local runtime only
274
- Why: this path calls lib/reverse-sync.run directly
275
- ```
230
+ Use a detailed `Auto-invoked:` card only for `--verbose`, debugging,
231
+ release-gate evidence, or a direct user request for automation internals.
232
+ When shown, it must name the user-facing trigger, changed artifacts, and log
233
+ path before any internal helper id.
276
234
 
277
- Automatic steps that especially need visible reporting:
235
+ Automatic steps that especially need a concise note when they change the next
236
+ recommendation, and a log entry otherwise:
278
237
  - `/god-sync` spawning `god-updater`
279
238
  - `god-updater` calling reverse-sync, Pillars sync, checkpoint sync, or
280
239
  AI-tool context refresh
package/bin/install.js CHANGED
@@ -53,11 +53,22 @@ function showHelp() {
53
53
  log(' next Show the dashboard and recommended next command');
54
54
  log(' state advance Update one tracked Godpowers state step');
55
55
  log(' gate Check a tier artifact gate');
56
+ log(' verify Run a command as executed verification evidence');
57
+ log(' can-close Check whether a substep has the evidence to close');
58
+ log(' route Classify a prompt into an entry play (quarterback)');
59
+ log(' report Show the verification play-by-play since last report');
60
+ log(' reflect Record a structured reflection to the ledger');
61
+ log(' memory Set, get, list, or clear ledger memory entries');
62
+ log(' lesson Add or list reusable lessons in the ledger');
63
+ log(' outcome Start, check, stop, or inspect a bounded retry loop');
64
+ log(' import-ledger Import an existing .mythify/ ledger into .godpowers/ledger/');
56
65
  log(' mcp-info Show read-only MCP companion setup instructions');
57
66
  log(' quick-proof Show a runnable proof from the shipped fixture');
58
67
  log(' automation-status Show host automation provider support');
59
68
  log(' automation-setup Show an opt-in automation setup plan');
60
69
  log(' dogfood Run built-in messy-repo dogfood scenarios');
70
+ log(' demo Show the shipped sandbox proof');
71
+ log(' surface Preview or apply an installed command profile');
61
72
  log(' extension-scaffold Create a publishable extension pack skeleton');
62
73
  log('');
63
74
  log('Command families:');
@@ -70,8 +81,19 @@ function showHelp() {
70
81
  log(' --step=<name> Step for state advance, such as prd or tier-1.prd');
71
82
  log(' --status=<status> Status for state advance');
72
83
  log(' --tier=<name> Tier for gate: prd, design, arch, roadmap, stack, repo, build, or harden');
84
+ log(' --substep=<id> Substep for verify, such as tier-2.build');
85
+ log(' --claim=<text> Claim a verify command checks');
86
+ log(' --timeout=<seconds> Kill a verify command after this many seconds (default 300)');
87
+ log(' --attest Record a self-reported attested claim instead of executing');
88
+ log(' --evidence=<text> Self-reported evidence for verify --attest');
89
+ log(' --since=<last|all> Window for report: new records since last, or all');
90
+ log(' --peek Show the report without advancing the report cursor');
73
91
  log(' --json Emit JSON for status, next, proof, or automation commands');
74
92
  log(' --brief Render compact output for status, next, or proof');
93
+ log(' --full Render complete output for status, next, or demo');
94
+ log(' --dry-run Preview a surface profile change');
95
+ log(' --apply Apply a surface profile change');
96
+ log(' --runtime=<name> Runtime target for surface, such as codex');
75
97
  log(' --name=<scope/name> Extension package name for extension-scaffold');
76
98
  log(' --output=<path> Extension output root for extension-scaffold');
77
99
  log(' --skill=<name> Extension skill name for extension-scaffold');
@@ -105,11 +127,22 @@ function showHelp() {
105
127
  log(' npx godpowers next --project=.');
106
128
  log(' npx godpowers state advance --step=prd --status=done --project=.');
107
129
  log(' npx godpowers gate --tier=prd --project=.');
130
+ log(' npx godpowers verify "npm test" --substep tier-2.build --claim "build slice tests pass" --project=.');
131
+ log(' npx godpowers can-close --substep tier-2.build --project=.');
132
+ log(' npx godpowers route "add a feature" --project=.');
133
+ log(' npx godpowers report --since last --project=.');
134
+ log(' npx godpowers reflect --action "ran build" --outcome failure --next "fix the failing test" --project=.');
135
+ log(' npx godpowers memory set decision "use postgres" --category decision --project=.');
136
+ log(' npx godpowers lesson add "guard inputs before parsing" --tags parsing --project=.');
137
+ log(' npx godpowers outcome start green-build --verify "npm test" --budget 3 --substep tier-2.build --project=.');
138
+ log(' npx godpowers import-ledger --from ../legacy/.mythify --project=.');
108
139
  log(' npx godpowers mcp-info --project=.');
109
140
  log(' npx godpowers quick-proof --project=.');
110
141
  log(' npx godpowers automation-status --project=.');
111
142
  log(' npx godpowers automation-setup --project=.');
112
143
  log(' npx godpowers dogfood');
144
+ log(' npx godpowers demo --project=.');
145
+ log(' npx godpowers surface --profile=builder --codex --global --dry-run');
113
146
  log(' npx godpowers extension-scaffold --name=@godpowers/my-pack --output=.');
114
147
  log(' npx godpowers --claude --global');
115
148
  log(' npx godpowers --claude --global --profile=core');
@@ -216,11 +249,22 @@ module.exports = {
216
249
  runAutomationCommand: cliDispatch.runAutomationCommand,
217
250
  runDashboardCommand: cliDispatch.runDashboardCommand,
218
251
  runDogfoodCommand: cliDispatch.runDogfoodCommand,
252
+ runDemoCommand: cliDispatch.runDemoCommand,
219
253
  runQuickProofCommand: cliDispatch.runQuickProofCommand,
254
+ runSurfaceCommand: cliDispatch.runSurfaceCommand,
220
255
  runMcpInfoCommand: cliDispatch.runMcpInfoCommand,
221
256
  runExtensionScaffoldCommand: cliDispatch.runExtensionScaffoldCommand,
222
257
  runGateCommand: cliDispatch.runGateCommand,
223
258
  runStateCommand: cliDispatch.runStateCommand,
259
+ runVerifyCommand: cliDispatch.runVerifyCommand,
260
+ runCanCloseCommand: cliDispatch.runCanCloseCommand,
261
+ runRouteCommand: cliDispatch.runRouteCommand,
262
+ runReportCommand: cliDispatch.runReportCommand,
263
+ runReflectCommand: cliDispatch.runReflectCommand,
264
+ runMemoryCommand: cliDispatch.runMemoryCommand,
265
+ runLessonCommand: cliDispatch.runLessonCommand,
266
+ runOutcomeCommand: cliDispatch.runOutcomeCommand,
267
+ runImportLedgerCommand: cliDispatch.runImportLedgerCommand,
224
268
  applyDefaultRuntimeSelection,
225
269
  runInstall,
226
270
  runUninstall,
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://godpowers.dev/schema/state.v1.json",
3
+ "version": "1.0.0",
4
+ "project": {
5
+ "name": "harden-pass",
6
+ "started": "2026-06-10T00:00:00.000Z"
7
+ },
8
+ "tiers": {
9
+ "tier-3": {
10
+ "harden": {
11
+ "status": "done",
12
+ "updated": "2026-06-10T18:08:00.000Z",
13
+ "verification": {
14
+ "commands": [
15
+ {
16
+ "command": "npm audit --omit=dev",
17
+ "status": "pass",
18
+ "exitCode": 0,
19
+ "ranAt": "2026-06-10T18:07:00.000Z"
20
+ }
21
+ ]
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
package/lib/README.md CHANGED
@@ -112,6 +112,7 @@ package-level integrations.
112
112
  | `installer-args.js` | Parse `bin/install.js` arguments and subcommands. |
113
113
  | `cli-dispatch.js` | Dispatch local CLI helper commands such as status, quick-proof, gate, dogfood, and extension-scaffold. |
114
114
  | `install-profiles.js` | Select smaller role-specific slash-command install surfaces. |
115
+ | `surface-profile.js` | Preview and apply runtime command surface profile switches after install. |
115
116
  | `installer-runtimes.js` | Map supported runtimes to their config directories. |
116
117
  | `package-identity.js` | Centralize package name, version, repository, docs, and command identity. |
117
118
  | `automation-providers.js` | Detect and configure host-native automation providers. |
@@ -33,7 +33,8 @@ const TIER_ARTIFACTS = {
33
33
 
34
34
  const TIER_STATE_STEPS = {
35
35
  design: { tierKey: 'tier-1', subStepKey: 'design' },
36
- build: { tierKey: 'tier-2', subStepKey: 'build' }
36
+ build: { tierKey: 'tier-2', subStepKey: 'build' },
37
+ harden: { tierKey: 'tier-3', subStepKey: 'harden' }
37
38
  };
38
39
 
39
40
  function normalizeTier(tier) {