godpowers 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +19 -7
  3. package/RELEASE.md +30 -39
  4. package/SKILL.md +26 -3
  5. package/bin/install.js +6 -0
  6. package/lib/README.md +3 -1
  7. package/lib/command-families.js +375 -0
  8. package/lib/feature-awareness.js +1 -1
  9. package/lib/release-surface-sync.js +4 -1
  10. package/lib/route-quality-sync.js +41 -13
  11. package/lib/router.js +32 -0
  12. package/lib/workflow-helper-groups.js +50 -0
  13. package/lib/workflow-runner.js +6 -1
  14. package/package.json +1 -1
  15. package/routing/god-add-backlog.yaml +1 -0
  16. package/routing/god-add-tests.yaml +1 -0
  17. package/routing/god-add-todo.yaml +1 -0
  18. package/routing/god-agent-audit.yaml +6 -0
  19. package/routing/god-arch.yaml +1 -0
  20. package/routing/god-archaeology.yaml +1 -0
  21. package/routing/god-audit.yaml +1 -0
  22. package/routing/god-automation-setup.yaml +1 -0
  23. package/routing/god-automation-status.yaml +1 -0
  24. package/routing/god-budget.yaml +6 -0
  25. package/routing/god-build-agent.yaml +1 -0
  26. package/routing/god-build.yaml +1 -0
  27. package/routing/god-cache-clear.yaml +6 -0
  28. package/routing/god-check-todos.yaml +6 -0
  29. package/routing/god-context-scan.yaml +6 -0
  30. package/routing/god-context.yaml +1 -0
  31. package/routing/god-cost.yaml +6 -0
  32. package/routing/god-debug.yaml +1 -0
  33. package/routing/god-deploy.yaml +1 -0
  34. package/routing/god-design-impact.yaml +6 -0
  35. package/routing/god-design.yaml +1 -0
  36. package/routing/god-discuss.yaml +12 -0
  37. package/routing/god-docs.yaml +1 -0
  38. package/routing/god-doctor.yaml +6 -0
  39. package/routing/god-dogfood.yaml +1 -0
  40. package/routing/god-explore.yaml +1 -0
  41. package/routing/god-export-otel.yaml +1 -0
  42. package/routing/god-extension-add.yaml +6 -0
  43. package/routing/god-extension-info.yaml +6 -0
  44. package/routing/god-extension-list.yaml +6 -0
  45. package/routing/god-extension-remove.yaml +6 -0
  46. package/routing/god-extension-scaffold.yaml +1 -0
  47. package/routing/god-extract-learnings.yaml +1 -0
  48. package/routing/god-fast.yaml +1 -0
  49. package/routing/god-feature.yaml +1 -0
  50. package/routing/god-graph.yaml +6 -0
  51. package/routing/god-harden.yaml +1 -0
  52. package/routing/god-help.yaml +6 -0
  53. package/routing/god-hotfix.yaml +1 -0
  54. package/routing/god-hygiene.yaml +1 -0
  55. package/routing/god-init.yaml +1 -0
  56. package/routing/god-intel.yaml +1 -0
  57. package/routing/god-launch.yaml +6 -0
  58. package/routing/god-lifecycle.yaml +12 -0
  59. package/routing/god-link.yaml +1 -0
  60. package/routing/god-lint.yaml +1 -0
  61. package/routing/god-list-assumptions.yaml +6 -0
  62. package/routing/god-locate.yaml +6 -0
  63. package/routing/god-logs.yaml +12 -0
  64. package/routing/god-map-codebase.yaml +1 -0
  65. package/routing/god-metrics.yaml +6 -0
  66. package/routing/god-migrate.yaml +1 -0
  67. package/routing/god-mode.yaml +6 -0
  68. package/routing/god-next.yaml +12 -0
  69. package/routing/god-note.yaml +1 -0
  70. package/routing/god-observe.yaml +1 -0
  71. package/routing/god-org-context.yaml +1 -0
  72. package/routing/god-party.yaml +1 -0
  73. package/routing/god-pause-work.yaml +6 -0
  74. package/routing/god-plant-seed.yaml +1 -0
  75. package/routing/god-postmortem.yaml +1 -0
  76. package/routing/god-pr-branch.yaml +1 -0
  77. package/routing/god-prd.yaml +1 -0
  78. package/routing/god-preflight.yaml +1 -0
  79. package/routing/god-progress.yaml +7 -0
  80. package/routing/god-quick.yaml +1 -0
  81. package/routing/god-reconcile.yaml +6 -0
  82. package/routing/god-reconstruct.yaml +1 -0
  83. package/routing/god-redo.yaml +6 -0
  84. package/routing/god-refactor.yaml +1 -0
  85. package/routing/god-repair.yaml +1 -0
  86. package/routing/god-repo.yaml +1 -0
  87. package/routing/god-restore.yaml +1 -0
  88. package/routing/god-resume-work.yaml +6 -0
  89. package/routing/god-review-changes.yaml +1 -0
  90. package/routing/god-review.yaml +1 -0
  91. package/routing/god-roadmap-check.yaml +6 -0
  92. package/routing/god-roadmap-update.yaml +1 -0
  93. package/routing/god-roadmap.yaml +1 -0
  94. package/routing/god-rollback.yaml +1 -0
  95. package/routing/god-scan.yaml +1 -0
  96. package/routing/god-set-profile.yaml +1 -0
  97. package/routing/god-settings.yaml +1 -0
  98. package/routing/god-skip.yaml +1 -0
  99. package/routing/god-smite.yaml +1 -0
  100. package/routing/god-spike.yaml +1 -0
  101. package/routing/god-sprint.yaml +6 -0
  102. package/routing/god-stack.yaml +1 -0
  103. package/routing/god-standards.yaml +1 -0
  104. package/routing/god-status.yaml +1 -0
  105. package/routing/god-stories.yaml +1 -0
  106. package/routing/god-story-build.yaml +1 -0
  107. package/routing/god-story-close.yaml +1 -0
  108. package/routing/god-story-verify.yaml +1 -0
  109. package/routing/god-story.yaml +1 -0
  110. package/routing/god-suite-init.yaml +1 -0
  111. package/routing/god-suite-patch.yaml +1 -0
  112. package/routing/god-suite-release.yaml +1 -0
  113. package/routing/god-suite-status.yaml +6 -0
  114. package/routing/god-suite-sync.yaml +1 -0
  115. package/routing/god-sync.yaml +1 -0
  116. package/routing/god-tech-debt.yaml +1 -0
  117. package/routing/god-test-extension.yaml +6 -0
  118. package/routing/god-test-runtime.yaml +1 -0
  119. package/routing/god-thread.yaml +6 -0
  120. package/routing/god-trace.yaml +6 -0
  121. package/routing/god-undo.yaml +1 -0
  122. package/routing/god-update-deps.yaml +1 -0
  123. package/routing/god-upgrade.yaml +1 -0
  124. package/routing/god-version.yaml +1 -0
  125. package/routing/god-workstream.yaml +6 -0
  126. package/routing/god.yaml +6 -0
  127. package/schema/routing.v1.json +62 -4
  128. package/schema/workflow.v1.json +14 -0
  129. package/skills/god-doctor.md +1 -1
  130. package/skills/god-help.md +38 -3
  131. package/skills/god-next.md +19 -2
  132. package/skills/god-status.md +13 -0
  133. package/skills/god-sync.md +1 -1
  134. package/skills/god.md +53 -1
  135. package/workflows/audit-only.yaml +2 -2
  136. package/workflows/bluefield-arc.yaml +3 -7
  137. package/workflows/brownfield-arc.yaml +4 -8
  138. package/workflows/deps-audit.yaml +2 -5
  139. package/workflows/docs-arc.yaml +2 -2
  140. package/workflows/feature-arc.yaml +3 -6
  141. package/workflows/full-arc.yaml +5 -11
  142. package/workflows/hotfix-arc.yaml +3 -6
  143. package/workflows/hygiene.yaml +2 -2
  144. package/workflows/migration-arc.yaml +3 -5
  145. package/workflows/postmortem.yaml +2 -5
  146. package/workflows/refactor-arc.yaml +3 -6
