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

# Plan - REVIEW_LANG_BASELINE

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

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

## 배경

이 후속은 `code_review_cloud_G08_0.log`의 FAIL을 해소한다. 구현은 multi-language stress runner와 bench 진입점을 추가했지만, Kotlin TCP 전체 축과 Kotlin WS 일부 축을 `SKIP`으로 두면서도 기본 `run_stress.sh --quick` 전체 결과를 `PASS`로 기록했다. 이는 `lang-baseline` Roadmap Target의 “5개 언어 same-language TCP/WS full baseline hard gate 통과” 완료 신호로 사용할 수 없다.

## Roadmap Completion Claim

없음. 사용자 결정은 Kotlin 최적화를 optimize Epic으로 이연하는 것이므로, 이 후속의 목표는 `lang-baseline` Task 완료 체크가 아니라 부분 baseline 산출물이 완료로 오인되지 않도록 정리하는 것이다.

## 분석 결과

### 읽은 파일

- `agent-task/m-high-performance-parallel-operations/01_lang_baseline/plan_cloud_G08_0.log`
- `agent-task/m-high-performance-parallel-operations/01_lang_baseline/code_review_cloud_G08_0.log`
- `agent-roadmap/milestones/high-performance-parallel-operations.md`
- `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh`
- `kotlin/crosstest/stress.kt`
- `agent-test/runs/20260602-130410-proto-socket-stress-quick.md`

### 범위 결정 근거

- Kotlin TCP_NODELAY, WS ordering, WS staging cap 수정은 구현 에이전트가 기록한 사용자 결정에 따라 optimize Epic으로 이연한다.
- 이 후속에서는 runner/result/task artifact가 partial baseline을 `lang-baseline` 완료로 보고하지 않도록 고친다.
- wire format, proto schema, public API semantics는 변경하지 않는다.

### 빌드 등급

- build=`cloud-G08`, review=`cloud-G08`. 다중 언어 terminal benchmark runner, result status contract, Roadmap completion claim 정리를 다룬다.

## 구현 체크리스트

- [ ] 기본 `run_stress.sh --quick`이 필수 same-language TCP/WS 축의 SKIP을 포함하면 전체 결과를 PASS로 기록하지 않도록 수정한다.
- [ ] Kotlin 이연 축은 `unsupported transport`가 아니라 deferred/finding 축임을 결과 기록과 summary에서 명확히 구분한다.
- [ ] active review 산출물에서 `lang-baseline` Roadmap Target 완료 주장과 첫 체크리스트 완료 표시가 더 이상 남지 않도록 정리한다.
- [ ] focused stress smoke를 재실행해 Kotlin SKIP 포함 기본 실행은 non-PASS로 기록되고, 명시적으로 범위를 줄인 partial 실행은 그 범위 안에서만 PASS가 되는지 확인한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

### [REVIEW_LANG_BASELINE-1] 필수 축 SKIP의 PASS 오인 방지

#### 문제

[run_stress.sh](/config/workspace/proto-socket/agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh:220)는 언어별 status가 `FAIL`/`BLOCKED`일 때만 전체 결과를 낮춘다. 그래서 [kotlin/crosstest/stress.kt](/config/workspace/proto-socket/kotlin/crosstest/stress.kt:148)가 필수 Kotlin 축 9개를 `SKIP`으로 내도 `overall_result: PASS`가 된다.

#### 해결 방법

- runner가 `SKIP` reason을 해석해 optional skip과 required skip을 구분하게 한다.
- `profile not part of <language> same-language baseline (gateway is TypeScript-specific)`처럼 명시적으로 optional인 skip은 전체 PASS를 깨지 않는다.
- `deferred to optimize Epic`, 지원 구현의 stability 실패 후보, 또는 기본 선택 범위의 required axis skip은 전체 결과를 `FAIL` 또는 명확한 non-PASS로 기록한다.
- 결과 기록의 언어별 요약 비고에 required skip count/reason을 남긴다.

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

- [ ] `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh`
- [ ] 필요한 경우 `kotlin/crosstest/stress.kt`의 skip reason prefix를 runner가 안정적으로 분류할 수 있게 정리한다.

#### 테스트 작성

- 별도 unit test 파일 추가보다 runner focused command로 검증한다.

#### 중간 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick --lang dart,go,python,typescript
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick --lang typescript --profile gateway
```

기대: 첫 명령은 Kotlin required SKIP 때문에 non-PASS와 non-zero exit를 기록한다. 둘째/셋째 명령은 선택 범위 안에서 stability 0 PASS를 기록한다.

### [REVIEW_LANG_BASELINE-2] task 완료 주장 정리

#### 문제

[code_review_cloud_G08_0.log](/config/workspace/proto-socket/agent-task/m-high-performance-parallel-operations/01_lang_baseline/code_review_cloud_G08_0.log:9)는 첫 체크리스트를 완료로 표시했지만, 같은 파일의 검증 결과는 Kotlin 9개 축 SKIP을 기록한다. `Roadmap Targets`가 있는 상태로 PASS되면 runtime이 `lang-baseline` 완료 이벤트로 오인할 수 있다.

#### 해결 방법

- 이번 후속 active review/plan에는 Roadmap completion target을 넣지 않는다.
- 구현 메모와 검증 결과에 “partial baseline runner/status contract 정리”로 범위를 명확히 쓴다.
- PASS가 가능해지더라도 complete.log의 `Roadmap Completion` 섹션이 생성되지 않도록 한다.

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

- [ ] `agent-task/m-high-performance-parallel-operations/01_lang_baseline/CODE_REVIEW-cloud-G08.md`

#### 테스트 작성

- 문서/루프 산출물 정합성 확인으로 충분하다.

#### 중간 검증

```bash
rg -n "Milestone:|Task ids:|Completion mode|Roadmap Targets" agent-task/m-high-performance-parallel-operations/01_lang_baseline/PLAN-cloud-G08.md agent-task/m-high-performance-parallel-operations/01_lang_baseline/CODE_REVIEW-cloud-G08.md
```

기대: active follow-up 산출물에 Roadmap completion claim이 없다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh` | REVIEW_LANG_BASELINE-1 |
| `kotlin/crosstest/stress.kt` | REVIEW_LANG_BASELINE-1 |
| `agent-task/m-high-performance-parallel-operations/01_lang_baseline/CODE_REVIEW-cloud-G08.md` | REVIEW_LANG_BASELINE-2 |

## 최종 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick --lang dart,go,python,typescript
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_stress.sh --quick --lang typescript --profile gateway
git diff --check
```

기대: 기본 all-language quick은 Kotlin required SKIP을 포함해 non-PASS/non-zero로 기록된다. 명시적 partial 범위와 TypeScript gateway는 PASS다. whitespace error 없음.
