chore: AI 리뷰 산출물 자동 PR 방지#279
Conversation
- 리뷰 JSON을 레포 밖 scratch 경로에 쓰도록 스킬 절차 수정 - codex-review-output.json 등 리뷰 산출물 .gitignore 등록 - 클라우드 라우틴 auto-commit/auto-PR로 아티팩트 PR이 생성되던 문제 방지
jaeyoung-kwon
left a comment
There was a problem hiding this comment.
🤖 PR Review
⚠️ 수정이 필요한 리뷰 코멘트가 있습니다.
이 PR이 실제로 작성한 커밋(f46ef88) 자체는 의도한 대로 정확합니다 — SKILL.md에 리뷰 산출물을 레포 밖 scratch 경로($TMPDIR/tmp)에 쓰도록 절차를 수정하고, .gitignore에 관련 산출물 패턴을 추가했습니다. publisher(.github/scripts/publish-codex-review.sh)가 만드는 파일명(codex-review-body.md, codex-review-comments.jsonl, codex-review-payload*.json, codex-review-normalized.json)과 .gitignore 패턴도 정확히 일치합니다. 다만 PR 설정 자체에 중요한 문제가 있습니다: 이 PR의 base는 main인데, head 브랜치(chore/prevent-ai-review-artifact-pr)는 main이 아니라 dev의 현재 tip 커밋(2f97115, '마이페이지 월간 리포트·동행 카드 구현 #263')에서 분기되었습니다. 그 결과 base...head diff에는 이 PR이 의도한 SKILL.md/.gitignore 변경 2개 파일 외에도 dev에만 있고 main에는 아직 없는 커밋들(마이페이지 월간 리포트, 매일메일 구독 수정/취소, 연속 읽기 보호막 UI, pet API 이동 등 약 62개 파일 · 9,002줄)이 통째로 포함되어 있습니다. PR 설명("스킬 문서/‧gitignore만 변경. 프론트엔드 코드 변경 없음")과 실제 diff 범위가 일치하지 않습니다. 이 상태로 main에 머지하면 아직 main 릴리스 사이클을 거치지 않은 dev의 미완료/미검증 변경사항이 그대로 main에 반영되는 위험이 있습니다. 머지 전에 base를 dev로 변경하거나, 브랜치를 main 최신 tip 위로 rebase해서 diff를 SKILL.md/.gitignore 변경으로만 좁히는 것을 권장합니다.
🚨 0 Critical ·
📋 검증 과정
- Claude structured review 결과 중 확신도가 있는 항목만 정리했습니다.
- Critical/Major는 inline comment로 게시하고, Minor는 참고 항목으로 summary에 포함합니다.
- 자동 생성된 OpenAPI 타입 선언 파일과 lock 파일은 리뷰 대상에서 제외합니다.
🤖 Claude PR Review
Generated by Claude Code
📌 What
AI PR 리뷰 라우틴이 매 실행마다
chore: PR #… 자동 리뷰 아티팩트PR(#270/#273/#277 등)을 남기던 문제를 막습니다.❓ Why
ai-review-workflow스킬이 리뷰 산출물codex-review-output.json을 레포 루트에 쓰는데, 클라우드 라우틴 환경은 세션 종료 시 워킹트리 변경을 자동 커밋·PR화합니다. 그 결과 리뷰 산출물(+리뷰 범위를 벗어난 코드 수정)이 불필요한 아티팩트 PR로 쓸려 들어갔습니다. 실제 리뷰는 대상 PR에 코멘트로 이미 게시되므로 이 산출물은 ephemeral이어야 합니다.🔧 How
ai-review-workflow스킬 절차 수정: 리뷰 JSON을 레포 밖 scratch 경로($TMPDIR)에 쓰고, 워킹트리를 clean 상태로 마치도록 명시. 커밋·PR·코드 수정 금지 제약 추가..gitignore에codex-review-output.json등 리뷰 산출물 등록 (2차 방어).👀 Review Point