<!-- task=m-policy-history-audit/01_audit_contracts plan=2 tag=REVIEW_API_CHECKLIST -->

# Plan - REVIEW_API_CHECKLIST

## 이 파일을 읽는 구현 에이전트에게

`CODE_REVIEW-local-G07.md`의 구현 에이전트 소유 섹션을 채우는 것이 구현의 필수 마지막 단계다. 코드를 바꾸고 검증을 실행한 뒤 실제 구현 내용, 계획 대비 변경 사항, 주요 설계 결정, 검증 stdout/stderr를 리뷰 스텁에 기록하고 active 파일을 그대로 둔 채 리뷰 준비를 보고한다. 구현 중 사용자만 결정할 수 있는 제품 선택, 사용자 소유 외부 환경 prerequisite, 또는 범위 충돌이 생기면 리뷰 스텁의 `사용자 리뷰 요청` 섹션에 정확한 근거를 채우고 멈춘다. 후속 에이전트가 명령 재실행이나 산출물 수집으로 해소할 수 있는 evidence 공백은 사용자 리뷰 요청이 아니다.

## 배경

G06 리뷰에서 `packages/go/audit/audit_test.go`의 event type coverage 보강과 테스트 통과는 확인되었다. 남은 Required는 active review stub의 `구현 체크리스트`가 `[ ]` 상태로 남아 구현 완료 계약을 만족하지 못한 점뿐이다. 이번 후속은 소스 변경을 새로 요구하지 않고, fresh verification을 재실행한 뒤 `CODE_REVIEW-local-G07.md`의 구현 에이전트 소유 섹션과 checklist completion을 정확히 채운다.

## 사용자 리뷰 요청 흐름

구현 중 차단 사유가 있으면 active `CODE_REVIEW-local-G07.md`의 `사용자 리뷰 요청` 섹션을 `agent-ops/skills/common/_templates/implementation-user-review-request-section.md` 형식으로 채운다. code-review가 요청의 타당성을 검증하고 실제 `USER_REVIEW.md` 작성 여부를 결정한다.

## Roadmap Targets

- Milestone: `agent-roadmap/phase/control-plane-portal-ops/milestones/policy-history-audit.md`
- Task ids:
  - `schema-evidence`: policy/audit 상세 schema는 구현 단계에서 명확한 evidence와 함께 확정한다.
- Completion mode: check-on-pass

## 리뷰 발견사항

- Required: `CODE_REVIEW-local-G06.md`의 `구현 체크리스트`가 모두 `[ ]` 상태로 남아 있었다. 구현 에이전트는 plan/review checklist text/order를 유지하면서 완료된 항목을 `[x]`로 표시해야 한다.

## 범위 결정 근거

- 포함: `CODE_REVIEW-local-G07.md`의 구현 항목별 완료 여부, 구현 체크리스트, 계획 대비 변경 사항, 주요 설계 결정, 검증 결과 작성.
- 포함: fresh Go verification 재실행과 출력 기록.
- 제외: `packages/go/audit/audit.go`와 `packages/go/audit/audit_test.go` 추가 변경. G06 리뷰에서 source/test behavior는 통과했다.
- 제외: Edge/Control Plane/Node integration, proto/wire 변경, persistence schema.

## 빌드 등급

- `local-G07`: 반복 루프에서 checklist completion contract를 닫는 deterministic follow-up이다.

## 구현 체크리스트

- [ ] `CODE_REVIEW-local-G07.md`의 구현 체크리스트 문구를 이 계획과 동일하게 유지하고, 완료된 항목을 `[x]`로 표시한다.
- [ ] `go test -count=1 ./packages/go/audit ./packages/go/policy ./packages/go/jobs ./packages/go/events ./packages/go/metadata`를 실행해 audit package와 인접 공통 패키지를 fresh 검증한다.
- [ ] `go test -count=1 ./packages/go/...`를 실행해 platform-common 전체 회귀를 fresh 검증한다.
- [ ] `CODE_REVIEW-local-G07.md`의 구현 에이전트 소유 섹션을 실제 완료 상태와 검증 출력으로 채운다.

## [REVIEW_API_CHECKLIST-1] Review Stub Completion Contract

### 문제

G06 구현은 source/test 보강을 완료했지만 active review stub의 `구현 체크리스트`를 완료 표시하지 않았다. code-review skill은 이 체크리스트 완료를 구현 완료 계약으로 사용하므로, 체크리스트 미완료는 PASS 대상이 아니다.

### 해결 방법

`CODE_REVIEW-local-G07.md`에서 다음을 수행한다.

- `구현 항목별 완료 여부`의 항목을 완료 표시한다.
- `구현 체크리스트`의 item text/order를 변경하지 않고 `[ ]`를 `[x]`로 바꾼다.
- `계획 대비 변경 사항`, `주요 설계 결정`, `검증 결과`에 이번 후속에서 실제로 수행한 내용을 기록한다.
- 사용자 결정이 필요하지 않으면 `사용자 리뷰 요청`은 `상태: 없음`을 유지한다.

### 수정 파일 및 체크리스트

- [ ] `CODE_REVIEW-local-G07.md`: 구현 에이전트 소유 섹션을 완성하고 checklist completion을 표시한다.

### 테스트 작성

- 별도 코드 테스트는 작성하지 않는다. 기존 audit tests와 platform-common 회귀를 fresh run으로 확인한다.

### 중간 검증

```bash
rg --sort path -n '^- \\[ \\]' agent-task/m-policy-history-audit/01_audit_contracts/CODE_REVIEW-local-G07.md
```

기대 결과: 구현 에이전트 소유 `구현 체크리스트`에 미완료 항목이 남지 않는다. 리뷰 전용 체크리스트의 `[ ]`는 review-agent-only이므로 남아 있어야 한다.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `agent-task/m-policy-history-audit/01_audit_contracts/CODE_REVIEW-local-G07.md` | REVIEW_API_CHECKLIST-1 |

## 최종 검증

```bash
go test -count=1 ./packages/go/...
```

기대 결과: platform-common 전체 Go 테스트가 fresh run으로 통과한다. 모든 완료 후 반드시 `CODE_REVIEW-local-G07.md`의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.
