<!-- task=m-operator-client-api-core-integration/04+02,03_backtest_error plan=1 tag=REVIEW_API -->

# Plan - Backtest Repository Scope Cleanup

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

구현 후 active `CODE_REVIEW-*-G??.md`의 구현 소유 섹션을 모두 채운다. 검증 stdout/stderr 없이 완료를 주장하지 않는다. code-review 전용 archive와 roadmap 갱신은 수행하지 않는다.

## 배경

1차 리뷰는 기능 동작과 검증 재현성은 통과했지만, plan에서 제외한 `compare backtests` API surface가 새 `BacktestRepository`와 테스트에 포함되어 FAIL 처리되었다. 이번 follow-up은 범위 이탈만 제거하고 기존 list/detail/result/start와 error core 검증을 유지한다.

## 사용자 리뷰 요청 흐름

구현 중 사용자 결정이나 외부 환경 prerequisite이 필요하면 review stub의 `사용자 리뷰 요청`에 기록하고 멈춘다. evidence gap만으로는 사용자 리뷰 요청을 만들지 않는다.

## Roadmap Targets

- Milestone: `agent-roadmap/phase/operator-surface/milestones/operator-client-api-core-integration.md`
- Task ids:
  - `backtest-call`: backtest list/detail/result/start 기본 API 호출을 client core에서 수행할 수 있다.
  - `error-core`: unavailable/error/disconnected 상태가 UI copy가 아닌 안정적인 client state로 남는다.
- Completion mode: check-on-pass

## 리뷰 근거

- Archived plan: `agent-task/m-operator-client-api-core-integration/04+02,03_backtest_error/plan_cloud_G07_0.log`
- Archived review: `agent-task/m-operator-client-api-core-integration/04+02,03_backtest_error/code_review_cloud_G07_0.log`
- Required issue: `compare backtests`는 `plan_cloud_G07_0.log`의 범위 결정 근거에서 제외되었지만, `BacktestRepository.compareBacktestRuns`와 대응 테스트가 추가되었다.

## 구현 체크리스트

- [ ] `BacktestRepository.compareBacktestRuns` method를 제거하고 list/detail/result/start repository surface만 남긴다.
- [ ] `compareBacktestRuns success flows` test와 이 테스트만을 위한 compare request/response assertion을 제거한다.
- [ ] `cd apps/client && flutter test test/features/backtest/backtest_repository_test.dart`를 실행해 list/detail/result/start success, typed `ErrorInfo`, timeout, decode failure, disconnected 검증이 통과함을 확인한다.
- [ ] `cd apps/client && flutter test`를 실행한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [API-1] Scope cleanup

#### 문제

`apps/client/lib/src/features/backtest/data/backtest_repository.dart`와 `apps/client/test/features/backtest/backtest_repository_test.dart`가 이번 subtask의 네 개 backtest API 범위를 넘어 `compareBacktestRuns`를 포함한다.

#### 해결 방법

새 repository에서 compare method를 제거하고, 테스트에서도 compare success case를 제거한다. 기존 `AltSocketClient.compareBacktestRuns`나 generated contract는 이 subtask 범위가 아니므로 건드리지 않는다.

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

- [ ] `apps/client/lib/src/features/backtest/data/backtest_repository.dart`
- [ ] `apps/client/test/features/backtest/backtest_repository_test.dart`

#### 테스트 작성

새 테스트 추가는 필요 없다. 기존 focused repository test가 compare 항목 없이도 list/detail/result/start와 error core를 검증하는지 확인한다.

#### 중간 검증

`cd apps/client && flutter test test/features/backtest/backtest_repository_test.dart` exit code 0.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `apps/client/lib/src/features/backtest/data/backtest_repository.dart` | API-1 |
| `apps/client/test/features/backtest/backtest_repository_test.dart` | API-1 |

## 최종 검증

```bash
cd apps/client && flutter test
```

기대 결과: exit code 0.

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