<!-- task=m-iop-agent-chronos-extraction-decoupling/03+02_decouple plan=0 tag=REFACTOR -->

# IOP standalone Agent와 workflow surface 제거

## For the Implementing Agent

`CODE_REVIEW-cloud-G09.md`의 implementation-owned 섹션 작성은 필수다. 선행 transfer PASS와 bundle digest를 확인한 뒤 manifest의 remove action만 적용한다. 검증 출력과 구현 메모를 채워 active pair를 그대로 두고 review 준비 완료를 보고한다. 최종 판정·archive·`complete.log`는 code-review agent만 수행하며, 차단 시 질문·stop-file·상태 분류 없이 evidence 필드에 blocker와 재개 조건만 기록한다.

## Background

독립 acceptance bundle이 검증된 뒤 IOP는 standalone binary, host, task workflow/state/review/integration, local control, client process, 전용 config/proto/build/test/docs/UI source of truth를 제거해야 한다. Node가 계속 사용하는 generic runtime/provider 구현은 이 단계에서 삭제하지 않고 다음 `retain-node` plan이 non-Agent package로 이동할 수 있게 임시 호환 경계로 남긴다.

## Roadmap Targets

- Milestone: `agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-chronos-extraction-decoupling.md`
- Milestone link: [Milestone 문서](agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-chronos-extraction-decoupling.md)
- Task ids:
  - `decouple`: standalone binary/host/workflow/state/client/config/proto/build/document surface 제거
- Completion mode: check-on-pass

## Analysis

### Files Read

- `agent-roadmap/phase/automation-runtime-bridge/milestones/iop-agent-chronos-extraction-decoupling.md`
- `agent-roadmap/sdd/automation-runtime-bridge/iop-agent-chronos-extraction-decoupling/SDD.md`
- `agent-contract/index.md`
- `agent-contract/inner/agent-runtime.md`
- `agent-contract/inner/iop-agent-cli-runtime.md`
- `agent-spec/index.md`
- `agent-spec/runtime/iop-agent-cli-runtime.md`
- `agent-spec/runtime/edge-node-execution.md`
- `agent-ops/rules/project/rules.md`
- `agent-ops/rules/project/domain/agent/rules.md`
- `agent-ops/rules/project/domain/client/rules.md`
- `agent-ops/rules/project/domain/testing/rules.md`
- `Makefile`
- `README.md`
- `HANDOFF.md`
- `apps/client/Dockerfile`
- `apps/client/README.md`
- `apps/client/lib/client_home_page.dart`
- `apps/client/lib/main.dart`
- `apps/client/pubspec.yaml`
- `packages/flutter/iop_console/pubspec.yaml`
- `packages/flutter/iop_console/lib/src/iop_agent_panel.dart`
- `packages/flutter/iop_console/lib/src/iop_console_contract.dart`
- `packages/flutter/iop_console/lib/src/iop_console_shell.dart`
- `packages/flutter/iop_console/test/iop_console_shell_test.dart`
- `agent-ui/definition/index.md`
- `agent-ui/definition/views/index.md`
- `agent-ui/definition/views/agent/index.md`
- `agent-ui/definition/components/index.md`
- `agent-ui/definition/components/agent-panel/index.md`
- `agent-ui/definition/components/console-shell/index.md`

### SDD Criteria

- SDD 상태 `[승인됨]`, 잠금 `해제`; target S03 / Task `decouple`.
- Evidence Map은 removed-path/reference audit와 IOP clean build를 요구한다.
- 분류표의 `transfer 후 remove` 경로만 삭제하며 `retain-generic`인 `packages/go/agentruntime/**`, `packages/go/agentprovider/cli/**`, Node/Edge wire는 이 plan에서 보존한다.
- Flutter Agent view/component는 bundle evidence 후 active 정의에서 archive log로 이동하고 shell/navigation은 Agent section 없이 갱신한다.

### Verification Context

