Claude Code Plugins

Community-maintained marketplace

Feedback
1
0

|

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name run-code-review
description Next.js 프로젝트 통합 리뷰. review-task 6단계 + semicolon-reviewer 코드 리뷰를 하나의 워크플로우로 통합 실행합니다. PR에 리뷰 코멘트를 자동 등록합니다. Use when (1) "/SEMO:review", (2) "리뷰해줘", "PR 리뷰", (3) "태스크 리뷰", "코드 리뷰".
tools Bash, Read, Grep, Glob, Edit
model inherit

호출 시 메시지: 이 Skill이 호출되면 반드시 [SEMO] Skill: run-code-review 시스템 메시지를 첫 줄에 출력하세요.

run-code-review Skill

review-task + semicolon-reviewer 통합 워크플로우

워크플로우

Phase 1-5: 태스크 리뷰 (review-task 기반)

📖 상세 검증 로직: review-task references

Phase 1: 메타데이터 검증

# 이슈 상태 확인
gh issue view {issue} --json title,labels,body

# 브랜치명 규칙 확인: {이슈번호}-{영문-기능명}
BRANCH=$(git branch --show-current)

검증 항목:

  • Draft 라벨/접두사 제거됨
  • 브랜치명 규칙 준수 ({issue}-{feature-name})
  • 이슈 연결됨

Phase 2: 테스트 구조 검증

검증 항목:

  • 개발자 테스트와 QA 테스트 분리
  • 테스트 파일 존재 (*.test.ts, *.spec.ts)
  • 테스트 커버리지 기준 충족

Phase 3: 아키텍처 검증 (DDD)

# DDD 4-layer 구조 확인
ls -la app/{domain}/_{repositories,api-clients,hooks,components}

# 레이어 위반 검색
grep -r "'use client'" app/*/_repositories/  # Repository에 use client 금지

검증 항목:

  • 4-layer 구조 준수 (_repositories, _api-clients, _hooks, _components)
  • 레이어 의존성 위반 없음
  • Server/Client Components 분리

Phase 4: 기능 구현 확인 (AC 매칭)

검증 항목:

  • Acceptance Criteria 추출
  • 각 AC에 대응하는 구현 확인
  • 누락된 AC 없음

Phase 5: 품질 게이트

npm run lint           # ESLint 검사
npx tsc --noEmit       # TypeScript 타입 체크
npm test               # 테스트 실행

검증 항목:

  • ESLint 통과
  • TypeScript 컴파일 에러 없음
  • 테스트 통과

Phase 6: 코드 리뷰 (semicolon-reviewer 기반)

📖 상세 검증 로직: semicolon-reviewer references

6.1 Team Codex Compliance

검증 항목:

  • Commit convention 준수
  • ESLint 규칙 준수
  • TypeScript strict mode

6.2 DDD Architecture

검증 항목:

  • 4-layer 구조 준수
  • Domain isolation
  • Repository pattern

6.3 Supabase Integration

검증 항목:

  • Server client 사용 (SSR)
  • RPC 네이밍 규칙 (fn_domain_action)
  • Type safety

6.4 Performance & Best Practices

검증 항목:

  • Server Components 우선
  • React Query 캐싱
  • Code splitting

6.5 Security & Accessibility

검증 항목:

  • XSS 방지
  • WCAG 2.1 AA 준수
  • 인증/인가 검증

Phase 7: PR 리뷰 등록

7.1 리뷰 결과 종합

Severity 조건 판정
✅ APPROVE Critical 0건 승인
🟡 COMMENT Critical 0건, Warning 1건+ 코멘트
🔴 REQUEST_CHANGES Critical 1건+ 변경 요청

7.2 PR 리뷰 코멘트 등록

# PR 번호 조회
PR_NUMBER=$(gh pr list --head $(git branch --show-current) --json number -q '.[0].number')

# 리뷰 등록
gh pr review $PR_NUMBER --{approve|comment|request-changes} --body "$(cat <<'EOF'
## 🔍 SEMO Review: #{issue_number}

### {verdict}

{phase_results_table}

{details}

---
🤖 *SEMO review Skill (eng/nextjs)*
EOF
)"

출력 포맷

리뷰 진행 중

[SEMO] Skill: review (nextjs)

📋 이슈: #{issue_number} "{title}"
🔍 PR: #{pr_number}

=== Phase 1-5: 태스크 리뷰 ===

| Phase | 상태 | 요약 |
|-------|------|------|
| 1. 메타데이터 | ✅ | Draft 제거됨 |
| 2. 테스트 구조 | ✅ | 개발자/QA 분리됨 |
| 3. 아키텍처 | ✅ | DDD 준수 |
| 4. 기능 구현 | ✅ | AC 5/5 충족 |
| 5. 품질 게이트 | ✅ | 모두 통과 |

=== Phase 6: 코드 리뷰 ===

| 항목 | 상태 |
|------|------|
| Team Codex | ✅ |
| DDD Architecture | ✅ |
| Supabase | ✅ |
| Performance | ✅ |
| Security | ✅ |

리뷰 완료

## 최종 결과: ✅ APPROVE

모든 검증 항목을 통과했습니다.

PR #{pr_number}에 리뷰 코멘트를 등록합니다...
✅ 리뷰 등록 완료

**다음 단계**:
> PR 머지 후 "테스트 요청" 또는 `/SEMO:change-to-testing`으로 QA에 넘기세요.

수정 필요 시

## 최종 결과: 🔴 REQUEST_CHANGES

다음 Critical 이슈를 해결해야 합니다:

**차단 사유**:
- 🔴 [Phase 3] DDD 레이어 위반: `_repositories/`에 'use client' 사용
- 🔴 [Phase 5] TypeScript 에러 3건

**Warning**:
- 🟡 [Phase 6.4] React Query 캐싱 미적용

PR #{pr_number}에 리뷰 코멘트를 등록합니다...
✅ 리뷰 등록 완료 (REQUEST_CHANGES)

Severity 분류

Critical (PR 차단)

  • Security vulnerabilities
  • DDD 아키텍처 위반
  • TypeScript/ESLint 에러
  • 테스트 실패

Warning (수정 권장)

  • Team Codex 경미한 위반
  • 테스트 누락
  • Code smell
  • 패턴 일탈

Suggestion (선택적 개선)

  • Performance 최적화
  • 코드 스타일 개선
  • 문서화 보강

인자 처리

인자 설명 예시
(없음) 현재 브랜치 PR 리뷰 /SEMO:review
#123 특정 이슈 기반 리뷰 /SEMO:review #123
--pr 456 특정 PR 리뷰 /SEMO:review --pr 456
--skip-register PR 리뷰 등록 생략 /SEMO:review --skip-register

References