godpowers 3.0.1 → 3.0.2
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 +26 -2
- package/README.md +24 -13
- package/RELEASE.md +21 -21
- package/SKILL.md +71 -112
- package/bin/install.js +10 -0
- package/lib/README.md +1 -0
- package/lib/cli-dispatch.js +40 -1
- package/lib/command-families.js +10 -2
- package/lib/install-profiles.js +4 -1
- package/lib/installer-args.js +22 -0
- package/lib/surface-profile.js +168 -0
- package/package.json +2 -2
- package/references/orchestration/GOD-MODE-RUNBOOK.md +9 -14
- package/references/orchestration/GOD-ORCHESTRATOR-RUNBOOK.md +31 -78
- package/references/shared/DASHBOARD-CONTRACT.md +66 -29
- package/references/shared/README.md +1 -1
- package/routing/god-demo.yaml +35 -0
- package/routing/god-first-run.yaml +34 -0
- package/routing/god-surface.yaml +39 -0
- package/routing/recipes/try-safely.yaml +26 -0
- package/skills/god-agent-audit.md +5 -6
- package/skills/god-archaeology.md +5 -6
- package/skills/god-audit.md +6 -7
- package/skills/god-automation-setup.md +6 -7
- package/skills/god-automation-status.md +6 -7
- package/skills/god-context-scan.md +7 -8
- package/skills/god-demo.md +53 -0
- package/skills/god-design-impact.md +5 -6
- package/skills/god-discuss.md +5 -6
- package/skills/god-docs.md +5 -10
- package/skills/god-doctor.md +8 -9
- package/skills/god-dogfood.md +7 -10
- package/skills/god-explore.md +5 -7
- package/skills/god-first-run.md +64 -0
- package/skills/god-help.md +77 -51
- package/skills/god-hygiene.md +5 -6
- package/skills/god-lifecycle.md +11 -13
- package/skills/god-list-assumptions.md +7 -8
- package/skills/god-locate.md +7 -8
- package/skills/god-map-codebase.md +5 -6
- package/skills/god-migrate.md +6 -15
- package/skills/god-next.md +16 -17
- package/skills/god-preflight.md +7 -8
- package/skills/god-progress.md +7 -8
- package/skills/god-reconcile.md +5 -6
- package/skills/god-reconstruct.md +5 -7
- package/skills/god-refactor.md +6 -7
- package/skills/god-roadmap-check.md +6 -7
- package/skills/god-scan.md +5 -9
- package/skills/god-spike.md +5 -6
- package/skills/god-standards.md +5 -6
- package/skills/god-status.md +12 -10
- package/skills/god-surface.md +61 -0
- package/skills/god-sync.md +4 -8
- package/skills/god-tech-debt.md +5 -6
- package/skills/god-test-runtime.md +4 -8
- package/skills/god-version.md +1 -1
- package/skills/god.md +53 -52
package/lib/installer-args.js
CHANGED
|
@@ -11,6 +11,8 @@ const COMMANDS = new Set([
|
|
|
11
11
|
'automation-setup',
|
|
12
12
|
'dogfood',
|
|
13
13
|
'extension-scaffold',
|
|
14
|
+
'surface',
|
|
15
|
+
'demo',
|
|
14
16
|
'gate'
|
|
15
17
|
]);
|
|
16
18
|
|
|
@@ -21,6 +23,7 @@ function parseArgs(argv, cwd = process.cwd()) {
|
|
|
21
23
|
project: cwd,
|
|
22
24
|
json: false,
|
|
23
25
|
brief: false,
|
|
26
|
+
full: false,
|
|
24
27
|
stateAction: null,
|
|
25
28
|
step: null,
|
|
26
29
|
status: null,
|
|
@@ -30,6 +33,8 @@ function parseArgs(argv, cwd = process.cwd()) {
|
|
|
30
33
|
extensionAgent: null,
|
|
31
34
|
extensionWorkflow: null,
|
|
32
35
|
tier: null,
|
|
36
|
+
apply: false,
|
|
37
|
+
dryRun: false,
|
|
33
38
|
runtimes: [],
|
|
34
39
|
global: false,
|
|
35
40
|
local: false,
|
|
@@ -57,6 +62,21 @@ function parseArgs(argv, cwd = process.cwd()) {
|
|
|
57
62
|
case '--brief':
|
|
58
63
|
opts.brief = true;
|
|
59
64
|
break;
|
|
65
|
+
case '--full':
|
|
66
|
+
opts.full = true;
|
|
67
|
+
break;
|
|
68
|
+
case '--apply':
|
|
69
|
+
opts.apply = true;
|
|
70
|
+
break;
|
|
71
|
+
case '--dry-run':
|
|
72
|
+
opts.dryRun = true;
|
|
73
|
+
break;
|
|
74
|
+
case '--runtime':
|
|
75
|
+
if (args[i + 1]) {
|
|
76
|
+
opts.runtimes.push(args[i + 1]);
|
|
77
|
+
i++;
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
60
80
|
case '--tier':
|
|
61
81
|
if (args[i + 1]) {
|
|
62
82
|
opts.tier = args[i + 1];
|
|
@@ -122,6 +142,8 @@ function parseArgs(argv, cwd = process.cwd()) {
|
|
|
122
142
|
opts.extensionAgent = arg.slice('--agent='.length);
|
|
123
143
|
} else if (arg.startsWith('--workflow=')) {
|
|
124
144
|
opts.extensionWorkflow = arg.slice('--workflow='.length);
|
|
145
|
+
} else if (arg.startsWith('--runtime=')) {
|
|
146
|
+
opts.runtimes.push(arg.slice('--runtime='.length));
|
|
125
147
|
} else if (arg.startsWith('--tier=')) {
|
|
126
148
|
opts.tier = arg.slice('--tier='.length);
|
|
127
149
|
} else if (arg.startsWith('--step=')) {
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime surface profile preview and apply helper.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
const fs = require('fs');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
|
|
8
|
+
const { resolveRuntime, runtimeKeys } = require('./installer-runtimes');
|
|
9
|
+
const profiles = require('./install-profiles');
|
|
10
|
+
const installer = require('./installer-core');
|
|
11
|
+
|
|
12
|
+
function availableSkillNames(srcDir) {
|
|
13
|
+
const skillsDir = path.join(srcDir, 'skills');
|
|
14
|
+
if (!fs.existsSync(skillsDir)) return [];
|
|
15
|
+
return fs.readdirSync(skillsDir)
|
|
16
|
+
.filter((file) => /^god.*\.md$/.test(file))
|
|
17
|
+
.map((file) => path.basename(file, '.md'))
|
|
18
|
+
.sort();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function isRuntimeSkillName(name) {
|
|
22
|
+
return name === 'god' || name.startsWith('god-');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function installedSkillNames(runtime) {
|
|
26
|
+
const skillsDir = path.join(runtime.configDir, runtime.skillsDir);
|
|
27
|
+
if (!fs.existsSync(skillsDir)) return [];
|
|
28
|
+
const names = [];
|
|
29
|
+
for (const entry of fs.readdirSync(skillsDir, { withFileTypes: true })) {
|
|
30
|
+
if (entry.isDirectory()) {
|
|
31
|
+
const skillFile = path.join(skillsDir, entry.name, 'SKILL.md');
|
|
32
|
+
if (fs.existsSync(skillFile) && isRuntimeSkillName(entry.name)) {
|
|
33
|
+
names.push(entry.name);
|
|
34
|
+
}
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
38
|
+
const name = path.basename(entry.name, '.md');
|
|
39
|
+
if (isRuntimeSkillName(name)) names.push(name);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return [...new Set(names)].sort();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function currentProfile(runtime) {
|
|
46
|
+
const marker = path.join(runtime.configDir, 'GODPOWERS_PROFILE');
|
|
47
|
+
if (!fs.existsSync(marker)) return 'unknown';
|
|
48
|
+
const text = fs.readFileSync(marker, 'utf8').trim();
|
|
49
|
+
return text || 'unknown';
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function targetRuntimeKeys(opts = {}) {
|
|
53
|
+
if (opts.all) return runtimeKeys();
|
|
54
|
+
if (opts.runtimes && opts.runtimes.length > 0) return opts.runtimes.slice();
|
|
55
|
+
return runtimeKeys().filter((key) => {
|
|
56
|
+
const runtime = resolveRuntime(key, opts);
|
|
57
|
+
return runtime && fs.existsSync(path.join(runtime.configDir, 'GODPOWERS_VERSION'));
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function diffSkills(selected, installed) {
|
|
62
|
+
const selectedSet = new Set(selected);
|
|
63
|
+
const installedSet = new Set(installed);
|
|
64
|
+
return {
|
|
65
|
+
add: selected.filter((name) => !installedSet.has(name)),
|
|
66
|
+
remove: installed.filter((name) => !selectedSet.has(name))
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function plan(srcDir = path.resolve(__dirname, '..'), opts = {}) {
|
|
71
|
+
const profileList = profiles.normalizeProfiles(opts.profile || 'core');
|
|
72
|
+
const profile = profileList.join(',');
|
|
73
|
+
const available = availableSkillNames(srcDir);
|
|
74
|
+
const selected = [...profiles.selectedSkillNames(profile, available)].sort();
|
|
75
|
+
const keys = targetRuntimeKeys(opts);
|
|
76
|
+
const targets = keys.map((key) => {
|
|
77
|
+
const runtime = resolveRuntime(key, opts);
|
|
78
|
+
const installed = runtime ? installedSkillNames(runtime) : [];
|
|
79
|
+
const diff = diffSkills(selected, installed);
|
|
80
|
+
return {
|
|
81
|
+
key,
|
|
82
|
+
name: runtime ? runtime.name : key,
|
|
83
|
+
configDir: runtime ? runtime.configDir : null,
|
|
84
|
+
skillsDir: runtime ? path.join(runtime.configDir, runtime.skillsDir) : null,
|
|
85
|
+
installed: Boolean(runtime && fs.existsSync(path.join(runtime.configDir, 'GODPOWERS_VERSION'))),
|
|
86
|
+
currentProfile: runtime ? currentProfile(runtime) : 'unknown',
|
|
87
|
+
currentCount: installed.length,
|
|
88
|
+
selectedCount: selected.length,
|
|
89
|
+
add: diff.add,
|
|
90
|
+
remove: diff.remove
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
return {
|
|
95
|
+
profile,
|
|
96
|
+
description: profiles.describeProfiles(profile),
|
|
97
|
+
mode: opts.apply ? 'apply' : 'dry-run',
|
|
98
|
+
selectedCount: selected.length,
|
|
99
|
+
availableCount: available.length,
|
|
100
|
+
targets
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function apply(srcDir = path.resolve(__dirname, '..'), opts = {}) {
|
|
105
|
+
const keys = targetRuntimeKeys(opts);
|
|
106
|
+
if (keys.length === 0) {
|
|
107
|
+
throw new Error('surface apply requires an installed runtime, --all, or an explicit runtime flag');
|
|
108
|
+
}
|
|
109
|
+
const results = [];
|
|
110
|
+
for (const key of keys) {
|
|
111
|
+
const ok = installer.installForRuntime(key, srcDir, { ...opts, profile: opts.profile || 'core' });
|
|
112
|
+
results.push({ key, ok });
|
|
113
|
+
}
|
|
114
|
+
return results;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function renderList(items, max = 6) {
|
|
118
|
+
if (!items || items.length === 0) return 'none';
|
|
119
|
+
const shown = items.slice(0, max).join(', ');
|
|
120
|
+
const remaining = items.length - max;
|
|
121
|
+
return remaining > 0 ? `${shown}, and ${remaining} more` : shown;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function render(report) {
|
|
125
|
+
const lines = [
|
|
126
|
+
'Godpowers Surface',
|
|
127
|
+
'',
|
|
128
|
+
`Profile: ${report.description}`,
|
|
129
|
+
`Mode: ${report.mode}`,
|
|
130
|
+
`Selected commands: ${report.selectedCount} of ${report.availableCount}`,
|
|
131
|
+
'',
|
|
132
|
+
'Runtime targets:'
|
|
133
|
+
];
|
|
134
|
+
|
|
135
|
+
if (report.targets.length === 0) {
|
|
136
|
+
lines.push(' none detected. Pass --claude, --codex, or --all.');
|
|
137
|
+
} else {
|
|
138
|
+
for (const target of report.targets) {
|
|
139
|
+
lines.push(` - ${target.name}: current ${target.currentProfile}, selected ${target.selectedCount} commands`);
|
|
140
|
+
lines.push(` Path: ${target.skillsDir}`);
|
|
141
|
+
lines.push(` Add: ${renderList(target.add)}`);
|
|
142
|
+
lines.push(` Remove: ${renderList(target.remove)}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
lines.push('');
|
|
147
|
+
lines.push('Next commands:');
|
|
148
|
+
if (report.targets.length === 0) {
|
|
149
|
+
lines.push('- godpowers surface --profile=core --codex --global --dry-run: Preview the core surface for Codex.');
|
|
150
|
+
} else if (report.mode === 'dry-run') {
|
|
151
|
+
const first = report.targets[0];
|
|
152
|
+
lines.push(`- godpowers surface --profile=${report.profile} --${first.key} --global --apply: Apply this profile to ${first.name}.`);
|
|
153
|
+
} else {
|
|
154
|
+
lines.push('- /god-help: Open the compact help view after the surface switch.');
|
|
155
|
+
}
|
|
156
|
+
lines.push('- /god-help all: Show the complete catalog when you need every command.');
|
|
157
|
+
|
|
158
|
+
return lines.join('\n');
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
module.exports = {
|
|
162
|
+
availableSkillNames,
|
|
163
|
+
installedSkillNames,
|
|
164
|
+
targetRuntimeKeys,
|
|
165
|
+
plan,
|
|
166
|
+
apply,
|
|
167
|
+
render
|
|
168
|
+
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "godpowers",
|
|
3
|
-
"version": "3.0.
|
|
4
|
-
"description": "AI-powered development system:
|
|
3
|
+
"version": "3.0.2",
|
|
4
|
+
"description": "AI-powered development system: 120 slash commands and 40 specialist agents that take a project from raw idea to hardened production. Runs inside Claude Code, Codex, Cursor, Windsurf, Gemini, and 10+ other AI coding tools.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"godpowers": "./bin/install.js"
|
|
7
7
|
},
|
|
@@ -10,8 +10,8 @@ Show:
|
|
|
10
10
|
- detected resume or project mode in plain language
|
|
11
11
|
- a compact "Next step" card before each visible phase or tier sub-step
|
|
12
12
|
- a compact "Step result" card after each visible phase or tier sub-step
|
|
13
|
-
-
|
|
14
|
-
|
|
13
|
+
- concise notes for automatic work that changes artifacts, review items, or
|
|
14
|
+
recommendations, with details written to logs
|
|
15
15
|
- plain-language workflow names. Say "project run" or "workflow" instead of
|
|
16
16
|
unexplained "arc" in visible output
|
|
17
17
|
- PRD and roadmap visibility in status and closeout blocks when artifacts
|
|
@@ -19,9 +19,8 @@ Show:
|
|
|
19
19
|
- short progress updates for phases, commands, validations, and file edits
|
|
20
20
|
- concise validation summaries instead of full command noise when possible
|
|
21
21
|
- final changed paths, validation results, and completion or pause status
|
|
22
|
-
- final
|
|
23
|
-
|
|
24
|
-
recommended next action
|
|
22
|
+
- final compact action brief from disk, with `/god-status --full` offered for
|
|
23
|
+
the complete dashboard
|
|
25
24
|
|
|
26
25
|
Hide:
|
|
27
26
|
- raw spawn input
|
|
@@ -272,15 +271,11 @@ Periodic hygiene:
|
|
|
272
271
|
Open items:
|
|
273
272
|
1. <none, or deployed staging deferred, pending review, unstaged files, etc.>
|
|
274
273
|
|
|
275
|
-
Next:
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
1. Review status: /god-status
|
|
281
|
-
2. Continue work: /god-next or describe the next intent
|
|
282
|
-
3. Commit release-ready changes: stage only the intended files, then commit
|
|
283
|
-
4. Run deployed staging: provide STAGING_APP_URL=<deployed staging origin> when needed
|
|
274
|
+
Next commands:
|
|
275
|
+
- /god-status --full: Review the complete dashboard and proactive checks.
|
|
276
|
+
- /god-next: Continue with the safest state-derived next step.
|
|
277
|
+
- stage only the intended files, then commit: Commit release-ready changes.
|
|
278
|
+
- provide STAGING_APP_URL=<deployed staging origin>: Run deployed staging when needed.
|
|
284
279
|
```
|
|
285
280
|
|
|
286
281
|
If the run edited code but did not stage or commit, the completion block must
|
|
@@ -243,20 +243,20 @@ Use this trigger map:
|
|
|
243
243
|
|
|
244
244
|
| Trigger | Auto action | Visibility |
|
|
245
245
|
|---|---|---|
|
|
246
|
-
| `state.json` or `PROGRESS.md` changed | refresh `.godpowers/CHECKPOINT.md` |
|
|
247
|
-
| code or artifact files changed | run lightweight reverse-sync or spawn `god-updater` for workflow closeout |
|
|
248
|
-
| durable artifact truth changed | run Pillars sync plan |
|
|
249
|
-
| AI tool instruction files changed | spawn or dry-run `god-context-writer` |
|
|
250
|
-
| `REVIEW-REQUIRED.md` gains entries | suggest `/god-review-changes` |
|
|
246
|
+
| `state.json` or `PROGRESS.md` changed | refresh `.godpowers/CHECKPOINT.md` | log detail, concise note only when recommendation changes |
|
|
247
|
+
| code or artifact files changed | run lightweight reverse-sync or spawn `god-updater` for workflow closeout | concise sync note and log path |
|
|
248
|
+
| durable artifact truth changed | run Pillars sync plan | log detail, concise note only when pillar edits are proposed |
|
|
249
|
+
| AI tool instruction files changed | spawn or dry-run `god-context-writer` | concise note when files change |
|
|
250
|
+
| `REVIEW-REQUIRED.md` gains entries | suggest `/god-review-changes` | `Next commands:` |
|
|
251
251
|
| `DESIGN.md` or `PRODUCT.md` changed | spawn `god-design-reviewer` | gate card before propagation |
|
|
252
|
-
| docs and code both changed | spawn `god-docs-writer` in drift-check mode when current workflow owns docs, otherwise suggest `/god-docs` |
|
|
252
|
+
| docs and code both changed | spawn `god-docs-writer` in drift-check mode when current workflow owns docs, otherwise suggest `/god-docs` | concise note or `Next commands:` |
|
|
253
253
|
| frontend-visible files changed and a known URL exists | spawn `god-browser-tester` inside build, design, launch, harden, or explicit runtime workflows | runtime status card |
|
|
254
|
-
| frontend-visible files changed and no known URL exists | suggest `/god-test-runtime` with local URL setup, defer deployed URL |
|
|
255
|
-
| security-sensitive files changed | auto-spawn only inside harden, hotfix, launch, or project run; otherwise suggest `/god-harden` |
|
|
256
|
-
| dependency files changed | auto-spawn only inside update-deps, hygiene, or approved project run; otherwise suggest `/god-update-deps` |
|
|
257
|
-
| host automation support detected and no active templates are recorded | suggest `/god-automation-status` or `/god-automation-setup` |
|
|
254
|
+
| frontend-visible files changed and no known URL exists | suggest `/god-test-runtime` with local URL setup, defer deployed URL | `Next commands:` |
|
|
255
|
+
| security-sensitive files changed | auto-spawn only inside harden, hotfix, launch, or project run; otherwise suggest `/god-harden` | `Next commands:` |
|
|
256
|
+
| dependency files changed | auto-spawn only inside update-deps, hygiene, or approved project run; otherwise suggest `/god-update-deps` | `Next commands:` |
|
|
257
|
+
| host automation support detected and no active templates are recorded | suggest `/god-automation-status` or `/god-automation-setup` | `Next commands:` |
|
|
258
258
|
| user approves complex automation setup | spawn `god-automation-engineer` | approval card plus setup result |
|
|
259
|
-
| full project run complete or hygiene stale | suggest `/god-hygiene` |
|
|
259
|
+
| full project run complete or hygiene stale | suggest `/god-hygiene` | `Next commands:` |
|
|
260
260
|
|
|
261
261
|
Never use this matrix to auto-run Level 4 actions: deployed staging against a
|
|
262
262
|
guessed URL, production launch, provider dashboard access, broad dependency
|
|
@@ -265,8 +265,8 @@ git stage, commit, push, package, release, publish, schedule creation, routine
|
|
|
265
265
|
creation, background agent creation, API trigger creation, or CI workflow
|
|
266
266
|
creation without explicit user approval.
|
|
267
267
|
|
|
268
|
-
Every auto action must
|
|
269
|
-
|
|
268
|
+
Every auto action must either log details or emit a concise note when it
|
|
269
|
+
changes artifacts, review items, blockers, or the next recommendation.
|
|
270
270
|
|
|
271
271
|
## Detection-Driven Tier 1 Routing
|
|
272
272
|
|
|
@@ -640,18 +640,6 @@ After Launch completes, write a transition message:
|
|
|
640
640
|
```text
|
|
641
641
|
Godpowers project run complete.
|
|
642
642
|
|
|
643
|
-
Godpowers Dashboard
|
|
644
|
-
|
|
645
|
-
Source: runtime dashboard (lib/dashboard.js)
|
|
646
|
-
|
|
647
|
-
Current status:
|
|
648
|
-
State: complete
|
|
649
|
-
Phase: <plain-language phase> (tier <human ordinal> of <human total>)
|
|
650
|
-
Step: <sub-step label> (step <n> of <total steps>)
|
|
651
|
-
Progress: <pct>% workflow progress (<done> of <total> tracked steps complete)
|
|
652
|
-
Worktree: <clean | modified files unstaged | staged changes | mixed>
|
|
653
|
-
Index: <untouched | staged files listed>
|
|
654
|
-
|
|
655
643
|
Action brief:
|
|
656
644
|
Next: <one command or user decision>
|
|
657
645
|
Why: <one sentence tied to disk state>
|
|
@@ -659,17 +647,6 @@ Action brief:
|
|
|
659
647
|
Attention: <none or top blockers>
|
|
660
648
|
Host guarantees: <full | degraded | unknown>
|
|
661
649
|
|
|
662
|
-
Planning visibility:
|
|
663
|
-
PRD: <done | pending | missing | deferred> <artifact path when present>
|
|
664
|
-
Roadmap: <done | pending | missing | deferred> <artifact path when present>
|
|
665
|
-
Current milestone: <roadmap milestone, tier, or next planning gate when known>
|
|
666
|
-
Completion basis: <state.json, PROGRESS.md, artifacts, or audit score source>
|
|
667
|
-
|
|
668
|
-
Deliverable progress:
|
|
669
|
-
Requirements: <done>/<total> done (<pct>%); <in-progress> in progress, <untouched> not started
|
|
670
|
-
Increments: <done> done, <building> building, <pending> pending
|
|
671
|
-
Ledger: .godpowers/REQUIREMENTS.md
|
|
672
|
-
|
|
673
650
|
What changed:
|
|
674
651
|
1. <highest-signal user-visible change>
|
|
675
652
|
2. <highest-signal user-visible change>
|
|
@@ -677,22 +654,6 @@ What changed:
|
|
|
677
654
|
Validation:
|
|
678
655
|
+ <command>: <result>
|
|
679
656
|
|
|
680
|
-
Proactive checks:
|
|
681
|
-
Checkpoint: <fresh | refreshed | stale>
|
|
682
|
-
Reviews: <none | N pending, suggest /god-review-changes>
|
|
683
|
-
Sync: <fresh | suggested | local helper ran>
|
|
684
|
-
Docs: <fresh | suggested | drift-check spawned>
|
|
685
|
-
Repo surface: <fresh | stale, suggest /god-doctor>
|
|
686
|
-
Host: <full | degraded | unknown>
|
|
687
|
-
Dogfood: <not-run | pass | fail | suggest /god-dogfood>
|
|
688
|
-
Runtime: <not-applicable | suggested | browser test spawned>
|
|
689
|
-
Security: <clear | suggested | harden spawned>
|
|
690
|
-
Dependencies: <clear | suggested | deps audit spawned>
|
|
691
|
-
Hygiene: <fresh | suggest /god-hygiene>
|
|
692
|
-
|
|
693
|
-
Open items:
|
|
694
|
-
1. <none, or deployed staging deferred, pending review, unstaged files, etc.>
|
|
695
|
-
|
|
696
657
|
Project is now in steady state. From here, ongoing work uses these workflows:
|
|
697
658
|
|
|
698
659
|
Adding features: /god-feature
|
|
@@ -709,21 +670,18 @@ Periodic hygiene:
|
|
|
709
670
|
Health check: /god-hygiene (combines audit + deps + docs)
|
|
710
671
|
Deliverable status: /god-progress (requirements + increments done/left)
|
|
711
672
|
|
|
712
|
-
Next:
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
1. Review status: /god-status (pipeline) or /god-progress (deliverables)
|
|
718
|
-
2. Continue work: /god-next or describe the next intent
|
|
719
|
-
3. Commit release-ready changes: stage only the intended files, then commit
|
|
720
|
-
4. Run deployed staging: provide STAGING_APP_URL=<deployed staging origin> when needed
|
|
673
|
+
Next commands:
|
|
674
|
+
- /god-status --full: Review the complete dashboard and proactive checks.
|
|
675
|
+
- /god-progress: Review deliverable progress.
|
|
676
|
+
- /god-next: Continue with the safest state-derived next step.
|
|
677
|
+
- provide STAGING_APP_URL=<deployed staging origin>: Run deployed staging when needed.
|
|
721
678
|
```
|
|
722
679
|
|
|
723
680
|
Generate the dashboard with `lib/dashboard.compute(projectRoot)` and
|
|
724
|
-
`lib/dashboard.render(result)` when the runtime bundle is
|
|
725
|
-
runtime module cannot be loaded,
|
|
726
|
-
`
|
|
681
|
+
`lib/dashboard.render(result, { brief: true })` when the runtime bundle is
|
|
682
|
+
available. If the runtime module cannot be loaded, use a manual disk scan
|
|
683
|
+
quietly and suggest `/god-doctor` only when the fallback changes the next
|
|
684
|
+
recommendation.
|
|
727
685
|
|
|
728
686
|
The dashboard `Progress` line is workflow progress only. Audit scores,
|
|
729
687
|
remediation scores, hygiene scores, and launch-readiness scores must be labeled
|
|
@@ -847,15 +805,14 @@ Show:
|
|
|
847
805
|
- concise phase status
|
|
848
806
|
- before each visible tier/sub-step, a short "what will happen" card
|
|
849
807
|
- after each visible tier/sub-step, a short "what happened" card
|
|
850
|
-
-
|
|
851
|
-
|
|
808
|
+
- concise notes for automatic work that changes artifacts, review items, or
|
|
809
|
+
recommendations, with details written to logs
|
|
852
810
|
- durable state detected from disk
|
|
853
811
|
- commands being run and whether they passed or failed
|
|
854
812
|
- scoped file changes
|
|
855
813
|
- final validation summary
|
|
856
|
-
- final
|
|
857
|
-
|
|
858
|
-
worktree/index state, and recommended next action
|
|
814
|
+
- final compact action brief from disk, with `/god-status --full` offered for
|
|
815
|
+
the complete dashboard
|
|
859
816
|
- plain-language workflow names. Say "project run" or "workflow" instead of
|
|
860
817
|
unexplained "arc" in visible output
|
|
861
818
|
- PRD and roadmap visibility when those artifacts exist or are expected
|
|
@@ -878,21 +835,17 @@ user-facing question. Do not expose the rule itself. Example: ask for
|
|
|
878
835
|
`STAGING_APP_URL=<deployed staging origin>` at final sign-off rather than
|
|
879
836
|
showing the Shipping Closure Protocol.
|
|
880
837
|
|
|
881
|
-
###
|
|
838
|
+
### Automatic Work Notes
|
|
882
839
|
|
|
883
840
|
Every automatic step that mutates state, writes artifacts, validates gates, or
|
|
884
|
-
spawns an agent must leave
|
|
841
|
+
spawns an agent must leave an accountable trace in logs. Show a concise note in
|
|
842
|
+
the transcript only when artifacts changed, review items were created, blockers
|
|
843
|
+
appeared, or the recommendation changed.
|
|
885
844
|
|
|
886
845
|
Use this shape:
|
|
887
846
|
|
|
888
847
|
```
|
|
889
|
-
|
|
890
|
-
Trigger: <event that caused the automatic step>
|
|
891
|
-
Agent: <agent name, or none, local runtime only>
|
|
892
|
-
Local syncs:
|
|
893
|
-
+ <helper>: <result>
|
|
894
|
-
Artifacts: <changed files, no-op, or deferred>
|
|
895
|
-
Log: <path, or none>
|
|
848
|
+
Synced project artifacts after the change. Details were written to .godpowers/SYNC-LOG.md.
|
|
896
849
|
```
|
|
897
850
|
|
|
898
851
|
Required auto-invoked cards:
|
|
@@ -1,16 +1,52 @@
|
|
|
1
1
|
# Godpowers Dashboard Contract
|
|
2
2
|
|
|
3
|
-
This reference owns the shared
|
|
3
|
+
This reference owns the shared closeout shape for `/god-status`, `/god-next`,
|
|
4
|
+
`/god-mode` closeouts, and completed command closeouts.
|
|
4
5
|
|
|
5
|
-
## Runtime
|
|
6
|
+
## Runtime Source
|
|
6
7
|
|
|
7
|
-
Prefer `lib/dashboard.js` for
|
|
8
|
+
Prefer `lib/dashboard.js` for status computation. Call
|
|
9
|
+
`dashboard.compute(projectRoot)`, then render a compact action brief unless the
|
|
10
|
+
user asks for `/god-status --full` or passes a verbose flag.
|
|
8
11
|
|
|
9
|
-
If the runtime module is unavailable, use a manual disk scan
|
|
12
|
+
If the runtime module is unavailable, use a manual disk scan quietly. Mention
|
|
13
|
+
the fallback only when it changes the recommendation, then suggest
|
|
14
|
+
`/god-doctor`.
|
|
10
15
|
|
|
11
|
-
Never mix workflow progress with audit, hygiene, remediation, or
|
|
16
|
+
Never mix workflow progress with audit, hygiene, remediation, or
|
|
17
|
+
launch-readiness scores. Label those scores separately when they appear.
|
|
12
18
|
|
|
13
|
-
##
|
|
19
|
+
## Default Closeout
|
|
20
|
+
|
|
21
|
+
Completed work, proposals, diagnostics, lifecycle views, and status summaries
|
|
22
|
+
use this shape by default:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
<one sentence describing the result or current position>
|
|
26
|
+
|
|
27
|
+
Changed:
|
|
28
|
+
- <highest-signal user-visible change>
|
|
29
|
+
- <highest-signal user-visible change>
|
|
30
|
+
|
|
31
|
+
Validation:
|
|
32
|
+
- <command>: <result>
|
|
33
|
+
|
|
34
|
+
Attention:
|
|
35
|
+
- <only blockers or signals that change the recommendation>
|
|
36
|
+
|
|
37
|
+
Next commands:
|
|
38
|
+
- <recommended command>: <one sentence reason>
|
|
39
|
+
- /god-status --full: See the complete dashboard and proactive checks.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Omit empty sections. Do not render rows that only say `fresh`, `clear`,
|
|
43
|
+
`none`, or `not-applicable`.
|
|
44
|
+
|
|
45
|
+
## Full Dashboard
|
|
46
|
+
|
|
47
|
+
The full dashboard is available on request through `/god-status --full` and in
|
|
48
|
+
release-gate evidence. It may also appear when a user explicitly asks for all
|
|
49
|
+
status details.
|
|
14
50
|
|
|
15
51
|
```text
|
|
16
52
|
Godpowers Dashboard
|
|
@@ -43,13 +79,6 @@ Deliverable progress:
|
|
|
43
79
|
Increments: <done> done, <building> building, <pending> pending
|
|
44
80
|
Ledger: .godpowers/REQUIREMENTS.md
|
|
45
81
|
|
|
46
|
-
What changed:
|
|
47
|
-
1. <highest-signal user-visible change>
|
|
48
|
-
2. <highest-signal user-visible change>
|
|
49
|
-
|
|
50
|
-
Validation:
|
|
51
|
-
+ <command>: <result>
|
|
52
|
-
|
|
53
82
|
Proactive checks:
|
|
54
83
|
Checkpoint: <fresh | refreshed | missing | stale | conflicts with state.json>
|
|
55
84
|
Reviews: <none | N pending, suggest /god-review-changes>
|
|
@@ -57,7 +86,7 @@ Proactive checks:
|
|
|
57
86
|
Docs: <fresh | N stale, suggest /god-docs | repo-doc-sync ran>
|
|
58
87
|
Repo surface: <fresh | N stale, suggest /god-doctor | repo-surface-sync ran>
|
|
59
88
|
Host: <full | degraded | unknown with host and first gap>
|
|
60
|
-
Runtime: <not-applicable | known URL, suggest /god-test-runtime | no known URL
|
|
89
|
+
Runtime: <not-applicable | known URL, suggest /god-test-runtime | no known URL>
|
|
61
90
|
Automation: <not configured | N active | available via provider, suggest /god-automation-setup>
|
|
62
91
|
Security: <clear | sensitive files changed, suggest /god-harden>
|
|
63
92
|
Dependencies: <clear | dependency files changed, suggest /god-update-deps>
|
|
@@ -66,28 +95,36 @@ Proactive checks:
|
|
|
66
95
|
Open items:
|
|
67
96
|
1. <deferred staging, unstaged files, pending review, blocker, or none>
|
|
68
97
|
|
|
69
|
-
Next:
|
|
70
|
-
|
|
71
|
-
|
|
98
|
+
Next commands:
|
|
99
|
+
- <recommended command>: <one sentence reason>
|
|
100
|
+
- /god-next: Recompute the state-derived next step.
|
|
72
101
|
```
|
|
73
102
|
|
|
74
|
-
##
|
|
103
|
+
## Next Commands
|
|
75
104
|
|
|
76
|
-
When a command only recommends work, end with this
|
|
105
|
+
When a command only recommends work, end with this block unless it already
|
|
106
|
+
launched the selected command.
|
|
77
107
|
|
|
78
108
|
```text
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
4. Inspect status: /god-status, /god-locate, or /god-next
|
|
84
|
-
Recommended: <one option and why>
|
|
109
|
+
Next commands:
|
|
110
|
+
- <best runnable command>: <plain sentence reason>
|
|
111
|
+
- <second runnable command>: <plain sentence reason>
|
|
112
|
+
- <third runnable command>: <plain sentence reason>
|
|
85
113
|
```
|
|
86
114
|
|
|
87
|
-
|
|
115
|
+
Use 1 to 4 commands. Put the recommendation first. Do not show abstract
|
|
116
|
+
implementation choices when a slash command can name the next move.
|
|
117
|
+
|
|
118
|
+
## Proactive Rules
|
|
88
119
|
|
|
89
|
-
`/god-status` is read-only by default, so Level 3 agent work becomes a
|
|
120
|
+
`/god-status` is read-only by default, so Level 3 agent work becomes a
|
|
121
|
+
suggestion unless the user asked it to continue work.
|
|
90
122
|
|
|
91
|
-
`/god-next` may run Level
|
|
123
|
+
`/god-next` may run Level 1 read-only checks by default. It may run Level 2
|
|
124
|
+
local helpers only when there is a direct trigger and no destructive effect.
|
|
125
|
+
Standalone `/god-next` turns Level 3 work into the recommended command.
|
|
92
126
|
|
|
93
|
-
Report checkpoint, review, sync, docs, repo surface, host, runtime, automation,
|
|
127
|
+
Report checkpoint, review, sync, docs, repo surface, host, runtime, automation,
|
|
128
|
+
security, dependency, and hygiene signals using the labels in the full
|
|
129
|
+
dashboard only when they affect the recommendation or the user asks for full
|
|
130
|
+
status.
|
|
@@ -8,7 +8,7 @@ Cross-tier reference content used by multiple agents.
|
|
|
8
8
|
- [ORCHESTRATORS.md](ORCHESTRATORS.md): composition patterns with other AI
|
|
9
9
|
coding workflow systems, including migration and managed sync-back.
|
|
10
10
|
- [GLOSSARY.md](GLOSSARY.md): standardized vocabulary across tiers.
|
|
11
|
-
- [DASHBOARD-CONTRACT.md](DASHBOARD-CONTRACT.md): shared dashboard and
|
|
11
|
+
- [DASHBOARD-CONTRACT.md](DASHBOARD-CONTRACT.md): shared dashboard and `Next commands:` output contract.
|
|
12
12
|
- [LOCKING.md](LOCKING.md): shared state-lock contract for mutating commands.
|
|
13
13
|
|
|
14
14
|
## Planned content
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
apiVersion: godpowers/v1
|
|
2
|
+
kind: CommandRouting
|
|
3
|
+
metadata:
|
|
4
|
+
command: /god-demo
|
|
5
|
+
description: Safe sandbox proof
|
|
6
|
+
tier: 0
|
|
7
|
+
family: start
|
|
8
|
+
|
|
9
|
+
prerequisites:
|
|
10
|
+
required:
|
|
11
|
+
[]
|
|
12
|
+
|
|
13
|
+
execution:
|
|
14
|
+
spawns: [built-in]
|
|
15
|
+
context: fresh
|
|
16
|
+
reads:
|
|
17
|
+
- fixtures/quick-proof/project/.godpowers/state.json
|
|
18
|
+
- fixtures/quick-proof/manifest.json
|
|
19
|
+
writes:
|
|
20
|
+
[]
|
|
21
|
+
|
|
22
|
+
success-path:
|
|
23
|
+
next-recommended: /god-first-run
|
|
24
|
+
outcome:
|
|
25
|
+
type: deterministic
|
|
26
|
+
label: Sandbox proof rendered
|
|
27
|
+
reason: The shipped quick-proof fixture can be inspected without modifying the project.
|
|
28
|
+
allowed-next: [/god-first-run, /god-init, /god-status]
|
|
29
|
+
|
|
30
|
+
failure-path:
|
|
31
|
+
on-error: /god-doctor
|
|
32
|
+
|
|
33
|
+
endoff:
|
|
34
|
+
state-update: tier-0 updated for /god-demo
|
|
35
|
+
events: [agent.start, agent.end]
|