gm-cc 2.0.508 → 2.0.510

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.508",
7
+ "version": "2.0.510",
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.508",
3
+ "version": "2.0.510",
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.508",
3
+ "version": "2.0.510",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": {
6
6
  "name": "AnEntrypoint",
@@ -62,20 +62,27 @@ start|stop|status
62
62
 
63
63
  ## CODEBASE EXPLORATION
64
64
 
65
- `exec:codesearch` is the only way to search. **Glob, Grep, Read, Explore, WebSearch are hook-blocked.**
65
+ `exec:codesearch` is the preferred semantic search. **Glob, Explore, WebSearch are hook-blocked. Grep/Read ARE available — use them for exact-match or direct reads.**
66
66
 
67
67
  ```
68
68
  exec:codesearch
69
69
  <two-word query to start>
70
70
  ```
71
71
 
72
- **Mandatory search protocol** (from `code-search` skill):
72
+ **Mandatory search protocol** for codesearch (from `code-search` skill):
73
73
  1. Start with exactly **two words** — never one, never a sentence
74
74
  2. No results → change one word (synonym or related term)
75
75
  3. Still no results → add a third word to narrow scope
76
76
  4. Keep changing or adding words each pass until content is found
77
77
  5. Minimum 4 attempts before concluding content is absent
78
78
 
79
+ **When codesearch is the wrong tool:**
80
+ - Exact symbol / string / regex match: use `Grep` tool directly, or `exec:nodejs` with `execSync("rg -n 'PATTERN'")`.
81
+ - Known file path: use `Read` tool directly.
82
+ - Find files by name pattern: hook-blocked `Glob` would help; use `exec:nodejs + fs.readdirSync` or `exec:nodejs + execSync("rg --files | rg PATTERN")`.
83
+
84
+ **Platform note — exec:bash on Windows:** runs real bash (git-bash) when installed, falls back to PowerShell otherwise. If you see a POSIX-syntax parse error (`[ -n ...]`, `&&`, `if/then/fi`), bash wasn't found — either install git-bash or rewrite in `exec:nodejs`.
85
+
79
86
  ## DIAGNOSTIC PROTOCOL — IMPORT-BASED EXECUTION
80
87
 
81
88
  Always import actual codebase modules. Never rewrite logic inline. Reimplemented output is unwitnessed and inadmissible as ground truth.
@@ -139,7 +146,7 @@ Never respond to the user from this phase. When all mutables are KNOWN, immediat
139
146
 
140
147
  ## CONSTRAINTS
141
148
 
142
- **Never**: `Bash(node/npm/npx/bun)` | fake data | mock files | scattered test files (only root test.js) | fallback/demo modes | Glob/Grep/Read/Explore (hook-blocked — use exec:codesearch) | sequential independent items | absorb surprises silently | respond to user or pause for input | edit files before executing to understand current behavior | duplicate existing code | write explicit if/else chains when a dispatch table or native method suffices | write packed one-liners that obscure structure | reinvent what a library or native API already provides
149
+ **Never**: `Bash(node/npm/npx/bun)` | fake data | mock files | scattered test files (only root test.js) | fallback/demo modes | Glob/Explore (hook-blocked — use exec:codesearch, Grep or Read) | sequential independent items | absorb surprises silently | respond to user or pause for input | edit files before executing to understand current behavior | duplicate existing code | write explicit if/else chains when a dispatch table or native method suffices | write packed one-liners that obscure structure | reinvent what a library or native API already provides
143
150
 
144
151
  **Always**: witness every hypothesis | import real modules | scan codebase before creating/editing files | regress to planning on any new unknown | fix immediately on discovery | delete mocks/stubs/comments/scattered test files on discovery | consolidate test coverage into root test.js | add regression case to test.js for every bug fix | invoke next skill immediately when done | ask "what native feature solves this?" before writing any new logic | prefer structures where wrong states are unrepresentable
145
152
 
@@ -43,7 +43,18 @@ Planning = exhaustive fault-surface enumeration. For every aspect of the task:
43
43
 
44
44
  **SELF-LOOP**: new items discovered → add to .prd → plan again.
45
45
 
46
- **Skip planning entirely** if: task is single-step, trivially bounded, zero unknowns, under 5 minutes.
46
+ **Skip planning entirely** (this is the DEFAULT for small work) if ANY of these apply:
47
+ - Single-file, single-concern edit
48
+ - Task is trivially bounded and under ~5 minutes
49
+ - User gave explicit surgical instructions ("change X to Y")
50
+ - Bug fix where root cause is already identified
51
+ - Zero unknowns / no mutables to resolve
52
+
53
+ Heavy ceremony (PRD + parallel subagents) is for multi-file architectural work or genuinely unknown fault surfaces. Writing a 7-item PRD for a 3-line change is waste. Err toward skipping — if a new unknown surfaces mid-work, THAT is when you regress to planning, not preemptively.
54
+
55
+ **Contrast examples:**
56
+ - "Fix the hold-detect logic at apcKey25.cpp:163" → SKIP planning. Read, edit, done.
57
+ - "Add drift correction and watchdog and observability across the USB audio path" → DO plan. Multi-file, multiple unknowns.
47
58
 
48
59
  ## OBSERVABILITY ENUMERATION — MANDATORY EVERY PASS
49
60