godpowers 1.6.21 → 1.6.23

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 (72) hide show
  1. package/AGENTS.md +6 -0
  2. package/CHANGELOG.md +75 -0
  3. package/INSPIRATION.md +6 -0
  4. package/README.md +25 -9
  5. package/RELEASE.md +50 -58
  6. package/SKILL.md +24 -4
  7. package/agents/god-orchestrator.md +18 -3
  8. package/agents/god-reconciler.md +52 -5
  9. package/agents/god-updater.md +84 -2
  10. package/bin/install.js +81 -1
  11. package/fixtures/dogfood/extension-authoring/manifest.json +13 -0
  12. package/fixtures/dogfood/half-migrated-gsd/.planning/PROJECT.md +5 -0
  13. package/fixtures/dogfood/half-migrated-gsd/.planning/REQUIREMENTS.md +5 -0
  14. package/fixtures/dogfood/half-migrated-gsd/.planning/ROADMAP.md +5 -0
  15. package/fixtures/dogfood/half-migrated-gsd/manifest.json +16 -0
  16. package/fixtures/dogfood/host-degraded/manifest.json +5 -0
  17. package/fixtures/dogfood/host-full/home/.codex/agents/god-orchestrator.toml +2 -0
  18. package/fixtures/dogfood/host-full/manifest.json +5 -0
  19. package/fixtures/dogfood/suite-release-dry-run/.godpowers/suite-config.yaml +9 -0
  20. package/fixtures/dogfood/suite-release-dry-run/manifest.json +7 -0
  21. package/fixtures/dogfood/suite-release-dry-run/repo-a/package.json +4 -0
  22. package/fixtures/dogfood/suite-release-dry-run/repo-b/package.json +7 -0
  23. package/hooks/pre-tool-use.sh +13 -1
  24. package/hooks/session-start.sh +12 -0
  25. package/lib/README.md +3 -0
  26. package/lib/dashboard.js +30 -1
  27. package/lib/dogfood-runner.js +193 -0
  28. package/lib/events.js +6 -0
  29. package/lib/extension-authoring.js +154 -0
  30. package/lib/feature-awareness.js +30 -0
  31. package/lib/have-nots-validator.js +2 -2
  32. package/lib/host-capabilities.js +125 -0
  33. package/lib/release-surface-sync.js +6 -0
  34. package/lib/repo-surface-sync.js +58 -0
  35. package/lib/suite-state.js +90 -1
  36. package/lib/workflow-runner.js +4 -0
  37. package/package.json +5 -4
  38. package/references/HAVE-NOTS.md +16 -0
  39. package/references/orchestration/MODE-DETECTION.md +36 -3
  40. package/references/orchestration/README.md +5 -2
  41. package/references/planning/ROADMAP-ANTIPATTERNS.md +1 -1
  42. package/references/shared/ORCHESTRATORS.md +42 -11
  43. package/references/shared/README.md +4 -4
  44. package/routing/god-dogfood.yaml +35 -0
  45. package/schema/events.v1.json +9 -0
  46. package/schema/intent.v1.yaml.json +5 -1
  47. package/schema/recipe.v1.json +2 -1
  48. package/schema/routing.v1.json +20 -0
  49. package/schema/state.v1.json +51 -0
  50. package/schema/workflow.v1.json +31 -2
  51. package/skills/god-doctor.md +1 -1
  52. package/skills/god-dogfood.md +63 -0
  53. package/skills/god-mode.md +4 -1
  54. package/skills/god-reconcile.md +13 -4
  55. package/skills/god-version.md +2 -2
  56. package/templates/DOCS-UPDATE-LOG.md +14 -0
  57. package/templates/IMPORTED-CONTEXT.md +2 -0
  58. package/templates/INITIAL-FINDINGS.md +5 -0
  59. package/templates/PROGRESS.md +8 -0
  60. package/workflows/audit-only.yaml +12 -0
  61. package/workflows/bluefield-arc.yaml +16 -1
  62. package/workflows/brownfield-arc.yaml +17 -1
  63. package/workflows/deps-audit.yaml +13 -0
  64. package/workflows/docs-arc.yaml +23 -0
  65. package/workflows/feature-arc.yaml +14 -0
  66. package/workflows/full-arc.yaml +19 -0
  67. package/workflows/hotfix-arc.yaml +14 -0
  68. package/workflows/hygiene.yaml +6 -0
  69. package/workflows/migration-arc.yaml +15 -0
  70. package/workflows/postmortem.yaml +13 -0
  71. package/workflows/refactor-arc.yaml +14 -0
  72. package/workflows/spike.yaml +11 -0
