gm-skill 2.0.2525 → 2.0.2527

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
@@ -44,7 +44,7 @@ Wasm host-import link-module rule (`#[link(wasm_import_module="env")]` on every
44
44
 
45
45
  ## Spool dispatch ABI
46
46
 
47
- Dispatch = Write `.gm/exec-spool/in/<verb>/<N>.txt`, Read `.gm/exec-spool/out/<verb>-<N>.json` (nested) or `out/<N>.json` (root). Wasm orchestrator services every verb; harness never executes side effects directly.
47
+ Dispatch = Write `.gm/exec-spool/in/<verb>/<N>.txt`, Read `.gm/exec-spool/out/<verb>-<N>.json` (nested) or `out/<N>.json` (root). `<N>` is session-id-prefixed (`<session_id>-<local-counter>`), never a bare small integer -- the shared daemon claims and answers in-files by the literal `(verb, N)` pair with no per-session partition, so unprefixed sequential ids collide across concurrent sessions on the same project (recall: `gm spool dispatch id collision cross-session crosstalk`). Wasm orchestrator services every verb; harness never executes side effects directly.
48
48
 
49
49
  - **Orchestrator verbs**: `instruction`, `transition`, `phase-status`, `mutable-resolve`, `memorize-fire`, `residual-scan`, `auto-recall`.
50
50
  - **Wasm-direct verbs**: fs/kv/exec/fetch/env, recall, codesearch, memorize(+prune), health, filter, full git verb family. Enumeration in the recall store (`recall: wasm-direct plugkit verbs full list`).
@@ -1 +1 @@
1
- bbde477e5ea292aab6a42af591798293e6eae782df318d1e0885aac76b5ec0fb plugkit-slim.wasm
1
+ 0598d4f497afe3beee0968c22c18b08617567213e51c940626814acc49367c6f plugkit-slim.wasm
@@ -1 +1 @@
1
- 0.1.1202
1
+ 0.1.1203
@@ -1 +1 @@
1
- ab3ed0c8d18effe58496baa5a47637e3a8526a09774dfc4db32b56ff00756b21 plugkit.wasm
1
+ a909d7499abdac48ea2218363a300b4e6bf38f3a7e9855cd13266c1bae8c2d47 plugkit.wasm
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-plugkit",
3
- "version": "2.0.2525",
3
+ "version": "2.0.2527",
4
4
  "description": "Bootstrap and daemon-spawn tool for gm plugkit binary. Downloads the correct platform wasm, verifies SHA256, and launches agentplug-runner (the native wasm host) as the spool watcher daemon.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -1 +1 @@
1
- bbde477e5ea292aab6a42af591798293e6eae782df318d1e0885aac76b5ec0fb plugkit-slim.wasm
1
+ 0598d4f497afe3beee0968c22c18b08617567213e51c940626814acc49367c6f plugkit-slim.wasm
@@ -1 +1 @@
1
- 0.1.1202
1
+ 0.1.1203
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.2525",
3
+ "version": "2.0.2527",
4
4
  "description": "Spool-dispatch orchestration engine with unified state machine, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -17,5 +17,5 @@
17
17
  "publishConfig": {
18
18
  "access": "public"
19
19
  },
20
- "plugkitVersion": "0.1.1202"
20
+ "plugkitVersion": "0.1.1203"
21
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-skill",
3
- "version": "2.0.2525",
3
+ "version": "2.0.2527",
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",
@@ -8,7 +8,7 @@ allowed-tools: Skill, Read, Write, AskUserQuestion, Bash(bun *), Bash(npx *), Ba
8
8
 
9
9
  Replace questions and summaries dispatching the next verb instead, or `Skill(skill="gm-continue")` at genuine `phase=COMPLETE AND prd_pending_count=0`. There is no other exit. `instruction` dispatch returns the live phase-prose and next-step guidance; dispatch it whenever uncertain, never invent the next step from memory.
10
10
 
11
- Verbs write to `.gm/exec-spool/in/<verb>/<N>.txt` as JSON; read the paired `.gm/exec-spool/out/<verb>-<N>.json` in the SAME tool-call block, never narrate before reading it. Phase/PRD/mutables state lives on disk (`.gm/exec-spool/.turn-summary.json`, `.gm/prd.yml`, `.gm/mutables.yml`) and in every response body -- never assumed from context. A `phase` mismatch between `.turn-summary.json` and a fresh `instruction` response always resolves to the fresh response.
11
+ Verbs write to `.gm/exec-spool/in/<verb>/<N>.txt` as JSON; read the paired `.gm/exec-spool/out/<verb>-<N>.json` in the SAME tool-call block, never narrate before reading it. `<N>` MUST be globally unique across every concurrent session sharing this project's spool, never a bare small sequential integer -- the shared daemon keys in-flight claims and out-files by the literal `(verb, N)` pair with no per-session partition, so two sessions independently picking `1`, `2`, `3`... collide on the same in-file slot and out-file, each session silently reading the other's response. Prefix every `<N>` with your own SESSION_ID (`<session_id>-<N>`, e.g. `gm-crosstalk-check-1`) and increment your own local counter from there; this makes collision structurally impossible regardless of how many sessions target the same project concurrently. Phase/PRD/mutables state lives on disk (`.gm/exec-spool/.turn-summary.json`, `.gm/prd.yml`, `.gm/mutables.yml`) and in every response body -- never assumed from context. A `phase` mismatch between `.turn-summary.json` and a fresh `instruction` response always resolves to the fresh response.
12
12
 
13
13
  Boot probe, one call: `cat .gm/exec-spool/.status.json 2>/dev/null; echo ---; cat .gm/exec-spool/.turn-summary.json 2>/dev/null; echo ---; date +%s%3N`. Boot/reboot: `bun x gm-plugkit@latest spool` (`npx -y gm-plugkit@latest spool` if no bun) -- fire-and-forget, does not wait for serving; write your first verb right after. Dead watcher = `.status.json` `ts` stale >5min AND no future `busy_until`: boot fresh, re-dispatch. A `busy_until` in the future licenses a bounded wait (condition-poll the out/ file, never a blind sleep); it does not license declaring the watcher dead. `dispatch_orphaned` = bare re-dispatch once `ts` is fresh again; its `sweeping_pid` field changing across repeats is a real respawn (same recovery), not a stuck loop.
14
14