<!-- task=m-inbound-queue-ordering/09_verify_ordering plan=1 tag=REVIEW_TEST -->

# Plan - REVIEW_TEST Verification Evidence Recovery

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

이 계획의 구현이 끝나도 작업은 완료가 아니다. 반드시 같은 디렉터리의 `CODE_REVIEW-cloud-G08.md`에서 구현 에이전트 소유 섹션을 실제 구현 내용, 검증 출력, 계획 대비 변경 사항으로 채운 뒤 active 파일을 그대로 두고 리뷰 준비를 보고한다. 최종 판정, archive, `complete.log` 작성은 code-review 전용이다. 구현 중 사용자 결정, 사용자 소유 외부 환경, scope 충돌이 필요하면 review stub의 `사용자 리뷰 요청` 섹션에 근거와 함께 기록하고 멈춘다. 단순 검증 증거 공백은 후속 에이전트가 명령 재실행으로 해소할 수 있으므로 사용자 리뷰 요청이 아니다.

## 배경

이전 루프는 Dart/Go 테스트 보강과 Go graceful close drain 동작 변경을 포함했고, 리뷰어가 `cd dart && dart test test/communicator_test.dart`, `cd go && go test -count=1 ./...`, `git diff --check`를 재실행했을 때 통과했다. 그러나 `CODE_REVIEW`의 Kotlin/Python/TypeScript focused 검증과 전체 matrix 검증이 실제 stdout/stderr가 아니라 수기 PASS 요약과 `...`로 기록되어 verification trust 기준을 만족하지 못했다.

## Roadmap Targets

- Milestone: `agent-roadmap/milestones/inbound-queue-ordering.md`
- Task ids:
  - `unit-order`: 모든 지원 언어에 순서 보장 테스트를 추가한다.
  - `slow-handler`: 모든 지원 언어에 느린 request handler 테스트를 추가한다.
  - `queue-close`: 모든 지원 언어에 큐 포화와 연결 종료 테스트를 추가한다.
- Completion mode: check-on-pass

## 범위 결정 근거

- 기본 범위는 검증 증거 복구다. 소스 코드는 검증 실패가 실제로 재현될 때만 최소 수정한다.
- roadmap diff는 이 task 범위에 포함되는지 확인하고, 포함하지 않는다면 `CODE_REVIEW`의 계획 대비 변경 사항에 “기존/다른 sibling 변경으로 리뷰 범위 제외”라고 근거를 남긴다.
- proto schema, wire format, public API rename, benchmark/stress runner 추가는 범위 밖이다.

## 구현 체크리스트

- [ ] Kotlin/Python/TypeScript focused 검증을 실제로 실행하고 stdout/stderr를 CODE_REVIEW에 기록한다.
- [ ] 전체 local matrix와 `git diff --check`를 실제로 실행하고 stdout/stderr, 생성된 결과 기록 파일 경로를 CODE_REVIEW에 기록한다.
- [ ] 현재 diff의 roadmap 변경이 이번 task 범위인지 확인하고, 포함/제외 근거를 CODE_REVIEW에 기록한다.
- [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. 이 항목이 완료되기 전에는 구현이 완료된 것이 아니다.

## REVIEW_TEST-1 Focused 검증 로그 복구

### 문제

이전 `code_review_cloud_G08_0.log`의 TEST-3 검증은 `PASS (Existing tests: ...)` 형태로 기록되어 실제 명령 출력이 아니다.

### 해결 방법

아래 명령을 그대로 실행하고 실제 stdout/stderr를 새 `CODE_REVIEW-cloud-G08.md`에 붙여 넣는다. 출력이 길면 성공/실패 판단이 가능한 전체 tail과 테스트 summary를 보존한다.

### 중간 검증

```bash
cd kotlin && ./gradlew test --tests com.tokilabs.proto_socket.CommunicatorTest --rerun-tasks
cd python && python3 -m pytest -q test/test_communicator.py
cd typescript && npm test -- communicator
```

기대: 모두 PASS.

## REVIEW_TEST-2 최종 검증 로그 복구

### 문제

이전 최종 matrix 검증은 수기 PASS 표와 `...`로 축약되어 있고, local test rule이 요구하는 결과 기록 파일 경로가 없다.

### 해결 방법

전체 matrix와 whitespace 검증을 다시 실행한다. matrix가 생성한 `agent-test/runs/YYYYMMDD-HHMMSS-proto-socket-full-matrix.md` 경로를 `CODE_REVIEW`에 기록한다. 실패하면 실패 row, 재현 명령, 로그 tail을 기록하고 필요한 최소 수정 후 재실행한다.

### 중간 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh --all
git diff --check
```

기대: matrix 전체 PASS, whitespace error 없음.

## REVIEW_TEST-3 범위 설명 정리

### 문제

현재 worktree diff에는 `agent-roadmap/milestones/inbound-queue-ordering.md` 변경이 포함되어 있지만, 원래 09 계획의 수정 파일 요약은 언어별 테스트 파일 중심이었다.

### 해결 방법

해당 roadmap diff가 이번 task의 구현 산출물인지 확인한다. 이번 task 산출물이라면 왜 필요한지 계획 대비 변경 사항에 적는다. 다른 sibling/이전 작업의 잔여 변경이면 이번 리뷰 범위 제외로 기록하고, 이 task가 직접 검증하는 파일과 evidence만 분리해 설명한다.

### 중간 검증

```bash
git diff --name-only
```

기대: 이번 task 범위 파일과 범위 제외 파일이 CODE_REVIEW에 명확히 구분된다.

## 최종 검증

```bash
bash agent-ops/skills/project/run-proto-socket-test-matrix/scripts/run_matrix.sh --all
git diff --check
```

기대: 실제 stdout/stderr와 결과 기록 파일 경로가 새 `CODE_REVIEW-cloud-G08.md`에 남는다.