@@ -143,6 +143,94 @@ function refreshFromRepos(hubPath) {
143
143
  return data;
144
144
  }
145
145
 
146
+ function readPackageName(repoPath) {
147
+ const file = path.join(repoPath, 'package.json');
148
+ if (!fs.existsSync(file)) return path.basename(repoPath);
149
+ try {
150
+ const pkg = JSON.parse(fs.readFileSync(file, 'utf8'));
151
+ return pkg.name || path.basename(repoPath);
152
+ } catch (err) {
153
+ return path.basename(repoPath);
154
+ }
155
+ }
156
+
157
+ function readPackageDeps(repoPath) {
158
+ const file = path.join(repoPath, 'package.json');
159
+ if (!fs.existsSync(file)) return {};
160
+ try {
161
+ const pkg = JSON.parse(fs.readFileSync(file, 'utf8'));
162
+ return {
163
+ ...(pkg.dependencies || {}),
164
+ ...(pkg.devDependencies || {}),
165
+ ...(pkg.peerDependencies || {}),
166
+ ...(pkg.optionalDependencies || {})
167
+ };
168
+ } catch (err) {
169
+ return {};
170
+ }
171
+ }
172
+
173
+ function siblingRecords(hubPath) {
174
+ const config = detector.readSuiteConfig(hubPath);
175
+ if (!config) return [];
176
+ return (config.siblings || []).map((sib) => {
177
+ if (typeof sib === 'string') {
178
+ const repoPath = path.resolve(hubPath, sib);
179
+ return { name: sib, path: repoPath, packageName: readPackageName(repoPath) };
180
+ }
181
+ const repoPath = path.resolve(hubPath, sib.path || sib.name);
182
+ return { name: sib.name, path: repoPath, packageName: readPackageName(repoPath) };
183
+ });
184
+ }
185
+
186
+ function planRelease(hubPath, repoName, version, opts = {}) {
187
+ const siblings = siblingRecords(hubPath);
188
+ const target = siblings.find((repo) => repo.name === repoName || repo.packageName === repoName);
189
+ if (!target) {
190
+ return {
191
+ mode: 'dry-run',
192
+ status: 'blocked',
193
+ repo: repoName,
194
+ version,
195
+ impacted: [],
196
+ blockers: [`${repoName} is not registered in suite-config.yaml`],
197
+ writes: []
198
+ };
199
+ }
200
+
201
+ const impacted = [];
202
+ for (const repo of siblings) {
203
+ if (repo.name === target.name) continue;
204
+ const deps = readPackageDeps(repo.path);
205
+ if (Object.prototype.hasOwnProperty.call(deps, target.packageName)
206
+ || Object.prototype.hasOwnProperty.call(deps, target.name)) {
207
+ impacted.push({
208
+ name: repo.name,
209
+ packageName: repo.packageName,
210
+ path: repo.path,
211
+ dependsOn: target.packageName,
212
+ currentRange: deps[target.packageName] || deps[target.name]
213
+ });
214
+ }
215
+ }
216
+
217
+ return {
218
+ mode: opts.apply ? 'apply-plan' : 'dry-run',
219
+ status: 'ready',
220
+ repo: target.name,
221
+ packageName: target.packageName,
222
+ version,
223
+ impacted,
224
+ blockers: [],
225
+ writes: [
226
+ { path: path.join(target.path, 'package.json'), action: 'bump-version' },
227
+ ...impacted.map((repo) => ({ path: path.join(repo.path, 'package.json'), action: 'update-dependency-range' })),
228
+ { path: path.join(hubPath, '.godpowers', 'suite-config.yaml'), action: 'update-version-table' },
229
+ { path: suiteSyncLogPath(hubPath), action: 'append-release-plan' }
230
+ ]
231
+ };
232
+ }
233
+
146
234
  /**
147
235
  * Write a human-readable STATE.md from the aggregate.
148
236
  */
@@ -216,5 +304,6 @@ module.exports = {
216
304
  writeSuiteState,
217
305
  refreshFromRepos,
218
306
  appendSyncLog,
219
- format
307
+ format,
308
+ planRelease
220
309
  };
@@ -111,6 +111,7 @@ function plan(workflow, ctx = {}) {
111
111
  review: job.review || null,
112
112
  'on-pass': job['on-pass'] || null,
113
113
  'on-fail': job['on-fail'] || null,
114
+ localHelpers: job['local-helpers'] || [],
114
115
  with: job.with || null
115
116
  });
116
117
  }
