gm-cc 2.0.441 → 2.0.443

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.
@@ -4,7 +4,7 @@
4
4
  "name": "AnEntrypoint"
5
5
  },
6
6
  "description": "State machine agent with hooks, skills, and automated git enforcement",
7
- "version": "2.0.441",
7
+ "version": "2.0.443",
8
8
  "metadata": {
9
9
  "description": "State machine agent with hooks, skills, and automated git enforcement"
10
10
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-cc",
3
- "version": "2.0.441",
3
+ "version": "2.0.443",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
package/plugin.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm",
3
- "version": "2.0.441",
3
+ "version": "2.0.443",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": {
6
6
  "name": "AnEntrypoint",
@@ -139,8 +139,9 @@ Before declaring complete, sweep the entire codebase for violations:
139
139
  8. **Fallback/demo modes** → remove, fail loud instead
140
140
  9. **TODO.md** → must be empty/deleted before completion
141
141
  10. **CHANGELOG.md** → must have entries for this session's changes
142
- 11. **memorize** → launch memorize sub-agent in background with session learnings before invoking update-docs: `Agent(subagent_type='memorize', model='haiku', run_in_background=true, prompt='## CONTEXT TO MEMORIZE\n<session learnings>')`
143
- 12. **Deploy/publish** → if deployable, deploy. If npm package, publish.
142
+ 11. **Observability gaps** → every server subsystem added this session exposes a `/debug/<subsystem>` endpoint; every client module added this session registers into `window.__debug` by key. Ad-hoc console.log is not observability permanent queryable structures are. Any gap found → fix before advancing.
143
+ 12. **memorize** → launch memorize sub-agent in background with session learnings before invoking update-docs: `Agent(subagent_type='memorize', model='haiku', run_in_background=true, prompt='## CONTEXT TO MEMORIZE\n<session learnings>')`
144
+ 13. **Deploy/publish** → if deployable, deploy. If npm package, publish.
144
145
 
145
146
  Any violation found = fix immediately before advancing.
146
147
 
@@ -85,7 +85,7 @@ The post-emit verification is a differential diagnosis against the pre-emit base
85
85
  - No hardcoded values — dynamic/modular code using ground truth only
86
86
  - No adjectives/descriptive language in variable/function names
87
87
  - No unnecessary files — clean anything not required for the program to function
88
- - Client-side code exposes debug globals (window.__debug or similar)
88
+ - Observability: every new server subsystem exposes a named inspection endpoint; every new client module registers into `window.__debug` by key and deregisters on unmount. Ad-hoc `console.log` is not observability — permanent queryable structure is. Any new code path not reachable via `window.__debug` or a `/debug/<subsystem>` endpoint → do NOT advance, add observability before writing feature code.
89
89
  - Structural quality: if/else chains where a dispatch table or pipeline suffices → regress to `gm-execute` for restructuring. One-liners that compress logic at the cost of readability → expand. Any logic that reinvents a native API or library → replace with the native/library call. Structure must make wrong states unrepresentable — if it doesn't, it's not done.
90
90
  - memorize sub-agent launched in background before advancing: `Agent(subagent_type='memorize', model='haiku', run_in_background=true, prompt='## CONTEXT TO MEMORIZE\n<what was learned>')`
91
91
  - CHANGELOG.md updated with changes
@@ -47,11 +47,13 @@ Planning = exhaustive fault-surface enumeration. For every aspect of the task:
47
47
 
48
48
  ## OBSERVABILITY ENUMERATION — MANDATORY EVERY PASS
49
49
 
50
- During every planning pass, enumerate every possible aspect of the app's runtime observability that can be improved:
50
+ During every planning pass, enumerate every possible aspect of the app's runtime observability that can be improved. The goal is permanent structures — not ad-hoc logs — that make any future debugging session start from a complete, live picture of system state.
51
51
 
52
- **Server-side**: Does every internal — state machine, queue, cache, connection pool, active task map, process registry, RPC handler, hook dispatcher — expose a real-time inspection API? Can any internal state be read, queried, or modified without restarting? Are profiling hooks present on every hot path? Are logs structured and filterable by subsystem at any time?
52
+ **Server-side permanent structures**: Every internal subsystem — state machine, queue, cache, connection pool, active task map, process registry, RPC handler, hook dispatcher — must expose a named, queryable inspection endpoint (e.g. `/debug/<subsystem>`). State must be readable, filterable, and ideally modifiable without restart. Profiling hooks on every hot path. Structured logs with subsystem tag, severity, and timestamp — filterable at runtime by subsystem, not just log level. Any internal state that requires a restart to inspect is an observability gap.
53
53
 
54
- **Client-side**: Does `window.__debug` expose every possible piece of stateall component state, all active requests, all log entries, all event queues, all WebSocket connections, all rendered props? Is every execution path traceable via globals?
54
+ **Client-side permanent structures**: `window.__debug` must be a live, structured registrynot a dump. Every component's state, every active request, every event queue, every WebSocket connection, every rendered prop, every error boundary — all addressable by key, all queryable without refreshing. New modules register themselves into `window.__debug` on mount and deregister on unmount. Any execution path not traceable via `window.__debug` is an observability gap.
55
+
56
+ **Permanent vs ad-hoc**: `console.log` = ad-hoc = not observability. A structured logger with subsystem routing = permanent. `window.__debug.myModule.state` = permanent. `window.__debug = { ...window.__debug, tmp: x }` = ad-hoc = not acceptable. Permanent structures survive deploys and accumulate diagnostic value across sessions.
55
57
 
56
58
  **Mandate**: on discovery of any observability gap → immediately add a .prd item. Observability improvements are highest-priority — never deferred. The agent must be able to see specifically anything it wants and nothing else — no guessing, no blind spots.
57
59