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

# Code Review Reference - BASELINE

> **[IMPLEMENTING AGENT — READ FIRST] Filling in this file is the mandatory final step of implementation.**
> The task is NOT complete until every implementation-owned section below is filled in.
> Complete the `구현 체크리스트`; the final checklist item is mandatory before saving.
> Fill implementation-owned sections, then stop with active files in place and report ready for review.
> If implementation is blocked by a user-only decision, user-owned external environment prerequisite, or scope conflict, fill `사용자 리뷰 요청` with evidence and stop with active files in place; code-review decides whether to write `USER_REVIEW.md`. Evidence gaps that a follow-up agent can close by rerunning commands or collecting artifacts are normal follow-up issues, not user-review blockers by themselves.
> Finalization (`코드리뷰 결과`, log rename, `complete.log`, archive moves, `코드리뷰 전용 체크리스트`) is review-agent-only, even after compaction/resume.

## 개요

date=2026-06-05
task=m-performance-hotspot-optimization/04+03_compare_rule_full_baseline, plan=0, tag=BASELINE

## 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

## 이 파일을 읽는 리뷰 에이전트에게

> **[REVIEW AGENT ONLY]** 아래 종결 절차는 코드리뷰 에이전트 전용이다. 구현 에이전트는 이 섹션을 실행하지 않는다.

선행 `03_idle_full_baseline`은 archive complete log 기준 PASS/RESOLVED다. full comparison record의 compared/missing/warning row 수를 확인하세요.

---

## 구현 항목별 완료 여부

| 항목 | 완료 여부 |
|------|---------|
| [BASELINE-1] Full Baseline 비교 실행 | [x] |

## 구현 체크리스트

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

## 코드리뷰 전용 체크리스트

- [x] `코드리뷰 결과`에 `PASS`, `WARN`, `FAIL` 중 하나의 판정을 append한다.
- [x] 판정과 차원별 평가, Required/Suggested/Nit 분류가 서로 일치한다.
- [x] active `CODE_REVIEW-*-G??.md`를 `code_review_cloud_G07_0.log`로 아카이브한다.
- [x] active `PLAN-*-G??.md`를 `plan_cloud_G07_0.log`로 아카이브한다.
- [x] PASS이면 `complete.log`를 작성하고 active task 디렉터리를 archive로 이동한다.
- [x] PASS이고 task group이 `m-performance-hotspot-optimization`이면 완료 이벤트 메타데이터를 보고하고 roadmap 수정이나 `update-roadmap` 직접 호출을 하지 않는다.

## 계획 대비 변경 사항

없음.

## 주요 설계 결정

없음.

## 사용자 리뷰 요청

- 상태: 없음
- 사유 유형: 없음
- 결정 필요: 없음
- 차단 근거: 없음
- 실행한 검증/명령: 없음
- 자동 후속 불가 이유: 없음
- 재개 조건: 없음

## 리뷰어를 위한 체크포인트

- `03_idle_full_baseline`의 archive complete.log가 선행 조건으로 충족되었는지 확인한다.
- baseline과 current comparison이 모두 full profile인지 확인한다.
- comparison record가 compared/missing/warning row 수를 실제로 기록했는지 확인한다.

## 검증 결과

### BASELINE-1 중간 검증
```bash
$ rg --sort path -n "regression_result:|compared rows:|missing baseline rows:|warning rows:" agent-test/runs/20260605-115943-proto-socket-performance-full.md
7:regression_result: WARN
384:- compared rows: 336
385:- missing baseline rows: 0
386:- warning rows: 10
```

