godpowers 3.0.0 → 3.0.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 (88) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/README.md +12 -19
  3. package/RELEASE.md +29 -48
  4. package/SKILL.md +4 -1
  5. package/agents/god-archaeologist.md +11 -0
  6. package/agents/god-architect.md +12 -0
  7. package/agents/god-auditor.md +13 -0
  8. package/agents/god-automation-engineer.md +13 -0
  9. package/agents/god-browser-tester.md +15 -0
  10. package/agents/god-context-writer.md +14 -0
  11. package/agents/god-coordinator.md +14 -0
  12. package/agents/god-debt-assessor.md +11 -0
  13. package/agents/god-debugger.md +13 -0
  14. package/agents/god-deploy-engineer.md +13 -0
  15. package/agents/god-deps-auditor.md +13 -0
  16. package/agents/god-design-reviewer.md +14 -0
  17. package/agents/god-designer.md +15 -0
  18. package/agents/god-docs-writer.md +13 -0
  19. package/agents/god-executor.md +14 -0
  20. package/agents/god-explorer.md +14 -0
  21. package/agents/god-greenfieldifier.md +13 -0
  22. package/agents/god-harden-auditor.md +12 -0
  23. package/agents/god-incident-investigator.md +13 -0
  24. package/agents/god-launch-strategist.md +14 -0
  25. package/agents/god-migration-strategist.md +13 -0
  26. package/agents/god-observability-engineer.md +14 -0
  27. package/agents/god-orchestrator.md +16 -2
  28. package/agents/god-org-context-loader.md +11 -0
  29. package/agents/god-planner.md +11 -0
  30. package/agents/god-pm.md +14 -0
  31. package/agents/god-quality-reviewer.md +12 -0
  32. package/agents/god-reconciler.md +14 -1
  33. package/agents/god-reconstructor.md +16 -0
  34. package/agents/god-repo-scaffolder.md +11 -0
  35. package/agents/god-retrospective.md +11 -0
  36. package/agents/god-roadmap-reconciler.md +42 -87
  37. package/agents/god-roadmap-updater.md +11 -0
  38. package/agents/god-roadmapper.md +12 -0
  39. package/agents/god-spec-reviewer.md +14 -0
  40. package/agents/god-spike-runner.md +13 -0
  41. package/agents/god-stack-selector.md +12 -0
  42. package/agents/god-standards-check.md +13 -0
  43. package/agents/god-storyteller.md +14 -0
  44. package/agents/god-updater.md +14 -0
  45. package/lib/README.md +3 -0
  46. package/lib/agent-validator.js +67 -2
  47. package/lib/recipe-coverage-sync.js +1 -1
  48. package/lib/release-surface-sync.js +3 -0
  49. package/lib/repo-doc-sync.js +1 -1
  50. package/lib/repo-surface-sync.js +3 -3
  51. package/lib/route-quality-sync.js +2 -2
  52. package/lib/router.js +6 -0
  53. package/package.json +1 -1
  54. package/references/orchestration/GOD-ORCHESTRATOR-RUNBOOK.md +12 -3
  55. package/routing/god-roadmap-check.yaml +2 -2
  56. package/skills/god-agent-audit.md +12 -9
  57. package/skills/god-arch.md +1 -3
  58. package/skills/god-build.md +1 -3
  59. package/skills/god-deploy.md +1 -3
  60. package/skills/god-design.md +9 -3
  61. package/skills/god-feature.md +1 -3
  62. package/skills/god-harden.md +1 -3
  63. package/skills/god-hotfix.md +1 -3
  64. package/skills/god-launch.md +1 -3
  65. package/skills/god-link.md +1 -3
  66. package/skills/god-migrate.md +1 -3
  67. package/skills/god-mode.md +5 -0
  68. package/skills/god-observe.md +1 -3
  69. package/skills/god-prd.md +1 -3
  70. package/skills/god-reconcile.md +4 -4
  71. package/skills/god-redo.md +1 -3
  72. package/skills/god-refactor.md +1 -3
  73. package/skills/god-repair.md +1 -3
  74. package/skills/god-repo.md +1 -3
  75. package/skills/god-restore.md +1 -3
  76. package/skills/god-roadmap-check.md +4 -3
  77. package/skills/god-roadmap.md +1 -3
  78. package/skills/god-rollback.md +1 -3
  79. package/skills/god-scan.md +1 -3
  80. package/skills/god-skip.md +1 -3
  81. package/skills/god-stack.md +1 -3
  82. package/skills/god-story-build.md +1 -3
  83. package/skills/god-story-close.md +1 -3
  84. package/skills/god-story.md +1 -3
  85. package/skills/god-sync.md +3 -5
  86. package/skills/god-undo.md +1 -3
  87. package/skills/god-update-deps.md +1 -3
  88. package/skills/god-upgrade.md +1 -3
