gm-skill 2.0.2253 → 2.0.2254
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 +1 -1
- package/README.md +8 -4
- package/gm-plugkit/package.json +1 -1
- package/gm.json +1 -1
- package/package.json +1 -1
- package/skills/gm/SKILL.md +3 -3
package/AGENTS.md
CHANGED
|
@@ -87,7 +87,7 @@ No build step; repo root = published artifact. `npm publish` from root ships `gm
|
|
|
87
87
|
|
|
88
88
|
## The agent is the orchestrator; plugkit is the brain it drives
|
|
89
89
|
|
|
90
|
-
Plugkit = stateful library the agent drives by verb dispatch -- never autonomous, never background-advances phases, never validates while agent waits. State change = verb written to `.gm/exec-spool/in/<verb>/<N>.txt`; dispatch ledger is ground truth, so zero-dispatch narrated
|
|
90
|
+
Plugkit = stateful library the agent drives by verb dispatch -- never autonomous, never background-advances phases, never validates while agent waits. State change = verb written to `.gm/exec-spool/in/<verb>/<N>.txt`; dispatch ledger is ground truth, so zero-dispatch narrated SPECIFY->COMPLETE = fabricated. SPECIFY -> PROVE -> EMIT -> STATE -> CONC -> SEC -> RES -> DECIDE -> COMPLETE lives natively in rs-plugkit as a non-linear graph (phase/mutables/memorize/transition-legality as data + gate checks) with feedback edges from every later stage back to SPECIFY/EMIT/STATE/PROVE; agent triggers every op, plugkit synchronous from agent's view -- polling output dir instead of reading response = canonical misuse. DECIDE owns adversarial verification + git-push + CI/CD validation, gated by the full closure set into COMPLETE. File paths + verb enumeration: the recall store (`recall: rs-plugkit state-machine internals`).
|
|
91
91
|
|
|
92
92
|
## gm is the canonical universal harness
|
|
93
93
|
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
```
|
|
6
6
|
$ transition to=COMPLETE
|
|
7
7
|
|
|
8
|
-
DENIED
|
|
8
|
+
DENIED DECIDE -> COMPLETE 2 residuals
|
|
9
9
|
|
|
10
10
|
x worktree-clean 3 uncommitted files
|
|
11
11
|
x ci-validated-fresh .ci-validated sha 7c90878 != HEAD e8ea29f
|
|
@@ -105,7 +105,7 @@ The two npm packages this repo publishes:
|
|
|
105
105
|
|
|
106
106
|
### the state machine
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
SPECIFY -> PROVE -> EMIT -> STATE -> CONC -> SEC -> RES -> DECIDE -> COMPLETE, a non-linear graph with feedback edges from every later stage back to SPECIFY/EMIT/STATE/PROVE. Every transition is a verb the agent dispatches by writing to `.gm/exec-spool/in/<verb>/<N>.txt`. The wasm orchestrator (rs-plugkit) services it and writes the response to `.gm/exec-spool/out/`. The agent reads, follows the imperative prose, dispatches the next verb. DECIDE owns adversarial verification + git-push + CI/CD validation, gated by the full closure set into COMPLETE. The chain isn't complete until `transition to=COMPLETE` returns COMPLETE phase AND the push reaches origin.
|
|
109
109
|
|
|
110
110
|
### tools
|
|
111
111
|
|
|
@@ -126,8 +126,12 @@ Every tool the agent uses is a dispatch verb. No direct shell, no direct file wr
|
|
|
126
126
|
- **turn entry**: the `instruction` verb reminds the agent to dispatch first and attaches the per-prompt auto-recall pack
|
|
127
127
|
- **pre-tool-use**: blocks Write/Edit/git before the gm skill fires for the turn
|
|
128
128
|
- **stop**: blocks session end while `.gm/prd.yml` has open items, mutables are unresolved, residual-scan hasn't fired, or the worktree is dirty or unpushed
|
|
129
|
-
- **
|
|
130
|
-
- **
|
|
129
|
+
- **PROVE -> EMIT**: `mutables-all-resolved`
|
|
130
|
+
- **EMIT -> STATE**: `no-synthetic-test-files`, `no-graphical-symbols-in-diff`, `no-admit-deferral-markers`
|
|
131
|
+
- **STATE -> CONC**: `idempotent-dispatch-replay-safe`
|
|
132
|
+
- **SEC -> RES**: `no-secrets-in-diff`
|
|
133
|
+
- **RES -> DECIDE**: `no-unchecked-panics-in-diff`
|
|
134
|
+
- **DECIDE -> COMPLETE**: `prd-all-closed`, `mutables-all-resolved`, `worktree-clean`, `residual-scan-fired`, `ci-validated-fresh` (`.gm/exec-spool/.ci-validated` matches current HEAD sha), `browser-witness-coverage`, `submodules-clean` (every tracked submodule gitlink matches that submodule's own live HEAD), `claim-audit-clean` (every AGENTS.md/recall claim naming a commit hash resolves against real git log), `no-hedge-language-in-diff`
|
|
131
135
|
|
|
132
136
|
The gate graph itself is data, not hardcoded Rust: a project's `.gm/instructions/fsm/graph.json` (written by the `fsm-vendor` verb) can add states, rewire edges, or swap which gates guard which transition, including a `policy` block that externalizes previously-hardcoded behavior (status vocabularies, witness-requirement toggles, CAS retry attempts) as project-overridable JSON.
|
|
133
137
|
|
package/gm-plugkit/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-plugkit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2254",
|
|
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/gm.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gm-skill",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2254",
|
|
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",
|
package/skills/gm/SKILL.md
CHANGED
|
@@ -116,11 +116,11 @@ VERIFY is adversarial, never confirmatory: run the real code path and read its a
|
|
|
116
116
|
|
|
117
117
|
**Noticing is a planning event, every phase, not just PLAN.** Anything observed mid-walk -- outstanding work, an unfinished surface, an improvable shape, drift from these rules -- is `prd-add` this turn; response-body-only observations evaporate at turn end. Density grows along the whole walk, not just at PLAN; exiting VERIFY or CONSOLIDATE with the same row-count PLAN started with is lost discoveries, not a clean run.
|
|
118
118
|
|
|
119
|
-
`git push` only when `git status --porcelain` is empty. Dirty tree blocks
|
|
119
|
+
`git push` only when `git status --porcelain` is empty. Dirty tree blocks the DECIDE -> COMPLETE gate. Prefer `git_push` verb over Bash git commands; git via Bash records as `deviation.bash-git-bypass`.
|
|
120
120
|
|
|
121
|
-
Phase transitions
|
|
121
|
+
Phase transitions (the built-in default graph, not an exhaustive list of legal phase names): SPECIFY -> PROVE -> EMIT -> STATE -> CONC -> SEC -> RES -> DECIDE -> COMPLETE, with feedback edges from every later stage back to SPECIFY (reshaping), EMIT (repair), STATE (boundary enforcement), and PROVE (empirical fitness). Each requires `transition {to:"PHASE"}` dispatch. SPECIFY writes the PRD. PROVE drains `.gm/mutables.yml` (gated). EMIT writes file changes (gated on source hygiene). STATE/CONC/SEC/RES audit the diff per stage (functional core, concurrency, security, resilience; each boundary gated on its mechanically-checkable subset). DECIDE validates adversarially via `exec_js`/`browser`, pushes via `git_finalize` or `git_push`, then witnesses CI/CD pipeline green. COMPLETE gate requires: worktree clean, remote pushed, PRD empty, mutables resolved, residual-scan fired, CI green (`.ci-validated` marker matching current HEAD), browser-witness coverage, submodules clean, claim-audit clean, no hedge language. A project's `.gm/instructions/fsm/graph.json` (written by the `fsm-vendor` verb) can define a different phase set, additional states, or a different edge/gate shape entirely. Never assume this exact chain; dispatch `instruction` and read its `phase`/`next_phase_hint` fields to discover the live graph's actual state, whatever a specific project's graph happens to define.
|
|
122
122
|
|
|
123
|
-
CI/CD validation in
|
|
123
|
+
CI/CD validation in DECIDE phase: After push succeeds, watch the triggered workflow. When pipeline goes green, dispatch `fs_write {path:".gm/exec-spool/.ci-validated", content:"{\"head_sha\":\"<current commit SHA>\"}"}` to mark validation complete -- the marker's file CONTENT is the JSON string `{"head_sha":"<SHA>"}`, passed under the `content` field the fs_write handler reads (not a `body`/`head_sha` object, which the handler ignores). `.ci-validated`'s head_sha must match current HEAD; COMPLETE gate refuses if stale or missing. Red runs require fix + re-push + re-watch; no skip for "it looked safe."
|
|
124
124
|
|
|
125
125
|
Memory via `memorize-fire` dispatch stores in `.gm/rs-learn.db` and is retrieved via `recall` and `auto_recall`. `discipline-note {discipline, text}` writes `.gm/disciplines/<name>/policy.md`; `instruction` auto-surfaces policies from disciplines listed in `.gm/disciplines/enabled.txt`.
|
|
126
126
|
|