gm-skill 2.0.1549 → 2.0.1550

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/AGENTS.md CHANGED
@@ -22,7 +22,7 @@ Skills encode environment-specific constraints that override general knowledge.
22
22
 
23
23
  # Architecture & Philosophy
24
24
 
25
- This repo IS the published `gm-skill` npm package. The repo root is the package root, no factory, no build step that generates a separate output dir. `skills/gm-skill/SKILL.md` is the ~12-line entry point; every possible phase prose and orchestration logic lives in rs-plugkit and is served on demand via the `instruction` verb.
25
+ This repo IS the published `gm-skill` npm package. The repo root is the package root, no factory, no build step that generates a separate output dir. `skills/gm-skill/SKILL.md` is the ~12-line entry point; orchestration logic lives in rs-plugkit and is served on demand via the `instruction` verb. Agent-facing prose (phase instruction text + gate/residual messages) is externalized to an editable bundle in `gm-plugkit/instructions/`, shipped by gm-plugkit and provisioned into `.gm/instructions/<key>.md`; the wasm resolver (`rs-plugkit/src/prose.rs`) serves the bundle entry per key and falls back to the compiled `const` when absent — so editing prose is a gm-plugkit republish with no Rust rebuild, and consumers without the bundle are unaffected. Detail in rs-learn (`recall: string-externalization project`).
26
26
 
27
27
  ## WASM-only
28
28
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.1549",
3
+ "version": "2.0.1550",
4
4
  "description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform binary, verifies SHA256, and starts the spool watcher daemon. Includes plugkit-wasm-wrapper for WASM-based spool watching.",
5
5
  "main": "index.js",
6
6
  "bin": {
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.1549",
3
+ "version": "2.0.1550",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.1549",
3
+ "version": "2.0.1550",
4
4
  "description": "Canonical universal harness — AI-native software engineering via skill-driven orchestration; bootstraps plugkit for task execution and session isolation. Install in any AI coding agent host.",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -0,0 +1,28 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import process from 'node:process';
4
+
5
+ const root = path.resolve(path.dirname(new URL(import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1')), '..');
6
+ const bundleDir = path.join(root, 'gm-plugkit', 'instructions');
7
+
8
+ const KEYS = [
9
+ 'entry', 'plan', 'execute', 'emit', 'verify', 'update_docs', 'browser',
10
+ 'gates/long-gap-no-instruction',
11
+ 'residual/prd-open', 'residual/browser-open', 'residual/tasks-running',
12
+ 'residual/dirty-tree', 'residual/imperative',
13
+ ];
14
+
15
+ const missing = [];
16
+ const empty = [];
17
+ for (const key of KEYS) {
18
+ const fp = path.join(bundleDir, `${key}.md`);
19
+ if (!fs.existsSync(fp)) { missing.push(key); continue; }
20
+ if (fs.readFileSync(fp, 'utf8').trim() === '') empty.push(key);
21
+ }
22
+
23
+ if (missing.length || empty.length) {
24
+ if (missing.length) console.error(`prose bundle missing entries: ${missing.join(', ')}`);
25
+ if (empty.length) console.error(`prose bundle empty entries: ${empty.join(', ')}`);
26
+ process.exit(1);
27
+ }
28
+ console.log(`prose bundle complete: ${KEYS.length} keys present and non-empty`);