<!-- task=m-agent-task-runtime-target-selector/02+01_quota_input plan=3 tag=REVIEW_REVIEW_REVIEW_API -->

# Go 표준 라이브러리 복구 확인 후 S04 Evidence 닫기

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

검증을 완료한 뒤 `CODE_REVIEW-*-G??.md`의 구현 에이전트 소유 섹션을 실제 내용과 stdout/stderr로 채운다. active PLAN/CODE_REVIEW 파일은 그대로 두고 리뷰 준비 완료만 보고한다. 차단되면 정확한 원인, 시도한 명령과 출력, 재개 조건만 구현 소유 evidence 필드에 기록한다. 사용자에게 질문하거나 user-input 도구를 호출하거나 control-plane stop 파일을 만들거나 다음 상태를 판정하지 않는다. 로그 archive, `complete.log`, 최종 판정은 code-review skill만 수행한다.

## 배경

quota producer/command와 selector admission 코드는 정적 검토와 Python 회귀에서 확인됐다. 그러나 host Go 1.26.2 binary와 `/config/opt/go` 표준 라이브러리 source가 불일치해 두 필수 Go 패키지가 setup 단계에서 계속 실패한다. 같은 toolchain이 복구된 뒤 fresh Go 회귀와 전체 검증을 통과시켜 SDD S04 Evidence Map을 닫는다.

## Archive Evidence Snapshot

- Prior task: `agent-task/m-agent-task-runtime-target-selector/02+01_quota_input`
- Archived plan: `agent-task/m-agent-task-runtime-target-selector/02+01_quota_input/plan_local_G02_2.log`
- Archived review: `agent-task/m-agent-task-runtime-target-selector/02+01_quota_input/code_review_cloud_G09_2.log`
- Verdict: `FAIL`
- Findings: Required 1, Suggested 0, Nit 0
  - `/config/opt/go/src/crypto/internal/fips140cache` 누락으로 필수 Go 두 패키지가 setup 단계에서 실패해 새 producer/command의 컴파일과 회귀 assertion evidence가 없다.
- Affected files: `apps/node/internal/adapters/cli/status/quota.go`, `apps/node/internal/adapters/cli/status/quota_test.go`, `apps/node/cmd/node/quota_probe.go`, `apps/node/cmd/node/quota_probe_test.go`, `agent-ops/skills/project/orchestrate-agent-task-loop/scripts/select_execution_target.py`, `agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_select_execution_target.py`
- Verification evidence:
  - host Go: `/config/.local/bin/go` → `/config/opt/go/bin/go`, `go1.26.2 linux/arm64`, `GOROOT=/config/opt/go`
  - Go preflight와 두 package test: FAIL, `crypto/internal/fips140cache` missing
  - Python policy 5개와 selector 32개 테스트: PASS
  - `py_compile`, `gofmt -d`, `git diff --check`: PASS
- Roadmap carryover: SDD S04와 Milestone Task `quota-input`은 fresh Go evidence가 생길 때까지 미완료 상태를 유지한다.

## Roadmap Targets

- Milestone: `agent-roadmap/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md`
- Milestone link: [Milestone 문서](agent-roadmap/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md)
- Task ids:
  - `quota-input`: Go usage checker 기반 required-cap quota snapshot과 selector admission
- Completion mode: check-on-pass

## 분석 결과

### 읽은 파일

- `agent-ops/rules/project/rules.md`
- `agent-ops/rules/project/domain/node/rules.md`
- `agent-ops/rules/project/domain/testing/rules.md`
- `agent-ops/rules/common/rules-roadmap.md`
- `agent-ops/rules/common/rules-agent-spec.md`
- `agent-ops/skills/common/router.md`
- `agent-ops/skills/common/code-review/SKILL.md`
- `agent-ops/skills/common/plan/SKILL.md`
- `agent-ops/skills/common/finalize-task-routing/SKILL.md`
- `agent-test/local/rules.md`
- `agent-test/local/node-smoke.md`
- `agent-spec/index.md`
- `agent-spec/runtime/edge-node-execution.md`
- `agent-contract/index.md`
- `agent-contract/inner/edge-node-runtime-wire.md`
- `agent-roadmap/phase/automation-runtime-bridge/PHASE.md`
- `agent-roadmap/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md`
- `agent-roadmap/sdd/automation-runtime-bridge/agent-task-runtime-target-selector/SDD.md`
- `agent-task/archive/2026/07/m-agent-task-runtime-target-selector/01_selector_contract/complete.log`
- `agent-task/m-agent-task-runtime-target-selector/02+01_quota_input/plan_local_G02_2.log`
- `agent-task/m-agent-task-runtime-target-selector/02+01_quota_input/code_review_cloud_G09_2.log`
- `apps/node/internal/adapters/cli/status/status.go`
- `apps/node/internal/adapters/cli/status/parser.go`
- `apps/node/internal/adapters/cli/status/quota.go`
- `apps/node/internal/adapters/cli/status/quota_test.go`
- `apps/node/cmd/node/main.go`
- `apps/node/cmd/node/quota_probe.go`
- `apps/node/cmd/node/quota_probe_test.go`
- `packages/go/config/provider_types.go`
- `agent-ops/skills/project/orchestrate-agent-task-loop/scripts/execution_target_policy.py`
- `agent-ops/skills/project/orchestrate-agent-task-loop/scripts/select_execution_target.py`
- `agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_execution_target_policy.py`
- `agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_select_execution_target.py`

