<!-- task=m-high-performance-parallel-operations/03+01_payload_matrix plan=0 tag=PAYLOAD_MATRIX -->

# Plan - PAYLOAD_MATRIX

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

`CODE_REVIEW-cloud-G08.md`의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. user-only blocker가 있으면 `사용자 리뷰 요청` 섹션을 채우고 active 파일을 유지한다.

## 배경

현재 baseline은 작은 `TestData` payload 중심이라 serialization, worker transfer, memory pressure의 payload sensitivity를 보여주지 못한다. 이 작업은 `01_lang_baseline` 이후 payload size matrix를 추가한다.

## 사용자 리뷰 요청 흐름

구현 중 사용자 결정이나 외부 환경 준비가 필요한 경우 review stub의 `사용자 리뷰 요청` 섹션에 기록한다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/high-performance-parallel-operations.md`
- Task ids:
  - `payload-matrix`: payload size matrix를 추가한다.
- Completion mode: check-on-pass

## 분석 결과

### 읽은 파일

- `agent-roadmap/current.md`
- `agent-roadmap/milestones/high-performance-parallel-operations.md`
- `agent-test/local/rules.md`
- `agent-test/local/proto-socket-full-matrix.md`
- `agent-test/local/typescript-smoke.md`
- `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh`
- `typescript/bench/stress.ts`

### 테스트 환경 규칙

- test_env: local.
- 적용 profile: `proto-socket-full-matrix`, `typescript-smoke`.
- payload runner 변경은 stress smoke, TypeScript check/test, full matrix로 검증한다.

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

- 현재 stress row는 payload bytes를 기록하지만 1KB/64KB/1MB payload 축을 선택하는 옵션이 없다.

### 심볼 참조

- renamed/removed symbol 없음.

### 분할 판단

- 이 subtask는 `03+01_payload_matrix`이며 `01_lang_baseline` 완료에 의존한다.
- cross-language baseline과는 독립적으로 실행 가능하므로 `02`에는 의존하지 않는다.

### 범위 결정 근거

- 언어별 full baseline runner 자체는 `01_lang_baseline`에서 처리한다.
- gateway default policy와 최적화는 후속 Epic에서 처리한다.

### 빌드 등급

- build=`cloud-G08`, review=`cloud-G08`. payload generation, memory metric, terminal benchmark evidence를 다룬다.

## 구현 체크리스트

- [ ] `01_lang_baseline` 완료 근거를 확인한다.
- [ ] payload size matrix를 추가한다. 검증: 1KB, 64KB, 1MB payload에서 latency, throughput, memory peak, gateway backlog가 기록된다.
- [ ] quick mode는 작은 샘플, full mode는 Milestone 기준 payload matrix를 실행하도록 한다.
- [ ] payload별 결과 row가 공통 schema의 `Payload(bytes)`와 stability counters를 채운다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [PAYLOAD_MATRIX-1] payload size matrix 추가

#### 문제

[stress.ts](/config/workspace/proto-socket/typescript/bench/stress.ts:334)는 작은 `TestData` payload만 사용한다. Milestone은 1KB, 64KB, 1MB payload metric을 요구한다.

#### 해결 방법

- payload size option 또는 profile을 추가한다.
- message field를 deterministic filler로 채우고 실제 serialized payload bytes를 기록한다.
- payload별 p50/p95/p99, throughput, memory, gateway backlog를 결과 row에 남긴다.

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

- [ ] `typescript/bench/stress.ts`
- [ ] `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh`
- [ ] 필요한 언어별 payload helper

#### 테스트 작성

- 작성: quick payload smoke.
- 작성: TypeScript check/test.

#### 중간 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick --profile payload
```

기대: 1KB 이상 payload row가 기록되고 stability violations 0.

## 의존 관계 및 구현 순서

- `01_lang_baseline` complete.log 확인 후 구현한다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `typescript/bench/stress.ts` | PAYLOAD_MATRIX-1 |
| `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh` | PAYLOAD_MATRIX-1 |
| language benchmark helpers | PAYLOAD_MATRIX-1 |

## 최종 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick --profile payload
cd typescript && npm run check && npm test
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh --all
git diff --check
```

기대: payload stress quick PASS, TypeScript check/test PASS, full matrix PASS, whitespace error 없음. 모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채운다. 이 파일 작성이 구현의 마지막 단계다.