@@ -51,7 +51,7 @@ const FEATURES = [
51
51
  id: 'route-quality-sync',
52
52
  since: '1.6.19',
53
53
  commands: ['/god-sync', '/god-doctor', '/god-status', '/god-mode'],
54
- description: 'Detect symbolic route spawns, unresolved agent targets, and unapproved contextual route exits.'
54
+ description: 'Detect symbolic route spawns, unresolved agent targets, and untyped contextual route exits.'
55
55
  },
56
56
  {
57
57
  id: 'recipe-coverage-sync',
@@ -12,15 +12,18 @@ 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/command-families.js',
15
16
  'lib/dogfood-runner.js',
16
17
  'lib/extension-authoring.js',
17
18
  'lib/host-capabilities.js',
18
19
  'lib/route-quality-sync.js',
19
20
  'lib/recipe-coverage-sync.js',
20
- 'lib/release-surface-sync.js'
21
+ 'lib/release-surface-sync.js',
22
+ 'lib/workflow-helper-groups.js'
21
23
  ];
22
24
 
23
25
  const REQUIRED_RELEASE_TESTS = [
26
+ 'scripts/test-command-families.js',
24
27
  'scripts/test-dogfood-runner.js',
25
28
  'scripts/test-extension-authoring.js',
26
29
  'scripts/test-host-capabilities.js',
@@ -2,8 +2,8 @@
2
2
  * Route quality sync.
3
3
  *
4
4
  * Detects disconnected route automation surfaces: symbolic spawn tokens,
5
- * unresolved agent targets, contextual exits without an approved reason,
6
- * missing standards coverage, and agent-spawn routes without trace events.
5
+ * unresolved agent targets, contextual exits without typed outcomes, missing
6
+ * standards coverage, and agent-spawn routes without trace events.
7
7
  */
8
8
 
9
9
  const fs = require('fs');
@@ -12,6 +12,21 @@ const path = require('path');
12
12
  const { parseSimpleYaml } = require('./intent');
13
13
 
14
14
  const LOG_PATH = '.godpowers/surface/ROUTE-QUALITY-SYNC.md';
15
+ const CONTEXTUAL_NEXT_VALUES = new Set([
16
+ 'varies',
17
+ 'varies-by-verdict',
18
+ 'steady-state',
19
+ 'session-end'
20
+ ]);
21
+ const OUTCOME_TYPES = new Set([
22
+ 'contextual',
23
+ 'verdict-based',
24
+ 'steady-state',
25
+ 'session-end',
26
+ 'requires-selection',
27
+ 'no-next-command',
28
+ 'explicit-command'
29
+ ]);
15
30
 
16
31
  const CONTEXTUAL_NEXT_ALLOWED = new Set([
17
32
  '/god',
@@ -21,23 +36,30 @@ const CONTEXTUAL_NEXT_ALLOWED = new Set([
21
36
  '/god-check-todos',
22
37
  '/god-context-scan',
23
38
  '/god-cost',
39
+ '/god-design-impact',
24
40
  '/god-discuss',
25
41
  '/god-doctor',
26
42
  '/god-extension-add',
27
43
  '/god-extension-info',
28
44
  '/god-extension-list',
29
45
  '/god-extension-remove',
30
- '/god-extension-scaffold',
31
46
  '/god-graph',
32
47
  '/god-help',
33
48
  '/god-lifecycle',
34
49
  '/god-list-assumptions',
35
50
  '/god-locate',
36
51
  '/god-logs',
52
+ '/god-launch',
37
53
  '/god-metrics',
54
+ '/god-mode',
38
55
  '/god-next',
56
+ '/god-pause-work',
39
57
  '/god-redo',
58
+ '/god-reconcile',
40
59
  '/god-resume-work',
60
+ '/god-roadmap-check',
61
+ '/god-sprint',
62
+ '/god-suite-status',
41
63
  '/god-test-extension',
42
64
  '/god-thread',
43
65
  '/god-trace',
@@ -141,7 +163,7 @@ function detect(projectRoot) {
141
163
  .map((file) => path.basename(file, '.md')));
142
164
  let symbolicCount = 0;
143
165
  let unresolvedCount = 0;
144
- let contextualExitCount = 0;
166
+ let typedOutcomeCount = 0;
145
167
  let standardsExemptCount = 0;
146
168
  let traceEventMissingCount = 0;
147
169
 
@@ -194,18 +216,22 @@ function detect(projectRoot) {
194
216
  );
195
217
  }
196
218
 
197
- const next = route['success-path'] && route['success-path']['next-recommended'];
219
+ const successPath = route['success-path'] || {};
220
+ const next = successPath['next-recommended'];
198
221
  const conditionalNext = route['success-path'] && arr(route['success-path']['conditional-next']);
199
- if (next === 'varies' && conditionalNext.length === 0) {
200
- if (CONTEXTUAL_NEXT_ALLOWED.has(command)) {
201
- contextualExitCount++;
222
+ const outcome = successPath.outcome || {};
223
+ const needsTypedOutcome = next
224
+ && (CONTEXTUAL_NEXT_VALUES.has(String(next)) || /\s+or\s+/.test(String(next)));
225
+ if (needsTypedOutcome) {
226
+ if (outcome.type && OUTCOME_TYPES.has(String(outcome.type))) {
227
+ typedOutcomeCount++;
202
228
  } else {
203
229
  addCheck(
204
230
  checks,
205
- `unapproved-varies-${command.replace(/[^a-z0-9]+/gi, '-')}`,
231
+ `missing-route-outcome-${command.replace(/[^a-z0-9]+/gi, '-')}`,
206
232
  'stale',
207
233
  routePath,
208
- `${command} uses next-recommended: varies without an approved contextual-exit classification.`,
234
+ `${command} uses contextual next route ${next} without a typed success-path.outcome.`,
209
235
  { spawn: 'god-roadmap-reconciler' }
210
236
  );
211
237
  }
@@ -238,10 +264,10 @@ function detect(projectRoot) {
238
264
  addCheck(
239
265
  checks,
240
266
  'contextual-exit-policy',
241
- checks.some((check) => check.id.startsWith('unapproved-varies-')) ? 'stale' : 'fresh',
267
+ checks.some((check) => check.id.startsWith('missing-route-outcome-')) ? 'stale' : 'fresh',
242
268
  'routing/',
243
- `${contextualExitCount} contextual route exits are approved and all other next routes are explicit.`,
244
- { spawn: checks.some((check) => check.id.startsWith('unapproved-varies-')) ? 'god-roadmap-reconciler' : null }
269
+ `${typedOutcomeCount} contextual route exits have typed outcomes and all other next routes are explicit.`,
270
+ { spawn: checks.some((check) => check.id.startsWith('missing-route-outcome-')) ? 'god-roadmap-reconciler' : null }
245
271
  );
246
272
  addCheck(
247
273
  checks,
@@ -309,6 +335,8 @@ function summary(report) {
309
335
  module.exports = {
310
336
  LOG_PATH,
311
337
  CONTEXTUAL_NEXT_ALLOWED,
338
+ CONTEXTUAL_NEXT_VALUES,
339
+ OUTCOME_TYPES,
312
340
  STANDARDS_EXEMPT_COMMANDS,
313
341
  detect,
314
342
  run,
package/lib/router.js CHANGED
@@ -12,6 +12,7 @@ const fs = require('fs');
12
12
  const path = require('path');
13
13
  const { parseSimpleYaml } = require('./intent');
14
14
  const state = require('./state');
15
+ const commandFamilies = require('./command-families');
15
16
 
16
17
  const ROUTING_DIR = path.join(__dirname, '..', 'routing');
17
18
  const SAFE_SYNC_PLAN = '.godpowers/sync/SAFE-SYNC-PLAN.md';
@@ -186,6 +187,33 @@ function getNextCommand(command, opts = {}) {
186
187
  return sp['next-recommended'] || null;
187
188
  }
188
189
 
190
+ function inferOutcomeType(next) {
191
+ if (!next) return 'no-next-command';
192
+ if (next === 'varies') return 'contextual';
193
+ if (next === 'varies-by-verdict') return 'verdict-based';
194
+ if (next === 'steady-state') return 'steady-state';
195
+ if (next === 'session-end') return 'session-end';
196
+ if (/\s+or\s+/.test(next)) return 'requires-selection';
197
+ if (/^\/god(?:-[a-z-]+)?(?:\s.*)?$/.test(next)) return 'explicit-command';
198
+ return 'contextual';
199
+ }
200
+
201
+ function getRouteOutcome(command) {
202
+ const routing = getRouting(command);
203
+ if (!routing) return null;
204
+ const sp = routing['success-path'] || {};
205
+ const outcome = sp.outcome || {};
206
+ const next = sp['next-recommended'] || null;
207
+ const type = outcome.type || inferOutcomeType(next);
208
+ return {
209
+ type,
210
+ label: outcome.label || type,
211
+ reason: outcome.reason || 'Route outcome is inferred from success-path.next-recommended.',
212
+ next,
213
+ allowedNext: outcome['allowed-next'] || []
214
+ };
215
+ }
216
+
189
217
  /**
190
218
  * Evaluate a routing condition against the project state.
191
219
  */
@@ -368,9 +396,13 @@ module.exports = {
368
396
  getRouting,
369
397
  checkPrerequisites,
370
398
  getNextCommand,
399
+ getRouteOutcome,
371
400
  getAlternatives,
372
401
  getStandards,
373
402
  getSpawnedAgents,
403
+ getCommandFamily: commandFamilies.familyForCommand,
404
+ resolveTrigger: commandFamilies.resolveTrigger,
405
+ commandFamilies,
374
406
  suggestNext,
375
407
  evaluateCheck,
376
408
  resolveProjectRelative,
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Workflow helper groups.
3
+ *
4
+ * Workflow YAML can use these groups to avoid repeating long closeout helper
5
+ * lists. Plans still expand them into exact helper names for visibility.
6
+ */
7
+
8
+ const HELPER_GROUPS = {
9
+ 'standard-closeout': [
10
+ 'repo-doc-sync',
11
+ 'repo-surface-sync',
12
+ 'checkpoint-sync',
13
+ 'pillars-sync-plan'
14
+ ],
15
+ 'repo-maintenance-closeout': [
16
+ 'repo-doc-sync',
17
+ 'repo-surface-sync'
18
+ ],
19
+ 'runtime-awareness-closeout': [
20
+ 'feature-awareness',
21
+ 'host-capabilities'
22
+ ],
23
+ 'release-readiness-closeout': [
24
+ 'route-quality-sync',
25
+ 'recipe-coverage-sync',
26
+ 'release-surface-sync'
27
+ ],
28
+ 'source-sync-closeout': [
29
+ 'source-sync-back'
30
+ ]
31
+ };
32
+
33
+ function expand(groups = [], helpers = []) {
34
+ const expanded = [];
35
+ const names = Array.isArray(groups) ? groups : [groups].filter(Boolean);
36
+ for (const group of names) {
37
+ for (const helper of HELPER_GROUPS[group] || []) {
38
+ if (!expanded.includes(helper)) expanded.push(helper);
39
+ }
40
+ }
41
+ for (const helper of helpers || []) {
42
+ if (!expanded.includes(helper)) expanded.push(helper);
43
+ }
44
+ return expanded;
45
+ }
46
+
47
+ module.exports = {
48
+ HELPER_GROUPS,
49
+ expand
50
+ };
@@ -31,6 +31,7 @@ const path = require('path');
31
31
  const parser = require('./workflow-parser');
32
32
  const asyncFs = require('./fs-async');
33
33
  const agentRefs = require('./agent-refs');
34
+ const helperGroups = require('./workflow-helper-groups');
34
35
 
35
36
  /**
36
37
  * @typedef {Object} WorkflowPlanStep
@@ -134,7 +135,8 @@ function plan(workflow, ctx = {}) {
134
135
  review: job.review || null,
135
136
  'on-pass': job['on-pass'] || null,
136
137
  'on-fail': job['on-fail'] || null,
137
- localHelpers: job['local-helpers'] || [],
138
+ localHelperGroups: job['local-helper-groups'] || [],
139
+ localHelpers: helperGroups.expand(job['local-helper-groups'] || [], job['local-helpers'] || []),
138
140
  with: job.with || null
139
141
  });
140
142
  }
@@ -221,6 +223,9 @@ function serializePlan(p) {
221
223
  if (step.tier) lines.push(` tier: ${step.tier}`);
222
224
  if (step.agent) lines.push(` agent: ${step.agent}`);
223
225
  if (step.uses) lines.push(` uses: ${step.uses}`);
226
+ if (step.localHelperGroups && step.localHelperGroups.length) {
227
+ lines.push(` local-helper-groups: [${step.localHelperGroups.join(', ')}]`);
228
+ }
224
229
  if (step.localHelpers && step.localHelpers.length) {
225
230
  lines.push(` local-helpers: [${step.localHelpers.join(', ')}]`);
226
231
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "godpowers",
3
- "version": "2.3.1",
3
+ "version": "2.4.0",
4
4
  "description": "AI-powered development system: 112 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"
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-add-backlog
5
5
  description: Add idea to backlog (less urgent than todo)
6
6
  tier: 0
7
+ family: capture
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-add-tests
5
5
  description: Add tests to legacy code
6
6
  tier: 0
7
+ family: build
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-add-todo
5
5
  description: Capture a todo from current context
6
6
  tier: 0
7
+ family: capture
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-agent-audit
5
5
  description: Validate agents/*.md against agent contract
6
6
  tier: 0
7
+ family: verify
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -15,6 +16,11 @@ execution:
15
16
 
16
17
  success-path:
17
18
  next-recommended: varies
19
+ outcome:
20
+ type: contextual
21
+ label: Context-specific next route
22
+ reason: The next route depends on current disk state, command arguments, or user choice.
23
+ allowed-next: [/god-status, /god-next, /god-help]
18
24
 
19
25
  failure-path:
20
26
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-arch
5
5
  description: Design system architecture
6
6
  tier: 1
7
+ family: start
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-archaeology
5
5
  description: Deep brownfield code archaeology
6
6
  tier: 0
7
+ family: start
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-audit
5
5
  description: Score artifacts against have-nots
6
6
  tier: 0
7
+ family: verify
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-automation-setup
5
5
  description: Prepare opt-in host automation setup
6
6
  tier: 0
7
+ family: configure
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-automation-status
5
5
  description: Show host automation provider support
6
6
  tier: 0
7
+ family: configure
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-budget
5
5
  description:
6
6
  tier: 0
7
+ family: configure
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -15,6 +16,11 @@ execution:
15
16
 
16
17
  success-path:
17
18
  next-recommended: varies
19
+ outcome:
20
+ type: contextual
21
+ label: Context-specific next route
22
+ reason: The next route depends on current disk state, command arguments, or user choice.
23
+ allowed-next: [/god-status, /god-next, /god-help]
18
24
 
19
25
  failure-path:
20
26
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-build-agent
5
5
  description: Generate custom specialist agent
6
6
  tier: 0
7
+ family: extend
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-build
5
5
  description: Build slices with TDD enforcement and two-stage review
6
6
  tier: 2
7
+ family: build
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-cache-clear
5
5
  description:
6
6
  tier: 0
7
+ family: configure
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -15,6 +16,11 @@ execution:
15
16
 
16
17
  success-path:
17
18
  next-recommended: varies
19
+ outcome:
20
+ type: contextual
21
+ label: Context-specific next route
22
+ reason: The next route depends on current disk state, command arguments, or user choice.
23
+ allowed-next: [/god-status, /god-next, /god-help]
18
24
 
19
25
  failure-path:
20
26
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-check-todos
5
5
  description: List pending todos; optionally route to one
6
6
  tier: 0
7
+ family: capture
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -15,6 +16,11 @@ execution:
15
16
 
16
17
  success-path:
17
18
  next-recommended: varies
19
+ outcome:
20
+ type: contextual
21
+ label: Context-specific next route
22
+ reason: The next route depends on current disk state, command arguments, or user choice.
23
+ allowed-next: [/god-status, /god-next, /god-help]
18
24
 
19
25
  failure-path:
20
26
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-context-scan
5
5
  description:
6
6
  tier: 0
7
+ family: maintain
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -15,6 +16,11 @@ execution:
15
16
 
16
17
  success-path:
17
18
  next-recommended: varies
19
+ outcome:
20
+ type: contextual
21
+ label: Context-specific next route
22
+ reason: The next route depends on current disk state, command arguments, or user choice.
23
+ allowed-next: [/god-status, /god-next, /god-help]
18
24
 
19
25
  failure-path:
20
26
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-context
5
5
  description: Manage Godpowers fence in AGENTS.md / CLAUDE.md / GEMINI.md / others
6
6
  tier: 0
7
+ family: maintain
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-cost
5
5
  description:
6
6
  tier: 0
7
+ family: configure
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -15,6 +16,11 @@ execution:
15
16
 
16
17
  success-path:
17
18
  next-recommended: varies
19
+ outcome:
20
+ type: contextual
21
+ label: Context-specific next route
22
+ reason: The next route depends on current disk state, command arguments, or user choice.
23
+ allowed-next: [/god-status, /god-next, /god-help]
18
24
 
19
25
  failure-path:
20
26
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-debug
5
5
  description: 4-phase systematic debug
6
6
  tier: 0
7
+ family: build
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-deploy
5
5
  description: Set up deploy pipeline
6
6
  tier: 3
7
+ family: operate
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-design-impact
5
5
  description: What-if analysis on DESIGN.md change
6
6
  tier: 1
7
+ family: start
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -16,6 +17,11 @@ execution:
16
17
 
17
18
  success-path:
18
19
  next-recommended: /god-design or /god-sync
20
+ outcome:
21
+ type: requires-selection
22
+ label: User selection required
23
+ reason: The route offers multiple valid next commands and the user should choose one.
24
+ allowed-next: [/god-design, /god-sync]
19
25
 
20
26
  failure-path:
21
27
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-design
5
5
  description: Design lifecycle (DESIGN.md + PRODUCT.md) bridged to impeccable
6
6
  tier: 1
7
+ family: start
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,13 @@ metadata:
4
4
  command: /god-discuss
5
5
  description: Pre-planning discussion
6
6
  tier: 0
7
+ family: start
8
+ trigger-precedence:
9
+ - trigger: think through
10
+ prefer: /god-explore
11
+ when: broad-idea
12
+ fallback: /god-discuss
13
+ reason: Broad ideation starts in explore while concrete decisions stay in discuss.
7
14
 
8
15
  prerequisites:
9
16
  required:
@@ -18,6 +25,11 @@ execution:
18
25
 
19
26
  success-path:
20
27
  next-recommended: varies
28
+ outcome:
29
+ type: contextual
30
+ label: Context-specific next route
31
+ reason: The next route depends on current disk state, command arguments, or user choice.
32
+ allowed-next: [/god-status, /god-next, /god-help]
21
33
 
22
34
  failure-path:
23
35
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-docs
5
5
  description: Documentation work
6
6
  tier: 0
7
+ family: maintain
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-doctor
5
5
  description: Diagnose install + state
6
6
  tier: 0
7
+ family: recover
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -18,6 +19,11 @@ execution:
18
19
 
19
20
  success-path:
20
21
  next-recommended: varies
22
+ outcome:
23
+ type: contextual
24
+ label: Context-specific next route
25
+ reason: The next route depends on current disk state, command arguments, or user choice.
26
+ allowed-next: [/god-status, /god-next, /god-help]
21
27
 
22
28
  failure-path:
23
29
  on-error: /god-doctor
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-dogfood
5
5
  description: Run messy-repo dogfood scenarios for release and autonomy readiness.
6
6
  tier: 0
7
+ family: verify
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-explore
5
5
  description: Pre-init Socratic ideation
6
6
  tier: 0
7
+ family: start
7
8
 
8
9
  prerequisites:
9
10
  required:
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-export-otel
5
5
  description: Export Godpowers events to OpenTelemetry OTLP JSON traces
6
6
  tier: 0
7
+ family: operate
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -4,6 +4,7 @@ metadata:
4
4
  command: /god-extension-add
5
5
  description:
6
6
  tier: 0
7
+ family: extend
7
8
 
8
9
  prerequisites:
9
10
  required: []
@@ -15,6 +16,11 @@ execution:
15
16
 
16
17
  success-path:
17
18
  next-recommended: varies
19
+ outcome:
20
+ type: contextual
21
+ label: Context-specific next route
22
+ reason: The next route depends on current disk state, command arguments, or user choice.
23
+ allowed-next: [/god-status, /god-next, /god-help]
18
24
 
19
25
  failure-path:
20
26
  on-error: /god-doctor