@@ -191,6 +192,9 @@ function serializePlan(p) {
191
192
  if (step.tier) lines.push(` tier: ${step.tier}`);
192
193
  if (step.agent) lines.push(` agent: ${step.agent}`);
193
194
  if (step.uses) lines.push(` uses: ${step.uses}`);
195
+ if (step.localHelpers && step.localHelpers.length) {
196
+ lines.push(` local-helpers: [${step.localHelpers.join(', ')}]`);
197
+ }
194
198
  if (step.needs && step.needs.length) {
195
199
  lines.push(` needs: [${step.needs.join(', ')}]`);
196
200
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "godpowers",
3
- "version": "1.6.21",
4
- "description": "AI-powered development system: 109 slash commands and 40 specialist agents that take a project from raw idea to hardened production. Runs inside Claude Code, Codex, Cursor, Windsurf, Gemini, and 10+ other AI coding tools.",
3
+ "version": "1.6.23",
4
+ "description": "AI-powered development system: 110 slash commands and 40 specialist agents that take a project from raw idea to hardened production. Runs inside Claude Code, Codex, Cursor, Windsurf, Gemini, and 10+ other AI coding tools.",
5
5
  "bin": {
6
6
  "godpowers": "./bin/install.js"
7
7
  },
8
8
  "scripts": {
9
- "test": "node scripts/validate-skills.js && node scripts/test-doc-surface-counts.js && bash scripts/smoke.sh && node scripts/test-runtime.js && node scripts/test-router.js && node scripts/test-recipes.js && node scripts/test-context-writer.js && node scripts/test-pillars.js && node scripts/test-artifact-linter.js && node scripts/test-artifact-diff.js && node scripts/test-design-foundation.js && node scripts/test-linkage.js && node scripts/test-impact.js && node scripts/test-reverse-sync.js && node scripts/test-planning-systems.js && node scripts/test-feature-awareness.js && node scripts/test-repo-doc-sync.js && node scripts/test-repo-surface-sync.js && node scripts/test-automation-surface-sync.js && node scripts/test-integration.js && node scripts/test-cross-artifact.js && node scripts/test-awesome-design.js && node scripts/test-skillui-bridge.js && node scripts/test-runtime-verification.js && node scripts/test-agent-browser.js && node scripts/test-mode-d.js && node scripts/test-runtime-heuristics.js && node scripts/test-agent-validator.js && node scripts/test-story-validator.js && node scripts/test-state.js && node scripts/test-dashboard.js && node scripts/test-automation-providers.js && node scripts/test-intent.js && node scripts/test-events.js && node scripts/test-golden-artifacts.js && node scripts/test-install-smoke.js && node scripts/test-checkpoint.js && node scripts/test-extensions.js && node scripts/test-event-reader.js && node scripts/test-state-lock.js && node scripts/test-cost-saver.js && node scripts/test-budget-onoff.js && node scripts/test-workflow-runner.js && npm run test:e2e && node scripts/test-otel-exporter.js && node scripts/test-extensions-publish.js",
10
- "prepublishOnly": "npm test",
9
+ "test": "node scripts/validate-skills.js && node scripts/test-doc-surface-counts.js && bash scripts/smoke.sh && node scripts/test-runtime.js && node scripts/test-router.js && node scripts/test-recipes.js && node scripts/test-context-writer.js && node scripts/test-pillars.js && node scripts/test-artifact-linter.js && node scripts/test-artifact-diff.js && node scripts/test-design-foundation.js && node scripts/test-linkage.js && node scripts/test-impact.js && node scripts/test-reverse-sync.js && node scripts/test-planning-systems.js && node scripts/test-feature-awareness.js && node scripts/test-repo-doc-sync.js && node scripts/test-repo-surface-sync.js && node scripts/test-automation-surface-sync.js && node scripts/test-host-capabilities.js && node scripts/test-extension-authoring.js && node scripts/test-dogfood-runner.js && node scripts/test-integration.js && node scripts/test-cross-artifact.js && node scripts/test-awesome-design.js && node scripts/test-skillui-bridge.js && node scripts/test-runtime-verification.js && node scripts/test-agent-browser.js && node scripts/test-mode-d.js && node scripts/test-runtime-heuristics.js && node scripts/test-agent-validator.js && node scripts/test-story-validator.js && node scripts/test-state.js && node scripts/test-dashboard.js && node scripts/test-automation-providers.js && node scripts/test-intent.js && node scripts/test-events.js && node scripts/test-golden-artifacts.js && node scripts/test-install-smoke.js && node scripts/test-checkpoint.js && node scripts/test-extensions.js && node scripts/test-event-reader.js && node scripts/test-state-lock.js && node scripts/test-cost-saver.js && node scripts/test-budget-onoff.js && node scripts/test-workflow-runner.js && npm run test:e2e && node scripts/test-otel-exporter.js && node scripts/test-extensions-publish.js",
10
+ "prepublishOnly": "npm run release:check",
11
11
  "validate-skills": "node scripts/validate-skills.js",
12
12
  "test:surface": "node scripts/test-doc-surface-counts.js",
13
13
  "smoke": "bash scripts/smoke.sh",
@@ -74,6 +74,7 @@
74
74
  "workflows/",
75
75
  "schema/",
76
76
  "lib/",
77
+ "fixtures/",
77
78
  "extensions/",
78
79
  "INSPIRATION.md",
79
80
  "RELEASE.md",
@@ -78,6 +78,22 @@ the Decisions Log. Fail.
78
78
  ### O-06 YOLO decisions silent
79
79
  --yolo flag was used but no YOLO-DECISIONS log was emitted. Fail.
80
80
 
81
+ ### O-07 Invisible auto-invoke
82
+ Automatic local helper or specialist work ran without reporting the trigger,
83
+ agent status, helper result, changed artifacts, and next route. Fail.
84
+
85
+ ### O-08 Stale dashboard closeout
86
+ A command completed without a disk-derived dashboard, action brief, or
87
+ recommended next command. Fail.
88
+
89
+ ### O-09 Sync-back ambiguity
90
+ Imported GSD, BMAD, or Superpowers context exists but the project does not say
91
+ whether managed sync-back is enabled, disabled, or not applicable. Fail.
92
+
93
+ ### O-10 Host guarantees hidden
94
+ The workflow relies on shell, git, npm, release tooling, or fresh-context
95
+ agent spawning without reporting host guarantee level. Fail.
96
+
81
97
  ---
82
98
 
83
99
  ## Tier 1: Planning Have-Nots
@@ -1,6 +1,7 @@
1
1
  # Mode Detection
2
2
 
3
- > How god-orchestrator decides which mode (A/B/C/D) to use.
3
+ > How god-orchestrator decides which mode (A/B/C/E) to use, and when Mode D
4
+ > suite coordination also applies.
4
5
 
5
6
  ## Mode A: Greenfield (default)
6
7
 
@@ -17,6 +18,8 @@
17
18
  - Some `.godpowers/<tier>/<artifact>` files already exist
18
19
  - OR existing codebase signals: package.json, Dockerfile, .github/workflows
19
20
  - User describes an existing project they want to add Godpowers to
21
+ - GSD, BMAD, or Superpowers planning context is detected and should be imported
22
+ into Godpowers preparation artifacts
20
23
 
21
24
  **Behavior**:
22
25
  1. For each canonical artifact path: check existence on disk
@@ -30,6 +33,8 @@ Codebase signals (for inferring partial completion):
30
33
  - `.github/workflows/` or `.gitlab-ci.yml` exists -> CI present
31
34
  - `tests/` or `*.test.*` files exist -> Build tier in progress
32
35
  - `Dockerfile` + deploy config -> Deploy tier may be done
36
+ - `.planning/`, `.gsd/`, `_bmad-output/`, `.bmad/`, or Superpowers specs ->
37
+ source-system import and managed sync-back may be needed
33
38
 
34
39
  ## Mode C: Audit
35
40
 
@@ -39,14 +44,34 @@ Codebase signals (for inferring partial completion):
39
44
 
40
45
  **Behavior**: run god-auditor on all existing artifacts. Build nothing.
41
46
 
42
- ## Mode D: Multi-repo (FUTURE WORK)
47
+ ## Mode E: Bluefield
48
+
49
+ **Signals**:
50
+ - User is starting new code inside an existing organization or platform.
51
+ - Parent or sibling directories contain org standards, shared packages,
52
+ deployment conventions, or platform contracts.
53
+ - User names shared constraints such as approved infrastructure, design system,
54
+ compliance baseline, or internal libraries.
55
+
56
+ **Behavior**:
57
+ 1. Load org context with `/god-org-context`.
58
+ 2. Run `/god-preflight` against the surrounding environment.
59
+ 3. Run a greenfield simulation audit against the org constraints.
60
+ 4. Use `god-greenfieldifier` to plan approved artifact updates.
61
+ 5. Continue the normal arc with the org constraints respected.
62
+
63
+ ## Mode D: Multi-repo suite membership
43
64
 
44
65
  **Signals**:
45
66
  - Working directory contains workspace config (pnpm-workspace.yaml, nx.json, lerna.json, turbo.json)
46
67
  - OR multiple sub-repos with their own `.git/`
47
68
  - User describes a system spanning multiple repos
69
+ - `.godpowers/suite/` exists or sibling repos share byte-identical managed files
48
70
 
49
- **Status**: documented but not implemented in v0.4. Falls back to Mode A or B for the current repo.
71
+ **Behavior**: Mode D is not a replacement for A/B/C/E. It is suite membership
72
+ managed by `god-coordinator` as a Tier-0 peer. Each repo still runs one of
73
+ A/B/C/E underneath, while `/god-suite-*` commands handle cross-repo status,
74
+ sync, patch, and release planning.
50
75
 
51
76
  ## Worked example
52
77
 
@@ -72,3 +97,11 @@ Reports to user:
72
97
  > Setting Mode B (gap-fill). I'll work backward to fill missing artifacts.
73
98
  > First: I need to understand what this codebase does. Let me start with
74
99
  > /god-explore or you can describe it briefly."
100
+
101
+ ## Existing Godpowers projects after upgrades
102
+
103
+ When `.godpowers/state.json` already exists, mode detection should also run
104
+ feature awareness. The safe local helper records the installed Godpowers
105
+ feature set, refreshes managed AI-tool context fences, and reports missing
106
+ planning-system import or sync-back opportunities. It does not overwrite
107
+ product artifacts.
@@ -5,14 +5,17 @@ god-orchestrator and related agents.
5
5
 
6
6
  ## Files
7
7
 
8
- - (empty for now; content to be added in future releases)
8
+ - [MODE-DETECTION.md](MODE-DETECTION.md): Mode A/B/C/E detection, plus Mode D
9
+ suite membership.
10
+ - [SCALE-DETECTION.md](SCALE-DETECTION.md): scale rubric and calibration.
9
11
 
10
12
  ## Contribution Welcome
11
13
 
12
14
  This directory is the natural home for:
13
- - Mode A/B/C/D detection heuristics with worked examples
15
+ - More Mode A/B/C/E and Mode D suite detection examples
14
16
  - Scale detection rubric with calibration cases
15
17
  - Pause vs no-pause decision tree examples
16
18
  - YOLO default rationale documents
19
+ - Auto-invoke visibility examples for local helpers and specialist spawns
17
20
 
18
21
  If you'd like to contribute, see [CONTRIBUTING.md](../../CONTRIBUTING.md).
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 1. The Date-Hopeful Roadmap
6
6
 
7
- **Sample**: "M-1: Auth early Q3"
7
+ **Sample**: "M-1: Auth, early Q3"
8
8
 
9
9
  **Why it fails**: "Early Q3" is not a gate, not a date, not a measurable
10
10
  state. The team treats it as soft, slippage compounds, and by mid-Q3 the
@@ -42,18 +42,47 @@ codebase mappers, story trackers). The rules below let them coexist.
42
42
  ## Migration into Godpowers
43
43
 
44
44
  If you arrive at Godpowers carrying artifacts from another system,
45
- `/god-init` Mode B (gap-fill) reads what exists and maps it forward:
46
-
47
- - Existing PRD-like documents -> `.godpowers/prd/PRD.md` (after
48
- substitution-test rewrite if needed)
45
+ `/god-init` Mode B (gap-fill) and `/god-migrate` read what exists and map it
46
+ forward:
47
+
48
+ - GSD `.planning/` or `.gsd/` context -> `.godpowers/prep/IMPORTED-CONTEXT.md`
49
+ and optional native seed artifacts
50
+ - BMAD `_bmad-output/` or `.bmad/` context -> imported preparation context and
51
+ open questions for PRD, architecture, roadmap, and stack
52
+ - Superpowers specs or plans -> imported preparation context and native
53
+ Godpowers seed artifacts when confidence is high
54
+ - Existing PRD-like documents -> `.godpowers/prd/PRD.md` after
55
+ substitution-test rewrite if needed
49
56
  - Existing ADRs -> `.godpowers/arch/adr/`
50
- - Existing roadmap / milestones -> `.godpowers/roadmap/ROADMAP.md`
51
- - Existing story / ticket files -> `.godpowers/stories/STORY-*.md`
52
- (via `/god-story`)
57
+ - Existing roadmap or milestones -> `.godpowers/roadmap/ROADMAP.md`
58
+ - Existing story or ticket files -> `.godpowers/stories/STORY-*.md` through
59
+ `/god-story`
60
+
61
+ Mode B does not delete the source files. It produces Godpowers artifacts
62
+ alongside them. Once parity is reached, you can retire the older system at
63
+ your own pace.
64
+
65
+ ## Managed sync-back
66
+
67
+ Godpowers can keep a source system informed without making that source system
68
+ authoritative. `/god-sync` writes managed companion files such as:
69
+
70
+ - `.planning/GODPOWERS-SYNC.md`
71
+ - `_bmad-output/GODPOWERS-SYNC.md`
72
+ - `docs/superpowers/GODPOWERS-SYNC.md`
73
+
74
+ The sync-back file is a bridge, not a second source of truth. It should contain
75
+ the current Godpowers status, imported-context mapping, open conflicts, and the
76
+ next safe route back into either system. It must be fenced or companion-owned
77
+ so Godpowers does not overwrite arbitrary GSD, BMAD, or Superpowers artifacts.
78
+
79
+ ## Existing Godpowers projects after upgrades
53
80
 
54
- Mode B does not delete the source files. It produces Godpowers
55
- artifacts alongside them. Once parity is reached, you can retire the
56
- older system at your own pace.
81
+ Feature awareness is the upgrade path for projects that are already
82
+ Godpowers-native. `/god-context refresh`, `/god-sync`, `/god-doctor --fix`, and
83
+ God Mode resume can record the current runtime feature set, refresh managed AI
84
+ tool fences, and point out missing migration, sync-back, dogfood, host
85
+ capability, extension-authoring, or suite-release readiness.
57
86
 
58
87
  ## Migration out of Godpowers
59
88
 
@@ -64,7 +93,9 @@ frontmatter. There's no proprietary binary state. To leave:
64
93
  2. Strip the fenced "Implementation Linkage" footers if the target
65
94
  system doesn't understand them (they're recoverable from code
66
95
  annotations).
67
- 3. Delete `.godpowers/`.
96
+ 3. Use the most recent managed sync-back file as the return-path summary if the
97
+ target system is GSD, BMAD, or Superpowers.
98
+ 4. Delete `.godpowers/`.
68
99
 
69
100
  ## What Godpowers does not try to be
70
101
 
@@ -4,11 +4,11 @@ Cross-tier reference content used by multiple agents.
4
4
 
5
5
  ## Files
6
6
 
7
- - [HAVE-NOTS.md](../HAVE-NOTS.md) (canonical failure-mode catalog, 115 entries)
7
+ - [HAVE-NOTS.md](../HAVE-NOTS.md) (canonical failure-mode catalog)
8
+ - [ORCHESTRATORS.md](ORCHESTRATORS.md): composition patterns with other AI
9
+ coding workflow systems, including migration and managed sync-back.
10
+ - [GLOSSARY.md](GLOSSARY.md): standardized vocabulary across tiers.
8
11
 
9
12
  ## Planned content
10
13
 
11
- - ORCHESTRATORS.md: composition patterns with other AI coding workflow systems
12
14
  - RESEARCH.md: dated research notes informing agent design decisions
13
- - GLOSSARY.md: standardized vocabulary across tiers (substitution test,
14
- three-label test, flip point, have-not, paper artifact, theater, AI-slop)
@@ -0,0 +1,35 @@
1
+ apiVersion: godpowers/v1
2
+ kind: CommandRouting
3
+ metadata:
4
+ command: /god-dogfood
5
+ description: Run messy-repo dogfood scenarios for release and autonomy readiness.
6
+ tier: 0
7
+
8
+ prerequisites:
9
+ required: []
10
+
11
+ execution:
12
+ spawns:
13
+ - built-in
14
+ secondary-spawns:
15
+ - god-greenfieldifier
16
+ - god-context-writer
17
+ - god-coordinator
18
+ context: current
19
+ writes: []
20
+
21
+ success-path:
22
+ next-recommended: /god-status
23
+
24
+ failure-path:
25
+ on-error: /god-repair
26
+ auto-spawn:
27
+ - god-greenfieldifier
28
+ - god-context-writer
29
+ - god-coordinator
30
+
31
+ endoff:
32
+ state-update: none
33
+ events:
34
+ - agent.start
35
+ - agent.end
@@ -48,6 +48,15 @@
48
48
  "tier.skip",
49
49
  "state.repair",
50
50
  "state.rollback",
51
+ "local-helper.run",
52
+ "local-helper.complete",
53
+ "dashboard.render",
54
+ "host-capabilities.detect",
55
+ "dogfood.run",
56
+ "source-system.import",
57
+ "source-system.sync-back",
58
+ "repo-doc-sync.detect",
59
+ "repo-surface-sync.detect",
51
60
  "extension.install",
52
61
  "extension.activate",
53
62
  "error",
@@ -108,7 +108,11 @@
108
108
  "properties": {
109
109
  "yolo": { "type": "boolean", "default": false },
110
110
  "conservative": { "type": "boolean", "default": false },
111
- "trash-retention-days": { "type": "integer", "minimum": 0, "default": 30 }
111
+ "trash-retention-days": { "type": "integer", "minimum": 0, "default": 30 },
112
+ "repo-doc-sync": { "type": "boolean", "default": true },
113
+ "repo-surface-sync": { "type": "boolean", "default": true },
114
+ "source-sync-back": { "type": "boolean", "default": true },
115
+ "dashboard-brief": { "type": "boolean", "default": true }
112
116
  }
113
117
  }
