gm-qwen 2.0.750 → 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 +16 -0
- package/skills/gm-complete/SKILL.md +3 -1
- package/skills/gm-execute/SKILL.md +12 -0
- package/skills/planning/SKILL.md +10 -0
package/gm.json
CHANGED
package/package.json
CHANGED
package/skills/gm/SKILL.md
CHANGED
|
@@ -82,6 +82,22 @@ Required: surface → diagnose → fix at root cause → re-witness → continue
|
|
|
82
82
|
|
|
83
83
|
A skill chain that shipped while ignoring a known-bad signal is a forced-closure failure (see LAWFUL DOWNGRADE).
|
|
84
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
|
+
|
|
85
101
|
## EXECUTION ORDER
|
|
86
102
|
|
|
87
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
|
|
|
@@ -122,6 +122,18 @@ N facts → N parallel Agent calls in ONE message. End-of-turn self-check mandat
|
|
|
122
122
|
|
|
123
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
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
|
+
|
|
125
137
|
## CONSTRAINTS
|
|
126
138
|
|
|
127
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
|
@@ -63,6 +63,16 @@ Every issue surfaced during planning, execution, or verification — failing tes
|
|
|
63
63
|
|
|
64
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
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
|
+
|
|
66
76
|
## SKIP PLANNING (DEFAULT for small work)
|
|
67
77
|
|
|
68
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.
|