<!-- task=m-korea-daily-data-foundation/03+01,02_data_check_smoke plan=2 tag=REVIEW_REVIEW_KIS_SMOKE -->

# Plan - Repair Verification Record

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

이 plan은 코드 변경이 아니라 active review stub의 검증 기록을 현재 재실행 가능한 상태와 일치시키는 follow-up이다. 구현 완료 전 active `CODE_REVIEW-cloud-G07.md`의 구현 에이전트 소유 섹션을 실제 명령 출력으로 채운다. 최종화, log rename, `complete.log`, archive 이동은 code-review 전용이다. 사용자만 결정할 blocker, 외부 환경 prerequisite, 또는 범위 충돌이 있으면 review stub의 `사용자 리뷰 요청` 섹션에 근거와 재개 조건을 기록하고 멈춘다.

## 배경

이전 follow-up은 generated contract drift를 제거했지만, active review에는 `protoc v3.21.12` 환경 차단과 `bin/test` 실패 로그가 남았다. 현재 리뷰 재실행에서는 `protoc`가 `/config/.local/bin/protoc` `libprotoc 29.3`로 잡히고 `bin/test`가 통과했다. 이번 작업은 잘못된 USER_REVIEW 요청과 stale verification output을 현재 실제 출력으로 교체한다.

## 사용자 리뷰 요청 흐름

구현 중 blocker는 active `CODE_REVIEW-cloud-G07.md`의 `사용자 리뷰 요청` 섹션에 기록한다. code-review가 검증과 `USER_REVIEW.md` 작성 여부를 판단한다.

## 분석 결과

### 읽은 파일

- `agent-task/m-korea-daily-data-foundation/03+01,02_data_check_smoke/plan_cloud_G07_1.log`
- `agent-task/m-korea-daily-data-foundation/03+01,02_data_check_smoke/code_review_cloud_G07_1.log`
- `agent-task/m-korea-daily-data-foundation/03+01,02_data_check_smoke/CODE_REVIEW-cloud-G07.md`
- `bin/test`
- `bin/contracts-check`
- `bin/contracts-gen`

### 테스트 커버리지 공백

- Smoke command stdout and worker packages are already covered by existing tests.
- Remaining gap is verification record fidelity: active review must contain current actual `bin/test` output and tool versions.

### 심볼 참조

none. 심볼 rename/remove 없음.

### 분할 판단

단일 follow-up plan으로 유지한다. 작업 범위는 one-file review evidence repair이며 split할 독립 구현 단위가 없다.

### 범위 결정 근거

범위는 active review stub의 implementation-owned 기록 수정으로 제한한다. Source code, `.proto`, generated contracts, bin scripts, roadmap 문서는 변경하지 않는다.

### 빌드 등급

build=`cloud-G07`, review=`cloud-G07`. 직전 리뷰가 verification output mismatch를 발견했고, real `bin/test` stdout/stderr 계약을 다시 고정해야 하므로 동일 등급을 유지한다.

## 구현 체크리스트

- [ ] invalid `USER_REVIEW` 요청을 제거하고 `사용자 리뷰 요청`을 `상태: 없음`으로 되돌린다.
- [ ] `command -v protoc`, `protoc --version`, generated contract diff check, `bin/test`를 재실행하고 실제 stdout/stderr를 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_REVIEW_KIS_SMOKE-1] Align Review Evidence With Current Verification

문제: `code_review_cloud_G07_1.log`는 `CODE_REVIEW-cloud-G07.md:78`-`89`의 USER_REVIEW 요청과 `CODE_REVIEW-cloud-G07.md:116`-`168`의 `bin/test` 실패 출력이 현재 재실행 결과와 맞지 않는다고 판정했다.

해결 방법: active review stub의 implementation-owned sections만 수정한다. `사용자 리뷰 요청`은 실제 blocker가 없으면 `상태: 없음`으로 정리하고, `검증 결과`에는 현재 셸의 tool version과 `bin/test` exit 0 출력을 붙인다. `bin/test` 출력이 길면 repo 밖 `/tmp/alt-kis-smoke-bin-test-pass.log`에 저장하고, review stub에는 명령, exit status, 로그 경로, 핵심 stdout tail을 함께 기록한다.

수정 파일 및 체크리스트:

- [ ] `agent-task/m-korea-daily-data-foundation/03+01,02_data_check_smoke/CODE_REVIEW-cloud-G07.md`
- [ ] `packages/contracts/gen/go/**`, `packages/contracts/proto/**`, source code는 변경하지 않는다.

테스트 작성: 새 테스트 없음. 검증 기록 보정이 목적이다.

중간 검증:

```bash
command -v protoc
protoc --version
git diff -- packages/contracts/gen/go/alt/v1/backtest.pb.go packages/contracts/gen/go/alt/v1/common.pb.go packages/contracts/gen/go/alt/v1/market.pb.go
bin/test
```

기대 결과: `protoc`는 `libprotoc 29.3` 계열, generated contract diff는 출력 없음, `bin/test`는 exit 0.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `agent-task/m-korea-daily-data-foundation/03+01,02_data_check_smoke/CODE_REVIEW-cloud-G07.md` | REVIEW_REVIEW_KIS_SMOKE-1 |

## 최종 검증

```bash
command -v protoc
protoc --version
git diff -- packages/contracts/gen/go/alt/v1/backtest.pb.go packages/contracts/gen/go/alt/v1/common.pb.go packages/contracts/gen/go/alt/v1/market.pb.go
bin/test
```

모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.