- Handoff 없음. predecessor `02+01_transfer_bundle`의 active/archived `complete.log`는 현재 missing이므로 구현을 시작할 수 없다.
- Local rules state usable. 적용 profile은 client/platform-common/testing이며 `make client-test`, `make client-build-web`, Go unit/build, Makefile/proto entrypoint 검증을 사용한다. agent 전용 local profile은 없어서 repository-native package tests로 보완한다.
- External provider, credential, device state는 이 task에서 사용하지 않는다. bundle/state payload를 다시 읽거나 task artifact로 복사하지 않는다.
- Go test cache는 대규모 삭제 회귀에서 허용하지 않으므로 `-count=1`을 사용한다.
- Confidence: high. deletion set은 predecessor manifest의 `iop_action=remove`와 tracked path 목록을 양방향 검사한다.

### Test Coverage Gaps

- 삭제 자체의 신규 unit test는 만들지 않는다.
- 기존 Go/Flutter tests를 갱신하고 removed-path audit, generated proto consistency, dependency tidy, UI navigation regression으로 대체한다.
- Docker build context 변경은 `make client-build-web`과 Dockerfile path scan으로 확인하되 Docker daemon 기반 image build는 local profile 필수가 아니다.

### Symbol References

- Remove: `iop-agent` command/daemon, `AgentTaskManager` workflow ownership, local `AgentLocalEnvelope`, `IopAgentPanel`, `IopConsoleSection.agent`, `IopCapabilityPack`, `iopDefaultCapabilityPack`.
- UI call sites: `apps/client/lib/main.dart`, `apps/client/lib/client_home_page.dart`, `packages/flutter/iop_console/lib/src/iop_console_shell.dart`, `packages/flutter/iop_console/test/iop_console_shell_test.dart`.
- Generic `agentruntime` and `agentprovider/cli` symbols are explicit exceptions and remain until `04+02,03_retain_node`.

### Split Judgment

- Stable child contract: transfer-verified `remove` assets are absent while generic Node runtime/provider remains buildable under its old path.
- Predecessor `02`: active/archived exact `complete.log` missing. PASS bundle digest and real-state evidence are mandatory.
- PASS evidence: manifest remove audit 0 residuals, IOP build/tests, Flutter tests/build, proto regeneration, dependency tidy.
- 다음 child가 generic package rename과 Node contract regression을 소유한다.

### Scope Rationale

- Chronos repository와 bundle payload는 수정하지 않는다.
- generic Node execution/provider source는 삭제·rename하지 않는다.
- Edge/Control Plane의 `domain agent`, `agent.status`, `agent.command` 운영 의미는 standalone Chronos workflow와 다른 현재 IOP control surface이므로 manifest가 remove로 분류하지 않는 한 유지한다.
- roadmap task 체크는 runtime completion event가 수행하고 이 plan은 roadmap 문서를 구현 중 수정하지 않는다.

### Final Routing

- `evaluation_mode=first-pass`, finalizer=`finalize-task-policy.sh`, mode=`pair`.
- Build closures 모두 true. Scores=`2,1,2,2,2`, grade=`G09`, base/route=`grade-boundary`, lane=`cloud`.
- Review scores=`2,1,2,2,2`, route=`official-review`, lane=`cloud`, grade=`G09`.
- `large_indivisible_context=false`; loop risk=`boundary_contract` (1); `review_rework_count=0`; `evidence_integrity_failure=false`; capability gap 없음.
- Canonical files: `PLAN-cloud-G09.md`, `CODE_REVIEW-cloud-G09.md`.

## Dependencies and Execution Order

1. `02+01_transfer_bundle`의 exact PASS `complete.log`와 bundle/state digest evidence를 확인한다. 현재 missing이다.
2. Go workflow/state와 standalone surfaces를 제거한다.
3. contract/spec/rules/build reference를 갱신한다.
4. UI 정의를 update/validate한 뒤 UI code와 dependency를 제거한다.
5. 전체 clean build/audit를 실행하고 generic exceptions만 남긴다.

## Implementation Checklist

