بنقرة واحدة
review
병렬 3-lane 코드 리뷰 + fix-first 자동 수정
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
병렬 3-lane 코드 리뷰 + fix-first 자동 수정
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
파이프라인 오케스트레이터 — think → plan → build (리뷰+커밋 포함)
태스크 구현 → 리뷰 → 커밋 (plan 이후 한방 실행기)
합의 기반 플래닝 + 다관점 검증 + TDD 태스크 분해
아이디어 구체화 — 기술, 사업, 개선 상황별 인터뷰 + 다관점 검증
코드베이스 종합검진 — 전수조사 + codex 병렬 검토 + "처음부터 다시 만든다면?" + 수정 계획
스킬 카탈로그 + 시나리오별 라우팅 가이드. 스킬 선택이 필요할 때 자동 로딩.
| name | review |
| description | 병렬 3-lane 코드 리뷰 + fix-first 자동 수정 |
커밋 전 최종 코드 리뷰. 스펙 준수 → 병렬 3-lane 리뷰 → findings 집계 → fix-first → 판정.
/ina:plan--full: 변경 크기와 무관하게 항상 3-lane 전체 리뷰ina 데몬에 의해 실행된 경우:
ina_report_progress 호출ina_mark_blocked(reason="리뷰 이슈 미해결: {issues}")모든 리뷰 레인은 아래 구조로 findings를 반환한다. 이 포맷은 fix-first 및 루프백에서 공통으로 사용된다.
FINDING: {severity} | {confidence} | {file}:{line_start}-{line_end}
{title}
{body — 무엇이 잘못되었고, 왜 위험하고, 어떻게 고쳐야 하는지}
critical, high, medium, low0.0~1.0 (0.7 미만은 최종 집계에서 제외)git diff HEAD와 git diff --cached를 실행한다. 둘 다 비어있으면 리뷰할 변경이 없다.
ina_report_progress(in_progress="스펙 준수 확인", remaining="병렬 리뷰, findings 집계, fix-first, 판정")
TASKS.md 또는 .claude/plans/*.md가 있으면 읽는다git diff)이 스펙/태스크와 일치하는지 확인변경 파일 수로 리뷰 강도를 결정한다:
| 변경 파일 수 | 티어 | 실행 Lane |
|---|---|---|
| ≤ 3 | lite | Simplify만 |
| 4-10 | standard | Security + Simplify |
| 11+ | full | Adversarial + Security + Simplify |
--full 인자 시: 파일 수와 무관하게 항상 full (3-lane)
ina_report_progress(in_progress="리뷰 티어 결정: {tier}", completed="스펙 확인")
ina_report_progress(in_progress="병렬 리뷰 ({tier})", completed="스펙 확인, 티어 결정")
Stage 1.5에서 결정된 티어에 따라 해당 Lane만 실행한다. 각 Agent는 독립적으로 git diff를 분석하고, 위의 Findings 포맷으로 결과를 반환한다.
Codex CLI로 적대적 리뷰 실행:
codex exec -C . --full-auto -s read-only -c model_reasoning_effort="high" \
"You are performing an adversarial code review.
Your job is to break confidence in the change, not to validate it.
Default to skepticism.
Review git diff and git diff --cached.
Attack surface priorities:
- auth, permissions, tenant isolation, trust boundaries
- data loss, corruption, irreversible state changes
- race conditions, ordering assumptions, stale state
- rollback safety, retries, partial failure, idempotency gaps
- version skew, schema drift, migration hazards
Finding bar: only material findings. No style feedback or speculative concerns.
Each finding must answer: what can go wrong, why vulnerable, likely impact, concrete fix.
Output format per finding:
FINDING: {severity} | {confidence 0-1} | {file}:{line_start}-{line_end}
{title}
{body}
If no material issues: output CLEAN.
한국어로 응답."
Codex CLI 실패 시 fallback: Claude Agent (subagent)를 대신 실행하여 동일한 adversarial 관점으로 git diff를 리뷰. 결과에 [degraded: self-review] 태그를 붙인다.
Claude Agent를 실행하여 보안 중심 리뷰:
보안 리뷰어로서 git diff를 분석하라.
검증 항목 (OWASP Top 10 기반):
- Injection (SQL, NoSQL, Command, XSS)
- 인증/인가 결함
- 민감 데이터 노출 (하드코딩된 키, 토큰, 시크릿)
- 입력 검증 누락 / 출력 인코딩 누락
- CORS / CSRF 설정
- 의존성 취약점 (알려진 CVE)
Severity × Exploitability × Blast Radius로 우선순위 결정.
Output format per finding:
FINDING: {severity} | {confidence 0-1} | {file}:{line_start}-{line_end}
{title}
{body — 취약점 설명 + 안전한 코드 예시}
이슈 없으면: CLEAN.
한국어로 응답.
Claude Agent를 실행하여 코드 간결화 리뷰:
코드 간결화 전문가로서 git diff의 변경된 코드만 분석하라.
검증 항목:
- 불필요한 복잡성, 중첩 (nested ternary 등)
- 중복 코드, 불필요한 추상화
- 명확하지 않은 변수/함수명
- 사용하지 않는 import, 변수
- 프로젝트 CLAUDE.md 코딩 컨벤션 위반
- 가독성을 해치는 과도한 압축
원칙: 기능 변경 없이 clarity만 개선. 간결함보다 명확함 우선.
Output format per finding:
FINDING: {severity} | {confidence 0-1} | {file}:{line_start}-{line_end}
{title}
{body — 현재 문제 + 개선 제안}
이슈 없으면: CLEAN.
한국어로 응답.
ina_report_progress(in_progress="findings 집계", completed="스펙 확인, 병렬 리뷰")
실행된 레인의 결과를 합친다:
low → 제외집계 결과를 사용자에게 테이블로 보고:
## Review Findings
| # | Sev | Lane | File:Line | Title | Conf |
|---|-----|------|-----------|-------|------|
| 1 | critical | adversarial | auth.go:42-50 | 토큰 검증 누락 | 0.9 |
| 2 | high | security | db.go:15-20 | SQL injection | 0.8 |
| 3 | medium | simplify | util.go:30-35 | 중첩 삼항 연산자 | 0.7 |
Total: 3 findings (1 critical, 1 high, 1 medium)
Lanes: adversarial {✓|—} | security {✓|—} | simplify ✓ (tier: {tier})
findings가 0개면 → Stage 5로 직행 (CLEAN).
ina_report_progress(in_progress="fix-first 자동 수정", completed="스펙 확인, 병렬 리뷰, findings 집계")
집계된 findings를 분류하여 처리:
MECHANICAL FIX (자동 적용) — simplify 레인의 findings 중심:
CODE CHANGE REQUIRED (코드 변경 필요) — adversarial/security 레인 중심:
자동 수정 후 어떤 findings를 수정했고, 어떤 것이 남았는지 보고.
ina_mark_blocked + 남은 이슈 요약리뷰 결과를 3가지 중 하나로 판정:
| 판정 | 의미 | autopilot 동작 |
|---|---|---|
| CLEAN | 이슈 없음 | → 리뷰 게이트 해제 → 문서 업데이트 확인 → commit |
| MECHANICAL FIX | 기계적 수정 완료, 추가 이슈 없음 | → 리뷰 게이트 해제 → 문서 업데이트 확인 → commit |
| CODE CHANGE REQUIRED | 코드 변경 필요 | → build 단계로 루프백 |
리뷰 게이트 해제: CLEAN 또는 MECHANICAL FIX 판정 시 .state/review-gate.md를 삭제한다. 이 파일이 삭제되어야 커밋이 가능하다 (guard 규칙 5 참조).
autopilot 파이프라인에서 호출된 경우:
CODE CHANGE REQUIRED 판정 시:
.state/review-issues.md에 구조화된 findings 포맷으로 기록:
# Review Issues (Loop N)
| # | Sev | Lane | File:Line | Title | Conf |
|---|-----|------|-----------|-------|------|
| 1 | critical | adversarial | auth.go:42-50 | 토큰 검증 누락 | 0.9 |
review_loops를 증가시키고 build 재실행루프백 제한:
review_loops)ina_mark_blocked(reason="review 3회 루프백 초과 — 미해결 이슈: {issues}")build 재실행 시:
.state/review-issues.md를 읽어서 해당 이슈만 수정git diff)