gm-qwen 2.0.749 → 2.0.750

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/gm.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.749",
3
+ "version": "2.0.750",
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.749",
3
+ "version": "2.0.750",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -72,6 +72,16 @@ Refusal is forced closure. Refusing the task because part of it is hard is the i
72
72
 
73
73
  **Required move when scope exceeds reach**: identify the bounded subset that IS witnessable from this session, write a PRD covering only that subset, execute it, and at end-of-turn name the residual scope as a follow-up item — never as a refusal. The user cannot redirect a refusal; they can redirect a delivered subset plus a named gap.
74
74
 
75
+ ## FIX ON SIGHT — HARD RULE
76
+
77
+ Any issue surfaced during work — failing test, exec stderr, CI red, lint warning, type error, broken import, runtime exception, deprecation warning, unexpected output, dead code, bad data — gets fixed THIS turn, in-band. Never defer, never suppress, never note-and-move-on.
78
+
79
+ Forbidden: `// TODO fix later` | catching to ignore | `2>/dev/null` to hide | "out of scope" when scope is the same file | "we can address that next session" | leaving a red CI to ship docs | merging around a failing assertion | adding `.skip` / `xit` / `it.todo`.
80
+
81
+ Required: surface → diagnose → fix at root cause → re-witness → continue. If the fix uncovers a new unknown, regress to `planning`. If the fix is genuinely out-of-scope-irreversible, write a `.gm/prd.yml` item for it BEFORE moving on — never just narrate it away.
82
+
83
+ A skill chain that shipped while ignoring a known-bad signal is a forced-closure failure (see LAWFUL DOWNGRADE).
84
+
75
85
  ## EXECUTION ORDER
76
86
 
77
87
  1. Recall — `plugkit recall` for any familiar-feeling unknown (cheapest, 200 tokens)
@@ -89,6 +89,10 @@ Stop hook watches all GitHub Actions runs for the pushed HEAD. Do not call `gh r
89
89
  - Failure → Stop blocks with run names+IDs → investigate with `gh run view <id> --log-failed`, fix, push, hook re-watches
90
90
  - Deadline 180s (override `GM_CI_WATCH_SECS`) → slow jobs get "still in progress" approve
91
91
 
92
+ ## FIX ON SIGHT — HARD RULE
93
+
94
+ Any issue surfaced during verify (test.js failure, browser-validation mismatch, CI red, git-status dirt, hygiene-sweep finding, stress-suite flunk, observability gap) is fixed in-band before declaring complete. Never paper over, never `.skip`, never ship-and-followup, never silence stderr/CI signals. Failure routes to the owning phase: broken output → `gm-emit` | wrong logic → `gm-execute` | new unknown → `planning`. Never declare COMPLETE while a known-bad signal is live.
95
+
92
96
  ## HYGIENE SWEEP
93
97
 
94
98
  Before declaring complete:
@@ -67,6 +67,10 @@ console.log(await fn(realInput));
67
67
  - All facts resolved this phase memorized via background Agent(memorize)
68
68
  - CHANGELOG.md updated; TODO.md cleared/deleted
69
69
 
70
+ ## FIX ON SIGHT — HARD RULE
71
+
72
+ Pre-emit run, post-emit run, or legitimacy gate surfaces ANY issue (failing assertion, stderr, type/lint error, unexpected variance, broken import, runtime throw) → fix at root cause this turn, re-run pre-emit AND post-emit, advance only when all gates pass simultaneously. Never write-and-promise-fix-later, never `try/catch`-to-hide, never `.skip`, never silence with redirection. Known variance → fix and re-verify (self-loop). Unknown variance → regress to `planning`.
73
+
70
74
  ## CODE EXECUTION
71
75
 
72
76
  `exec:<lang>` only. File writes via exec:nodejs + require('fs'). Never Bash(node/npm/npx/bun).
@@ -118,6 +118,10 @@ Triggers: exec output answers prior unknown | CI log reveals root cause | code r
118
118
 
119
119
  N facts → N parallel Agent calls in ONE message. End-of-turn self-check mandatory.
120
120
 
121
+ ## FIX ON SIGHT — HARD RULE
122
+
123
+ Issue surfaced mid-execution (failing test, exec stderr, broken import, runtime exception, lint/type error, deprecation warning, unexpected output) is fixed THIS turn, at root cause, in-band. Never `// TODO`, never `try/catch`-to-swallow, never `2>/dev/null`, never `.skip`, never "out of scope" inside the same file. Re-witness after fix. New unknown surfaced by the fix → regress to `planning`. Genuine out-of-scope → write a `.gm/prd.yml` item before continuing.
124
+
121
125
  ## CONSTRAINTS
122
126
 
123
127
  **Never**: Bash(node/npm/npx/bun) | fake data | mocks | scattered tests | fallbacks | Grep/Glob/Find/Explore | sequential independent items | respond mid-phase | edit before witnessing | duplicate code | if/else where dispatch suffices | one-liners that obscure | reinvent native/library
@@ -57,6 +57,12 @@ Forbidden: "honest stop", "stopping for a hard call", "I cannot do this from ins
57
57
 
58
58
  Required: identify the witnessable bounded subset, PRD-write it, execute it. Residual scope = follow-up item, never refusal.
59
59
 
60
+ ## FIX ON SIGHT — HARD RULE
61
+
62
+ Every issue surfaced during planning, execution, or verification — failing test, exec stderr, CI red, lint/type warning, broken import, runtime exception, deprecation, unexpected output — is fixed in-band the same session. Never defer with `// TODO`, never silence with `try/catch`-to-ignore or `2>/dev/null`, never `.skip` a test, never ship while CI is red, never narrate "we'll address that next time."
63
+
64
+ Surface → diagnose root cause → fix → re-witness → continue. New unknown discovered while fixing → regress here (planning). Genuinely out-of-scope → add a `.gm/prd.yml` item BEFORE moving on, never just mention it. Ignoring a known-bad signal = forced-closure failure.
65
+
60
66
  ## SKIP PLANNING (DEFAULT for small work)
61
67
 
62
68
  Skip if ANY: single-file single-concern edit | trivially bounded <5min | surgical user instructions | bug fix with identified root cause | zero unknowns. Heavy ceremony only for multi-file architectural work.
@@ -52,6 +52,10 @@ git commit -m "docs: update documentation to reflect session changes"
52
52
  git push -u origin HEAD
53
53
  ```
54
54
 
55
+ ## FIX ON SIGHT — HARD RULE
56
+
57
+ Doc-write surfaces a stale claim, broken link, missing file referenced, or contradiction with disk → fix at root cause this turn (update doc to match disk, or fix code if disc is wrong). Never leave a known-false claim in docs. Push surfaces a CI failure → fix and re-push, do not declare complete.
58
+
55
59
  ## Fidelity Rules
56
60
 
57
61
  Every claim verifiable against disk: phase names match frontmatter, platform names match `platforms/`, file paths exist, constraint counts accurate. Unverifiable section → remove, don't speculate.