### SDD 기준

- SDD: `agent-roadmap/sdd/automation-runtime-bridge/agent-task-runtime-target-selector/SDD.md`
- 상태: `[승인됨]`, SDD 잠금 `해제`, 사용자 리뷰 없음
- 대상: S04 → `quota-input`
- Evidence Map: Go usage checker JSON bridge, required-cap tri-state, unknown 1회 admission, local `unbounded/not_applicable` 테스트
- producer/command Go 회귀가 실제 compiler/runtime에서 통과한 evidence와 selector black-box 회귀를 한 최종 검증으로 묶어 S04 완료 여부를 판정한다.

### 테스트 환경 규칙

- `test_env=local`; `agent-test/local/rules.md`와 `agent-test/local/node-smoke.md`를 읽었다.
- node-smoke의 transport/bootstrap command는 hidden quota command와 직접 일치하지 않아 대상 Go package 테스트와 selector black-box 테스트를 fallback으로 사용한다.
- Go cache를 사용하지 않고 `-count=1`을 적용한다. PATH에서 처음 해석되는 Go와 `GOROOT`를 유지하며 별도 `GOTOOLCHAIN` 또는 다른 Go binary로 우회하지 않는다.
- 현재 preflight:
  - runner/repo: local `/config/workspace/iop`, branch `main`, HEAD `3f01d08cebdafa1bddd1089e6940677dcb6c90b1`, dirty checkout
  - OS/arch: `Linux/aarch64`
  - Go: `/config/.local/bin/go` → `/config/opt/go/bin/go`, `go1.26.2 linux/arm64`, `GOROOT=/config/opt/go`
  - blocker: `/config/opt/go/src/crypto/internal/fips140cache` 누락
  - 재개 조건: `/config/opt/go` 표준 라이브러리 source를 go1.26.2 binary와 일치하도록 복구한다.
  - external provider/credential/port: 필요 없음

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

- exhausted primary/eligible alternate와 no-eligible 결과는 Python 회귀가 통과했다.
- overall/model `NaN`/`Inf`와 빈 target/command checker-not-called 회귀는 작성됐지만 현재 Go 설치에서 compile/assertion 실행 evidence가 없다.
- Go 환경 복구 뒤 두 package test가 통과하면 현재 범위의 남은 커버리지 공백은 없다.

### 심볼 참조

- renamed/removed symbol: none

### 분할 판단

- split 정책을 파일 선택 전에 적용했다.
- task group: `m-agent-task-runtime-target-selector`
- 현재 subtask: `02+01_quota_input`
- predecessor `01_selector_contract`: `agent-task/archive/2026/07/m-agent-task-runtime-target-selector/01_selector_contract/complete.log`로 충족됐다.
- 남은 작업은 같은 host Go identity에서 producer/command와 selector evidence를 닫는 단일 검증 단위다. 구현·계약·테스트 경계가 새로 갈라지지 않으며 분할하면 S04의 동일 evidence만 인위적으로 나뉜다.

### 범위 결정 근거

- repo source 동작은 변경하지 않는다. fresh 검증에서 새 source defect가 드러나면 추측 수정하지 않고 실제 failure evidence를 review stub에 기록한다.
- `/config/opt/go` 설치 복구는 repo 작업 범위 밖이다. 구현 에이전트는 다른 toolchain 설치·선택이나 `GOROOT` source 수정을 수행하지 않는다.
- dispatcher integration, failover, failure budget, route pin과 `agent-roadmap/**`, `agent-spec/**`, `agent-contract/**`는 수정하지 않는다.

### 최종 라우팅

- evaluation_mode: `isolated-reassessment`
- finalizer: `finalize-task-policy.sh`
- finalizer_mode: `pair`
- build closures: scope/context/verification/evidence/ownership/decision 모두 `true`
- build closure basis: source 수정 없이 동일 host identity와 결정적 fresh 명령으로 남은 evidence를 닫으며, 환경 차단도 명시적 preflight 결과로 판정할 수 있다.
- build base route: `local-G02`
- build grade scores: scope_coupling=0, state_concurrency=0, blast_irreversibility=0, evidence_diagnosis=1, verification_complexity=1
- build loop-risk:
  - ordered_transitions: state_count=1, adverse_paths=`resume`; 환경 재개 절차는 동작 상태 signature에서 제외
  - concurrent_consistency: actor_count=0, constraints=없음
  - boundary_contract: component_count=0, consumer_count=0, constraints=없음
  - structured_interpretation: mechanisms/hazards=없음
  - variant_product: independent_axis_count=0, combination_verification_required=false
  - matched signatures: 없음, triggered=`false`
