godpowers 1.6.2 → 1.6.4

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 CHANGED
@@ -5,6 +5,61 @@ 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.4] - 2026-05-16
9
+
10
+ Release gate propagation patch. Keeps the 1.6 command surface stable while
11
+ making the safe sync and Critical harden gates apply to direct commands,
12
+ `/god-mode`, and `/god-mode --yolo`.
13
+
14
+ ### Added
15
+ - Added executable router support for `no-critical-findings`.
16
+ - Added safe-sync prerequisites to `/god-observe`, `/god-harden`,
17
+ `/god-launch`, and `/god-mode`.
18
+ - Added regression tests proving safe sync blocks direct Tier 3 commands and
19
+ `/god-mode`.
20
+ - Added regression tests proving `/god-launch` blocks unresolved Critical
21
+ harden findings and allows passed harden gates.
22
+
23
+ ### Changed
24
+ - `god-orchestrator` now explicitly evaluates router prerequisites before
25
+ command dispatch instead of relying only on structural tier order.
26
+ - `/god-mode --yolo` now documents safe sync and unresolved Critical harden
27
+ findings as release-truth gates that cannot be bypassed.
28
+ - Generated routing metadata now preserves per-prerequisite auto-complete
29
+ commands so future generated Tier 3 routes keep the safe sync gate.
30
+
31
+ ### Guardrails
32
+ - This patch does not add slash commands, agents, workflows, recipes, schemas,
33
+ or public artifact formats.
34
+ - `--yolo` can still auto-pick defaults, but it cannot auto-accept unresolved
35
+ release truth blockers.
36
+
37
+ ## [1.6.3] - 2026-05-16
38
+
39
+ Safe sync routing patch. Keeps the 1.6 command surface stable while making
40
+ `/god-next` and `/god-deploy` honor unresolved release sync blockers before
41
+ Tier 3 work.
42
+
43
+ ### Added
44
+ - Added router detection for `.godpowers/sync/SAFE-SYNC-PLAN.md`.
45
+ - Added router detection for checkpoint text that marks safe sync as a
46
+ blocking red gate.
47
+ - Added `safe-sync-clear` prerequisite support for routing files.
48
+ - Added regression tests for safe sync plan blockers, checkpoint blockers,
49
+ deploy prerequisites, and resolved safe sync plans.
50
+
51
+ ### Changed
52
+ - `/god-next` now suggests `/god-reconcile Release Truth And Safe Sync` before
53
+ `/god-deploy` when safe sync remains unresolved.
54
+ - `/god-deploy` now advertises the safe sync reconcile command as its
55
+ auto-complete route when the gate is red.
56
+
57
+ ### Guardrails
58
+ - This patch does not add slash commands, agents, workflows, recipes, schemas,
59
+ or public artifact formats.
60
+ - The blocker clears only when `.godpowers/sync/SAFE-SYNC-DONE.md` or
61
+ `.godpowers/sync/SAFE-SYNC-RESOLVED.md` exists.
62
+
8
63
  ## [1.6.2] - 2026-05-16
9
64
 
