<!-- task=m-iop-agent-chronos-extraction-decoupling/01_asset_universe plan=2 tag=REVIEW_TEST -->

# Complete the Fixed-Revision Agent Asset Universe

## For the Implementing Agent

Filling the implementation-owned sections of `CODE_REVIEW-cloud-G06.md` is mandatory. Run every verification command, record actual notes and 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 first asset-universe attempt captured the 211 files under the explicit fixed-revision roots but omitted 82 active reference paths that the plan required to merge into the universe. It also described a semantic `ProviderTunnelRequest.Operation` addition as whitespace-only drift. This follow-up completes the union and replaces the invalid content-equality claim with deterministic fixed-revision, active-reference, and drift-path coverage evidence.

## Archive Evidence Snapshot

- Current loop evidence after finalization: `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/plan_local_G03_1.log` and `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/code_review_cloud_G03_1.log`.
- Verdict: FAIL. Findings: Required=2, Suggested=0, Nit=0.
- Required fixes: add the 82 missing active reference paths to `scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv`, and replace the false cosmetic-drift claim with accurate semantic-drift evidence.
- Fresh review evidence: the planned union reported `missing_count=82`, `orphan_count=0`; the fixed-revision content comparison exited 1 because `packages/go/agentruntime/types.go` adds `ProviderTunnelRequest.Operation`.
- Roadmap carryover: this child remains a prerequisite input for S01/`inventory`; it must not claim Roadmap Task completion or classify dispositions owned by children 02–03.

## Analysis

### Files Read

- `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/PLAN-local-G03.md`
- `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/CODE_REVIEW-cloud-G03.md`
- `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/plan_local_G06_0.log`
- `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/code_review_cloud_G06_0.log`
- `scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv`
- `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`
- `agent-spec/runtime/iop-agent-cli-runtime.md`
- `agent-ops/rules/project/domain/testing/rules.md`
- `agent-test/local/rules.md`
- `agent-test/local/testing-smoke.md`
- `packages/go/agentruntime/types.go`
- `Makefile`
- `apps/client/lib/client_home_page.dart`
- `apps/node/internal/node/runtime_bridge.go`

### SDD Criteria

- SDD: `agent-roadmap/sdd/automation-runtime-bridge/iop-agent-chronos-extraction-decoupling/SDD.md`; status `[승인됨]`; lock released.
- Targeted scenario/task: S01 / `inventory`.
- Evidence Map input: source revision, import graph, disposition audit, and a manifest with no unclassified or duplicated active assets.
- This child provides only S01's complete deterministic universe. Disposition and final bidirectional closure remain encoded dependencies 02–03, so this plan intentionally omits `Roadmap Targets`.

### Verification Context

- No external handoff was supplied. Repository-native fallback used the approved revision `3155be0e275437a8eedc1aa93497955a7d30465b`, the exact explicit asset roots from the current plan, and the deterministic active-reference search carried by child 03.
- Local preflight succeeded: the module is `/config/workspace/iop-s1/go.mod`; no external service, credential, provider, daemon, or `iop-agent` execution is required.
- Fresh union evidence found 82 missing manifest paths and zero orphan paths. The 211 present rows have the exact seven-column header, deterministic path ordering, and no duplicate paths.
- Fresh drift evidence found `packages/go/agentruntime/types.go`; its current diff adds `ProviderTunnelRequest.Operation`, so content equality is not a valid pass condition for this path-universe child.
- Confidence: high. The exact union and bidirectional `comm` checks are deterministic against the current checkout and fixed revision.

### Test Coverage Gaps

- No product behavior changes. Go/Flutter tests are not required for a TSV-only inventory correction.
- The prior verification did not cover the planned active-reference union. This follow-up adds schema, ordering, duplicate, missing, orphan, and current-drift-path coverage checks.

### Symbol References

- No symbols are renamed or removed. `ProviderTunnelRequest.Operation` is review evidence only and must not be modified in this child.

### Split Judgment

- This remains the compact `01_asset_universe` boundary. Its stable contract is one deterministic TSV row per fixed-revision asset or active reference, with no disposition classification.
- PASS evidence is exact schema/order, `missing=0`, `orphan=0`, `duplicate=0`, and inclusion of every current semantic-drift path.
- Children `02+01_disposition` and `03+02_inventory_closure` remain downstream and must not be edited here.

### Scope Rationale

- Included: `scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv` and implementation evidence in the active review stub.
- Excluded: product source changes, disposition values, bundle layout decisions, source removal, Chronos writes, and Roadmap completion.
- Existing unrelated dirty worktree changes remain untouched.

