-
Notifications
You must be signed in to change notification settings - Fork 2
feat: 5-Level Severity Classification (BLOCKER/HIGH 추가) #444
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
현재 4단계 심각도 체계를 5단계로 확장합니다.
BLOCKER (구 HARSHLY_CRITICAL) — 머지 차단급, 되돌릴 수 없는 피해
CRITICAL — 안 고치면 터짐, 되돌릴 수는 있음
HIGH — 고쳐야 함, 당장 안 터지진 않음 (NEW)
WARNING — 잠재적 위험
SUGGESTION — 안 고쳐도 됨
Motivation
HARSHLY_CRITICAL이름이 업계 표준과 동떨어짐 →BLOCKER로 리네임 (SonarQube 등 표준)- CRITICAL과 WARNING 사이 갭이 너무 큼 →
HIGH추가로 세분화 - CodeRabbit 등 경쟁 도구 대비 분류 체계 개선
Design Decisions
- HIGH threshold: 1 (CRITICAL과 동일, 노이즈 발생 시 2로 조정)
- HIGH L3 판결: CRITICAL급 (confidence 높으면 REJECT 가능)
- BLOCKER 다운그레이드 2단계 분리:
- 만장일치 반대 → CRITICAL (강한 부정)
- 다수결 반대 → HIGH (약한 부정)
- HIGH suggestion verification: YES (HIGH+ tsc 검증 대상)
- HIGH unconfirmed queue: Promote (CRITICAL과 동일)
- HIGH triage digest: "verify" 카테고리
- 하위호환: parser에서 HARSHLY_CRITICAL → BLOCKER 매핑 유지, config migration 지원
Implementation Phases
Phase 1: Type System Foundation
packages/shared/src/types/severity.ts— SeveritySchema 5단계로 확장, LEGACY_SEVERITY_MAP 추가packages/core/src/types/core.ts— 중복 SeveritySchema 동기화packages/core/src/types/config.ts— registrationThreshold에 HIGH 추가
Phase 2: Pipeline Logic (Critical Path)
- L1 Parser (
parser.ts): BLOCKER/HIGH 인식, HARSHLY_CRITICAL legacy alias - L1 Reviewer Prompt (
reviewer.ts): severity 가이드 전면 업데이트, HIGH 경계 명확화 ("단순 deprecated는 WARNING, 실제 break 예정이면 HIGH") - L2 Threshold (
threshold.ts): HIGH threshold=1 블록 추가, severityRank 업데이트 - L2 Moderator (
moderator.ts): BLOCKER 다운그레이드 2단계 분리 (만장일치→CRITICAL, 다수결→HIGH) - L3 Verdict (
verdict.ts): allCritical 필터에 BLOCKER/HIGH 포함, unconfirmed queue HIGH promote - Suggestion Verifier (
suggestion-verifier.ts): HIGH+ 대상으로 확장
Phase 3: Config & Migration
config/templates.ts— 4개 템플릿 업데이트config/migrator.ts— HARSHLY_CRITICAL → BLOCKER 키 마이그레이션 함수 추가
Phase 4: Display & Output
- CLI: colors.ts (HIGH=magenta), review-output.ts
- TUI: theme.ts (SEVERITY_COLORS, SEVERITY_ICONS)
- Web: review-helpers.ts, SeveritySummary.tsx
- GitHub: sarif.ts (HIGH→CA005 신규 룰), mapper.ts (triage digest)
- Meme: meme/index.ts (BLOCKER/HIGH 엔트리)
Phase 5: Tests
- Pass 1: 전체 테스트 HARSHLY_CRITICAL → BLOCKER 일괄 치환
- Pass 2: HIGH 전용 테스트 추가 (parser, threshold, moderator, verdict, SARIF 등)
- Pass 3: 하위호환 테스트 (legacy parsing, config migration)
Phase 6: Documentation
- docs/CONFIGURATION.md, docs/3_V3_DESIGN.md, docs/ARCHITECTURE.md, CLAUDE.md
Affected Packages
| Package | Files | Impact |
|---|---|---|
| shared | severity.ts, meme/index.ts | 타입 정의, 밈 |
| core | parser.ts, reviewer.ts, threshold.ts, moderator.ts, verdict.ts, suggestion-verifier.ts, config/* | 파이프라인 전체 |
| cli | colors.ts, review-output.ts | CLI 출력 |
| tui | theme.ts | TUI 테마 |
| web | review-helpers.ts, SeveritySummary.tsx | 웹 UI |
| github | sarif.ts, mapper.ts | GitHub 연동 |
Notes
- Pre-analysis / Hallucination Filter는 정적 분석이라 severity 확장에 따른 파이프라인 비용 증가 없음
- HIGH 노이즈 우려 있으나 threshold 조정으로 대응 가능 (config 한 줄)
- 플랜 파일:
~/.claude/plans/cozy-squishing-pine.md
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request