godpowers 1.6.12 → 1.6.13
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 +30 -0
- package/README.md +21 -3
- package/RELEASE.md +27 -23
- package/SKILL.md +8 -0
- package/agents/god-orchestrator.md +4 -1
- package/bin/install.js +27 -2
- package/lib/automation-providers.js +411 -0
- package/lib/dashboard.js +15 -0
- package/package.json +3 -3
- package/routing/god-automation-setup.yaml +25 -0
- package/routing/god-automation-status.yaml +24 -0
- package/skills/god-automation-setup.md +105 -0
- package/skills/god-automation-status.md +76 -0
- package/skills/god-doctor.md +1 -1
- package/skills/god-status.md +3 -0
- package/skills/god-version.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,36 @@ All notable changes to Godpowers will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.6.13] - 2026-05-16
|
|
9
|
+
|
|
10
|
+
Host automation provider discovery and opt-in setup planning.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Added `lib/automation-providers.js`, a shared provider detector for
|
|
14
|
+
host-native automation support.
|
|
15
|
+
- Added `godpowers automation-status --project .` and
|
|
16
|
+
`godpowers automation-setup --project .` for opt-in automation support.
|
|
17
|
+
- Added `/god-automation-status` and `/god-automation-setup` slash commands.
|
|
18
|
+
- Added `docs/automation-providers.md` with provider classes, safe templates,
|
|
19
|
+
and approval rules.
|
|
20
|
+
- Added automation provider tests covering provider classification, active
|
|
21
|
+
automation config, setup-plan rendering, and CLI JSON output.
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- The dashboard engine now reports automation support when host-native
|
|
25
|
+
automation providers are available.
|
|
26
|
+
- The installer help now documents automation-status and automation-setup as
|
|
27
|
+
first-class read-only helper commands.
|
|
28
|
+
- Godpowers command guidance now recommends automation setup when provider
|
|
29
|
+
support exists and no approved automation template is active.
|
|
30
|
+
|
|
31
|
+
### Guardrails
|
|
32
|
+
- Automation setup is opt-in only. Godpowers must not create schedules,
|
|
33
|
+
routines, background agents, API triggers, or CI workflows during install.
|
|
34
|
+
- Default automation templates are read-only and must not commit, push,
|
|
35
|
+
publish, deploy, clear reviews, accept Critical security findings, or access
|
|
36
|
+
provider dashboards without explicit user approval.
|
|
37
|
+
|
|
8
38
|
## [1.6.12] - 2026-05-16
|
|
9
39
|
|
|
10
40
|
Executable dashboard CLI and shared runtime status engine.
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/aihxp/godpowers/actions/workflows/ci.yml)
|
|
4
4
|
[](LICENSE)
|
|
5
|
-
[](CHANGELOG.md)
|
|
6
6
|
[](https://www.npmjs.com/package/godpowers)
|
|
7
7
|
|
|
8
8
|
**Ship fast. Ship right. Ship everything. Ship accountably.**
|
|
@@ -12,10 +12,14 @@ idea to hardened production. It runs as **slash commands inside your AI coding
|
|
|
12
12
|
tool** (Claude Code, Codex, Cursor, etc.) that orchestrate **specialist agents**
|
|
13
13
|
in fresh contexts to do the work.
|
|
14
14
|
|
|
15
|
-
Version 1.6.
|
|
15
|
+
Version 1.6.13 builds on the executable dashboard engine and CLI status surface:
|
|
16
16
|
`godpowers status --project .` and `godpowers next --project .` now compute the
|
|
17
17
|
same disk-derived progress, planning visibility, proactive checks, and next
|
|
18
18
|
action used by `/god-status`, `/god-next`, and God Mode closeouts.
|
|
19
|
+
It adds an opt-in automation-provider layer so Godpowers can detect host
|
|
20
|
+
automation surfaces such as Codex App automations, Claude Routines, Cline
|
|
21
|
+
schedules, Qwen loops, Cursor Background Agents, Copilot cloud agent, and
|
|
22
|
+
scriptable CLI providers without silently creating background work.
|
|
19
23
|
|
|
20
24
|
It fuses four disciplines into one unified workflow:
|
|
21
25
|
|
|
@@ -139,6 +143,8 @@ npx godpowers status --project=. --json
|
|
|
139
143
|
| `/god-launch` | Launch (gated on harden) | god-launch-strategist |
|
|
140
144
|
| `/god-harden` | Adversarial security review | god-harden-auditor |
|
|
141
145
|
| `/god-status` | Re-derive state from disk | (built-in) |
|
|
146
|
+
| `/god-automation-status` | Show host automation provider support | (built-in) |
|
|
147
|
+
| `/god-automation-setup` | Prepare opt-in automation setup | (built-in) |
|
|
142
148
|
| `/god-preflight` | Read-only intake audit before project-run readiness and pillars | god-auditor |
|
|
143
149
|
| `/god-audit` | Score artifacts against have-nots | god-auditor |
|
|
144
150
|
| `/god-debug` | 4-phase systematic debug | god-debugger |
|
|
@@ -197,6 +203,18 @@ ends in a vague "done" state. The dashboard is backed by
|
|
|
197
203
|
`lib/dashboard.js`, so status and next-step commands share one executable
|
|
198
204
|
source of disk truth instead of parallel Markdown-only contracts.
|
|
199
205
|
|
|
206
|
+
Godpowers can also inspect automation support:
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
npx godpowers automation-status --project=.
|
|
210
|
+
npx godpowers automation-setup --project=.
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Automation setup is opt-in. The installer does not create schedules, routines,
|
|
214
|
+
background agents, API triggers, or CI workflows. Safe starting templates are
|
|
215
|
+
read-only status, checkpoint, review queue, hygiene, and release readiness
|
|
216
|
+
reports.
|
|
217
|
+
|
|
200
218
|
For existing codebases and org-constrained new projects, God Mode now runs a
|
|
201
219
|
greenfield simulation audit and then actions it through a greenfieldification
|
|
202
220
|
plan. It pauses before risky artifact rewrites because that process can change
|
|
@@ -319,7 +337,7 @@ Pi. T3 Code inherits from the underlying agent (Codex / Claude / OpenCode).
|
|
|
319
337
|
|
|
320
338
|
- [Getting Started](docs/getting-started.md)
|
|
321
339
|
- [Concepts](docs/concepts.md)
|
|
322
|
-
- [Command reference (all
|
|
340
|
+
- [Command reference (all 108 skills + 39 agents)](docs/reference.md)
|
|
323
341
|
- [Roadmap](docs/ROADMAP.md)
|
|
324
342
|
- [1.5 Release Notes](RELEASE.md)
|
|
325
343
|
- [Changelog](CHANGELOG.md)
|
package/RELEASE.md
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
# Godpowers 1.6.
|
|
1
|
+
# Godpowers 1.6.13 Release
|
|
2
2
|
|
|
3
3
|
Date: 2026-05-16
|
|
4
4
|
|
|
5
|
-
Godpowers 1.6.
|
|
6
|
-
The same
|
|
7
|
-
|
|
5
|
+
Godpowers 1.6.13 adds host automation provider discovery and opt-in setup
|
|
6
|
+
planning. The same local runtime surface can now report Codex App automations,
|
|
7
|
+
Claude Routines, Cline schedules, Qwen loops, Cursor Background Agents,
|
|
8
|
+
Copilot cloud agent support, and scriptable CLI options without silently
|
|
9
|
+
creating background work.
|
|
8
10
|
|
|
9
11
|
## What is stable
|
|
10
12
|
|
|
11
|
-
-
|
|
13
|
+
- 108 slash commands
|
|
12
14
|
- 39 specialist agents
|
|
13
15
|
- 13 executable workflows
|
|
14
16
|
- 36 intent recipes
|
|
15
17
|
- 15-runtime installer
|
|
16
|
-
-
|
|
18
|
+
- 458 package files in the npm tarball
|
|
17
19
|
- Codex installs with generated `god-*.toml` agent metadata files
|
|
18
20
|
- Markdown specialist agent contracts at `<runtime>/agents/god-*.md`
|
|
19
21
|
- Shared runtime bundle at `<runtime>/godpowers-runtime`
|
|
@@ -27,16 +29,15 @@ checks, JSON status output, and next-action recommendations from disk state.
|
|
|
27
29
|
|
|
28
30
|
## What is new
|
|
29
31
|
|
|
30
|
-
- Added `lib/
|
|
31
|
-
- Added `godpowers status --project .`.
|
|
32
|
-
- Added `godpowers
|
|
33
|
-
- Added
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
detection, and git porcelain parsing.
|
|
32
|
+
- Added `lib/automation-providers.js`, a shared automation provider detector.
|
|
33
|
+
- Added `godpowers automation-status --project .`.
|
|
34
|
+
- Added `godpowers automation-setup --project .`.
|
|
35
|
+
- Added `/god-automation-status` and `/god-automation-setup`.
|
|
36
|
+
- Added `docs/automation-providers.md`.
|
|
37
|
+
- Dashboard output now reports automation support when a host-native provider
|
|
38
|
+
is available.
|
|
39
|
+
- Tests now cover provider classification, active automation config,
|
|
40
|
+
setup-plan rendering, and CLI JSON output.
|
|
40
41
|
|
|
41
42
|
## Platform behavior
|
|
42
43
|
|
|
@@ -45,11 +46,12 @@ Trae, Cline, Kilo, Antigravity, Qwen, CodeBuddy, and Pi all receive the same
|
|
|
45
46
|
portable Markdown agent contracts. Codex also receives `god-*.toml` files as
|
|
46
47
|
its registry adapter.
|
|
47
48
|
|
|
48
|
-
The dashboard
|
|
49
|
-
use
|
|
50
|
-
contracts. If a host platform cannot provide a true
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
The dashboard and automation provider engines ship in the installed runtime
|
|
50
|
+
bundle so host tools can use shared implementation code instead of parallel
|
|
51
|
+
command-specific Markdown contracts. If a host platform cannot provide a true
|
|
52
|
+
fresh-context agent spawn or durable scheduler, Godpowers must say so visibly
|
|
53
|
+
and report the work as local runtime only, manual workflow only, or simulated
|
|
54
|
+
in current context.
|
|
53
55
|
|
|
54
56
|
## Safety policy
|
|
55
57
|
|
|
@@ -62,6 +64,7 @@ Godpowers still must not auto-run these without explicit user intent:
|
|
|
62
64
|
- deployed staging verification against a guessed URL
|
|
63
65
|
- production launch
|
|
64
66
|
- provider dashboard, admin console, DNS, credential, or secret checks
|
|
67
|
+
- schedule, routine, background agent, API trigger, or CI workflow creation
|
|
65
68
|
- broad dependency upgrades
|
|
66
69
|
- destructive repair, rollback, reset, delete, or cleanup
|
|
67
70
|
- clearing `.godpowers/REVIEW-REQUIRED.md`
|
|
@@ -73,10 +76,11 @@ Godpowers still must not auto-run these without explicit user intent:
|
|
|
73
76
|
Release validation includes:
|
|
74
77
|
|
|
75
78
|
- `node scripts/test-dashboard.js`
|
|
79
|
+
- `node scripts/test-automation-providers.js`
|
|
76
80
|
- `npm test`
|
|
77
81
|
- `npm run test:audit`
|
|
78
82
|
- `node scripts/check-package-contents.js`
|
|
79
83
|
- `git diff --check`
|
|
80
84
|
|
|
81
|
-
The `v1.6.
|
|
82
|
-
`godpowers@1.6.
|
|
85
|
+
The `v1.6.13` git tag points to the release commit that matches the npm
|
|
86
|
+
`godpowers@1.6.13` package.
|
package/SKILL.md
CHANGED
|
@@ -156,6 +156,7 @@ Proactive checks:
|
|
|
156
156
|
Sync: <fresh | missing | stale | local helper ran | suggest /god-sync>
|
|
157
157
|
Docs: <fresh | possible drift, suggest /god-docs>
|
|
158
158
|
Runtime: <not-applicable | known URL, suggest /god-test-runtime | no known URL, defer deployed verification>
|
|
159
|
+
Automation: <not configured | N active | available via provider, suggest /god-automation-setup>
|
|
159
160
|
Security: <clear | sensitive files changed, suggest /god-harden>
|
|
160
161
|
Dependencies: <clear | dependency files changed, suggest /god-update-deps>
|
|
161
162
|
Hygiene: <fresh | stale, suggest /god-hygiene>
|
|
@@ -235,6 +236,8 @@ Automatic steps that especially need visible reporting:
|
|
|
235
236
|
- DESIGN/PRODUCT change detection that spawns `god-design-reviewer`
|
|
236
237
|
- `/god-scan` when it runs reverse-sync directly without an agent
|
|
237
238
|
- checkpoint refresh after state mutations
|
|
239
|
+
- automation provider detection in `/god-status`, `/god-next`,
|
|
240
|
+
`/god-automation-status`, and `/god-automation-setup`
|
|
238
241
|
|
|
239
242
|
### 13. Proactive Auto-Invoke Policy
|
|
240
243
|
Godpowers should be proactive from disk evidence, not from guesswork. Before
|
|
@@ -252,6 +255,9 @@ Run or apply these by default in every relevant closeout:
|
|
|
252
255
|
status shows stale docs, deps, or review queues.
|
|
253
256
|
- Suggest `/god-locate` when `.godpowers/CHECKPOINT.md` is missing, stale, or
|
|
254
257
|
conflicts with `state.json`.
|
|
258
|
+
- Suggest `/god-automation-status` or `/god-automation-setup` when host-native
|
|
259
|
+
automation support is available and `.godpowers/automations.json` has no
|
|
260
|
+
active read-only templates.
|
|
255
261
|
|
|
256
262
|
#### Level 2: Auto-run local helpers, visible and logged
|
|
257
263
|
Run these local runtime helpers automatically when their trigger is present:
|
|
@@ -291,6 +297,8 @@ Never auto-run these from inference alone:
|
|
|
291
297
|
- clearing `.godpowers/REVIEW-REQUIRED.md`
|
|
292
298
|
- accepting Critical security findings
|
|
293
299
|
- git stage, commit, push, package, release, or publish
|
|
300
|
+
- schedule, routine, background agent, API trigger, or CI workflow creation
|
|
301
|
+
without explicit user approval
|
|
294
302
|
|
|
295
303
|
Every auto-invoke decision must be explainable from one of these inputs:
|
|
296
304
|
changed files, Godpowers artifacts, `state.json`, `PROGRESS.md`,
|
|
@@ -310,12 +310,15 @@ Use this trigger map:
|
|
|
310
310
|
| frontend-visible files changed and no known URL exists | suggest `/god-test-runtime` with local URL setup, defer deployed URL | proposition |
|
|
311
311
|
| security-sensitive files changed | auto-spawn only inside harden, hotfix, launch, or project run; otherwise suggest `/god-harden` | proposition |
|
|
312
312
|
| dependency files changed | auto-spawn only inside update-deps, hygiene, or approved project run; otherwise suggest `/god-update-deps` | proposition |
|
|
313
|
+
| host automation support detected and no active templates are recorded | suggest `/god-automation-status` or `/god-automation-setup` | proposition |
|
|
313
314
|
| full project run complete or hygiene stale | suggest `/god-hygiene` | proposition |
|
|
314
315
|
|
|
315
316
|
Never use this matrix to auto-run Level 4 actions: deployed staging against a
|
|
316
317
|
guessed URL, production launch, provider dashboard access, broad dependency
|
|
317
318
|
upgrades, destructive repair, review clearing, Critical security acceptance, or
|
|
318
|
-
git stage, commit, push, package, release,
|
|
319
|
+
git stage, commit, push, package, release, publish, schedule creation, routine
|
|
320
|
+
creation, background agent creation, API trigger creation, or CI workflow
|
|
321
|
+
creation.
|
|
319
322
|
|
|
320
323
|
Every auto action must emit either `Auto-invoked:`, `Sync status:`, or a
|
|
321
324
|
proposition explaining why it did not run.
|
package/bin/install.js
CHANGED
|
@@ -316,6 +316,8 @@ function parseArgs(argv) {
|
|
|
316
316
|
switch (arg) {
|
|
317
317
|
case 'status':
|
|
318
318
|
case 'next':
|
|
319
|
+
case 'automation-status':
|
|
320
|
+
case 'automation-setup':
|
|
319
321
|
opts.command = arg;
|
|
320
322
|
break;
|
|
321
323
|
case '--json':
|
|
@@ -571,10 +573,12 @@ function showHelp() {
|
|
|
571
573
|
log('Commands:');
|
|
572
574
|
log(' status Show the Godpowers Dashboard for a project');
|
|
573
575
|
log(' next Show the dashboard and recommended next command');
|
|
576
|
+
log(' automation-status Show host automation provider support');
|
|
577
|
+
log(' automation-setup Show an opt-in automation setup plan');
|
|
574
578
|
log('');
|
|
575
579
|
log('Options:');
|
|
576
|
-
log(' --project=<path> Project root for status or
|
|
577
|
-
log(' --json Emit JSON for status or
|
|
580
|
+
log(' --project=<path> Project root for status, next, or automation commands');
|
|
581
|
+
log(' --json Emit JSON for status, next, or automation commands');
|
|
578
582
|
log(' -g, --global Install globally (to config directory)');
|
|
579
583
|
log(' -l, --local Install locally (to current directory)');
|
|
580
584
|
log(' --claude Install for Claude Code');
|
|
@@ -599,11 +603,27 @@ function showHelp() {
|
|
|
599
603
|
log('Examples:');
|
|
600
604
|
log(' npx godpowers status --project=.');
|
|
601
605
|
log(' npx godpowers next --project=.');
|
|
606
|
+
log(' npx godpowers automation-status --project=.');
|
|
607
|
+
log(' npx godpowers automation-setup --project=.');
|
|
602
608
|
log(' npx godpowers --claude --global');
|
|
603
609
|
log(' npx godpowers --all');
|
|
604
610
|
log(' npx godpowers --codex --cursor');
|
|
605
611
|
}
|
|
606
612
|
|
|
613
|
+
function runAutomationCommand(opts) {
|
|
614
|
+
const automation = require('../lib/automation-providers');
|
|
615
|
+
const result = opts.command === 'automation-setup'
|
|
616
|
+
? automation.setupPlan(opts.project)
|
|
617
|
+
: automation.detect(opts.project);
|
|
618
|
+
if (opts.json) {
|
|
619
|
+
console.log(JSON.stringify(result, null, 2));
|
|
620
|
+
} else if (opts.command === 'automation-setup') {
|
|
621
|
+
console.log(automation.renderSetupPlan(result));
|
|
622
|
+
} else {
|
|
623
|
+
console.log(automation.render(result));
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
607
627
|
function runDashboardCommand(opts) {
|
|
608
628
|
const dashboard = require('../lib/dashboard');
|
|
609
629
|
const result = dashboard.compute(opts.project);
|
|
@@ -636,6 +656,11 @@ function main() {
|
|
|
636
656
|
return;
|
|
637
657
|
}
|
|
638
658
|
|
|
659
|
+
if (opts.command === 'automation-status' || opts.command === 'automation-setup') {
|
|
660
|
+
runAutomationCommand(opts);
|
|
661
|
+
return;
|
|
662
|
+
}
|
|
663
|
+
|
|
639
664
|
console.log(BANNER);
|
|
640
665
|
|
|
641
666
|
const srcDir = path.resolve(__dirname, '..');
|
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Godpowers Automation Providers
|
|
3
|
+
*
|
|
4
|
+
* Detects host-native automation surfaces and renders opt-in setup guidance.
|
|
5
|
+
* This module never creates schedules, routines, background agents, commits,
|
|
6
|
+
* pushes, packages, publishes, deploys, or clears reviews by itself.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const fs = require('fs');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
const cp = require('child_process');
|
|
12
|
+
const os = require('os');
|
|
13
|
+
|
|
14
|
+
const CONFIG_PATH = '.godpowers/automations.json';
|
|
15
|
+
|
|
16
|
+
const SAFE_TEMPLATES = [
|
|
17
|
+
{
|
|
18
|
+
id: 'daily-status',
|
|
19
|
+
title: 'Daily Godpowers status',
|
|
20
|
+
cadence: 'Daily at 9am local time',
|
|
21
|
+
risk: 'read-only',
|
|
22
|
+
prompt: 'Run godpowers status --project . and summarize current phase, progress, open items, and recommended next action.'
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: 'stale-checkpoint',
|
|
26
|
+
title: 'Stale checkpoint watcher',
|
|
27
|
+
cadence: 'Weekdays at 9am local time',
|
|
28
|
+
risk: 'read-only',
|
|
29
|
+
prompt: 'Check .godpowers/CHECKPOINT.md freshness. If stale, report that /god-sync or /god-resume-work should run.'
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'review-queue',
|
|
33
|
+
title: 'Review queue watcher',
|
|
34
|
+
cadence: 'Daily at 10am local time',
|
|
35
|
+
risk: 'read-only',
|
|
36
|
+
prompt: 'Inspect .godpowers/REVIEW-REQUIRED.md and report unresolved review items without clearing them.'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: 'weekly-hygiene',
|
|
40
|
+
title: 'Weekly hygiene report',
|
|
41
|
+
cadence: 'Monday at 9am local time',
|
|
42
|
+
risk: 'read-only',
|
|
43
|
+
prompt: 'Run a read-only hygiene summary for docs drift, dependency signals, checkpoint age, and pending reviews.'
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'release-readiness',
|
|
47
|
+
title: 'Release readiness report',
|
|
48
|
+
cadence: 'Manual or before release',
|
|
49
|
+
risk: 'read-only',
|
|
50
|
+
prompt: 'Report release readiness from tests, package metadata, changelog, release notes, and unstaged work. Do not publish.'
|
|
51
|
+
}
|
|
52
|
+
];
|
|
53
|
+
|
|
54
|
+
const PROVIDERS = [
|
|
55
|
+
{
|
|
56
|
+
id: 'codex-app',
|
|
57
|
+
label: 'Codex App automations',
|
|
58
|
+
runtime: 'codex',
|
|
59
|
+
class: 'native-scheduler',
|
|
60
|
+
detect: (ctx) => hasRuntime(ctx, 'codex') || hasEnv(ctx, 'CODEX_HOME'),
|
|
61
|
+
setup: [
|
|
62
|
+
'Use /god-automation-setup inside Codex App so the host can create reviewed automations.',
|
|
63
|
+
'Prefer thread heartbeat for short follow-ups and worktree cron for durable project checks.'
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: 'claude-routines',
|
|
68
|
+
label: 'Claude Code routines',
|
|
69
|
+
runtime: 'claude',
|
|
70
|
+
class: 'native-scheduler',
|
|
71
|
+
detect: (ctx) => hasCommand(ctx, 'claude') || hasRuntime(ctx, 'claude'),
|
|
72
|
+
setup: [
|
|
73
|
+
'Run /schedule in Claude Code for scheduled routines.',
|
|
74
|
+
'Use claude.ai/code/routines for API or GitHub triggers.'
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
id: 'cline-schedule',
|
|
79
|
+
label: 'Cline scheduled agents',
|
|
80
|
+
runtime: 'cline',
|
|
81
|
+
class: 'native-scheduler',
|
|
82
|
+
detect: (ctx) => hasCommand(ctx, 'cline') || hasRuntime(ctx, 'cline'),
|
|
83
|
+
setup: [
|
|
84
|
+
'Run cline schedule to create, list, trigger, pause, resume, or delete schedules.',
|
|
85
|
+
'Use read-only prompts unless the user explicitly approves branch or PR automation.'
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: 'kilo-scheduled-triggers',
|
|
90
|
+
label: 'Kilo scheduled triggers',
|
|
91
|
+
runtime: 'kilo',
|
|
92
|
+
class: 'native-scheduler',
|
|
93
|
+
detect: (ctx) => hasRuntime(ctx, 'kilo'),
|
|
94
|
+
setup: [
|
|
95
|
+
'Use KiloClaw Scheduled Triggers from Kilo settings.',
|
|
96
|
+
'Limit each trigger to read-only Godpowers reports unless the user approves write scope.'
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: 'qwen-loop',
|
|
101
|
+
label: 'Qwen Code /loop',
|
|
102
|
+
runtime: 'qwen',
|
|
103
|
+
class: 'session-scheduler',
|
|
104
|
+
detect: (ctx) => hasCommand(ctx, 'qwen') || hasRuntime(ctx, 'qwen'),
|
|
105
|
+
setup: [
|
|
106
|
+
'Enable Qwen experimental cron support, then use /loop for session-scoped recurring prompts.',
|
|
107
|
+
'Do not treat Qwen loops as durable because they do not persist across restarts.'
|
|
108
|
+
]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: 'cursor-background-agent',
|
|
112
|
+
label: 'Cursor Background Agents',
|
|
113
|
+
runtime: 'cursor',
|
|
114
|
+
class: 'background-agent',
|
|
115
|
+
detect: (ctx) => hasCommand(ctx, 'cursor') || hasRuntime(ctx, 'cursor'),
|
|
116
|
+
setup: [
|
|
117
|
+
'Use Cursor Background Agent mode or Background Agent API for asynchronous branch work.',
|
|
118
|
+
'Prefer issue or branch scoped tasks and require human review before merge.'
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
id: 'github-copilot-cloud-agent',
|
|
123
|
+
label: 'GitHub Copilot cloud agent',
|
|
124
|
+
runtime: 'copilot',
|
|
125
|
+
class: 'background-agent',
|
|
126
|
+
detect: (ctx) => hasGitRemote(ctx) || hasRuntime(ctx, 'copilot'),
|
|
127
|
+
setup: [
|
|
128
|
+
'Use GitHub issues, pull requests, or Copilot chat to delegate work to Copilot cloud agent.',
|
|
129
|
+
'Keep Godpowers automations branch or PR scoped and require human merge authority.'
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: 'windsurf-workflows',
|
|
134
|
+
label: 'Windsurf workflows',
|
|
135
|
+
runtime: 'windsurf',
|
|
136
|
+
class: 'manual-workflow',
|
|
137
|
+
detect: (ctx) => hasRuntime(ctx, 'windsurf'),
|
|
138
|
+
setup: [
|
|
139
|
+
'Install reusable workflows under .windsurf/workflows/ or the global Windsurf workflow folder.',
|
|
140
|
+
'Windsurf workflows are manual-only; use Skills when Cascade should discover a procedure.'
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: 'gemini-headless',
|
|
145
|
+
label: 'Gemini CLI headless mode',
|
|
146
|
+
runtime: 'gemini',
|
|
147
|
+
class: 'scriptable-headless',
|
|
148
|
+
detect: (ctx) => hasCommand(ctx, 'gemini') || hasRuntime(ctx, 'gemini'),
|
|
149
|
+
setup: [
|
|
150
|
+
'Use gemini -p for non-interactive scripting.',
|
|
151
|
+
'Use an external scheduler only when the user explicitly asks for OS or CI scheduling.'
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
id: 'opencode-run',
|
|
156
|
+
label: 'OpenCode run and serve',
|
|
157
|
+
runtime: 'opencode',
|
|
158
|
+
class: 'scriptable-headless',
|
|
159
|
+
detect: (ctx) => hasCommand(ctx, 'opencode') || hasRuntime(ctx, 'opencode'),
|
|
160
|
+
setup: [
|
|
161
|
+
'Use opencode run for non-interactive prompts or opencode serve for an attachable server.',
|
|
162
|
+
'Use opencode github install when repo-native GitHub automation is preferred.'
|
|
163
|
+
]
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: 'augment-subagents',
|
|
167
|
+
label: 'Augment Agent and subagents',
|
|
168
|
+
runtime: 'augment',
|
|
169
|
+
class: 'manual-workflow',
|
|
170
|
+
detect: (ctx) => hasRuntime(ctx, 'augment'),
|
|
171
|
+
setup: [
|
|
172
|
+
'Use Augment Agent or Agent Auto for supervised tasks.',
|
|
173
|
+
'Use Augment subagents for specialized review, test, or docs work.'
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
id: 'codebuddy-sdk',
|
|
178
|
+
label: 'CodeBuddy Agent SDK',
|
|
179
|
+
runtime: 'codebuddy',
|
|
180
|
+
class: 'scriptable-headless',
|
|
181
|
+
detect: (ctx) => hasCommand(ctx, 'codebuddy') || hasRuntime(ctx, 'codebuddy'),
|
|
182
|
+
setup: [
|
|
183
|
+
'Use the CodeBuddy Agent SDK for programmatic automation.',
|
|
184
|
+
'Keep filesystem config loading explicit so automation stays predictable.'
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: 'pi-sdk',
|
|
189
|
+
label: 'Pi CLI and SDK',
|
|
190
|
+
runtime: 'pi',
|
|
191
|
+
class: 'scriptable-headless',
|
|
192
|
+
detect: (ctx) => hasCommand(ctx, 'pi') || hasRuntime(ctx, 'pi'),
|
|
193
|
+
setup: [
|
|
194
|
+
'Use Pi CLI or SDK for scriptable coding-agent sessions.',
|
|
195
|
+
'Use host or CI scheduling only after explicit user approval.'
|
|
196
|
+
]
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
id: 'trae',
|
|
200
|
+
label: 'Trae',
|
|
201
|
+
runtime: 'trae',
|
|
202
|
+
class: 'unknown',
|
|
203
|
+
detect: (ctx) => hasRuntime(ctx, 'trae'),
|
|
204
|
+
setup: [
|
|
205
|
+
'No stable scheduled automation provider is documented for Godpowers yet.',
|
|
206
|
+
'Use manual Godpowers commands until a native Trae automation surface is confirmed.'
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
id: 'antigravity',
|
|
211
|
+
label: 'Google Antigravity',
|
|
212
|
+
runtime: 'antigravity',
|
|
213
|
+
class: 'unknown',
|
|
214
|
+
detect: (ctx) => hasRuntime(ctx, 'antigravity'),
|
|
215
|
+
setup: [
|
|
216
|
+
'Agent-first workflows are supported, but scheduled automation is not confirmed for Godpowers yet.',
|
|
217
|
+
'Use manual workflows and require artifact review for autonomous agent work.'
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
];
|
|
221
|
+
|
|
222
|
+
function detect(projectRoot = process.cwd(), opts = {}) {
|
|
223
|
+
const ctx = {
|
|
224
|
+
projectRoot,
|
|
225
|
+
home: opts.home || os.homedir(),
|
|
226
|
+
env: opts.env || process.env,
|
|
227
|
+
commands: opts.commands || null,
|
|
228
|
+
gitRemote: opts.gitRemote
|
|
229
|
+
};
|
|
230
|
+
const active = readConfig(projectRoot).automations || [];
|
|
231
|
+
const providers = PROVIDERS.map(provider => {
|
|
232
|
+
const installed = Boolean(provider.detect(ctx));
|
|
233
|
+
return {
|
|
234
|
+
id: provider.id,
|
|
235
|
+
label: provider.label,
|
|
236
|
+
runtime: provider.runtime,
|
|
237
|
+
class: provider.class,
|
|
238
|
+
installed,
|
|
239
|
+
status: providerStatus(provider.class, installed),
|
|
240
|
+
active: active.filter(item => item.provider === provider.id),
|
|
241
|
+
setup: provider.setup.slice()
|
|
242
|
+
};
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
const safeTemplates = SAFE_TEMPLATES.map(template => ({
|
|
246
|
+
...template,
|
|
247
|
+
active: active.some(item => item.id === template.id && item.status !== 'disabled')
|
|
248
|
+
}));
|
|
249
|
+
|
|
250
|
+
return {
|
|
251
|
+
configPath: path.join(projectRoot, CONFIG_PATH),
|
|
252
|
+
providers,
|
|
253
|
+
safeTemplates,
|
|
254
|
+
active,
|
|
255
|
+
recommendedProvider: recommendProvider(providers),
|
|
256
|
+
safety: [
|
|
257
|
+
'Do not create automations during install.',
|
|
258
|
+
'Create schedules, routines, background agents, or API triggers only after explicit user approval.',
|
|
259
|
+
'Default templates are read-only and must not commit, push, publish, deploy, clear reviews, or access provider dashboards.'
|
|
260
|
+
]
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function render(report) {
|
|
265
|
+
const active = report.active && report.active.length > 0
|
|
266
|
+
? report.active.map(item => ` - ${item.id} via ${item.provider}: ${item.status || 'active'}`)
|
|
267
|
+
: [' - none recorded'];
|
|
268
|
+
const providers = report.providers.map(provider => (
|
|
269
|
+
` - ${provider.label}: ${provider.status} (${provider.class})`
|
|
270
|
+
));
|
|
271
|
+
const recommended = report.recommendedProvider
|
|
272
|
+
? `${report.recommendedProvider.label} (${report.recommendedProvider.class})`
|
|
273
|
+
: 'none available';
|
|
274
|
+
const templates = report.safeTemplates.map(template => (
|
|
275
|
+
` - ${template.id}: ${template.title}, ${template.cadence}, ${template.risk}`
|
|
276
|
+
));
|
|
277
|
+
|
|
278
|
+
return [
|
|
279
|
+
'Godpowers Automation Providers',
|
|
280
|
+
'',
|
|
281
|
+
`Config: ${report.configPath}`,
|
|
282
|
+
`Recommended provider: ${recommended}`,
|
|
283
|
+
'',
|
|
284
|
+
'Active automations:',
|
|
285
|
+
...active,
|
|
286
|
+
'',
|
|
287
|
+
'Provider status:',
|
|
288
|
+
...providers,
|
|
289
|
+
'',
|
|
290
|
+
'Safe templates:',
|
|
291
|
+
...templates,
|
|
292
|
+
'',
|
|
293
|
+
'Safety rules:',
|
|
294
|
+
...report.safety.map(rule => ` - ${rule}`)
|
|
295
|
+
].join('\n');
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function setupPlan(projectRoot = process.cwd(), opts = {}) {
|
|
299
|
+
const report = detect(projectRoot, opts);
|
|
300
|
+
const provider = report.recommendedProvider;
|
|
301
|
+
return {
|
|
302
|
+
...report,
|
|
303
|
+
setup: provider ? provider.setup : ['No automation provider is available. Use /god-next or godpowers next --project . manually.']
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
function renderSetupPlan(plan) {
|
|
308
|
+
const provider = plan.recommendedProvider
|
|
309
|
+
? `${plan.recommendedProvider.label} (${plan.recommendedProvider.id})`
|
|
310
|
+
: 'none available';
|
|
311
|
+
return [
|
|
312
|
+
'Godpowers Automation Setup Plan',
|
|
313
|
+
'',
|
|
314
|
+
`Recommended provider: ${provider}`,
|
|
315
|
+
'',
|
|
316
|
+
'Setup steps:',
|
|
317
|
+
...plan.setup.map((step, index) => ` ${index + 1}. ${step}`),
|
|
318
|
+
'',
|
|
319
|
+
'Recommended safe templates:',
|
|
320
|
+
...plan.safeTemplates.map(template => ` - ${template.id}: ${template.prompt}`),
|
|
321
|
+
'',
|
|
322
|
+
'Approval required:',
|
|
323
|
+
' - Choose a provider',
|
|
324
|
+
' - Choose one or more templates',
|
|
325
|
+
' - Confirm any host-native schedule, routine, background agent, API trigger, or connector scope'
|
|
326
|
+
].join('\n');
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
function readConfig(projectRoot) {
|
|
330
|
+
const file = path.join(projectRoot, CONFIG_PATH);
|
|
331
|
+
if (!fs.existsSync(file)) return { automations: [] };
|
|
332
|
+
try {
|
|
333
|
+
const parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
334
|
+
return {
|
|
335
|
+
automations: Array.isArray(parsed.automations) ? parsed.automations : []
|
|
336
|
+
};
|
|
337
|
+
} catch (e) {
|
|
338
|
+
return { automations: [] };
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
function providerStatus(providerClass, installed) {
|
|
343
|
+
if (providerClass === 'unknown') return installed ? 'installed, capability unknown' : 'unknown';
|
|
344
|
+
if (providerClass === 'manual-workflow') return installed ? 'manual workflow available' : 'supported, not detected';
|
|
345
|
+
if (providerClass === 'session-scheduler') return installed ? 'session scheduler available' : 'supported, not detected';
|
|
346
|
+
if (providerClass === 'background-agent') return installed ? 'background agent available' : 'supported, not detected';
|
|
347
|
+
if (providerClass === 'scriptable-headless') return installed ? 'scriptable headless available' : 'supported, not detected';
|
|
348
|
+
if (providerClass === 'native-scheduler') return installed ? 'native scheduler available' : 'supported, not detected';
|
|
349
|
+
return installed ? 'available' : 'not detected';
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
function recommendProvider(providers) {
|
|
353
|
+
const order = [
|
|
354
|
+
'native-scheduler',
|
|
355
|
+
'background-agent',
|
|
356
|
+
'scriptable-headless',
|
|
357
|
+
'session-scheduler',
|
|
358
|
+
'manual-workflow'
|
|
359
|
+
];
|
|
360
|
+
for (const providerClass of order) {
|
|
361
|
+
const found = providers.find(provider => provider.installed && provider.class === providerClass);
|
|
362
|
+
if (found) return found;
|
|
363
|
+
}
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
function hasRuntime(ctx, runtime) {
|
|
368
|
+
const homePath = path.join(ctx.home, `.${runtime}`, 'GODPOWERS_VERSION');
|
|
369
|
+
return fs.existsSync(homePath);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
function hasEnv(ctx, key) {
|
|
373
|
+
return Boolean(ctx.env && ctx.env[key]);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
function hasCommand(ctx, command) {
|
|
377
|
+
if (ctx.commands) {
|
|
378
|
+
return Boolean(ctx.commands[command]);
|
|
379
|
+
}
|
|
380
|
+
try {
|
|
381
|
+
cp.execFileSync('which', [command], { stdio: ['ignore', 'ignore', 'ignore'] });
|
|
382
|
+
return true;
|
|
383
|
+
} catch (e) {
|
|
384
|
+
return false;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
function hasGitRemote(ctx) {
|
|
389
|
+
if (ctx.gitRemote !== undefined) return Boolean(ctx.gitRemote);
|
|
390
|
+
try {
|
|
391
|
+
const out = cp.execFileSync('git', ['remote', '-v'], {
|
|
392
|
+
cwd: ctx.projectRoot,
|
|
393
|
+
encoding: 'utf8',
|
|
394
|
+
stdio: ['ignore', 'pipe', 'ignore']
|
|
395
|
+
});
|
|
396
|
+
return /github\.com[:/]/.test(out);
|
|
397
|
+
} catch (e) {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
module.exports = {
|
|
403
|
+
CONFIG_PATH,
|
|
404
|
+
SAFE_TEMPLATES,
|
|
405
|
+
PROVIDERS,
|
|
406
|
+
detect,
|
|
407
|
+
render,
|
|
408
|
+
setupPlan,
|
|
409
|
+
renderSetupPlan,
|
|
410
|
+
readConfig
|
|
411
|
+
};
|
package/lib/dashboard.js
CHANGED
|
@@ -11,6 +11,7 @@ const cp = require('child_process');
|
|
|
11
11
|
|
|
12
12
|
const state = require('./state');
|
|
13
13
|
const router = require('./router');
|
|
14
|
+
const automationProviders = require('./automation-providers');
|
|
14
15
|
|
|
15
16
|
const GOD_DIR = '.godpowers';
|
|
16
17
|
const PRD_PATH = '.godpowers/prd/PRD.md';
|
|
@@ -164,12 +165,24 @@ function proactiveChecks(projectRoot, changedFiles = []) {
|
|
|
164
165
|
sync,
|
|
165
166
|
docs: 'fresh',
|
|
166
167
|
runtime: 'not-applicable',
|
|
168
|
+
automation: automationSummary(projectRoot),
|
|
167
169
|
security: sensitiveChanged ? 'sensitive files changed, suggest /god-harden' : 'clear',
|
|
168
170
|
dependencies: pkgChanged ? 'dependency files changed, suggest /god-update-deps' : 'clear',
|
|
169
171
|
hygiene: hygieneFresh ? 'fresh' : 'stale, suggest /god-hygiene'
|
|
170
172
|
};
|
|
171
173
|
}
|
|
172
174
|
|
|
175
|
+
function automationSummary(projectRoot) {
|
|
176
|
+
const report = automationProviders.detect(projectRoot);
|
|
177
|
+
if (report.active.length > 0) {
|
|
178
|
+
return `${report.active.length} active`;
|
|
179
|
+
}
|
|
180
|
+
if (report.recommendedProvider) {
|
|
181
|
+
return `available via ${report.recommendedProvider.id}, suggest /god-automation-setup`;
|
|
182
|
+
}
|
|
183
|
+
return 'not configured';
|
|
184
|
+
}
|
|
185
|
+
|
|
173
186
|
function matchesAnyPrefix(file, prefixes) {
|
|
174
187
|
return prefixes.some(prefix => file === prefix || file.startsWith(`${prefix}/`));
|
|
175
188
|
}
|
|
@@ -273,6 +286,7 @@ function render(dashboard) {
|
|
|
273
286
|
` Sync: ${proactive.sync || 'unknown'}`,
|
|
274
287
|
` Docs: ${proactive.docs || 'unknown'}`,
|
|
275
288
|
` Runtime: ${proactive.runtime || 'unknown'}`,
|
|
289
|
+
` Automation: ${proactive.automation || 'unknown'}`,
|
|
276
290
|
` Security: ${proactive.security || 'unknown'}`,
|
|
277
291
|
` Dependencies: ${proactive.dependencies || 'unknown'}`,
|
|
278
292
|
` Hygiene: ${proactive.hygiene || 'unknown'}`,
|
|
@@ -292,5 +306,6 @@ module.exports = {
|
|
|
292
306
|
worktree,
|
|
293
307
|
parseGitStatus,
|
|
294
308
|
proactiveChecks,
|
|
309
|
+
automationSummary,
|
|
295
310
|
planningVisibility
|
|
296
311
|
};
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "godpowers",
|
|
3
|
-
"version": "1.6.
|
|
4
|
-
"description": "AI-powered development system:
|
|
3
|
+
"version": "1.6.13",
|
|
4
|
+
"description": "AI-powered development system: 108 slash commands and 39 specialist agents that take a project from raw idea to hardened production. Runs inside Claude Code, Codex, Cursor, Windsurf, Gemini, and 10+ other AI coding tools.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"godpowers": "./bin/install.js"
|
|
7
7
|
},
|
|
8
8
|
"scripts": {
|
|
9
|
-
"test": "node scripts/validate-skills.js && node scripts/test-doc-surface-counts.js && bash scripts/smoke.sh && node scripts/test-runtime.js && node scripts/test-router.js && node scripts/test-recipes.js && node scripts/test-context-writer.js && node scripts/test-pillars.js && node scripts/test-artifact-linter.js && node scripts/test-artifact-diff.js && node scripts/test-design-foundation.js && node scripts/test-linkage.js && node scripts/test-impact.js && node scripts/test-reverse-sync.js && node scripts/test-integration.js && node scripts/test-cross-artifact.js && node scripts/test-awesome-design.js && node scripts/test-skillui-bridge.js && node scripts/test-runtime-verification.js && node scripts/test-agent-browser.js && node scripts/test-mode-d.js && node scripts/test-runtime-heuristics.js && node scripts/test-agent-validator.js && node scripts/test-story-validator.js && node scripts/test-state.js && node scripts/test-dashboard.js && node scripts/test-intent.js && node scripts/test-events.js && node scripts/test-golden-artifacts.js && node scripts/test-install-smoke.js && node scripts/test-checkpoint.js && node scripts/test-extensions.js && node scripts/test-event-reader.js && node scripts/test-state-lock.js && node scripts/test-cost-saver.js && node scripts/test-budget-onoff.js && node scripts/test-workflow-runner.js && npm run test:e2e && node scripts/test-otel-exporter.js && node scripts/test-extensions-publish.js",
|
|
9
|
+
"test": "node scripts/validate-skills.js && node scripts/test-doc-surface-counts.js && bash scripts/smoke.sh && node scripts/test-runtime.js && node scripts/test-router.js && node scripts/test-recipes.js && node scripts/test-context-writer.js && node scripts/test-pillars.js && node scripts/test-artifact-linter.js && node scripts/test-artifact-diff.js && node scripts/test-design-foundation.js && node scripts/test-linkage.js && node scripts/test-impact.js && node scripts/test-reverse-sync.js && node scripts/test-integration.js && node scripts/test-cross-artifact.js && node scripts/test-awesome-design.js && node scripts/test-skillui-bridge.js && node scripts/test-runtime-verification.js && node scripts/test-agent-browser.js && node scripts/test-mode-d.js && node scripts/test-runtime-heuristics.js && node scripts/test-agent-validator.js && node scripts/test-story-validator.js && node scripts/test-state.js && node scripts/test-dashboard.js && node scripts/test-automation-providers.js && node scripts/test-intent.js && node scripts/test-events.js && node scripts/test-golden-artifacts.js && node scripts/test-install-smoke.js && node scripts/test-checkpoint.js && node scripts/test-extensions.js && node scripts/test-event-reader.js && node scripts/test-state-lock.js && node scripts/test-cost-saver.js && node scripts/test-budget-onoff.js && node scripts/test-workflow-runner.js && npm run test:e2e && node scripts/test-otel-exporter.js && node scripts/test-extensions-publish.js",
|
|
10
10
|
"prepublishOnly": "npm test",
|
|
11
11
|
"validate-skills": "node scripts/validate-skills.js",
|
|
12
12
|
"test:surface": "node scripts/test-doc-surface-counts.js",
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
apiVersion: godpowers/v1
|
|
2
|
+
kind: CommandRouting
|
|
3
|
+
metadata:
|
|
4
|
+
command: /god-automation-setup
|
|
5
|
+
description: Prepare opt-in host automation setup
|
|
6
|
+
tier: 0
|
|
7
|
+
|
|
8
|
+
prerequisites:
|
|
9
|
+
required: []
|
|
10
|
+
|
|
11
|
+
execution:
|
|
12
|
+
spawns: [built-in]
|
|
13
|
+
context: fresh
|
|
14
|
+
writes:
|
|
15
|
+
- .godpowers/automations.json
|
|
16
|
+
|
|
17
|
+
success-path:
|
|
18
|
+
next-recommended: /god-automation-status
|
|
19
|
+
|
|
20
|
+
failure-path:
|
|
21
|
+
on-error: /god-doctor
|
|
22
|
+
|
|
23
|
+
endoff:
|
|
24
|
+
state-update: tier-0 updated for /god-automation-setup
|
|
25
|
+
events: [agent.start, artifact.created, agent.end]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
apiVersion: godpowers/v1
|
|
2
|
+
kind: CommandRouting
|
|
3
|
+
metadata:
|
|
4
|
+
command: /god-automation-status
|
|
5
|
+
description: Show host automation provider support
|
|
6
|
+
tier: 0
|
|
7
|
+
|
|
8
|
+
prerequisites:
|
|
9
|
+
required: []
|
|
10
|
+
|
|
11
|
+
execution:
|
|
12
|
+
spawns: [built-in]
|
|
13
|
+
context: fresh
|
|
14
|
+
writes: []
|
|
15
|
+
|
|
16
|
+
success-path:
|
|
17
|
+
next-recommended: /god-automation-setup
|
|
18
|
+
|
|
19
|
+
failure-path:
|
|
20
|
+
on-error: /god-doctor
|
|
21
|
+
|
|
22
|
+
endoff:
|
|
23
|
+
state-update: tier-0 updated for /god-automation-status
|
|
24
|
+
events: [agent.start, agent.end]
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: god-automation-setup
|
|
3
|
+
description: |
|
|
4
|
+
Prepare an explicit opt-in setup plan for host-native Godpowers automation.
|
|
5
|
+
Never creates schedules, routines, background agents, API triggers, or CI
|
|
6
|
+
workflows without user approval.
|
|
7
|
+
|
|
8
|
+
Triggers on: "god automation setup", "set up background automation", "make godpowers proactive"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /god-automation-setup
|
|
12
|
+
|
|
13
|
+
Prepare a safe, host-native automation setup plan.
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
1. Resolve the runtime root and load `<runtimeRoot>/lib/automation-providers.js`.
|
|
18
|
+
2. Call `automation.setupPlan(projectRoot)`.
|
|
19
|
+
3. Print `automation.renderSetupPlan(plan)`.
|
|
20
|
+
4. Ask the user to choose:
|
|
21
|
+
- provider
|
|
22
|
+
- templates
|
|
23
|
+
- cadence
|
|
24
|
+
- connector or repository scope
|
|
25
|
+
- whether write actions are allowed
|
|
26
|
+
5. Create provider-native automation only if the current host exposes a safe
|
|
27
|
+
automation tool and the user explicitly approved the exact provider,
|
|
28
|
+
template, cadence, and scope.
|
|
29
|
+
6. After creation, write or update `.godpowers/automations.json` with:
|
|
30
|
+
- automation id
|
|
31
|
+
- provider id
|
|
32
|
+
- status
|
|
33
|
+
- cadence
|
|
34
|
+
- prompt summary
|
|
35
|
+
- created timestamp
|
|
36
|
+
- host surface used
|
|
37
|
+
7. Run `/god-automation-status` after setup and show the result.
|
|
38
|
+
|
|
39
|
+
## Hard Stops
|
|
40
|
+
|
|
41
|
+
Do not create automations during install.
|
|
42
|
+
|
|
43
|
+
Do not create any automation that can do these unless the user explicitly asks
|
|
44
|
+
for that exact write-capable automation:
|
|
45
|
+
|
|
46
|
+
- stage, commit, push, merge, package, publish, or release
|
|
47
|
+
- deploy to staging or production
|
|
48
|
+
- access provider dashboards, DNS, credentials, secrets, or billing
|
|
49
|
+
- clear `.godpowers/REVIEW-REQUIRED.md`
|
|
50
|
+
- accept Critical security findings
|
|
51
|
+
- run broad dependency upgrades
|
|
52
|
+
- delete files, reset branches, or clean worktrees
|
|
53
|
+
|
|
54
|
+
## Safe Starting Templates
|
|
55
|
+
|
|
56
|
+
- `daily-status`: run `godpowers status --project .` and summarize current phase, progress, open items, and next action
|
|
57
|
+
- `stale-checkpoint`: inspect checkpoint freshness and suggest `/god-sync` or `/god-resume-work`
|
|
58
|
+
- `review-queue`: report unresolved review items without clearing them
|
|
59
|
+
- `weekly-hygiene`: report docs, dependencies, checkpoint, reviews, and hygiene signals
|
|
60
|
+
- `release-readiness`: report release readiness without publishing
|
|
61
|
+
|
|
62
|
+
## Provider Guidance
|
|
63
|
+
|
|
64
|
+
- Codex App: use native Codex automations when the host exposes them.
|
|
65
|
+
- Claude Code: use `/schedule` for scheduled routines. Use Claude web for API or GitHub triggers.
|
|
66
|
+
- Cline: use `cline schedule` or the Cline SDK scheduler.
|
|
67
|
+
- Kilo: use KiloClaw Scheduled Triggers.
|
|
68
|
+
- Qwen Code: use `/loop` only for session-scoped checks and report that it is not durable.
|
|
69
|
+
- Cursor: use Background Agents or the Background Agent API for branch-scoped async work.
|
|
70
|
+
- GitHub Copilot: use issues, pull requests, or Copilot cloud agent entry points.
|
|
71
|
+
- Windsurf: install workflows or skills, but report that workflows are manual-only.
|
|
72
|
+
- Gemini CLI, OpenCode, CodeBuddy, and Pi: use headless or SDK execution only with an approved scheduler.
|
|
73
|
+
- Trae and Antigravity: report scheduled automation as unknown unless the host proves otherwise.
|
|
74
|
+
|
|
75
|
+
## Output Shape
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
Godpowers Automation Setup Plan
|
|
79
|
+
|
|
80
|
+
Recommended provider: <provider>
|
|
81
|
+
|
|
82
|
+
Setup steps:
|
|
83
|
+
1. <host-native setup step>
|
|
84
|
+
|
|
85
|
+
Recommended safe templates:
|
|
86
|
+
- <template id>: <prompt>
|
|
87
|
+
|
|
88
|
+
Approval required:
|
|
89
|
+
- Choose a provider
|
|
90
|
+
- Choose one or more templates
|
|
91
|
+
- Confirm any host-native schedule, routine, background agent, API trigger, or connector scope
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Proposition Closeout
|
|
95
|
+
|
|
96
|
+
End with:
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
Proposition:
|
|
100
|
+
1. Implement partial: create one read-only automation after approval
|
|
101
|
+
2. Implement complete: create all safe read-only automations after approval
|
|
102
|
+
3. Discuss more: tune provider, cadence, or safety rules
|
|
103
|
+
4. Inspect status: /god-automation-status
|
|
104
|
+
Recommended: <one option tied to provider capability and user risk>
|
|
105
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: god-automation-status
|
|
3
|
+
description: |
|
|
4
|
+
Show host-native automation provider support for the current project.
|
|
5
|
+
Reports Codex App, Claude Routines, Cline schedules, Qwen loops, Cursor
|
|
6
|
+
background agents, Copilot cloud agent, and scriptable CLI providers.
|
|
7
|
+
|
|
8
|
+
Triggers on: "god automation status", "automation support", "background automation status"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /god-automation-status
|
|
12
|
+
|
|
13
|
+
Show which automation providers Godpowers can safely use in this project.
|
|
14
|
+
|
|
15
|
+
## Process
|
|
16
|
+
|
|
17
|
+
1. Resolve the runtime root and load `<runtimeRoot>/lib/automation-providers.js`.
|
|
18
|
+
2. Call `automation.detect(projectRoot)`.
|
|
19
|
+
3. Print `automation.render(result)`.
|
|
20
|
+
4. Read `.godpowers/automations.json` if present and report active automations.
|
|
21
|
+
5. Do not create, update, trigger, pause, resume, or delete schedules.
|
|
22
|
+
6. Do not stage, commit, push, publish, deploy, clear review queues, or access
|
|
23
|
+
provider dashboards.
|
|
24
|
+
|
|
25
|
+
If the executable runtime module is unavailable, manually report these provider
|
|
26
|
+
classes:
|
|
27
|
+
|
|
28
|
+
- native-scheduler: Codex App automations, Claude Code routines, Cline schedules, Kilo scheduled triggers
|
|
29
|
+
- session-scheduler: Qwen Code `/loop`
|
|
30
|
+
- background-agent: Cursor Background Agents, GitHub Copilot cloud agent
|
|
31
|
+
- scriptable-headless: Gemini CLI, OpenCode, CodeBuddy SDK, Pi SDK
|
|
32
|
+
- manual-workflow: Windsurf workflows, Augment subagents
|
|
33
|
+
- unknown: Trae, Antigravity scheduled automation
|
|
34
|
+
|
|
35
|
+
## Output Shape
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
Godpowers Automation Providers
|
|
39
|
+
|
|
40
|
+
Config: .godpowers/automations.json
|
|
41
|
+
Recommended provider: <provider or none available>
|
|
42
|
+
|
|
43
|
+
Active automations:
|
|
44
|
+
- <id via provider: status or none recorded>
|
|
45
|
+
|
|
46
|
+
Provider status:
|
|
47
|
+
- <provider>: <status> (<class>)
|
|
48
|
+
|
|
49
|
+
Safe templates:
|
|
50
|
+
- daily-status: Daily Godpowers status, Daily at 9am local time, read-only
|
|
51
|
+
- stale-checkpoint: Stale checkpoint watcher, Weekdays at 9am local time, read-only
|
|
52
|
+
- review-queue: Review queue watcher, Daily at 10am local time, read-only
|
|
53
|
+
- weekly-hygiene: Weekly hygiene report, Monday at 9am local time, read-only
|
|
54
|
+
- release-readiness: Release readiness report, Manual or before release, read-only
|
|
55
|
+
|
|
56
|
+
Safety rules:
|
|
57
|
+
- Do not create automations during install.
|
|
58
|
+
- Create schedules, routines, background agents, or API triggers only after explicit user approval.
|
|
59
|
+
- Default templates are read-only.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Proposition Closeout
|
|
63
|
+
|
|
64
|
+
End with:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
Proposition:
|
|
68
|
+
1. Implement partial: /god-automation-setup for one safe read-only template
|
|
69
|
+
2. Implement complete: /god-automation-setup for all safe templates supported by the current host
|
|
70
|
+
3. Discuss more: /god-discuss automation policy and provider choice
|
|
71
|
+
4. Inspect status: /god-status to see project progress and automation status together
|
|
72
|
+
Recommended: <one option tied to the detected provider>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
If no provider is available, recommend manual `/god-next` or
|
|
76
|
+
`godpowers next --project .`.
|
package/skills/god-doctor.md
CHANGED
|
@@ -46,7 +46,7 @@ Plain-text report grouped by severity:
|
|
|
46
46
|
GODPOWERS DOCTOR
|
|
47
47
|
|
|
48
48
|
Install: claude (~/.claude/)
|
|
49
|
-
[OK]
|
|
49
|
+
[OK] 108 skills installed
|
|
50
50
|
[OK] 39 agents installed
|
|
51
51
|
[OK] VERSION matches (1.6.6)
|
|
52
52
|
[WARN] routing/god-doctor.yaml exists but skill file did not until now
|
package/skills/god-status.md
CHANGED
|
@@ -97,6 +97,7 @@ Proactive opportunities:
|
|
|
97
97
|
Sync: fresh
|
|
98
98
|
Docs: possible drift, suggest /god-docs
|
|
99
99
|
Runtime: known local URL, suggest /god-test-runtime
|
|
100
|
+
Automation: available via codex-app, suggest /god-automation-setup
|
|
100
101
|
Security: clear
|
|
101
102
|
Dependencies: clear
|
|
102
103
|
Hygiene: stale, suggest /god-hygiene
|
|
@@ -174,6 +175,8 @@ Report:
|
|
|
174
175
|
`docs drift-check already logged`
|
|
175
176
|
- Runtime: `not-applicable`, `known URL, suggest /god-test-runtime`, or
|
|
176
177
|
`no known URL, defer deployed verification`
|
|
178
|
+
- Automation: `not configured`, `<N> active`, or
|
|
179
|
+
`available via <provider>, suggest /god-automation-setup`
|
|
177
180
|
- Security: `clear` or `sensitive files changed, suggest /god-harden`
|
|
178
181
|
- Dependencies: `clear` or `dependency files changed, suggest /god-update-deps`
|
|
179
182
|
- Hygiene: `fresh` or `stale, suggest /god-hygiene`
|
package/skills/god-version.md
CHANGED
|
@@ -16,7 +16,7 @@ Print version and a short capability summary.
|
|
|
16
16
|
```
|
|
17
17
|
Godpowers v1.6.6
|
|
18
18
|
Install: /Users/.../.claude/ (matches package.json)
|
|
19
|
-
Surface:
|
|
19
|
+
Surface: 108 skills, 39 agents, 13 workflows, 36 recipes
|
|
20
20
|
Schema: intent.v1, state.v1, events.v1, workflow.v1, routing.v1, recipe.v1
|
|
21
21
|
External integrations available: impeccable, agent-browser (others lazy)
|
|
22
22
|
```
|