@@ -22,6 +22,7 @@ const frontmatter = require('./frontmatter');
22
22
 
23
23
  const REQUIRED_FRONTMATTER = ['name', 'description'];
24
24
  const RECOMMENDED_FRONTMATTER = ['tools'];
25
+ const STRUCTURED_CONTRACT_FRONTMATTER = ['inputs', 'outputs', 'gates', 'handoff'];
25
26
  const RECOMMENDED_SECTIONS = ['Have-Nots', 'Inputs', 'Outputs', 'Handoff'];
26
27
 
27
28
  /**
@@ -68,6 +69,7 @@ function parseAgentFile(filePath) {
68
69
  */
69
70
  function validateAgent(agent, opts = {}) {
70
71
  const findings = [];
72
+ const contractSeverity = opts.contractSeverity || 'info';
71
73
 
72
74
  // Required frontmatter
73
75
  for (const field of REQUIRED_FRONTMATTER) {
@@ -93,6 +95,30 @@ function validateAgent(agent, opts = {}) {
93
95
  }
94
96
  }
95
97
 
98
+ // Structured contract frontmatter
99
+ for (const field of STRUCTURED_CONTRACT_FRONTMATTER) {
100
+ const value = agent.frontmatter[field];
101
+ if (!value) {
102
+ findings.push({
103
+ severity: contractSeverity,
104
+ kind: 'missing-contract-frontmatter',
105
+ agent: agent.name,
106
+ field,
107
+ message: `Missing contract frontmatter field: \`${field}\``
108
+ });
109
+ continue;
110
+ }
111
+ if (!Array.isArray(value) || value.length === 0 || value.some(item => typeof item !== 'string' || !item.trim())) {
112
+ findings.push({
113
+ severity: contractSeverity,
114
+ kind: 'invalid-contract-frontmatter',
115
+ agent: agent.name,
116
+ field,
117
+ message: `Contract frontmatter field \`${field}\` must be a non-empty string array.`
118
+ });
119
+ }
120
+ }
121
+
96
122
  // Recommended sections (case-insensitive substring match)
97
123
  const sectionTitles = Object.keys(agent.sections).map(s => s.toLowerCase());
98
124
  for (const section of RECOMMENDED_SECTIONS) {
@@ -114,6 +140,15 @@ function validateAgent(agent, opts = {}) {
114
140
  return findings;
115
141
  }
116
142
 
143
+ function hasStructuredContract(agent) {
144
+ return STRUCTURED_CONTRACT_FRONTMATTER.every(field => {
145
+ const value = agent.frontmatter[field];
146
+ return Array.isArray(value) &&
147
+ value.length > 0 &&
148
+ value.every(item => typeof item === 'string' && item.trim());
149
+ });
150
+ }
151
+
117
152
  /**
118
153
  * Extract claimed hand-off targets (other agents this agent spawns).
119
154
  */
@@ -133,11 +168,33 @@ function findHandoffTargets(agent) {
133
168
  return [...targets];
134
169
  }
135
170
 
171
+ function extractPathClaims(text) {
172
+ const paths = new Set();
173
+ const dotPathRegex = /\.godpowers\/[\w\/.-]+(?:\.(?:md|json|jsonl|yaml))?/g;
174
+ let m;
175
+ while ((m = dotPathRegex.exec(text)) !== null) {
176
+ paths.add(m[0]);
177
+ }
178
+ const rootRegex = /\b[A-Z]+\.md\b/g;
179
+ while ((m = rootRegex.exec(text)) !== null) {
180
+ paths.add(m[0]);
181
+ }
182
+ return [...paths];
183
+ }
184
+
136
185
  /**
137
186
  * Extract output paths the agent claims to write.
138
187
  */
139
188
  function findOutputPaths(agent) {
140
189
  const paths = new Set();
190
+ if (Array.isArray(agent.frontmatter.outputs)) {
191
+ for (const output of agent.frontmatter.outputs) {
192
+ if (typeof output !== 'string') continue;
193
+ for (const out of extractPathClaims(output)) paths.add(out);
194
+ }
195
+ return [...paths];
196
+ }
197
+
141
198
  const text = agent.raw;
142
199
 
143
200
  // .godpowers/*.md or .godpowers/*.json
@@ -218,11 +275,15 @@ function auditAll(projectRoot, opts = {}) {
218
275
  }
219
276
  const files = fs.readdirSync(agentsDir).filter(f => /^god-.*\.md$/.test(f));
220
277
  const agents = files.map(f => parseAgentFile(path.join(agentsDir, f)));
278
+ const structuredContractCount = agents.filter(hasStructuredContract).length;
279
+ const contractWarningThreshold = opts.contractWarningThreshold || 20;
280
+ const contractSeverity = opts.contractSeverity ||
281
+ (structuredContractCount >= contractWarningThreshold ? 'warning' : 'info');
221
282
 
222
283
  const allFindings = [];
223
284
  const results = [];
224
285
  for (const agent of agents) {
225
- const f = validateAgent(agent, opts);
286
+ const f = validateAgent(agent, { ...opts, contractSeverity });
226
287
  results.push({ agent: agent.name, findings: f });
227
288
  allFindings.push(...f);
228
289
  }
@@ -235,7 +296,9 @@ function auditAll(projectRoot, opts = {}) {
235
296
  warnings: allFindings.filter(f => f.severity === 'warning').length,
236
297
  infos: allFindings.filter(f => f.severity === 'info').length,
237
298
  crossFindings,
238
- agentCount: agents.length
299
+ agentCount: agents.length,
300
+ structuredContractCount,
301
+ contractWarningThreshold
239
302
  };
240
303
 
241
304
  return { results, summary, allFindings };
@@ -248,7 +311,9 @@ module.exports = {
248
311
  findOutputPaths,
249
312
  crossValidate,
250
313
  auditAll,
314
+ hasStructuredContract,
251
315
  REQUIRED_FRONTMATTER,
252
316
  RECOMMENDED_FRONTMATTER,
317
+ STRUCTURED_CONTRACT_FRONTMATTER,
253
318
  RECOMMENDED_SECTIONS
254
319
  };
@@ -92,7 +92,7 @@ function detect(projectRoot) {
92
92
  matched.length > 0
93
93
  ? `Recipe coverage exists for ${required.description}.`
94
94
  : `No recipe covers ${required.description} with ${required.commands.join(', ')}.`,
95
- { spawn: matched.length > 0 ? null : 'god-roadmap-reconciler' }
95
+ { spawn: matched.length > 0 ? null : 'god-reconciler' }
96
96
  );
97
97
  }
98
98
 
@@ -12,9 +12,12 @@ const path = require('path');
12
12
  const LOG_PATH = '.godpowers/surface/RELEASE-SURFACE-SYNC.md';
13
13
 
14
14
  const REQUIRED_PACKAGE_GUARDS = [
15
+ 'lib/artifact-map.js',
16
+ 'lib/cli-dispatch.js',
15
17
  'lib/command-families.js',
16
18
  'lib/dogfood-runner.js',
17
19
  'lib/extension-authoring.js',
20
+ 'lib/gate.js',
18
21
  'lib/host-capabilities.js',
19
22
  'lib/route-quality-sync.js',
20
23
  'lib/recipe-coverage-sync.js',
@@ -371,7 +371,7 @@ function adjacentOpportunities() {
371
371
  id: 'workflow-recipe-graph-sync',
372
372
  trigger: '/god-next, /god-mode, /god-doctor',
373
373
  behavior: 'compare workflow YAML, recipes, command flows, and orchestrator guidance',
374
- escalation: 'spawn god-roadmap-reconciler when lifecycle intent is ambiguous'
374
+ escalation: 'spawn god-reconciler when lifecycle intent is ambiguous'
375
375
  },
376
376
  {
377
377
  id: 'extension-pack-sync',
@@ -270,7 +270,7 @@ function workflowRecipeChecks(projectRoot) {
270
270
  hasMetadata ? 'fresh' : 'stale',
271
271
  workflow,
272
272
  hasMetadata ? `${workflow} has metadata.` : `${workflow} is missing parseable metadata.`,
273
- { spawn: hasMetadata ? null : 'god-roadmap-reconciler' }
273
+ { spawn: hasMetadata ? null : 'god-reconciler' }
274
274
  );
275
275
  }
276
276
 
@@ -285,7 +285,7 @@ function workflowRecipeChecks(projectRoot) {
285
285
  hasCommand ? 'fresh' : 'stale',
286
286
  recipe,
287
287
  hasCommand ? `${recipe} includes a slash-command route.` : `${recipe} has no slash-command route.`,
288
- { spawn: hasCommand ? null : 'god-roadmap-reconciler' }
288
+ { spawn: hasCommand ? null : 'god-reconciler' }
289
289
  );
290
290
  }
291
291
 
@@ -297,7 +297,7 @@ function workflowRecipeChecks(projectRoot) {
297
297
  commandFlows.includes('/god-docs') && commandFlows.includes('/god-sync') ? 'fresh' : 'stale',
298
298
  'docs/command-flows.md',
299
299
  'docs/command-flows.md includes core docs and sync flows.',
300
- { spawn: 'god-roadmap-reconciler' }
300
+ { spawn: 'god-reconciler' }
301
301
  );
302
302
  }
303
303
  return checks;
@@ -244,7 +244,7 @@ function detect(projectRoot) {
244
244
  'stale',
245
245
  routePath,
246
246
  `${command} uses contextual next route ${next} without a typed success-path.outcome.`,
247
- { spawn: 'god-roadmap-reconciler' }
247
+ { spawn: 'god-reconciler' }
248
248
  );
249
249
  }
