godpowers 2.3.1 → 2.4.1

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 (148) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +56 -12
  3. package/RELEASE.md +24 -39
  4. package/SKILL.md +26 -3
  5. package/bin/install.js +6 -0
  6. package/lib/README.md +3 -1
  7. package/lib/adoption-metrics.js +87 -0
  8. package/lib/command-families.js +375 -0
  9. package/lib/feature-awareness.js +1 -1
  10. package/lib/quick-proof.js +10 -1
  11. package/lib/release-surface-sync.js +4 -1
  12. package/lib/route-quality-sync.js +41 -13
  13. package/lib/router.js +32 -0
  14. package/lib/workflow-helper-groups.js +50 -0
  15. package/lib/workflow-runner.js +6 -1
  16. package/package.json +1 -1
  17. package/routing/god-add-backlog.yaml +1 -0
  18. package/routing/god-add-tests.yaml +1 -0
  19. package/routing/god-add-todo.yaml +1 -0
  20. package/routing/god-agent-audit.yaml +6 -0
  21. package/routing/god-arch.yaml +1 -0
  22. package/routing/god-archaeology.yaml +1 -0
  23. package/routing/god-audit.yaml +1 -0
  24. package/routing/god-automation-setup.yaml +1 -0
  25. package/routing/god-automation-status.yaml +1 -0
  26. package/routing/god-budget.yaml +6 -0
  27. package/routing/god-build-agent.yaml +1 -0
  28. package/routing/god-build.yaml +1 -0
  29. package/routing/god-cache-clear.yaml +6 -0
  30. package/routing/god-check-todos.yaml +6 -0
  31. package/routing/god-context-scan.yaml +6 -0
  32. package/routing/god-context.yaml +1 -0
  33. package/routing/god-cost.yaml +6 -0
  34. package/routing/god-debug.yaml +1 -0
  35. package/routing/god-deploy.yaml +1 -0
  36. package/routing/god-design-impact.yaml +6 -0
  37. package/routing/god-design.yaml +1 -0
  38. package/routing/god-discuss.yaml +12 -0
  39. package/routing/god-docs.yaml +1 -0
  40. package/routing/god-doctor.yaml +6 -0
  41. package/routing/god-dogfood.yaml +1 -0
  42. package/routing/god-explore.yaml +1 -0
  43. package/routing/god-export-otel.yaml +1 -0
  44. package/routing/god-extension-add.yaml +6 -0
  45. package/routing/god-extension-info.yaml +6 -0
  46. package/routing/god-extension-list.yaml +6 -0
  47. package/routing/god-extension-remove.yaml +6 -0
  48. package/routing/god-extension-scaffold.yaml +1 -0
  49. package/routing/god-extract-learnings.yaml +1 -0
  50. package/routing/god-fast.yaml +1 -0
  51. package/routing/god-feature.yaml +1 -0
  52. package/routing/god-graph.yaml +6 -0
  53. package/routing/god-harden.yaml +1 -0
  54. package/routing/god-help.yaml +6 -0
  55. package/routing/god-hotfix.yaml +1 -0
  56. package/routing/god-hygiene.yaml +1 -0
  57. package/routing/god-init.yaml +1 -0
  58. package/routing/god-intel.yaml +1 -0
  59. package/routing/god-launch.yaml +6 -0
  60. package/routing/god-lifecycle.yaml +12 -0
  61. package/routing/god-link.yaml +1 -0
  62. package/routing/god-lint.yaml +1 -0
  63. package/routing/god-list-assumptions.yaml +6 -0
  64. package/routing/god-locate.yaml +6 -0
  65. package/routing/god-logs.yaml +12 -0
  66. package/routing/god-map-codebase.yaml +1 -0
  67. package/routing/god-metrics.yaml +6 -0
  68. package/routing/god-migrate.yaml +1 -0
  69. package/routing/god-mode.yaml +6 -0
  70. package/routing/god-next.yaml +12 -0
  71. package/routing/god-note.yaml +1 -0
  72. package/routing/god-observe.yaml +1 -0
  73. package/routing/god-org-context.yaml +1 -0
  74. package/routing/god-party.yaml +1 -0
  75. package/routing/god-pause-work.yaml +6 -0
  76. package/routing/god-plant-seed.yaml +1 -0
  77. package/routing/god-postmortem.yaml +1 -0
  78. package/routing/god-pr-branch.yaml +1 -0
  79. package/routing/god-prd.yaml +1 -0
  80. package/routing/god-preflight.yaml +1 -0
  81. package/routing/god-progress.yaml +7 -0
  82. package/routing/god-quick.yaml +1 -0
  83. package/routing/god-reconcile.yaml +6 -0
  84. package/routing/god-reconstruct.yaml +1 -0
  85. package/routing/god-redo.yaml +6 -0
  86. package/routing/god-refactor.yaml +1 -0
  87. package/routing/god-repair.yaml +1 -0
  88. package/routing/god-repo.yaml +1 -0
  89. package/routing/god-restore.yaml +1 -0
  90. package/routing/god-resume-work.yaml +6 -0
  91. package/routing/god-review-changes.yaml +1 -0
  92. package/routing/god-review.yaml +1 -0
  93. package/routing/god-roadmap-check.yaml +6 -0
  94. package/routing/god-roadmap-update.yaml +1 -0
  95. package/routing/god-roadmap.yaml +1 -0
  96. package/routing/god-rollback.yaml +1 -0
  97. package/routing/god-scan.yaml +1 -0
  98. package/routing/god-set-profile.yaml +1 -0
  99. package/routing/god-settings.yaml +1 -0
  100. package/routing/god-skip.yaml +1 -0
  101. package/routing/god-smite.yaml +1 -0
  102. package/routing/god-spike.yaml +1 -0
  103. package/routing/god-sprint.yaml +6 -0
  104. package/routing/god-stack.yaml +1 -0
  105. package/routing/god-standards.yaml +1 -0
  106. package/routing/god-status.yaml +1 -0
  107. package/routing/god-stories.yaml +1 -0
  108. package/routing/god-story-build.yaml +1 -0
  109. package/routing/god-story-close.yaml +1 -0
  110. package/routing/god-story-verify.yaml +1 -0
  111. package/routing/god-story.yaml +1 -0
  112. package/routing/god-suite-init.yaml +1 -0
  113. package/routing/god-suite-patch.yaml +1 -0
  114. package/routing/god-suite-release.yaml +1 -0
  115. package/routing/god-suite-status.yaml +6 -0
  116. package/routing/god-suite-sync.yaml +1 -0
  117. package/routing/god-sync.yaml +1 -0
  118. package/routing/god-tech-debt.yaml +1 -0
  119. package/routing/god-test-extension.yaml +6 -0
  120. package/routing/god-test-runtime.yaml +1 -0
  121. package/routing/god-thread.yaml +6 -0
  122. package/routing/god-trace.yaml +6 -0
  123. package/routing/god-undo.yaml +1 -0
  124. package/routing/god-update-deps.yaml +1 -0
  125. package/routing/god-upgrade.yaml +1 -0
  126. package/routing/god-version.yaml +1 -0
  127. package/routing/god-workstream.yaml +6 -0
  128. package/routing/god.yaml +6 -0
  129. package/schema/routing.v1.json +62 -4
  130. package/schema/workflow.v1.json +14 -0
  131. package/skills/god-doctor.md +1 -1
  132. package/skills/god-help.md +38 -3
  133. package/skills/god-next.md +19 -2
  134. package/skills/god-status.md +13 -0
  135. package/skills/god-sync.md +1 -1
  136. package/skills/god.md +53 -1
  137. package/workflows/audit-only.yaml +2 -2
  138. package/workflows/bluefield-arc.yaml +3 -7
  139. package/workflows/brownfield-arc.yaml +4 -8
  140. package/workflows/deps-audit.yaml +2 -5
  141. package/workflows/docs-arc.yaml +2 -2
  142. package/workflows/feature-arc.yaml +3 -6
  143. package/workflows/full-arc.yaml +5 -11
  144. package/workflows/hotfix-arc.yaml +3 -6
  145. package/workflows/hygiene.yaml +2 -2
  146. package/workflows/migration-arc.yaml +3 -5
  147. package/workflows/postmortem.yaml +2 -5
  148. package/workflows/refactor-arc.yaml +3 -6
