gm-plugkit 2.0.2492 → 2.0.2494
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/SKILL.md +4 -2
- package/package.json +1 -1
- package/plugkit.version +1 -1
package/SKILL.md
CHANGED
|
@@ -10,7 +10,9 @@ Every response must contain a tool call, or the conversation ends there permanen
|
|
|
10
10
|
|
|
11
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.
|
|
12
12
|
|
|
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` = expected mid self-update handoff, bare re-dispatch once `ts` is fresh again.
|
|
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` = expected mid self-update handoff, bare re-dispatch once `ts` is fresh again -- can recur several times in a row under sustained load (self-updates land mid-dispatch); each recurrence gets a bare re-dispatch, not a different recovery, as long as `.status.json`'s `pid` keeps changing to a fresh value each time (a real respawn, not a stuck loop).
|
|
14
|
+
|
|
15
|
+
One `gm.wasm` instance serves every project on the machine through a single global mutex -- `exec_js`/`prd-add`/`prd-resolve`/`browser session new` stay fast and reliable even while `instruction` is degraded, since `instruction`'s handler is the one that touches the shared embed/recall SQLite store and can 117s+ under sustained lock contention (`database is locked` on the embed tables during a codeinsight/config-cache rebuild). When `instruction` specifically (not the daemon broadly) repeatedly orphans while other verbs keep responding normally, keep driving the walk forward on the verbs that work (`prd-add`, `prd-resolve`, `exec_js`) and retry `instruction` opportunistically rather than blocking all progress on it.
|
|
14
16
|
|
|
15
17
|
Spool verbs: `codesearch`, `recall`, `fetch`, `exec_js`, `browser`, `memorize-fire`, `prd-add`/`prd-resolve`/`mutable-add`/`mutable-resolve`, `transition`, `phase-status`, the git verb family (`git_status`, `git_finalize`, `git_push`, ...). Every capability routes through its verb -- codesearch (never Grep/Glob for discovery), browser (never raw Chrome/playwright), git verbs (never raw `git` via Bash, gated `deviation.bash-git-bypass`). `git_finalize {message}` bundles add->commit->porcelain-gate->push->CI-watch in one dispatch.
|
|
16
18
|
|
|
@@ -20,6 +22,6 @@ Client-side edits (`.html .js .jsx .ts .tsx .vue .svelte .mjs .css`) require a `
|
|
|
20
22
|
|
|
21
23
|
Phase graph (default; a project's `.gm/instructions/fsm/graph.json` can define another): SPECIFY -> PROVE -> EMIT -> STATE -> CONC -> SEC -> RES -> DECIDE -> COMPLETE, with feedback edges from every later stage back to an earlier one. Each transition is an explicit `transition {to:"PHASE"}` dispatch. COMPLETE gate: worktree clean, remote pushed, PRD empty, mutables resolved, residual-scan fired, CI green (`.ci-validated`'s `head_sha` matches current HEAD), browser-witness coverage, submodules clean, no hedge language. Mark it via `fs_write {path:".gm/exec-spool/.ci-validated", content:"{\"head_sha\":\"<sha>\"}"}` after a green CI watch.
|
|
22
24
|
|
|
23
|
-
Spool input from PowerShell must be UTF-8 no-BOM. First-turn body is `{"prompt":"<user request>"}`; later dispatches may use `{}`. Batch independent dispatches in one message; never edit the same file twice in one block.
|
|
25
|
+
Spool input from PowerShell must be UTF-8 no-BOM. First-turn body is `{"prompt":"<user request>"}`; later dispatches may use `{}`. SESSION_ID threads through every dispatch body once known (a prior response's `session_id` field, or a fresh id on first boot) -- plugkit rejects an empty one. Batch independent dispatches in one message; never edit the same file twice in one block.
|
|
24
26
|
|
|
25
27
|
**This file is boot-edge ABI only.** Phase-specific behavior (SPECIFY/PROVE/EMIT/STATE/CONC/SEC/RES/DECIDE prose, gate reasons, deviation text, install/bootstrap/observability detail, memory discipline) is served live by the `instruction` verb from `AnEntrypoint/gm-config`, three-tier resolved (`.gm/instructions/<key>.md` project override -> gm-config checkout -> compiled Rust default as emergency fallback only). Editing this file's prose never changes served behavior; edit `gm-config`'s `prose/*.md` and push directly, no rebuild needed. Subagent prompts dispatching gm-driven work say only "use the gm skill for this" plus task specifics -- never restate verb names, spool paths, or phase mechanics already supplied by `Skill(skill="gm")` itself.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-plugkit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2494",
|
|
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": {
|
package/plugkit.version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.1189
|