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.
- package/CHANGELOG.md +20 -1
- package/README.md +12 -19
- package/RELEASE.md +29 -48
- package/SKILL.md +4 -1
- package/agents/god-archaeologist.md +11 -0
- package/agents/god-architect.md +12 -0
- package/agents/god-auditor.md +13 -0
- package/agents/god-automation-engineer.md +13 -0
- package/agents/god-browser-tester.md +15 -0
- package/agents/god-context-writer.md +14 -0
- package/agents/god-coordinator.md +14 -0
- package/agents/god-debt-assessor.md +11 -0
- package/agents/god-debugger.md +13 -0
- package/agents/god-deploy-engineer.md +13 -0
- package/agents/god-deps-auditor.md +13 -0
- package/agents/god-design-reviewer.md +14 -0
- package/agents/god-designer.md +15 -0
- package/agents/god-docs-writer.md +13 -0
- package/agents/god-executor.md +14 -0
- package/agents/god-explorer.md +14 -0
- package/agents/god-greenfieldifier.md +13 -0
- package/agents/god-harden-auditor.md +12 -0
- package/agents/god-incident-investigator.md +13 -0
- package/agents/god-launch-strategist.md +14 -0
- package/agents/god-migration-strategist.md +13 -0
- package/agents/god-observability-engineer.md +14 -0
- package/agents/god-orchestrator.md +16 -2
- package/agents/god-org-context-loader.md +11 -0
- package/agents/god-planner.md +11 -0
- package/agents/god-pm.md +14 -0
- package/agents/god-quality-reviewer.md +12 -0
- package/agents/god-reconciler.md +14 -1
- package/agents/god-reconstructor.md +16 -0
- package/agents/god-repo-scaffolder.md +11 -0
- package/agents/god-retrospective.md +11 -0
- package/agents/god-roadmap-reconciler.md +42 -87
- package/agents/god-roadmap-updater.md +11 -0
- package/agents/god-roadmapper.md +12 -0
- package/agents/god-spec-reviewer.md +14 -0
- package/agents/god-spike-runner.md +13 -0
- package/agents/god-stack-selector.md +12 -0
- package/agents/god-standards-check.md +13 -0
- package/agents/god-storyteller.md +14 -0
- package/agents/god-updater.md +14 -0
- package/lib/README.md +3 -0
- package/lib/agent-validator.js +67 -2
- package/lib/recipe-coverage-sync.js +1 -1
- package/lib/release-surface-sync.js +3 -0
- package/lib/repo-doc-sync.js +1 -1
- package/lib/repo-surface-sync.js +3 -3
- package/lib/route-quality-sync.js +2 -2
- package/lib/router.js +6 -0
- package/package.json +1 -1
- package/references/orchestration/GOD-ORCHESTRATOR-RUNBOOK.md +12 -3
- package/routing/god-roadmap-check.yaml +2 -2
- package/skills/god-agent-audit.md +12 -9
- package/skills/god-arch.md +1 -3
- package/skills/god-build.md +1 -3
- package/skills/god-deploy.md +1 -3
- package/skills/god-design.md +9 -3
- package/skills/god-feature.md +1 -3
- package/skills/god-harden.md +1 -3
- package/skills/god-hotfix.md +1 -3
- package/skills/god-launch.md +1 -3
- package/skills/god-link.md +1 -3
- package/skills/god-migrate.md +1 -3
- package/skills/god-mode.md +5 -0
- package/skills/god-observe.md +1 -3
- package/skills/god-prd.md +1 -3
- package/skills/god-reconcile.md +4 -4
- package/skills/god-redo.md +1 -3
- package/skills/god-refactor.md +1 -3
- package/skills/god-repair.md +1 -3
- package/skills/god-repo.md +1 -3
- package/skills/god-restore.md +1 -3
- package/skills/god-roadmap-check.md +4 -3
- package/skills/god-roadmap.md +1 -3
- package/skills/god-rollback.md +1 -3
- package/skills/god-scan.md +1 -3
- package/skills/god-skip.md +1 -3
- package/skills/god-stack.md +1 -3
- package/skills/god-story-build.md +1 -3
- package/skills/god-story-close.md +1 -3
- package/skills/god-story.md +1 -3
- package/skills/god-sync.md +3 -5
- package/skills/god-undo.md +1 -3
- package/skills/god-update-deps.md +1 -3
- package/skills/god-upgrade.md +1 -3
package/lib/agent-validator.js
CHANGED
|
@@ -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-
|
|
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',
|
package/lib/repo-doc-sync.js
CHANGED
|
@@ -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-
|
|
374
|
+
escalation: 'spawn god-reconciler when lifecycle intent is ambiguous'
|
|
375
375
|
},
|
|
376
376
|
{
|
|
377
377
|
id: 'extension-pack-sync',
|
package/lib/repo-surface-sync.js
CHANGED
|
@@ -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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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
|
|
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:
|
|
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-
|
|
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,
|
|
6
|
-
Outputs, Handoff), hand-off targets exist,
|
|
7
|
-
output paths. Lenient by design: most issues are
|
|
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
|
-
|
|
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]
|
|
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:
|
|
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
|
package/skills/god-arch.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-build.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-deploy.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-design.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-feature.md
CHANGED
|
@@ -107,6 +107,4 @@ in the linkage system:
|
|
|
107
107
|
via `/god-review-changes`.
|
|
108
108
|
|
|
109
109
|
|
|
110
|
-
|
|
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.
|
package/skills/god-harden.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-hotfix.md
CHANGED
|
@@ -123,6 +123,4 @@ in the linkage system:
|
|
|
123
123
|
via `/god-review-changes`.
|
|
124
124
|
|
|
125
125
|
|
|
126
|
-
|
|
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.
|
package/skills/god-launch.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-link.md
CHANGED
package/skills/god-migrate.md
CHANGED
|
@@ -139,6 +139,4 @@ Suggested next:
|
|
|
139
139
|
/god-audit to score imported seeds before treating them as authoritative.
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
|
|
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.
|
package/skills/god-mode.md
CHANGED
|
@@ -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:
|
package/skills/god-observe.md
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
package/skills/god-reconcile.md
CHANGED
|
@@ -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 |
|
|
101
|
-
| Replaces |
|
|
100
|
+
| Auto-invoked | legacy compatibility only | by feature-addition recipes |
|
|
101
|
+
| Replaces | delegated to /god-reconcile | primary command |
|
|
102
102
|
|
|
103
|
-
For new projects,
|
|
104
|
-
|
|
103
|
+
For new projects, use /god-reconcile. /god-roadmap-check remains a
|
|
104
|
+
compatibility alias that asks `god-reconciler` for ROADMAP-focused output.
|
package/skills/god-redo.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-refactor.md
CHANGED
|
@@ -144,6 +144,4 @@ in the linkage system:
|
|
|
144
144
|
via `/god-review-changes`.
|
|
145
145
|
|
|
146
146
|
|
|
147
|
-
|
|
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.
|
package/skills/god-repair.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-repo.md
CHANGED
|
@@ -34,6 +34,4 @@ Suggested next: /god-build (start building the first milestone)
|
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
|
|
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.
|
package/skills/god-restore.md
CHANGED
|
@@ -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
|
-
|
|
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-
|
|
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-
|
|
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
|
package/skills/god-roadmap.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-rollback.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-scan.md
CHANGED
|
@@ -114,6 +114,4 @@ User content outside fences is never modified.
|
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
|
|
117
|
-
|
|
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.
|
package/skills/god-skip.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
package/skills/god-stack.md
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|