<!-- task=cli_real_e2e_failures/02_opencode_second_run plan=2 tag=REVIEW_REVIEW_OCODE -->

# PLAN-cloud-G07 - refresh opencode review verification output

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

이 follow-up은 `code_review_cloud_G07_1.log`의 Required를 닫기 위한 검증 기록 보정 작업이다. source code 수정은 예상하지 않는다. 현재 `CODE_REVIEW-cloud-G07.md`를 저장한 뒤 검증 명령을 다시 실행하고, stale `[ ]` 출력이 남지 않도록 실제 stdout을 붙여 넣는다. 또한 실제 e2e 후 남았던 임시 `node serve` / `opencode serve` 프로세스가 정리됐는지 확인한다.

## 배경

- 이전 plan log: `plan_cloud_G07_1.log`
- 이전 review log: `code_review_cloud_G07_1.log`
- 리뷰 판정: FAIL
- 실제 opencode e2e 자체는 `/tmp/tmp.f0xk6Llrg7/edge.out` 및 `/tmp/tmp.f0xk6Llrg7/node.out`에서 2회 메시지와 complete가 확인됐다.
- FAIL 사유는 `REVIEW_OCODE-2 중간 검증`에 붙인 `rg` 출력이 현재 파일과 다르게 `[ ]` 체크박스를 보여 verification trust가 깨진 것과, 실제 e2e 뒤 임시 `node serve` / `opencode serve` 프로세스가 남아 있던 것이다.

## 구현 체크리스트

- [ ] `CODE_REVIEW-cloud-G07.md`의 `REVIEW_REVIEW_OCODE-1` 검증 결과에 현재 파일 상태에서 재실행한 실제 stdout을 붙여 넣는다.
- [ ] 실제 e2e 검증 후 임시 `node serve` / `opencode serve` 프로세스가 남지 않았음을 `ps` 출력으로 확인하고 기록한다.
- [ ] `CODE_REVIEW-cloud-G07.md`를 plan과 동일한 구현 체크리스트 및 최신 검증 출력 기준으로 갱신한다.

## 구현 계획

### [REVIEW_REVIEW_OCODE-1] stale `rg` 검증 출력을 갱신한다

문제:

- `code_review_cloud_G07_1.log`의 Required는 코드 동작 문제가 아니다.
- active review 파일에 기록된 `rg` stdout이 최종 저장 후의 파일 상태가 아니라 이전 `[ ]` 체크 상태를 보여 verification trust가 실패했다.

수정 방향:

- `CODE_REVIEW-cloud-G07.md`는 이 plan과 같은 구현 체크리스트 텍스트/순서를 유지한다.
- 아래 명령을 현재 파일 상태에서 재실행하고, 출력에 구현 완료 표와 구현 체크리스트가 `[x]`로 보이는지 확인한다.
- `REVIEW_REVIEW_OCODE-1 검증` 섹션에 실제 stdout을 붙여 넣는다.
- 기존 실제 e2e 로그 경로와 핵심 결과는 유지하되, 재실행하지 않았다면 재실행한 것처럼 적지 않는다.

예상 수정 파일:

- `agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md`

검증:

- `rg --sort path -n "실제 .*opencode|IOP_E2E_OPENCODE_ONE|IOP_E2E_OPENCODE_TWO|구현 체크리스트|검증 결과|REVIEW_REVIEW_OCODE" agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md`
- `rg --sort path -n "IOP_E2E_OPENCODE_ONE|IOP_E2E_OPENCODE_TWO|complete run_id" /tmp/tmp.f0xk6Llrg7/edge.out /tmp/tmp.f0xk6Llrg7/node.out`

### [REVIEW_REVIEW_OCODE-2] review 파일 계약을 다시 확인한다

문제:

- 이번 follow-up은 review 파일 자체의 신뢰 회복이 목적이므로, 구현 완료 표시와 검증 출력이 서로 맞아야 한다.
- 실제 e2e 검증 뒤 임시 프로세스가 남았으므로 cleanup 확인도 review 파일에 남아야 한다.

수정 방향:

- 구현 항목별 완료 여부와 구현 체크리스트를 모두 `[x]`로 표시한다.
- `계획 대비 변경 사항`에는 source code 변경 없음과 검증 기록 갱신만 수행했음을 기록한다.
- `검증 결과`에는 위 명령들과 cleanup 확인 명령의 실제 stdout을 붙여 넣는다.

예상 수정 파일:

- `agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md`

검증:

- `rg --sort path -n "\\[ \\]" agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md`

### [REVIEW_REVIEW_OCODE-3] e2e 임시 프로세스 cleanup을 확인한다

문제:

- 실제 e2e 후 `/tmp/tmp.f0xk6Llrg7/node.yaml`로 뜬 `node serve`와 그 자식 `opencode serve`가 남아 있었다.
- 리뷰 중 해당 PID는 종료했지만, follow-up 검증 기록에는 cleanup 확인이 남아야 한다.

수정 방향:

- 현재 프로세스 목록에서 해당 임시 node config와 opencode serve 명령이 남아 있지 않은지 확인한다.
- 출력이 비어 있으면 "no output" 또는 빈 출력임을 그대로 기록한다.

예상 수정 파일:

- `agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md`

검증:

- `ps -eo pid,ppid,stat,command | rg '(/tmp/tmp\\.f0xk6Llrg7/node\\.yaml|opencode serve --hostname 127\\.0\\.0\\.1 --port 0)' || true`

## 수정 파일 요약

| 파일 | 수정 의도 |
| --- | --- |
| `agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md` | stale verification output 교체 및 구현-owned 섹션 최신화 |

## 최종 검증

- `rg --sort path -n "실제 .*opencode|IOP_E2E_OPENCODE_ONE|IOP_E2E_OPENCODE_TWO|구현 체크리스트|검증 결과|REVIEW_REVIEW_OCODE" agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md`
- `rg --sort path -n "IOP_E2E_OPENCODE_ONE|IOP_E2E_OPENCODE_TWO|complete run_id" /tmp/tmp.f0xk6Llrg7/edge.out /tmp/tmp.f0xk6Llrg7/node.out`
- `rg --sort path -n "\\[ \\]" agent-task/cli_real_e2e_failures/02_opencode_second_run/CODE_REVIEW-cloud-G07.md`
- `ps -eo pid,ppid,stat,command | rg '(/tmp/tmp\\.f0xk6Llrg7/node\\.yaml|opencode serve --hostname 127\\.0\\.0\\.1 --port 0)' || true`

최종 응답에는 source code 변경 여부, 검증 명령, 실제 e2e 로그 경로, 남은 위험을 요약한다.
