<!-- task=02+01_catalog_cli plan=2 tag=REVIEW_REVIEW_CATALOG_CLI -->

# Catalog CLI Verification Follow-up Plan

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

이 계획은 `code_review_cloud_G07_1.log`의 verification trust FAIL만 복구한다. 소스 구현은 이미 `catalog --json` parseability와 no-arg table 계약을 만족하므로, 새 기능이나 리팩터링을 추가하지 말고 최종 검증 명령과 기록을 현재 task 상태에 맞게 다시 작성한다.

## 배경

두 번째 리뷰에서 source/test 동작은 통과했지만, active review 파일의 최종 검증 첫 명령이 실제 재실행 결과와 맞지 않았다. `agent-task/01_command_catalog_contract/complete.log`는 현재 존재하지 않고, 완료 기록은 `agent-task/archive/2026/05/01_command_catalog_contract/complete.log`에 있다.

## 의존 관계 및 구현 순서

- 기준 리뷰: `agent-task/02+01_catalog_cli/code_review_cloud_G07_1.log`
- 구현 순서: 의존 완료 확인 명령을 archive 경로로 고정 → 최종 검증 전체 재실행 → `CODE_REVIEW-cloud-G07.md`에 실제 출력 기록.

## 분석 결과

### 읽어야 할 파일

- `agent-task/02+01_catalog_cli/code_review_cloud_G07_1.log`
- `agent-task/02+01_catalog_cli/PLAN-cloud-G07.md`
- `agent-task/02+01_catalog_cli/CODE_REVIEW-cloud-G07.md`
- `lib/cli/commands/command_catalog.dart`
- `lib/cli/commands/command_base.dart`
- `lib/cli/commands/command_manager.dart`
- `test/oto_catalog_cli_test.dart`

### 실패 근거

- 재실행한 `test -f agent-task/01_command_catalog_contract/complete.log`는 exit code 1이다.
- 실제 의존 완료 파일은 `agent-task/archive/2026/05/01_command_catalog_contract/complete.log`다.
- 나머지 핵심 검증인 `dart test`, `dart analyze`, `jq`, no-arg table, README/roadmap grep은 통과했다.

### 범위 결정

- source code 변경은 원칙적으로 하지 않는다.
- 검증 중 실제 source/test mismatch가 새로 발견될 때만 해당 mismatch를 최소 수정한다.
- README/roadmap의 catalog 설명과 milestone 상태는 유지한다.

### 빌드 등급

- build lane: `cloud-G07`, review lane: `cloud-G07`. 실제 bin stdout과 verification trust 회복이 성공 조건이라 terminal-agent work에 해당한다.

## 구현 체크리스트

- [x] [REVIEW_REVIEW_CATALOG_CLI-1] 현재 archive 상태에 맞는 의존 완료 확인과 최종 검증 출력을 다시 기록한다.
- [x] 중간 검증과 최종 검증을 모두 실행한다.
- [x] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## [REVIEW_REVIEW_CATALOG_CLI-1] 현재 archive 상태에 맞는 의존 완료 확인과 최종 검증 출력을 다시 기록한다

### 문제

이전 review 파일은 아래 명령이 성공했다고 기록했다.

```bash
test -f agent-task/01_command_catalog_contract/complete.log
```

그러나 현재 workspace에서 이 명령은 실패한다. 완료 기록은 active task 경로가 아니라 archived task 경로에 있다.

### 해결 방법

의존 완료 확인을 현재 실제 상태와 일치하는 아래 명령으로 고정하고, 최종 검증 전체를 다시 실행한다.

```bash
test -f agent-task/archive/2026/05/01_command_catalog_contract/complete.log
```

나머지 검증은 기존 source 계약을 그대로 확인한다.

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

- [x] `CODE_REVIEW-cloud-G07.md`의 구현 항목별 완료 여부와 구현 체크리스트를 완료 처리
- [x] `계획 대비 변경 사항`에 검증 명령 변경 이유 기록
- [x] `검증 결과`에 실제 재실행 stdout/stderr 기록
- [x] source code 변경이 없다면 `주요 설계 결정`에 "소스 변경 없음"을 명시

### 테스트 작성

새 테스트는 작성하지 않는다. 이번 follow-up은 verification trust 복구이며, 기존 bin-level 테스트가 이미 계약을 고정한다.

### 중간 검증

```bash
test -f agent-task/archive/2026/05/01_command_catalog_contract/complete.log
```

예상 결과: exit code 0.

## 수정 파일 요약

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

## 최종 검증

```bash
test -f agent-task/archive/2026/05/01_command_catalog_contract/complete.log
dart test test/oto_command_catalog_test.dart test/oto_catalog_cli_test.dart
dart analyze
dart run bin/main.dart catalog --json | jq -e '.type == "commandCatalog" and .schemaVersion == 1'
output="$(dart run bin/main.dart catalog)"; printf '%s\n' "$output" | rg 'Command +\\| Category +\\| DataModel +\\| SamplePath +\\| SampleStatus'; ! printf '%s\n' "$output" | rg 'Usage:'
rg --sort path -n "oto catalog|command catalog를 CLI" README.md agent-ops/roadmap/milestones/structured-automation-surface.md
```

예상 결과: 모든 명령이 0으로 종료한다. 의존 완료 확인은 archived complete log를 기준으로 한다.
