<!-- task=m-performance-hotspot-optimization/04+03_compare_rule_full_baseline plan=0 tag=BASELINE -->

# Implementation Plan - BASELINE

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

이 작업은 `03_idle_full_baseline`의 PASS `complete.log`가 선행 조건이다. 선행 조건이 없으면 구현을 시작하지 말고 현재 상태를 보고한다. 구현 후에는 active `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션에 실제 명령 출력과 비교 결과 record를 채운다. finalization은 code-review 전용이다.

## 배경

`compare-rule`은 full baseline끼리 같은 host/runtime/profile에서 비교되는지 증명해야 한다. `run_performance.sh`는 baseline record가 주어지면 row key를 맞춰 compared/missing/warning rows를 기록한다. 이 작업은 `03_idle_full_baseline`이 만든 full record를 baseline으로 사용해 full comparison record를 생성하고 Milestone context에 남긴다.

## 사용자 리뷰 요청 흐름

구현 중 차단은 active `CODE_REVIEW-*-G??.md`의 `사용자 리뷰 요청` 섹션에 기록한다. code-review가 그 요청을 검증하고 실제 `USER_REVIEW.md` 작성 여부를 결정한다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/performance-hotspot-optimization.md`
- Task ids:
  - `compare-rule`: 같은 host/runtime/profile의 full performance record끼리 baseline 비교를 수행한다.
- Completion mode: check-on-pass

## 분석 결과

### 읽은 파일

- `agent-roadmap/current.md`
- `agent-roadmap/milestones/performance-hotspot-optimization.md`
- `agent-test/local/rules.md`
- `agent-test/local/proto-socket-performance-baseline.md`
- `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh`
- `agent-ops/skills/common/_templates/implementation-user-review-request-section.md`

### 테스트 환경 규칙

`test_env=local`이다. `agent-test/local/proto-socket-performance-baseline.md`의 baseline 비교 규칙을 적용한다. 계획 문서에는 quick 예시가 있지만 Milestone task 검증은 full 비교를 요구하므로 실행 명령은 `bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full --baseline <idle-full-record>`로 고정한다.

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

코드 동작 변경이 아니라 full comparison evidence 수집과 roadmap context 갱신 작업이다. 별도 unit test는 만들지 않는다. 검증은 comparison record의 `regression_result`, `compared rows`, `missing baseline rows`, `warning rows` 기록으로 판단한다.

### 심볼 참조

renamed/removed symbol 없음.

### 분할 판단

split policy를 먼저 평가했다.

- shared task group: `agent-task/m-performance-hotspot-optimization`
- 이 subtask: `04+03_compare_rule_full_baseline`
- predecessor `03`: `03_idle_full_baseline`
- 현재 predecessor 상태: 작성 시점에는 active `agent-task/m-performance-hotspot-optimization/03_idle_full_baseline/`가 있으나 `complete.log`는 아직 없다. 구현은 `03`의 active 또는 archived `complete.log`가 생긴 뒤 시작한다.

### 범위 결정 근거

이 작업은 full baseline comparison record 생성과 `agent-roadmap/milestones/performance-hotspot-optimization.md`의 compare-rule evidence 갱신에 한정한다. 병목 최적화 구현, threshold 변경, `--fail-on-regression` hard exit 적용, full matrix 실행은 범위 밖이다.

### 빌드 등급

`cloud-G07`. long-running full benchmark 재실행, baseline file routing, regression summary 신뢰성 확인이 중심이다.

## 의존 관계 및 구현 순서

디렉터리명 `04+03_compare_rule_full_baseline`의 predecessor는 `03`뿐이다. 구현 시작 전 아래 중 하나가 있어야 한다.

- active: `agent-task/m-performance-hotspot-optimization/03_idle_full_baseline/complete.log`
- archive: `agent-task/archive/*/*/m-performance-hotspot-optimization/03_idle_full_baseline/complete.log`

`complete.log`에서 `agent-test/runs/*-proto-socket-performance-full.md` baseline record 경로를 확인한 뒤 이 작업을 실행한다.

## 구현 체크리스트

- [ ] `03_idle_full_baseline`의 `complete.log` 존재를 확인하고 baseline record 경로를 추출한다.
- [ ] `bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full --baseline <idle-full-record>`를 실행해 full comparison record를 생성한다.
- [ ] comparison record에서 `compared rows`, `missing baseline rows`, `warning rows`, `regression_result`가 기록되었는지 확인한다.
- [ ] `agent-roadmap/milestones/performance-hotspot-optimization.md`의 compare-rule context에 baseline record, comparison record, compared/missing/warning row 수를 반영한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## [BASELINE-1] Full Baseline 비교 실행

### 문제

[performance-hotspot-optimization.md](/config/workspace/proto-socket/agent-roadmap/milestones/performance-hotspot-optimization.md:39)의 `[compare-rule]`은 full baseline 비교 결과가 필요하다. `run_performance.sh`는 [run_performance.sh](/config/workspace/proto-socket/agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh:322)에서 baseline rows를 읽고 [run_performance.sh](/config/workspace/proto-socket/agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh:327)에서 regression result와 compared/missing/warning row 수를 기록한다.

### 해결 방법

선행 `idle-full` record를 baseline으로 지정해 full comparison을 실행한다.

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full --baseline agent-test/runs/<idle-full-record>.md
```

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

- [ ] `agent-test/runs/*-proto-socket-performance-full.md`: 새 full comparison record 생성.
- [ ] `agent-roadmap/milestones/performance-hotspot-optimization.md`: compare-rule evidence 갱신.

### 테스트 작성

별도 unit test 없음. 이 작업의 테스트 산출물은 full performance comparison result record다.

### 중간 검증

```bash
rg --sort path -n "regression_result:|compared rows:|missing baseline rows:|warning rows:" agent-test/runs/<new-comparison-record>.md
```

기대 결과: comparison record에 compared/missing/warning row 수와 regression result가 기록된다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `agent-test/runs/*-proto-socket-performance-full.md` | BASELINE-1 |
| `agent-roadmap/milestones/performance-hotspot-optimization.md` | BASELINE-1 |

## 최종 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full --baseline agent-test/runs/<idle-full-record>.md
rg --sort path -n "regression_result:|compared rows:|missing baseline rows:|warning rows:" agent-test/runs/<new-comparison-record>.md
git diff --check
```

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