<!-- task=m-model-serving-load-routing/03+01,02_e2e_field_validation plan=1 tag=REVIEW_OE2E-E2E -->

# Field Validation Evidence Recovery Plan

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

구현 후 반드시 같은 디렉터리의 `CODE_REVIEW-*-G??.md`에서 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 검증 명령을 실행하고 실제 stdout/stderr를 남긴다. active 파일은 그대로 두고 리뷰 준비 상태를 보고한다. 최종 판정, log rename, `complete.log`, archive 이동은 code-review 전용이다.

## 배경

1차 리뷰는 코드 변경과 로컬 smoke 자체는 통과했지만, field validation blocker 증거가 실제 명령/stdout/stderr로 충분히 남지 않아 `FAIL` 처리되었다. 특히 원격 `iop-node` 시작 실패와 로컬 loopback 등록 성공 주장이 서술형으로만 남아 있어 검증 신뢰도를 회복해야 한다.

## 분석 결과

### 읽은 파일

- `agent-task/m-model-serving-load-routing/03+01,02_e2e_field_validation/code_review_cloud_G07_0.log`
- `agent-task/m-model-serving-load-routing/03+01,02_e2e_field_validation/plan_cloud_G07_0.log`
- `scripts/e2e-openai-ollama.sh`
- `apps/node/internal/adapters/ollama/ollama_test.go`
- `agent-ops/rules/project/domain/testing/rules.md`

### 발견 문제

- Required: field blocker/pass state must include concrete command transcripts, but the archived review only records `nc` success plus narrative text for remote node failure and local loopback success.
- Nit: `git diff --check` reports `apps/node/internal/adapters/ollama/ollama_test.go:189: new blank line at EOF.`

### 빌드 등급

`cloud-G07` — this follow-up is terminal-agent verification work involving shell/SSH command transcripts, field blocker evidence, and verification-trust recovery.

## 구현 체크리스트

- [ ] Remote field blocker evidence records exact sanitized command transcripts for build/deploy/reachability/remote node start, including stdout/stderr.
- [ ] Local loopback registration success claim is either backed by exact edge/node startup and registration output or removed from the review record.
- [ ] Field pass/blocker state distinguishes `nc` TCP handshake success from actual Edge registration failure.
- [ ] `apps/node/internal/adapters/ollama/ollama_test.go` no longer triggers `git diff --check` EOF warning.
- [ ] 중간 및 최종 검증 명령을 실행한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## 의존 관계 및 구현 순서

이 follow-up은 같은 split task의 검증 신뢰도 회복 작업이다. 코드 구현을 새로 확장하지 말고, 기존 reasoning smoke 변경과 field validation 기록을 정확한 command transcript 기준으로 정리한다.

### [REVIEW_OE2E-E2E-1] Recover Field Validation Evidence

#### 문제

[code_review_cloud_G07_0.log](/config/workspace/iop/agent-task/m-model-serving-load-routing/03+01,02_e2e_field_validation/code_review_cloud_G07_0.log:113)는 `nc` TCP handshake 성공만 실제 출력으로 남긴 뒤, 원격 `iop-node` 등록 실패와 로컬 loopback 등록 성공을 서술형으로 기록한다. 원격 full-cycle이 blocker라면 어떤 명령으로 실패했는지, stdout/stderr가 무엇이었는지, secret token을 어떻게 가렸는지 확인 가능해야 한다.

#### 해결 방법

`CODE_REVIEW-cloud-G07.md`의 구현 에이전트 소유 섹션에 실제 command transcript를 남긴다. 토큰은 값 자체를 노출하지 말고 `<redacted-field-token>`처럼 가린다. 원격 Node 시작 실패를 주장하려면 원격 실행 명령과 실패 stdout/stderr를 포함한다. 로컬 loopback 등록 성공을 계속 주장하려면 local Edge/Node 실행 명령과 `[node0-evt] connected reason="registered"` 같은 실제 출력 근거를 포함한다. 근거를 재현하지 못하면 해당 성공 주장을 삭제하고 blocker 범위를 명확히 줄인다.

`git diff --check` EOF Nit은 별도 동작 변경 없이 마지막 빈 줄만 제거한다.

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

- [ ] `CODE_REVIEW-cloud-G07.md` records exact sanitized remote field command transcripts.
- [ ] `CODE_REVIEW-cloud-G07.md` records or removes the local loopback success claim.
- [ ] `apps/node/internal/adapters/ollama/ollama_test.go` removes the extra blank line at EOF.

#### 테스트 작성

새 테스트 파일은 필요 없다. 이번 follow-up의 핵심은 field verification evidence와 deterministic verification trust 회복이다.

#### 중간 검증

```bash
git diff --check
```

예상: 출력 없이 exit 0.

```bash
GOOS=darwin GOARCH=arm64 go build -trimpath -o /tmp/iop-node-darwin-arm64 ./apps/node/cmd/node
```

예상: exit 0 and `/tmp/iop-node-darwin-arm64` exists.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `CODE_REVIEW-cloud-G07.md` | REVIEW_OE2E-E2E-1 |
| `apps/node/internal/adapters/ollama/ollama_test.go` | REVIEW_OE2E-E2E-1 |

## 최종 검증

```bash
go test -count=1 ./apps/node/internal/adapters/ollama ./apps/edge/internal/openai
```

예상: pass. Go test cache output은 허용하지 않는다.

```bash
make test-openai-ollama
```

예상: pass and output includes `OpenAI-compatible Ollama serving test PASSED.`

```bash
git diff --check
```

예상: 출력 없이 exit 0.

Field evidence expected outcome: `CODE_REVIEW-cloud-G07.md` contains concrete sanitized transcripts for the remote field attempt. If the remote full-cycle still cannot complete, the blocker must be tied to exact stdout/stderr from the failed command rather than narrative reconstruction.

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