- [ ] Refuse to delete source until predecessor `02+01_transfer_bundle` has an exact PASS `complete.log`, real-state evidence, and matching bundle digest.
- [ ] Delete every manifest `iop_action=remove` Go/config/proto/smoke asset while preserving only the explicitly classified generic runtime/provider paths for the next task.
- [ ] Remove standalone build targets and reconcile active contract/spec/domain/document source-of-truth entries through `update-contract`/`update-spec`; deindex and mark the legacy contract as transfer-reference-only for the handoff gate, regenerate proto, tidy dependencies, and retain only historical/roadmap receipt references.
- [ ] Remove `IopAgentPanel`, Agent rail/slot/capability dependencies, and related tests/docs; archive the active Agent view/component definitions via `update-agent-ui`, validate the remaining UI graph, and leave the pending console-shell milestone mapping intact.
- [ ] Run fresh Go/Flutter/build/reference audits and record zero unexpected residuals or Chronos application imports.
- [ ] Fill implementation-owned sections in CODE_REVIEW-*-G??.md with actual implementation notes and verification output.

### [REFACTOR-1] Standalone Go workflow/state/runtime surface 삭제

**Problem**

`SDD.md:117-119`의 transfer-after-remove source가 IOP application source of truth로 남아 있어 ownership이 중복된다.

```text
# agent-roadmap/sdd/.../SDD.md:117-119
apps/agent/** and workflow/state packages -> transfer 후 remove
```

**Solution**

predecessor manifest의 exact `remove` rows와 이 plan의 tracked file claims를 교차 확인한 뒤 `apps/agent`, workflow/config/policy/state/workspace/catalog packages, local-control proto/config/smoke를 삭제한다. `agentruntime`과 `agentprovider/cli`는 건드리지 않는다.

```text
# after
apps/agent: absent
packages/go/agenttask: absent
packages/go/agentruntime: present until retain-node
```

**Modified Files and Checklist**

- [ ] Delete every REFACTOR-1 path in Modified Files Summary and no other source path.
- [ ] Preserve `packages/go/agentruntime/**` and `packages/go/agentprovider/cli/**`.

**Test Strategy**

- 신규 test는 생략한다. removed-path audit와 full fresh Go test가 회귀 oracle이다.

**Verification**

- `awk -F '\t' 'NR>1 && $5=="remove" {print $1}' scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv | while IFS= read -r path; do test ! -e "$path" || { echo "residual:$path"; exit 1; }; done`
- `test -d packages/go/agentruntime && test -d packages/go/agentprovider/cli`

### [REFACTOR-2] Build, proto, contract, spec, rule, document 정리

**Problem**

binary/source를 지워도 Makefile target, proto generation, dependency, active contract/spec/domain 문서가 남으면 IOP가 계속 standalone ownership을 광고한다.

```make
# Makefile:1,40-43,119-145
build-agent
test-iop-agent-*
```

**Solution**

agent build/smoke/proto entry를 제거하고 `go mod tidy`로 orphan dependency를 정리한다. standalone spec/domain 문서는 삭제하고 contract는 active index에서 제거한 뒤 `transfer-reference-only` banner와 bundle digest placeholder만 남겨 handoff gate가 최종 삭제하게 한다. README/HANDOFF/rules는 bundle receipt 및 downstream ownership reference만 남긴다. shared runtime contract/spec은 다음 retain-node plan이 neutral path로 갱신한다.

```text
# after
Makefile has no build-agent or test-iop-agent-* target.
agent-contract/index.md has no iop.agent-cli-runtime active row.
agent-contract/inner/iop-agent-cli-runtime.md is unindexed transfer-reference-only until handoff.
```

**Modified Files and Checklist**

- [ ] Update/delete every REFACTOR-2 path in Modified Files Summary.
- [ ] Keep Milestone/SDD and transfer receipt references as governance evidence, not active runtime instructions.

**Test Strategy**

- generated proto consistency, `go mod tidy` idempotency, active index link checks를 수행한다.

**Verification**

- `make proto && go mod tidy && git diff --check`
- `test -z "$(rg --sort path -n 'build-agent|test-iop-agent|proto/iop/agent\.proto|iop\.agent-cli-runtime' Makefile agent-contract/index.md agent-spec/index.md agent-ops/rules/project README.md apps/client/README.md)"`

### [REFACTOR-3] Flutter Agent surface와 agent-ui 정의 제거

**Problem**

`IopAgentPanel`과 rail enum/slot, `agent_shell` path dependency, capability pack, Docker copy가 standalone UI를 계속 노출한다.

