oh-my-customcode 0.99.2 → 0.100.0

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/README.md CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  **[한국어 문서 (Korean)](./README_ko.md)**
15
15
 
16
- 48 agents. 107 skills. 22 rules. One command.
16
+ 48 agents. 109 skills. 22 rules. One command.
17
17
 
18
18
  ```bash
19
19
  npm install -g oh-my-customcode && cd your-project && omcustom init
@@ -132,7 +132,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
132
132
 
133
133
  ---
134
134
 
135
- ### Skills (107)
135
+ ### Skills (109)
136
136
 
137
137
  | Category | Count | Includes |
138
138
  |----------|-------|----------|
@@ -272,7 +272,7 @@ your-project/
272
272
  ├── CLAUDE.md # Entry point
273
273
  ├── .claude/
274
274
  │ ├── agents/ # 48 agent definitions
275
- │ ├── skills/ # 107 skill modules
275
+ │ ├── skills/ # 109 skill modules
276
276
  │ ├── rules/ # 22 governance rules (R000-R021)
277
277
  │ ├── hooks/ # 15 lifecycle hook scripts
278
278
  │ ├── schemas/ # Tool input validation schemas
package/dist/cli/index.js CHANGED
@@ -2334,7 +2334,7 @@ var init_package = __esm(() => {
2334
2334
  workspaces: [
2335
2335
  "packages/*"
2336
2336
  ],
2337
- version: "0.99.2",
2337
+ version: "0.100.0",
2338
2338
  description: "Batteries-included agent harness for Claude Code",
2339
2339
  type: "module",
2340
2340
  bin: {
package/dist/index.js CHANGED
@@ -2014,7 +2014,7 @@ var package_default = {
2014
2014
  workspaces: [
2015
2015
  "packages/*"
2016
2016
  ],
2017
- version: "0.99.2",
2017
+ version: "0.100.0",
2018
2018
  description: "Batteries-included agent harness for Claude Code",
2019
2019
  type: "module",
2020
2020
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.99.2",
6
+ "version": "0.100.0",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: pre-generation-arch-check
3
+ description: Pre-generation architecture check — detect R006 separation-of-concerns and compilation metaphor violations before code generation begins
4
+ scope: core
5
+ user-invocable: false
6
+ version: 1.0.0
7
+ ---
8
+
9
+ # Pre-Generation Architecture Check
10
+
11
+ AASM-inspired pre-generation architecture guard. Detects design violations before code generation (the "pre-compile lint" phase), complementing adversarial-review and deep-verify which operate post-generation.
12
+
13
+ ## Overview
14
+
15
+ This skill fills the PRE-generation gap in the verification pipeline:
16
+
17
+ | Phase | Skill | When |
18
+ |-------|-------|------|
19
+ | Pre-generation | **pre-generation-arch-check** | Before code is written |
20
+ | Post-generation | adversarial-review | After code is written |
21
+ | Post-generation | deep-verify | After changes are committed |
22
+
23
+ Inspired by Contexty's AASM (AI Anti-pattern Severity Matrix) mechanism. Detects when a requested change might violate:
24
+ - R006 separation of concerns (agents vs skills vs guides)
25
+ - Compilation metaphor boundaries (source/build/spec/linker/stdlib)
26
+ - R010 orchestrator delegation rules
27
+ - Protected path rules (.claude/agents/, .claude/skills/, guides/)
28
+
29
+ ## Input
30
+
31
+ - **Request summary**: What the user or pipeline is asking to generate
32
+ - **Target files/paths**: Where changes will be made
33
+
34
+ ## Processing — Anti-Pattern Detection
35
+
36
+ Check for each of the following anti-patterns against the request summary and target paths:
37
+
38
+ ### 1. Skill-in-Agent (WARN)
39
+ An agent file (`.claude/agents/*.md`) body contains detailed step-by-step instructions, scripts, or workflow logic that belongs in a skill file.
40
+ - **Signal**: Agent body exceeds ~50 lines OR contains code blocks / numbered step sequences
41
+ - **Suggestion**: Extract instructions into `.claude/skills/{name}/SKILL.md`, reference from agent `skills:` frontmatter
42
+
43
+ ### 2. Agent-in-Skill (WARN)
44
+ A skill file contains agent configuration fields (`model:`, `tools:`, `memory:`, `permissionMode:`).
45
+ - **Signal**: Proposed skill SKILL.md frontmatter contains agent-only fields
46
+ - **Suggestion**: Move agent configuration to `.claude/agents/{name}.md`; keep skill focused on instructions
47
+
48
+ ### 3. Guide-in-Skill (WARN)
49
+ A skill file contains reference documentation, best-practices tutorials, or conceptual explanations that belong in `guides/`.
50
+ - **Signal**: Proposed SKILL.md body contains "## Background", "## Concepts", or sections > 100 lines of prose
51
+ - **Suggestion**: Move reference content to `guides/{topic}/`, link from skill
52
+
53
+ ### 4. Cross-Concern Write Without mgr-creator (BLOCK)
54
+ A single atomic change spans two or more of: `.claude/agents/`, `.claude/skills/`, `guides/` — without routing through mgr-creator.
55
+ - **Signal**: Target paths include files in 2+ protected directories in the same request
56
+ - **Suggestion**: Route the request through mgr-creator (R010 protected path rule)
57
+
58
+ ### 5. Direct Orchestrator Write (BLOCK)
59
+ An implementation step would have the orchestrator (main conversation) directly write or edit files, bypassing subagent delegation.
60
+ - **Signal**: Request implies "I will write X" from orchestrator context rather than "delegate to specialist"
61
+ - **Suggestion**: Delegate file writes to appropriate specialist agent per R010 delegation table
62
+
63
+ ### 6. Spec-Build Confusion (WARN)
64
+ Rules (`.claude/rules/`) are being modified in the same atomic change as source code or agent/skill files.
65
+ - **Signal**: Target paths include both `.claude/rules/*.md` and any code or `.claude/agents/` or `.claude/skills/` files
66
+ - **Suggestion**: Separate rule updates (spec changes) from agent/skill/code changes (build changes) into distinct commits
67
+
68
+ ## Output Format
69
+
70
+ When no violations are detected:
71
+
72
+ ```
73
+ [ARCH-CHECK] No violations detected — proceed with generation
74
+ ```
75
+
76
+ When violations are detected:
77
+
78
+ ```
79
+ [ARCH-WARNING] {count} potential violation(s) detected:
80
+ ├── {pattern-name} ({severity}): {description}
81
+ │ └── Suggestion: {fix}
82
+ ├── {pattern-name} ({severity}): {description}
83
+ │ └── Suggestion: {fix}
84
+ ```
85
+
86
+ ## Severity Levels
87
+
88
+ | Severity | Action |
89
+ |----------|--------|
90
+ | WARN | Advisory — proceed with caution, note in generation plan |
91
+ | BLOCK | Halt — requires architectural redesign before proceeding |
92
+
93
+ BLOCK violations must be resolved before generation continues. WARN violations are logged and surfaced to the user but do not halt execution (consistent with R021 advisory-first enforcement model).
94
+
95
+ ## Integration
96
+
97
+ Auto-invoked at structured-dev-cycle Phase 1 (planning phase) before any file generation begins.
98
+
99
+ This skill is advisory only — it does NOT hard-block execution. This is consistent with R021's advisory-first enforcement model. Future promotion to a PreToolUse hook is possible if violation rates warrant escalation.
100
+
101
+ Invocation pattern:
102
+ ```
103
+ [structured-dev-cycle Phase 1]
104
+ → pre-generation-arch-check
105
+ → returns [ARCH-CHECK] or [ARCH-WARNING]
106
+ → continue to Phase 2 (generation) with findings surfaced
107
+ ```
108
+
109
+ ## Cross-References
110
+
111
+ - `.claude/rules/MUST-agent-design.md` (R006) — separation of concerns
112
+ - `.claude/rules/MUST-orchestrator-coordination.md` (R010) — protected paths and delegation
113
+ - `.claude/skills/adversarial-review/` — post-generation security counterpart
114
+ - `.claude/skills/deep-verify/` — post-generation quality counterpart
115
+ - Source concept: Contexty AASM (https://github.com/ttalkkak-lab/opencode-contexty)
@@ -0,0 +1,242 @@
1
+ ---
2
+ name: token-efficiency-audit
3
+ description: Three-layer token defense stack — audit current settings, apply safe/CI levers, and monitor status
4
+ scope: package
5
+ user-invocable: true
6
+ argument-hint: "[audit|apply-interactive|apply-ci|status]"
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # Token Efficiency Audit Skill
11
+
12
+ Layer 3 of the three-layer token defense stack. Audits current Claude Code settings against the token efficiency lever reference table, applies safe interactive levers, and reports combined layer status.
13
+
14
+ Reference guide: `guides/claude-code/14-token-efficiency.md`
15
+
16
+ ## Three-Layer Stack
17
+
18
+ ```
19
+ ┌─────────────────────────────────────────────────────────────────┐
20
+ │ Layer 1: cc-token-saver (CACHE DEFENSE) │
21
+ │ Before session — protect prompt cache TTL from idle expiry │
22
+ ├─────────────────────────────────────────────────────────────────┤
23
+ │ Layer 2: R013 Ecomode (RUNTIME COMPRESSION) │
24
+ │ During session — compact output, aggregate results, prune input│
25
+ ├─────────────────────────────────────────────────────────────────┤
26
+ │ Layer 3: token-efficiency-audit (PRE-SESSION PREVENTION) │
27
+ │ Config time — disable injections before they happen │
28
+ └─────────────────────────────────────────────────────────────────┘
29
+ ```
30
+
31
+ Each layer is independently deployable and non-overlapping. Layer 3 (this skill) operates at config time — it prevents overhead from ever entering the context window.
32
+
33
+ ## Modes
34
+
35
+ ### audit (default)
36
+
37
+ 1. Read `.claude/settings.json` (project-level, git-tracked)
38
+ 2. Read `.claude/settings.local.json` (local, not git-tracked)
39
+ 3. Check each lever from the Interactive Session Levers table in the guide:
40
+ - `includeGitInstructions`
41
+ - `autoConnectIde`
42
+ - `attribution.commit`
43
+ - `attribution.pr`
44
+ - `env.BASH_MAX_OUTPUT_LENGTH`
45
+ - `env.CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS`
46
+ - `env.MAX_MCP_OUTPUT_TOKENS`
47
+ 4. Output a table:
48
+
49
+ ```
50
+ [Token Efficiency Audit]
51
+ Reference: guides/claude-code/14-token-efficiency.md (CC v2.1.114+)
52
+
53
+ | Lever | Current | Recommended | Gap | Location |
54
+ |-------------------------------------|-------------|-------------|--------|-----------------------|
55
+ | includeGitInstructions | true | false | ⚠ SET | settings.json |
56
+ | autoConnectIde | true | false | ⚠ SET | settings.json |
57
+ | attribution.commit | auto text | "" | ⚠ SET | settings.json |
58
+ | attribution.pr | auto text | "" | ⚠ SET | settings.json |
59
+ | BASH_MAX_OUTPUT_LENGTH | unlimited | 15000 | ⚠ SET | settings.local.json |
60
+ | CLAUDE_CODE_FILE_READ_MAX_OUTPUT... | unlimited | 8000 | ⚠ SET | settings.local.json |
61
+ | MAX_MCP_OUTPUT_TOKENS | unlimited | 8000 | ⚠ SET | settings.local.json |
62
+
63
+ Run /token-efficiency-audit apply-interactive to apply all safe levers.
64
+ ```
65
+
66
+ Gap column values:
67
+ - `OK` — already at recommended value
68
+ - `⚠ SET` — currently at default, recommended change available
69
+ - `CUSTOM` — non-default value that differs from recommendation (display actual value)
70
+
71
+ ### apply-interactive
72
+
73
+ Applies Interactive Session Levers only (safe for development use).
74
+
75
+ 1. Read `.claude/settings.json` and `.claude/settings.local.json` (create if not exists)
76
+ 2. Apply to `settings.json`:
77
+ ```json
78
+ {
79
+ "includeGitInstructions": false,
80
+ "autoConnectIde": false,
81
+ "attribution": {
82
+ "commit": "",
83
+ "pr": ""
84
+ }
85
+ }
86
+ ```
87
+ 3. Apply to `settings.local.json` (env block):
88
+ ```json
89
+ {
90
+ "env": {
91
+ "BASH_MAX_OUTPUT_LENGTH": "15000",
92
+ "CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS": "8000",
93
+ "MAX_MCP_OUTPUT_TOKENS": "8000"
94
+ }
95
+ }
96
+ ```
97
+ 4. Preserve all existing settings (merge, do not overwrite unrelated keys)
98
+ 5. Report applied changes:
99
+ ```
100
+ [Done] Interactive levers applied
101
+
102
+ settings.json:
103
+ includeGitInstructions: true → false
104
+ autoConnectIde: true → false
105
+ attribution.commit: (auto) → ""
106
+ attribution.pr: (auto) → ""
107
+
108
+ settings.local.json:
109
+ BASH_MAX_OUTPUT_LENGTH: (none) → 15000
110
+ CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS: (none) → 8000
111
+ MAX_MCP_OUTPUT_TOKENS: (none) → 8000
112
+
113
+ Note: settings.json is git-tracked. Commit if appropriate.
114
+ Takes effect on next claude session restart.
115
+ ```
116
+
117
+ ### apply-ci
118
+
119
+ Applies CI/Worker-Only Levers. These disable core oh-my-customcode functionality.
120
+
121
+ **R001 Risk: HIGH** — Display this warning prominently BEFORE applying:
122
+
123
+ ```
124
+ ⚠ WARNING — CI/WORKER LEVERS
125
+
126
+ These settings disable core oh-my-customcode functionality:
127
+ • CLAUDE_CODE_DISABLE_CLAUDE_MDS=1 → ALL rules and routing offline (R010 disabled)
128
+ • CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1 → All 48 agents unavailable
129
+ • ENABLE_CLAUDEAI_MCP_SERVERS=false → MCP-dependent skills unavailable
130
+ • CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 → No persistent memory across sessions
131
+
132
+ Only use for CI/worker pipelines. Never apply to interactive development sessions.
133
+
134
+ Type "yes" to confirm, or anything else to cancel:
135
+ ```
136
+
137
+ 1. Require explicit user confirmation ("yes") before proceeding
138
+ 2. On confirmation, apply to `settings.local.json`:
139
+ ```json
140
+ {
141
+ "env": {
142
+ "CLAUDE_CODE_DISABLE_CLAUDE_MDS": "1",
143
+ "CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS": "1",
144
+ "ENABLE_CLAUDEAI_MCP_SERVERS": "false",
145
+ "CLAUDE_CODE_DISABLE_AUTO_MEMORY": "1"
146
+ }
147
+ }
148
+ ```
149
+ 3. Report:
150
+ ```
151
+ [Done] CI/Worker levers applied to settings.local.json
152
+
153
+ This file is NOT git-tracked.
154
+ To undo: remove the four env keys or run /token-efficiency-audit status
155
+ ```
156
+ 4. On cancellation: `[Cancelled] No changes made.`
157
+
158
+ ### status
159
+
160
+ Reports current state of all three layers.
161
+
162
+ 1. Check Layer 1 — cc-token-saver:
163
+ - Check if plugin is present (look for cc-token-saver in `.claude/` plugin config or known plugin markers)
164
+ - Report: Installed / Not installed
165
+ 2. Check Layer 2 — R013 Ecomode:
166
+ - Read `.claude/settings.json` for ecomode config
167
+ - Report: threshold, result_format, max_result_length if set; otherwise "auto-threshold (4 tasks)"
168
+ 3. Check Layer 3 — Settings levers:
169
+ - Run the same lever checks as `audit` mode
170
+ - Summarize: N/7 levers at recommended values
171
+ 4. Check OTel availability:
172
+ - Look for `CLAUDE_CODE_ENABLE_TELEMETRY` in settings
173
+ - If present: report "OTel enabled — use /monitoring-setup status for metrics"
174
+ 5. Output:
175
+
176
+ ```
177
+ [Token Efficiency Status]
178
+
179
+ Layer 1: cc-token-saver ✓ Installed / ✗ Not installed
180
+ Layer 2: R013 Ecomode ✓ Active (threshold: 4) / ✗ Not configured
181
+ Layer 3: Settings levers 4/7 at recommended
182
+
183
+ Layer 3 details:
184
+ includeGitInstructions: false ✓
185
+ autoConnectIde: true ⚠
186
+ attribution.commit: "" ✓
187
+ attribution.pr: "" ✓
188
+ BASH_MAX_OUTPUT_LENGTH: 15000 ✓
189
+ CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS: unlimited ⚠
190
+ MAX_MCP_OUTPUT_TOKENS: unlimited ⚠
191
+
192
+ Run /token-efficiency-audit apply-interactive to fix ⚠ levers.
193
+ OTel: not enabled — run /monitoring-setup enable to measure effectiveness.
194
+ ```
195
+
196
+ ## Codex Levers
197
+
198
+ When Codex CLI is in use (detected by presence of `~/.codex/config.toml`):
199
+
200
+ Recommended settings in `config.toml`:
201
+ ```toml
202
+ [features]
203
+ apps = false
204
+
205
+ [apps._default]
206
+ enabled = false
207
+
208
+ web_search = "disabled"
209
+
210
+ tool_output_token_limit = 10000
211
+ ```
212
+
213
+ Non-interactive Codex CLI flag reference: `guides/claude-code/13-cli-flags.md`
214
+
215
+ ## Guardrails
216
+
217
+ ### The Re-Call Trap
218
+
219
+ Setting output limits too low forces repeated re-call loops — the model issues `tail -n 50 output.txt` or re-reads files in chunks, costing more tokens than the original uncapped output.
220
+
221
+ **Enforce these minimum floors (never go below):**
222
+
223
+ | Variable | Safe minimum | Recommended |
224
+ |----------|-------------|-------------|
225
+ | `BASH_MAX_OUTPUT_LENGTH` | 10000 | 15000 |
226
+ | `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 4000 | 8000 |
227
+ | `MAX_MCP_OUTPUT_TOKENS` | 4000 | 8000 |
228
+ | Codex `tool_output_token_limit` | 5000 | 10000 |
229
+
230
+ If a user requests values below these floors, warn them of the re-call trap risk before applying.
231
+
232
+ ### Version Drift
233
+
234
+ Settings defaults change with minor CC version releases. After each upgrade, re-run `/token-efficiency-audit audit` to verify active defaults. Reference baseline: CC v2.1.114+ / Codex v0.121.0+.
235
+
236
+ ## Cross-References
237
+
238
+ - `guides/claude-code/14-token-efficiency.md` — Full three-layer stack guide and lever table
239
+ - `.claude/rules/SHOULD-ecomode.md` (R013) — Layer 2 specification
240
+ - `.claude/skills/monitoring-setup/SKILL.md` — Measure effectiveness via OTel metrics
241
+ - `guides/cc-token-saver/README.md` — Layer 1 detailed guide
242
+ - `guides/claude-code/13-cli-flags.md` — Non-interactive/CI CLI flags
@@ -114,7 +114,7 @@ project/
114
114
  +-- CLAUDE.md # 진입점
115
115
  +-- .claude/
116
116
  | +-- agents/ # 서브에이전트 정의 (48 파일)
117
- | +-- skills/ # 스킬 (107 디렉토리)
117
+ | +-- skills/ # 스킬 (109 디렉토리)
118
118
  | +-- rules/ # 전역 규칙 (R000-R022)
119
119
  | +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
120
120
  | +-- contexts/ # 컨텍스트 파일 (ecomode)
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.99.2",
2
+ "version": "0.100.0",
3
3
  "lastUpdated": "2026-04-18T00:00:00.000Z",
4
4
  "components": [
5
5
  {
@@ -18,7 +18,7 @@
18
18
  "name": "skills",
19
19
  "path": ".claude/skills",
20
20
  "description": "Reusable skill modules (includes slash commands)",
21
- "files": 107
21
+ "files": 109
22
22
  },
23
23
  {
24
24
  "name": "guides",