@garygentry/feature-forge 0.3.4 → 0.3.5
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/README.md +1 -1
- package/adapters/claude/.feature-forge-bundle.json +1 -1
- package/adapters/claude/references/forge-config-schema.json +2 -2
- package/adapters/claude/scripts/forge-session.py +27 -6
- package/adapters/claude/skills/forge-guide/references/forge-config-schema.json +2 -2
- package/adapters/codex/.feature-forge-bundle.json +1 -1
- package/adapters/codex/references/forge-config-schema.json +2 -2
- package/adapters/codex/scripts/forge-session.py +27 -6
- package/adapters/codex/skills/forge-guide/references/forge-config-schema.json +2 -2
- package/adapters/copilot/.feature-forge-bundle.json +1 -1
- package/adapters/copilot/references/forge-config-schema.json +2 -2
- package/adapters/copilot/scripts/forge-session.py +27 -6
- package/adapters/copilot/skills/forge-guide/references/forge-config-schema.json +2 -2
- package/adapters/cursor/.feature-forge-bundle.json +1 -1
- package/adapters/cursor/references/forge-config-schema.json +2 -2
- package/adapters/cursor/scripts/forge-session.py +27 -6
- package/adapters/cursor/skills/forge-guide/references/forge-config-schema.json +2 -2
- package/adapters/gemini/.feature-forge-bundle.json +1 -1
- package/adapters/gemini/gemini-extension.json +1 -1
- package/adapters/gemini/references/forge-config-schema.json +2 -2
- package/adapters/gemini/scripts/forge-session.py +27 -6
- package/adapters/gemini/skills/forge-guide/references/forge-config-schema.json +2 -2
- package/adapters/pi/.feature-forge-bundle.json +1 -1
- package/adapters/pi/references/forge-config-schema.json +2 -2
- package/adapters/pi/scripts/forge-session.py +27 -6
- package/adapters/pi/skills/forge-guide/references/forge-config-schema.json +2 -2
- package/dist/manifest.d.ts +1 -1
- package/dist/rauf.d.ts +3 -3
- package/dist/rauf.js +2 -2
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -74,7 +74,7 @@ Claude Code users can alternatively install via the plugin marketplace:
|
|
|
74
74
|
|
|
75
75
|
The default loop runner is [**rauf**](https://github.com/garygentry/rauf), published as
|
|
76
76
|
[`@garygentry/rauf`](https://www.npmjs.com/package/@garygentry/rauf). The installer runs a
|
|
77
|
-
read-only resolvability preflight on the pin (`@garygentry/rauf@0.
|
|
77
|
+
read-only resolvability preflight on the pin (`@garygentry/rauf@0.14.0`) and records it; pass
|
|
78
78
|
`--skip-rauf` to defer the check (e.g. offline installs). Install the rauf CLI itself with
|
|
79
79
|
`npx @garygentry/rauf` or its
|
|
80
80
|
[binary script](https://github.com/garygentry/rauf#install). See the
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -4232,12 +4232,33 @@ def stage_exit(
|
|
|
4232
4232
|
# hands off the same way the epic's own exit does. Identical to the previous
|
|
4233
4233
|
# behavior for every production exit, where `route_stage is stage`.
|
|
4234
4234
|
if route_stage == "forge-0-epic" and next_feature is None:
|
|
4235
|
-
#
|
|
4236
|
-
#
|
|
4237
|
-
#
|
|
4238
|
-
#
|
|
4239
|
-
|
|
4240
|
-
|
|
4235
|
+
# A branch exit (verify/fix) that served forge-0-epic cannot carry
|
|
4236
|
+
# --next-feature (the CLI rejects it for non-epic stages), so the member
|
|
4237
|
+
# must be resolved HERE from live epic state. Creation-mode exits pass
|
|
4238
|
+
# --next-feature and skip this block entirely (#230).
|
|
4239
|
+
try:
|
|
4240
|
+
status = _render_status(specs_dir, feature)
|
|
4241
|
+
actionable = status["actionable"]
|
|
4242
|
+
if actionable:
|
|
4243
|
+
resolved_member = actionable[0]
|
|
4244
|
+
ms, mr = _epic_member_state(specs_dir, feature, resolved_member)
|
|
4245
|
+
if mr is not None:
|
|
4246
|
+
next_stage_id = "forge-1-prd"
|
|
4247
|
+
next_command = f"/feature-forge:forge-1-prd {resolved_member}"
|
|
4248
|
+
else:
|
|
4249
|
+
member_next = next_stage(ms)
|
|
4250
|
+
if member_next is None:
|
|
4251
|
+
next_stage_id = None
|
|
4252
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4253
|
+
else:
|
|
4254
|
+
next_stage_id = member_next
|
|
4255
|
+
next_command = f"/feature-forge:{member_next} {resolved_member}"
|
|
4256
|
+
else:
|
|
4257
|
+
next_stage_id = None
|
|
4258
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4259
|
+
except UsageError:
|
|
4260
|
+
next_stage_id = None
|
|
4261
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4241
4262
|
else:
|
|
4242
4263
|
next_arg = next_feature or feature
|
|
4243
4264
|
next_command = (
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -4232,12 +4232,33 @@ def stage_exit(
|
|
|
4232
4232
|
# hands off the same way the epic's own exit does. Identical to the previous
|
|
4233
4233
|
# behavior for every production exit, where `route_stage is stage`.
|
|
4234
4234
|
if route_stage == "forge-0-epic" and next_feature is None:
|
|
4235
|
-
#
|
|
4236
|
-
#
|
|
4237
|
-
#
|
|
4238
|
-
#
|
|
4239
|
-
|
|
4240
|
-
|
|
4235
|
+
# A branch exit (verify/fix) that served forge-0-epic cannot carry
|
|
4236
|
+
# --next-feature (the CLI rejects it for non-epic stages), so the member
|
|
4237
|
+
# must be resolved HERE from live epic state. Creation-mode exits pass
|
|
4238
|
+
# --next-feature and skip this block entirely (#230).
|
|
4239
|
+
try:
|
|
4240
|
+
status = _render_status(specs_dir, feature)
|
|
4241
|
+
actionable = status["actionable"]
|
|
4242
|
+
if actionable:
|
|
4243
|
+
resolved_member = actionable[0]
|
|
4244
|
+
ms, mr = _epic_member_state(specs_dir, feature, resolved_member)
|
|
4245
|
+
if mr is not None:
|
|
4246
|
+
next_stage_id = "forge-1-prd"
|
|
4247
|
+
next_command = f"/feature-forge:forge-1-prd {resolved_member}"
|
|
4248
|
+
else:
|
|
4249
|
+
member_next = next_stage(ms)
|
|
4250
|
+
if member_next is None:
|
|
4251
|
+
next_stage_id = None
|
|
4252
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4253
|
+
else:
|
|
4254
|
+
next_stage_id = member_next
|
|
4255
|
+
next_command = f"/feature-forge:{member_next} {resolved_member}"
|
|
4256
|
+
else:
|
|
4257
|
+
next_stage_id = None
|
|
4258
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4259
|
+
except UsageError:
|
|
4260
|
+
next_stage_id = None
|
|
4261
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4241
4262
|
else:
|
|
4242
4263
|
next_arg = next_feature or feature
|
|
4243
4264
|
next_command = (
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -4232,12 +4232,33 @@ def stage_exit(
|
|
|
4232
4232
|
# hands off the same way the epic's own exit does. Identical to the previous
|
|
4233
4233
|
# behavior for every production exit, where `route_stage is stage`.
|
|
4234
4234
|
if route_stage == "forge-0-epic" and next_feature is None:
|
|
4235
|
-
#
|
|
4236
|
-
#
|
|
4237
|
-
#
|
|
4238
|
-
#
|
|
4239
|
-
|
|
4240
|
-
|
|
4235
|
+
# A branch exit (verify/fix) that served forge-0-epic cannot carry
|
|
4236
|
+
# --next-feature (the CLI rejects it for non-epic stages), so the member
|
|
4237
|
+
# must be resolved HERE from live epic state. Creation-mode exits pass
|
|
4238
|
+
# --next-feature and skip this block entirely (#230).
|
|
4239
|
+
try:
|
|
4240
|
+
status = _render_status(specs_dir, feature)
|
|
4241
|
+
actionable = status["actionable"]
|
|
4242
|
+
if actionable:
|
|
4243
|
+
resolved_member = actionable[0]
|
|
4244
|
+
ms, mr = _epic_member_state(specs_dir, feature, resolved_member)
|
|
4245
|
+
if mr is not None:
|
|
4246
|
+
next_stage_id = "forge-1-prd"
|
|
4247
|
+
next_command = f"/feature-forge:forge-1-prd {resolved_member}"
|
|
4248
|
+
else:
|
|
4249
|
+
member_next = next_stage(ms)
|
|
4250
|
+
if member_next is None:
|
|
4251
|
+
next_stage_id = None
|
|
4252
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4253
|
+
else:
|
|
4254
|
+
next_stage_id = member_next
|
|
4255
|
+
next_command = f"/feature-forge:{member_next} {resolved_member}"
|
|
4256
|
+
else:
|
|
4257
|
+
next_stage_id = None
|
|
4258
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4259
|
+
except UsageError:
|
|
4260
|
+
next_stage_id = None
|
|
4261
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4241
4262
|
else:
|
|
4242
4263
|
next_arg = next_feature or feature
|
|
4243
4264
|
next_command = (
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -4232,12 +4232,33 @@ def stage_exit(
|
|
|
4232
4232
|
# hands off the same way the epic's own exit does. Identical to the previous
|
|
4233
4233
|
# behavior for every production exit, where `route_stage is stage`.
|
|
4234
4234
|
if route_stage == "forge-0-epic" and next_feature is None:
|
|
4235
|
-
#
|
|
4236
|
-
#
|
|
4237
|
-
#
|
|
4238
|
-
#
|
|
4239
|
-
|
|
4240
|
-
|
|
4235
|
+
# A branch exit (verify/fix) that served forge-0-epic cannot carry
|
|
4236
|
+
# --next-feature (the CLI rejects it for non-epic stages), so the member
|
|
4237
|
+
# must be resolved HERE from live epic state. Creation-mode exits pass
|
|
4238
|
+
# --next-feature and skip this block entirely (#230).
|
|
4239
|
+
try:
|
|
4240
|
+
status = _render_status(specs_dir, feature)
|
|
4241
|
+
actionable = status["actionable"]
|
|
4242
|
+
if actionable:
|
|
4243
|
+
resolved_member = actionable[0]
|
|
4244
|
+
ms, mr = _epic_member_state(specs_dir, feature, resolved_member)
|
|
4245
|
+
if mr is not None:
|
|
4246
|
+
next_stage_id = "forge-1-prd"
|
|
4247
|
+
next_command = f"/feature-forge:forge-1-prd {resolved_member}"
|
|
4248
|
+
else:
|
|
4249
|
+
member_next = next_stage(ms)
|
|
4250
|
+
if member_next is None:
|
|
4251
|
+
next_stage_id = None
|
|
4252
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4253
|
+
else:
|
|
4254
|
+
next_stage_id = member_next
|
|
4255
|
+
next_command = f"/feature-forge:{member_next} {resolved_member}"
|
|
4256
|
+
else:
|
|
4257
|
+
next_stage_id = None
|
|
4258
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4259
|
+
except UsageError:
|
|
4260
|
+
next_stage_id = None
|
|
4261
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4241
4262
|
else:
|
|
4242
4263
|
next_arg = next_feature or feature
|
|
4243
4264
|
next_command = (
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -4232,12 +4232,33 @@ def stage_exit(
|
|
|
4232
4232
|
# hands off the same way the epic's own exit does. Identical to the previous
|
|
4233
4233
|
# behavior for every production exit, where `route_stage is stage`.
|
|
4234
4234
|
if route_stage == "forge-0-epic" and next_feature is None:
|
|
4235
|
-
#
|
|
4236
|
-
#
|
|
4237
|
-
#
|
|
4238
|
-
#
|
|
4239
|
-
|
|
4240
|
-
|
|
4235
|
+
# A branch exit (verify/fix) that served forge-0-epic cannot carry
|
|
4236
|
+
# --next-feature (the CLI rejects it for non-epic stages), so the member
|
|
4237
|
+
# must be resolved HERE from live epic state. Creation-mode exits pass
|
|
4238
|
+
# --next-feature and skip this block entirely (#230).
|
|
4239
|
+
try:
|
|
4240
|
+
status = _render_status(specs_dir, feature)
|
|
4241
|
+
actionable = status["actionable"]
|
|
4242
|
+
if actionable:
|
|
4243
|
+
resolved_member = actionable[0]
|
|
4244
|
+
ms, mr = _epic_member_state(specs_dir, feature, resolved_member)
|
|
4245
|
+
if mr is not None:
|
|
4246
|
+
next_stage_id = "forge-1-prd"
|
|
4247
|
+
next_command = f"/feature-forge:forge-1-prd {resolved_member}"
|
|
4248
|
+
else:
|
|
4249
|
+
member_next = next_stage(ms)
|
|
4250
|
+
if member_next is None:
|
|
4251
|
+
next_stage_id = None
|
|
4252
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4253
|
+
else:
|
|
4254
|
+
next_stage_id = member_next
|
|
4255
|
+
next_command = f"/feature-forge:{member_next} {resolved_member}"
|
|
4256
|
+
else:
|
|
4257
|
+
next_stage_id = None
|
|
4258
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4259
|
+
except UsageError:
|
|
4260
|
+
next_stage_id = None
|
|
4261
|
+
next_command = f"/feature-forge:forge-0-epic {feature}"
|
|
4241
4262
|
else:
|
|
4242
4263
|
next_arg = next_feature or feature
|
|
4243
4264
|
next_command = (
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
|
@@ -4232,12 +4232,33 @@ def stage_exit(
|
|
|
4232
4232
|
# hands off the same way the epic's own exit does. Identical to the previous
|
|
4233
4233
|
# behavior for every production exit, where `route_stage is stage`.
|
|
4234
4234
|
if route_stage == "forge-0-epic" and next_feature is None:
|
|
4235
|
-
#
|
|
4236
|
-
#
|
|
4237
|
-
#
|
|
4238
|
-
#
|
|
4239
|
-
|
|
4240
|
-
|
|
4235
|
+
# A branch exit (verify/fix) that served forge-0-epic cannot carry
|
|
4236
|
+
# --next-feature (the CLI rejects it for non-epic stages), so the member
|
|
4237
|
+
# must be resolved HERE from live epic state. Creation-mode exits pass
|
|
4238
|
+
# --next-feature and skip this block entirely (#230).
|
|
4239
|
+
try:
|
|
4240
|
+
status = _render_status(specs_dir, feature)
|
|
4241
|
+
actionable = status["actionable"]
|
|
4242
|
+
if actionable:
|
|
4243
|
+
resolved_member = actionable[0]
|
|
4244
|
+
ms, mr = _epic_member_state(specs_dir, feature, resolved_member)
|
|
4245
|
+
if mr is not None:
|
|
4246
|
+
next_stage_id = "forge-1-prd"
|
|
4247
|
+
next_command = f"/skill:forge-1-prd {resolved_member}"
|
|
4248
|
+
else:
|
|
4249
|
+
member_next = next_stage(ms)
|
|
4250
|
+
if member_next is None:
|
|
4251
|
+
next_stage_id = None
|
|
4252
|
+
next_command = f"/skill:forge-0-epic {feature}"
|
|
4253
|
+
else:
|
|
4254
|
+
next_stage_id = member_next
|
|
4255
|
+
next_command = f"/skill:{member_next} {resolved_member}"
|
|
4256
|
+
else:
|
|
4257
|
+
next_stage_id = None
|
|
4258
|
+
next_command = f"/skill:forge-0-epic {feature}"
|
|
4259
|
+
except UsageError:
|
|
4260
|
+
next_stage_id = None
|
|
4261
|
+
next_command = f"/skill:forge-0-epic {feature}"
|
|
4241
4262
|
else:
|
|
4242
4263
|
next_arg = next_feature or feature
|
|
4243
4264
|
next_command = (
|
|
@@ -235,8 +235,8 @@
|
|
|
235
235
|
},
|
|
236
236
|
"installHint": {
|
|
237
237
|
"type": "string",
|
|
238
|
-
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.
|
|
239
|
-
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.
|
|
238
|
+
"default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.14.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.14.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
|
|
239
|
+
"description": "Shown when the runner BINARY is missing or too old (version gate fails, minRunnerVersion floor) — how to obtain/upgrade the CLI itself. Names two distinct binary-provisioning paths: (1) the cross-agent installer (`npx @garygentry/feature-forge install`, the multi-agent provisioning path that pins @garygentry/rauf@0.14.0), and (2) the direct rauf-CLI install/upgrade one-liner. Distinct from setupHint (which installs per-project artifacts); a version-gate failure is ALWAYS this hint, never setupHint."
|
|
240
240
|
},
|
|
241
241
|
"schemaVersion": {
|
|
242
242
|
"type": "string",
|
package/dist/manifest.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export interface BuildManifestArgs {
|
|
|
28
28
|
readonly skills: readonly string[];
|
|
29
29
|
/** SHA-256 over the source bundle's canonical (sorted-path) file set — drift anchor (spec 03). */
|
|
30
30
|
readonly sourceHash: string;
|
|
31
|
-
/** Recorded pinned rauf coordinate (e.g. "@garygentry/rauf@0.
|
|
31
|
+
/** Recorded pinned rauf coordinate (e.g. "@garygentry/rauf@0.14.0"); `null` when `--skip-rauf` (spec 06). */
|
|
32
32
|
readonly raufPin: string | null;
|
|
33
33
|
/** Symlink mode only: the source bundle the namespace dir links to (REQ-SAFE-02). */
|
|
34
34
|
readonly link?: {
|
package/dist/rauf.d.ts
CHANGED
|
@@ -21,11 +21,11 @@ import { type Result } from "./types.js";
|
|
|
21
21
|
* blocked by npm's similarity filter). Advanced on each feature-forge release to a new
|
|
22
22
|
* known-compatible rauf (REQ-RAUF-03). The current rauf version is 0.13.0.
|
|
23
23
|
*
|
|
24
|
-
* rauf is now PUBLISHED (rauf#28): `@garygentry/rauf@0.
|
|
24
|
+
* rauf is now PUBLISHED (rauf#28): `@garygentry/rauf@0.14.0` resolves from the npm registry, so the
|
|
25
25
|
* preflight below passes by default. (Historically this pin pointed at an unpublished package and
|
|
26
26
|
* the preflight was a designed-to-fail check — see the `--skip-rauf` escape hatch.)
|
|
27
27
|
*/
|
|
28
|
-
export declare const RAUF_PIN = "@garygentry/rauf@0.
|
|
28
|
+
export declare const RAUF_PIN = "@garygentry/rauf@0.14.0";
|
|
29
29
|
/**
|
|
30
30
|
* An injectable, READ-ONLY registry query (D1). Given a coordinate `name@version`, returns the
|
|
31
31
|
* resolved version string on success, or an `InstallerError` if it is not resolvable.
|
|
@@ -37,7 +37,7 @@ export declare const RAUF_PIN = "@garygentry/rauf@0.13.0";
|
|
|
37
37
|
* Contract: the query MUST be read-only — it MUST NOT install, MUST NOT mutate global npm
|
|
38
38
|
* state, and MUST NOT execute rauf. `npm view` satisfies this (it only reads registry metadata).
|
|
39
39
|
*
|
|
40
|
-
* @param coordinate - the `name@version` to resolve, e.g. "@garygentry/rauf@0.
|
|
40
|
+
* @param coordinate - the `name@version` to resolve, e.g. "@garygentry/rauf@0.14.0"
|
|
41
41
|
* @returns Result<string> — the resolved version on success; RAUF_UNRESOLVABLE on failure.
|
|
42
42
|
*/
|
|
43
43
|
export type RegistryQuery = (coordinate: string) => Result<string>;
|
package/dist/rauf.js
CHANGED
|
@@ -22,11 +22,11 @@ import { err, ok } from "./types.js";
|
|
|
22
22
|
* blocked by npm's similarity filter). Advanced on each feature-forge release to a new
|
|
23
23
|
* known-compatible rauf (REQ-RAUF-03). The current rauf version is 0.13.0.
|
|
24
24
|
*
|
|
25
|
-
* rauf is now PUBLISHED (rauf#28): `@garygentry/rauf@0.
|
|
25
|
+
* rauf is now PUBLISHED (rauf#28): `@garygentry/rauf@0.14.0` resolves from the npm registry, so the
|
|
26
26
|
* preflight below passes by default. (Historically this pin pointed at an unpublished package and
|
|
27
27
|
* the preflight was a designed-to-fail check — see the `--skip-rauf` escape hatch.)
|
|
28
28
|
*/
|
|
29
|
-
export const RAUF_PIN = "@garygentry/rauf@0.
|
|
29
|
+
export const RAUF_PIN = "@garygentry/rauf@0.14.0";
|
|
30
30
|
/**
|
|
31
31
|
* Resolvability preflight for the pinned default loop runner (D1; REQ-RAUF-01/02/03, OQ-1).
|
|
32
32
|
*
|
package/dist/types.d.ts
CHANGED
|
@@ -239,7 +239,7 @@ export interface InstallManifest {
|
|
|
239
239
|
readonly featureForgeVersion: string | null;
|
|
240
240
|
/** SHA-256 over the source bundle's canonical (sorted-path) file set — drift anchor (OQ-4, spec 03). */
|
|
241
241
|
readonly sourceHash: string;
|
|
242
|
-
/** Pinned rauf coordinate recorded at install, e.g. "@garygentry/rauf@0.
|
|
242
|
+
/** Pinned rauf coordinate recorded at install, e.g. "@garygentry/rauf@0.14.0"; `null` if `--skip-rauf` (spec 06). */
|
|
243
243
|
readonly raufPin: string | null;
|
|
244
244
|
/** ISO-8601 timestamps. */
|
|
245
245
|
readonly installedAt: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@garygentry/feature-forge",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "Cross-agent installer for the feature-forge skill suite — installs the canonical forge pipeline into Claude, Codex, Copilot, Cursor, Gemini, or Pi.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|