### 최종 검증
```bash
$ bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full --baseline agent-test/runs/20260605-025842-proto-socket-performance-full.md
(output)
=== performance 측정 결과 ===
| 구성 | 결과 | exit code | 결과 기록 | 로그 |
|---|---|---:|---|---|
| same-language | INCOMPLETE | 4 | agent-test/runs/20260605-115943-proto-socket-stress-full.md | /tmp/proto-socket-performance.4gjSmE/same-language.log |
| cross-language | PASS | 0 | agent-test/runs/20260605-181543-proto-socket-stress-full-cross.md | /tmp/proto-socket-performance.4gjSmE/cross-language.log |
| typescript-gateway | PASS | 0 | agent-test/runs/20260605-182132-proto-socket-stress-full.md | /tmp/proto-socket-performance.4gjSmE/typescript-gateway.log |

전체 결과값: INCOMPLETE
Regression 결과값: WARN
결과 기록 파일: `agent-test/runs/20260605-115943-proto-socket-performance-full.md`

$ rg --sort path -n "regression_result:|compared rows:|missing baseline rows:|warning rows:" agent-test/runs/20260605-115943-proto-socket-performance-full.md
7:regression_result: WARN
384:- compared rows: 336
385:- missing baseline rows: 0
386:- warning rows: 10

$ git diff --check
(출력 없음, 정상 종료)
```

## 코드리뷰 결과

### 종합 판정

PASS

### 차원별 평가

| 차원 | 판정 | 근거 |
|------|------|------|
| Correctness | Pass | full comparison이 같은 host/runtime/profile(`test_env: local`, `proto-socket-performance-full`) 기록끼리 수행됨. baseline=`20260605-025842-proto-socket-performance-full.md`(idle-full), current=`20260605-115943-proto-socket-performance-full.md`. compared rows 336, missing baseline rows 0, warning rows 10, regression_result WARN로 row key 매칭 비교가 정상 동작. |
| Completeness | Pass | 계획 체크리스트 전 항목 충족: comparison record 생성, milestone `[compare-rule]` context가 baseline record/comparison record/compared(336)·warning(10)·regression(WARN) 반영, `[compare-rule]` `[x]` 전환. |
| Test coverage | Pass | 계획상 별도 unit test 없음. 검증 산출물인 comparison record가 regression 비교 표와 compared/missing/warning row 수를 기록함. |
| API contract | Pass | 코드 변경 없음. 산출물은 record/문서. |
| Code quality | Pass | milestone 편집이 깔끔하고 record는 스크립트 산출 형식 유지. debug/dead code/TODO 없음. |
| Plan deviation | Pass | record `실행 명령`에 `--throughput-drop-pct 20 --p99-worse-pct 25`가 붙지만 이는 스크립트 기본 threshold 자동 확장이며 계획 의도와 동일. 실질 deviation 아님. |
| Verification trust | Pass | `rg`로 재현 결과 line 7 `regression_result: WARN`, 384 `compared rows: 336`, 385 `missing baseline rows: 0`, 386 `warning rows: 10`로 CODE_REVIEW 기재값과 정확히 일치. `git diff --check` EXIT=0. record header가 baseline 경로·full profile 확인. |

### 발견된 문제

없음.

### 다음 단계

PASS — `complete.log` 작성 후 task 디렉터리를 archive로 이동한다. task group이 `m-performance-hotspot-optimization`이므로 런타임에 완료 이벤트 메타데이터를 보고하고 roadmap은 code-review가 직접 수정하지 않는다.

### 선행 의존성 확인

`04+03`의 선행은 `03_idle_full_baseline`. archive complete.log 경로는 환경 permission으로 직접 읽기가 차단되나, (1) PLAN이 해당 archive complete.log를 PASS/RESOLVED로 명시하고, (2) 03이 산출해야 할 idle-full baseline record(`agent-test/runs/20260605-025842-proto-socket-performance-full.md`)가 디스크에 존재하며 본 비교의 baseline으로 정상 사용됨으로 선행 의존성 충족을 확인함.

### overall_result INCOMPLETE 검토

current record의 `overall_result: INCOMPLETE`는 Kotlin TCP parallel>=128 deadlock deferred(03에서 사용자 승인된 수용 조건)에 기인하며, 본 `[compare-rule]` task의 검증 기준(compared rows와 regression WARN rows 기록)과 무관하다. 계획은 본 task 검증을 `regression_result`/compared/missing/warning row 기록으로 한정하므로 INCOMPLETE는 차단 사유가 아니다.
