oh-my-customcode 1.1.85 → 1.1.87
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/skills/monitoring-setup/SKILL.md +79 -0
- package/templates/.claude/skills/pipeline/workflows/auto-dev.yaml +34 -2
- package/templates/guides/claude-code/15-version-compatibility.md +90 -1
- package/templates/manifest.json +1 -1
- package/templates/workflows/auto-dev.yaml +34 -2
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -19,8 +19,18 @@ This skill activates when the user mentions any of:
|
|
|
19
19
|
|
|
20
20
|
## Commands
|
|
21
21
|
|
|
22
|
+
### CC 버전 분기 안내
|
|
23
|
+
|
|
24
|
+
Claude Code 2.1.282부터 project·local 설정 파일(`.claude/settings.json`, `.claude/settings.local.json`)에 적힌 OpenTelemetry 변수 중 export를 켜거나(마스터 스위치 `CLAUDE_CODE_ENABLE_TELEMETRY`), endpoint를 지정하거나, 내용을 캡처하는 변수(예: `OTEL_LOG_*`)는 무시됩니다. CHANGELOG는 이 마스터 스위치와 `OTEL_LOG_*`만 예시로 명명하며, `OTEL_METRICS_EXPORTER`·`OTEL_LOGS_EXPORTER` 자체가 무시 목록에 명시된 것은 아닙니다. 다만 마스터 스위치가 무시되면 project/local `env`의 텔레메트리 전송 자체가 꺼지므로, 이 두 exporter 변수를 그 자리에 남겨 두어도 결과적으로 무효화됩니다. 따라서 세 변수를 함께 user-scope 설정이나 셸 export로 옮기라는 권고는 그대로 유효합니다. 아래 각 명령은 실행 중인 Claude Code 버전(`claude --version`으로 확인)에 따라 두 갈래로 나뉩니다 — 2.1.282 미만은 기존 절차를 따르고, 2.1.282 이상은 user-scope 설정(`~/.claude/settings.json`) 또는 셸 `export`로 안내합니다.
|
|
25
|
+
|
|
26
|
+
**버전 비교 방법**: `claude --version` 출력에서 맨 앞의 `X.Y.Z` 버전 문자열을 추출합니다. `X`·`Y`·`Z`를 각각 정수로 변환해 `2`·`1`·`282`와 구성요소별로 수치 비교합니다. 문자열 사전식 비교는 사용하지 않습니다.
|
|
27
|
+
|
|
22
28
|
### enable (default)
|
|
23
29
|
|
|
30
|
+
**CC 버전 확인**: 먼저 `claude --version`으로 설치된 버전을 확인하고, 위 「CC 버전 분기 안내」의 버전 비교 방법으로 2.1.282 기준을 판정합니다.
|
|
31
|
+
|
|
32
|
+
#### 2.1.282 미만
|
|
33
|
+
|
|
24
34
|
1. Read `.claude/settings.local.json` (create if not exists)
|
|
25
35
|
2. Add or update `env` field with:
|
|
26
36
|
```json
|
|
@@ -45,8 +55,43 @@ This skill activates when the user mentions any of:
|
|
|
45
55
|
To disable: /monitoring-setup disable
|
|
46
56
|
```
|
|
47
57
|
|
|
58
|
+
#### 2.1.282 이상
|
|
59
|
+
|
|
60
|
+
project·local 설정에 적힌 OTel 변수는 무시되므로 `.claude/settings.local.json`을 쓰지 않습니다. 대신 아래 절차를 따릅니다.
|
|
61
|
+
|
|
62
|
+
1. 적용할 env 블록을 사용자에게 보여줍니다:
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"env": {
|
|
66
|
+
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
|
|
67
|
+
"OTEL_METRICS_EXPORTER": "console",
|
|
68
|
+
"OTEL_LOGS_EXPORTER": "console"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
2. 두 가지 배치 옵션을 제시합니다:
|
|
73
|
+
- **User-scope 설정**: `~/.claude/settings.json`의 `env` 필드에 위 블록을 추가
|
|
74
|
+
- **셸 export**: `claude` 실행 전에 `export CLAUDE_CODE_ENABLE_TELEMETRY=1 OTEL_METRICS_EXPORTER=console OTEL_LOGS_EXPORTER=console`
|
|
75
|
+
3. 사용자가 이번 호출에서 명시적으로 승인한 경우에만 `~/.claude/settings.json`을 직접 씁니다 — 프로젝트 범위를 벗어난 파일이므로 사전 승인 없이는 쓰지 않습니다(R002).
|
|
76
|
+
4. 셸 export를 선택하면 파일을 쓰지 않고 위 명령을 사용자에게 그대로 전달합니다.
|
|
77
|
+
5. Report:
|
|
78
|
+
```
|
|
79
|
+
[Done] OpenTelemetry Console Monitoring enabled (user scope)
|
|
80
|
+
|
|
81
|
+
Configured in: ~/.claude/settings.json (or shell export, per user's choice)
|
|
82
|
+
Metrics: sessions, cost, tokens, LOC, commits, PRs, active time
|
|
83
|
+
Events: tool results, API requests, tool decisions
|
|
84
|
+
|
|
85
|
+
Note: project/local settings.json no longer carry these variables on 2.1.282+.
|
|
86
|
+
To disable: /monitoring-setup disable
|
|
87
|
+
```
|
|
88
|
+
|
|
48
89
|
### disable
|
|
49
90
|
|
|
91
|
+
**CC 버전 확인**: `claude --version`으로 설치된 버전을 확인하고, 위 「CC 버전 분기 안내」의 버전 비교 방법으로 2.1.282 기준을 판정합니다.
|
|
92
|
+
|
|
93
|
+
#### 2.1.282 미만
|
|
94
|
+
|
|
50
95
|
1. Read `.claude/settings.local.json`
|
|
51
96
|
2. Remove OTel-related keys from `env`:
|
|
52
97
|
- `CLAUDE_CODE_ENABLE_TELEMETRY`
|
|
@@ -61,8 +106,25 @@ This skill activates when the user mentions any of:
|
|
|
61
106
|
Takes effect on next session restart.
|
|
62
107
|
```
|
|
63
108
|
|
|
109
|
+
#### 2.1.282 이상
|
|
110
|
+
|
|
111
|
+
1. `.claude/settings.local.json`에 레거시 OTel 변수가 남아 있으면(마스터 스위치가 무시되어 전송 자체가 꺼지므로 결과적으로 무효하지만) 정리를 제안합니다.
|
|
112
|
+
2. 실제 활성화 지점인 user-scope 설정(`~/.claude/settings.json`)의 `env`에서 OTel 관련 키를 제거하도록 안내하거나, 사용자 승인 후 직접 제거합니다.
|
|
113
|
+
3. 셸 `export`로 설정한 경우 해당 셸 세션에서 `unset CLAUDE_CODE_ENABLE_TELEMETRY OTEL_METRICS_EXPORTER OTEL_LOGS_EXPORTER`를 안내합니다.
|
|
114
|
+
4. Report:
|
|
115
|
+
```
|
|
116
|
+
[Done] OpenTelemetry Monitoring disabled
|
|
117
|
+
|
|
118
|
+
Removed from: ~/.claude/settings.json (or unset in shell), plus any legacy .claude/settings.local.json entries
|
|
119
|
+
Takes effect on next session restart.
|
|
120
|
+
```
|
|
121
|
+
|
|
64
122
|
### status
|
|
65
123
|
|
|
124
|
+
**CC 버전 확인**: `claude --version`으로 설치된 버전을 확인하고, 위 「CC 버전 분기 안내」의 버전 비교 방법으로 2.1.282 기준을 판정합니다.
|
|
125
|
+
|
|
126
|
+
#### 2.1.282 미만
|
|
127
|
+
|
|
66
128
|
1. Read `.claude/settings.local.json`
|
|
67
129
|
2. Check for OTel env vars
|
|
68
130
|
3. Report current state:
|
|
@@ -74,6 +136,21 @@ This skill activates when the user mentions any of:
|
|
|
74
136
|
└── Config: .claude/settings.local.json
|
|
75
137
|
```
|
|
76
138
|
|
|
139
|
+
#### 2.1.282 이상
|
|
140
|
+
|
|
141
|
+
1. `.claude/settings.local.json`과 project `.claude/settings.json`을 확인하되, 여기 적힌 OTel 변수는 무시된다는 점을 함께 보고합니다.
|
|
142
|
+
2. user-scope 설정(`~/.claude/settings.json`)의 `env`와 현재 셸 환경 변수를 확인해 실제 활성화 여부를 판단합니다.
|
|
143
|
+
3. 검증 보조 수단으로 `/status`와 `claude doctor`를 안내합니다 — 2.1.282부터 두 명령 모두 무시된 telemetry 변수 목록을 표시합니다.
|
|
144
|
+
4. Report:
|
|
145
|
+
```
|
|
146
|
+
[Monitoring Status]
|
|
147
|
+
├── Enabled: Yes/No (source: user-scope settings / shell env)
|
|
148
|
+
├── Metrics exporter: console / otlp / none
|
|
149
|
+
├── Logs exporter: console / otlp / none
|
|
150
|
+
├── Ignored (project/local): list of any legacy OTel keys found
|
|
151
|
+
└── Config: ~/.claude/settings.json or shell env (project/local settings.json is ignored on 2.1.282+)
|
|
152
|
+
```
|
|
153
|
+
|
|
77
154
|
## Implementation Notes
|
|
78
155
|
|
|
79
156
|
- `settings.local.json` is NOT git-tracked (local to user)
|
|
@@ -81,6 +158,7 @@ This skill activates when the user mentions any of:
|
|
|
81
158
|
- No infrastructure required for console mode
|
|
82
159
|
- Metrics appear in stderr during Claude Code execution
|
|
83
160
|
- Default export interval: 60s for metrics, 5s for events
|
|
161
|
+
- 2.1.282부터 project/local 설정의 OTel 변수는 무시되므로, 활성화 위치가 user-scope 설정 또는 셸 환경으로 이동합니다(위 enable 절 참고)
|
|
84
162
|
|
|
85
163
|
## Available Metrics
|
|
86
164
|
|
|
@@ -300,6 +378,7 @@ duration: total wall clock time of agent invocation
|
|
|
300
378
|
- Console exporter (default): prints span JSON to stdout for local dev / debugging.
|
|
301
379
|
- OTLP exporter (optional): activated when `OTEL_EXPORTER_OTLP_ENDPOINT` env var is set. Compatible with Grafana, Datadog, Honeycomb, and any OTLP-compliant collector. No LangSmith dependency.
|
|
302
380
|
- Actual OTEL SDK emission is handled by the Claude Code telemetry layer. This skill configures the env vars that activate the trajectory span pipeline.
|
|
381
|
+
- 2.1.282부터 이 절의 `env` 설정도 project/local 범위에서 무시되므로, 위 enable/disable 절의 2.1.282 이상 분기와 동일하게(사용자 승인 후 user-scope 설정 또는 셸 export) 적용합니다
|
|
303
382
|
|
|
304
383
|
### status (extended)
|
|
305
384
|
|
|
@@ -496,7 +496,20 @@ steps:
|
|
|
496
496
|
`grep -E '(함|됨|필요)[.。"]?$'` = 0 (반말/명사 종결 endings such as 확인함·정정
|
|
497
497
|
필요·완료됨 fall entirely outside the 다-ending regexes above and were previously
|
|
498
498
|
undetectable — verified against 4 명사 종결 positive samples and 4 합쇼체 negative
|
|
499
|
-
samples, 8/8 correct) (#1728 찐빠 #2 residual).
|
|
499
|
+
samples, 8/8 correct) (#1728 찐빠 #2 residual). On macOS, a `grep -E` run of these three
|
|
500
|
+
checks MAY false-positive on multibyte UTF-8 lines (line-final `$` anchor mismatch
|
|
501
|
+
observed, [hypothesis: unverified]) and this repo's Bash `grep` MAY be a shell function
|
|
502
|
+
shadowing the real binary (R005) — the agent MUST ALSO run the same three checks as a
|
|
503
|
+
python3 `re` equivalent of all THREE checks above, reading from the SAME piped stdin as
|
|
504
|
+
(a) (`git diff -U0 -- <edited md/yaml files> | grep '^+' | python3 -c "import re,sys;
|
|
505
|
+
text=sys.stdin.read();
|
|
506
|
+
fam=len(re.findall(r'(한다|된다|않는다|따른다|했다|있다|없다|넣는다|이다)[.。 \"]', text));
|
|
507
|
+
lf=len(re.findall(r'다[.。\"]?$', text, re.M)) - len(re.findall(r'니다[.。\"]?$', text, re.M));
|
|
508
|
+
noun=len(re.findall(r'(함|됨|필요)[.。\"]?$', text, re.M));
|
|
509
|
+
print(fam, lf, noun)"`, NOT a file-argument read — the input is the piped diff, never a
|
|
510
|
+
file path), in ADDITION to (not instead of) the grep commands above, and
|
|
511
|
+
treat a python3/grep disagreement as evidence the grep result is unreliable (macOS
|
|
512
|
+
line-final 오탐 가능성 대응, R005, R023, #1749 찐빠 #3). Even with all three checks, a residual
|
|
500
513
|
gap remains for 반말/명사 종결 variants the patterns above do not enumerate — the agent
|
|
501
514
|
MUST also read the newly added lines directly as a final check, not rely on regex alone.
|
|
502
515
|
When an edit re-emits a pre-existing
|
|
@@ -542,6 +555,13 @@ steps:
|
|
|
542
555
|
arithmetic above MUST add a batched-verification term — ⌈N/batch⌉ — still an
|
|
543
556
|
upper-bound guide that may still truncate, not a truncation guarantee (검증 비용을
|
|
544
557
|
턴 산술에 반영, R020 「maxTurns 절단 실증」 6항 확장, #1737 찐빠 #1).
|
|
558
|
+
- A single-file edit delegation (of any type, not only rule/skill/guide TEXT edits) whose
|
|
559
|
+
target file is ≥1,000 lines (measure `wc -l`) MUST either (i) split "본문 편집" (body edit) from "미러 복사·검증·
|
|
560
|
+
보고" (mirror copy, verification, and completion report) into separate delegations, or
|
|
561
|
+
(ii) add a large-file fixed-cost term to the turn arithmetic above — a large-file edit
|
|
562
|
+
can exceed what the arithmetic assumes even when the item count stays small; read-only
|
|
563
|
+
review delegations are excluded (대형 파일 편집 위임 20턴 절단 재발 방지, R020
|
|
564
|
+
「maxTurns 절단 실증」, R009, #1749 찐빠 #1).
|
|
545
565
|
- Parity delegation prompts (e.g. a ko mirror tracking an en source) MUST require THREE
|
|
546
566
|
directions — additions, edits, AND deletions — to match the source, never additions
|
|
547
567
|
only; completion criteria MUST include a `grep -F` confirming zero rows/sentences are
|
|
@@ -606,7 +626,19 @@ steps:
|
|
|
606
626
|
upstream CHANGELOG lines (measured with `grep -nF`) and the original target paragraph
|
|
607
627
|
as ground truth; if the issue's premise differs from the primary source, the primary
|
|
608
628
|
source wins and the discrepancy is reported rather than silently inherited into the
|
|
609
|
-
corrected wording (#1730 찐빠 #1).
|
|
629
|
+
corrected wording (#1730 찐빠 #1). A `claude-code-release` delegation prompt that writes
|
|
630
|
+
a count sentence (e.g. "기타 N건") MUST specify, in the prompt itself, the exact counting
|
|
631
|
+
range (which section of the issue body to count) and the exact measurement command; the
|
|
632
|
+
resulting guide/rule text MUST carry that same command alongside the number — delegations
|
|
633
|
+
that produce no count sentence are excluded (계수 구간 정의 부재로 인한 수치 오류 방지,
|
|
634
|
+
R023 「리서치 위임의 결론 수치는 표에서 재계산해 병기」, R020, #1749 찐빠 #2).
|
|
635
|
+
- Any delegation correcting a fact (the issue states an existing statement in a target file
|
|
636
|
+
is wrong) — not only `claude-code-release` CC-notes — MUST include, as a completion
|
|
637
|
+
criterion, an exhaustive `grep` across the target file(s) for the claim's key terms, not
|
|
638
|
+
only the single string anchor supplied in the prompt, so a second copy of the same claim
|
|
639
|
+
elsewhere in the file is also caught; pure additions (no existing statement is being
|
|
640
|
+
corrected) are excluded (앵커 1개 한정으로 인한 동일 주장 잔존 사본 방지, R010 「출처
|
|
641
|
+
인용과 인접 문구 점검」, R022, #1749 찐빠 #4).
|
|
610
642
|
- When review-correction work is split across file-ownership delegations (one file per
|
|
611
643
|
agent), every split delegation prompt MUST carry the FULL list of review findings
|
|
612
644
|
(not only the subset touching that agent's file) as a self-check list, so a fix in one
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Claude Code Version Compatibility
|
|
2
2
|
|
|
3
3
|
> Updated: 2026-09-24
|
|
4
|
-
> Source: Claude Code release notes (#967, #968, #969, #1126 auto-detected by claude-native skill, #1137, #1158, #1242, #1243, #1244, #1245, #1276, #1280, #1713, #1714, #1716)
|
|
4
|
+
> Source: Claude Code release notes (#967, #968, #969, #1126 auto-detected by claude-native skill, #1137, #1158, #1242, #1243, #1244, #1245, #1276, #1280, #1713, #1714, #1716, #1746, #1747)
|
|
5
5
|
>
|
|
6
6
|
> **Note (compat 노트 이관, v1.1.9~v1.1.76)**: v2.1.161~v2.1.276 구간의 CC 호환성 노트는 `.claude/rules/` 각 규칙(R001/R002/R006/R010/R012 등)에 인라인으로 축적되어 있으며, 이 구간은 그대로 보존합니다.
|
|
7
7
|
>
|
|
@@ -1464,6 +1464,93 @@ Opus 4.8에서 thinking blocks가 수정되어 API 오류가 발생하던 버그
|
|
|
1464
1464
|
|
|
1465
1465
|
---
|
|
1466
1466
|
|
|
1467
|
+
## v2.1.282 (2026-09-24)
|
|
1468
|
+
|
|
1469
|
+
> Issue: #1746 — Claude Code v2.1.282 compatibility documentation
|
|
1470
|
+
> Scope-ceiling check (R017): 설치 CC는 **2.1.283**(`claude --version`=2.1.283, `npm view @anthropic-ai/claude-code version`=2.1.283 실측)이며 2.1.283이 상한입니다. 2.1.283 CHANGELOG를 확인한 결과 아래 "namespace 예약" 항목은 `claude-ai` 이름 부분만 되돌려졌습니다 — "Reverted the 2.1.282 reservation of the `claude-ai` name: skills, commands, workflows and MCP servers' skills and prompts so named load again, and `Skill(claude-ai:*)` rules are ordinary prefix rules". `anthropic-skills` 이름 예약은 되돌려지지 않았으므로 아래 항목은 그 범위만 유효합니다.
|
|
1471
|
+
|
|
1472
|
+
### 텔레메트리 · settings
|
|
1473
|
+
|
|
1474
|
+
- CHANGELOG 원문: "Changed project and local settings to ignore OpenTelemetry variables that turn on export, set its endpoint, or capture content, like `CLAUDE_CODE_ENABLE_TELEMETRY` and `OTEL_LOG_*`"
|
|
1475
|
+
(282) 프로젝트·로컬 설정 파일에 적힌 OpenTelemetry 관련 변수를 이제 CC가 무시합니다 — CHANGELOG는 export 활성화·엔드포인트 지정·콘텐츠 캡처라는 세 클래스를 `CLAUDE_CODE_ENABLE_TELEMETRY`·`OTEL_LOG_*` 예시로만 들었을 뿐 전체 목록을 열거하지 않았으므로, 같은 클래스에 속하는 한 `OTEL_METRICS_EXPORTER`·`OTEL_LOGS_EXPORTER`처럼 예시에 없는 변수도 마찬가지로 무시되며, 어차피 마스터 토글(`CLAUDE_CODE_ENABLE_TELEMETRY`)이 무시되므로 export 계열 변수는 값을 설정해도 무력화됩니다 — `.claude/skills/monitoring-setup/SKILL.md`가 이 값들을 `.claude/settings.local.json`에 기록하도록 안내하는 절이 이 변경의 직접 영향 범위이며, 별도 서브에이전트가 해당 스킬 자체를 수정 중입니다.
|
|
1476
|
+
- CHANGELOG 원문: "Added a startup notice, and `/status` and `claude doctor` entries, listing telemetry variables in a project's settings files that were ignored or that turned telemetry off"
|
|
1477
|
+
(282) 프로젝트 설정 파일에 적혔으나 무시되거나 텔레메트리를 끈 변수들이 시작 알림·`/status`·`claude doctor`에 나열되어, 위 항목의 무시 여부를 세션 시작 시 바로 확인할 수 있습니다.
|
|
1478
|
+
|
|
1479
|
+
### skill/plugin namespace 예약
|
|
1480
|
+
|
|
1481
|
+
- CHANGELOG 원문: "Changed `Skill(anthropic-skills:*)` and `Skill(claude-ai:*)` allow rules to cover only skills synced from claude.ai, not plugins or other skills that merely use such a name"
|
|
1482
|
+
(282) `Skill(anthropic-skills:*)`·`Skill(claude-ai:*)` allow rule이 claude.ai에서 동기화된 스킬만 가리키도록 좁혀져, 같은 이름을 쓰는 플러그인·다른 스킬은 더 이상 이 allow rule로 커버되지 않습니다 — 이 저장소 스킬 frontmatter `name:` 값은 `anthropic-skills`·`claude-ai`와 겹치지 않습니다(실측: `git grep -h '^name:' .claude/skills/*/SKILL.md | grep -cE 'anthropic-skills|claude-ai'` = 0), `.mcp.json`의 서버명도 `eraser`·`ontology-rag`뿐이라(`jq -r '.mcpServers|keys[]' .mcp.json`) 이름 충돌 대상이 아닙니다.
|
|
1483
|
+
- CHANGELOG 원문: "Changed skill folders, command files and workflow commands in the `anthropic-skills` or `claude-ai` namespace to no longer load; a plugin so named still loads but yields name ties to synced skills"
|
|
1484
|
+
(282) `anthropic-skills`·`claude-ai` namespace의 스킬 폴더·명령 파일·workflow 명령이 더 이상 로드되지 않도록 바뀌었습니다(같은 이름의 플러그인 자체는 계속 로드되나 이름 충돌 시 동기화된 스킬에 양보) — 위에서 확인한 대로 이 저장소 스킬은 해당 namespace를 쓰지 않아 영향이 없습니다.
|
|
1485
|
+
- CHANGELOG 원문: "Changed MCP servers configured under the name `anthropic-skills` or `claude-ai` to list no skills or prompts (their tools still work); rename the server in your MCP configuration to list them again"
|
|
1486
|
+
(282) `anthropic-skills`·`claude-ai` 이름으로 설정된 MCP 서버는 스킬·프롬프트 목록을 더 이상 제공하지 않습니다(도구 자체는 계속 동작) — 이 저장소가 쓰는 `ontology-rag` 등 MCP 서버 이름은 이 두 이름과 겹치지 않으므로 직접 영향은 없습니다.
|
|
1487
|
+
|
|
1488
|
+
### 권한 · 압축 · thinking 복구
|
|
1489
|
+
|
|
1490
|
+
- CHANGELOG 원문: "Fixed Bash permission rules with a mid-pattern `:*` being skipped in settings files while `--allowedTools` honored them; they now work from every source, with a startup warning on how they match"
|
|
1491
|
+
(282) settings 파일에서 중간에 `:*`가 들어간 Bash permission rule이 건너뛰어지던 결함이 수정되어 이제 모든 출처에서 동일하게 매칭되고, 매칭 방식에 대한 시작 경고도 추가됩니다 — R002 Deny Rule Glob Patterns 표가 다루는 glob 매칭 신뢰성이 개선됩니다.
|
|
1492
|
+
- CHANGELOG 원문: "Fixed compaction failing when the summarization request is refused; it now retries on a fallback model"
|
|
1493
|
+
(282) 요약 요청이 거부되어 compaction이 실패하던 결함이 수정되어 이제 폴백 모델로 재시도합니다 — R013 Context Budget Management가 전제하는 compaction 신뢰성이 개선됩니다.
|
|
1494
|
+
- CHANGELOG 원문: "Fixed sessions failing on every turn with an \"Invalid `data` in `redacted_thinking` block\" API error; Claude Code now drops the conversation's thinking blocks and retries once"
|
|
1495
|
+
(282) "Invalid `data` in `redacted_thinking` block" API 오류로 매 턴 실패하던 세션이, 대화의 thinking 블록을 삭제하고 1회 재시도하도록 수정되어 복구됩니다 — R004 Recovery 표의 "Retryable" 축과 같은 방향의 플랫폼 보강입니다.
|
|
1496
|
+
|
|
1497
|
+
### 재개(resume) — 281 항목의 확장
|
|
1498
|
+
|
|
1499
|
+
- CHANGELOG 원문: "Fixed more cases of continued or resumed sessions (`--continue`, `--resume`) re-sending earlier messages in a changed form, which could make the API drop Claude's earlier reasoning"
|
|
1500
|
+
(282) 위 v2.1.281 섹션의 Scope-ceiling check가 예고한 대로, 재개된 세션이 이전 메시지를 바뀐 형태로 재전송해 API가 이전 reasoning을 버리는 사례가 추가로 수정되었습니다 — 되돌리기가 아니라 281의 같은 결함 계열이 넓어진 것입니다.
|
|
1501
|
+
|
|
1502
|
+
기타 77건 — 이 저장소 비해당(VSCode 4건, Cloud sessions 5건, Claude Tag 11건 포함, 나머지 57건은 UI 다이얼로그·vim 모드·PDF 렌더링·artifact 게시 등 harness 비영향 세부사항). 실측: `gh issue view 1746 --json body --jq .body | sed -n '/What.s changed/,/액션 아이템/p' | grep -c '^- '` = 86건 중 위 본문 9건(텔레메트리 2·namespace 3·권한·압축·thinking 복구 3·재개 확장 1)을 다뤘으므로 86 − 9 = 77건입니다.
|
|
1503
|
+
|
|
1504
|
+
**Action items**:
|
|
1505
|
+
- 위 텔레메트리 변수 무시 항목은 `.claude/skills/monitoring-setup/SKILL.md`의 `.claude/settings.local.json` 기록 절 갱신이 필요하며, 별도 서브에이전트가 처리합니다.
|
|
1506
|
+
- namespace 예약 항목은 이 저장소의 `omcustom` namespace와 충돌하지 않아 즉각적인 harness 변경은 불필요합니다.
|
|
1507
|
+
- 나머지 항목은 CC 플랫폼 신뢰성 보강이며 룰 수정은 불필요합니다.
|
|
1508
|
+
|
|
1509
|
+
---
|
|
1510
|
+
|
|
1511
|
+
## v2.1.283 (2026-09-25)
|
|
1512
|
+
|
|
1513
|
+
> Issue: #1747 — Claude Code v2.1.283 compatibility documentation
|
|
1514
|
+
> Scope-ceiling check (R017): 설치 CC·npm latest 모두 **2.1.283**(`claude --version`=2.1.283, `npm view @anthropic-ai/claude-code version`=2.1.283 실측)로 이 릴리즈가 상한이며, 2.1.283보다 나중 릴리즈는 없습니다.
|
|
1515
|
+
|
|
1516
|
+
### namespace 예약 되돌림
|
|
1517
|
+
|
|
1518
|
+
- CHANGELOG 원문: "Reverted the 2.1.282 reservation of the `claude-ai` name: skills, commands, workflows and MCP servers' skills and prompts so named load again, and `Skill(claude-ai:*)` rules are ordinary prefix rules"
|
|
1519
|
+
(283) 위 v2.1.282 섹션의 `claude-ai` namespace 예약이 되돌려져, 그 이름의 스킬·명령·workflow·MCP 서버 스킬/프롬프트가 다시 로드되고 `Skill(claude-ai:*)` rule도 평범한 prefix rule로 돌아갑니다 — `anthropic-skills` 이름 예약은 이 되돌림 대상이 아니므로 위 2.1.282 섹션 해당 항목은 `anthropic-skills` 범위에서만 유효합니다.
|
|
1520
|
+
|
|
1521
|
+
### 지시 파일 감사 · plugin validate
|
|
1522
|
+
|
|
1523
|
+
- CHANGELOG 원문: "Added `/doctor prompt-audit` (also `/checkup prompt-audit`) to audit your CLAUDE.md files, skills, agents and commands for prompting patterns written for older models"
|
|
1524
|
+
(283) CLAUDE.md·스킬·에이전트·명령의 프롬프팅 패턴을 감사하는 `/doctor prompt-audit`(`/checkup prompt-audit`)이 추가되어, R016 예산 게이트(`validate-docs`)가 다루는 지시 파일 크기·구식 패턴 점검을 CC 자체 도구로도 보완할 수 있습니다.
|
|
1525
|
+
(283) 이어서 "Improved `prompt-audit` on Claude Code configuration: stale paths, stale commands and contradicting instruction files now lead the report, and thinking keywords that Claude Code documents are kept"에 따르면 구식 경로·구식 명령·상충하는 지시 파일이 보고서 상단에 오르도록 개선되어, R023 Deprecated-Platform-Feature Staleness Check가 겨냥하는 폐기된 플랫폼 기능 참조 탐지와 목적이 겹칩니다.
|
|
1526
|
+
- CHANGELOG 원문: "Fixed `claude plugin validate` saying Claude Code accepts a plugin or marketplace name it cannot install; such names in `marketplace.json` now fail validation"
|
|
1527
|
+
(283) `claude plugin validate`가 실제로 설치할 수 없는 플러그인·마켓플레이스 이름을 수용 가능하다고 오보고하던 결함이 수정되어, 그런 이름은 이제 `marketplace.json`에서 검증 실패로 잡힙니다.
|
|
1528
|
+
- CHANGELOG 원문: "Fixed `claude plugin validate` passing plugins whose `outputStyles`, `themes`, `monitors`, or `lspServers` paths are missing or point outside the plugin directory"
|
|
1529
|
+
(283) `outputStyles`·`themes`·`monitors`·`lspServers` 경로가 누락되거나 플러그인 디렉터리 밖을 가리켜도 통과하던 `claude plugin validate` 결함이 수정되어, R017 "스킬 추가·수정 후 `claude plugin validate`를 개수 대조와 함께 실행" 조항이 잡아내는 결함 범위가 넓어집니다.
|
|
1530
|
+
|
|
1531
|
+
### auto-memory · 권한 모드
|
|
1532
|
+
|
|
1533
|
+
- CHANGELOG 원문: "Fixed Claude's edits to its own auto-memory notes being blocked as sensitive-file writes when Claude Code was started in a subdirectory of a git repository"
|
|
1534
|
+
(283) git 저장소의 하위 디렉터리에서 시작된 세션이 자신의 auto-memory 노트를 편집할 때 sensitive-file write로 차단되던 결함이 수정되었습니다 — R011 Subagent memory:project Source-Tree Pollution Guard와는 "하위 디렉터리 실행"이라는 트리거 조건만 같을 뿐 실패 양상은 다릅니다: R011 가드는 `memory: project` 서브에이전트가 소스 트리 하위에 `.claude/agent-memory/`를 잘못 생성하는 것을 경고하는 반면, 이번 283 수정은 CC 자신의 auto-memory 편집이 sensitive-file write로 오탐 차단되던 것을 고친 것입니다 — 가드 자체(중첩 생성 방지 확인)는 계속 필요합니다.
|
|
1535
|
+
- CHANGELOG 원문: "Changed interactive sessions on third-party providers or with telemetry off to start in auto mode when no permission mode is configured; `permissions.defaultMode` still overrides it"
|
|
1536
|
+
(283) 서드파티 provider를 쓰거나 텔레메트리를 끈 상태에서 permission mode가 설정되지 않은 대화형 세션이 이제 auto mode로 시작합니다(`permissions.defaultMode`가 설정돼 있으면 계속 그 값이 우선) — R010 Self-Check가 요구하는 유효 permission mode 실측(`jq -r '.permissions.defaultMode // "unset"'`)이 이 조건에서는 auto mode로 귀결됨을 새로 고려해야 합니다.
|
|
1537
|
+
|
|
1538
|
+
### /context · 워크플로 폴백
|
|
1539
|
+
|
|
1540
|
+
- CHANGELOG 원문: "Fixed `/context` not counting MCP server instructions: they now appear as their own row and count toward the total"
|
|
1541
|
+
(283) `/context`가 MCP 서버 instructions를 집계하지 않던 결함이 수정되어 이제 별도 행으로 표시되고 총량에도 반영됩니다 — R013 Context Budget Management의 백분율 임계값 계산에 MCP 서버 instructions 몫이 추가로 포함됩니다.
|
|
1542
|
+
- CHANGELOG 원문: "Fixed dynamic workflows started during a model fallback running every agent on the fallback model instead of retrying the configured model"
|
|
1543
|
+
(283) 모델 폴백 도중 시작된 dynamic workflow가 모든 에이전트를 폴백 모델로 실행하던 결함이 수정되어 이제 원래 설정된 모델로 재시도합니다 — R006 Fallback Models 절이 다루는 설정-레벨 failover가 workflow 실행 중에도 원래 모델 지향으로 동작합니다.
|
|
1544
|
+
|
|
1545
|
+
기타 85건 — 이 저장소 비해당(VSCode 7건, Cloud sessions 3건, Claude Tag 7건, Code Review 2건 포함, 나머지 66건은 vim 모드·키바인딩·UI 리스트·Bedrock/Vertex·self-hosted runner git 세부사항 등 harness 비영향). 실측: `gh issue view 1747 --json body --jq .body | sed -n '/What.s changed/,/액션 아이템/p' | grep -c '^- '` = 94건 중 위 본문 9건(namespace 되돌림 1·지시 파일 감사/plugin validate 4·auto-memory·권한 모드 2·`/context`·워크플로 폴백 2)을 다뤘으므로 94 − 9 = 85건입니다.
|
|
1546
|
+
|
|
1547
|
+
**Action items**:
|
|
1548
|
+
- `claude-ai` namespace 되돌림은 이 저장소의 `omcustom` namespace와 무관해 즉각적인 harness 변경은 불필요합니다.
|
|
1549
|
+
- `/doctor prompt-audit`·`claude plugin validate` 강화 항목은 R016 예산 게이트·R017 plugin validate 실행 시 참고할 보조 도구로 기록해 두었으며 룰 수정은 불필요합니다.
|
|
1550
|
+
- auto-memory 차단 결함 수정, auto mode 시작 조건 변경, `/context` MCP 집계, workflow 폴백 수정은 모두 기존 룰이 이미 다루는 전제를 강화하는 방향이며 룰 문안 변경은 불필요합니다.
|
|
1551
|
+
|
|
1552
|
+
---
|
|
1553
|
+
|
|
1467
1554
|
## Known Platform Issues & Workarounds
|
|
1468
1555
|
|
|
1469
1556
|
### Agent tool malformed parsing on long / special-character prompts (#1241)
|
|
@@ -1507,6 +1594,8 @@ Opus 4.8에서 thinking blocks가 수정되어 API 오류가 발생하던 버그
|
|
|
1507
1594
|
- #1714 — Claude Code v2.1.277 compatibility documentation
|
|
1508
1595
|
- #1716 — Claude Code v2.1.280 compatibility documentation
|
|
1509
1596
|
- #1717 — 컨텍스트 예산 초과 대응: CC 버전 노트 이관 정책 전환(룰 → 가이드)
|
|
1597
|
+
- #1746 — Claude Code v2.1.282 compatibility documentation
|
|
1598
|
+
- #1747 — Claude Code v2.1.283 compatibility documentation
|
|
1510
1599
|
- `.claude/skills/claude-native/` — auto-generation source
|
|
1511
1600
|
- `.claude/rules/SHOULD-hud-statusline.md` — R012 statusline integration
|
|
1512
1601
|
- `.claude/rules/MUST-agent-design.md` — R006 agent frontmatter spec
|
package/templates/manifest.json
CHANGED
|
@@ -496,7 +496,20 @@ steps:
|
|
|
496
496
|
`grep -E '(함|됨|필요)[.。"]?$'` = 0 (반말/명사 종결 endings such as 확인함·정정
|
|
497
497
|
필요·완료됨 fall entirely outside the 다-ending regexes above and were previously
|
|
498
498
|
undetectable — verified against 4 명사 종결 positive samples and 4 합쇼체 negative
|
|
499
|
-
samples, 8/8 correct) (#1728 찐빠 #2 residual).
|
|
499
|
+
samples, 8/8 correct) (#1728 찐빠 #2 residual). On macOS, a `grep -E` run of these three
|
|
500
|
+
checks MAY false-positive on multibyte UTF-8 lines (line-final `$` anchor mismatch
|
|
501
|
+
observed, [hypothesis: unverified]) and this repo's Bash `grep` MAY be a shell function
|
|
502
|
+
shadowing the real binary (R005) — the agent MUST ALSO run the same three checks as a
|
|
503
|
+
python3 `re` equivalent of all THREE checks above, reading from the SAME piped stdin as
|
|
504
|
+
(a) (`git diff -U0 -- <edited md/yaml files> | grep '^+' | python3 -c "import re,sys;
|
|
505
|
+
text=sys.stdin.read();
|
|
506
|
+
fam=len(re.findall(r'(한다|된다|않는다|따른다|했다|있다|없다|넣는다|이다)[.。 \"]', text));
|
|
507
|
+
lf=len(re.findall(r'다[.。\"]?$', text, re.M)) - len(re.findall(r'니다[.。\"]?$', text, re.M));
|
|
508
|
+
noun=len(re.findall(r'(함|됨|필요)[.。\"]?$', text, re.M));
|
|
509
|
+
print(fam, lf, noun)"`, NOT a file-argument read — the input is the piped diff, never a
|
|
510
|
+
file path), in ADDITION to (not instead of) the grep commands above, and
|
|
511
|
+
treat a python3/grep disagreement as evidence the grep result is unreliable (macOS
|
|
512
|
+
line-final 오탐 가능성 대응, R005, R023, #1749 찐빠 #3). Even with all three checks, a residual
|
|
500
513
|
gap remains for 반말/명사 종결 variants the patterns above do not enumerate — the agent
|
|
501
514
|
MUST also read the newly added lines directly as a final check, not rely on regex alone.
|
|
502
515
|
When an edit re-emits a pre-existing
|
|
@@ -542,6 +555,13 @@ steps:
|
|
|
542
555
|
arithmetic above MUST add a batched-verification term — ⌈N/batch⌉ — still an
|
|
543
556
|
upper-bound guide that may still truncate, not a truncation guarantee (검증 비용을
|
|
544
557
|
턴 산술에 반영, R020 「maxTurns 절단 실증」 6항 확장, #1737 찐빠 #1).
|
|
558
|
+
- A single-file edit delegation (of any type, not only rule/skill/guide TEXT edits) whose
|
|
559
|
+
target file is ≥1,000 lines (measure `wc -l`) MUST either (i) split "본문 편집" (body edit) from "미러 복사·검증·
|
|
560
|
+
보고" (mirror copy, verification, and completion report) into separate delegations, or
|
|
561
|
+
(ii) add a large-file fixed-cost term to the turn arithmetic above — a large-file edit
|
|
562
|
+
can exceed what the arithmetic assumes even when the item count stays small; read-only
|
|
563
|
+
review delegations are excluded (대형 파일 편집 위임 20턴 절단 재발 방지, R020
|
|
564
|
+
「maxTurns 절단 실증」, R009, #1749 찐빠 #1).
|
|
545
565
|
- Parity delegation prompts (e.g. a ko mirror tracking an en source) MUST require THREE
|
|
546
566
|
directions — additions, edits, AND deletions — to match the source, never additions
|
|
547
567
|
only; completion criteria MUST include a `grep -F` confirming zero rows/sentences are
|
|
@@ -606,7 +626,19 @@ steps:
|
|
|
606
626
|
upstream CHANGELOG lines (measured with `grep -nF`) and the original target paragraph
|
|
607
627
|
as ground truth; if the issue's premise differs from the primary source, the primary
|
|
608
628
|
source wins and the discrepancy is reported rather than silently inherited into the
|
|
609
|
-
corrected wording (#1730 찐빠 #1).
|
|
629
|
+
corrected wording (#1730 찐빠 #1). A `claude-code-release` delegation prompt that writes
|
|
630
|
+
a count sentence (e.g. "기타 N건") MUST specify, in the prompt itself, the exact counting
|
|
631
|
+
range (which section of the issue body to count) and the exact measurement command; the
|
|
632
|
+
resulting guide/rule text MUST carry that same command alongside the number — delegations
|
|
633
|
+
that produce no count sentence are excluded (계수 구간 정의 부재로 인한 수치 오류 방지,
|
|
634
|
+
R023 「리서치 위임의 결론 수치는 표에서 재계산해 병기」, R020, #1749 찐빠 #2).
|
|
635
|
+
- Any delegation correcting a fact (the issue states an existing statement in a target file
|
|
636
|
+
is wrong) — not only `claude-code-release` CC-notes — MUST include, as a completion
|
|
637
|
+
criterion, an exhaustive `grep` across the target file(s) for the claim's key terms, not
|
|
638
|
+
only the single string anchor supplied in the prompt, so a second copy of the same claim
|
|
639
|
+
elsewhere in the file is also caught; pure additions (no existing statement is being
|
|
640
|
+
corrected) are excluded (앵커 1개 한정으로 인한 동일 주장 잔존 사본 방지, R010 「출처
|
|
641
|
+
인용과 인접 문구 점검」, R022, #1749 찐빠 #4).
|
|
610
642
|
- When review-correction work is split across file-ownership delegations (one file per
|
|
611
643
|
agent), every split delegation prompt MUST carry the FULL list of review findings
|
|
612
644
|
(not only the subset touching that agent's file) as a self-check list, so a fix in one
|