godpowers 1.6.2 → 1.6.3

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,32 @@ 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.3] - 2026-05-16
9
+
10
+ Safe sync routing patch. Keeps the 1.6 command surface stable while making
11
+ `/god-next` and `/god-deploy` honor unresolved release sync blockers before
12
+ Tier 3 work.
13
+
14
+ ### Added
15
+ - Added router detection for `.godpowers/sync/SAFE-SYNC-PLAN.md`.
16
+ - Added router detection for checkpoint text that marks safe sync as a
17
+ blocking red gate.
18
+ - Added `safe-sync-clear` prerequisite support for routing files.
19
+ - Added regression tests for safe sync plan blockers, checkpoint blockers,
20
+ deploy prerequisites, and resolved safe sync plans.
21
+
22
+ ### Changed
23
+ - `/god-next` now suggests `/god-reconcile Release Truth And Safe Sync` before
24
+ `/god-deploy` when safe sync remains unresolved.
25
+ - `/god-deploy` now advertises the safe sync reconcile command as its
26
+ auto-complete route when the gate is red.
27
+
28
+ ### Guardrails
29
+ - This patch does not add slash commands, agents, workflows, recipes, schemas,
30
+ or public artifact formats.
31
+ - The blocker clears only when `.godpowers/sync/SAFE-SYNC-DONE.md` or
32
+ `.godpowers/sync/SAFE-SYNC-RESOLVED.md` exists.
33
+
8
34
  ## [1.6.2] - 2026-05-16
9
35
 
10
36
  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.3-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.3 hardens Godpowers routing around release truth and safe sync:
16
+ `/god-next` now routes unresolved safe-sync blockers to
17
+ `/god-reconcile Release Truth And Safe Sync` before deploy-era work, while
18
+ Codex installs keep 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,10 @@
1
- # Godpowers 1.6.2 Release
1
+ # Godpowers 1.6.3 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.3 hardens release-truth routing around the stable 1.6 surface.
6
+ The goal of this patch is to make `/god-next` and `/god-deploy` honor safe
7
+ sync blockers before Tier 3 work, without changing the public command surface.
9
8
 
10
9
  ## What is stable
11
10
 
@@ -15,6 +14,7 @@ metadata, without changing the public command surface.
15
14
  - 36 intent recipes
16
15
  - 15-runtime installer
17
16
  - Codex installs with 39 generated `god-*.toml` agent metadata files
17
+ - Safe-sync routing before deploy, observe, harden, or launch work
18
18
  - Native Pillars project context through `AGENTS.md` and `agents/*.md`
19
19
  - `.godpowers/` workflow state and artifact layout
20
20
  - Core schemas: intent, state, events, workflow, routing, recipes, extension
@@ -25,22 +25,20 @@ metadata, without changing the public command surface.
25
25
 
26
26
  ## What is new
27
27
 
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.
28
+ - `/god-next` detects `.godpowers/sync/SAFE-SYNC-PLAN.md` and routes to
29
+ `/god-reconcile Release Truth And Safe Sync` before `/god-deploy`.
30
+ - `/god-next` also detects checkpoint text that marks safe sync as a blocking
31
+ red gate before deploy.
32
+ - `/god-deploy` has a `safe-sync-clear` prerequisite with the same reconcile
33
+ route as its auto-complete command.
34
+ - Router tests now cover unresolved safe sync plans, checkpoint blockers,
35
+ deploy prerequisite failure, and resolved safe sync plans.
38
36
 
