<!-- task=01+02_runtime_context plan=2 tag=REVIEW_REFACTOR -->

# Runtime Context Verification Follow-up Plan

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

**필수 경고: 구현 마지막 단계에서 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 모두 채워야 한다. 이 파일이 채워지기 전에는 작업이 완료된 것이 아니다.**
구현 체크리스트를 순서대로 완료하고 실제 검증 출력을 review stub에 기록한다.
review 파일의 아카이브 지시와 `코드리뷰 전용 체크리스트`는 리뷰 에이전트 전용이다.

## 배경

두 번째 review에서 검증 기록이 여전히 실제 재실행 출력과 일치하지 않는 문제가 발견되었다.
`dart test` 출력은 색상 제거 후 붙여 넣었지만 코드블록의 명령에는 해당 파이프라인이 없었고, placeholder 검색 명령은 자기 자신이 기록한 출력까지 재매칭했다.
이 follow-up은 검증 기록을 재현 가능한 명령과 출력으로 안정화하는 데만 집중한다.

## 분석 결과

### 읽은 파일

- `agent-ops/skills/common/code-review/SKILL.md`
- `agent-ops/skills/common/plan/SKILL.md`
- `agent-ops/rules/project/domain/core/rules.md`
- `agent-ops/rules/project/domain/command/rules.md`
- `agent-task/01+02_runtime_context/plan_cloud_G07_1.log`
- `agent-task/01+02_runtime_context/code_review_cloud_G07_1.log`
- `lib/oto/application.dart`
- `lib/oto/core/execution_context.dart`
- `lib/oto/core/tag_system.dart`
- `lib/oto/commands/command.dart`
- `test/oto_context_test.dart`

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

- 소스 동작 변경은 추가하지 않는다.
- 공백은 테스트가 아니라 검증 기록이다. `code_review_cloud_G07_1.log:101`의 명령과 출력이 일치하지 않고, `code_review_cloud_G07_1.log:240`의 placeholder 검색 출력이 재실행 결과와 일치하지 않는다.

### 심볼 참조

- rename/remove 예정 심볼: none.

### 범위 결정 근거

- 소스 파일은 재검증 중 실패가 재현되는 경우에만 수정한다.
- 기본 범위는 active `CODE_REVIEW-cloud-G07.md`의 구현 에이전트 소유 섹션을 채우고, 검증 명령과 기록된 stdout/stderr를 재실행 가능한 형태로 맞추는 것이다.
- formatter 정리, pipeline 주입 리팩토링, command runtime 주입은 이 follow-up 범위가 아니다.
- 검증 출력 저장용 repo-local artifact를 만들지 않는다.

### 빌드 등급

- build lane: `cloud-G07` — 이전 review가 verification trust Fail을 판정했으므로 동일 등급을 유지한다.
- review lane: `cloud-G07` — 기록된 stdout/stderr와 재실행 결과의 신뢰성을 다시 확인해야 한다.

## 구현 체크리스트

- [ ] [REVIEW_REFACTOR-1] 검증 명령과 기록된 stdout/stderr가 재실행 결과와 일치하도록 보정한다.
- [ ] 모든 중간 검증과 최종 검증을 실행하고 실제 출력을 `CODE_REVIEW-*-G??.md`에 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## 의존 관계 및 구현 순서

- `agent-task/01_test_baseline/complete.log`가 있어야 시작한다.
- `agent-task/01+01_application_result_contract/complete.log`가 있어야 시작한다.
- `agent-task/01+02_runtime_context/plan_cloud_G07_1.log`와 `code_review_cloud_G07_1.log`가 있어야 시작한다.

### [REVIEW_REFACTOR-1] 검증 출력 재현성 보정

#### 문제

`agent-task/01+02_runtime_context/code_review_cloud_G07_1.log:101`은 아래 명령을 기록했지만, 실제 재실행 stdout에는 ANSI escape sequence가 포함된다.

```bash
dart test --reporter expanded --no-color
```

기록된 출력은 sed로 ANSI sequence를 제거한 값이므로 명령과 출력이 일치하지 않는다.
또한 `code_review_cloud_G07_1.log:240`의 placeholder 검색은 전체 active review 파일을 대상으로 하여 기록된 출력 자체까지 재매칭하는 자기 참조 문제가 있다.

#### 해결 방법

active `CODE_REVIEW-cloud-G07.md`의 검증 명령을 실제 캡처 명령과 일치시킨다.
색상 제거가 필요하면 코드블록의 `$ ...` 줄에 sed 파이프라인까지 포함한다.
placeholder 검색은 검증 결과 블록만 대상으로 하고, placeholder 한 줄 또는 축약 marker만 잡도록 패턴을 좁힌다.

```bash
dart test --reporter expanded --no-color 2>&1 | sed 's/\x1b\[[0-9;]*m//g'
awk '/^## 검증 결과$/{flag=1} /^---$/{if(flag) exit} flag' agent-task/01+02_runtime_context/CODE_REVIEW-cloud-G07.md | rg --sort path -n "^\\(output\\)$|\\.\\.\\. \\(truncated to relevant lines\\)"
```

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

- [ ] `agent-task/01+02_runtime_context/CODE_REVIEW-cloud-G07.md`의 구현 항목 완료 여부를 체크한다.
- [ ] `agent-task/01+02_runtime_context/CODE_REVIEW-cloud-G07.md`의 계획 대비 변경 사항과 주요 설계 결정을 실제 follow-up 내용으로 채운다.
- [ ] `agent-task/01+02_runtime_context/CODE_REVIEW-cloud-G07.md`의 `검증 결과`에 중간 검증과 최종 검증의 실제 stdout/stderr를 명령과 일치하도록 기록한다.
- [ ] `agent-task/01+02_runtime_context/CODE_REVIEW-cloud-G07.md`의 구현 체크리스트를 모두 체크한다.

#### 테스트 작성

- 작성하지 않음. 소스 동작 변경이 아니라 검증 기록 보정이다.
- 대신 기존 context 전용 테스트와 전체 테스트를 재실행한다.

#### 중간 검증

```bash
dart test --reporter expanded --no-color test/oto_context_test.dart 2>&1 | sed 's/\x1b\[[0-9;]*m//g'
```

예상: context 테스트 통과. 출력은 active review stub에 명령과 일치하게 기록한다.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `agent-task/01+02_runtime_context/CODE_REVIEW-cloud-G07.md` | REVIEW_REFACTOR-1 |

## 최종 검증

```bash
dart analyze
```

예상: `No issues found!`

```bash
dart test --reporter expanded --no-color 2>&1 | sed 's/\x1b\[[0-9;]*m//g'
```

예상: 모든 테스트 통과. 출력은 명령과 일치하게 기록한다.

```bash
rg --sort path -n "Application\\.instance\\.(property|commonData|commandStates|dataCommandMap)" lib/oto/core lib/oto/commands/command.dart
```

예상: 결과 없음.

```bash
awk '/^## 검증 결과$/{flag=1} /^---$/{if(flag) exit} flag' agent-task/01+02_runtime_context/CODE_REVIEW-cloud-G07.md | rg --sort path -n "^\\(output\\)$|\\.\\.\\. \\(truncated to relevant lines\\)"
```

예상: 결과 없음.

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