gm-qwen 2.0.893 → 2.0.895

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.
@@ -51,6 +51,8 @@ exec:memorize
51
51
 
52
52
  Line 1 of the body is the source tag (e.g. `feedback/terse-responses`, `project/merge-freeze`). Lines 2+ are the fact itself. Use kebab-case slugs.
53
53
 
54
+ A discipline sigil — `@<name>` as the first space-token in the invoking prompt, or a trailing `discipline=<name>` line — routes the write to that discipline's store. Without one, the write lands in the default store. Forward the sigil verbatim to `exec:memorize`; never invent or default a discipline name.
55
+
54
56
  To invalidate previously-memorized content (correction or retraction):
55
57
 
56
58
  ```
@@ -9,6 +9,8 @@ allowed-tools: WebFetch, WebSearch, Bash
9
9
 
10
10
  One question. One context. One file on disk. One-line return.
11
11
 
12
+ Two shapes of brief arrive: a live-web question owning a path under `.gm/research/<slug>/<worker-id>.md`, or a corpus chunk owning `.gm/disciplines/<name>/corpus/concise/<chunk-id>.md`. The corpus shape carries an input chunk on disk and a fact-preservation contract — every claim, number, name, caveat, and citation from the source survives the rewrite; prose density rises, content does not shrink. No fetching unless the brief asks for it. The output file looks like the live-web one but the `Sources` section points at the input chunk path and any inline citations the chunk already carried.
13
+
12
14
  ## Brief shape
13
15
 
14
16
  The spawning prompt names: the question, the answer shape expected, the explicit out-of-scope boundary, and the destination path `.gm/research/<slug>/<worker-id>.md`. If any of those is missing or ambiguous, treat that as the first finding — record what was unclear and stop, rather than guessing scope.
package/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.893",
3
+ "version": "2.0.895",
4
4
  "description": "State machine agent with hooks, 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-qwen",
3
- "version": "2.0.893",
3
+ "version": "2.0.895",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -7,6 +7,8 @@ description: Mandatory codebase search workflow. Use whenever you need to find a
7
7
 
8
8
  `exec:codesearch` is the only codebase search tool. Grep, Glob, Find, Explore, raw `grep`/`rg`/`find` inside `exec:bash` are all hook-blocked. No fallback.
9
9
 
10
+ A `@<discipline>` first-token after the verb scopes the search to that discipline's index; absent the sigil, results fan across default plus enabled disciplines, prefixed by source.
11
+
10
12
  Handles exact symbols, exact strings, file-name fragments, regex-ish patterns, natural-language queries, and PDF pages (cite `path/doc.pdf:<page>`).
11
13
 
12
14
  Direct-read exceptions: known absolute path → `Read`. Known directory listing → `exec:nodejs` + `fs.readdirSync`.
@@ -15,8 +15,12 @@ The user's request is the authorization. The PRD records it. Doubts during execu
15
15
 
16
16
  The obvious read of "deeply integrate", "all of them", "every X", "across the whole Y" is wider, not narrower. Pick the maximum reachable shape, declare the read in one line so the user can interrupt, execute. Multi-repo scope, build cost, CI duration, binary-size impact are never grounds to re-confirm. When scope exceeds reach, write every witnessable subset into the PRD as separate items and finish them all. Residuals within the spirit of the ask and reachable from this session expand the PRD silently-but-declared; only out-of-spirit-or-unreachable residuals are name-and-stop.
17
17
 
18
+ When a PRD holds remaining items, do every reachable one — never offer the user a numbered choice between strategies, never serialize "approach A then approach B then approach C" through the user's inbox. Independent items run as parallel `gm:gm` subagents in one message; sequential items execute back-to-back without re-asking permission between them. The user's authorization for the PRD is authorization for every item in it. A response that asks "1, 2, 3, or 4?" when the PRD is non-empty is the failure this rule guards against — pick the obvious reading, declare it in one line, execute all of them.
19
+
18
20
  What ships runs. Stubs, mocks, placeholder returns, fixture-only paths, demo-mode short-circuits, and "TODO: implement" bodies are forbidden in shipped code — they ship green checks that lie. A shim is allowed only when it delegates to real upstream behavior; before adding one, check whether a published library already covers the surface, because local reimplementations drift and age. The behavioral test for fakeness: real input through real code into real output, witnessed. Anything less is provisional.
19
21
 
22
+ CI is the build. For Rust crates in this org (rs-exec, rs-codeinsight, rs-search, rs-learn, rs-plugkit) and the gm publish chain, `git push` triggers the build matrix; `cargo build` and `cargo test` are not run locally. Local toolchain mismatches, missing deps, or rustc version skew never block a push — push, watch CI via the Stop hook, fix on red. "I cannot witness without a local build" is wrong here: the witness is the green CI run on the pushed HEAD, and the cascade fans the green binary to all 12 downstream platform repos. Pausing for a local build wall is forced closure dressed as caution.
23
+
20
24
  Every issue surfaced during work is fixed in-band, this turn, at root cause. Pre-existing build breaks, neighboring lint failures, lockfile drift, broken deps, and stale generated files surfaced while doing the user's task become new PRD items the same turn and finish before COMPLETE. Same rule for obvious refactor wins: hand-rolled code that an existing library covers, multi-file ad-hoc systems one import would replace. The bar is *obvious + reachable from this session*. Items left in `.gm/prd.yml` from prior sessions are this session's work the moment they're seen.
21
25
 
22
26
  Editing browser-facing code requires `exec:browser` witness in the same turn — boot the surface, navigate, assert the specific invariant via `page.evaluate`, capture the numbers. EXECUTE witnesses on edit, EMIT re-witnesses post-write, VERIFY runs the final gate. The exemption (pure-prose static document with no behavior change) is tagged in the response with the reason.
@@ -7,6 +7,8 @@ description: EXECUTE phase AND the foundational execution contract for every ski
7
7
 
8
8
  Entry: `.prd` with named unknowns. Exit: every mutable KNOWN → invoke `gm-emit`.
9
9
 
10
+ A `@<discipline>` sigil propagates from PLAN through every recall, codesearch, and memorize call; reads without one fan across default plus enabled disciplines, writes without one go to default only.
11
+
10
12
  This skill is the execution contract for ALL phases — pre-emit witnesses, post-emit verifies, e2e checks all run on this discipline. Cross-cutting dispositions live in `gm` SKILL.md.
11
13
 
12
14
  ## Transitions
@@ -8,6 +8,8 @@ allowed-tools: Skill, Bash, Write, Read, Agent
8
8
 
9
9
  Translate the request into `.gm/prd.yml` and hand to `gm-execute`. Re-enter on any new unknown in any phase.
10
10
 
11
+ A `@<discipline>` sigil in the request scopes recall, codesearch, and memorize calls during PLAN to that discipline's store. Without one, retrievals fan across default plus enabled disciplines and writes land in default only.
12
+
11
13
  Cross-cutting dispositions (autonomy, fix-on-sight, nothing-fake, browser-witness, scope, recall, memorize) live in `gm` SKILL.md; this skill only carries what is unique to PLAN.
12
14
 
13
15
  ## Transitions
@@ -6,8 +6,12 @@ allowed-tools: Skill, Bash, Agent, WebFetch, WebSearch, Read, Write
6
6
 
7
7
  # Research
8
8
 
9
+ Declare the discipline before fetching anything. The first line of work names the `@<discipline>` the corpus belongs to — fresh material lives at `.gm/disciplines/<name>/corpus/raw/`, concise rewrites at `.gm/disciplines/<name>/corpus/concise/<chunk-id>.md`, the merged synthesis at `.gm/disciplines/<name>/deep-understanding.md`. A run without a discipline declaration falls back to the default store and the orchestrator says so in one line.
10
+
9
11
  Lead orchestrates. Workers fetch. Findings converge on disk. The lead never reads pages — workers do.
10
12
 
13
+ Treat a thousand-document corpus with the same care as a codebase. Material above roughly ten pages — about eight thousand tokens — splits at paragraph boundaries into chunks each owned by one parallel `gm:research-worker` (haiku model). Each worker emits a fact-preserving concise rewrite to `corpus/concise/<chunk-id>.md` — every claim, number, name, caveat from the source survives, prose density rises, citations stay attached. Once every chunk returns, the lead merges into `deep-understanding.md` enumerating the opportunities the corpus opens and the reasonable opinionations it forces. Concise files and the merged document auto-ingest via `exec:memorize @<name>` so the next pass recalls instead of re-fetching.
14
+
11
15
  Effort matches stakes. A single fact is one short fetch. A vendor comparison is a handful of workers, each owning one vendor. A landscape survey is ten or more, each owning one axis. Spending a fan-out on a fact wastes tokens; spending a fact-fetch on a landscape under-delivers.
12
16
 
13
17
  Breadth first, depth on demand. Open with a wide sweep that maps the terrain, then commit deep dives only where the sweep surfaces something load-bearing. A narrow opening misses the alternative the user actually needed.