<!-- task=m-iop-agent-chronos-extraction-decoupling/02+01_disposition plan=0 tag=TEST -->

# Agent 자산 disposition과 후속 책임 분류

## For the Implementing Agent

`CODE_REVIEW-cloud-G04.md`의 implementation-owned 섹션 작성은 필수다. encoded predecessor의 exact PASS를 확인하고 이 child 범위만 구현·검증한다. active pair를 유지해 review 준비 완료를 보고하며 finalization은 code-review agent만 수행한다. 차단되면 질문하거나 상태를 분류하지 말고 blocker, 실제 명령/출력, 재개 조건만 evidence 필드에 기록한다.

## Background

고정된 asset universe의 각 행을 transfer, retain-generic, remove, reference 중 하나로 분류하고 bundle target과 IOP 후속 책임을 닫는다.

## 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-task/m-iop-agent-chronos-extraction-decoupling/01_asset_universe/plan_local_G06_0.log`

### SDD Criteria

- SDD `agent-roadmap/sdd/automation-runtime-bridge/iop-agent-chronos-extraction-decoupling/SDD.md`는 `[승인됨]`, 잠금 `해제` 상태다.
- Target은 Acceptance Scenario `S01`과 Milestone Task `inventory`; Evidence Map row는 모든 활성 자산의 disposition audit과 범용 Node 경계 비중복을 요구한다.
- 이 row가 각 TSV row의 `transfer | retain-generic | remove | reference`, IOP action, neutral successor를 채우는 checklist와 허용값/필수필드 Final Verification을 결정했다.

### Verification Context

- Handoff는 없다. Milestone, 승인 SDD, 보존된 parent plan을 읽었고 predecessor `01_asset_universe`의 exact PASS `complete.log`는 현재 missing이다.
- 구현 전 01의 TSV가 필요하며, gap은 row별 disposition/후속 책임이 비어 있다는 점이다. 외부 서비스나 credential은 필요 없다.
- Confidence는 high다. 허용 상태와 retain-generic successor는 SDD D02와 승격 기준 분류표에서 직접 정해진다.

### Test Coverage Gaps

- 제품 test는 추가하지 않는다. 허용 disposition과 필수 필드를 awk invariant로 검증한다.

### Symbol References

- retain-generic 행의 neutral successor만 기록하며 symbol rename은 수행하지 않는다.

### Split Judgment

- 안정 계약은 모든 universe 행이 정확히 하나의 처분과 실행 가능한 후속 책임을 갖는 것이다.
- Predecessor `01`의 active/archived exact PASS `complete.log`는 missing이다. PASS evidence는 invalid/empty disposition과 retain-generic successor 누락 0이다.

### Scope Rationale

- completeness 차집합 audit와 Roadmap Task closure는 다음 child에 둔다.

### Final Routing

- `evaluation_mode=isolated-reassessment`, finalizer=`finalize-task-policy.sh`, mode=`pair`.
- Build closures 모두 true. Scores=`1,0,1,1,1`, grade=`G04`, base/route=`local-fit`, lane=`local`.
- Review closures 모두 true. Scores=`1,0,1,1,1`, route=`official-review`, lane=`cloud`, grade=`G04`.
- `large_indivisible_context=false`; positive loop risks=`boundary_contract` (1); `review_rework_count=0`; `evidence_integrity_failure=false`; capability gap 없음.
- Canonical files: `PLAN-local-G04.md`, `CODE_REVIEW-cloud-G04.md`.

## Dependencies and Execution Order

1. `01_asset_universe` must each have exactly one matching PASS `complete.log`; all are currently missing.
2. Resolve only those exact predecessor completion artifacts, then implement this child scope.

## Implementation Checklist

- [ ] Refuse to start until predecessor 01_asset_universe has an exact PASS complete.log.
- [ ] Classify every manifest row with disposition, bundle target, IOP action, neutral successor, and evidence fields required by the original plan.
- [ ] Run the disposition invariant audit and record exact output.
- [ ] Fill implementation-owned sections in CODE_REVIEW-*-G??.md with actual implementation notes and verification output.

### [TEST-2] disposition과 후속 책임 닫기

**Problem**

`SDD.md:117-123`의 경로군 분류만으로는 개별 파일이 bundle과 IOP 삭제/유지 중 어디에 연결되는지 감사할 수 없다.

```text
# agent-roadmap/sdd/automation-runtime-bridge/iop-agent-chronos-extraction-decoupling/SDD.md:117-123
transfer 후 remove | retain-generic | reference
```

**Solution**

각 행에 정확히 하나의 disposition을 두고 `transfer`/`remove`는 bundle path와 IOP action, `retain-generic`은 bundle path와 non-Agent successor, `reference`는 보존 목적을 강제한다. Node의 generic dependency와 workflow ownership을 같은 successor로 중복 분류하지 않는다.

```text
# after examples
packages/go/agenttask/types.go<TAB>go<TAB>transfer<TAB>source/packages/go/agenttask/types.go<TAB>remove<TAB>-<TAB>S01
packages/go/agentruntime/types.go<TAB>go<TAB>retain-generic<TAB>source/packages/go/agentruntime/types.go<TAB>rename<TAB>packages/go/execution/types.go<TAB>S01
```

**Modified Files and Checklist**

- [ ] `scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv` — disposition별 필수 필드와 근거를 완성한다.

**Test Strategy**

- 정상/경계 검증을 audit에 포함한다: 유효 disposition만 허용하고, 빈 successor를 가진 `retain-generic`과 후속 action 없는 `transfer`를 실패시킨다.

**Verification**

- `awk -F '\t' 'NR==1 {next} !($3=="transfer" || $3=="retain-generic" || $3=="remove" || $3=="reference") {bad=1} $3=="retain-generic" && ($4=="" || $5=="" || $6=="" || $6=="-") {bad=1} ($3=="transfer" || $3=="remove") && ($4=="" || $5=="") {bad=1} END {exit bad}' scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv` — disposition invariants PASS.

## Modified Files Summary

| File | Item |
|------|------|
| `scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv` | TEST-1, TEST-2 |
| `agent-task/m-iop-agent-chronos-extraction-decoupling/02+01_disposition/CODE_REVIEW-cloud-G04.md` | TEST-2 |

## Final Verification

1. Confirm exact PASS `complete.log` for `01_asset_universe`.
2. `awk -F '\t' 'NR==1 {next} !($3=="transfer" || $3=="retain-generic" || $3=="remove" || $3=="reference") {bad=1} $3=="retain-generic" && ($4=="" || $5=="" || $6=="" || $6=="-") {bad=1} ($3=="transfer" || $3=="remove") && ($4=="" || $5=="") {bad=1} END {exit bad}' scripts/fixtures/iop-agent-chronos-ownership-manifest.tsv` — disposition invariants PASS.

Commands containing `go test -count=1` require fresh output; all other checks are rerun against the current checkout.

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