114
118
  },
@@ -27,7 +27,8 @@
27
27
  "enum": [
28
28
  "starting", "planning", "building", "shipping",
29
29
  "production", "maintaining", "recovering", "collaborating",
30
- "knowledge", "feature-addition", "configuration", "meta"
30
+ "knowledge", "feature-addition", "configuration", "meta",
31
+ "migration", "release", "extension", "suite", "dogfood"
31
32
  ]
32
33
  },
33
34
  "description": { "type": "string" }
@@ -65,6 +65,26 @@
65
65
  "type": "array",
66
66
  "items": { "type": "string" },
67
67
  "description": "Agents spawned by primary agent (e.g., reviewers)"
68
+ },
69
+ "local-helpers": {
70
+ "type": "array",
71
+ "description": "Visible local runtime helpers this command may run without spawning a specialist agent.",
72
+ "items": {
73
+ "type": "string",
74
+ "enum": [
75
+ "checkpoint-sync",
76
+ "feature-awareness",
77
+ "host-capabilities",
78
+ "repo-doc-sync",
79
+ "repo-surface-sync",
80
+ "route-quality-sync",
81
+ "recipe-coverage-sync",
82
+ "release-surface-sync",
83
+ "dogfood-runner",
84
+ "source-sync-back",
85
+ "pillars-sync-plan"
86
+ ]
87
+ }
68
88
  }