39
- ## What 1.6.2 means
37
+ ## What 1.6.3 means
40
38
 
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`.
39
+ Godpowers 1.6.3 does not expand the public command surface. It tightens the
40
+ runtime decision path so project truth can override the structural tier order
41
+ when a safe-sync gate is still red.
44
42
 
45
43
  The domain glossary remains preparation context. PRD, ARCH, ROADMAP, STACK,
46
44
  docs, and Pillars files still carry durable decisions for their own domains.
@@ -50,8 +48,8 @@ docs, and Pillars files still carry durable decisions for their own domains.
50
48
  During the 1.x stability window, do not add broad new command families, change
51
49
  schema formats, or rename public artifacts without evidence from real use.
52
50
 
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
51
+ The `v1.6.3` git tag points to the release commit that matches the npm
52
+ `godpowers@1.6.3` package. Public publishes should prefer the tag-triggered
55
53
  GitHub workflow so npm provenance, git history, and release notes stay aligned.
56
54
 
57
55
  Allowed changes:
package/lib/router.js CHANGED
@@ -14,6 +14,11 @@ 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
+ ];
17
22
 
18
23
  let _cache = null;
19
24
 
@@ -107,6 +112,10 @@ function evaluateCheck(check, projectRoot) {
107
112
  return actual === expected || actual === parseValue(expected);
108
113
  }
109
114
 
115
+ if (check === 'safe-sync-clear') {
116
+ return detectSafeSyncBlocker(projectRoot) === null;
117
+ }
118
+
110
119
  // mode-A-greenfield: pass-through hint, treat as satisfiable
111
120
  if (check.includes('greenfield') || check.includes('mode-A')) {
112
121
  return !fs.existsSync(path.join(projectRoot, '.godpowers'));
@@ -236,6 +245,9 @@ function suggestNext(projectRoot) {
236
245
  if (subStepStatus(tiers, 'tier-2', 'build') !== 'done')
237
246
  return { command: '/god-build', reason: 'Build pending', tier: 'tier-2' };
238
247
 
248
+ const safeSync = detectSafeSyncBlocker(projectRoot);
249
+ if (safeSync) return safeSync;
250
+
239
251
  // Tier 3
240
252
  if (subStepStatus(tiers, 'tier-3', 'deploy') !== 'done')
241
253
  return { command: '/god-deploy', reason: 'Deploy pipeline not set up', tier: 'tier-3' };
@@ -258,6 +270,39 @@ function subStepStatus(tiers, tierKey, subKey) {
258
270
  return tiers[tierKey] && tiers[tierKey][subKey] && tiers[tierKey][subKey].status;
259
271
  }
260
272
 
273
+ function detectSafeSyncBlocker(projectRoot) {
274
+ if (SAFE_SYNC_DONE_FILES.some(file => fs.existsSync(path.join(projectRoot, file)))) {
275
+ return null;
276
+ }
277
+
278
+ const planPath = path.join(projectRoot, SAFE_SYNC_PLAN);
279
+ if (fs.existsSync(planPath)) {
280
+ return safeSyncSuggestion(`Unresolved safe sync plan at ${SAFE_SYNC_PLAN}`, SAFE_SYNC_PLAN);
281
+ }
282
+
283
+ const checkpointPath = path.join(projectRoot, '.godpowers', 'CHECKPOINT.md');
284
+ if (!fs.existsSync(checkpointPath)) return null;
285
+
286
+ const checkpoint = fs.readFileSync(checkpointPath, 'utf8');
287
+ const mentionsSafeSync = /safe sync/i.test(checkpoint);
288
+ const isBlocking = /block|red gate|missing|unresolved|before deploy|blocks deploy/i.test(checkpoint);
289
+ if (mentionsSafeSync && isBlocking) {
290
+ return safeSyncSuggestion('Checkpoint says safe sync is blocking Tier 3 work', '.godpowers/CHECKPOINT.md');
291
+ }
292
+
293
+ return null;
294
+ }
295
+
296
+ function safeSyncSuggestion(reason, evidence) {
297
+ return {
298
+ command: '/god-reconcile Release Truth And Safe Sync',
299
+ reason,
300
+ tier: 'tier-0',
301
+ blocker: 'safe-sync',
302
+ evidence
303
+ };
304
+ }
305
+
261
306
  /**
262
307
  * Clear cached routing (for tests).
263
308
  */
@@ -275,5 +320,6 @@ module.exports = {
275
320
  getSpawnedAgents,
276
321
  suggestNext,
277
322
  evaluateCheck,
323
+ detectSafeSyncBlocker,
278
324
  clearCache
279
325
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "godpowers",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
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]
@@ -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.3)
52
52
  [WARN] routing/god-doctor.yaml exists but skill file did not until now
53
53
 
54
54
  Project: /Users/.../my-project/.godpowers/
@@ -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,15 @@ 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
+
235
245
  ### Steady state with multiple workflow options
236
246
  If lifecycle-phase = steady-state-active, route by user intent if provided
237
247
  (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.3
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