<!-- task=m-backtest-engine-baseline/02+01_result_store plan=1 tag=REVIEW_API -->

# Backtest Result Store Follow-up Plan

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

`CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션 작성은 필수다. 구현 후 검증을 실행하고 실제 변경 내용, 검증 출력, 계획 대비 변경 사항을 채운 뒤 active 파일을 그대로 두고 리뷰 준비를 보고한다. 사용자 결정, 외부 환경 준비, 범위 충돌 없이는 진행할 수 없으면 review stub의 `사용자 리뷰 요청` 섹션에 근거를 채우고 멈춘다. `USER_REVIEW.md`, archive log, `complete.log` 작성은 code-review 전용이다.

## 배경

첫 리뷰는 `FAIL`이다. result store 구현 자체와 주요 targeted 검증은 통과했지만, 계획에 포함된 domain result summary 테스트가 빠졌고 변경된 `store.go`에 trailing whitespace가 남아 `git diff --check`가 실패한다. 이 follow-up은 두 Required issue만 닫는다.

## 사용자 리뷰 요청 흐름

구현 중 blocker는 active review stub의 `사용자 리뷰 요청` 섹션에 기록한다. code-review가 이 내용을 검증하고 실제 `USER_REVIEW.md` 작성 여부를 결정한다.

## 구현 체크리스트

- [ ] `packages/domain/backtest/types_test.go`에 `backtest.Result` trades/positions summary construction test를 추가한다.
- [ ] `services/worker/internal/storage/postgres/store.go`의 trailing whitespace를 제거하고 gofmt/diff-check가 통과되게 한다.
- [ ] `go test -count=1 ./packages/domain/...`, `go test -count=1 ./services/worker/...`, `git diff --check`를 통과시킨다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_API-1] Domain result summary test

#### 문제

`packages/domain/backtest/types_test.go`에는 새 `backtest.Result.Trades`와 `backtest.Result.Positions` shape를 domain package 안에서 직접 검증하는 테스트가 없다. 원 계획의 API-1은 `Domain result summary field construction test`를 요구했다.

#### 해결 방법

`types_test.go`에 `TestResultCarriesTradeAndPositionSummary` 같은 domain-level 테스트를 추가한다. `backtest.Result`를 `TradeSummary`와 `PositionSummary`가 포함된 값으로 구성하고, `RunID`, cash/equity, trade side/quantity/price/timestamp, position quantity/last price가 기대값과 같은지 검증한다. protobuf, worker, storage package를 domain test에 import하지 않는다.

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

- [ ] `packages/domain/backtest/types_test.go`

#### 테스트 작성

작성한다. 새 테스트는 `packages/domain/backtest` 내부에서 domain type construction만 검증한다.

#### 중간 검증

```bash
go test -count=1 ./packages/domain/...
```

기대 결과: exit code 0.

### [REVIEW_API-2] Whitespace cleanup

#### 문제

`services/worker/internal/storage/postgres/store.go:92`와 `services/worker/internal/storage/postgres/store.go:103`에 trailing whitespace가 있어 `git diff --check`가 실패한다.

#### 해결 방법

`gofmt -w services/worker/internal/storage/postgres/store.go`를 실행하거나 동일한 결과가 되도록 공백만 정리한다. 관련 worker package가 계속 통과하는지 확인한다.

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

- [ ] `services/worker/internal/storage/postgres/store.go`

#### 테스트 작성

새 테스트는 만들지 않는다. formatting cleanup과 diff cleanliness 확인이 목적이다.

#### 중간 검증

```bash
git diff --check
go test -count=1 ./services/worker/...
```

기대 결과: 두 명령 모두 exit code 0.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| `packages/domain/backtest/types_test.go` | REVIEW_API-1 |
| `services/worker/internal/storage/postgres/store.go` | REVIEW_API-2 |

## 최종 검증

```bash
go test -count=1 ./packages/domain/...
go test -count=1 ./services/worker/...
git diff --check
```

기대 결과: 모든 명령 exit code 0.

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