69
89
  }
70
90
  },
@@ -157,6 +157,57 @@
157
157
  },
158
158
  "additionalProperties": false
159
159
  },
160
+ "host-capabilities": {
161
+ "type": "object",
162
+ "description": "Most recent host guarantee report used by dashboard and release readiness surfaces.",
163
+ "properties": {
164
+ "host": { "type": "string" },
165
+ "level": {
166
+ "type": "string",
167
+ "enum": ["full", "degraded", "unknown"]
168
+ },
169
+ "gaps": {
170
+ "type": "array",
171
+ "items": { "type": "string" }
172
+ },
173
+ "checked-at": {
174
+ "type": "string",
175
+ "format": "date-time"
176
+ }
177
+ },
178
+ "additionalProperties": true
179
+ },
180
+ "dashboard": {
181
+ "type": "object",
182
+ "description": "Optional cached dashboard summary. Runtime recomputes from disk when present data is stale.",
183
+ "properties": {
184
+ "last-rendered-at": { "type": "string", "format": "date-time" },
185
+ "action-brief": {
186
+ "type": "object",
187
+ "properties": {
188
+ "next": { "type": "string" },
189
+ "why": { "type": "string" },
190
+ "readiness": { "type": "string", "enum": ["ready", "needs attention"] },
191
+ "attention": { "type": "array", "items": { "type": "string" } },
192
+ "host-guarantees": { "type": "string" }
193
+ },
194
+ "additionalProperties": false
195
+ }
196
+ },
197
+ "additionalProperties": false
198
+ },
199
+ "dogfood": {
200
+ "type": "object",
201
+ "description": "Most recent deterministic messy-repo fixture run summary.",
202
+ "properties": {
203
+ "status": { "type": "string", "enum": ["not-run", "pass", "fail"] },
204
+ "total": { "type": "integer", "minimum": 0 },
205
+ "passed": { "type": "integer", "minimum": 0 },
206
+ "failed": { "type": "integer", "minimum": 0 },
207
+ "last-run-at": { "type": "string", "format": "date-time" }
208
+ },
209
+ "additionalProperties": false
210
+ },
160
211
  "yolo-decisions": {
161
212
  "type": "array",
162
213
  "description": "Auto-decisions made under --yolo. Mirrored to YOLO-DECISIONS.md.",
@@ -27,7 +27,7 @@
27
27
  "type": "array",
28
28
  "items": {
29
29
  "type": "string",
30
- "pattern": "^/god-[a-z-]+$"
30
+ "pattern": "^/god-[a-z-]+(\\s.*)?$"
31
31
  }
32
32
  },
