Use when a peer worktree session (southpaw·orthodox·spare 등) sends the central control session a draft it is about to show the user or publish — 완료 보고·결정 요청·분석 결과, 또는 PR 생성 전 커밋 메시지·PR 본문 초안. Triggers on "유저 보고 검수해줘", "이 보고 내보내도 돼?", "커밋 메시지·PR 본문 봐줘", 피어가 보낸 `[보고 검수]`·`[PR 문안 검수]` 머리의 메시지. Does NOT trigger on 계획 문서 리뷰(plan-review 스킬), PR 리뷰(review 스킬), 하위 세션에 관문을 알리는 일(control-brief 스킬), 이 세션이 유저에게 직접 답하는 일.
Installs into .claude/skills of the current project.
Are you the author of Report Review?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/sudopark-report-review)
---
name: report-review
description: Use when a peer worktree session (southpaw·orthodox·spare 등) sends the central control session a draft it is about to show the user or publish — 완료 보고·결정 요청·분석 결과, 또는 PR 생성 전 커밋 메시지·PR 본문 초안. Triggers on "유저 보고 검수해줘", "이 보고 내보내도 돼?", "커밋 메시지·PR 본문 봐줘", 피어가 보낸 `[보고 검수]`·`[PR 문안 검수]` 머리의 메시지. Does NOT trigger on 계획 문서 리뷰(plan-review 스킬), PR 리뷰(review 스킬), 하위 세션에 관문을 알리는 일(control-brief 스킬), 이 세션이 유저에게 직접 답하는 일.
---
# Report Review — 유저 보고 검수
**하위 세션이 유저에게 내보내는 보고는 통제 세션을 통과한 것만 나간다.** 하위 세션은 결과를 다 알리려다 결과 없는 사실을 올리고 사소한 것을 키운다. 유저는 그걸 걸러 읽느라 본질을 놓친다. 2026-10-02 에 spare 는 유저가 이미 지우기로 한 테스트를 두고 "캠페인 가정의 근거가 빠진다 — 원장에 기록해둘 일이다"를 붙였고, 결론이 "상관없다"인 컬럼 수 차이를 한 단락 넘게 풀었다.
## 1. 대상
둘이다.
- **유저 보고** — 하위 세션이 **멈춰서 유저에게 넘기는 메시지**. 완료 보고, 결정 요청, 분석·조사 결과다. 작업 중 진행 한 줄과 유저 질문에 대한 즉답은 대상이 아니다. 즉답이라도 분석 결과를 담아 유저 판단을 받는 메시지면 대상이다. 기준은 §2. **재가 요청은 앞의 세 블록 요약까지만 대상이다** — opord §3-8 이 그 뒤에 계획 전문을 그대로 싣게 하고, 전문은 plan-review 가 이미 봤다. 기준 2·3 은 세 블록 끝에서 센다. 템플릿이 형식을 정한 정형 보고(종결보고·백브리프·정기보고·즉시보고)의 본문은 대상이 아니다.
**`[보고 검수]` 요청에는 초안과 함께 셋을 싣는다** — 유저 질문 원문(질문에 답하는 보고면), 유저가 이미 정한 사항 중 초안이 다루는 것, 없으면 `없음`. 기준 1·6·7 은 이 첨부로만 판정한다. 첨부가 빠졌으면 `첨부 누락` 으로 반려한다.
- **PR 문안** — 브랜치의 커밋 메시지 전부와 PR 본문. **PR 생성 전에 한 번에** 받는다 — 커밋마다 받으면 태스크마다 멈춘다. 작성 세션은 `git log --format='%B' origin/develop..HEAD` 출력과 본문 초안, pr 스킬 올리기 전 검토 4종(구독 보관함·주석·문장·static)의 결과 한 줄씩, 상위 이슈 배경 한 줄, 작전명령 유무를 `[PR 문안 검수]` 머리로 보내고, 반려된 커밋 메시지는 push 전에 고쳐 쓴다. PR 공개 뒤 리뷰 반영으로 메시지나 본문을 바꾸면 바뀐 것만 다시 받는다. 기준은 §2-1.
## 2. 유저 보고 기준 — 전부 통과해야 한다
| # | 기준 | 반려 신호 |
|---|---|---|
| 1 | **첫 줄이 결론이다** | 첫 줄이 배경·경위·"확인했다"로 시작한다. 유저 질문이 있었으면 첫 줄이 그 질문에 답하지 않는다 |
| 2 | **마지막 줄도 결론이다** | 유저는 아래에서부터 읽는다. 마지막 줄이 결론·상태(`끝났다` / `남은 것: …` / `유저 검증 대기: …`)도, 유저에게 묻는 질문(여럿이면 번호 목록의 마지막 항목)도 아니다. 근거·부연으로 끝난다 |
| 3 | **길이 상한** | 초안 원문이 15줄을 넘는다. 빈 줄·표 구분선(`|---|`)·코드 펜스 줄과 `[보고 검수]` 머리 줄은 세지 않고, 표 행·코드 줄은 센다. 유저가 상세를 요청한 답만 예외다 |
| 4 | **결과 없는 사실이 없다** | 그 사실이 어떤 행동·선택으로 이어지는지 초안에 한 문장도 없다. "결국 상관없다"·"영향 없다"로 끝나는 단락이 전형이다 |
| 5 | **무게가 결과와 맞다** | 굵은 글씨·"근거가 빠진다"·"기록해둘 일이다"·"주의"가 실제 결과보다 크다. 결과가 원장 한 줄이면 강조할 일이 아니다 |
| 6 | **묻지 않은 확장이 없다** | 유저가 정한 범위 밖의 제안, "~도 하면 ~된다"를 붙였다. 범위를 넓힐 이유가 진짜 있으면 그건 별도 질문 하나로 낸다 |
| 7 | **정한 것을 흔들지 않는다** | 유저가 이미 결정한 사항의 부작용을 다시 꺼낸다. 결정을 바꿀 결함이면 결함 보고 3게이트(전역 규칙) 통과 근거를 함께 실어야 한다 |
| 8 | **근거는 판단에 필요한 만큼** | 유저가 그걸로 판단하지 않는 줄 번호·테스트 이름·파일 목록·표를 실었다 |
| 9 | **질문은 유저만 답할 수 있는 것** | 세션이 스스로 정할 수 있는 것을 묻는다. 질문이 셋을 넘는다 |
| 10 | **문장 규범** | CLAUDE.md §1 위반 — 비문·번역체·피동·줄임말·훈계형 마무리 |
### 2-1. PR 문안 기준
§2 의 4~8·10 을 그대로 적용하고(유저 → 리뷰어로 읽는다), 아래를 더한다. 1~3(첫·끝 줄, 15줄 상한)은 적용하지 않는다 — 커밋·PR 은 형식이 따로 있다.
| # | 기준 | 반려 신호 |
|---|---|---|
| P0 | **올리기 전 검토 4종 결과가 실렸다** | 구독 보관함·주석·문장·static 중 결과 줄이 빠졌다. 결과의 옳고 그름은 보지 않고 줄이 있는지만 본다 |
| P1 | **첫 줄이 동작 변화다** | 커밋 첫 줄이 `[#이슈] 파일·클래스 목록`이거나 "수정"·"개선"·"리팩터" 같은 무엇을 했는지만 말한다 (CLAUDE.md §5) |
| P2 | **앵커 단위 불릿** | 커밋 본문 불릿 머리에 앵커가 없거나(앵커는 코드 심볼, 심볼이 바뀌지 않은 변경은 파일 경로 — 문서·매니페스트·설정), 불릿 머리에 앵커가 여럿이다. 설명 안에 나오는 심볼은 세지 않는다. **한 불릿이 근거·배경·선택 사유를 담았다** — 줄 수가 아니라 내용으로 센다. 그 자리는 제목이고, 제목·코드로 안 드러나는 제약은 본문 맨 아래 한 문단이며 **그 문단은 불릿이 아니라 이 기준의 대상이 아니다** (commit 스킬 §메시지) |
| P3 | **최종 결정만** | 미채택 대안·검토 경위·시행착오·"원래 X였는데"가 있다. 리뷰 반영 흔적("리뷰 지적으로")도 같다 |
| P4 | **배경 중복 없음** | 요청에 실린 상위 이슈 배경 한 줄과 같은 내용을 커밋마다 다시 적는다 |
| P5 | **PR 본문은 두괄식이고, 그 아래가 문제 → 접근 서사** | 첫 문단이 문제·배경으로 시작해, 이 PR 이 무엇을 바꿨는지가 뒤에 나온다. 파일 목록 나열이다. 빈 "남은 과제" 섹션이 있다. 작전명령 있는 런인데 종결보고 1·3·10항 섹션이 빠졌다 (pr 스킬 §본문) |
| P6 | **분량이 이해에 필요한 최소** | 같은 내용이 서사·섹션·커밋에 반복된다. 표·섹션이 이해에 안 쓰인다 |
**판정 근거는 작성 세션이 보낸 것뿐이다.** 초안과 그 요청 메시지에 실린 정보로만 기준을 대본다. 그 세션의 대화 기록·메모리·진행 파일을 열어 숨은 사정을 캐지 않고, 통제 세션이 따로 아는 그 세션의 맥락(캠페인 국면·원장·다음 DP·CI 상태)을 끌어와 "이걸 더 적어라"·"다음은 X 니까 마지막 줄을 바꿔라" 로 내용을 보태지 않는다. 내용의 참·거짓과 빠진 사실은 작성 세션 몫이고, 이 관문은 유저가 읽는 형태를 거른다. 기준 4·5 처럼 결과의 크기를 봐야 하는 자리도 보낸 정보 안에서 판정한다 — 결과가 안 보이면 "결과가 안 보인다" 까지만 적는다.
2026-10-02 #1189 완료 보고 검수에서 통제 세션이 그 캠페인의 다음 DP 와 `/clear` 규칙을 끌어와 마지막 줄을 바꾸게 했고, 유저가 교정했다.
## 3. 회신
요청한 세션에 `SendMessage` 로 보낸다. 형식은 둘 중 하나다.
- `[보고 검수 통과]` — 그대로 유저에게 출력하라 (PR 문안은 그대로 커밋·PR 을 올려라). 고칠 게 사소하면(단어 하나·조사) 고친 문장을 함께 주고 통과시킨다.
- `[보고 검수 반려 N건]` — 건마다 `기준 번호(PR 문안은 P 번호 포함) → 걸린 문장 인용 → 고칠 방향` 한 줄. 재검수는 반려한 자리만 본다.
통과는 출력 허가일 뿐이다. 유저 승인·재가·머지 승인을 갈음하지 않고, 받는 세션의 권한 프롬프트도 대신하지 않는다.
## 4. 종료 기록 — skill_end
한 보고(PR 문안은 한 PR 의 문안 묶음)가 통과로 끝나거나 요청자가 거둬들이면 `python3 .claude/hooks/log-record.py skill_end --name report-review` (명령·compliance 규칙은 CLAUDE.md §1). 반려 → 재검수 라운드는 같은 런이다.