CC Version Analysis — Claude Code CLI 버전 영향 분석 워크플로우
CC CLI 버전 업그레이드 시 bkit plugin에 대한 영향을 체계적으로 조사, 분석하고 개선 기회를 도출하는 전문 워크플로우 스킬.
Overview
이 스킬은 CC CLI의 새 버전이 출시되었을 때 다음을 자동화합니다:
- Phase 1 (Research): CC 변경사항 심층 조사
- Phase 2 (Analyze): bkit 아키텍처 영향 분석
- Phase 3 (Brainstorm): Plan Plus 브레인스토밍으로 개선안 도출
- Phase 4 (Report): 종합 영향 분석 보고서 작성
Agent Team 구성:
cc-version-researcher: CC 버전 변경사항 외부 조사bkit-impact-analyst: bkit 내부 아키텍처 영향 분석report-generator: 최종 보고서 생성
HARD-GATE
NEW (v2.1.16 errata learning — added 2026-05-20): Do NOT advance from Phase 1 → Phase 2 without completing the Phase 1.5 Raw Source Verification Gate. The cc-version-researcher agent's quantitative claims (bullet count, issue counts, file counts) MUST be cross-checked against ≥2 raw sources (GitHub release tag URL + raw CHANGELOG.md URL) before being adopted into the report. The v2.1.145 cycle leaked an unverified bullet count of 21 (actual: 20) and an unverified agent count of 36 (actual: 34) because this gate did not exist. If raw and agent disagree, raw wins.
Invocation
/cc-version-analysis # Auto-detect: installed vs latest /cc-version-analysis 2.1.78 2.1.85 # Specific version range /cc-version-analysis to 2.1.85 # From current installed to target
Process Flow
┌─────────────────────────────────────────────────────┐ │ CC Version Analysis │ ├─────────────────────────────────────────────────────┤ │ │ │ Phase 0: Setup & Version Detection │ │ ├── Detect installed CC version (claude --version) │ │ ├── Determine target version (args or latest) │ │ ├── Create Task tracking structure │ │ └── Load previous analysis from memory │ │ │ │ Phase 1: Research (cc-version-researcher agent) │ │ ├── Official docs (code.claude.com) │ │ ├── GitHub (anthropics/claude-code) │ │ │ ├── Releases & changelog │ │ │ ├── Issues (open & recently closed) │ │ │ ├── PRs (merged in version range) │ │ │ └── Commits (significant changes) │ │ ├── npm registry (@anthropic-ai/claude-code) │ │ ├── Technical blogs & community │ │ └── Output: CC Change Report (structured) │ │ │ │ Phase 1.5: Raw Source Verification Gate (MANDATORY) │ │ ├── WebFetch https://github.com/anthropics/ │ │ │ claude-code/releases/tag/v{to} │ │ ├── WebFetch https://raw.githubusercontent.com/ │ │ │ anthropics/claude-code/main/CHANGELOG.md │ │ ├── Cross-check agent's bullet count vs raw count │ │ ├── If mismatch → raw wins, record errata │ │ ├── Spot-check ≥3 random Fixed bullets verbatim │ │ └── Block Phase 2 if any mismatch unresolved │ │ │ │ Phase 2: Analyze (bkit-impact-analyst agent) │ │ ├── Map CC changes → bkit components │ │ ├── Identify ENH opportunities │ │ ├── File impact matrix │ │ ├── Philosophy compliance check │ │ ├── Test impact assessment │ │ └── Output: bkit Impact Analysis (structured) │ │ │ │ Phase 3: Brainstorm (Plan Plus methodology) │ │ ├── Intent discovery (핵심 목표/리스크/기회) │ │ ├── Alternative exploration │ │ ├── YAGNI review (각 ENH 필요성 검증) │ │ ├── Priority assignment (P0~P3) │ │ └── Output: Prioritized ENH roadmap │ │ │ │ Phase 4: Report Generation │ │ ├── Merge all phase outputs │ │ ├── Generate from template │ │ │ (cc-version-analysis.template.md) │ │ ├── Save to docs/04-report/features/ │ │ ├── Update MEMORY.md (version history) │ │ └── Output: Final Impact Report (Korean) │ │ │ └─────────────────────────────────────────────────────┘
Phase Details
Phase 0: Setup & Version Detection
1. Detect installed CC version: $ claude --version 2. Determine target version: - If args provided: use specified versions - If no args: search for latest available version 3. Create Task structure: TaskCreate: "[CC-Version-Analysis] CC v{from} → v{to}" ├── Task: "Phase 1: CC 변경사항 조사" ├── Task: "Phase 2: bkit 영향 분석" ├── Task: "Phase 3: Plan Plus 브레인스토밍" └── Task: "Phase 4: 보고서 작성" 4. Load previous analysis context: - Read memory/cc_version_history_*.md - Read last ENH number from MEMORY.md - Read existing PDCA status from .bkit/state/pdca-status.json
Phase 1: Research (Agent: cc-version-researcher)
Input: from_version, to_version Output: Structured CC Change Report
Launch the cc-version-researcher agent with:
Research CC CLI changes from v{from} to v{to}. Sources: official docs, GitHub (issues/PRs/releases), npm, blogs. Categorize by: Breaking/Feature/Fix/Performance/SystemPrompt/Hook/Config. Rate impact: HIGH/MEDIUM/LOW. Flag bkit-relevant changes. Output structured markdown tables.
Parallel research tasks (when using Agent Team):
- Task 1: GitHub releases + changelog
- Task 2: GitHub issues (open + recently closed)
- Task 3: Official docs changes
- Task 4: System prompt diff analysis
Phase 1.5: Raw Source Verification Gate (MANDATORY — added 2026-05-20)
Why: cc-version-researcher's output may paraphrase, summarize, or miscount. The v2.1.145 cycle revealed that a single WebFetch (via the model-processed release tag page) under-counted by 1 bullet (reported 6 Added, actual 7). A second fetch against raw CHANGELOG.md is required to catch this.
Protocol (main session, not delegated):
- Fetch raw GitHub release tag page:
WebFetch https://github.com/anthropics/claude-code/releases/tag/v{to_version} - Fetch raw CHANGELOG.md (authoritative):
prompt: "Show the FULL v{to_version} section verbatim. List every bullet exactly as written, in order, under the original headings (Added/Fixed/ Improved/Breaking/etc). Do NOT summarize."WebFetch https://raw.githubusercontent.com/anthropics/claude-code/main/CHANGELOG.md - Compare to cc-version-researcher's reported counts:
- Bullet count (total / per-heading)
- Breaking count
- HIGH/MEDIUM/LOW split
- Key item presence (security fixes, OTEL, hook input changes)
- If raw and agent disagree → raw wins. Record discrepancy in report under §3.0 "Verification Notes" with both numbers.
- Spot-check ≥3 random Fixed bullets — verify verbatim text in agent report matches raw.
- Block Phase 2 progression if any mismatch is unresolved.
Output: §3.0 Verification table appended to Phase 1 output:
| Field | Agent reported | Raw verified | Source URL | Verdict |
|---|---|---|---|---|
| Added | N | M | raw CHANGELOG | match / errata |
| Fixed | N | M | raw CHANGELOG | match / errata |
| Improved | N | M | raw CHANGELOG | match / errata |
| Breaking | N | M | raw CHANGELOG | match / errata |
| Total bullets | N | M | sum | match / errata |
Phase 1.6: Opaque Release Protocol (MANDATORY when triggered — ENH-420)
Trigger: the range's CHANGELOG carries ≤ 1 bullet, OR its bullets are non-specific ("Bug fixes and reliability improvements"). CC v2.1.226 was the first instance and will not be the last.
Why this exists: an opaque release makes CHANGELOG-based analysis worth exactly nothing, and the cycle either invents an answer or measures one. Cycle #35 measured, and the measurement carried the whole report — but it took 15+ manual tool calls to re-derive a procedure nobody had written down, and it produced a false positive along the way (ERRATA-35-1) before catching it.
Procedure (main session, not delegated):
- Run
node scripts/cc-binary-equivalence.js <from> <to>(ENH-421). It reports file size, sha256, Mach-O segment sizes, and exactgrep -a -o -Fcounts for every hook-contract marker, in one pass per build. - Read the segment table before the marker table. Identical
__TEXT/__DATA_CONST/__DATAwith a moving__BUNmeans a payload swap, not a native rebuild — a distinction the file size alone hides. - If no marker moved, the range is equivalent on the measured surfaces, and that is the finding. State the surfaces; do not generalize past them.
- Transfer rule: when two builds are equivalent, every judgement made about the earlier one carries forward unchanged — compatibility, risk, tracked-issue state. Nothing needs re-evaluating, and saying so explicitly is more useful than re-deriving it.
- "No change" is itself a reason RECOMMENDED_VERSION cannot rise. An equivalent release resolves nothing, so a hold stays a hold.
Method rules, each of which cost a cycle:
- ERRATA-35-1: a
stringsset diff is NOT evidence. Trailing-byte artifacts alone produced 1,315 added / 1,226 removed on two builds that turned out to be equivalent. Only exact counts on the raw file count. - ERRATA-37-2: a needle beginning with
-is parsed as an option by ugrep and silently returns 0, which reads as absence. Usegrep -a -o -F -e '<needle>'. - ERRATA-37-6: a misspelled needle also returns a silent 0. Measure spelling
variants together —
runInBackgroundwas 0 in three builds whilerun_in_backgroundwas 49. - ERRATA-33-6: the CHANGELOG paraphrases the implementation. A count of 0 for a term lifted from the release notes does not mean the fix is absent.
- ERRATA-36-6:
cmp -lover two ~300 MB binaries exceeds a two-minute budget, andcmp -n/-ireturn wrong results on this artifact. Do not use them.
Binary provenance (ENH-422) — record these in the report and in the cycle memory, for every build examined. They scope the claim honestly and make cross-platform gaps trackable rather than invisible:
| Field | Where from |
|---|---|
| architecture | file <binary> (e.g. Mach-O 64-bit x86_64) |
| file size | stat / the script's table |
| sha256 | the script's table |
GIT_SHA, BUILD_TIME | the build banner inside the bundle |
| platforms NOT examined | stated explicitly |
The last row is the one that matters. GIT_SHA moving while the bundle does not
means upstream commits exist; the honest claim is "those commits did not change
the shipped macOS x86_64 bundle", never "there were no commits".
Phase 2: Analyze (Agent: bkit-impact-analyst)
Input: Phase 1 CC Change Report PLUS Phase 1.5 verification table Output: bkit Impact Analysis
Pre-flight check before launching the analyst agent: the analyst will measure bkit architecture stats (agents/skills/hooks counts) via Bash. If the analyst proposes a numeric correction to memory (e.g. "agents 34 → 36"), the main session MUST re-run the measurement command independently before accepting it. See "Numeric Correction Protocol" in bkit-impact-analyst.md.
Launch the bkit-impact-analyst agent with:
Analyze bkit impact from these CC changes: {phase1_output} Map each change to bkit components (agents/skills/hooks/lib/scripts). Identify ENH opportunities starting from ENH-{last+1}. Check philosophy compliance (Automation First, No Guessing, Docs=Code). Assess test impact per ENH.
Analysis scope:
- 29 agents: frontmatter compatibility
- 31 skills: allowed-tools, hooks compatibility
- 12 hook events: new events, changed behavior
- 210 lib exports: API compatibility
- 50 scripts: stdin/stdout protocol
- 1,186 TCs: test coverage gaps
Phase 3: Brainstorm (Plan Plus Methodology)
Input: Phase 2 Impact Analysis Output: Prioritized ENH Roadmap
Apply Plan Plus brainstorming phases:
3.1 Intent Discovery
Ask and answer:
- 이 CC 업그레이드에서 bkit이 얻을 수 있는 최대 가치는?
- 놓치면 안 되는 critical change는?
- 기존 workaround를 대체할 수 있는 native 기능은?
3.2 Alternative Exploration
For each HIGH/MEDIUM ENH:
- 구현 방법 A vs B vs C 비교
- 최소 구현 (MVP) vs 완전 구현 trade-off
- 다른 ENH와의 의존성/시너지
3.3 YAGNI Review
Each ENH must pass:
- ✅ 현재 사용자가 실제로 필요로 하는가?
- ✅ 구현하지 않으면 어떤 문제가 발생하는가?
- ✅ 다음 CC 버전에서 더 나은 방법이 나올 가능성은?
- ❌ YAGNI fail → P3 강등 또는 제거
3.4 Priority Assignment
Final priority based on:
- P0: Core PDCA workflow 직접 개선 또는 known pain point 해결
- P1: 중요한 새 기능 활성화 또는 major DX 개선
- P2: Nice-to-have, 문서 업데이트
- P3: Cosmetic, minor optimization, future consideration
Phase 4: Report Generation
Input: All phase outputs Output: Final Korean report in docs/
- Generate report from
cc-version-analysis.template.md - Save to:
docs/04-report/features/cc-v{from}-v{to}-impact-analysis.report.md - Also create Plan (if ENH count > 0):
docs/01-plan/features/cc-v{from}-v{to}-impact-analysis.plan.md - Update MEMORY.md:
- CC version history section
- ENH number range
- Consecutive compatible releases count
- Open/closed GitHub issues
- Update memory file:
memory/cc_version_history_v{from}_v{to}.md
Task Management Protocol
All work MUST be tracked via Task Management System:
[CC-Version-Analysis] CC v{from} → v{to} # Parent task ├── [Research] Phase 1: CC 변경사항 조사 # cc-version-researcher │ ├── GitHub releases 조사 │ ├── GitHub issues 조사 │ ├── 공식 문서 변경 조사 │ └── 시스템 프롬프트 변경 분석 ├── [Analyze] Phase 2: bkit 영향 분석 # bkit-impact-analyst │ ├── 컴포넌트 매핑 │ ├── ENH 기회 식별 │ ├── 파일 영향 매트릭스 │ └── 철학 준수 검증 ├── [Brainstorm] Phase 3: 브레인스토밍 # Plan Plus │ ├── 의도 탐색 │ ├── 대안 탐색 │ └── YAGNI 검토 └── [Report] Phase 4: 보고서 작성 # report-generator ├── 템플릿 기반 보고서 생성 ├── MEMORY.md 업데이트 └── 최종 검토
Agent Team Configuration
When invoked with CTO Team (/pdca team):
| Role | Agent | Model | Task |
|---|---|---|---|
| Lead | cto-lead | fable | Overall orchestration |
| Researcher | cc-version-researcher | opus | Phase 1: CC research |
| Analyst | bkit-impact-analyst | opus | Phase 2: bkit analysis |
| Reporter | report-generator | haiku | Phase 4: Report writing |
Parallel execution:
- Phase 1 tasks can run in parallel (GitHub, docs, npm)
- Phase 2 depends on Phase 1 completion
- Phase 3 depends on Phase 2 completion
- Phase 4 depends on Phase 3 completion
Quality Checklist
Before completing, verify:
- All CC changes from version range are captured
- Every change has impact classification (HIGH/MEDIUM/LOW)
- Every ENH has priority (P0/P1/P2/P3)
- Philosophy compliance checked for all ENH items
- File impact matrix is complete
- Test impact assessed for all ENH items
- Report is written in Korean
- MEMORY.md is updated
- Task tracking shows all items completed
- Executive Summary includes 4-perspective value table
Raw Verification Checklist (NEW — Phase 1.5 gate, v2.1.16 errata learning)
- Raw GitHub release tag URL fetched (
releases/tag/v{to}) - Raw CHANGELOG.md URL fetched (raw.githubusercontent.com)
- Bullet counts cross-verified (agent vs raw, both numbers reported)
- ≥3 spot-check bullets confirmed verbatim against raw
- Numeric corrections re-verified via direct Bash measurement before adoption
- §3.0 Verification table included in report (5 rows: Added/Fixed/Improved/Breaking/Total)
- Errata entries recorded in memory file under "Known Errata" section if any mismatches occurred
Known Errata Log (errata learning archive)
When raw verification catches a discrepancy with agent output, record it here to prevent repeat-mistakes and to feed future skill improvements.
Cycle v2.1.145 (2026-05-20)
| Field | Agent reported | Raw verified | Root cause |
|---|---|---|---|
| Bullet count | 21 (Features 7 + Fixes 13 + Improved 1) | 20 (Added 7 + Fixed 12 + Improved 1) | Agent over-counted Fixed by 1; first WebFetch on model-processed release page under-reported Added by 1 (raw CHANGELOG was authoritative) |
| Agents directory count | 36 (proposed correction from 34) | 34 (ls -1 agents/ | wc -l) | Analyst proposed unverified numeric correction; main session adopted without re-measurement |
| F7-145 background_tasks/session_crons | "extension surface" (no clear source citation) | Confirmed in raw CHANGELOG Added #7 verbatim | Single-source WebFetch had originally omitted this bullet; second raw fetch recovered it |
Lessons applied to skill (this commit):
- Phase 1.5 Raw Verification Gate now mandatory before Phase 2
- cc-version-researcher: verbatim bullet quotation required
- bkit-impact-analyst: direct-measurement-first; Numeric Correction Protocol
- SKILL.md: 7-item Raw Verification Checklist added
- bkit-impact-analyst.md: stale architecture snapshot removed, replaced with mandatory Bash measurement protocol
Previous Analysis Reference
This skill builds on established analysis patterns:
docs/04-report/features/claude-code-v2172-impact-analysis.report.mddocs/04-report/features/claude-code-v2178-impact-analysis.report.mdmemory/cc_version_history_v2134_v2172.md
Always read previous reports first to maintain consistency in:
- ENH numbering (continue from last used number)
- Report structure and depth
- Consecutive compatible release tracking
- GitHub issues monitoring continuity