10
65
  Codex agent metadata compatibility patch. Keeps the public command surface
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/aihxp/godpowers/actions/workflows/ci.yml/badge.svg)](https://github.com/aihxp/godpowers/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5
- [![Version](https://img.shields.io/badge/version-1.6.2-blue)](CHANGELOG.md)
5
+ [![Version](https://img.shields.io/badge/version-1.6.4-blue)](CHANGELOG.md)
6
6
  [![npm](https://img.shields.io/npm/v/godpowers.svg)](https://www.npmjs.com/package/godpowers)
7
7
 
8
8
  **Ship fast. Ship right. Ship everything. Ship accountably.**
@@ -12,10 +12,10 @@ 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.2 hardens Codex agent integration around the 1.6 domain precision
16
- layer: Codex installs now include per-agent TOML metadata for all 39
17
- Godpowers specialist agents, while release checks cover every supported
18
- runtime surface.
15
+ Version 1.6.4 hardens Godpowers routing around release truth: safe-sync
16
+ blockers and unresolved Critical harden findings now gate direct Tier 3
17
+ commands, `/god-mode`, and `/god-mode --yolo`, while Codex installs keep
18
+ per-agent TOML metadata for all 39 specialist agents.
19
19
 
20
20
  It fuses four disciplines into one unified workflow:
21
21
 
package/RELEASE.md CHANGED
@@ -1,11 +1,11 @@
1
- # Godpowers 1.6.2 Release
1
+ # Godpowers 1.6.4 Release
2
2
 
3
3
  Date: 2026-05-16
4
4
 
5
- Godpowers 1.6.2 hardens Codex agent integration around the stable 1.6 domain
6
- precision release. The goal of this patch is to make every installed
7
- Godpowers specialist agent spawnable in Codex sessions that require per-agent
8
- metadata, without changing the public command surface.
5
+ Godpowers 1.6.4 hardens release-truth routing around the stable 1.6 surface.
6
+ The goal of this patch is to make safe sync and unresolved Critical harden
7
+ findings block direct Tier 3 commands, `/god-mode`, and `/god-mode --yolo`,
8
+ without changing the public command surface.
9
9
 
10
10
  ## What is stable
11
11
 
@@ -15,6 +15,8 @@ metadata, without changing the public command surface.
15
15
  - 36 intent recipes
16
16
  - 15-runtime installer
17
17
  - Codex installs with 39 generated `god-*.toml` agent metadata files
18
+ - Safe-sync routing before deploy, observe, harden, launch, or god-mode work
19
+ - Critical harden finding gate before launch
18
20
  - Native Pillars project context through `AGENTS.md` and `agents/*.md`
19
21
  - `.godpowers/` workflow state and artifact layout
20
22
  - Core schemas: intent, state, events, workflow, routing, recipes, extension
@@ -25,22 +27,22 @@ metadata, without changing the public command surface.
25
27
 
26
28
  ## What is new
27
29
 
28
- - Codex runtime support now declares an `agentMetadata: "toml"` capability in
29
- the installer.
30
- - Codex installs generate a matching TOML metadata file for every
31
- `agents/god-*.md` source file.
32
- - Codex metadata includes agent name, description, workspace-write sandbox
33
- mode, and developer instructions derived from the markdown agent spec.
34
- - Install smoke tests now verify all 39 Codex metadata files, plus
35
- runtime-specific install surfaces for all 15 supported runtimes.
36
- - Claude Code, Pi, and the other non-Codex runtimes keep their existing
37
- markdown agent install behavior.
30
+ - `/god-next` detects `.godpowers/sync/SAFE-SYNC-PLAN.md` and routes to
31
+ `/god-reconcile Release Truth And Safe Sync` before `/god-deploy`.
32
+ - Direct `/god-observe`, `/god-harden`, `/god-launch`, and `/god-mode`
33
+ invocations also require `safe-sync-clear`.
34
+ - `/god-launch` now executes the `no-critical-findings` prerequisite instead
35
+ of treating it as an unknown pass-through check.
36
+ - `god-orchestrator` now checks router prerequisites before command dispatch,
37
+ including under `--yolo`.
38
+ - Router tests cover unresolved safe sync plans, checkpoint blockers, direct
39
+ Tier 3 gates, `/god-mode`, unresolved Critical findings, and resolved gates.
38
40
 
39
- ## What 1.6.2 means
41
+ ## What 1.6.4 means
40
42
 
41
- Godpowers 1.6.2 does not expand the public command surface. It tightens the
42
- runtime compatibility path so the installed Codex agent registry can see the
43
- same Godpowers agents already shipped in `agents/*.md`.
43
+ Godpowers 1.6.4 does not expand the public command surface. It tightens the
44
+ runtime decision path so project truth can override structural tier order for
45
+ safe sync and harden Critical gates.
44
46
 
45
47
  The domain glossary remains preparation context. PRD, ARCH, ROADMAP, STACK,
46
48
  docs, and Pillars files still carry durable decisions for their own domains.
@@ -50,8 +52,8 @@ docs, and Pillars files still carry durable decisions for their own domains.
50
52
  During the 1.x stability window, do not add broad new command families, change
51
53
  schema formats, or rename public artifacts without evidence from real use.
52
54
 
53
- The `v1.6.2` git tag points to the release commit that matches the npm
54
- `godpowers@1.6.2` package. Public publishes should prefer the tag-triggered
55
+ The `v1.6.4` git tag points to the release commit that matches the npm
56
+ `godpowers@1.6.4` package. Public publishes should prefer the tag-triggered
55
57
  GitHub workflow so npm provenance, git history, and release notes stay aligned.
56
58
 
57
59
  Allowed changes:
@@ -223,6 +223,14 @@ When deciding what to spawn next, query the routing definition:
223
223
  - `standards.have-nots` -> which have-nots to verify
224
224
  - `success-path.next-recommended` -> what to suggest next
225
225
 
226
+ Before spawning a command, evaluate `lib/router.js checkPrerequisites(command,
227
+ projectRoot)`. Missing prerequisites are authoritative even when the tier
228
+ order suggests the command is structurally next. If `safe-sync-clear` fails,
229
+ route to `/god-reconcile Release Truth And Safe Sync` before deploy, observe,
230
+ harden, launch, broad migration, or resume work. If `no-critical-findings`
231
+ fails, launch remains blocked until harden is fixed and re-verified or risk is
232
+ explicitly accepted in writing.
233
+
226
234
  Between every tier, run god-standards-check on the produced artifact (if
227
235
  the routing config has a `standards` section). Standards check uses fresh
228
236
  context, independent of the producing agent, so it catches drift the
@@ -646,11 +654,14 @@ Auto-resolve all pause categories EXCEPT:
646
654
 
647
655
  **Impossible preflight routing contradictions pause, even with --yolo.**
648
656
 
657
+ **Unresolved safe sync blockers pause or route to reconcile, even with --yolo.**
658
+
649
659
  Rationale: shipping with a known Critical vulnerability is a category of risk
650
660
  that should never be auto-accepted. A preflight contradiction means the repo
651
661
  evidence does not support any safe next route. If god-harden-auditor returns
652
- Critical findings, or preflight cannot choose between mutually exclusive
653
- routes from evidence, --yolo does NOT skip. Pause for human resolution.
662
+ Critical findings, unresolved safe sync blockers, or preflight cannot choose
663
+ between mutually exclusive routes from evidence, --yolo does NOT skip. Pause
664
+ for human resolution when no safe automatic reconcile route exists.
654
665
 
655
666
  These are the only --yolo carve-outs. All other pauses are auto-resolved with
656
667
  the agent's documented default, and all repairable mechanical failures are
package/lib/router.js CHANGED
@@ -14,6 +14,12 @@ const { parseSimpleYaml } = require('./intent');
14
14
  const state = require('./state');
15
15
 
16
16
  const ROUTING_DIR = path.join(__dirname, '..', 'routing');
17
+ const SAFE_SYNC_PLAN = '.godpowers/sync/SAFE-SYNC-PLAN.md';
18
+ const SAFE_SYNC_DONE_FILES = [
19
+ '.godpowers/sync/SAFE-SYNC-DONE.md',
20
+ '.godpowers/sync/SAFE-SYNC-RESOLVED.md'
21
+ ];
22
+ const HARDEN_FINDINGS = '.godpowers/harden/FINDINGS.md';
17
23
 
18
24
  let _cache = null;
19
25
 
@@ -107,6 +113,14 @@ function evaluateCheck(check, projectRoot) {
107
113
  return actual === expected || actual === parseValue(expected);
108
114
  }
109
115
 
116
+ if (check === 'safe-sync-clear') {
117
+ return detectSafeSyncBlocker(projectRoot) === null;
118
+ }
119
+
120
+ if (check === 'no-critical-findings') {
121
+ return hasNoCriticalFindings(projectRoot);
122
+ }
123
+
110
124
  // mode-A-greenfield: pass-through hint, treat as satisfiable
111
125
  if (check.includes('greenfield') || check.includes('mode-A')) {
112
126
  return !fs.existsSync(path.join(projectRoot, '.godpowers'));
@@ -236,6 +250,9 @@ function suggestNext(projectRoot) {
236
250
  if (subStepStatus(tiers, 'tier-2', 'build') !== 'done')
237
251
  return { command: '/god-build', reason: 'Build pending', tier: 'tier-2' };
238
252
 
253
+ const safeSync = detectSafeSyncBlocker(projectRoot);
254
+ if (safeSync) return safeSync;
255
+
239
256
  // Tier 3
240
257
  if (subStepStatus(tiers, 'tier-3', 'deploy') !== 'done')
241
258
  return { command: '/god-deploy', reason: 'Deploy pipeline not set up', tier: 'tier-3' };
@@ -258,6 +275,65 @@ function subStepStatus(tiers, tierKey, subKey) {
258
275
  return tiers[tierKey] && tiers[tierKey][subKey] && tiers[tierKey][subKey].status;
259
276
  }
260
277
 
278
+ function detectSafeSyncBlocker(projectRoot) {
279
+ if (SAFE_SYNC_DONE_FILES.some(file => fs.existsSync(path.join(projectRoot, file)))) {
280
+ return null;
281
+ }
282
+
283
+ const planPath = path.join(projectRoot, SAFE_SYNC_PLAN);
284
+ if (fs.existsSync(planPath)) {
285
+ return safeSyncSuggestion(`Unresolved safe sync plan at ${SAFE_SYNC_PLAN}`, SAFE_SYNC_PLAN);
286
+ }
287
+
288
+ const checkpointPath = path.join(projectRoot, '.godpowers', 'CHECKPOINT.md');
289
+ if (!fs.existsSync(checkpointPath)) return null;
290
+
291
+ const checkpoint = fs.readFileSync(checkpointPath, 'utf8');
292
+ const mentionsSafeSync = /safe sync/i.test(checkpoint);
293
+ const isBlocking = /block|red gate|missing|unresolved|before deploy|blocks deploy/i.test(checkpoint);
294
+ if (mentionsSafeSync && isBlocking) {
295
+ return safeSyncSuggestion('Checkpoint says safe sync is blocking Tier 3 work', '.godpowers/CHECKPOINT.md');
296
+ }
297
+
298
+ return null;
299
+ }
300
+
301
+ function safeSyncSuggestion(reason, evidence) {
302
+ return {
303
+ command: '/god-reconcile Release Truth And Safe Sync',
304
+ reason,
305
+ tier: 'tier-0',
306
+ blocker: 'safe-sync',
307
+ evidence
308
+ };
309
+ }
310
+
311
+ function hasNoCriticalFindings(projectRoot) {
312
+ const findingsPath = path.join(projectRoot, HARDEN_FINDINGS);
313
+ if (!fs.existsSync(findingsPath)) return false;
314
+
315
+ const findings = fs.readFileSync(findingsPath, 'utf8');
316
+ if (/\*\*Launch gate\*\*:\s*PASSED/i.test(findings) || /Launch gate:\s*PASSED/i.test(findings)) {
317
+ return true;
318
+ }
319
+ if (/\*\*Launch gate\*\*:\s*BLOCKED/i.test(findings) || /Launch gate:\s*BLOCKED/i.test(findings)) {
320
+ return false;
321
+ }
322
+
323
+ const criticalCount = findings.match(/\|\s*Critical\s*\|\s*(\d+)\s*\|/i);
324
+ if (criticalCount) {
325
+ return Number(criticalCount[1]) === 0;
326
+ }
327
+
328
+ const criticalSections = findings.match(/^###\s+\[CRITICAL-[^\n]+(?:\n(?!###\s+\[).*)*/gim) || [];
329
+ if (criticalSections.length === 0) return true;
330
+
331
+ return criticalSections.every(section => (
332
+ /\*\*Status\*\*:\s*(Fixed|Accepted-Risk)/i.test(section)
333
+ || /Status:\s*(Fixed|Accepted-Risk)/i.test(section)
334
+ ));
335
+ }
336
+
261
337
  /**
262
338
  * Clear cached routing (for tests).
263
339
  */
@@ -275,5 +351,7 @@ module.exports = {
275
351
  getSpawnedAgents,
276
352
  suggestNext,
277
353
  evaluateCheck,
354
+ detectSafeSyncBlocker,
355
+ hasNoCriticalFindings,
278
356
  clearCache
279
357
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "godpowers",
3
- "version": "1.6.2",
3
+ "version": "1.6.4",
4
4
  "description": "AI-powered development system: 106 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"
@@ -10,6 +10,9 @@ prerequisites:
10
10
  - check: state:tier-2.build.status == done
11
11
  auto-complete: /god-build
12
12
  human-required: true
13
+ - check: safe-sync-clear
14
+ auto-complete: /god-reconcile Release Truth And Safe Sync
15
+ human-required: true
13
16
 
14
17
  execution:
15
18
  spawns: [god-deploy-engineer]
@@ -10,6 +10,9 @@ prerequisites:
10
10
  - check: state:tier-2.build.status == done
11
11
  auto-complete: /god-build
12
12
  human-required: true
13
+ - check: safe-sync-clear
14
+ auto-complete: /god-reconcile Release Truth And Safe Sync
15
+ human-required: true
13
16
 
14
17
  execution:
15
18
  spawns: [god-harden-auditor]
@@ -10,6 +10,9 @@ prerequisites:
10
10
  - check: state:tier-3.harden.status == done
11
11
  auto-complete: /god-harden
12
12
  human-required: true
13
+ - check: safe-sync-clear
14
+ auto-complete: /god-reconcile Release Truth And Safe Sync
15
+ human-required: true
13
16
  - check: no-critical-findings
14
17
  auto-complete: /god-harden
15
18
  human-required: true
@@ -10,6 +10,9 @@ prerequisites:
10
10
  - check: file:.godpowers/PROGRESS.md OR mode-A-greenfield
11
11
  auto-complete: /god-init
12
12
  human-required: true
13
+ - check: safe-sync-clear
14
+ auto-complete: /god-reconcile Release Truth And Safe Sync
15
+ human-required: true
13
16
 
14
17
  execution:
15
18
  spawns: [god-orchestrator]
@@ -10,6 +10,9 @@ prerequisites:
10
10
  - check: state:tier-3.deploy.status == done
11
11
  auto-complete: /god-deploy
12
12
  human-required: true
13
+ - check: safe-sync-clear
14
+ auto-complete: /god-reconcile Release Truth And Safe Sync
15
+ human-required: true
13
16
 
14
17
  execution:
15
18
  spawns: [god-observability-engineer]
@@ -48,7 +48,7 @@ GODPOWERS DOCTOR
48
48
  Install: claude (~/.claude/)
49
49
  [OK] 106 skills installed
50
50
  [OK] 39 agents installed
51
- [OK] VERSION matches (1.6.2)
51
+ [OK] VERSION matches (1.6.4)
52
52
  [WARN] routing/god-doctor.yaml exists but skill file did not until now
53
53
 
54
54
  Project: /Users/.../my-project/.godpowers/
@@ -109,6 +109,14 @@ You are receiving a /god-mode invocation. Your job is to spawn the
109
109
  - Instruction that brownfield and bluefield arcs run `/god-preflight`
110
110
  automatically when `.godpowers/preflight/PREFLIGHT.md` is absent.
111
111
  Greenfield arcs skip preflight unless the user explicitly requests it.
112
+ - Instruction to run routing prerequisites through `lib/router.js`
113
+ `checkPrerequisites` before every direct command dispatch. If
114
+ `safe-sync-clear` fails, run
115
+ `/god-reconcile Release Truth And Safe Sync` before deploy, observe,
116
+ harden, launch, broad migration, or resume work.
117
+ - Instruction that `--yolo` cannot bypass safe sync blockers or unresolved
118
+ Critical harden findings. These are release-truth gates, not preference
119
+ pauses.
112
120
 
113
121
  6. Keep the spawn payload private. Do not echo or summarize raw Task input,
114
122
  "Hard instructions", hidden orchestration rules, agent prompts, file
@@ -177,6 +185,10 @@ and logs decisions to `.godpowers/YOLO-DECISIONS.md`. Pillar sync proposals
177
185
  generated from durable Godpowers artifact changes are auto-applied in this
178
186
  mode and logged as YOLO decisions.
179
187
 
188
+ `--yolo` does not skip release-truth gates. If safe sync is unresolved, route
189
+ to `/god-reconcile Release Truth And Safe Sync`. If harden has unresolved
190
+ Critical findings, pause even under `--yolo`.
191
+
180
192
  For brownfield and bluefield, `--yolo` still runs `/god-preflight` first when
181
193
  `.godpowers/preflight/PREFLIGHT.md` is absent. The orchestrator then follows
182
194
  the preflight report's safest recommended route automatically, logging that
@@ -135,6 +135,7 @@ Use <runtimeRoot>/lib/router.js suggestNext(projectRoot) <- structural next
135
135
  For each tier in order:
136
136
  - Find first non-done sub-step
137
137
  - That's the suggested next command
138
+ - Before Tier 3, honor red gates such as unresolved safe sync
138
139
  |
139
140
  v
140
141
  If all tiers done:
@@ -232,6 +233,20 @@ Display both with: "Run in any order. /god-roadmap is critical-path."
232
233
  ### State drift (artifact missing but state says done)
233
234
  Detected by lib/state.detectDrift(). Suggest /god-repair.
234
235
 
236
+ ### Safe sync blocks deploy
237
+ If `.godpowers/sync/SAFE-SYNC-PLAN.md` exists, or `.godpowers/CHECKPOINT.md`
238
+ states that safe sync is a blocking red gate, suggest
239
+ `/god-reconcile Release Truth And Safe Sync` before `/god-deploy`,
240
+ `/god-observe`, `/god-harden`, or `/god-launch`.
241
+
242
+ The blocker is cleared when `.godpowers/sync/SAFE-SYNC-DONE.md` or
243
+ `.godpowers/sync/SAFE-SYNC-RESOLVED.md` exists.
244
+
245
+ ### Critical harden findings block launch
246
+ If `.godpowers/harden/FINDINGS.md` says the launch gate is blocked, or lists
247
+ unresolved Critical findings, `/god-launch` prerequisites fail through
248
+ `no-critical-findings`. This applies in default mode and `--yolo`.
249
+
235
250
  ### Steady state with multiple workflow options
236
251
  If lifecycle-phase = steady-state-active, route by user intent if provided
237
252
  (use the User Intent Map below).
@@ -14,7 +14,7 @@ Print version and a short capability summary.
14
14
  ## Output
15
15
 
16
16
  ```
17
- Godpowers v1.6.2
17
+ Godpowers v1.6.4
18
18
  Install: /Users/.../.claude/ (matches package.json)
19
19
  Surface: 106 skills, 39 agents, 13 workflows, 36 recipes
20
20
  Schema: intent.v1, state.v1, events.v1, workflow.v1, routing.v1, recipe.v1