<!-- task=m-performance-hotspot-optimization/16_perf_regression plan=1 tag=REVIEW_TEST -->

# Plan - REVIEW_TEST

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

이 작업은 이전 리뷰에서 누락된 full performance regression 검증 evidence를 회수하는 follow-up이다. 지정된 검증 명령을 실행한 뒤 `CODE_REVIEW-cloud-G07.md`의 구현 에이전트 소유 섹션에 실제 stdout/stderr, 결과 파일 경로, regression summary, WARN row 분류를 채우고 active 파일을 그대로 둔 채 리뷰를 요청한다. 사용자 소유 idle host, 외부 환경, scope conflict 때문에 진행할 수 없으면 review stub의 `사용자 리뷰 요청` 섹션에 정확한 근거를 기록하고 멈춘다. 구현 중 사용자에게 직접 질문하거나 `request_user_input`, `USER_REVIEW.md`, `complete.log`, archive 로그를 만들지 않는다. 명령 재실행이나 결과 수집으로 해소 가능한 증거 공백은 사용자 리뷰 요청이 아니라 검증 결과/계획 대비 변경 사항에 남긴다.

## 배경

이전 plan=0은 `perf-regression` Task 완료를 위해 full performance baseline 비교를 요구했다. 하지만 review stub의 구현 항목, 구현 체크리스트, 중간/최종 검증 출력이 placeholder로 남아 있어 결과 파일을 대조할 수 없었다. 이번 follow-up은 새 코드 변경 없이 같은 baseline 비교를 실제로 실행하고 evidence를 채우는 데 한정한다.

## 사용자 리뷰 요청 흐름

구현 중 차단은 active review stub의 `사용자 리뷰 요청` 섹션에 기록한다. 직접 사용자 프롬프트는 금지이며, code-review가 요청 타당성을 검증하고 실제 `USER_REVIEW.md` 작성을 소유한다. 명령 재실행이나 결과 수집으로 해소 가능한 증거 공백은 사용자 리뷰 요청이 아니라 검증 결과/계획 대비 변경 사항에 남긴다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/performance-hotspot-optimization.md`
- Task ids:
  - `perf-regression`: 개선 후 `run_performance.sh --full --baseline <baseline>`을 실행해 throughput 20% 이상 하락 또는 p99 25% 이상 악화 WARN 후보를 확인한다.
- Completion mode: check-on-pass

## 분석 결과

### 읽은 파일

- `agent-ops/rules/project/rules.md`
- `agent-ops/rules/common/rules-roadmap.md`
- `agent-roadmap/current.md`
- `agent-roadmap/milestones/performance-hotspot-optimization.md`
- `agent-ops/skills/common/router.md`
- `agent-ops/skills/common/code-review/SKILL.md`
- `agent-ops/skills/common/plan/SKILL.md`
- `agent-ops/skills/common/_templates/implementation-user-review-request-section.md`
- `agent-test/local/rules.md`
- `agent-test/local/proto-socket-performance-baseline.md`
- `agent-task/m-performance-hotspot-optimization/16_perf_regression/plan_cloud_G07_0.log`
- `agent-task/m-performance-hotspot-optimization/16_perf_regression/code_review_cloud_G07_0.log`

### 테스트 환경 규칙

`test_env=local`이다. `agent-test/local/rules.md`와 `agent-test/local/proto-socket-performance-baseline.md`를 읽었다. 성능, throughput, p99, sustained, payload, gateway regression 판단이므로 performance baseline profile을 적용한다. 필수 명령은 같은 host/runtime/profile의 `proto-socket-performance-*` baseline 비교이며, baseline 파일은 `agent-test/runs/20260605-025842-proto-socket-performance-full.md`다. threshold는 throughput 20% drop, p99 25% worse다.

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

소스 변경은 없다. 이전 review에서는 full performance result file, `overall_result`, `regression_result`, compared rows, warning rows, WARN row 분류가 모두 비어 있어 `perf-regression` Task 검증 coverage가 없다.

### 심볼 참조

none. renamed/removed symbol 없음.

### 분할 판단

이 작업은 기존 split subtask `16_perf_regression`의 follow-up이며 새 split을 만들지 않는다. sibling `17+16_compat_matrix`는 16번 완료 뒤 실행되는 별도 full-cycle 검증이므로 이 plan의 구현 범위에 포함하지 않는다.

### 범위 결정 근거

코드와 테스트 harness를 수정하지 않는다. `run_performance.sh` threshold, baseline 파일, stress/performance 결과 기록 형식도 변경하지 않는다. WARN row가 나오면 원인과 후속 처리를 기록하되, 새 최적화 구현은 이 plan 범위 밖이다.

### 빌드 등급

`cloud-G07`: 장시간 terminal benchmark-style 검증, stdout/result-file 신뢰, regression WARN row 해석이 핵심이라 cloud route를 유지한다.

## 구현 체크리스트

- [ ] baseline 파일 `agent-test/runs/20260605-025842-proto-socket-performance-full.md` 존재와 현재 git ref/status를 확인한다.
- [ ] full performance regression 비교 명령을 실행하고 결과 파일 경로, 전체 결과값, regression 결과값, compared/warning rows를 기록한다.
- [ ] WARN row가 있으면 row key, throughput/p99 변화, hard gate 위반 여부, watchlist/후속 처리 판단을 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_TEST-1] Full Performance Regression Evidence Recovery

문제: `agent-task/m-performance-hotspot-optimization/16_perf_regression/code_review_cloud_G07_0.log:45`의 구현 항목과 `:49`-`:52`의 구현 체크리스트가 미완료이고, `:108`-`:118`의 검증 출력이 placeholder다. `agent-roadmap/milestones/performance-hotspot-optimization.md:108`의 `perf-regression` 검증을 닫을 evidence가 없다.

해결 방법: 기존 baseline을 지정해 full performance runner를 실행한다. 결과 파일에서 구성요소 요약, `overall_result`, `regression_result`, compared rows, warning rows를 review stub에 기록한다. WARN이 0이면 PASS evidence로 기록하고, WARN이 있으면 row별로 hard gate 위반인지 sub-ms/watchlist인지 후속 최적화 후보인지 분리한다.

수정 파일 및 체크리스트:

- [ ] 소스 수정 없음.
- [ ] `CODE_REVIEW-cloud-G07.md`: 중간 검증 출력, 최종 검증 출력, 결과 파일 경로, regression summary, WARN row 분류를 실제 내용으로 기록.

테스트 작성: 작성하지 않는다. 이 작업은 full performance 검증 실행과 evidence 정리다.

중간 검증:

```bash
test -f agent-test/runs/20260605-025842-proto-socket-performance-full.md && git rev-parse --short HEAD && git status --short && uptime
```

기대 결과: baseline 파일이 존재하고 현재 git ref/status 및 host uptime/load가 실제 출력으로 기록된다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| 소스 수정 없음 | REVIEW_TEST-1 |
| `agent-test/runs/YYYYMMDD-HHMMSS-proto-socket-performance-full.md` | REVIEW_TEST-1 |
| `CODE_REVIEW-cloud-G07.md` | REVIEW_TEST-1 |

## 최종 검증

```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 --throughput-drop-pct 20 --p99-worse-pct 25
```

기대 결과: same-language/cross-language/TypeScript gateway 구성요소가 실행되고 결과 파일이 생성된다. stability hard gate 위반이 없어야 한다. `regression_result`가 PASS이면 `perf-regression` 완료 evidence로 기록한다. `regression_result`가 WARN이면 warning rows를 모두 분류하고, 남은 WARN의 원인과 후속 처리가 기록되어야 한다.

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