250
250
  }
@@ -297,7 +297,7 @@ function detect(projectRoot) {
297
297
  checks.some((check) => check.id.startsWith('missing-route-outcome-')) ? 'stale' : 'fresh',
298
298
  'routing/',
299
299
  `${typedOutcomeCount} contextual route exits have typed outcomes and all other next routes are explicit.`,
300
- { spawn: checks.some((check) => check.id.startsWith('missing-route-outcome-')) ? 'god-roadmap-reconciler' : null }
300
+ { spawn: checks.some((check) => check.id.startsWith('missing-route-outcome-')) ? 'god-reconciler' : null }
301
301
  );
302
302
  addCheck(
303
303
  checks,
package/lib/router.js CHANGED
@@ -264,6 +264,11 @@ function getStandards(command) {
264
264
  return routing.standards;
265
265
  }
266
266
 
267
+ function getGateCommand(command) {
268
+ const standards = getStandards(command);
269
+ return standards && standards['gate-command'] ? standards['gate-command'] : null;
270
+ }
271
+
267
272
  /**
268
273
  * Get the list of agents this command spawns (primary + secondary).
269
274
  */
@@ -403,6 +408,7 @@ module.exports = {
403
408
  getRouteOutcome,
404
409
  getAlternatives,
405
410
  getStandards,
411
+ getGateCommand,
406
412
  getSpawnedAgents,
407
413
  getCommandFamily: commandFamilies.familyForCommand,
408
414
  resolveTrigger: commandFamilies.resolveTrigger,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "godpowers",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "AI-powered development system: 117 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"
@@ -182,6 +182,7 @@ When deciding what to spawn next, query the routing definition:
182
182
  - `execution.spawns` -> primary agent to spawn
183
183
  - `execution.secondary-spawns` -> downstream agents (e.g., reviewers)
184
184
  - `standards.have-nots` -> which have-nots to verify
185
+ - `standards.gate-command` -> executable artifact gate to run after output exists
185
186
  - `success-path.next-recommended` -> what to suggest next
186
187
 
187
188
  Before spawning a command, evaluate `lib/router.js checkPrerequisites(command,
@@ -197,6 +198,12 @@ the routing config has a `standards` section). Standards check uses fresh
197
198
  context, independent of the producing agent, so it catches drift the
198
199
  producing agent's own self-check would miss.
199
200
 
201
+ When `standards.gate-command` is present, run that exact command from the
202
+ project root after the producing tier skill returns and before any downstream
203
+ tier starts. A non-zero exit means the tier is not complete. Report the gate
204
+ output, repair the artifact, and rerun the gate before updating durable state
205
+ to done.
206
+
200
207
  ## Recipe-Driven Decisions (for fuzzy intent)
201
208
 
202
209
  When the user describes intent in plain English instead of running a specific
@@ -217,7 +224,7 @@ with the "why" annotations for each step.
217
224
  This is the third layer of decision support:
218
225
  1. **Routing** (`<runtimeRoot>/routing/<command>.yaml`): structural prerequisites and gates
219
226
  2. **Recipes** (`<runtimeRoot>/routing/recipes/<recipe>.yaml`): scenario-based sequences
220
- 3. **Standards** (god-standards-check): quality gates between stages
227
+ 3. **Standards** (god-standards-check plus standards.gate-command): quality gates between stages
221
228
 
222
229
  ## Proactive Auto-Invoke Matrix
223
230
 
@@ -479,7 +486,7 @@ requested or final sign-off begins.
479
486
  4. Print the "Next step" card from the Step Narration Protocol
480
487
  5. Spawn the appropriate specialist agent in a fresh context
481
488
  6. Verify their output exists on disk
482
- 7. Run have-nots check on the artifact
489
+ 7. Run have-nots check on the artifact and run `standards.gate-command` when configured
483
490
  8. If pass: update PROGRESS.md, sync CHECKPOINT.md, run the proactive
484
491
  auto-invoke sweep, print the "Step result" card, then move to next sub-step
485
492
  9. If fail and repairable: print the failed result card, then enter the
@@ -1256,4 +1263,6 @@ For preflight auto-routing, append:
1256
1263
 
1257
1264
  The canonical have-nots catalog lives at `references/HAVE-NOTS.md` (115 named
1258
1265
  failure modes). When verifying an artifact, run the relevant tier's have-nots
1259
- against it. When in doubt, spawn god-auditor to do the check.
1266
+ against it. When the route has `standards.gate-command`, run that exact command
1267
+ after have-nots and block on any non-zero exit. When in doubt, spawn
1268
+ god-auditor to do the check.
@@ -2,7 +2,7 @@ apiVersion: godpowers/v1
2
2
  kind: CommandRouting
3
3
  metadata:
4
4
  command: /god-roadmap-check
5
- description: Reconcile intent against ROADMAP.md before feature work
5
+ description: Legacy roadmap-only alias for /god-reconcile
6
6
  tier: 1
7
7
  family: compatibility
8
8
 
@@ -13,7 +13,7 @@ prerequisites:
13
13
  human-required: true
14
14
 
15
15
  execution:
16
- spawns: [god-roadmap-reconciler]
16
+ spawns: [god-reconciler]
17
17
  context: fresh
18
18
  reads:
19
19
  - .godpowers/roadmap/ROADMAP.md
@@ -2,10 +2,10 @@
2
2
  name: god-agent-audit
3
3
  description: |
4
4
  Validates every `agents/god-*.md` against the agent contract:
5
- required frontmatter, recommended sections (Have-Nots, Inputs,
6
- Outputs, Handoff), hand-off targets exist, no dual-ownership of
7
- output paths. Lenient by design: most issues are warnings; only
8
- structural breakage errors.
5
+ required frontmatter, structured contract frontmatter, recommended
6
+ sections (Have-Nots, Inputs, Outputs, Handoff), hand-off targets exist,
7
+ no dual-ownership of output paths. Lenient by design: most issues are
8
+ warnings; only structural breakage errors.
9
9
 
10
10
  Triggers on: "god agent audit", "/god-agent-audit", "audit agents",
11
11
  "validate agent contracts"
@@ -32,6 +32,7 @@ Mechanical validation of agent contracts. Backed by `lib/agent-validator.js`.
32
32
 
33
33
  **Recommended (warnings)**:
34
34
  - Frontmatter `tools` field
35
+ - Frontmatter `inputs`, `outputs`, `gates`, and `handoff` fields after at least 20 shipped agents have structured contracts
35
36
  - Hand-off targets that are referenced exist as agent files
36
37
  - Output paths claimed by 4+ agents (boundary review needed)
37
38
 
@@ -51,16 +52,16 @@ opportunities, not failures.
51
52
  Agent audit
52
53
 
53
54
  40 agents audited
54
- 0 errors, 2 warnings, 90 infos
55
+ 40 structured contracts
56
+ 0 errors, 1 warning, 97 infos
55
57
 
56
58
  Errors:
57
59
  (none)
58
60
 
59
61
  Warnings:
60
- [multi-ownership] STATE.md claimed by 4 agents (verify boundaries)
61
- [multi-ownership] .godpowers/roadmap/ROADMAP.md claimed by 4 agents
62
+ [multi-ownership] .godpowers/state.json claimed by 5 agents (verify boundaries)
62
63
 
63
- Infos: 90 missing-recommended-section suggestions across agents
64
+ Infos: 97 missing-recommended-section suggestions across agents
64
65
  (run with --json for full list)
65
66
 
66
67
  Proposition:
@@ -76,7 +77,9 @@ Recommended: [one option and why]
76
77
  This skill never breaks existing agents that don't yet have the
77
78
  recommended sections. Errors fire only on real structural issues
78
79
  (missing required frontmatter, broken hand-off targets, conflicting
79
- output ownership).
80
+ output ownership). Missing structured contract frontmatter becomes a
81
+ warning once a project has at least 20 agents with complete `inputs`,
82
+ `outputs`, `gates`, and `handoff` fields.
80
83
 
81
84
  The `--fix` flag inserts placeholder sections so contributors can
82
85
  fill them in incrementally. It never modifies content that's already
@@ -69,6 +69,4 @@ The reflog records every god-arch invocation as `op:god-arch` for `/god-undo`.
69
69
  for `/god-repair` review. Re-running picks up cleanly.
70
70
 
71
71
 
72
- ## Locking
73
-
74
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
72
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -108,6 +108,4 @@ increment before moving to Tier 3 unless the user explicitly asked to stop
108
108
  after the current increment.
109
109
 
110
110
 
111
- ## Locking
112
-
113
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
111
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -95,6 +95,4 @@ The reflog records every god-deploy invocation as `op:god-deploy` for `/god-undo
95
95
  for `/god-repair` review. Re-running picks up cleanly.
96
96
 
97
97
 
98
- ## Locking
99
-
100
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
98
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -69,6 +69,14 @@ producing DESIGN.md in the
69
69
  6. After god-designer returns: surface any lint findings, suggest
70
70
  `/god-design polish` if warnings exist.
71
71
 
72
+ ## Verification
73
+
74
+ After god-designer returns:
75
+ 1. Verify `DESIGN.md` exists on disk when design was required.
76
+ 2. Run `npx godpowers gate --tier=design --project=.`
77
+ 3. If the gate returns a non-zero exit, do not mark Design complete. Report the gate output and repair the artifact first.
78
+ 4. Run `npx godpowers state advance --step=design --status=done --project=.`.
79
+
72
80
  ## Detection-driven behavior
73
81
 
74
82
  - **UI + impeccable installed**: bridges to impeccable's commands
@@ -267,6 +275,4 @@ The reflog records every god-design invocation as `op:god-design` for `/god-undo
267
275
  for `/god-repair` review. Re-running picks up cleanly.
268
276
 
269
277
 
270
- ## Locking
271
-
272
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
278
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -107,6 +107,4 @@ in the linkage system:
107
107
  via `/god-review-changes`.
108
108
 
109
109
 
110
- ## Locking
111
-
112
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
110
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -91,6 +91,4 @@ The reflog records every god-harden invocation as `op:god-harden` for `/god-undo
91
91
  for `/god-repair` review. Re-running picks up cleanly.
92
92
 
93
93
 
94
- ## Locking
95
-
96
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
94
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -123,6 +123,4 @@ in the linkage system:
123
123
  via `/god-review-changes`.
124
124
 
125
125
 
126
- ## Locking
127
-
128
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
126
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -97,6 +97,4 @@ The reflog records every god-launch invocation as `op:god-launch` for `/god-undo
97
97
  for `/god-repair` review. Re-running picks up cleanly.
98
98
 
99
99
 
100
- ## Locking
101
-
102
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
100
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -74,6 +74,4 @@ Updates:
74
74
  No source files are modified by this skill.
75
75
 
76
76
 
77
- ## Locking
78
-
79
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
77
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -139,6 +139,4 @@ Suggested next:
139
139
  /god-audit to score imported seeds before treating them as authoritative.
140
140
  ```
141
141
 
142
- ## Locking
143
-
144
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
142
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -129,6 +129,11 @@ workflow.
129
129
  - Instruction that `--yolo` cannot bypass safe sync blockers or
130
130
  unresolved Critical harden findings. These are release-truth gates, not
131
131
  preference pauses.
132
+ - Instruction to run `npx godpowers gate --tier=<tier> --project=.` after
133
+ each completed `god-prd`, `god-design`, `god-arch`, `god-roadmap`,
134
+ `god-stack`, `god-repo`, `god-build`, and `god-harden` tier skill and
135
+ before starting the downstream tier. A non-zero exit blocks progress
136
+ until the artifact is repaired.
132
137
 
133
138
  6. Spawn the **god-orchestrator** agent via the host platform's native agent spawning mechanism with only a
134
139
  display-safe payload:
@@ -79,6 +79,4 @@ The reflog records every god-observe invocation as `op:god-observe` for `/god-un
79
79
  for `/god-repair` review. Re-running picks up cleanly.
80
80
 
81
81
 
82
- ## Locking
83
-
84
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
82
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
package/skills/god-prd.md CHANGED
@@ -82,6 +82,4 @@ The reflog records every god-prd invocation as `op:god-prd` for `/god-undo`.
82
82
  for `/god-repair` review. Re-running picks up cleanly.
83
83
 
84
84
 
85
- ## Locking
86
-
87
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
85
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -97,8 +97,8 @@ Recommended: [one option and why]
97
97
  |---|---|---|
98
98
  | Scope | ROADMAP only | Core artifacts plus runtime and repository surfaces |
99
99
  | Use | Quick check | Comprehensive |
100
- | Auto-invoked | by feature-addition recipes (legacy) | by feature-addition recipes (preferred) |
101
- | Replaces | -- | /god-roadmap-check (kept for back-compat) |
100
+ | Auto-invoked | legacy compatibility only | by feature-addition recipes |
101
+ | Replaces | delegated to /god-reconcile | primary command |
102
102
 
103
- For new projects, prefer /god-reconcile. /god-roadmap-check remains a
104
- narrower tool for when you only care about milestone overlap.
103
+ For new projects, use /god-reconcile. /god-roadmap-check remains a
104
+ compatibility alias that asks `god-reconciler` for ROADMAP-focused output.
@@ -57,6 +57,4 @@ that originally produced the artifact. Updates the linkage map via
57
57
  `/god-scan` after the artifact is rewritten.
58
58
 
59
59
 
60
- ## Locking
61
-
62
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
60
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -144,6 +144,4 @@ in the linkage system:
144
144
  via `/god-review-changes`.
145
145
 
146
146
 
147
- ## Locking
148
-
149
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
147
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -66,6 +66,4 @@ Built-in. Reads + writes:
66
66
  Calls into `lib/drift-detector.js`, `lib/code-scanner.js`, `lib/reverse-sync.js`.
67
67
 
68
68
 
69
- ## Locking
70
-
71
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
69
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -34,6 +34,4 @@ Suggested next: /god-build (start building the first milestone)
34
34
  ```
35
35
 
36
36
 
37
- ## Locking
38
-
39
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
37
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -75,6 +75,4 @@ files back via standard fs operations. Calls `/god-scan` after restore
75
75
  to refresh linkage map.
76
76
 
77
77
 
78
- ## Locking
79
-
80
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
78
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -18,12 +18,13 @@ description: |
18
18
  Deprecated: prefer `/god-reconcile` for new workflows. This command remains in
19
19
  the full profile for backward compatibility with existing route references.
20
20
 
21
- Reconcile intent against ROADMAP.md before adding work.
21
+ Reconcile intent against ROADMAP.md before adding work. This legacy command
22
+ delegates to `god-reconciler` with ROADMAP-focused output.
22
23
 
23
24
  ## Setup
24
25
 
25
26
  1. Verify `.godpowers/roadmap/ROADMAP.md` exists. If not: nothing to reconcile against; suggest /god-roadmap or /god-feature directly.
26
- 2. Spawn god-roadmap-reconciler with the user's intent description and the roadmap path.
27
+ 2. Spawn `god-reconciler` with the user's intent description and ask for ROADMAP-focused output.
27
28
 
28
29
  ## Output
29
30
 
@@ -59,7 +60,7 @@ For each status, the recommendation differs:
59
60
 
60
61
  ## Verification
61
62
 
62
- After god-roadmap-reconciler returns:
63
+ After `god-reconciler` returns:
63
64
  1. Verify the verdict has a status from the canonical 6
64
65
  2. Verify recommendation has a concrete action
65
66
  3. Display to user; await decision before proceeding
@@ -62,6 +62,4 @@ The reflog records every god-roadmap invocation as `op:god-roadmap` for `/god-un
62
62
  for `/god-repair` review. Re-running picks up cleanly.
63
63
 
64
64
 
65
- ## Locking
66
-
67
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
65
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -72,6 +72,4 @@ Writes via `lib/reverse-sync.js` (for linkage truncation) and standard
72
72
  fs operations (for artifact move).
73
73
 
74
74
 
75
- ## Locking
76
-
77
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
75
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -114,6 +114,4 @@ User content outside fences is never modified.
114
114
  ```
115
115
 
116
116
 
117
- ## Locking
118
-
119
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
117
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -62,6 +62,4 @@ Reverse a previous skip. Marks the sub-step `pending` again.
62
62
  Built-in. Reads and writes `state.json`, regenerates the managed progress view, and appends to reflog.
63
63
 
64
64
 
65
- ## Locking
66
-
67
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
65
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -59,6 +59,4 @@ The reflog records every god-stack invocation as `op:god-stack` for `/god-undo`.
59
59
  for `/god-repair` review. Re-running picks up cleanly.
60
60
 
61
61
 
62
- ## Locking
63
-
64
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
62
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
@@ -60,6 +60,4 @@ Reverse-sync writes Implementation Linkage footer to ROADMAP.md
60
60
  still fires)
61
61
 
62
62
 
63
- ## Locking
64
-
65
- See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.
63
+ Locking: See `<runtimeRoot>/references/shared/LOCKING.md` for the shared state-lock contract.