oh-my-customcode 0.91.0 → 0.92.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. 105 skills. 22 rules. One command.
16
+ 48 agents. 106 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 (105)
135
+ ### Skills (106)
136
136
 
137
137
  | Category | Count | Includes |
138
138
  |----------|-------|----------|
@@ -222,7 +222,7 @@ Key rules: R010 (orchestrator never writes files), R009 (parallel execution mand
222
222
 
223
223
  ---
224
224
 
225
- ### Guides (36)
225
+ ### Guides (37)
226
226
 
227
227
  Reference documentation covering best practices, architecture decisions, and integration patterns. Located in `guides/` at project root, covering topics from agent design to CI/CD to observability.
228
228
 
@@ -272,14 +272,14 @@ your-project/
272
272
  ├── CLAUDE.md # Entry point
273
273
  ├── .claude/
274
274
  │ ├── agents/ # 48 agent definitions
275
- │ ├── skills/ # 105 skill modules
275
+ │ ├── skills/ # 106 skill modules
276
276
  │ ├── rules/ # 22 governance rules (R000-R021)
277
277
  │ ├── hooks/ # 15 lifecycle hook scripts
278
278
  │ ├── schemas/ # Tool input validation schemas
279
279
  │ ├── specs/ # Extracted canonical specs
280
280
  │ ├── contexts/ # 4 shared context files
281
281
  │ └── ontology/ # Knowledge graph for RAG
282
- └── guides/ # 36 reference documents
282
+ └── guides/ # 37 reference documents
283
283
  ```
284
284
 
285
285
  ---
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.91.0",
2337
+ version: "0.92.0",
2338
2338
  description: "Batteries-included agent harness for Claude Code",
2339
2339
  type: "module",
2340
2340
  bin: {
package/dist/index.js CHANGED
@@ -2007,7 +2007,7 @@ var package_default = {
2007
2007
  workspaces: [
2008
2008
  "packages/*"
2009
2009
  ],
2010
- version: "0.91.0",
2010
+ version: "0.92.0",
2011
2011
  description: "Batteries-included agent harness for Claude Code",
2012
2012
  type: "module",
2013
2013
  bin: {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "workspaces": [
4
4
  "packages/*"
5
5
  ],
6
- "version": "0.91.0",
6
+ "version": "0.92.0",
7
7
  "description": "Batteries-included agent harness for Claude Code",
8
8
  "type": "module",
9
9
  "bin": {
@@ -103,3 +103,12 @@ The `context-budget-advisor.sh` hook monitors context usage and emits warnings w
103
103
  - Does NOT override explicit user settings
104
104
  - Advisory only — never blocks operations
105
105
  - Context percentage from statusline data when available
106
+
107
+ ## Token Guardian Coexistence (cc-token-saver)
108
+
109
+ | Component | Trigger | Scope |
110
+ |-----------|---------|-------|
111
+ | `context-budget-advisor.sh` (R013) | Context usage % approaching threshold | In-session budget |
112
+ | Token Guardian (cc-token-saver) | 1h cache TTL idle detection | Cross-session cost |
113
+
114
+ Both can run simultaneously — different triggers, complementary coverage. R013's context budget is usage-based (approaching limit), Token Guardian is time-based (idle cache expiry).
@@ -41,3 +41,11 @@ RL/WL segments omitted on CC older than v2.1.80.
41
41
  ## Integration
42
42
 
43
43
  Integrates with R007 (Agent ID), R008 (Tool ID), R009 (Parallel).
44
+
45
+ ## External Plugin Statusline Conflict
46
+
47
+ | Plugin | Component | Resolution |
48
+ |--------|-----------|------------|
49
+ | cc-token-saver | Live Status Line | R012 `.claude/statusline.sh` has priority. Disable cc-token-saver statusline to avoid duplicate status bars. |
50
+
51
+ Internal statusline (`.claude/statusline.sh`) is the primary status display. External plugin status lines are supplementary or disabled.
@@ -67,6 +67,20 @@ policy_cache:
67
67
 
68
68
  Policy caching reduces redundant LLM calls for well-understood workflows. Policies are advisory — the orchestrator may override.
69
69
 
70
+ ## Code Harness Integration (AutoHarness)
71
+
72
+ When a synthesized harness exists for an agent (`.claude/outputs/harnesses/{agent-name}-*.yaml`), action-validator can use it for enhanced validation:
73
+
74
+ | Mode | Source | Behavior |
75
+ |------|--------|----------|
76
+ | Advisory (default) | Prompt-based checks | Emit warnings only |
77
+ | Code-verified | harness-synthesizer output | Run harness validation code, emit advisory results |
78
+ | Hard-enforce (opt-in) | harness-synthesizer `--hard-enforce` | Block invalid actions (requires explicit opt-in, see R021) |
79
+
80
+ To generate a harness for an agent: `/harness-synthesizer --agent {name} --mode verifier`
81
+
82
+ Code harness validation is additive — it supplements prompt-based checks, not replaces them.
83
+
70
84
  ## Scope
71
85
 
72
86
  This skill is an advisory layer, not a hard enforcement mechanism:
@@ -0,0 +1,145 @@
1
+ ---
2
+ name: harness-synthesizer
3
+ description: Synthesize code harnesses for agent action validation — AutoHarness-inspired verifier/filter/policy generation
4
+ scope: core
5
+ version: 1.0.0
6
+ user-invocable: true
7
+ argument-hint: "[--mode verifier|filter|policy] [--agent <name>] [--dry-run]"
8
+ effort: high
9
+ ---
10
+
11
+ # Harness Synthesizer Skill
12
+
13
+ ## Purpose
14
+
15
+ Synthesize executable validation harnesses for agent tool calls, inspired by AutoHarness (Google DeepMind, arxiv 2603.03329). Generates code-level verifiers that check action validity before or after execution, reducing agent errors through structured constraint enforcement.
16
+
17
+ Default mode is advisory (verifier). Hard enforcement requires explicit `--hard-enforce` opt-in per R021.
18
+
19
+ ## Three Modes
20
+
21
+ | Mode | Flag | Behavior | Enforcement |
22
+ |------|------|----------|-------------|
23
+ | `verifier` | default | Post-hoc check: validates tool call results after execution | Advisory only |
24
+ | `filter` | `--mode filter` | Pre-execution check: blocks invalid tool calls | Opt-in, requires `--hard-enforce` |
25
+ | `policy` | `--mode policy` | Suggests the best valid action from available options | Advisory only |
26
+
27
+ ### Verifier Mode (Default)
28
+
29
+ Generates a YAML harness that describes post-execution checks for each tool the agent uses. Checks are emitted as advisory warnings — they do not block execution.
30
+
31
+ ```yaml
32
+ # Example verifier harness output
33
+ harness:
34
+ agent: lang-golang-expert
35
+ mode: verifier
36
+ rules:
37
+ - tool: Write
38
+ checks:
39
+ - field: file_path
40
+ pattern: ".*\\.go$"
41
+ on_fail: warn # advisory
42
+ - field: content
43
+ must_not_contain: "TODO:"
44
+ on_fail: warn
45
+ - tool: Bash
46
+ checks:
47
+ - command_pattern: "^(go build|go test|go fmt|go vet)"
48
+ on_fail: warn
49
+ ```
50
+
51
+ ### Filter Mode (Opt-in)
52
+
53
+ Generates pre-execution filter rules. Requires `--hard-enforce` flag. Used when advisory warnings are insufficient and the risk of invalid actions is high.
54
+
55
+ ```yaml
56
+ # Example filter harness output (--hard-enforce)
57
+ harness:
58
+ agent: mgr-gitnerd
59
+ mode: filter
60
+ enforcement: hard
61
+ rules:
62
+ - tool: Bash
63
+ blocks:
64
+ - pattern: "git push --force"
65
+ reason: "Force push to protected branch"
66
+ - pattern: "git reset --hard"
67
+ reason: "Destructive reset without confirmation"
68
+ ```
69
+
70
+ ### Policy Mode
71
+
72
+ Generates a policy function that ranks valid actions and suggests the best one. Useful for agents with multiple valid paths to the same goal.
73
+
74
+ ```yaml
75
+ # Example policy harness output
76
+ harness:
77
+ agent: qa-engineer
78
+ mode: policy
79
+ policies:
80
+ - scenario: "test file modification"
81
+ preferred_sequence:
82
+ - tool: Read
83
+ reason: "Read before modifying"
84
+ - tool: Edit
85
+ reason: "Edit is safer than Write for existing files"
86
+ avoid:
87
+ - tool: Write
88
+ on_existing_file: true
89
+ reason: "Overwrites without diff"
90
+ ```
91
+
92
+ ## Workflow
93
+
94
+ 1. **Read target agent frontmatter** — extract `tools`, `domain`, `limitations` fields
95
+ 2. **Analyze recent tool call patterns** — check `.claude/outputs/` for prior session logs (if available)
96
+ 3. **Synthesize validation harness** — generate YAML harness matching agent's declared capabilities
97
+ 4. **Refine via evaluator-optimizer loop** — iterate harness against edge cases (3 rounds max)
98
+ 5. **Save output** — write to `.claude/outputs/harnesses/{agent-name}-{mode}.yaml`
99
+ 6. **Report** — print harness summary and integration instructions
100
+
101
+ ## Integration
102
+
103
+ | System | How |
104
+ |--------|-----|
105
+ | `action-validator` | Harness output feeds into action-validator's code-verified mode |
106
+ | `adaptive-harness --learn` | Auto-triggers harness-synthesizer for project-specific patterns |
107
+ | `evaluator-optimizer` | Provides iterative refinement loop (gradient-free optimization) |
108
+ | `pipeline-guards` | Harness checks usable as pipeline quality gates |
109
+
110
+ ## Usage Examples
111
+
112
+ ```bash
113
+ # Generate advisory verifier for lang-golang-expert
114
+ /harness-synthesizer --agent lang-golang-expert --mode verifier
115
+
116
+ # Dry-run: preview harness without saving
117
+ /harness-synthesizer --agent mgr-gitnerd --mode filter --dry-run
118
+
119
+ # Generate hard-enforce filter (explicit opt-in)
120
+ /harness-synthesizer --agent mgr-gitnerd --mode filter --hard-enforce
121
+
122
+ # Generate policy harness
123
+ /harness-synthesizer --agent qa-engineer --mode policy
124
+ ```
125
+
126
+ ## R021 Compliance
127
+
128
+ - Default `verifier` mode: advisory only — never blocks tool execution
129
+ - `filter` mode without `--hard-enforce`: advisory only — emits warnings
130
+ - `filter --hard-enforce`: opt-in hard enforcement — requires explicit user flag
131
+ - All harness output is saved to `.claude/outputs/harnesses/` (git-untracked)
132
+
133
+ ## Output Format
134
+
135
+ Harnesses are saved as YAML at `.claude/outputs/harnesses/{agent-name}-{mode}.yaml`. Each harness includes:
136
+
137
+ ```yaml
138
+ harness:
139
+ agent: {agent-name}
140
+ mode: verifier | filter | policy
141
+ version: 1.0.0
142
+ generated: {ISO-8601 timestamp}
143
+ enforcement: advisory | hard # hard only with --hard-enforce
144
+ rules: [...]
145
+ ```
@@ -135,6 +135,7 @@ oh-my-customcode로 구동됩니다.
135
135
  | `/skill-extractor` | 세션 성공 패턴에서 스킬 후보 추출 |
136
136
  | `/deep-plan` | 연구 검증 기반 계획 수립 (research → plan → verify) |
137
137
  | `/deep-verify` | 다중 관점 릴리즈 품질 검증 |
138
+ | `/harness-synthesizer` | 에이전트 액션 검증용 코드 하네스 합성 (AutoHarness 기반) |
138
139
  | `/professor-triage` | 이슈 교차 분석 트리아지 (omc_issue_analyzer 댓글 기반) |
139
140
  | `/release-plan` | verify-done 이슈 릴리즈 유닛 계획 생성 |
140
141
  | `/pipeline` | YAML 파이프라인 실행 (예: /pipeline auto-dev) |
@@ -157,11 +158,11 @@ project/
157
158
  +-- CLAUDE.md # 진입점
158
159
  +-- .claude/
159
160
  | +-- agents/ # 서브에이전트 정의 (48 파일)
160
- | +-- skills/ # 스킬 (105 디렉토리)
161
+ | +-- skills/ # 스킬 (106 디렉토리)
161
162
  | +-- rules/ # 전역 규칙 (R000-R022)
162
163
  | +-- hooks/ # 훅 스크립트 (보안, 검증, HUD)
163
164
  | +-- contexts/ # 컨텍스트 파일 (ecomode)
164
- +-- guides/ # 레퍼런스 문서 (36 토픽)
165
+ +-- guides/ # 레퍼런스 문서 (37 토픽)
165
166
  ```
166
167
 
167
168
  ## 오케스트레이션
@@ -273,6 +274,12 @@ Claude Code의 Agent Teams 기능이 활성화되어 있으면 (`CLAUDE_CODE_EXP
273
274
  | obsidian-skills | - | 옵시디언 마크다운 지원 |
274
275
  | context7 | claude-plugins-official | 라이브러리 문서 조회 |
275
276
 
277
+ ### 권장 플러그인
278
+
279
+ | 플러그인 | 소스 | 용도 |
280
+ |----------|------|------|
281
+ | cc-token-saver | ww-w-ai/cc-token-saver | 토큰/비용 최적화 (Token Guardian, /continue, /usage-view) |
282
+
276
283
  ### 권장 MCP 서버
277
284
 
278
285
  | 서버 | 용도 |
@@ -0,0 +1,97 @@
1
+ # cc-token-saver Integration Guide
2
+
3
+ > **Source**: https://github.com/ww-w-ai/cc-token-saver (Apache-2.0)
4
+ > **Strategy**: External plugin — keep as plugin, no internalization
5
+
6
+ ## Installation
7
+
8
+ ```bash
9
+ claude plugin marketplace add ww-w-ai/cc-token-saver
10
+ claude plugin install cc-token-saver
11
+ ```
12
+
13
+ ## Feature Overview
14
+
15
+ | Feature | Description |
16
+ |---------|-------------|
17
+ | Token Guardian | Detects 1h prompt cache TTL idle expiry and warns before cache invalidates |
18
+ | Smart Session Architecture | Auto-injects SubTask delegation patterns into context |
19
+ | `/continue` | Zero-cost context restore after session pause |
20
+ | Live Status Line | Real-time token/cost status bar |
21
+ | `/usage-view` | Cost dashboard showing per-session and cumulative spend |
22
+ | `/report-limit` | Community-sourced rate limit reporting |
23
+
24
+ ## Conflict Resolution with oh-my-customcode
25
+
26
+ ### Live Status Line (R012 Priority)
27
+
28
+ oh-my-customcode runs its own statusline via `.claude/statusline.sh` (R012). Two simultaneous status bars create visual clutter.
29
+
30
+ **Resolution**: R012 statusline has priority. Disable cc-token-saver's Live Status Line:
31
+
32
+ ```bash
33
+ # In cc-token-saver config (if supported), or ignore its statusline output
34
+ # oh-my-customcode statusline is configured in .claude/settings.local.json
35
+ ```
36
+
37
+ The R012 statusline already covers: Cost, Rate Limit %, Weekly Limit %, Context %. cc-token-saver's Live Status Line is redundant when R012 is active.
38
+
39
+ ### SubTask Delegation (R009/R010/R018 Priority)
40
+
41
+ cc-token-saver's Smart Session Architecture auto-injects SubTask delegation patterns. oh-my-customcode has its own delegation rules (R010) and parallel execution rules (R009/R018).
42
+
43
+ **Resolution**: Internal rules always take precedence (R010 External Skills vs Internal Rules).
44
+
45
+ | cc-token-saver suggests | oh-my-customcode rule |
46
+ |-------------------------|----------------------|
47
+ | Use SubTask for delegation | Agent tool via routing skills (R010) |
48
+ | Sequential delegation pattern | Parallel when independent (R009) |
49
+ | Generic subtask agent | Specialized agent by domain (R010) |
50
+
51
+ Ignore cc-token-saver's SubTask suggestions when they conflict with R009/R010/R018.
52
+
53
+ ### Token Guardian ↔ R013 context-budget-advisor.sh (Coexistence)
54
+
55
+ These two components solve different problems and can run simultaneously:
56
+
57
+ | Component | Trigger | Scope |
58
+ |-----------|---------|-------|
59
+ | `context-budget-advisor.sh` (R013) | Context usage % approaching threshold | In-session budget management |
60
+ | Token Guardian (cc-token-saver) | 1h cache TTL idle detection | Cross-session cache cost |
61
+
62
+ **No conflict** — Token Guardian fires on idle time, R013 fires on context percentage. Both warnings are useful.
63
+
64
+ ## Usage Scenarios
65
+
66
+ ### `/continue` — Zero-cost context restore
67
+
68
+ Use after interrupting and resuming a session. Restores context without re-spending tokens.
69
+
70
+ ```
71
+ /continue
72
+ ```
73
+
74
+ Best for: returning to a paused task, recovering from accidental session close.
75
+
76
+ ### `/usage-view` — Cost dashboard
77
+
78
+ ```
79
+ /usage-view
80
+ ```
81
+
82
+ Shows per-session and cumulative cost. Useful for budget tracking across long sessions.
83
+
84
+ ### `/report-limit` — Community rate limit data
85
+
86
+ ```
87
+ /report-limit
88
+ ```
89
+
90
+ Reports your current rate limit hit to the community pool and shows aggregate rate limit data from other users. Helps gauge when limits reset.
91
+
92
+ ## Integration Notes
93
+
94
+ - R013 ecomode and Token Guardian are complementary, not competing
95
+ - R012 statusline supersedes cc-token-saver's Live Status Line
96
+ - R009/R010/R018 delegation rules override cc-token-saver's SubTask patterns
97
+ - `/continue`, `/usage-view`, `/report-limit` have no conflicts with internal rules — use freely
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.91.0",
3
- "lastUpdated": "2026-04-17T00:00:00.000Z",
2
+ "version": "0.92.0",
3
+ "lastUpdated": "2026-04-18T00:00:00.000Z",
4
4
  "components": [
5
5
  {
6
6
  "name": "rules",
@@ -18,13 +18,13 @@
18
18
  "name": "skills",
19
19
  "path": ".claude/skills",
20
20
  "description": "Reusable skill modules (includes slash commands)",
21
- "files": 105
21
+ "files": 106
22
22
  },
23
23
  {
24
24
  "name": "guides",
25
25
  "path": "guides",
26
26
  "description": "Reference documentation",
27
- "files": 36
27
+ "files": 37
28
28
  },
29
29
  {
30
30
  "name": "hooks",