<!-- task=m-iop-agent-chronos-extraction-decoupling/08+07_cleanup_build_contract plan=3 tag=REVIEW_REFACTOR milestone-task=decouple -->

# Correct the Root README D04 Ownership Boundary

## For the Implementing Agent

Filling the implementation-owned sections of `CODE_REVIEW-cloud-G04.md` is mandatory. Make only the scoped documentation correction, run every verification command exactly, paste actual output, keep the active pair in place, and report ready for review. Finalization belongs only to the code-review agent. If blocked, record the exact blocker, attempted commands/output, and resume condition in implementation-owned evidence fields; do not ask the user, call user-input tools, create control-plane stop files, classify the next state, archive logs, or write `complete.log`.

## Background

The prior implementation removed the standalone build, active routing, spec, and domain rule, but its root README rewrite preserved semantically equivalent IOP ownership of CLI-agent, workspace/session/agent metadata, specialized-agent, and terminal/remote-control surfaces. That conflicts with approved D04 and lets the exact-phrase blacklist pass an incorrect architecture statement. This follow-up corrects only the root README responsibility contract and its deterministic documentation oracle.

## Archive Evidence Snapshot

- The current failed pair will be preserved as `plan_local_G07_2.log` and `code_review_cloud_G07_2.log` in this task directory.
- Verdict: FAIL. Required: 1; Suggested: 0; Nit: 0. `README.md:28,54,108,115,144,207,265` still assigns agent/workspace/terminal/remote-control responsibility to IOP.
- Fresh reviewer evidence reproduced predecessor, toolchain, proto, tidy, local build, corrected manifest/contract digest, active-reference, exact stale-phrase, full `go test -count=1 ./...`, and `git diff --check` success. The defect is the narrow semantic oracle, not fabricated command output.
- This pair remains contribution evidence for SDD S03 and `milestone-task=decouple`; it does not assert Roadmap Task completion. The implementer does not reread earlier archived pair 0/1 by default.

## Analysis

### Files Read

- `agent-task/m-iop-agent-chronos-extraction-decoupling/08+07_cleanup_build_contract/PLAN-local-G07.md`
- `agent-task/m-iop-agent-chronos-extraction-decoupling/08+07_cleanup_build_contract/CODE_REVIEW-cloud-G07.md`
- `agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/07+06_remove_go_surface/complete.log`
- `agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/16_manifest_baseline_repair/complete.log`
- `agent-roadmap/current.md`
- `agent-roadmap/phase/automation-runtime-bridge/PHASE.md`
- `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`
- `README.md`
- `HANDOFF.md`
- `agent-contract/index.md`
- `agent-contract/inner/iop-agent-cli-runtime.md`
- `agent-spec/index.md`
- `agent-ops/rules/project/rules.md`
- `agent-ops/rules/project/domain/platform-common/rules.md`
- `agent-ops/rules/project/domain/testing/rules.md`
- `agent-test/local/rules.md`
- `agent-test/local/platform-common-smoke.md`
- `agent-test/local/testing-smoke.md`

### SDD Criteria

- SDD: `agent-roadmap/sdd/automation-runtime-bridge/iop-agent-chronos-extraction-decoupling/SDD.md`; status `[승인됨]`; lock released; no active `USER_REVIEW.md`.
- Header scope remains `milestone-task=decouple`; targeted scenario is S03.
- S03 requires removed-path/reference audit plus a clean IOP build, and D04 prohibits IOP-owned agent, workspace/tool, terminal/PTY, remote-control, or Chronos connection surfaces.
- The implementation checklist therefore makes the provider-only ownership statement and semantic forbidden scan part of one completion unit. Existing archived build/test evidence remains valid because this follow-up changes only `README.md`.

### Verification Context

