CC-Canary: Claude Code에서 회귀 징후를 조기에 감지
요약
Claude Code 사용 시 모델 성능 저하나 행동 변화 (드리프트) 를 조기에 발견할 수 있는 오픈소스 도구 'CC-Canary'가 출시되었습니다. 네트워크 연결 없이 로컬 JSONL 로그만 분석하여 비용, 토큰 사용량, 사고율 등 핵심 지표를 시각화하고 GitHub 이슈용 포렌식 리포트를 생성합니다.
핵심 포인트
- Claude Code의 `~/.claude/projects/` 디렉토리 내 JSONL 로그를 스캔해 모델 드리프트를 감지합니다.
- 비용 (USD), 토큰, 사고율 등 핵심 지표를 🟢🟡🔴 색상으로 표시한 포렌식 리포트를 생성합니다.
- 네트워크/계정 없이 로컬에서 실행되며, Claude 가 자체적으로 리포트 서론을 작성하는 하이브리드 방식입니다.
- 0.x 프리알파 버전으로 출력 형식이 변경될 수 있으나 즉시 설치 및 테스트가 가능합니다.
Claude Code의 드리프트(Drift) 감지를 위한 스킬로, 두 개의 설치 가능한 에이전트 스킬로 패키징되었습니다.
Claude Code가 이미 ~/.claude/projects/에 기록하는 JSONL 세션 로그를 읽고, 모델이 사용자의 작업에서 드리프팅(drifting)했는지 감지하며, 공유 가능한 포렌식 보고서를 생성합니다.
네트워크 연결, 계정 정보, 텔레메트리(telemetry), 백그라운드 데몬을 사용하지 않습니다. 디스크에 이미 있는 데이터를 기반으로 실행됩니다.
상태: 0.x / pre-alpha — 출력 형식 및 메트릭 세트는 변경될 수 있습니다.
| 스킬 | 호출 방법 | 출력 |
|---|---|---|
| cc-canary | /cc-canary [window] | 포렌식 마크다운(markdown) 보고서 (./cc-canary-<date>.md) — GitHub 이슈 또는 gists에 붙여넣기 준비 완료 |
| cc-canary-html | /cc-canary-html [window] | 다크 모드 HTML 대시보드와 동일한 보고서 (./cc-canary-<date>.html), 브라우저에서 자동 열림 |
Window는 기본값으로 60일(d)을 사용합니다. 7일 / 14일 / 30일 / 60일 / 90일 / 180일 중 선택할 수 있습니다.
각 보고서에는 다음 내용이 포함됩니다:
- 판정 (Verdict) — HOLDING / SUSPECTED REGRESSION / CONFIRMED REGRESSION / INCONCLUSIVE
- 헤드라인 메트릭 테이블 (사전 vs 사후, 🟢/🟡/🔴 구간 판정 포함)
- 주간 추세 막대 그래프 — 비용(USD, ccusage를 기준으로 센트 단위까지 검증), 읽기:편집 비율(read:edit ratio), 추론 루프(reasoning loops), 토큰/턴(tokens/turn)
- 크로스 버전 비교 — 동일 사용자, 다른 모델 버전, 작업 혼합을 통제함
- 자동 감지된 변곡일 (inflection date) — 종합 건강 점수(composite health-score) 변화 지점
- 발견 사항 (Findings) — 모델 측 / 사용자 측 / 모호한 분류
- 부록 (Appendices) — 시간대별 사고 깊이(hour-of-day thinking depth), 단어 빈도 변화(word-frequency shift), 3기간 사고 가시성 전환(three-period thinking-visibility transition), 턴당 행동 비율(per-turn behavior rates) 등
npx skills add delta-hq/cc-canary
하나만 설치해도 됩니다:
npx skills add delta-hq/cc-canary --skill cc-canary
npx skills add delta-hq/cc-canary --skill cc-canary-html
그 후 어떤 Claude Code 세션에서든:
/cc-canary 60d
/cc-canary-html 30d
요구 사항 (Requirements)
- PATH에 python3 ≥ 3.8 설치.
cc-canary-html의 자동 열기 단계는 macOS / Linux / WSL이 필요합니다 (open/xdg-open/start가 실패할 경우 경로를 출력하는 방식으로 대체됩니다).
작동 방식 (How it works)
- 스캔(Scan). 번들된 Python 스크립트(stdlib만 사용 — pip나 Node 불필요)는
~/.claude/projects/**/*.jsonl을 탐색하고, 기본적으로 기간별 필터링 및 서브 에이전트 세션은 제외합니다. - 중복 제거 (Dedupe). 어시스턴트 메시지는
(message.id, requestId)를 기준으로 중복 제거됩니다 — Claude Code가 세션 재개 또는 분기 시 동일한 메시지를 여러 JSONL에 기록하는 ccusage와 동일한 방식입니다. - 취합 (Aggregate). 세션별 메트릭: 도구 혼합(tool-mix), 읽기:편집 비율, 추론 루프 구문, 스스로 인정된 오류, 조기 중단(premature stops), 인터럽트, 토큰 사용량, 비용.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기