Issue Title
PR 리뷰 방식을 로컬 세션 → CI 기반 AI 리뷰로 전환하자 (당근마켓 안드로이드 팀 사례 참고)
Issue Content
한 줄 요약: 지금은 AI 리뷰가 로컬에서만 돌고 PR엔 흔적이 안 남는다. 당근마켓처럼 CI에서 자동으로 돌려 심각도별로 PR에 남기는 방식을 제안한다. 아래는 초안이고 팀 논의 후 확정한다.
🤔 문제
지금 PR 리뷰는 전부 각자 노트북의 로컬 Claude Code 세션에서 일어난다.
make-PR 스킬 1단계가 wss-pr-reviewer(cross-layer 통합)·wss-feature-reviewer(Feature 전문)를 불러 🔴Blocker/🟡Warning/🔵Nit로 리뷰
- Blocker+Warning = 0이 될 때까지 최대 3라운드 로컬에서 직접 수정 후 PR 생성
→ PR에는 이미 반영된 최종 코드만 올라가서, 팀원 누구도 AI가 무엇을 지적했었는지 확인할 수 없다.
💡 당근마켓 안드로이드 팀 사례
같은 문제를 겪었는데, 처음엔 AI 리뷰를 전부 PR 코멘트로 달았더니 가독성이 떨어지고 중요한 이슈에 집중이 안 됐다고 한다. 그래서 심각도를 4단계로 나눠 노출 방식을 다르게 했다.
| 심각도 |
정의 |
노출 위치 |
| 🔴 Critical |
제품에 영향을 주는 버그 |
PR 코멘트 |
| 🟠 High |
기능은 동작하지만 UX 문제 |
PR 코멘트 |
| 🟡 Medium |
구조·유지보수성·컨벤션 |
PR 본문 |
| ⚪ Low |
사소한 리팩터링·주석 |
PR 본문 |
📋 조사로 확인한 현재 상태
- 로컬 리뷰(
wss-pr-reviewer.md)는 테스트를 실행하지 않는다 — 리포트 끝 "검증 권고" 한 줄뿐
- 테스트는 이미
.github/workflows/test.yml이 PR마다 diff-aware로 돌고, gate("All Tests Passed")가 develop 브랜치 보호의 필수 체크
- 같은 워크플로우의
arch-lint("Architecture Rules")가 ::error::/::warning:: 주석으로 위반을 PR diff에 인라인 표시하고, error면 exit 1 — 새 AI 리뷰도 이 패턴을 그대로 따라갈 수 있음
report job은 커버리지를 sticky-pull-request-comment로 PR에 지속 코멘트로 남기는 선례도 있음
- AI/LLM 기반 워크플로우, Anthropic API 키 secret은 현재 전무 — 신규 도입 시 GitHub 웹에서
ANTHROPIC_API_KEY secret 등록(과금 발생) 필요
🚀 제안하는 방향 (초안 — 논의 대상)
1. 로컬 리뷰를 CI 리뷰로 완전 대체
make-PR 스킬의 로컬 리뷰 수렴 루프(1단계)를 없애고, PR 생성 후 CI(.github/workflows/test.yml에 새 job ai-review 추가)가 유일한 리뷰 지점이 된다. 테스트 job과 같은 워크플로우에 두면 Checks 탭에 테스트·리뷰가 나란히 뜬다.
2. 심각도 4단계로 재편
Critical/High/Medium/Low. 기존 wss-pr-reviewer/wss-feature-reviewer 체크리스트(cross-layer 정합성·의존성 방향·비동기 모델·Feature 계약 등)를 재매핑해 .github/CI_REVIEW_GUIDE.md(신설)에 체크리스트 정본으로 옮긴다.
3. Critical은 머지 차단
Critical이 하나라도 있으면 CI job을 fail시켜 develop 브랜치 보호의 필수 체크로 막는다(arch-lint와 동일 패턴).
4. Critical·High는 인라인 코드 리뷰 코멘트, Medium·Low는 PR 본문
PR 본문에 ## 🤖 AI Review (Medium / Low) 섹션을 새로 추가한다(마커 주석으로 재실행 시 교체, 중복 방지).
5. 기존 로컬 리뷰어는 삭제하지 않고 존치
wss-pr-reviewer.md/wss-feature-reviewer.md는 make-PR의 자동 호출 경로에서만 빠지고, 필요하면 수동으로 부를 수 있는 보조 도구로 남긴다.
6. LLM 호출 수단
Anthropic 공식 claude-code-action(GitHub Action) 사용을 가정했다 — 실제 파라미터·권한 스코프는 구현 직전 공식 문서로 재확인 필요.
✅ 팀에서 같이 정했으면 하는 것
📎 참고
초안 구현 계획(파일 목록·job 뼈대·심각도 매핑 표·PR 본문 갱신 전략·스킬 개정안까지 정리됨)이 있다. 논의 후 방향이 정해지면 이 계획을 다시 다듬어 실제 작업 이슈로 쪼갠다.
Issue Title
PR 리뷰 방식을 로컬 세션 → CI 기반 AI 리뷰로 전환하자 (당근마켓 안드로이드 팀 사례 참고)
Issue Content
🤔 문제
지금 PR 리뷰는 전부 각자 노트북의 로컬 Claude Code 세션에서 일어난다.
make-PR스킬 1단계가wss-pr-reviewer(cross-layer 통합)·wss-feature-reviewer(Feature 전문)를 불러 🔴Blocker/🟡Warning/🔵Nit로 리뷰→ PR에는 이미 반영된 최종 코드만 올라가서, 팀원 누구도 AI가 무엇을 지적했었는지 확인할 수 없다.
💡 당근마켓 안드로이드 팀 사례
같은 문제를 겪었는데, 처음엔 AI 리뷰를 전부 PR 코멘트로 달았더니 가독성이 떨어지고 중요한 이슈에 집중이 안 됐다고 한다. 그래서 심각도를 4단계로 나눠 노출 방식을 다르게 했다.
📋 조사로 확인한 현재 상태
wss-pr-reviewer.md)는 테스트를 실행하지 않는다 — 리포트 끝 "검증 권고" 한 줄뿐.github/workflows/test.yml이 PR마다 diff-aware로 돌고,gate("All Tests Passed")가 develop 브랜치 보호의 필수 체크arch-lint("Architecture Rules")가::error::/::warning::주석으로 위반을 PR diff에 인라인 표시하고, error면exit 1— 새 AI 리뷰도 이 패턴을 그대로 따라갈 수 있음reportjob은 커버리지를sticky-pull-request-comment로 PR에 지속 코멘트로 남기는 선례도 있음ANTHROPIC_API_KEYsecret 등록(과금 발생) 필요🚀 제안하는 방향 (초안 — 논의 대상)
1. 로컬 리뷰를 CI 리뷰로 완전 대체
make-PR스킬의 로컬 리뷰 수렴 루프(1단계)를 없애고, PR 생성 후 CI(.github/workflows/test.yml에 새 jobai-review추가)가 유일한 리뷰 지점이 된다. 테스트 job과 같은 워크플로우에 두면 Checks 탭에 테스트·리뷰가 나란히 뜬다.2. 심각도 4단계로 재편
Critical/High/Medium/Low. 기존
wss-pr-reviewer/wss-feature-reviewer체크리스트(cross-layer 정합성·의존성 방향·비동기 모델·Feature 계약 등)를 재매핑해.github/CI_REVIEW_GUIDE.md(신설)에 체크리스트 정본으로 옮긴다.3. Critical은 머지 차단
Critical이 하나라도 있으면 CI job을 fail시켜 develop 브랜치 보호의 필수 체크로 막는다(arch-lint와 동일 패턴).
4. Critical·High는 인라인 코드 리뷰 코멘트, Medium·Low는 PR 본문
PR 본문에
## 🤖 AI Review (Medium / Low)섹션을 새로 추가한다(마커 주석으로 재실행 시 교체, 중복 방지).5. 기존 로컬 리뷰어는 삭제하지 않고 존치
wss-pr-reviewer.md/wss-feature-reviewer.md는 make-PR의 자동 호출 경로에서만 빠지고, 필요하면 수동으로 부를 수 있는 보조 도구로 남긴다.6. LLM 호출 수단
Anthropic 공식
claude-code-action(GitHub Action) 사용을 가정했다 — 실제 파라미터·권한 스코프는 구현 직전 공식 문서로 재확인 필요.✅ 팀에서 같이 정했으면 하는 것
ANTHROPIC_API_KEY도입에 따른 비용을 누가/어떻게 감당할지 — 커밋(synchronize)마다 자동 실행되므로 PR 하나에 여러 번 API 호출 발생📎 참고
초안 구현 계획(파일 목록·job 뼈대·심각도 매핑 표·PR 본문 갱신 전략·스킬 개정안까지 정리됨)이 있다. 논의 후 방향이 정해지면 이 계획을 다시 다듬어 실제 작업 이슈로 쪼갠다.