<!-- task=10_bin_e2e_smoke plan=5 tag=REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES -->

# 10 Bin E2E Smoke Follow-up Plan - REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES

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

이 plan은 real profile smoke의 PASS 기록과 리뷰 재실행 결과 불일치를 끝낸다. 현재 스크립트는 failure marker를 정직하게 잡고 있으나, `IOP_E2E_PROFILE=gemini make test-e2e`가 외부 LLM 응답에 따라 PASS/FAIL이 바뀐다. 이 상태에서 review file에 PASS를 기록하면 안 된다.

구현 마지막에는 반드시 `CODE_REVIEW-cloud-G07.md`의 모든 구현 소유 섹션을 실제 구현 내용과 명령 출력으로 채운다. 검증 출력에는 `...`를 쓰지 않는다.

## 배경

plan=4 review file은 real profile 결과를 PASSED로 기록했다. 그러나 리뷰 중 같은 명령을 재실행하자 Gemini background run이 `[node-event] error run_id=...`를 만들었고, 스크립트는 `Real profile (gemini) status: FAILED`, `Smoke test FAILED`, exit 1을 반환했다.

## 구현 체크리스트

- [x] [REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-1] real profile 결과 표기를 실제 재실행 exit status와 일치시킨다.
- [x] [REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-2] real profile PASS를 목표로 할 경우 비결정적 LLM 응답을 제거하거나 안정화한다.
- [x] [REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-FINAL] `CODE_REVIEW-cloud-G07.md`의 구현 소유 섹션을 모두 채운다.

## [REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-1] real profile 결과 표기 정합성

### 문제

real profile command가 실패하는데 review file에는 PASS로 기록되어 verification trust가 깨진다.

### 해결 방법

- `IOP_E2E_PROFILE=gemini make test-e2e`를 재실행한다.
- exit 0이면 PASS 출력 전체를 기록한다.
- exit 1/2이면 FAILED 출력 전체를 기록하고 구현 항목 완료 여부를 PASS로 표시하지 않는다. 필요하면 task verdict도 FAIL로 남기는 것이 맞다.
- 환경 문제면 BLOCKED로 기록한다.
- 기록과 command exit status가 반드시 일치해야 한다.

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

- [x] `agent-task/10_bin_e2e_smoke/CODE_REVIEW-cloud-G07.md`

### 테스트 결정

실제 command exit status와 review file 결과 표기가 일치하는지가 완료 기준이다.

### 중간 검증

```bash
IOP_E2E_PROFILE=gemini make test-e2e
```

## [REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-2] real profile 안정화

### 문제

`ping`/`pong`도 Gemini CLI가 도구 실행 또는 error event를 만들 수 있어 deterministic PASS가 아니다.

### 해결 방법

- PASS를 목표로 한다면 real profile smoke prompt를 deterministic하게 다시 설계한다. 예: 명시적으로 "Reply with exactly OK and do not inspect files or use tools" 같은 짧은 지시를 사용하고, 그래도 CLI가 도구를 쓰거나 error event를 만들면 FAILED로 기록한다.
- 또는 real profile을 optional 검증으로 유지하고, 현재 환경에서 실패하면 FAILED/BLOCKED를 정직하게 기록한다. 이 경우 PASS로 archive하지 않는다.

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

- [x] `scripts/e2e-smoke.sh` (PASS 안정화가 목표일 때)
- [x] `agent-task/10_bin_e2e_smoke/CODE_REVIEW-cloud-G07.md`

### 테스트 결정

`IOP_E2E_PROFILE=gemini make test-e2e`가 review 재실행에서도 같은 결과를 내야 한다.

### 중간 검증

```bash
IOP_E2E_PROFILE=gemini make test-e2e
```

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `agent-task/10_bin_e2e_smoke/CODE_REVIEW-cloud-G07.md` | REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-1, REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-FINAL |
| `scripts/e2e-smoke.sh` | REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_BES-2 (필요한 경우) |

## 최종 검증

```bash
go test -count=1 ./...
make test-e2e
IOP_E2E_PROFILE=gemini make test-e2e
```

실패한 real profile을 PASS로 기록하지 않는다.
