oh-my-customcode 0.106.1 → 0.107.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/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/rules/MUST-agent-design.md +11 -15
- package/templates/guides/agent-design/pal-cost-routing-analysis.md +93 -0
- package/templates/guides/claude-code/15-version-compatibility.md +61 -0
- package/templates/manifest.json +1 -1
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -234,26 +234,21 @@ Skills persist output to `.claude/outputs/sessions/{YYYY-MM-DD}/{skill-name}-{HH
|
|
|
234
234
|
|
|
235
235
|
CC treats `.claude/` as a sensitive directory, enforced across **all tool categories** — Bash, Write, and Edit. The sensitive-path check runs **above** `bypassPermissions` and explicit allow rules (e.g., `Write(.claude/**)`), so operations on sensitive paths may trigger permission prompts regardless of settings.
|
|
236
236
|
|
|
237
|
-
####
|
|
237
|
+
#### Sensitive Path Behavior
|
|
238
238
|
|
|
239
|
-
| Path
|
|
240
|
-
|
|
241
|
-
| `.claude/**` |
|
|
242
|
-
|
|
|
243
|
-
|
|
|
244
|
-
|
|
245
|
-
#### Behavior
|
|
246
|
-
|
|
247
|
-
| Tool | Allow rule | Result |
|
|
248
|
-
|------|-----------|--------|
|
|
249
|
-
| `Bash(cp ...)` on `.claude/` | `Bash(*)` allowed | Prompt (sensitive-path overrides) |
|
|
250
|
-
| `Write(.claude/**)` | `Write(.claude/**)` allowed | Prompt (sensitive-path overrides) |
|
|
251
|
-
| `Edit(templates/.claude/**)` | `Edit(templates/.claude/**)` allowed | Prompt (sensitive-path overrides) |
|
|
239
|
+
| Path | Tool | Allow rule | Result |
|
|
240
|
+
|------|------|-----------|--------|
|
|
241
|
+
| `.claude/**` | Bash (`cp`, `mkdir`, `rm`) | `Bash(*)` allowed | Prompt (sensitive-path overrides) |
|
|
242
|
+
| `.claude/**` | Write, Edit | `Write(.claude/**)` allowed | Prompt (sensitive-path overrides) |
|
|
243
|
+
| `templates/.claude/**` | Write, Edit | `Write(templates/.claude/**)` allowed | Prompt (confirmed CC v2.1.116+; see #960, #961, #981) |
|
|
244
|
+
| `.claude/outputs/**` | Any | — | Allowed (artifact convention) |
|
|
252
245
|
|
|
253
246
|
#### Recommended practice
|
|
254
247
|
|
|
255
|
-
1. **Prefer `Write`/`Edit` over `Bash(cp)`/`Bash(mkdir)`** —
|
|
248
|
+
1. **Prefer `Write`/`Edit` over `Bash(cp)`/`Bash(mkdir)`** — `Write`/`Edit` provide better auditability and avoid shell injection risk
|
|
256
249
|
2. **Add allow rules defensively** — `Write(.claude/**)`, `Edit(.claude/**)`, `Write(templates/.claude/**)`, `Edit(templates/.claude/**)` in `.claude/settings.local.json`. Rules may not bypass sensitive-path check but document intent and aid future CC behavior changes
|
|
250
|
+
|
|
251
|
+
<!--
|
|
257
252
|
3. **Accept interactive prompts as a release-pipeline constraint** — `templates/.claude/` sync during release automation requires human approval; plan release windows accordingly
|
|
258
253
|
4. **This is CC design behavior, not a bug** — sensitive-path check is a defense-in-depth layer. File upstream as a documentation request (not bug report) if behavior is unclear
|
|
259
254
|
|
|
@@ -261,6 +256,7 @@ CC treats `.claude/` as a sensitive directory, enforced across **all tool catego
|
|
|
261
256
|
|
|
262
257
|
- `feedback_sensitive_path.md` — session memory with Bash + Write scope (#960, #961, #981)
|
|
263
258
|
- `feedback_templates_claude_glob.md` — `.claude/**` glob does not cover `templates/.claude/**`, separate allow rules required
|
|
259
|
+
-->
|
|
264
260
|
|
|
265
261
|
### Artifact Channel Protocol
|
|
266
262
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# PAL Router vs model-escalation — Cost Routing Analysis
|
|
2
|
+
|
|
3
|
+
> Source: #992 (ouroboros PAL Router internalization analysis)
|
|
4
|
+
> Date: 2026-04-24
|
|
5
|
+
> Release: v0.107.0
|
|
6
|
+
|
|
7
|
+
## Executive Summary
|
|
8
|
+
|
|
9
|
+
**Decision**: Option C — Defer + observe
|
|
10
|
+
|
|
11
|
+
Current model-escalation system's actual failure and escalation frequency is unmeasured. Premature PAL Router internalization without baseline data risks double-routing complexity without clear benefit. Introduce escalation metrics first, re-evaluate after 3 months of data collection.
|
|
12
|
+
|
|
13
|
+
## Background
|
|
14
|
+
|
|
15
|
+
### model-escalation (현재)
|
|
16
|
+
- 철학: reactive — 실패 후 상위 모델 재시도
|
|
17
|
+
- 트리거: 에이전트 실패 횟수 임계치 (기본 2회)
|
|
18
|
+
- 경로: haiku → sonnet → opus
|
|
19
|
+
- R016 연계: 연속 실패 패턴 감지 시 스킬 업데이트 후보
|
|
20
|
+
|
|
21
|
+
### PAL Router (ouroboros)
|
|
22
|
+
- 철학: proactive — 사전 복잡도 평가
|
|
23
|
+
- 트리거: 작업 입력의 복잡도 스코어 (프롬프트 길이, 키워드, 파일 범위)
|
|
24
|
+
- 비용 티어: 1x (haiku, $0.25/M) / 10x (sonnet, $3/M) / 30x (opus, $15/M)
|
|
25
|
+
- 장점: 오버킬/언더킬 최소화, 초기 티어 자동 선택
|
|
26
|
+
|
|
27
|
+
## Comparison Matrix
|
|
28
|
+
|
|
29
|
+
| 기준 | model-escalation (현재) | PAL Router (ouroboros) |
|
|
30
|
+
|------|------------------------|----------------------|
|
|
31
|
+
| 철학 | Reactive | Proactive |
|
|
32
|
+
| 실패 복구 | 자동 escalation | N/A (사전 선택) |
|
|
33
|
+
| 초기 비용 | 최저 (haiku) | 복잡도 맞춤 |
|
|
34
|
+
| 오버킬 위험 | 낮음 (점진 증가) | 중간 (threshold 민감) |
|
|
35
|
+
| 언더킬 위험 | 중간 (1회 실패 후 해결) | 낮음 (사전 적정) |
|
|
36
|
+
| 구현 복잡도 | 기존 활용 | 신규 복잡도 평가 로직 |
|
|
37
|
+
| 비용 효율 | 실패율 낮으면 최적 | 복잡도 예측 정확하면 최적 |
|
|
38
|
+
| 부작용 | 실패 시 재실행 오버헤드 | 오분류 시 과도한 비용 |
|
|
39
|
+
| 디버깅 | escalation trace 명확 | 복잡도 스코어 설명 필요 |
|
|
40
|
+
|
|
41
|
+
## Option A — pal-cost-routing 신설 스킬
|
|
42
|
+
|
|
43
|
+
**장점**:
|
|
44
|
+
- 명확한 관심사 분리 (proactive ≠ reactive, 독립)
|
|
45
|
+
- model-escalation과 orthogonal (양쪽 활성 가능)
|
|
46
|
+
- ouroboros 구현 참조 직접 활용
|
|
47
|
+
|
|
48
|
+
**단점**:
|
|
49
|
+
- 스킬 카운트 113 → 114 (context fork cap 12/12 포화 상태, fork 스킬 아니므로 무관하긴 함)
|
|
50
|
+
- 라우팅 결정 보드에 두 메커니즘 공존 → decision boundary 명시 필요
|
|
51
|
+
- 복잡도 스코어 튜닝 비용 (프로젝트마다 분포 다름)
|
|
52
|
+
|
|
53
|
+
## Option B — model-escalation 확장 (pre-assessment 추가)
|
|
54
|
+
|
|
55
|
+
**장점**:
|
|
56
|
+
- 단일 스킬에서 reactive + proactive 통합
|
|
57
|
+
- 사용자 단일 진입점
|
|
58
|
+
- 마이그레이션 불필요 (기존 호출부 유지)
|
|
59
|
+
|
|
60
|
+
**단점**:
|
|
61
|
+
- 스킬 스코프 확장 → 단일 책임 원칙 희석
|
|
62
|
+
- 기존 advisory-first 특성과 pre-assessment의 predictive 특성 충돌 가능
|
|
63
|
+
- 테스트 복잡도 증가 (두 플로우 경로)
|
|
64
|
+
|
|
65
|
+
## Option C — Defer + observe (권장)
|
|
66
|
+
|
|
67
|
+
**근거**:
|
|
68
|
+
1. **데이터 부재**: model-escalation 현재 실패율, escalation 빈도, 시간당 비용 메트릭이 없음
|
|
69
|
+
2. **선제 내재화의 함정**: 내재화 없이도 기존 시스템이 충분한지 증거 부재
|
|
70
|
+
3. **측정 가능성**: R012 HUD statusline에 escalation 카운터 추가는 경량 작업
|
|
71
|
+
|
|
72
|
+
**행동 계획**:
|
|
73
|
+
- Phase 1 (즉시): R012 statusline에 `ESC:{count}/{total}` 지표 추가
|
|
74
|
+
- Phase 2 (4주): model-escalation 스킬이 로그 파일에 escalation 기록 축적
|
|
75
|
+
- Phase 3 (3개월): 데이터 분석 — 실패 → escalation 빈도, 비용 절감률, 오버킬 패턴
|
|
76
|
+
- Phase 4 (결정): 데이터 기반으로 Option A vs B vs 현상 유지 재평가
|
|
77
|
+
|
|
78
|
+
## Recommendation
|
|
79
|
+
|
|
80
|
+
**Option C**로 진행. #992를 closed 처리 (분석 완료), Phase 1-2 구현은 별도 P3 이슈로 트래킹.
|
|
81
|
+
|
|
82
|
+
## Decision Record
|
|
83
|
+
|
|
84
|
+
To be created when implementation path is finalized (Phase 4):
|
|
85
|
+
- `sdd/decisions/2026-XX-XX-pal-router-internalization.md` (per #985 DR template)
|
|
86
|
+
|
|
87
|
+
## References
|
|
88
|
+
|
|
89
|
+
- #992 (source issue)
|
|
90
|
+
- #966 (ouroboros 저장소 재평가)
|
|
91
|
+
- `.claude/skills/model-escalation/SKILL.md`
|
|
92
|
+
- `.claude/rules/SHOULD-hud-statusline.md` (R012 statusline 통합 지점)
|
|
93
|
+
- ouroboros PAL Router docs (GitHub)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Claude Code Version Compatibility
|
|
2
|
+
|
|
3
|
+
> Updated: 2026-04-24
|
|
4
|
+
> Source: Claude Code release notes (#967, #968, #969 auto-detected by claude-native skill)
|
|
5
|
+
|
|
6
|
+
## Compatibility Baseline
|
|
7
|
+
|
|
8
|
+
oh-my-customcode v0.107.0 targets Claude Code v2.1.116+. All v2.1.117-119 additions are backward-compatible — no config changes required.
|
|
9
|
+
|
|
10
|
+
## v2.1.117 (2026-04-22)
|
|
11
|
+
|
|
12
|
+
**Key changes relevant to oh-my-customcode:**
|
|
13
|
+
|
|
14
|
+
- `CLAUDE_CODE_FORK_SUBAGENT=1` enables forked subagents on external builds — relevant for R018 Agent Teams expansion
|
|
15
|
+
- Main-thread agent `mcpServers` frontmatter loading via `--agent` — broadens MCP integration scope (affects sys-memory-keeper, claude-mem users)
|
|
16
|
+
- `/model` persistence across restarts — reduces repeated model selection in long sessions
|
|
17
|
+
- `/resume` summarization of stale sessions — aligns with R013 ecomode context budget
|
|
18
|
+
- Concurrent MCP server startup — shorter session bootstrap
|
|
19
|
+
|
|
20
|
+
**Action items**: None. Features are additive.
|
|
21
|
+
|
|
22
|
+
## v2.1.118 (2026-04-23)
|
|
23
|
+
|
|
24
|
+
**Key changes relevant to oh-my-customcode:**
|
|
25
|
+
|
|
26
|
+
- `/cost` + `/stats` → merged into `/usage` — update CLAUDE.md quick-reference if these appear (they don't in current docs)
|
|
27
|
+
- Vim visual modes (`v`, `V`) — orthogonal to harness
|
|
28
|
+
- Custom themes via `~/.claude/themes/` + plugin `themes/` directory — R012 HUD statusline unaffected
|
|
29
|
+
- **Hooks can invoke MCP tools directly (`type: "mcp_tool"`)** — new hook capability, R022 wiki-sync or memory hooks could benefit
|
|
30
|
+
- `DISABLE_UPDATES` env var — stricter than `DISABLE_AUTOUPDATER`
|
|
31
|
+
|
|
32
|
+
**Action items**: Consider R022/R011 hooks migration to `type: "mcp_tool"` for direct wiki/memory integration (P3 follow-up).
|
|
33
|
+
|
|
34
|
+
## v2.1.119 (2026-04-23)
|
|
35
|
+
|
|
36
|
+
**Key changes relevant to oh-my-customcode:**
|
|
37
|
+
|
|
38
|
+
- `/config` persistence to `~/.claude/settings.json` with proper override precedence — project/local/policy stacking more predictable
|
|
39
|
+
- `prUrlTemplate` setting — useful if mirroring to GitHub Enterprise or GitLab
|
|
40
|
+
- `CLAUDE_CODE_HIDE_CWD` env var — cosmetic
|
|
41
|
+
- `--from-pr` now accepts GitLab MR, Bitbucket PR, GitHub Enterprise URLs — widens reviewer scenarios
|
|
42
|
+
- **`--print` mode honors agent `tools:` and `disallowedTools:` frontmatter** — fixes a long-standing gap, relevant for CI runs using `--print`
|
|
43
|
+
|
|
44
|
+
**Action items**: Verify `--print` based CI scripts (if any) work correctly with restricted-tools agents like `arch-documenter` (which has `disallowedTools: [Bash]`).
|
|
45
|
+
|
|
46
|
+
## Action Items Summary
|
|
47
|
+
|
|
48
|
+
| Version | oh-my-customcode action | Priority |
|
|
49
|
+
|---------|------------------------|----------|
|
|
50
|
+
| v2.1.117 | None (additive) | — |
|
|
51
|
+
| v2.1.118 | Evaluate hooks `type: mcp_tool` for R022/R011 | P3 follow-up |
|
|
52
|
+
| v2.1.119 | Audit `--print` CI with disallowedTools agents | P3 follow-up |
|
|
53
|
+
|
|
54
|
+
## References
|
|
55
|
+
|
|
56
|
+
- #967 — Claude Code v2.1.117 release note
|
|
57
|
+
- #968 — Claude Code v2.1.118 release note
|
|
58
|
+
- #969 — Claude Code v2.1.119 release note
|
|
59
|
+
- `.claude/skills/claude-native/` — auto-generation source
|
|
60
|
+
- `.claude/rules/SHOULD-hud-statusline.md` — R012 statusline integration
|
|
61
|
+
- `.claude/rules/MUST-agent-design.md` — R006 agent frontmatter spec
|
package/templates/manifest.json
CHANGED