<!-- task=final_full_validation/02+01_nightly_full_performance plan=0 tag=TEST -->

# Plan - TEST Nightly Full Performance Baseline

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

`CODE_REVIEW-cloud-G07.md`의 구현 에이전트 소유 섹션을 실제 실행 내용과 검증 출력으로 채우는 것이 구현의 마지막 단계다. 이 작업은 20:00 이후 nightly baseline 후보로 실행한다. 최종 판정, log rename, `complete.log`, archive 이동은 code-review 전용이다. 선택된 SDD 결정 또는 Milestone `구현 잠금 > 결정 필요` 항목이 실구현을 막는 경우에만 review stub의 `사용자 리뷰 요청`을 채우고 멈춘다. 환경/secret/서비스 준비, 일반 범위 변경, 검증 증거 공백은 사용자 리뷰 요청이 아니라 검증 결과 또는 후속 plan 대상이다.

## 배경

현재 대규모 병렬 안정성 근거는 최신 quick PASS와 기존 full baseline PASS를 함께 사용한다. 최신 ref에서 long full baseline과 regression 비교까지 통과하면 30분 sustained, 1024 clients, payload, cross-language, TypeScript gateway 근거를 더 강하게 닫을 수 있다. 이 작업은 장시간 benchmark-style terminal task이므로 낮 시간 preflight와 분리한다.

## 사용자 리뷰 요청 흐름

직접 사용자에게 질문하지 않는다. 선택된 SDD 결정 또는 Milestone lock 결정이 막는 경우에만 active `CODE_REVIEW-cloud-G07.md`의 `사용자 리뷰 요청` 섹션에 연결 대상, 차단 근거, 실행한 명령, 재개 조건을 기록한다. code-review가 해당 요청을 검증하고 실제 `USER_REVIEW.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-full-matrix.md`
- `agent-test/local/proto-socket-performance-baseline.md`
- `README.md`
- `agent-roadmap/ROADMAP.md`
- `agent-roadmap/current.md`
- `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_full_test.sh`
- `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh`
- `.gitignore`

### 테스트 환경 규칙

- test_env: `local`.
- `proto-socket-performance-baseline.md`의 full 성능 기준 후보 명령을 적용한다.
- full baseline 후보는 `20:00` 이후 시작한 record만 baseline 후보로 본다.
- baseline 비교는 같은 host/runtime/profile의 이전 record와 비교해야 한다. 현재 비교 후보는 `agent-test/runs/20260614-123328-proto-socket-performance-full.md`이다.
- hard gate: timeout, nonce mismatch, response type mismatch, FIFO violation, pending leak, queue/gateway backlog leak가 모두 0이어야 한다.
- regression gate: throughput 20% 이상 하락 또는 p99 25% 이상 악화는 WARN이며, 이 계획은 `--fail-on-regression`으로 WARN도 non-zero 처리한다.

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

- 동작 변경 없음. full performance 결과와 문서 갱신만 수행한다.
- full performance는 same-language, cross-language, TypeScript gateway 구성요소를 포함한다.
- 실서비스 multi-host/WAN/장애 주입/배포 orchestration은 이 계획의 검증 범위가 아니다. 문서에는 local baseline 한계를 유지한다.

### 심볼 참조

- none. renamed/removed symbol 없음.

### 분할 판단

- split decision policy 평가 완료.
- 공유 task group: `final_full_validation`.
- 현재 subtask: `02+01_nightly_full_performance`.
- predecessor `01`: `agent-task/final_full_validation/01_daytime_functional_preflight/complete.log` 또는 archived `agent-task/archive/*/*/final_full_validation/01_daytime_functional_preflight/complete.log`가 있어야 한다.
- 현재 작성 시점에는 predecessor가 아직 완료되지 않았다. 구현 에이전트는 01 완료 전 이 subtask를 시작하지 않는다.

### 범위 결정 근거

- runner 스크립트 수정은 제외한다.
- 기능 full matrix 재실행은 01에서 수행한다. 이 subtask는 full performance baseline과 관련 문서 갱신만 수행한다.
- C#/Swift 구현, package registry 배포, CI/CD runner 연결은 제외한다.
- `agent-test/runs/**` 결과 파일은 ignored local evidence로만 사용하고 tracked 문서에는 record basename과 해석만 남긴다.

### 빌드 등급

- build lane: `cloud-G07`.
- review lane: `cloud-G07`.
- 근거: long-running benchmark-style terminal task, regression evidence diagnosis, large local result record 해석이 핵심이다.

## 의존 관계 및 구현 순서

1. `01_daytime_functional_preflight`가 PASS로 완료되어 `complete.log`가 생겼는지 확인한다.
2. local time 20:00 이후인지 확인한다.
3. full performance baseline command를 실행한다.
4. PASS이면 README/ROADMAP의 full baseline 근거를 최신 record/ref/regression 결과로 갱신한다.

## 구현 체크리스트

- [ ] predecessor `01_daytime_functional_preflight`의 `complete.log` 존재 여부를 확인한다. 없으면 실행하지 않고 review stub에 미실행 사유를 기록한다.
- [ ] `date '+%Y-%m-%d %H:%M:%S %Z'`로 20:00 이후 시작인지 확인한다. 20:00 전이면 full baseline을 실행하지 않는다.
- [ ] `test -f agent-test/runs/20260614-123328-proto-socket-performance-full.md`로 baseline 파일 존재를 확인한다.
- [ ] `bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full --baseline agent-test/runs/20260614-123328-proto-socket-performance-full.md --fail-on-regression`을 실행한다.
- [ ] command가 PASS이면 최신 full performance record의 `overall_result: PASS`, `regression_result: PASS`, same-language/cross-language/typescript-gateway PASS를 확인하고 `README.md`와 `agent-roadmap/ROADMAP.md`에 최신 full baseline 근거를 반영한다.
- [ ] command가 non-zero이면 tracked 문서를 PASS로 갱신하지 말고 record/log tail과 실패 또는 regression WARN rows를 `CODE_REVIEW-cloud-G07.md`에 기록한다.
- [ ] `git diff --check`와 `rg --sort path -n "proto-socket-performance-full|regression|full baseline|잠정 완료" README.md agent-roadmap/ROADMAP.md`를 실행한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [TEST-1] 야간 full 성능 baseline과 regression 비교

#### 문제

`README.md:29`의 full baseline 근거는 기존 ref의 full 결과다. 최신 ref에서 대규모 병렬 안정성을 더 강하게 주장하려면 20:00 이후 full 성능 baseline과 이전 full baseline 비교가 필요하다.

#### 해결 방법

1. predecessor 완료와 20:00 이후 시작 조건을 확인한다.
2. 기존 full baseline record를 baseline으로 지정하고 `--fail-on-regression`을 켠다.
3. PASS이면 README/ROADMAP에 최신 full record, ref, regression 결과를 반영한다.

Before:

```md
README.md:29 | 성능/안정성 full baseline 후보 | 로컬 기록 `20260614-123328-proto-socket-performance-full.md`, ref `29ea189` | PASS | ...
```

After:

```md
README.md:29 | 성능/안정성 full baseline 후보 | 로컬 기록 `<new>-proto-socket-performance-full.md`, ref `<new-ref>` | PASS | full profile 및 baseline regression 비교가 통과했다. |
```

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

- [ ] `README.md`: 최신 full performance record/ref/regression 결과 반영.
- [ ] `agent-roadmap/ROADMAP.md`: 잠정 완료 판단에 최신 full baseline PASS가 반영되는지 확인.
- [ ] `CODE_REVIEW-cloud-G07.md`: date, command, record path, component summary, regression result, 문서 갱신 여부 기록.

#### 테스트 작성

- 별도 테스트 파일 작성 없음. 이 task 자체가 full 성능/안정성 검증 실행이다.

#### 중간 검증

```bash
date '+%Y-%m-%d %H:%M:%S %Z'
test -f agent-test/runs/20260614-123328-proto-socket-performance-full.md
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_performance.sh --full --baseline agent-test/runs/20260614-123328-proto-socket-performance-full.md --fail-on-regression
```

기대 결과: 20:00 이후 시작. command exit 0. 결과 record `agent-test/runs/*-proto-socket-performance-full.md`에 `overall_result: PASS`, `regression_result: PASS`, same-language/cross-language/typescript-gateway PASS가 기록된다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `README.md` | TEST-1 |
| `agent-roadmap/ROADMAP.md` | TEST-1 |
| `agent-task/final_full_validation/02+01_nightly_full_performance/CODE_REVIEW-cloud-G07.md` | TEST-1 |

## 최종 검증

```bash
latest_full_record="$(ls -1t agent-test/runs/*-proto-socket-performance-full.md | head -1)" && printf '%s\n' "$latest_full_record"
git diff --check
rg --sort path -n "proto-socket-performance-full|regression|full baseline|잠정 완료" README.md agent-roadmap/ROADMAP.md
```

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