### Final Routing

- `evaluation_mode=isolated-reassessment`; finalizer=`finalize-task-policy.sh`; mode=`pair`.
- Build closures are all true. Scores=`2,0,1,2,1`, grade=`G06`, base=`local-fit`, route=`recovery-boundary`, lane=`cloud`.
- Review closures are all true. Scores=`2,0,1,2,1`, grade=`G06`, route=`official-review`, lane=`cloud`.
- `large_indivisible_context=false`; positive loop risks=`boundary_contract,structured_interpretation` (2); `review_rework_count=1`; `evidence_integrity_failure=true`; no capability gap.
- Canonical files: `PLAN-cloud-G06.md`, `CODE_REVIEW-cloud-G06.md`.

## Implementation Checklist

- [ ] Regenerate the TSV from the exact union of the approved-revision asset roots and deterministic active-reference scan, adding every path once with accurate kind and provenance while leaving disposition fields pending.
- [ ] Replace the content-equality assumption with accurate semantic-drift evidence and prove every current drift path is represented without modifying product source.
- [ ] Run the schema, ordering, duplicate, missing, orphan, and drift-path coverage audits and record exact output.
- [ ] Fill implementation-owned sections in CODE_REVIEW-*-G??.md with actual implementation notes and verification output.

### [REVIEW_TEST-1] Complete the deterministic asset universe

**Problem**

The archived review records 82 missing active references even though the plan requires the explicit fixed-revision tree and active-reference scan to be merged.

```text
# agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/code_review_cloud_G03_1.log:159
Required: regenerate the universe from the exact union; missing_count=82, orphan_count=0.

# agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/code_review_cloud_G03_1.log:160
Required: ProviderTunnelRequest.Operation is semantic drift, not whitespace-only drift.
```

**Solution**

Regenerate the TSV by sorting and deduplicating the union of the approved-revision explicit roots and the exact current active-reference search. Assign deterministic kinds, including `test` for both Go and Dart test files and role-specific kinds for build, contract, spec, rule, UI definition, document, and evidence references. Use `rev:3155be0e275437a8eedc1aa93497955a7d30465b` for paths present at the approved revision and `active-ref:worktree` only for active-reference paths absent from that revision. Keep `disposition=pending`, `iop_action=none`, and `neutral_successor=none`; child 02 owns those decisions.

```text
# before: scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv
apps/agent/... through scripts/fixtures/... only (211 data rows)

# after
all fixed-revision explicit assets plus active contract/spec/rule/build/UI/Node consumer references, sorted once with source-accurate provenance
```

Record current content drift as evidence rather than requiring `git diff --quiet`: the approved revision remains the frozen source tree, while every current drift path must be present in the manifest. Do not modify `packages/go/agentruntime/types.go`.

**Modified Files and Checklist**

- [ ] `scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv` — add the full union with deterministic kind and provenance fields.
- [ ] `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/CODE_REVIEW-cloud-G06.md` — record exact regeneration and verification evidence.

**Test Strategy**

- Do not add product tests because no runtime behavior changes.
- Use deterministic repository-native `git`, `rg`, `sort`, `comm`, and `awk` audits. The audit must fail on header mismatch, non-seven-field rows, unsorted paths, duplicates, missing expected paths, orphan manifest paths, or uncovered current drift paths.

**Verification**

- Run the schema/order/duplicate command from Final Verification; expect `rows=<positive> schema=ok fields=ok order=ok duplicates=0` and exit 0.
- Run the bidirectional union command from Final Verification; expect `missing=0 orphan=0 duplicate=0` and exit 0.
- Run the drift-path coverage command from Final Verification; expect the current drift list to include `packages/go/agentruntime/types.go`, evidence of the `Operation` addition, `uncovered_drift=0`, and exit 0.

## Modified Files Summary

| File | Item |
|------|------|
| `scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv` | REVIEW_TEST-1 |
| `agent-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/CODE_REVIEW-cloud-G06.md` | REVIEW_TEST-1 |

## Final Verification