package/CHANGELOG.md CHANGED
@@ -7,6 +7,57 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.4.1] - 2026-06-08
11
+
12
+ ### Added
13
+ - Added adoption-proof outcome metrics for Quick Proof and Adoption Canary
14
+ reports, covering commands to first signal, disk-state source, missing
15
+ artifacts, next command, host level, and host gaps.
16
+ - Added the First 10 Minute Proof case study as a repo-verifiable public proof
17
+ artifact before the first external repository canary.
18
+
19
+ ### Changed
20
+ - Updated README and Getting Started to lead with `--profile=core` and the
21
+ brief Quick Proof path before full autonomy.
22
+ - Updated Quick Proof, Adoption Canary, Reference, Roadmap, and Proof
23
+ Transcript docs to separate observable adoption evidence from broader product
24
+ claims.
25
+ - Added surface-discipline guidance so new public commands require adoption
26
+ evidence before expanding the command surface.
27
+
28
+ ### Fixed
29
+ - Package guardrails now require the adoption metrics runtime helper so the
30
+ published package keeps Quick Proof and canary metrics available.
31
+
32
+ ## [2.4.0] - 2026-06-08
33
+
34
+ ### Added
35
+ - Added command-family UX metadata for start, continue, build, verify,
36
+ operate, maintain, capture, recover, extend, collaborate, and configure
37
+ while keeping every shipped leaf command available.
38
+ - Added capture, work-size, verification, status-view, and trigger-precedence
39
+ helpers in `lib/command-families.js`.
40
+ - Added typed route outcome metadata for contextual, verdict-based,
41
+ steady-state, session-end, and selection-based route exits.
42
+ - Added workflow helper groups with serialized plan expansion so closeout
43
+ helpers can be consolidated without hiding local runtime work.
44
+
45
+ ### Changed
46
+ - Updated `/god`, `/god-help`, `/god-next`, `/god-status`, README,
47
+ reference docs, recipes, architecture docs, command-flow docs, and
48
+ auto-invoke visibility docs to present the consolidated UX paths.
49
+ - Updated all shipped command routes with command family metadata.
50
+ - Updated repeated workflow closeout helper lists to named helper groups while
51
+ preserving explicit expanded helpers in generated plans.
52
+ - Updated extension recipe copy to describe current extension-pack-required
53
+ flows instead of old release annotations.
54
+
55
+ ### Fixed
56
+ - Route-quality sync now requires typed outcomes for flexible route exits
57
+ instead of accepting unexplained placeholder next routes.
58
+ - The full-arc e2e smoke test now verifies both helper groups and expanded
59
+ local helper visibility.
60
+
10
61
  ## [2.3.1] - 2026-06-08
11
62
 
12
63
  ### Added
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.3.1-blue)](CHANGELOG.md)
5
+ [![Version](https://img.shields.io/badge/version-2.4.1-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.**
@@ -13,20 +13,19 @@ tool** (Claude Code, Codex, Cursor, etc.) that orchestrate **specialist agents**
13
13
  in fresh contexts to do the work.
14
14
 
15
15
  Want the short proof first? Start with [Quick Proof](docs/quick-proof.md) to
16
- run `npx godpowers quick-proof --project=.`, see transcript excerpts, pick a
17
- starter command set, and understand runtime expectations before reading the
18
- full reference.
16
+ run `npx godpowers quick-proof --project=. --brief`, see outcome metrics, pick
17
+ a starter command set, and understand runtime expectations before reading the
18
+ full reference. The [First 10 Minute Proof Case Study](docs/case-studies/first-10-minute-proof.md)
19
+ shows the same evidence as a before-and-after adoption story.
19
20
 
20
21
  Godpowers makes AI coding accountable: every serious run should leave disk
21
22
  state, artifacts, validation gates, host guarantees, and a next action. Code is
22
23
  only one output. The project memory and proof trail matter too.
23
24
 
24
- Version 2.3.1 keeps the proof loop executable and adds release-surface
25
- hardening. Extension authors get `/god-extension-scaffold`, public starter
26
- paths are regression-tested against the actual router, host capability reports
27
- include optional code-intelligence tooling, clean user dashboards avoid
28
- maintainer-repo drift, and symlink handling is hardened across extension,
29
- planning-system, and cache paths.
25
+ Version 2.4.1 keeps the 2.4 command-family UX and adds a clearer first trust
26
+ step: Quick Proof outcome metrics, a First 10 Minute Proof case study,
27
+ profile-first onboarding, and surface-discipline guidance for future command
28
+ growth.
30
29
 
31
30
  Maintainer hardening continues on the 2.x line with small, audited public
32
31
  surface updates when they close real workflow gaps. The 2.1.0 patch closes a command-injection vector in the
@@ -49,6 +48,20 @@ next command, why it is recommended, whether the project is ready, the first
49
48
  blockers that need attention, and whether the current host can provide full,
50
49
  degraded, or unknown runtime guarantees.
51
50
 
51
+ ### Ten Minute Proof Path
52
+
53
+ Run this before deciding whether Godpowers is worth a full project arc:
54
+
55
+ ```bash
56
+ npx godpowers quick-proof --project=. --brief
57
+ npx godpowers status --project=. --brief
58
+ npx godpowers next --project=. --brief
59
+ ```
60
+
61
+ The first command should produce disk-state evidence, missing-artifact
62
+ visibility, a next command, host guarantees, and outcome metrics. The next two
63
+ commands show what Godpowers can infer from your current project.
64
+
52
65
  It fuses four disciplines into one unified workflow:
53
66
 
54
67
  - **Native project context** - every Godpowers project is a Pillars project:
@@ -82,7 +95,7 @@ should prove:
82
95
  ## Install
83
96
 
84
97
  ```bash
85
- npx godpowers --claude --global
98
+ npx godpowers --claude --global --profile=core
86
99
  ```
87
100
 
88
101
  Other targets: `--codex`, `--cursor`, `--windsurf`, `--opencode`, `--gemini`,
@@ -96,7 +109,8 @@ The installer copies:
96
109
  - Codex agent metadata to `<runtime>/agents/*.toml`
97
110
  - SessionStart hook (Claude Code only) to `<runtime>/hooks/`
98
111
 
99
- Installer profiles keep the visible command surface calm:
112
+ Installer profiles keep the visible command surface calm. Start with `core` or
113
+ `builder` unless you already know you need the full maintainer surface:
100
114
 
101
115
  ```bash
102
116
  npx godpowers --claude --global --profile=core
@@ -109,6 +123,16 @@ preserves the complete command surface, while the smaller profiles install the
109
123
  commands most relevant to the role. `--minimal` is an alias for
110
124
  `--profile=core`.
111
125
 
126
+ Use profiles as journeys:
127
+
128
+ | Journey | Profile |
129
+ |---|---|
130
+ | I want the basics | `core` |
131
+ | I build products | `builder` |
132
+ | I maintain Godpowers or mature repos | `maintainer` |
133
+ | I coordinate suites | `suite` |
134
+ | I want everything | `full` |
135
+
112
136
  Agent spawning is host-native. Claude uses its native agent/task interface,
113
137
  Codex uses installed `agents/*.toml` metadata backed by the same Markdown agent
114
138
  contracts, and the other runtimes use their supported agent or subagent
@@ -185,6 +209,10 @@ hook does the same thing when you open a new session in a Godpowers project.
185
209
  If the full command surface feels large, begin with one of these paths and only
186
210
  learn the next command when Godpowers recommends it.
187
211
 
212
+ `/god-help` presents command families first: start, continue, build, verify,
213
+ operate, maintain, capture, recover, extend, collaborate, and configure. Leaf
214
+ commands remain direct shortcuts.
215
+
188
216
  | Goal | Starter path |
189
217
  |---|---|
190
218
  | Start a product | `/god-init`, `/god-prd`, `/god-design`, `/god-arch`, `/god-roadmap`, `/god-stack`, `/god-repo`, `/god-build` |
@@ -195,6 +223,21 @@ learn the next command when Godpowers recommends it.
195
223
  | Maintain project health | `/god-hygiene`, `/god-update-deps`, `/god-docs`, `/god-check-todos` |
196
224
  | Extend Godpowers | `/god-extension-scaffold --name=@godpowers/my-pack --output=.`, `/god-test-extension`, `/god-extension-add`, `/god-extension-list` |
197
225
 
226
+ ### Outcome Metrics
227
+
228
+ Godpowers reports adoption and run signals separately from narrative claims:
229
+
230
+ | Metric | Where it appears |
231
+ |---|---|
232
+ | Commands to first signal | `quick-proof` outcome metrics |
233
+ | Next command and reason | `quick-proof`, `status`, `next`, `/god-next` |
234
+ | Missing artifacts | dashboard planning visibility |
235
+ | Host gaps | host guarantee line |
236
+ | Run duration, pauses, retries, cost | `/god-metrics`, `/god-trace`, `/god-cost` |
237
+
238
+ New public command surface should be added only when existing families,
239
+ ladders, profiles, recipes, and docs cannot express a proven user need.
240
+
198
241
  The same status engine is available from the installer CLI for humans, CI,
199
242
  Codex, Claude, Cursor, Gemini, OpenCode, Windsurf, Antigravity, and any host
200
243
  runtime that can execute Node:
@@ -497,6 +540,7 @@ Pi. T3 Code inherits from the underlying agent (Codex / Claude / OpenCode).
497
540
 
498
541
  - [Getting Started](docs/getting-started.md)
499
542
  - [Quick Proof](docs/quick-proof.md)
543
+ - [First 10 Minute Proof Case Study](docs/case-studies/first-10-minute-proof.md)
500
544
  - [Concepts](docs/concepts.md)
501
545
  - [Command reference (all 112 skills + 40 agents)](docs/reference.md)
502
546
  - [Feature awareness](docs/feature-awareness.md)
package/RELEASE.md CHANGED
@@ -1,12 +1,11 @@
1
- # Godpowers 2.3.1 Release
1
+ # Godpowers 2.4.1 Release
2
2
 
3
3
  > Status: Ready for package verification
4
4
  > Date: 2026-06-08
5
5
 
6
- Godpowers 2.3.1 is an accountability and release-surface hardening release for
7
- the 2.x line. It strengthens planning grounding, package legitimacy, install
8
- profiles, atomic persistence, executor recovery, extension authoring,
9
- front-door route coverage, host capability reporting, and dashboard behavior.
6
+ Godpowers 2.4.1 is an adoption-proof patch for the 2.4 line. It keeps the
7
+ 2.4.0 command-family UX intact while making the first trust step smaller,
8
+ measurable, and easier to inspect before a user commits to a full project arc.
10
9
 
11
10
  ## What's in this release
12
11
 
@@ -17,52 +16,38 @@ front-door route coverage, host capability reporting, and dashboard behavior.
17
16
 
18
17
  ## Highlights
19
18
 
20
- - `/god-extension-scaffold` gives extension authors a first-class
21
- slash-command path before `/god-test-extension` and `/god-extension-add`.
22
- - Public `/god` intent matching now covers the starter phrases users are most
23
- likely to type: start a product, add a feature, fix production, audit an
24
- existing repo, ship a release, maintain health, and extend Godpowers.
25
- - Quick Proof and README starter paths are now regression-tested against the
26
- actual router and recipe engine.
27
- - User project dashboards no longer show maintainer-repository documentation
28
- drift when a clean non-Godpowers project is inspected.
29
- - Host capability reporting now includes optional code-intelligence tooling
30
- without treating missing optional tools as a host degradation.
31
- - Extension install, planning-system detection, and agent-cache cleanup are
32
- hardened around symlinked paths that point outside trusted source trees.
33
- - Source-grounded planning records existing files, existing symbols, planned new
34
- artifacts, and unchecked references before build execution.
35
- - Package legitimacy checks give stack and dependency decisions a concrete npm
36
- evidence gate before recommending package-backed choices.
37
- - Installer profiles let users install a smaller role-based command surface
38
- with `--profile=<name>` or `--minimal`.
39
- - Atomic write helpers now protect core state and ledger writes from partial
40
- file updates.
41
- - Executor repair classification names whether a failed attempt should retry,
42
- decompose, prune, or escalate.
43
- - Public migration language now uses neutral legacy-planning terminology so
44
- Godpowers is not confused with external workflow products.
45
- - Architecture docs now include an executable audit map for disconnected
46
- commands, actions, workflows, recipes, and package surfaces.
19
+ - Quick Proof now reports outcome metrics: commands to first signal,
20
+ disk-state source, tracked steps, missing planning artifacts, next command,
21
+ host level, and host gaps.
22
+ - Adoption Canary reports now include CLI-verifiable outcome metrics for
23
+ quick-proof, status, and next signals.
24
+ - README and Getting Started now lead with `--profile=core` and the brief Quick
25
+ Proof path before full autonomy.
26
+ - The First 10 Minute Proof case study documents the local before-and-after
27
+ proof while clearly naming what still requires an external repository canary.
28
+ - Reference and Roadmap docs now include surface-discipline guidance: try
29
+ families, ladders, profiles, recipes, typed route outcomes, and docs before
30
+ adding new public commands.
31
+ - Package guardrails now require `lib/adoption-metrics.js`.
47
32
 
48
33
  ## Validation
49
34
 
50
35
  - `npm test` green across the full suite
51
- - `npm run lint` clean
52
- - `npm run release:check` green (tests, audit, package contents)
53
- - `npm pack` creates a local `godpowers-2.3.1.tgz` tarball for package
36
+ - `npm run test:audit` green
37
+ - `npm run pack:check` green
38
+ - `npm pack` creates a local `godpowers-2.4.1.tgz` tarball for package
54
39
  inspection
55
40
 
56
41
  ## Upgrade
57
42
 
58
- - `npm install -g godpowers@2.3.1` or `npx godpowers@2.3.1`
43
+ - `npm install -g godpowers@2.4.1` or `npx godpowers@2.4.1`
59
44
  - Re-run `/god-context` in each project to refresh installed runtime metadata
60
45
  - No breaking changes; existing `.godpowers/` state is compatible. Users who
61
46
  want a compact install can run `npx godpowers --profile=core`.
62
47
 
63
48
  ## Notes
64
49
 
65
- - GitHub release creation for `v2.3.1`
50
+ - GitHub release creation for `v2.4.1`
66
51
  - The tag should match the npm package version
67
- - The `v2.3.1` tag should point to the release commit that matches the npm
68
- `godpowers@2.3.1` package.
52
+ - The `v2.4.1` tag should point to the release commit that matches the npm
53
+ `godpowers@2.4.1` package.
package/SKILL.md CHANGED
@@ -198,7 +198,30 @@ When the command only recommends work, keep the same dashboard but set
198
198
  command pauses, set `State: blocked` or `State: paused` and make `Next` the
199
199
  one exact user decision needed to continue.
200
200
 
201
- ### 11. User-Facing Vocabulary
201
+ ### 11. Command Family UX
202
+ Godpowers has many leaf commands, but user-facing routing should start from
203
+ families. Keep the full command surface available while presenting these
204
+ families first:
205
+
206
+ - Start: start or import a project.
207
+ - Continue: understand state and choose the next move.
208
+ - Build: plan, implement, test, and ship product work.
209
+ - Verify: check artifacts, code, runtime behavior, and release readiness.
210
+ - Operate: deploy, observe, harden, launch, and respond in production.
211
+ - Maintain: keep artifacts, docs, dependencies, context, and repo surfaces current.
212
+ - Capture: save thoughts, tasks, backlog items, seeds, and learnings.
213
+ - Recover: undo, repair, restore, skip, or diagnose broken state.
214
+ - Extend: install, inspect, test, remove, or author extension packs.
215
+ - Collaborate: coordinate people, workstreams, suites, sprints, and pull requests.
216
+ - Configure: tune settings, budgets, cache, profiles, help, and version info.
217
+
218
+ When choosing between similar commands, use the ladders from
219
+ `lib/command-families.js`: capture ladder, work size ladder, verification
220
+ ladder, status views, and trigger precedence. `/god-help` should render
221
+ families before leaf commands, and `/god` should use the family helpers before
222
+ asking the user to choose from a long list.
223
+
224
+ ### 12. User-Facing Vocabulary
202
225
  Godpowers may use internal words such as "arc" in routing, recipes, and agent
203
226
  implementation notes. Do not require the user to decode that word in visible
204
227
  output.
@@ -218,7 +241,7 @@ and roadmap visibility when those files exist or are expected. Show whether
218
241
  the PRD is done, whether the roadmap exists, which milestone or tier is active,
219
242
  how close the tracked workflow is to completion, and the next concrete move.
220
243
 
221
- ### 12. Auto-Invoke Visibility
244
+ ### 13. Auto-Invoke Visibility
222
245
  When Godpowers automatically runs another command, agent, or local runtime
223
246
  helper, show the user what happened. Do not describe these as "background"
224
247
  unless they are truly detached from the current run. Most Godpowers sync work
@@ -271,7 +294,7 @@ Automatic steps that especially need visible reporting:
271
294
  - dogfood runner execution during `/god-dogfood`, release checks, or explicit
272
295
  dogfood requests
273
296
 
274
- ### 13. Proactive Auto-Invoke Policy
297
+ ### 14. Proactive Auto-Invoke Policy
275
298
  Godpowers should be proactive from disk evidence, not from guesswork. Before
276
299
  auto-invoking anything, classify the action by risk and apply the safest
277
300
  allowed behavior.
package/bin/install.js CHANGED
@@ -18,6 +18,7 @@ const {
18
18
  countInstalledSurface
19
19
  } = require('../lib/installer-core');
20
20
  const { describeProfiles } = require('../lib/install-profiles');
21
+ const commandFamilies = require('../lib/command-families');
21
22
  const identity = require('../lib/package-identity');
22
23
 
23
24
  const VERSION = identity.PACKAGE_VERSION;
@@ -55,6 +56,11 @@ function showHelp() {
55
56
  log(' dogfood Run built-in messy-repo dogfood scenarios');
56
57
  log(' extension-scaffold Create a publishable extension pack skeleton');
57
58
  log('');
59
+ log('Command families:');
60
+ for (const family of commandFamilies.COMMAND_FAMILIES) {
61
+ log(` ${family.id.padEnd(12)} ${family.purpose}`);
62
+ }
63
+ log('');
58
64
  log('Options:');
59
65
  log(' --project=<path> Project root for status, next, proof, or automation commands');
60
66
  log(' --json Emit JSON for status, next, proof, or automation commands');
package/lib/README.md CHANGED
@@ -17,7 +17,7 @@ package-level integrations.
17
17
  | `host-capabilities.js` | Detect host guarantees for shell, git, npm, agent spawning, optional code intelligence, extension authoring, and suite dry-runs. |
18
18
  | `repo-doc-sync.js` | Detect and refresh mechanical repository documentation surfaces. |
19
19
  | `repo-surface-sync.js` | Detect structural drift across commands, routes, packages, agents, workflows, recipes, extensions, and release policy. |
20
- | `route-quality-sync.js` | Detect symbolic route spawns, unresolved agent targets, and unapproved contextual route exits. |
20
+ | `route-quality-sync.js` | Detect symbolic route spawns, unresolved agent targets, and untyped contextual route exits. |
21
21
  | `recipe-coverage-sync.js` | Detect missing high-frequency intent recipe coverage. |
22
22
  | `release-surface-sync.js` | Detect release-facing drift across badges, release notes, changelog, package checks, and release checklist policy. |
23
23
  | `dogfood-runner.js` | Run deterministic messy-repo scenarios against migration, host, extension, and suite release behavior. |
@@ -41,9 +41,11 @@ package-level integrations.
41
41
  | Module | Purpose |
42
42
  |--------|---------|
43
43
  | `router.js` | Resolve user intent to skills, agents, recipes, and workflows. |
44
+ | `command-families.js` | Define UX command families, status views, decision ladders, and trigger precedence helpers. |
44
45
  | `recipes.js` | Load and validate routing recipes. |
45
46
  | `workflow-parser.js` | Parse workflow YAML into executable steps. |
46
47
  | `workflow-runner.js` | Execute workflow steps with validation hooks. |
48
+ | `workflow-helper-groups.js` | Expand named workflow helper groups into explicit local helper names for plan visibility. |
47
49
  | `agent-cache.js` | Cache agent metadata for faster routing. |
48
50
  | `agent-validator.js` | Validate agent frontmatter and contracts. |
49
51
  | `agent-refs.js` | Validate workflow agent references and scan skill/agent prose for phantom references. |
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Adoption proof metrics.
3
+ *
4
+ * These metrics keep first-user trust claims tied to observable CLI signals
5
+ * instead of narrative confidence.
6
+ */
7
+
8
+ function countMissingPlanning(planning = {}) {
9
+ return Object.values(planning)
10
+ .filter(item => item && item.status === 'missing')
11
+ .length;
12
+ }
13
+
14
+ function fromQuickProof(proof) {
15
+ const dashboard = proof.dashboard || {};
16
+ const progress = dashboard.progress || {};
17
+ const planning = dashboard.planning || {};
18
+ const next = dashboard.next || {};
19
+ const host = proof.host || {};
20
+ const hostGaps = Array.isArray(host.gaps) ? host.gaps : [];
21
+ const completed = Number.isFinite(progress.completed) ? progress.completed : 0;
22
+ const total = Number.isFinite(progress.total) ? progress.total : 0;
23
+
24
+ return {
25
+ commandsToFirstSignal: 1,
26
+ stateSource: proof.statePath || 'unknown',
27
+ trackedStepsComplete: completed,
28
+ trackedStepsTotal: total,
29
+ missingPlanningArtifacts: countMissingPlanning(planning),
30
+ nextCommand: next.command || 'describe the next intent',
31
+ nextReason: next.reason || 'No route was computed.',
32
+ hostLevel: host.level || 'unknown',
33
+ hostGapCount: hostGaps.length,
34
+ proofSignals: [
35
+ 'disk state',
36
+ 'missing artifact',
37
+ 'next command',
38
+ 'host guarantee'
39
+ ]
40
+ };
41
+ }
42
+
43
+ function render(metrics) {
44
+ return [
45
+ ` Commands to first signal: ${metrics.commandsToFirstSignal}`,
46
+ ` State source: ${metrics.stateSource}`,
47
+ ` Tracked steps: ${metrics.trackedStepsComplete} of ${metrics.trackedStepsTotal}`,
48
+ ` Missing planning artifacts: ${metrics.missingPlanningArtifacts}`,
49
+ ` Next command: ${metrics.nextCommand}`,
50
+ ` Host level: ${metrics.hostLevel}`,
51
+ ` Host gaps: ${metrics.hostGapCount}`
52
+ ].join('\n');
53
+ }
54
+
55
+ function canaryMetrics(outputs = {}) {
56
+ const quickProof = outputs.quickProof || '';
57
+ const status = outputs.status || '';
58
+ const next = outputs.next || '';
59
+ return {
60
+ cliSignalsCaptured: ['quick-proof', 'status', 'next']
61
+ .filter((name) => outputs[camelSignal(name)] && outputs[camelSignal(name)].trim()).length,
62
+ quickProofHasNext: /\bNext:\s+\S+/.test(quickProof),
63
+ statusHasDashboard: /Godpowers Dashboard|Current status:/.test(status),
64
+ nextHasRecommendation: /Suggested next command:|Recommended:|Next:/.test(next)
65
+ };
66
+ }
67
+
68
+ function camelSignal(name) {
69
+ if (name === 'quick-proof') return 'quickProof';
70
+ return name;
71
+ }
72
+
73
+ function renderCanary(metrics) {
74
+ return [
75
+ `- [DECISION] CLI signals captured: ${metrics.cliSignalsCaptured} of 3.`,
76
+ `- [DECISION] Quick Proof reported a next action: ${metrics.quickProofHasNext ? 'yes' : 'no'}.`,
77
+ `- [DECISION] Status rendered a dashboard signal: ${metrics.statusHasDashboard ? 'yes' : 'no'}.`,
78
+ `- [DECISION] Next rendered a recommendation signal: ${metrics.nextHasRecommendation ? 'yes' : 'no'}.`
79
+ ].join('\n');
80
+ }
81
+
82
+ module.exports = {
83
+ fromQuickProof,
84
+ render,
85
+ canaryMetrics,
86
+ renderCanary
87
+ };