<!-- task=m-stream-evidence-gate-core/22+21_filter_observation_runtime plan=0 tag=FILTER_OBSERVATION_RUNTIME -->

# Plan - Filter evaluation과 runtime lifecycle observation hooks

## 배경

고정된 observation envelope를 GateCoordinator evaluation과 runtime staging/arbitration/release/terminal lifecycle에 연결해 실제 decision만 순서대로 emit해야 한다.

## 분석 결과

- 읽은 파일(원본 분석): parallel evaluation/evaluation contract, arbiter, commit boundary, terminal, recovery/runtime seam과 SDD S08/S16.
- `test_env=local`; platform-common domain/test profile을 유지한다.
- 원본 PLAN의 OBS-CORE-2 범위와 OBS-CORE-4 중 evaluation/runtime fixture를 유지한다.
- `parallel_evaluation.go`는 실제 evaluated epoch의 stable filter start/outcome만 emit하고 미평가 delta는 emit하지 않는다.
- `runtime.go`는 response staged, arbitration, release와 terminal을 action당 한 번 emit한다.
- request-local sequence, validation과 sink failure isolation은 `21` contract를 재사용하며 recovery hook은 `23`이 소유한다.
- 기존 routing을 유지한다. build=`local-fit`, `PLAN-local-G08.md`; official review=`CODE_REVIEW-cloud-G08.md`.

## 구현 체크리스트

- [x] OBS-CORE-2 GateCoordinator evaluation 및 runtime release/terminal lifecycle hooks를 연결한다.
- [x] OBS-CORE-4 parallel completion correlation, runtime lifecycle order와 delta suppression fixtures를 추가한다.
- [x] OBS-CORE-5 streamgate unit/race/diff 검증을 수행한다.
- [x] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다.

## 구현 항목

### [OBS-CORE-2] evaluation/runtime hooks

- `packages/go/streamgate/parallel_evaluation.go`: 실제 evaluated epoch의 stable filter start/outcome만 emit한다.
- `packages/go/streamgate/runtime.go`: response staged, arbitration, release와 terminal을 action당 한 번 emit한다.

### [OBS-CORE-4] runtime tests

- `filter_observation_test.go`: parallel completion correlation, staging/arbitration/release/terminal lifecycle order와 delta suppression을 검증한다.

## 의존 관계 및 구현 순서

`21` PASS → OBS-CORE-2 → OBS-CORE-4/5. `23`이 recovery lifecycle과 complete timeline을 닫는다.

## 수정 파일 요약

| 파일 | 항목 |
|---|---|
| `packages/go/streamgate/parallel_evaluation.go`, `runtime.go` | OBS-CORE-2 |
| `packages/go/streamgate/filter_observation_test.go` | OBS-CORE-4 |

## 최종 검증

- `command -v go && readlink -f "$(command -v go)" && go version && go env GOROOT`
- `go test -count=1 ./packages/go/streamgate`
- `go test -race -count=1 ./packages/go/streamgate`
- `git diff --check`

모든 코드 변경 완료 후 반드시 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 채운다.

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

구현/test/evidence만 소유하고 active pair를 유지한다. user-review/finalization/roadmap은 official reviewer/runtime 소유다.
