gm-qwen 2.0.749 → 2.0.751
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 +1 -1
- package/package.json +1 -1
- package/skills/gm/SKILL.md +26 -0
- package/skills/gm-complete/SKILL.md +7 -1
- package/skills/gm-emit/SKILL.md +4 -0
- package/skills/gm-execute/SKILL.md +16 -0
- package/skills/planning/SKILL.md +16 -0
- package/skills/update-docs/SKILL.md +4 -0
package/gm.json
CHANGED
package/package.json
CHANGED
package/skills/gm/SKILL.md
CHANGED
|
@@ -72,6 +72,32 @@ 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
|
+
|
|
85
|
+
## BROWSER WITNESS — HARD RULE
|
|
86
|
+
|
|
87
|
+
Any edit to code that runs in a browser (under `client/`, `docs/`, `*.html`, shaders, page-bundle imports, served JS/CSS, gh-pages assets, anything imported by a browser entry, anything visible in the DOM/canvas/WebGL) requires a live `exec:browser` witness in the SAME session — never deferred to "next session" or "follow-up".
|
|
88
|
+
|
|
89
|
+
Mandatory protocol (every client edit):
|
|
90
|
+
1. Boot the real server / open the static page → witness HTTP 200
|
|
91
|
+
2. `exec:browser` → `page.goto(url)` → poll for the global the change affects (`window.__app.<system>`, `window.__debug.<module>`)
|
|
92
|
+
3. `page.evaluate(() => …)` asserting the specific invariant the change established — instance counts, scene meshes, DOM nodes, render stats, network frames
|
|
93
|
+
4. Capture witnessed numbers in the response. "Looks fine" / "should work" / "node test passes" = NOT a witness
|
|
94
|
+
|
|
95
|
+
Forbidden: shipping a client change with only `node test.js` green | screenshot-without-evaluate | "browser validation deferred to VERIFY" then skipping VERIFY | "exempt because the change is small" | committing client diff without an `exec:browser` block in the same turn.
|
|
96
|
+
|
|
97
|
+
Exempt only when: change is server-only with zero browser-facing surface, OR repo has no browser surface at all. Tag the exemption explicitly in the response with the reason; silent skip = forced-closure failure.
|
|
98
|
+
|
|
99
|
+
This rule fires in EXECUTE (witness on edit), EMIT (post-emit verify), and VERIFY (final gate). All three. Skipping any layer counts as the failure.
|
|
100
|
+
|
|
75
101
|
## EXECUTION ORDER
|
|
76
102
|
|
|
77
103
|
1. Recall — `plugkit recall` for any familiar-feeling unknown (cheapest, 200 tokens)
|
|
@@ -59,7 +59,9 @@ Required protocol:
|
|
|
59
59
|
|
|
60
60
|
Long-running probes: split into navigate-call → `exec:wait N` → probe-call to stay under the per-call budget. Do not stack multi-second `setTimeout` inside one `exec:browser` invocation.
|
|
61
61
|
|
|
62
|
-
Exempt only when: change is server-only with zero browser-facing surface, OR repository has no browser surface at all (pure CLI/library).
|
|
62
|
+
Exempt only when: change is server-only with zero browser-facing surface, OR repository has no browser surface at all (pure CLI/library). Exemption requires explicit tag in the response: `BROWSER EXEMPT: <reason — must reference diff paths showing zero browser-facing surface>`. Silent skip = forced-closure failure. Default posture is NOT exempt — burden is on the agent to prove exemption with diff evidence, not to assume it.
|
|
63
|
+
|
|
64
|
+
**Pre-flight check before declaring complete**: run `git diff --name-only origin/main..HEAD` and grep for `client/|docs/|\.html$|\.glsl$|\.frag$|\.vert$`. Any hit AND no `exec:browser` block in this session = mandatory regression to `gm-execute` to witness the change live. No exceptions for "small CSS tweak" or "obvious string change".
|
|
63
65
|
|
|
64
66
|
## INTEGRATION TEST GATE
|
|
65
67
|
|
|
@@ -89,6 +91,10 @@ Stop hook watches all GitHub Actions runs for the pushed HEAD. Do not call `gh r
|
|
|
89
91
|
- Failure → Stop blocks with run names+IDs → investigate with `gh run view <id> --log-failed`, fix, push, hook re-watches
|
|
90
92
|
- Deadline 180s (override `GM_CI_WATCH_SECS`) → slow jobs get "still in progress" approve
|
|
91
93
|
|
|
94
|
+
## FIX ON SIGHT — HARD RULE
|
|
95
|
+
|
|
96
|
+
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.
|
|
97
|
+
|
|
92
98
|
## HYGIENE SWEEP
|
|
93
99
|
|
|
94
100
|
Before declaring complete:
|
package/skills/gm-emit/SKILL.md
CHANGED
|
@@ -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,22 @@ 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
|
+
|
|
125
|
+
## BROWSER WITNESS — HARD RULE
|
|
126
|
+
|
|
127
|
+
Editing browser-facing code (under `client/`, `docs/`, `*.html`, shaders, page-bundle imports, served JS/CSS, gh-pages assets, anything imported by a browser entry, anything visible in DOM/canvas/WebGL) → live `exec:browser` witness in THIS phase, same turn as the edit. Not deferred to EMIT, not deferred to VERIFY — those layers re-witness on top, they don't replace this one.
|
|
128
|
+
|
|
129
|
+
Protocol on every client edit:
|
|
130
|
+
1. Boot server / open page → HTTP 200 witnessed
|
|
131
|
+
2. `exec:browser` → `page.goto(url)` → poll the affected global (`window.__app.<system>`, `window.__debug.<module>`)
|
|
132
|
+
3. `page.evaluate` asserting the specific invariant the change establishes — capture numbers
|
|
133
|
+
4. Variance → fix at root cause, re-witness (FIX ON SIGHT). Never advance to EMIT on unwitnessed client behavior.
|
|
134
|
+
|
|
135
|
+
Forbidden: `node test.js` green as a substitute | screenshot without evaluate | "I'll check it in VERIFY" then skipping | committing a client diff without an `exec:browser` block this turn. Exempt only for server-only / no-browser repos; tag the exemption explicitly.
|
|
136
|
+
|
|
121
137
|
## CONSTRAINTS
|
|
122
138
|
|
|
123
139
|
**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
|
package/skills/planning/SKILL.md
CHANGED
|
@@ -57,6 +57,22 @@ 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
|
+
|
|
66
|
+
## BROWSER WITNESS — HARD RULE
|
|
67
|
+
|
|
68
|
+
Every `.prd` item that touches browser-facing code (under `client/`, `docs/`, `*.html`, shaders, page-bundle imports, served JS/CSS, gh-pages assets, anything imported by a browser entry, anything visible in DOM/canvas/WebGL) MUST list `browser_validated` as an acceptance criterion AND list `exec:browser witness with page.evaluate assertion` as an explicit edge_case probe. Without that line the item is not plan-complete.
|
|
69
|
+
|
|
70
|
+
Forbidden: client `.prd` item with only `test.js passes` as acceptance | "browser test optional" | deferring browser witness to "follow-up" | acceptance lines that say "verified manually". Manual = unwitnessed = not acceptable.
|
|
71
|
+
|
|
72
|
+
Detection (any → mandatory): paths under `client/`, `docs/`, `*.html`, shader files, files imported into a page bundle; new export consumed by `window.*`; any visual/layout/animation/input/network-on-page/shader behavior.
|
|
73
|
+
|
|
74
|
+
This propagates: EXECUTE witnesses on edit, EMIT re-witnesses post-write, VERIFY runs the final gate. Plan must encode it so all three layers fire.
|
|
75
|
+
|
|
60
76
|
## SKIP PLANNING (DEFAULT for small work)
|
|
61
77
|
|
|
62
78
|
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.
|