<!-- task=m-performance-hotspot-optimization/03_idle_full_baseline plan=1 tag=BASELINE-FIX -->

# Implementation Plan - BASELINE-FIX

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

이 작업은 1차 코드리뷰 FAIL 후속이다. 실패한 full aggregate record를 완료 baseline으로 확정하지 말고, 실제 결과값과 Milestone 문구를 일치시킨다. 구현 중 사용자 결정 없이는 `idle-full` 완료 기준을 완화하지 않는다. 사용자 결정이 필요하면 채팅으로 묻지 말고 active `CODE_REVIEW-*-G??.md`의 `사용자 리뷰 요청` 섹션을 채운 뒤 멈춘다.

## 배경

1차 구현은 `agent-test/runs/20260605-025842-proto-socket-performance-full.md`를 full idle baseline record로 남겼지만 해당 aggregate record는 `overall_result: FAIL`이다. 계획의 완료 기준은 새 full record의 `overall_result: PASS`, `regression_result: SKIPPED`, same-language/cross-language/typescript-gateway 구성요소 포함이었다. 현재 Milestone 문서는 이 record를 “Full Idle Baseline 확정”으로 기록하면서 최상위 결과값을 `INCOMPLETE`로 설명해 실제 record와도 맞지 않는다.

## 사용자 리뷰 요청 흐름

구현 중 차단은 active `CODE_REVIEW-*-G??.md`의 `사용자 리뷰 요청` 섹션에 기록한다. code-review가 그 요청을 검증하고 실제 `USER_REVIEW.md` 작성 여부를 결정한다. 구현 에이전트는 사용자에게 직접 질문하거나 선택지를 제시하지 않는다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/performance-hotspot-optimization.md`
- Task ids:
  - `idle-full`: idle host에서 `run_performance.sh --full`을 실행해 개선 전 full baseline을 남긴다.
- Completion mode: check-on-pass

## 범위 결정 근거

이 후속 작업은 `idle-full` 완료 기준과 evidence 기록을 바로잡는 데 한정한다. 새 성능 최적화 구현, Kotlin TCP deadlock 제품 수정, benchmark 표준 변경은 별도 작업이다. 다만 full aggregate PASS를 얻기 위해 같은 명령을 재실행하거나 기존 evidence를 정확히 정리하는 것은 이 작업 범위에 포함한다.

## 구현 체크리스트

- [ ] `agent-test/runs/20260605-025842-proto-socket-performance-full.md`와 replacement full record가 있다면 그 record의 `overall_result`, `regression_result`, same-language/cross-language/typescript-gateway 상태를 실제 값 그대로 확인해 기록한다.
- [ ] `overall_result: PASS`, `regression_result: SKIPPED`, same-language/cross-language/typescript-gateway 포함 조건을 만족하는 `proto-socket-performance-full` aggregate record를 확보하거나, 이 완료 기준을 완화/보류해야 하는 이유와 필요한 사용자 결정을 `사용자 리뷰 요청`에 기록하고 완료 처리하지 않는다.
- [ ] `agent-roadmap/milestones/performance-hotspot-optimization.md`의 Full Idle Baseline 문구를 선택한 상태와 일치시킨다. PASS aggregate가 없으면 “확정”으로 쓰지 않고, FAIL/INCOMPLETE 후보와 남은 결정/후속 작업을 명확히 남긴다.
- [ ] `git diff --check`를 실행하고 출력과 exit code를 검증 결과에 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## [BASELINE-FIX-1] Full aggregate 결과 정합성 회복

### 문제

`agent-test/runs/20260605-025842-proto-socket-performance-full.md`는 최상위 `overall_result: FAIL`인데, Milestone 문서는 이 record를 확정 baseline처럼 기록하고 일부 문구에서 `INCOMPLETE`로 설명한다.

### 해결 방법

아래 명령으로 선택 record의 최상위 결과와 구성요소 결과를 다시 확인한다.

```bash
rg --sort path -n "overall_result|regression_result|same-language|cross-language|typescript-gateway|전체 결과값|DONE typescript|kotlin \\| INCOMPLETE|typescript \\| FAIL" agent-test/runs/20260605-025842-proto-socket-performance-full.md agent-test/runs/20260605-100551-proto-socket-stress-full.md
```

가능하면 idle host 조건에서 replacement full aggregate를 생성한다.

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full
```

replacement record가 PASS면 그 record를 기준으로 Milestone context를 갱신한다. PASS aggregate를 만들 수 없고 `idle-full` 완료 기준 완화가 필요하면 구현 완료로 표시하지 말고 `사용자 리뷰 요청`에 필요한 결정과 근거를 기록한다.

## [BASELINE-FIX-2] Milestone context 수정

### 문제

현재 Milestone context는 실패한 aggregate record를 baseline 확정 근거처럼 보여 후속 `compare-rule` 작업과 runtime completion event가 잘못된 상태를 소비할 수 있다.

### 해결 방법

`agent-roadmap/milestones/performance-hotspot-optimization.md`의 Full Idle Baseline note를 실제 상태와 일치시킨다.

- PASS aggregate record가 있으면 record path, 세 구성요소 포함, `overall_result: PASS`, `regression_result: SKIPPED`를 기록한다.
- PASS aggregate가 없으면 `20260605-025842` record를 failed/incomplete candidate로 기록하고, TypeScript focused rerun은 transient 판단 보조 evidence로 분리한다.
- PASS aggregate가 없을 때는 `idle-full` 완료를 암시하는 문구를 쓰지 않는다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `agent-roadmap/milestones/performance-hotspot-optimization.md` | BASELINE-FIX-1, BASELINE-FIX-2 |
| `agent-task/m-performance-hotspot-optimization/03_idle_full_baseline/CODE_REVIEW-cloud-G07.md` | 구현 evidence 기록 |

## 최종 검증

```bash
rg --sort path -n "overall_result|regression_result|same-language|cross-language|typescript-gateway|전체 결과값|DONE typescript|kotlin \\| INCOMPLETE|typescript \\| FAIL" agent-test/runs/20260605-025842-proto-socket-performance-full.md agent-test/runs/20260605-100551-proto-socket-stress-full.md
git diff --check
```

PASS aggregate를 새로 생성했다면 위 `rg` 명령의 대상에 replacement `agent-test/runs/*-proto-socket-performance-full.md`도 포함한다.
