<!-- task=m-paper-trading-command-workflow/04+01,02,03_ui_handoff plan=0 tag=PAPER_HANDOFF -->

# Plan - PAPER_HANDOFF

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

`CODE_REVIEW-local-G04.md`를 실제 문서 변경과 검증 출력으로 채운다. predecessors `01`, `02`, `03`의 `complete.log`가 없으면 구현을 시작하지 않는다. 사용자에게 직접 질문하지 않는다.

## 배경

ALT 운영 UI는 headless evidence가 정리된 뒤에만 연다. paper trading command workflow가 반복 상태/action/evidence key를 만든 뒤 UI 후보와 defer 항목을 문서화해야 한다.

## 사용자 리뷰 요청 흐름

문서에 사용자 선택이 필요한 UI 우선순위가 드러나면 review stub `사용자 리뷰 요청`에 기록하고 중단한다.

## Roadmap Targets

- Milestone: `agent-roadmap/phase/trading-expansion/milestones/paper-trading-command-workflow.md`
- Task ids:
  - `paper-ui-handoff`: paper UI handoff
- Completion mode: check-on-pass

## 분석 결과

### 읽은 파일

- `agent-roadmap/phase/trading-expansion/milestones/paper-trading-command-workflow.md`
- `agent-ops/rules/project/rules.md`
- `agent-ops/rules/project/domain/operations/rules.md`
- `agent-test/local/rules.md`
- `agent-test/local/operations-smoke.md`
- `apps/cli/testdata/operator/headless_validation.md`
- `apps/cli/internal/operator/handoff_test.go`
- `apps/cli/testdata/operator/paper_trading_state.yaml`
- `apps/cli/testdata/operator/expected/paper_trading_state.jsonl`

### 테스트 환경 규칙

`test_env=local`, operations smoke. Handoff doc/test changes should run `go test ./apps/cli/internal/operator`; final smoke may use `bin/test`.

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

Existing `handoff_test.go` covers headless validation docs for prior scenarios, but paper trading UI handoff coverage needs new command/output key assertions after predecessors complete.

### 심볼 참조

rename/remove 없음. Handoff task is docs/tests only unless predecessor output keys reveal missing docs parser assumptions.

### 분할 판단

This is `04+01,02,03_ui_handoff`. It depends on loop smoke, risk command, and order lifecycle because it must document actual final keys.

### 범위 결정 근거

Do not implement Flutter screens. Do not invent UI layout. Only document command, expected output key, repeated operation status, UI candidate, and defer reason.

### 빌드 등급

`local-G04`: docs/test handoff with low code risk after predecessor evidence exists.

## 구현 체크리스트

- [ ] [PAPER_HANDOFF-1] paper command workflow keys를 `apps/cli/testdata/operator/headless_validation.md` 또는 existing handoff doc surface에 추가한다.
- [ ] [PAPER_HANDOFF-2] `apps/cli/internal/operator/handoff_test.go`가 paper command, expected output key, 반복 운영 여부, UI defer 사유를 검증하게 한다.
- [ ] [PAPER_HANDOFF-3] Flutter 실화면 구현 없이 UI candidate/defer 항목만 분리한다. 검증: `go test ./apps/cli/internal/operator` 통과.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## PAPER_HANDOFF-1

### 문제

`apps/cli/testdata/operator/headless_validation.md`에는 paper command workflow의 final key set이 아직 정리되지 않았다.

### 해결 방법

predecessor outputs를 기준으로 status, loop, risk, order lifecycle command와 expected output key를 문서화한다.

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

- [ ] `apps/cli/testdata/operator/headless_validation.md`

### 테스트 작성

handoff test fixture expectations를 갱신한다.

### 중간 검증

`go test ./apps/cli/internal/operator`

## PAPER_HANDOFF-2

### 문제

Handoff 문서 drift를 막을 테스트가 paper keys를 아직 강제하지 않는다.

### 해결 방법

`handoff_test.go`에 paper scenarios and key requirements를 추가한다.

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

- [ ] `apps/cli/internal/operator/handoff_test.go`

### 테스트 작성

paper entries missing key/defer reason이면 fail하도록 assertion 추가.

### 중간 검증

`go test ./apps/cli/internal/operator`

## PAPER_HANDOFF-3

### 문제

운영 UI gate상 paper trading 화면 후보와 command-only defer 항목을 분리해야 한다.

### 해결 방법

문서에 UI candidate/defer reason column or section을 명시한다. Flutter 파일은 변경하지 않는다.

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

- [ ] `apps/cli/testdata/operator/headless_validation.md`

### 테스트 작성

Handoff test가 UI defer reason을 확인한다.

### 중간 검증

`go test ./apps/cli/internal/operator`

## 의존 관계 및 구현 순서

Directory `04+01,02,03_ui_handoff` requires `01_loop_smoke`, `02+01_risk_command`, and `03+02_order_lifecycle` complete logs. No additional dependency is encoded.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `apps/cli/testdata/operator/headless_validation.md` | PAPER_HANDOFF-1, PAPER_HANDOFF-3 |
| `apps/cli/internal/operator/handoff_test.go` | PAPER_HANDOFF-2 |

## 최종 검증

```bash
go test ./apps/cli/internal/operator
bin/test
```

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