gm-oc 2.0.403 → 2.0.404

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gm-oc",
3
- "version": "2.0.403",
3
+ "version": "2.0.404",
4
4
  "description": "State machine agent with hooks, skills, and automated git enforcement",
5
5
  "author": "AnEntrypoint",
6
6
  "license": "MIT",
@@ -141,13 +141,15 @@ These rules apply to ALL phases. Violations trigger immediate snake to planning.
141
141
  - Clean ALL files not required for the program to function
142
142
 
143
143
  **CODE QUALITY**:
144
- - ALWAYS scan codebase (exec:codesearch) before editing to find existing implementations resolve duplicates immediately, NEVER duplicate existing functionality
145
- - DRY/clean/generalized/forward-thinking architecture immediately solve architectural issues, CONTINUOUSLY reorganize to be maximally concise/simple without losing functionality
146
- - Every extra symbol = technical debt enforce clean short concise functional code
147
- - ALWAYS write dynamic/modular code using ground truth ZERO hardcoded values
144
+ - ALWAYS scan codebase (exec:codesearch) before editing find everything that touches the same concern
145
+ - **Duplicate concern = snake to planning**: overlapping responsibility, similar logic in different places, parallel implementations, or code that could be consolidated. Snake to `planning` with consolidation instructions
146
+ - After every file write: run exec:codesearch for the primary function/concern you just wrote. If ANY other code serves the same concern → snake to `planning` with consolidation instructions. This is not optional — it is a gate
147
+ - When a native feature, stdlib function, or convention replaces custom code delete the custom code. When it would add code → do not use it
148
+ - When a naming convention, directory structure, or auto-discovery pattern can replace explicit registration or configuration → replace it
149
+ - ZERO hardcoded values — all values derived from ground truth, config, or convention
148
150
  - NO adjectives/descriptive language in code (variable/function names must be terse and functional)
149
151
  - No mocks/simulations/fallbacks/hardcoded/fake elements — delete on discovery
150
- - Set client-side debugging globals to make ALL client-side data accessible via simple REPL (window.__debug or similar)
152
+ - Client-side code: expose all state via debug globals (window.__debug or similar)
151
153
 
152
154
  **ERROR HANDLING**:
153
155
  - Every error must throw and propagate with clear context
@@ -159,17 +161,17 @@ These rules apply to ALL phases. Violations trigger immediate snake to planning.
159
161
  - Check git history (`git log`, `git diff`) for troubleshooting known regressions — never revert, use differential comparisons and edit new code manually
160
162
  - Keep execution logs concise (<4k chars ideal, 30k max)
161
163
  - Clear cache before playwright/browser debugging
162
- - Test locally when possible over live
163
164
 
164
- **DOCUMENTATION**:
165
- - CLAUDE.md: CONTINUOUSLY/IMMEDIATELY track technical info in realtime (NO progress/changelogs)
166
- - TODO.md: CONTINUOUSLY track persistent todos MUST completely clear/empty/delete before stopping
167
- - CHANGELOG.md: CONTINUOUSLY append concise change summaries
168
- - Deploy if deployable, publish to npm if package is on npm
165
+ **DOCUMENTATION** (update at every phase transition, not at the end):
166
+ - CLAUDE.md: after each structural change, update technical info. NO progress/changelogs
167
+ - TODO.md: add items when discovered, remove when done. File must not exist at completion
168
+ - CHANGELOG.md: append entry after each commit
169
+ - After push: deploy if deployable, publish if npm package
169
170
 
170
171
  **PROCESS**:
171
172
  - Only persistent background shells for long-running CLI processes
172
- - Manual testing ONLY — NO test files ever
173
+ - Test via exec: and browser skill — NO test files ever
174
+ - Test locally before live
173
175
 
174
176
  ## CONSTRAINTS
175
177
 
@@ -178,6 +180,6 @@ These rules apply to ALL phases. Violations trigger immediate snake to planning.
178
180
  **Tier 2**: no_duplication, no_hardcoded_values, modularity
179
181
  **Tier 3**: no_comments, convention_over_code
180
182
 
181
- **Never**: `Bash(node/npm/npx/bun)` | skip planning | sequential independent items | screenshot before JS exhausted | narrate past unresolved mutables | stop while .prd has items | ask the user what to do next while work remains | create fallback/demo modes | silently swallow errors | duplicate existing code | leave comments | create test files
183
+ **Never**: `Bash(node/npm/npx/bun)` | skip planning | sequential independent items | screenshot before JS exhausted | narrate past unresolved mutables | stop while .prd has items | ask the user what to do next while work remains | create fallback/demo modes | silently swallow errors | duplicate concern | leave comments | create test files | leave stale architecture when changes reveal restructuring opportunity
182
184
 
