원클릭으로
review
// Independent code & visual review via sub-agents. 2-pass evaluation (Critical→Informational) with bias isolation. Use after /verify passes.
// Independent code & visual review via sub-agents. 2-pass evaluation (Critical→Informational) with bias isolation. Use after /verify passes.
Adaptive requirements clarification with auto-depth routing. Shallow (Q&A) for simple tasks, Deep (exploration + DRAFT + PLAN) for complex ones. Escalates automatically when ambiguity persists.
Security audit with Quick/Full modes. Quick runs inside /review for auth/API changes. Full runs standalone with OWASP Top 10 + STRIDE. Use when touching security-sensitive code or for periodic audits.
TDD implementation (RED→GREEN→REFACTOR) → verify → review. Use when a plan is approved and ready for coding. Drives the full chain automatically.
Structured root-cause debugging with scope lock. Use when hitting bugs, errors, or unexpected behavior. 4-phase: collect → analyze → hypothesize → fix.
오픈소스 기여 가능성 분석. GitHub 레포 URL 또는 이슈 링크를 받아 기여 가능 여부를 판단. Analyze open source contribution viability — use when the user asks about contributing to a GitHub repo, wants to find good first issues, or asks if an issue is worth working on. Trigger on phrases like 'contribute', 'open source', 'good first issue', 'can I work on this', '기여', '오픈소스'.
오픈소스 기여 실행. oss-clarify 분석 후 실제 기여 작업 수행 — 브랜치 생성, 코드 수정, 테스트, 커밋 메시지 추천. Execute open source contribution after oss-clarify analysis. Use when the user says 'proceed', 'contribute now', 'OSS 작업 시작', '기여 진행', or confirms they want to start working on an issue.
| name | review |
| description | Independent code & visual review via sub-agents. 2-pass evaluation (Critical→Informational) with bias isolation. Use after /verify passes. |
| Before | Current | Next (auto) |
|---|---|---|
| /verify pass | /review | /wrap (on PASS) |
/review 호출
│
├── 1. 컨텍스트 수집
│ ├── git diff (변경 파일 + 내용)
│ ├── PRD/spec (clarify 산출물, 있으면)
│ ├── CLAUDE.md (프로젝트 컨벤션)
│ └── 변경 파일 수 확인 → 8개+ 시 스코프 드리프트 경고
│
├── 2. 프로젝트 타입 감지
│ ├── tsx/jsx/vue 변경 + dev server 설정 → frontend = true
│ └── auth/middleware/API route 변경 → security_sensitive = true
│
├── 3. Sub-agent 실행 (해당 조건 시 반드시 병렬 실행)
│ ├─▶ [code-review] ← 항상 실행 (2-pass)
│ └─▶ [visual-review] ← frontend = true일 때 동시 실행 (Agent tool 병렬 호출)
│
├── 4. 결과 종합 → Triage → Verdict
│
└── 5. Fix-First 실행
├── AUTO-FIX 항목 → 즉시 수정
└── ASK 항목 → 사용자에게 질문
반드시 먼저 실행. 하나라도 발견되면 P0/P1으로 분류.
| 검사 항목 | 대상 |
|---|---|
| SQL/데이터 안정성 | 파라미터화 미사용, 트랜잭션 경계 누락, 마이그레이션 안전성 |
| Race condition | 공유 상태 동시 접근, lock 없는 업데이트, 비원자적 읽기-수정-쓰기 |
| 신뢰 경계 | LLM 출력 미검증 사용, 외부 API 응답 직접 신뢰, 사용자 입력 미새니타이즈 |
| Enum/분기 완전성 | switch exhaustiveness, 누락된 에러 케이스, 타입 narrowing 빈틈 |
| 인증/인가 | 미보호 라우트, 권한 우회 가능 경로, 토큰 검증 누락 |
| 데이터 유실 | 에러 시 부분 쓰기, 롤백 미처리, cascade delete 영향 범위 |
security_sensitive = true일 때 추가 검사:
| 검사 항목 | 대상 |
|---|---|
| 입력 검증 | SQL injection, XSS, command injection |
| 시크릿 관리 | 하드코딩된 키/토큰, 로그에 민감정보 노출 |
| 세션/쿠키 | httpOnly, secure, sameSite 설정 |
| CORS | 와일드카드 origin, credentials 허용 범위 |
Pass 1 완료 후 실행. 참고용이며 FAIL 사유가 되지 않음.
| 검사 항목 | 대상 |
|---|---|
| 매직 넘버 | 의미 불명 상수, 하드코딩된 설정값 |
| 조건부 부작용 | 조건문 내부 상태 변경, 숨겨진 side effect |
| 테스트 갭 | 비즈니스 규칙 변경인데 테스트 미작성 |
| 복잡도 | 불필요한 추상화, 과잉 설계, 깊은 중첩 |
| 성능 | O(n²)+ 패턴, N+1 쿼리, 불필요한 할당 |
| 컨벤션 | CLAUDE.md 규칙 위반, 기존 패턴 불일치 |
모든 이슈에 심각도를 부여:
| 등급 | 기준 | 행동 |
|---|---|---|
| P0-CRITICAL | 프로덕션 장애 직결 | 반드시 수정. FAIL 사유 |
| P1-HIGH | 버그 가능성 높음 | 수정 권장. 2건+ 시 FAIL |
| P2-MEDIUM | 개선하면 좋음 | 선택적 |
| P3-LOW | 스타일/참고 | 무시 가능 |
각 이슈에 행동 유형 부여:
| 유형 | 기준 | 예시 |
|---|---|---|
| AUTO-FIX | 기계적으로 수정 가능, 판단 불필요 | 임포트 정렬, 미사용 변수, 타입 단언, lint 위반 |
| ASK | 아키텍처/비즈니스 판단 필요 | 에러 처리 전략, API 계약 변경, 성능-가독성 트레이드오프 |
npx playwright --version 성공)| 기준 | 평가 대상 |
|---|---|
| Layout | 깨짐, 오버플로우, 반응형 대응 |
| Consistency | 디자인 시스템/컴포넌트 라이브러리 일관성 |
| Accessibility | 명암비, 포커스 표시, 시맨틱 구조 |
| Authenticity | AI 기본 출력 느낌 탈피 (아래 RED FLAG 참조) |
다음이 감지되면 Authenticity 감점:
| 항목 | RED FLAG |
|---|---|
| Color | 브랜드/PRD 지정 없이 보라-파랑 기본 팔레트 사용 |
| Decoration | 기능적 의미 없는 그라디언트, blur, 애니메이션 |
| Density | 시각적 계층 없이 요소가 균일하게 빽빽함 |
| Whitespace | 의도적 여백(breathing room) 부재 |
| Originality | SaaS 랜딩페이지 템플릿 패턴 그대로 (3열 카드, hero+features+CTA) |
| Copy | "Supercharge", "Built for the modern" 등 generic AI 카피 |
## Review Result
### Pass 1: Critical Issues
| # | 등급 | 이슈 | 위치 | 행동 |
|---|------|------|------|------|
| 1 | P0 | SQL injection 가능 | src/api.ts:42 | AUTO-FIX |
| 2 | P1 | race condition | src/store.ts:88 | ASK |
### Pass 2: Informational
| # | 등급 | 이슈 | 위치 | 행동 |
|---|------|------|------|------|
| 3 | P2 | 매직 넘버 | src/config.ts:15 | AUTO-FIX |
| 4 | P3 | 깊은 중첩 | src/utils.ts:30 | - |
### Visual Review (해당 시)
| Criterion | Score | Issues |
|-----------|-------|--------|
| Layout | 4 | ... |
| Consistency | 3 | ... |
| Accessibility | 4 | ... |
| Authenticity | 3 | ... |
### Summary
- P0: 0건 / P1: 1건 / P2: 2건 / P3: 1건
- AUTO-FIX: 2건 (즉시 수정)
- ASK: 1건 (아래 질문)
### Verdict: PASS | FAIL (reason)
/wrap. Do not ask "shall I wrap?"