33
33
  "jobs": {
@@ -86,10 +86,39 @@
86
86
  "additionalProperties": true
87
87
  }
88
88
  },
89
+ "local-helpers": {
90
+ "type": "array",
91
+ "description": "Visible local runtime helpers that run in this job without specialist-agent judgment.",
92
+ "items": {
93
+ "type": "string",
94
+ "enum": [
95
+ "checkpoint-sync",
96
+ "feature-awareness",
97
+ "host-capabilities",
98
+ "repo-doc-sync",
99
+ "repo-surface-sync",
100
+ "route-quality-sync",
101
+ "recipe-coverage-sync",
102
+ "release-surface-sync",
103
+ "dogfood-runner",
104
+ "source-sync-back",
105
+ "pillars-sync-plan"
106
+ ]
107
+ }
108
+ },
89
109
  "per": { "type": "string", "enum": ["slice", "wave"] },
90
110
  "parallel-by": { "type": "string", "enum": ["slice", "wave"] },
91
111
  "on-pass": { "type": "string" },
92
- "skip-when": { "type": "string" }
112
+ "on-fail": { "type": "string" },
113
+ "skip-when": { "type": "string" },
114
+ "verification": {
115
+ "type": "object",
116
+ "additionalProperties": true
117
+ },
118
+ "closure": {
119
+ "type": "object",
120
+ "additionalProperties": true
121
+ }
93
122
  }