183
- **Always**: invoke named skill at every transition | snake to planning on any new unknown | witnessed execution only | scan codebase before edits | keep going until .prd deleted and git clean
185
+ **Always**: invoke named skill at every transition | snake to planning on any new unknown | snake to planning when duplicate concern or restructuring opportunity discovered | witnessed execution only | scan codebase before edits | keep going until .prd deleted and git clean
@@ -127,8 +127,8 @@ Before declaring complete, sweep the entire codebase for violations:
127
127
  3. **Test files** (.test.js, .spec.js, __tests__/) → delete
128
128
  4. **Mock/stub/simulation files** → delete
129
129
  5. **Unnecessary doc files** (not CHANGELOG/CLAUDE/README/TODO.md) → delete
130
- 6. **Duplicate code** → consolidate
131
- 7. **Hardcoded values** → extract to config/constants
130
+ 6. **Duplicate concern** (overlapping responsibility, similar logic, parallel implementations, consolidatable code) snake to `planning` with restructuring instructions — do not patch locally
131
+ 7. **Hardcoded values** → derive from ground truth, config, or convention
132
132
  8. **Fallback/demo modes** → remove, fail loud instead
133
133
  9. **TODO.md** → must be empty/deleted before completion
134
134
  10. **CHANGELOG.md** → must have entries for this session's changes
@@ -74,7 +74,7 @@ Pre-emit revealing unexpected behavior → new unknown → snake to `planning`.
74
74
  - Errors throw with clear context — no fallbacks, demo modes, silent swallowing, `|| default`, `catch { return null }`
75
75
  - No mocks/fakes/stubs/simulations/test files anywhere — delete on discovery
76
76
  - Files ≤200 lines — split immediately if over, do not advance
77
- - No duplicate codescan codebase for existing implementations before writing
77
+ - No duplicate concernafter writing, run exec:codesearch for the primary concern. If ANY other code serves the same concern → do NOT advance, snake to `planning` with consolidation instructions
78
78
  - No comments — remove any found
79
79
  - No hardcoded values — dynamic/modular code using ground truth only
80
80
  - No adjectives/descriptive language in variable/function names
@@ -99,7 +99,7 @@ Invoke `browser` skill. Escalation: (1) `exec:browser\n<js>` → (2) `browser` s
99
99
 
100
100
  ## SELF-CHECK (before and after each file)
101
101
 
102
- File ≤200 lines | No duplication | Pre-emit passed | No mocks | No comments | Docs match | All spotted issues fixed
102
+ File ≤200 lines | No duplicate concern | Pre-emit passed | No mocks | No comments | Docs match | All spotted issues fixed
103
103
 
104
104
  ## DO NOT STOP
105
105
 
@@ -116,7 +116,7 @@ Invoke `browser` skill. Escalation — exhaust each before advancing:
116
116
 
117
117
  Real services, real data, real timing. Mocks/fakes/stubs/simulations = delete immediately. No .test.js/.spec.js. Delete on discovery. No fallback/demo modes — errors must fail loud with clear logs.
118
118
 
119
- **SCAN BEFORE EDIT**: Before modifying or creating any file, search the codebase (exec:codesearch) for existing implementations of the same functionality. Resolve duplicates immediatelyNEVER duplicate existing code.
119
+ **SCAN BEFORE EDIT**: Before modifying or creating any file, search the codebase (exec:codesearch) for existing implementations of the same concern. "Duplicate" means overlapping responsibility, similar logic, or parallel implementations not just identical files. If consolidation is possible, snake to `planning` with restructuring instructions instead of continuing.
120
120
 
121
121
  **HYPOTHESIZE VIA EXECUTION**: Always troubleshoot and validate hypotheses through witnessed execution BEFORE editing files. Never edit based on assumptions — run the code first, observe the actual behavior, then edit with ground truth.
122
122
 
@@ -39,7 +39,7 @@ Planning = exhaustive mutable discovery. For every aspect of the task ask:
39
39
 
40
40
  Categories of unknowns to enumerate: file existence | API shape | data format | dependency versions | runtime behavior | environment differences | error conditions | concurrency | integration points | backwards compatibility | rollback paths | deployment steps | verification criteria
41
41
 
42
- **MANDATORY CODEBASE SCAN**: Before planning any new implementation, search (exec:codesearch) for existing code that already does what you need. Add `existingImpl=UNKNOWN` mutable for every new featureresolve by searching. Duplicating existing functionality is a Tier 2 violation.
42
+ **MANDATORY CODEBASE SCAN**: For every planned item, add `existingImpl=UNKNOWN` mutable. Resolve by running exec:codesearch for the concern (not the implementation). If existing code serves the same concern the .prd item becomes a consolidation task, not an addition. The plan restructures existing code to absorb the new requirementnever bolt new code alongside existing code that does related work.
43
43
 
44
44
  ## .PRD FORMAT
45
45