<!-- task=specialized_agent_contract plan=2 tag=REVIEW_REVIEW_API -->

# Specialized Agent Contract Scope Recovery Plan

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

구현 마지막 단계에서 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 반드시 채운다. 검증 명령을 실행하고 실제 출력과 구현 메모를 기록한 뒤, active 파일은 그대로 둔 채 review ready로 보고한다. 판정, 로그 rename, `complete.log`, archive 이동은 code-review-skill 전용이다.

## 배경

이전 follow-up은 line 46의 run/command smoke 완료 기준만 체크해야 했지만, line 44와 line 45의 완료 기준까지 함께 체크했다. 이번 작업은 계획 범위를 벗어난 완료 처리 두 줄을 되돌리고, 검증 출력이 계획의 기대 결과를 실제로 증명하도록 복구한다.

## 분석 결과

### 읽은 파일

- `agent-task/specialized_agent_contract/plan_local_G04_1.log`
- `agent-task/specialized_agent_contract/code_review_local_G04_1.log`
- `agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md`

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

- 마일스톤 문서 완료 기준 정합성: 자동 테스트 없음. `git diff --check`와 deterministic `rg --sort path`로 검증한다.
- 검증 신뢰 회복: 같은 `rg` 명령에서 line 44/45가 `[ ]`, line 46이 `[x]`로 함께 출력되는지 확인한다.

### 심볼 참조

none. rename/remove 없이 문서 체크 상태만 갱신한다.

### 분할 판단

분할 정책을 평가했다. 변경 대상은 같은 마일스톤 문서의 완료 기준 체크 상태 두 줄과 리뷰 기록 한 파일뿐이며, API/구현/call-site 경계가 없다. 세 Required issue가 같은 상태 복구로 닫히므로 단일 계획이 안전하다.

### 범위 결정 근거

수정 대상은 `agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md`와 active `CODE_REVIEW-local-G04.md`의 구현 에이전트 소유 섹션이다. `proto`, Go 구현, 다른 마일스톤 문서는 수정하지 않는다.

### 빌드 등급

Build lane: `local-G04`; Review lane: `local-G04`. 이전 FAIL은 deterministic 문서 체크박스와 검증 기록 문제이며 라이브 환경 없이 검토 가능하다.

## 구현 체크리스트

- [ ] `agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md`에서 line 44와 line 45 완료 기준을 `[ ]`로 되돌리고 line 46은 `[x]`로 유지한다.
- [ ] active `CODE_REVIEW-*-G??.md` 구현 메모를 실제 변경 범위와 일치시킨다.
- [ ] 중간 검증과 최종 검증 명령을 실행하고 line 44/45 `[ ]`, line 46 `[x]`가 실제 출력에 포함되는지 확인한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_REVIEW_API-1] Restore Completion Criteria Scope

#### 문제

`agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md:44`와 `:45`가 `[x]`로 바뀌었지만, 이전 follow-up 계획은 line 46만 `[x]`로 갱신하고 line 45는 그대로 `[ ]`로 두라고 명시했다. line 44도 해당 계획의 수정 체크리스트와 verification 계약에 포함되지 않았다.

#### 해결 방법

line 44와 line 45를 `[ ]`로 되돌리고, line 46은 `[x]`로 유지한다. 새 근거 없이 `OTO의 proto-socket 통신 기반 Milestone` 또는 `remote terminal bridge` 완료 기준을 체크하지 않는다.

Before (`agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md:43-46`):

```markdown
- [x] Agent Bootstrap과 OTO 등록이 통신 기반을 추측하지 않고 후속 계약을 작성할 수 있다.
- [x] OTO의 proto-socket 통신 기반 Milestone과 같은 책임 경계를 참조한다.
- [x] generic Node, specialized domain agent, remote terminal bridge 경로가 제품/transport 수준에서 구분된다.
- [x] OTO Dart client의 iop Edge registration smoke를 기준으로, 후속 run/command smoke를 어디까지 요구할지 결정되어 있다.
```

After:

```markdown
- [x] Agent Bootstrap과 OTO 등록이 통신 기반을 추측하지 않고 후속 계약을 작성할 수 있다.
- [ ] OTO의 proto-socket 통신 기반 Milestone과 같은 책임 경계를 참조한다.
- [ ] generic Node, specialized domain agent, remote terminal bridge 경로가 제품/transport 수준에서 구분된다.
- [x] OTO Dart client의 iop Edge registration smoke를 기준으로, 후속 run/command smoke를 어디까지 요구할지 결정되어 있다.
```

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

- [ ] `agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md:44`를 `[ ]`로 되돌린다.
- [ ] `agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md:45`를 `[ ]`로 되돌린다.
- [ ] `agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md:46`은 `[x]`로 유지한다.

#### 테스트 작성

테스트 작성 skip. 문서-only 체크 상태 복구이며 런타임 동작 변경이 없다.

#### 중간 검증

```bash
rg --sort path -n "\[ \] OTO의 proto-socket 통신 기반 Milestone|\[ \] generic Node, specialized domain agent, remote terminal bridge|\[x\] OTO Dart client의 iop Edge registration smoke|registration 이후 envelope compatibility" agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md
```

기대 결과: line 44와 line 45는 `[ ]`, line 46은 `[x]`, envelope compatibility 결정 문장은 유지되어 출력된다.

### [REVIEW_REVIEW_API-2] Recover Verification Notes

#### 문제

`agent-task/specialized_agent_contract/code_review_local_G04_1.log`의 이전 active review는 plan command가 line 45 `[ ]`를 출력하지 않았는데도 검증 완료로 체크했다. 새 active `CODE_REVIEW-local-G04.md`는 실제 변경 범위와 검증 출력이 일치해야 한다.

#### 해결 방법

active `CODE_REVIEW-local-G04.md`의 구현 에이전트 소유 섹션에는 line 44/45를 되돌리고 line 46만 유지했다는 사실만 기록한다. 검증 결과에는 계획의 `rg` 명령과 `git diff --check` 실제 stdout/stderr를 그대로 붙인다.

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

- [ ] `CODE_REVIEW-local-G04.md`의 `계획 대비 변경 사항`에 계획 외 완료 기준을 추가 체크하지 않았다고 기록한다.
- [ ] `CODE_REVIEW-local-G04.md`의 `검증 결과`에 line 44/45 `[ ]`, line 46 `[x]`가 포함된 실제 `rg` 출력을 붙인다.
- [ ] `CODE_REVIEW-local-G04.md`의 구현 체크리스트와 구현 항목별 완료 여부를 실제 완료 후 `[x]`로 바꾼다.

#### 테스트 작성

테스트 작성 skip. 리뷰 기록 신뢰 회복이며 실행 코드 변경이 없다.

#### 중간 검증

```bash
rg -n "line 44|line 45|line 46|\\[ \\] OTO의 proto-socket|\\[ \\] generic Node|\\[x\\] OTO Dart client" agent-task/specialized_agent_contract/CODE_REVIEW-local-G04.md
```

기대 결과: active review 구현 메모와 검증 출력에 line 44/45는 `[ ]`, line 46은 `[x]`로 기록되어 있다.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md` | REVIEW_REVIEW_API-1 |
| `agent-task/specialized_agent_contract/CODE_REVIEW-local-G04.md` | REVIEW_REVIEW_API-2 |

## 최종 검증

Go test cache output policy: Go 테스트를 실행하지 않는다. 이번 작업은 문서-only이고 런타임/스키마 동작 변경이 없다.

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

기대 결과: 출력 없음, exit 0.

```bash
rg --sort path -n "\[ \] OTO의 proto-socket 통신 기반 Milestone|\[ \] generic Node, specialized domain agent, remote terminal bridge|\[x\] OTO Dart client의 iop Edge registration smoke|registration 이후 envelope compatibility" agent-ops/roadmap/milestones/specialized-agent-proto-socket-foundation.md
```

기대 결과: line 44와 line 45는 `[ ]`, line 46은 `[x]`, envelope compatibility 결정 문장은 유지되어 출력된다.

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