1. Schema, fields, ordering, and duplicates:

   ```bash
   awk -F '\t' 'BEGIN { expected="path\tkind\tdisposition\tbundle_path\tiop_action\tneutral_successor\tevidence" } NR==1 { if ($0 != expected) { print "HEADER_MISMATCH"; bad=1 }; next } { rows++; if (NF != 7) { print "FIELD_COUNT:" NR; bad=1 }; if (seen[$1]++) { print "DUPLICATE:" $1; duplicates++; bad=1 }; if (previous != "" && $1 < previous) { print "OUT_OF_ORDER:" $1; bad=1 }; previous=$1 } END { printf "rows=%d schema=%s fields=%s order=%s duplicates=%d\n", rows, bad ? "check-output" : "ok", bad ? "check-output" : "ok", bad ? "check-output" : "ok", duplicates; if (rows < 1 || bad) exit 1 }' scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv
   ```

2. Exact fixed-revision plus active-reference union:

   ```bash
   set -euo pipefail
   ref=3155be0e275437a8eedc1aa93497955a7d30465b
   audit_root=$(mktemp -d)
   trap 'rm -rf "$audit_root"' EXIT
   git cat-file -e "$ref^{commit}"
   { git ls-tree -r --name-only "$ref" -- apps/agent cmd/iop-provider-smoke packages/go/agentconfig packages/go/agentguard packages/go/agentpolicy packages/go/agentprovider packages/go/agentruntime packages/go/agentstate packages/go/agenttask packages/go/agentworkspace proto/iop/agent.proto proto/gen/iop/agent.pb.go configs/iop-agent.local.example.yaml configs/iop-agent.providers.yaml configs/iop-agent.runtime.yaml scripts/e2e-iop-agent-logged-smoke.sh scripts/fixtures/iop-agent-smoke-manifest.schema.json packages/flutter/iop_console; rg --sort path -l -i 'iop-agent|apps/agent|packages/go/agent|iop/agent|agent\.proto|IopAgentPanel|agentruntime|agentprovider|agentconfig|agentguard|agentpolicy|agentstate|agenttask|agentworkspace' README.md HANDOFF.md Makefile agent-contract agent-spec agent-ops/rules/project agent-roadmap agent-ui apps cmd packages proto configs scripts --glob '!agent-roadmap/archive/**' --glob '!agent-ui/**/archive/**' --glob '!agent-spec/archive/**' --glob '!scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv'; } | sed 's#^\./##' | LC_ALL=C sort -u > "$audit_root/expected"
   cut -f1 scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv | tail -n +2 | LC_ALL=C sort -u > "$audit_root/actual"
   missing=$(comm -23 "$audit_root/expected" "$audit_root/actual" | wc -l)
   orphan=$(comm -13 "$audit_root/expected" "$audit_root/actual" | wc -l)
   duplicate=$(cut -f1 scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv | tail -n +2 | LC_ALL=C sort | uniq -d | wc -l)
   printf 'expected=%s manifest=%s missing=%s orphan=%s duplicate=%s\n' "$(wc -l < "$audit_root/expected")" "$(wc -l < "$audit_root/actual")" "$missing" "$orphan" "$duplicate"
   test "$missing" -eq 0
   test "$orphan" -eq 0
   test "$duplicate" -eq 0
   ```

3. Current semantic-drift coverage:

   ```bash
   set -euo pipefail
   ref=3155be0e275437a8eedc1aa93497955a7d30465b
   audit_root=$(mktemp -d)
   trap 'rm -rf "$audit_root"' EXIT
   git diff --name-only "$ref" -- apps/agent cmd/iop-provider-smoke packages/go/agentconfig packages/go/agentguard packages/go/agentpolicy packages/go/agentprovider packages/go/agentruntime packages/go/agentstate packages/go/agenttask packages/go/agentworkspace proto/iop/agent.proto proto/gen/iop/agent.pb.go configs/iop-agent.local.example.yaml configs/iop-agent.providers.yaml configs/iop-agent.runtime.yaml scripts/e2e-iop-agent-logged-smoke.sh scripts/fixtures/iop-agent-smoke-manifest.schema.json packages/flutter/iop_console | LC_ALL=C sort -u | tee "$audit_root/drift"
   git diff --unified=0 "$ref" -- packages/go/agentruntime/types.go | rg --sort path '^\+.*(Operation|protocol operation id|operation path)'
   cut -f1 scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv | tail -n +2 | LC_ALL=C sort -u > "$audit_root/actual"
   uncovered=$(comm -23 "$audit_root/drift" "$audit_root/actual" | wc -l)
   printf 'uncovered_drift=%s\n' "$uncovered"
   test "$uncovered" -eq 0
   ```

Commands containing `go test -count=1` require fresh output; this plan has no product-test command. All inventory commands must run fresh against the current checkout.

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