94
123
  }
95
124
  }
@@ -48,7 +48,7 @@ Plain-text report grouped by severity:
48
48
  GODPOWERS DOCTOR
49
49
 
50
50
  Install: claude (~/.claude/)
51
- [OK] 109 skills installed
51
+ [OK] 110 skills installed
52
52
  [OK] 40 agents installed
53
53
  [OK] VERSION matches (1.6.6)
54
54
  [WARN] routing/god-doctor.yaml exists but skill file did not until now
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: god-dogfood
3
+ description: |
4
+ Run built-in messy-repo dogfood scenarios against Godpowers automation,
5
+ migration, host capability, extension authoring, and suite release surfaces.
6
+
7
+ Triggers on: "god dogfood", "/god-dogfood", "dogfood godpowers",
8
+ "test messy repos", "real-project dogfooding"
9
+ ---
10
+
11
+ # /god-dogfood
12
+
13
+ Run deterministic messy-repo scenarios before release or after automation changes.
14
+
15
+ ## When To Use
16
+
17
+ - [DECISION] Use `/god-dogfood` before a release when migration, host autonomy,
18
+ extension authoring, or Mode D suite release behavior changes.
19
+ - [DECISION] Use `/god-dogfood` when a project already contains GSD, BMAD, or
20
+ Superpowers context and you need confidence that Godpowers can import and
21
+ sync back without deleting prior-system files.
22
+ - [DECISION] Use `/god-dogfood` when host-spawn guarantees are unclear and the
23
+ dashboard reports degraded or unknown host capability.
24
+
25
+ ## Process
26
+
27
+ 1. Resolve the runtime root and load `lib/dogfood-runner.js`.
28
+ 2. Run `dogfood.runAll()` against `fixtures/dogfood/`.
29
+ 3. Report each scenario with pass or fail status.
30
+ 4. If any scenario fails, auto-invoke the matching specialist by visible card:
31
+ - `god-greenfieldifier` for planning-system import failures.
32
+ - `god-context-writer` for host capability or install surface failures.
33
+ - `god-coordinator` for extension authoring or suite release failures.
34
+ 5. Do not edit user projects while running fixture scenarios.
35
+ 6. End with the Godpowers Dashboard and make `/god-repair` the recommended
36
+ route when dogfood is red.
37
+
38
+ ## CLI Equivalent
39
+
40
+ ```bash
41
+ npx godpowers dogfood
42
+ npx godpowers dogfood --json
43
+ ```
44
+
45
+ ## Expected Coverage
46
+
47
+ - [DECISION] The dogfood suite includes a half-migrated GSD project.
48
+ - [DECISION] The dogfood suite includes degraded and full host capability
49
+ scenarios.
50
+ - [DECISION] The dogfood suite includes extension scaffold validation.
51
+ - [DECISION] The dogfood suite includes a Mode D suite release dry-run.
52
+
53
+ ## Auto-Invoke Card
54
+
55
+ ```text
56
+ Auto-invoked:
57
+ Trigger: /god-dogfood scenario failure
58
+ Agent: <god-greenfieldifier | god-context-writer | god-coordinator | none, local runtime only>
59
+ Local syncs:
60
+ + dogfood-runner: <pass, fail, or skipped reason>
61
+ Artifacts: fixture-only unless repair is explicitly requested
62
+ Log: none
63
+ ```