@garygentry/feature-forge 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -51,9 +51,11 @@ Claude Code users can alternatively install via the plugin marketplace:
51
51
 
52
52
  ## Notes
53
53
 
54
- The default loop runner is [**rauf**](https://github.com/garygentry/rauf). Until rauf is
55
- published to npm, the installer records the pin but cannot resolve it from the registry; use
56
- `--skip-rauf` to defer, or install rauf via its
54
+ The default loop runner is [**rauf**](https://github.com/garygentry/rauf), published as
55
+ [`@garygentry/rauf`](https://www.npmjs.com/package/@garygentry/rauf). The installer runs a
56
+ read-only resolvability preflight on the pin (`@garygentry/rauf@0.7.0`) and records it; pass
57
+ `--skip-rauf` to defer the check (e.g. offline installs). Install the rauf CLI itself with
58
+ `npx @garygentry/rauf` or its
57
59
  [binary script](https://github.com/garygentry/rauf#install). See the
58
60
  [feature-forge README](https://github.com/garygentry/feature-forge#readme) for the full
59
61
  pipeline documentation and per-agent setup guides.
@@ -147,8 +147,8 @@
147
147
  },
148
148
  "installHint": {
149
149
  "type": "string",
150
- "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned rauf@0.6.0 default). Or install/upgrade just the rauf CLI: `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
- "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 rauf@0.6.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."
150
+ "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.7.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.7.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
+ "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.7.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."
152
152
  },
153
153
  "schemaVersion": {
154
154
  "type": "string",
@@ -147,8 +147,8 @@
147
147
  },
148
148
  "installHint": {
149
149
  "type": "string",
150
- "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned rauf@0.6.0 default). Or install/upgrade just the rauf CLI: `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
- "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 rauf@0.6.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."
150
+ "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.7.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.7.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
+ "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.7.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."
152
152
  },
153
153
  "schemaVersion": {
154
154
  "type": "string",
@@ -147,8 +147,8 @@
147
147
  },
148
148
  "installHint": {
149
149
  "type": "string",
150
- "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned rauf@0.6.0 default). Or install/upgrade just the rauf CLI: `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
- "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 rauf@0.6.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."
150
+ "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.7.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.7.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
+ "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.7.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."
152
152
  },
153
153
  "schemaVersion": {
154
154
  "type": "string",
@@ -147,8 +147,8 @@
147
147
  },
148
148
  "installHint": {
149
149
  "type": "string",
150
- "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned rauf@0.6.0 default). Or install/upgrade just the rauf CLI: `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
- "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 rauf@0.6.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."
150
+ "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.7.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.7.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
+ "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.7.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."
152
152
  },
153
153
  "schemaVersion": {
154
154
  "type": "string",
@@ -147,8 +147,8 @@
147
147
  },
148
148
  "installHint": {
149
149
  "type": "string",
150
- "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned rauf@0.6.0 default). Or install/upgrade just the rauf CLI: `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
- "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 rauf@0.6.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."
150
+ "default": "Provision rauf for a multi-agent setup with the cross-agent installer: `npx @garygentry/feature-forge install` (records the pinned @garygentry/rauf@0.7.0 default). Or install/upgrade just the rauf CLI: `npx @garygentry/rauf@0.7.0 --version`, or `curl -fsSL https://raw.githubusercontent.com/garygentry/rauf/main/scripts/install-binary.sh | bash`.",
151
+ "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.7.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."
152
152
  },
153
153
  "schemaVersion": {
154
154
  "type": "string",
@@ -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. "rauf@0.6.0"); `null` when `--skip-rauf` (spec 06). */
31
+ /** Recorded pinned rauf coordinate (e.g. "@garygentry/rauf@0.7.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
@@ -17,26 +17,27 @@ import { type Result } from "./types.js";
17
17
  * downstream `forge-rauf-loop-default` read the same value, and recorded into each manifest
18
18
  * as `InstallManifest.raufPin` (05-manifest-and-uninstall.md).
19
19
  *
20
- * Shape: `<name>@<version>` — UNSCOPED `rauf`. Advanced on each feature-forge release to a new
21
- * known-compatible rauf (REQ-RAUF-03). The current rauf version is 0.6.0.
20
+ * Shape: `<name>@<version>` — the SCOPED package `@garygentry/rauf` (the unscoped `rauf` name is
21
+ * blocked by npm's similarity filter). Advanced on each feature-forge release to a new
22
+ * known-compatible rauf (REQ-RAUF-03). The current rauf version is 0.7.0.
22
23
  *
23
- * Correctable config (OQ-C): the FINAL published coordinate is confirmed by `packaging-docs-ci`
24
- * when rauf's publish path is stood up. Until then this resolves to a package that does not yet
25
- * exist on npm (IR-2), so the preflight WILL fail — the known, designed failure mode, not a bug.
24
+ * rauf is now PUBLISHED (rauf#28): `@garygentry/rauf@0.7.0` resolves from the npm registry, so the
25
+ * preflight below passes by default. (Historically this pin pointed at an unpublished package and
26
+ * the preflight was a designed-to-fail check see the `--skip-rauf` escape hatch.)
26
27
  */
27
- export declare const RAUF_PIN = "rauf@0.6.0";
28
+ export declare const RAUF_PIN = "@garygentry/rauf@0.7.0";
28
29
  /**
29
30
  * An injectable, READ-ONLY registry query (D1). Given a coordinate `name@version`, returns the
30
31
  * resolved version string on success, or an `InstallerError` if it is not resolvable.
31
32
  *
32
33
  * Injectable so tests mock the registry with NO real network: the default implementation
33
34
  * (`defaultRegistryQuery`) shells `npm view <coordinate> version`; a test passes a stub
34
- * returning `ok("0.6.0")` or `err({ code: "RAUF_UNRESOLVABLE", ... })`.
35
+ * returning `ok("0.7.0")` or `err({ code: "RAUF_UNRESOLVABLE", ... })`.
35
36
  *
36
37
  * Contract: the query MUST be read-only — it MUST NOT install, MUST NOT mutate global npm
37
38
  * state, and MUST NOT execute rauf. `npm view` satisfies this (it only reads registry metadata).
38
39
  *
39
- * @param coordinate - the `name@version` to resolve, e.g. "rauf@0.6.0"
40
+ * @param coordinate - the `name@version` to resolve, e.g. "@garygentry/rauf@0.7.0"
40
41
  * @returns Result<string> — the resolved version on success; RAUF_UNRESOLVABLE on failure.
41
42
  */
42
43
  export type RegistryQuery = (coordinate: string) => Result<string>;
@@ -44,12 +45,12 @@ export type RegistryQuery = (coordinate: string) => Result<string>;
44
45
  export interface PreflightRaufOpts {
45
46
  /**
46
47
  * When true (the `--skip-rauf` flag), skip the preflight entirely: perform NO network call
47
- * and return `{ raufPin: null }`. For environments that knowingly defer rauf (e.g. CI
48
- * dry-runs while rauf is unpublished IR-2).
48
+ * and return `{ raufPin: null }`. For environments that knowingly defer rauf (e.g. offline
49
+ * installs or CI dry-runs that won't use the default loop).
49
50
  */
50
51
  readonly skip?: boolean;
51
52
  /**
52
- * The registry query to use. Default: `defaultRegistryQuery` (`npm view rauf@<pin> version`
53
+ * The registry query to use. Default: `defaultRegistryQuery` (`npm view <RAUF_PIN> version`
53
54
  * via node:child_process). Tests inject a stub so no real network call is made.
54
55
  */
55
56
  readonly query?: RegistryQuery;
@@ -61,7 +62,7 @@ export interface PreflightRaufOpts {
61
62
  * - `opts.skip` (the `--skip-rauf` flag) ⇒ return `ok({ raufPin: null })` immediately, with NO
62
63
  * network call.
63
64
  * - otherwise ⇒ run a READ-ONLY registry resolvability check on `RAUF_PIN` (default query:
64
- * `npm view rauf@<pin> version`). No install, no global-npm mutation, no execution of rauf.
65
+ * `npm view <RAUF_PIN> version`). No install, no global-npm mutation, no execution of rauf.
65
66
  * · resolvable ⇒ return `ok({ raufPin: RAUF_PIN })` — the value the manifest records.
66
67
  * · unresolvable ⇒ return `err(<RAUF_UNRESOLVABLE>)` carrying the FIXED message (§6).
67
68
  *
package/dist/rauf.js CHANGED
@@ -18,14 +18,15 @@ import { err, ok } from "./types.js";
18
18
  * downstream `forge-rauf-loop-default` read the same value, and recorded into each manifest
19
19
  * as `InstallManifest.raufPin` (05-manifest-and-uninstall.md).
20
20
  *
21
- * Shape: `<name>@<version>` — UNSCOPED `rauf`. Advanced on each feature-forge release to a new
22
- * known-compatible rauf (REQ-RAUF-03). The current rauf version is 0.6.0.
21
+ * Shape: `<name>@<version>` — the SCOPED package `@garygentry/rauf` (the unscoped `rauf` name is
22
+ * blocked by npm's similarity filter). Advanced on each feature-forge release to a new
23
+ * known-compatible rauf (REQ-RAUF-03). The current rauf version is 0.7.0.
23
24
  *
24
- * Correctable config (OQ-C): the FINAL published coordinate is confirmed by `packaging-docs-ci`
25
- * when rauf's publish path is stood up. Until then this resolves to a package that does not yet
26
- * exist on npm (IR-2), so the preflight WILL fail — the known, designed failure mode, not a bug.
25
+ * rauf is now PUBLISHED (rauf#28): `@garygentry/rauf@0.7.0` resolves from the npm registry, so the
26
+ * preflight below passes by default. (Historically this pin pointed at an unpublished package and
27
+ * the preflight was a designed-to-fail check see the `--skip-rauf` escape hatch.)
27
28
  */
28
- export const RAUF_PIN = "rauf@0.6.0";
29
+ export const RAUF_PIN = "@garygentry/rauf@0.7.0";
29
30
  /**
30
31
  * Resolvability preflight for the pinned default loop runner (D1; REQ-RAUF-01/02/03, OQ-1).
31
32
  *
@@ -33,7 +34,7 @@ export const RAUF_PIN = "rauf@0.6.0";
33
34
  * - `opts.skip` (the `--skip-rauf` flag) ⇒ return `ok({ raufPin: null })` immediately, with NO
34
35
  * network call.
35
36
  * - otherwise ⇒ run a READ-ONLY registry resolvability check on `RAUF_PIN` (default query:
36
- * `npm view rauf@<pin> version`). No install, no global-npm mutation, no execution of rauf.
37
+ * `npm view <RAUF_PIN> version`). No install, no global-npm mutation, no execution of rauf.
37
38
  * · resolvable ⇒ return `ok({ raufPin: RAUF_PIN })` — the value the manifest records.
38
39
  * · unresolvable ⇒ return `err(<RAUF_UNRESOLVABLE>)` carrying the FIXED message (§6).
39
40
  *
@@ -108,11 +109,13 @@ function raufUnresolvableError() {
108
109
  message: "pinned default loop runner `" +
109
110
  RAUF_PIN +
110
111
  "` is not resolvable from the npm registry. Network is required at " +
111
- "install; if rauf is not yet published this is the known cross-repo " +
112
- "prerequisite (see packaging-docs-ci). Skills were still installed; " +
113
- "the default loop will be unavailable until rauf publishes.",
112
+ "install; this usually means no network access or a registry that cannot " +
113
+ "see the pin. Skills were still installed; the default loop will be " +
114
+ "unavailable until the pin resolves.",
114
115
  remedy: "Ensure network access and that `" +
115
116
  RAUF_PIN +
116
- "` is published, or re-run with `--skip-rauf` to defer the default loop.",
117
+ "` is resolvable (`npm view " +
118
+ RAUF_PIN +
119
+ " version`), or re-run with `--skip-rauf` to defer the default loop.",
117
120
  };
118
121
  }
package/dist/types.d.ts CHANGED
@@ -124,7 +124,7 @@ export interface InstallManifest {
124
124
  readonly featureForgeVersion: string | null;
125
125
  /** SHA-256 over the source bundle's canonical (sorted-path) file set — drift anchor (OQ-4, spec 03). */
126
126
  readonly sourceHash: string;
127
- /** Pinned rauf coordinate recorded at install, e.g. "rauf@0.6.0"; `null` if `--skip-rauf` (spec 06). */
127
+ /** Pinned rauf coordinate recorded at install, e.g. "@garygentry/rauf@0.7.0"; `null` if `--skip-rauf` (spec 06). */
128
128
  readonly raufPin: string | null;
129
129
  /** ISO-8601 timestamps. */
130
130
  readonly installedAt: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@garygentry/feature-forge",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Cross-agent installer for the feature-forge skill suite — installs the canonical forge pipeline into Claude, Codex, Copilot, Cursor, or Gemini.",
5
5
  "license": "MIT",
6
6
  "type": "module",