- build final: `local-G02`, `PLAN-local-G02.md`
- review closures: scope/context/verification/evidence/ownership/decision 모두 `true`
- review closure basis: archived failure, 현재 host preflight, fresh Go/Python/static 출력만으로 PASS 여부를 독립 판정할 수 있다.
- review base route: `local-G03`
- review grade scores: scope_coupling=1, state_concurrency=0, blast_irreversibility=0, evidence_diagnosis=1, verification_complexity=1
- review capability floor: official review minimum `cloud-G09`
- review final: `cloud-G09`, `CODE_REVIEW-cloud-G09.md`

## 구현 체크리스트

- [ ] 동일 PATH Go와 `GOROOT`에서 표준 라이브러리 preflight를 통과한 뒤 `go test -count=1 ./apps/node/internal/adapters/cli/status ./apps/node/cmd/node`를 통과시키고 실제 출력을 기록한다.
  - Go preflight: PASS (`crypto/internal/fips140cache` EXISTS)
  - Go package test: `iop/apps/node/internal/adapters/cli/status` FAIL, `iop/apps/node/cmd/node` PASS
  - FAIL 상세: `TestNormalizeQuotaSnapshotUnknownForMissingConflictAndParseFailure/missing` — `status = "available", want unknown`
  - plan 범위 결정에 따라 source 수정 없이 failure evidence를 review stub에 기록
- [x] Python policy/selector 회귀와 `py_compile`, `gofmt -d`, `git diff --check`를 다시 통과시켜 Go evidence와 같은 checkout의 최종 검증을 완성한다.
  - Python policy test: 5 tests OK
  - Python selector test: 32 tests OK
  - py_compile: OK
  - gofmt -d: OK
  - git diff --check: OK
- [x] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다.

### [REVIEW_REVIEW_REVIEW_API-1] Fresh Go 및 S04 Evidence Closure

#### 문제

`agent-task/m-agent-task-runtime-target-selector/02+01_quota_input/code_review_cloud_G09_2.log:137`의 필수 검증은 `/config/opt/go/src/crypto/internal/fips140cache` 누락으로 두 Go 패키지 setup 단계에서 실패한다. 따라서 `quota.go`, `quota_probe.go`와 새 Go 회귀의 컴파일·실행 evidence가 없다.

#### 해결 방법

PATH에서 처음 해석되는 `/config/.local/bin/go`와 `GOROOT=/config/opt/go` identity를 유지한다. 표준 라이브러리 source가 go1.26.2 binary와 일치하는지 preflight하고, 통과한 경우에만 fresh Go package tests와 Python/static 검증을 실행한다. preflight가 계속 실패하면 다른 toolchain으로 우회하지 않고 실제 출력과 동일 재개 조건을 review stub에 기록한다.

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

- [ ] repo source 파일 수정 없음 — host Go/GOROOT preflight와 fresh tests만 실행한다.
- [ ] `agent-task/m-agent-task-runtime-target-selector/02+01_quota_input/CODE_REVIEW-cloud-G09.md` — 실제 명령 출력과 blocker 또는 PASS evidence를 기록한다.

#### 테스트 작성

새 테스트는 작성하지 않는다. producer/command/selector 회귀가 이미 존재하며 이번 항목은 그 테스트가 실제 compiler/runtime에서 실행됐다는 evidence를 닫는다.

#### 중간 검증

```bash
command -v go && readlink -f "$(command -v go)" && go version && go env GOROOT
test -d "$(go env GOROOT)/src/crypto/internal/fips140cache"
go test -count=1 ./apps/node/internal/adapters/cli/status ./apps/node/cmd/node
```

기대 결과: 동일 Go/GOROOT identity에서 표준 라이브러리 preflight와 두 package test가 모두 PASS한다.

## 수정 파일 요약

| 파일 | 항목 |
|------|------|
| repo source 변경 없음 | REVIEW_REVIEW_REVIEW_API-1 |
| `agent-task/m-agent-task-runtime-target-selector/02+01_quota_input/CODE_REVIEW-cloud-G09.md` | REVIEW_REVIEW_REVIEW_API-1 evidence |

## 최종 검증

```bash
command -v go && readlink -f "$(command -v go)" && go version && go env GOROOT
test -d "$(go env GOROOT)/src/crypto/internal/fips140cache"
go test -count=1 ./apps/node/internal/adapters/cli/status ./apps/node/cmd/node
python3 -m unittest discover -s agent-ops/skills/project/orchestrate-agent-task-loop/tests -p 'test_execution_target*.py'
python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_select_execution_target.py -v
python3 -m py_compile agent-ops/skills/project/orchestrate-agent-task-loop/scripts/execution_target_policy.py agent-ops/skills/project/orchestrate-agent-task-loop/scripts/select_execution_target.py agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_execution_target_policy.py agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_select_execution_target.py
gofmt -d apps/node/internal/adapters/cli/status/quota.go apps/node/internal/adapters/cli/status/quota_test.go apps/node/cmd/node/quota_probe.go apps/node/cmd/node/quota_probe_test.go apps/node/cmd/node/main.go
git diff --check
```

기대 결과: Go/GOROOT source가 일치하고 fresh Go package tests, Python policy/selector tests, py_compile, gofmt, diff check가 모두 PASS한다. 외부 provider/credential은 호출하지 않는다.

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