```dart
// packages/flutter/iop_console/lib/src/iop_console_shell.dart:7-15,135
agent,
widget.agent ?? IopAgentPanel(...)
```

**Solution**

Agent enum/rail/slot/default panel과 capability-only contract를 제거하고 surviving console sections를 유지한다. direct/path dependencies와 Docker copy를 제거하고 lockfile을 재생성한다. `update-agent-ui`로 Agent view/component를 exact archive log로 이동하고 indexes를 정리하며 console-shell은 Milestone pending `계획` 상태를 유지한다. `validate-agent-ui` PASS 후 code changes를 검증한다.

```dart
// after
enum IopConsoleSection { overview, edges, nodes, runtime, executionLogs, maintenance, settings }
```

**Modified Files and Checklist**

- [ ] Update/delete every REFACTOR-3 path in Modified Files Summary.
- [ ] Do not manually edit `agent-ui/.sync-state.json`; preserve its milestone pending mapping.

**Test Strategy**

- Agent rail absence와 remaining rail navigation을 Flutter widget test로 갱신한다.
- `make client-test`와 `make client-build-web`을 실행한다.

**Verification**

- `make client-test`
- `make client-build-web`
- `test -z "$(rg --sort path -n 'IopAgentPanel|IopConsoleSection\.agent|agent_shell|iopDefaultCapabilityPack|IopCapabilityPack' apps/client packages/flutter/iop_console agent-ui/definition --glob '!agent-ui/definition/archive/**')"`

### [REFACTOR-4] 삭제 completeness와 clean build 증거

**Problem**

대규모 삭제 뒤 manifest 외 잔존 참조, Chronos import, generated drift를 한 audit로 닫아야 한다.

```text
# SDD.md:88
removed-path/reference audit + IOP clean build
```

**Solution**

fresh full tests와 deterministic residual scan의 실제 output을 `decoupling-audit.log`에 저장한다. generic old-path exception은 exact 두 prefix로 제한하고 다음 task owner를 함께 기록한다.

```text
# after: decoupling-audit.log
remove_residuals=0
chronos_imports=0
generic_exceptions=packages/go/agentruntime,packages/go/agentprovider/cli
```

**Modified Files and Checklist**

- [ ] `agent-task/m-iop-agent-chronos-extraction-decoupling/03+02_decouple/decoupling-audit.log` — exact command/output and exception list.
- [ ] `agent-task/m-iop-agent-chronos-extraction-decoupling/03+02_decouple/CODE_REVIEW-cloud-G09.md` — actual evidence.

**Test Strategy**

- `go test -count=1 ./...` fresh full suite, Flutter tests/build, proto/tidy idempotency를 사용한다.

**Verification**

- `go test -count=1 ./...`
- `test -z "$(rg --sort path -n 'git\.toki-labs\.com/toki/chronos|/config/workspace/chronos' apps packages cmd proto configs)"`
- `git diff --check`

## Modified Files Summary

