Skip to content

feat: 5-Level Severity Classification (BLOCKER/HIGH 추가) #444

@justn-hyeok

Description

@justn-hyeok

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions