<!-- task=m-high-performance-parallel-operations/01_lang_baseline plan=0 tag=LANG_BASELINE -->

# Plan - LANG_BASELINE

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

`CODE_REVIEW-cloud-G08.md`의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채우는 것이 구현의 마지막 단계다. 구현 중 사용자 결정, 사용자 소유 외부 환경, 또는 범위 충돌이 생기면 review stub의 `사용자 리뷰 요청` 섹션을 채우고 active 파일을 그대로 둔 채 멈춘다. 명령 재실행이나 산출물 수집으로 해결 가능한 검증 공백은 사용자 리뷰 요청이 아니다.

## 배경

현재 stress baseline은 TypeScript same-language 중심이다. 고성능 병렬 운용 근거로 쓰려면 Dart, Go, Kotlin, Python, TypeScript가 같은 schema로 same-language TCP/WS baseline을 남겨야 한다. 이 작업은 첫 번째 Epic의 큰 작업 중 언어별 baseline 확장을 담당한다.

## 사용자 리뷰 요청 흐름

구현 중 user-only blocker는 active `CODE_REVIEW-cloud-G08.md`의 `사용자 리뷰 요청` 섹션에 기록한다. code-review가 해당 요청을 검증하고 `USER_REVIEW.md` 작성 여부를 결정한다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/high-performance-parallel-operations.md`
- Task ids:
  - `lang-baseline`: Dart, Go, Kotlin, Python, TypeScript same-language TCP/WS full baseline을 추가한다.
- 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/tools-smoke.md`
- `agent-test/local/typescript-smoke.md`
- `agent-ops/rules/project/domain/tools/rules.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`, `tools-smoke`, `typescript-smoke`.
- runner 변경은 tools-smoke 규칙상 full matrix로 확장한다.
- TypeScript harness 변경은 `cd typescript && npm run check && npm test`가 기본이며, 최종적으로 `run_matrix.sh --all`도 실행한다.

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

- 언어별 same-language 성능 baseline은 현재 TypeScript 중심이며 Dart/Go/Kotlin/Python baseline 산출이 없다.
- 기존 correctness matrix는 성능 metric schema를 보장하지 않는다.

### 심볼 참조

- renamed/removed symbol 없음.

### 분할 판단

- shared task group: `m-high-performance-parallel-operations`.
- `01_lang_baseline`: 언어별 same-language runner와 결과 schema 확장. 선행 없음.
- `02+01_cross_baseline`: cross-language baseline. `01` 완료 후 같은 schema/runner 재사용.
- `03+01_payload_matrix`: payload matrix. `01` 완료 후 언어별 payload 옵션 재사용.

### 범위 결정 근거

- 이 plan은 same-language baseline만 다룬다.
- cross-language 조합과 payload matrix는 별도 split plan에서 처리한다.
- wire format, proto schema, public API semantics는 변경하지 않는다.

### 빌드 등급

- build=`cloud-G08`, review=`cloud-G08`. 다중 언어 terminal benchmark runner, stdout/stderr/result schema, 장시간 local 검증을 다룬다.

## 구현 체크리스트

- [ ] Dart/Go/Kotlin/Python/TypeScript same-language TCP/WS stress baseline 진입점을 공통 schema로 추가한다. 검증: 각 언어별 full run이 결과 파일을 남기고 stability hard gate를 통과한다.
- [ ] `run_stress.sh` 또는 하위 runner orchestration이 언어 선택, transport 선택, 결과 파일 병합을 지원한다.
- [ ] 언어별 unsupported transport는 PASS가 아니라 SKIPPED/BLOCKED와 사유로 기록한다.
- [ ] focused stress smoke와 전체 local matrix를 실행한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [LANG_BASELINE-1] 언어별 same-language baseline 추가

#### 문제

[stress.ts](/config/workspace/proto-socket/typescript/bench/stress.ts:2)는 TypeScript same-language baseline임을 명시한다. 첫 Epic의 `lang-baseline`은 5개 언어의 same-language TCP/WS baseline을 요구한다.

#### 해결 방법

- 기존 TypeScript schema를 기준으로 Dart/Go/Kotlin/Python/TypeScript runner를 통합 또는 위임 실행한다.
- 결과 row는 language, transport, payload bytes, clients, throughput, latency, stability counters, backlog, memory를 기록한다.
- 언어별 구현이 준비되지 않은 transport는 SKIPPED/BLOCKED로 기록한다.

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

- [ ] `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh`
- [ ] `typescript/bench/stress.ts`
- [ ] 필요한 언어별 `bench/` 또는 `test/` helper
- [ ] `agent-test/runs/` 결과 기록은 자동 생성만 하고 tracked fixture로 추가하지 않는다.

#### 테스트 작성

- 작성: runner smoke는 `run_stress.sh --quick`로 검증한다.
- 작성: 언어별 helper가 생기면 해당 언어 smoke 명령을 계획 내 검증에 포함한다.

#### 중간 검증

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

기대: 모든 실행 가능한 언어/transport row가 PASS 또는 명시적 SKIPPED/BLOCKED로 기록된다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh` | LANG_BASELINE-1 |
| `typescript/bench/stress.ts` | LANG_BASELINE-1 |
| `dart/`, `go/`, `kotlin/`, `python/`, `typescript/` benchmark helpers | LANG_BASELINE-1 |

## 최종 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick
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
```

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