- No separate verification handoff was supplied. Repository-native evidence came from the approved Milestone/SDD, the failed review finding, the current root README, and fresh local commands recorded in `code_review_cloud_G07_2.log` after archive.
- Preconditions: the exact predecessor PASS remains present; corrected manifest SHA-256 is `d8598134dee99d96fc05a045091dd3d8932d4708d2c980c2a78c8b11825d2ccf`; the transferred contract digest remains `2a009a72d21fc09d62250f6b61fd3f4317f8bb46abfe2cd7ef1dd1e12f616a07`.
- No external runner, credential, service, device, or long-running runtime is needed. Verification is deterministic local text assertion plus `git diff --check`.
- Confidence: high. The failing claims and required D04 replacement are literal in active documents.

### Test Coverage Gaps

- No executable behavior changes, so no code test file is added.
- The prior exact-phrase blacklist missed semantically equivalent stale statements. The follow-up adds positive ownership assertions and exact forbidden semantic fragments in the plan verification contract.

### Symbol References

- No code symbols change. Documentation responsibility anchors to replace are `Specialized Agent`, `specialized domain agent`, `Agent bootstrap/enrollment`, `IOP Automation Domain`, the Edge CLI-Agent ownership sentence, IOP-owned workspace/session/agent metadata, and the IOP terminal/remote-control sentence.

### Split Judgment

- Keep one compact follow-up: the README rewrite and its semantic oracle form one documentation contract and independently pass without changing code.
- Encoded predecessor 07 is satisfied by `agent-task/archive/2026/08/m-iop-agent-chronos-extraction-decoupling/07+06_remove_go_surface/complete.log` with one final PASS.

### Scope Rationale

- Modify only `README.md` and the implementation-owned active review evidence file.
- Exclude Flutter/client/agent-ui cleanup owned by task 09, shared runtime/CLI provider and source-symbol disposal owned by task 10, receipt work owned by tasks 13-15, `HANDOFF.md`, contracts, specs, rules, Go source, generated files, and roadmap state.
- Retained CLI provider terminology that describes the still-present transitional implementation remains task 10 scope; this follow-up removes only claims that IOP owns agent/workspace/tool/terminal/remote-control product responsibilities.

### Final Routing

- `evaluation_mode=isolated-reassessment`; `finalizer=finalize-task-policy.sh`; `finalizer_mode=pair`.
- Build closures: scope/context/verification/evidence/ownership/decision all `true`; grade scores `1,0,1,1,1`; grade `G04`; base/route `local-fit`; lane `local`; filename `PLAN-local-G04.md`.
- Review closures: all `true`; grade scores `1,0,1,1,1`; grade `G04`; route `official-review`; lane `cloud`; filename `CODE_REVIEW-cloud-G04.md`.
- `large_indivisible_context=false`; positive loop risk `boundary_contract`, count `1`; `review_rework_count=1`; `evidence_integrity_failure=false`; risk/recovery boundary `false`; capability gap not observed.

## Implementation Checklist

- [ ] Rewrite the root README to state the D04 provider-only IOP boundary, remove the reviewed agent/workspace/tool/terminal/remote-control ownership claims, and pass positive plus forbidden-semantic assertions.
- [ ] Run deterministic README boundary checks and `git diff --check` without changing any excluded file.
- [ ] Fill implementation-owned sections in CODE_REVIEW-*-G??.md with actual implementation notes and verification output.

### [REVIEW_REFACTOR-1] Replace Stale README Ownership with D04

**Problem**

`README.md:108` still says Edge must handle CLI Agent execution, and `README.md:265` assigns terminal/remote control to IOP native protocol. The same stale product boundary appears at lines 28, 54, 65-68, 91, 113-115, 140-146, and 207.

```text
# README.md:108,265
Edge는 모델 서빙과 CLI Agent 실행을 모두 처리할 수 있어야 한다.
터미널/원격 제어 기능은 IOP native protocol과 정책/audit 계층에서 다룬다.
```

**Solution**

Rewrite the overview, architecture diagram, Control Plane/Edge responsibility lists, domain-agent section, automation-domain description, metadata boundary, and native-protocol note so the root document consistently says:

```text
IOP는 external inference API와 model/provider/device execution, cancel, status, usage, lifecycle만 소유한다.
agent, workspace/tool, terminal/PTY, remote host control은 독립 Chronos Server와 Chronos Node가 소유하며 IOP에는 해당 bridge, API, proto, config, target registry 또는 control hook을 두지 않는다.
```

Describe external agents or automation tools only as ordinary inference API clients, never as Edge/Node-managed agent or terminal surfaces. Do not remove or rename transitional code/package symbols reserved for task 10.

**Modified Files and Checklist**

- [ ] `README.md` — make every root architecture and responsibility statement conform to D04.

**Test Strategy**

Do not add a test file because this is a root-document contract correction. Use deterministic positive assertions and forbidden semantic fragments that directly cover the reviewed failure.

**Verification**

- `python3 -c 'from pathlib import Path; text=Path("README.md").read_text(); expected=["IOP는 external inference API와 model/provider/device execution, cancel, status, usage, lifecycle만 소유한다.", "agent, workspace/tool, terminal/PTY, remote host control은 독립 Chronos Server와 Chronos Node가 소유하며 IOP에는 해당 bridge, API, proto, config, target registry 또는 control hook을 두지 않는다."]; forbidden=["Edge는 모델 서빙과 CLI Agent 실행", "터미널/원격 제어 기능은 IOP", "IOP 고유의 workspace, session, agent", "Agent bootstrap/enrollment", "specialized domain agent", "IOP Automation Domain"]; assert all(text.count(x)==1 for x in expected); assert not any(x in text for x in forbidden)'`
- `bash -c 'set +e; rg --sort path -n "$1" README.md; rc=$?; set -e; test "$rc" -eq 1' _ 'Edge는 모델 서빙과 CLI Agent 실행|터미널/원격 제어 기능은 IOP|IOP 고유의 workspace, session, agent|Agent bootstrap/enrollment|[Ss]pecialized (Agent|domain agent)|IOP Automation Domain'`

## Modified Files Summary

| File | Item |
|------|------|
| `README.md` | REVIEW_REFACTOR-1 |
| `agent-task/m-iop-agent-chronos-extraction-decoupling/08+07_cleanup_build_contract/CODE_REVIEW-cloud-G04.md` | REVIEW_REFACTOR-1 |

## Final Verification

1. `python3 -c 'from pathlib import Path; text=Path("README.md").read_text(); expected=["IOP는 external inference API와 model/provider/device execution, cancel, status, usage, lifecycle만 소유한다.", "agent, workspace/tool, terminal/PTY, remote host control은 독립 Chronos Server와 Chronos Node가 소유하며 IOP에는 해당 bridge, API, proto, config, target registry 또는 control hook을 두지 않는다."]; forbidden=["Edge는 모델 서빙과 CLI Agent 실행", "터미널/원격 제어 기능은 IOP", "IOP 고유의 workspace, session, agent", "Agent bootstrap/enrollment", "specialized domain agent", "IOP Automation Domain"]; assert all(text.count(x)==1 for x in expected); assert not any(x in text for x in forbidden)'`
2. `bash -c 'set +e; rg --sort path -n "$1" README.md; rc=$?; set -e; test "$rc" -eq 1' _ 'Edge는 모델 서빙과 CLI Agent 실행|터미널/원격 제어 기능은 IOP|IOP 고유의 workspace, session, agent|Agent bootstrap/enrollment|[Ss]pecialized (Agent|domain agent)|IOP Automation Domain'`
3. `test "$(sha256sum scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv | awk '{print $1}')" = d8598134dee99d96fc05a045091dd3d8932d4708d2c980c2a78c8b11825d2ccf && test "$(sha256sum agent-contract/inner/iop-agent-cli-runtime.md | awk '{print $1}')" = 2a009a72d21fc09d62250f6b61fd3f4317f8bb46abfe2cd7ef1dd1e12f616a07`
4. `git diff --check`

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