| File | Item |
|------|------|
| `apps/agent/cmd/agent/main.go` | REFACTOR-1 |
| `apps/agent/cmd/agent/main_test.go` | REFACTOR-1 |
| `apps/agent/internal/bootstrap/module.go` | REFACTOR-1 |
| `apps/agent/internal/bootstrap/module_test.go` | REFACTOR-1 |
| `apps/agent/internal/clientprocess/manager.go` | REFACTOR-1 |
| `apps/agent/internal/clientprocess/manager_test.go` | REFACTOR-1 |
| `apps/agent/internal/clientprocess/process.go` | REFACTOR-1 |
| `apps/agent/internal/clientprocess/store.go` | REFACTOR-1 |
| `apps/agent/internal/clientprocess/store_test.go` | REFACTOR-1 |
| `apps/agent/internal/clientprocess/types.go` | REFACTOR-1 |
| `apps/agent/internal/command/config_test.go` | REFACTOR-1 |
| `apps/agent/internal/command/root.go` | REFACTOR-1 |
| `apps/agent/internal/command/root_test.go` | REFACTOR-1 |
| `apps/agent/internal/command/service.go` | REFACTOR-1 |
| `apps/agent/internal/command/task_loop.go` | REFACTOR-1 |
| `apps/agent/internal/command/task_loop_test.go` | REFACTOR-1 |
| `apps/agent/internal/host/host.go` | REFACTOR-1 |
| `apps/agent/internal/host/host_test.go` | REFACTOR-1 |
| `apps/agent/internal/host/ports.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/client_operations.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/client_operations_test.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/ledger.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/ledger_test.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/peercred.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/peercred_darwin.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/peercred_linux.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/peercred_unsupported.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/protocol.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/protocol_test.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/server.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/server_test.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/service.go` | REFACTOR-1 |
| `apps/agent/internal/localcontrol/service_test.go` | REFACTOR-1 |
| `apps/agent/internal/projectlog/record.go` | REFACTOR-1 |
| `apps/agent/internal/projectlog/record_test.go` | REFACTOR-1 |
| `apps/agent/internal/projectlog/sink.go` | REFACTOR-1 |
| `apps/agent/internal/projectlog/sink_test.go` | REFACTOR-1 |
| `apps/agent/internal/projectlog/store.go` | REFACTOR-1 |
| `apps/agent/internal/projectlog/store_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/cutover_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/evidence.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/evidence_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/integration.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/integration_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/module.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/module_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/parity.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/parity_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/provider.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/provider_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/recovery.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/recovery_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/review.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/review_test.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/testdata/parity.yaml` | REFACTOR-1 |
| `apps/agent/internal/taskloop/workflow.go` | REFACTOR-1 |
| `apps/agent/internal/taskloop/workflow_test.go` | REFACTOR-1 |
| `configs/iop-agent.local.example.yaml` | REFACTOR-1 |
| `configs/iop-agent.providers.yaml` | REFACTOR-1 |
| `configs/iop-agent.runtime.yaml` | REFACTOR-1 |
| `packages/go/agentconfig/catalog.go` | REFACTOR-1 |
| `packages/go/agentconfig/catalog_test.go` | REFACTOR-1 |
| `packages/go/agentconfig/default_catalog_test.go` | REFACTOR-1 |
| `packages/go/agentconfig/load.go` | REFACTOR-1 |
| `packages/go/agentconfig/runtime_config.go` | REFACTOR-1 |
| `packages/go/agentconfig/runtime_config_test.go` | REFACTOR-1 |
| `packages/go/agentconfig/testdata/dangling-model.yaml` | REFACTOR-1 |
| `packages/go/agentconfig/testdata/dangling-profile.yaml` | REFACTOR-1 |
| `packages/go/agentconfig/testdata/duplicate-provider.yaml` | REFACTOR-1 |
| `packages/go/agentconfig/testdata/invalid-capability.yaml` | REFACTOR-1 |
| `packages/go/agentconfig/testdata/valid.yaml` | REFACTOR-1 |
| `packages/go/agentconfig/validate.go` | REFACTOR-1 |
| `packages/go/agentconfig/watcher.go` | REFACTOR-1 |
| `packages/go/agentguard/admission_integration_test.go` | REFACTOR-1 |
| `packages/go/agentguard/blocker.go` | REFACTOR-1 |
| `packages/go/agentguard/blocker_test.go` | REFACTOR-1 |
| `packages/go/agentguard/canonical.go` | REFACTOR-1 |
| `packages/go/agentguard/containment.go` | REFACTOR-1 |
| `packages/go/agentguard/gitmeta.go` | REFACTOR-1 |
| `packages/go/agentguard/notification.go` | REFACTOR-1 |
| `packages/go/agentguard/permit.go` | REFACTOR-1 |
| `packages/go/agentguard/types.go` | REFACTOR-1 |
| `packages/go/agentpolicy/decision.go` | REFACTOR-1 |
| `packages/go/agentpolicy/evaluator.go` | REFACTOR-1 |
| `packages/go/agentpolicy/evaluator_test.go` | REFACTOR-1 |
| `packages/go/agentpolicy/failure_policy.go` | REFACTOR-1 |
| `packages/go/agentpolicy/failure_policy_test.go` | REFACTOR-1 |
| `packages/go/agentpolicy/quota.go` | REFACTOR-1 |
| `packages/go/agentprovider/catalog/discovery.go` | REFACTOR-1 |
| `packages/go/agentprovider/catalog/discovery_test.go` | REFACTOR-1 |
| `packages/go/agentprovider/catalog/factory.go` | REFACTOR-1 |
| `packages/go/agentprovider/catalog/lifecycle_conformance_test.go` | REFACTOR-1 |
| `packages/go/agentprovider/catalog/readiness.go` | REFACTOR-1 |
| `packages/go/agentprovider/catalog/redact.go` | REFACTOR-1 |
| `packages/go/agentprovider/catalog/redact_test.go` | REFACTOR-1 |
| `packages/go/agentstate/store.go` | REFACTOR-1 |
| `packages/go/agentstate/store_test.go` | REFACTOR-1 |
| `packages/go/agenttask/confinement_dispatch_test.go` | REFACTOR-1 |
| `packages/go/agenttask/dependency.go` | REFACTOR-1 |
| `packages/go/agenttask/dependency_test.go` | REFACTOR-1 |
| `packages/go/agenttask/dispatch.go` | REFACTOR-1 |
| `packages/go/agenttask/failure_continuation_test.go` | REFACTOR-1 |
| `packages/go/agenttask/followup.go` | REFACTOR-1 |
| `packages/go/agenttask/integration.go` | REFACTOR-1 |
| `packages/go/agenttask/integration_queue.go` | REFACTOR-1 |
| `packages/go/agenttask/integration_queue_test.go` | REFACTOR-1 |
| `packages/go/agenttask/intent.go` | REFACTOR-1 |
| `packages/go/agenttask/manager.go` | REFACTOR-1 |
| `packages/go/agenttask/manager_integration_test.go` | REFACTOR-1 |
| `packages/go/agenttask/manager_test.go` | REFACTOR-1 |
| `packages/go/agenttask/ports.go` | REFACTOR-1 |
| `packages/go/agenttask/reconcile.go` | REFACTOR-1 |
| `packages/go/agenttask/review.go` | REFACTOR-1 |
| `packages/go/agenttask/review_test.go` | REFACTOR-1 |
| `packages/go/agenttask/scheduler.go` | REFACTOR-1 |
| `packages/go/agenttask/scheduler_test.go` | REFACTOR-1 |
| `packages/go/agenttask/state_machine.go` | REFACTOR-1 |
| `packages/go/agenttask/state_machine_test.go` | REFACTOR-1 |
| `packages/go/agenttask/test_support_test.go` | REFACTOR-1 |
| `packages/go/agenttask/types.go` | REFACTOR-1 |
| `packages/go/agenttask/workflow.go` | REFACTOR-1 |
| `packages/go/agenttask/workflow_evidence.go` | REFACTOR-1 |
| `packages/go/agenttask/workflow_evidence_test.go` | REFACTOR-1 |
| `packages/go/agentworkspace/change_set.go` | REFACTOR-1 |
| `packages/go/agentworkspace/confinement.go` | REFACTOR-1 |
| `packages/go/agentworkspace/confinement_darwin.go` | REFACTOR-1 |
| `packages/go/agentworkspace/confinement_linux.go` | REFACTOR-1 |
| `packages/go/agentworkspace/confinement_test.go` | REFACTOR-1 |
| `packages/go/agentworkspace/confinement_unsupported.go` | REFACTOR-1 |
| `packages/go/agentworkspace/integrator.go` | REFACTOR-1 |
| `packages/go/agentworkspace/integrator_test.go` | REFACTOR-1 |
| `packages/go/agentworkspace/overlay.go` | REFACTOR-1 |
| `packages/go/agentworkspace/overlay_test.go` | REFACTOR-1 |
| `packages/go/agentworkspace/snapshot.go` | REFACTOR-1 |
| `proto/gen/iop/agent.pb.go` | REFACTOR-1 |
| `proto/iop/agent.proto` | REFACTOR-1 |
| `scripts/e2e-iop-agent-logged-smoke.sh` | REFACTOR-1 |
| `scripts/fixtures/iop-agent-smoke-manifest.schema.json` | REFACTOR-1 |
| `Makefile` | REFACTOR-2 |
| `README.md` | REFACTOR-2 |
| `HANDOFF.md` | REFACTOR-2 |
| `go.mod` | REFACTOR-2 |
| `go.sum` | REFACTOR-2 |
| `agent-contract/index.md` | REFACTOR-2 |
| `agent-contract/inner/iop-agent-cli-runtime.md` | REFACTOR-2 |
| `agent-spec/index.md` | REFACTOR-2 |
| `agent-spec/runtime/iop-agent-cli-runtime.md` | REFACTOR-2 |
| `agent-ops/rules/project/rules.md` | REFACTOR-2 |
| `agent-ops/rules/project/domain/agent/rules.md` | REFACTOR-2 |
| `agent-ops/rules/project/domain/client/rules.md` | REFACTOR-2 |
| `agent-ops/rules/project/domain/testing/rules.md` | REFACTOR-2 |
| `scripts/readability_baseline.json` | REFACTOR-2 |
| `scripts/readability_read_sets.json` | REFACTOR-2 |
| `apps/client/Dockerfile` | REFACTOR-3 |
| `apps/client/README.md` | REFACTOR-3 |
| `apps/client/lib/client_home_page.dart` | REFACTOR-3 |
| `apps/client/lib/main.dart` | REFACTOR-3 |
| `apps/client/pubspec.yaml` | REFACTOR-3 |
| `apps/client/pubspec.lock` | REFACTOR-3 |
| `packages/flutter/iop_console/lib/src/iop_agent_panel.dart` | REFACTOR-3 |
| `packages/flutter/iop_console/lib/src/iop_console_contract.dart` | REFACTOR-3 |
| `packages/flutter/iop_console/lib/src/iop_console_shell.dart` | REFACTOR-3 |
| `packages/flutter/iop_console/pubspec.yaml` | REFACTOR-3 |
| `packages/flutter/iop_console/test/iop_console_shell_test.dart` | REFACTOR-3 |
| `agent-ui/definition/index.md` | REFACTOR-3 |
| `agent-ui/definition/views/index.md` | REFACTOR-3 |
| `agent-ui/definition/views/agent/index.md` | REFACTOR-3 |
| `agent-ui/definition/components/index.md` | REFACTOR-3 |
| `agent-ui/definition/components/agent-panel/index.md` | REFACTOR-3 |
| `agent-ui/definition/components/console-shell/index.md` | REFACTOR-3 |
| `agent-ui/definition/archive/views/agent/index.log` | REFACTOR-3 |
| `agent-ui/definition/archive/components/agent-panel/index.log` | REFACTOR-3 |
| `agent-task/m-iop-agent-chronos-extraction-decoupling/03+02_decouple/decoupling-audit.log` | REFACTOR-4 |
| `agent-task/m-iop-agent-chronos-extraction-decoupling/03+02_decouple/CODE_REVIEW-cloud-G09.md` | REFACTOR-4 |

## Final Verification

1. Confirm the exact predecessor `02+01_transfer_bundle/complete.log`, real-state evidence, and matching bundle digest.
2. `awk -F '\t' 'NR>1 && $5=="remove" {print $1}' scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv | while IFS= read -r path; do test ! -e "$path" || { echo "residual:$path"; exit 1; }; done`
3. `test -d packages/go/agentruntime && test -d packages/go/agentprovider/cli`
4. `make proto && go mod tidy && git diff --check`
5. `go test -count=1 ./...`
6. `make client-test`
7. `make client-build-web`
8. `test -z "$(rg --sort path -n 'IopAgentPanel|IopConsoleSection\.agent|agent_shell|iopDefaultCapabilityPack|IopCapabilityPack' apps/client packages/flutter/iop_console agent-ui/definition --glob '!agent-ui/definition/archive/**')"`
9. `test -z "$(rg --sort path -n 'build-agent|test-iop-agent|proto/iop/agent\.proto|iop\.agent-cli-runtime' Makefile agent-contract/index.md agent-spec/index.md agent-ops/rules/project README.md apps/client/README.md)"`
10. `test -z "$(rg --sort path -n 'git\.toki-labs\.com/toki/chronos|/config/workspace/chronos' apps packages cmd proto configs)"`

All Go tests are fresh; cache is not acceptable.

After completing all code changes, fill implementation-owned sections in `CODE_REVIEW-*-G??.md`.
