# Source custody: knowing which change was reviewed

**Disposition:** Accepted at the bounded REQ-281 trial boundary on 24 August 2026, followed by a compatibility repair and separate work on ownership granularity.

**Evidence:** An isolation fallback, substantive review amendments, an independent pass of the maker's exact candidate, and an immediate postacceptance defect.

## Git showed changes without their owner

On 24 August 2026, FIND-760 recorded fifty-four modified tracked paths and thirty-four untracked paths in the shared checkout. Corpus already provided isolated implementation worktrees, but preparation depended on a provider capability bundle. A live source-changing job encountered an unavailable bundle and retained an ordinary work packet with no prepared worktree. It was therefore operating against unrelated changes.

Another agent had avoided useful test work because it could not identify the owner of nearby changes. [FIND-760](#find-760) made the distinction explicit: Git could name changed files, but that observation did not establish ownership, authorization, whether work remained active, or which exact body a reviewer should inspect.

The design needed isolation and ownership evidence. A dashboard would describe collisions after changes were mixed. Existing worktrees were conditional and their custody absent from the shared view.

## One trial made the boundary testable

[REQ-281](#req-281) required source-changing jobs to declare validated repository-relative paths and receive an isolated candidate tied to a base revision. A recorded claim had to be established independently of provider availability. A second overlapping writer had to be refused before dispatch.

The compact view separated declared scope from independently observed changes and unowned dirt in the shared checkout. An out-of-scope change was a breach, not permission to widen the worker's claim. If isolation could not be established, the job was to refuse before assignment or dispatch. Unknown or malformed active claims had to block writers rather than create an apparently empty lane.

Replacement version control, historical attribution, backups, and universal immutable sealing needed separate decisions and evidence.

## Review found holes in plausible candidates

An early candidate checked overlap and published its claim as separate acts. Two starts could pass through the gap. An initial Eyes review recorded PASS at 18:48, but the Orchestrator held that pass over this non-atomic check and claim write. The coordinator, rather than that first independent review, caught the defect and required atomic publication. Another amended candidate passed review but could not be integrated after the shared base moved; earlier approval did not apply automatically to the new composite.

Further review found an incomplete claim object that escaped unknown-state blocking. A subsequent amendment still accepted stored path strings such as `../escape`, allowing noncanonical paths to evade overlap comparisons. These violated the trial's central promise even when other checks passed.

The final amendment classified traversal, absolute, empty-segment, and noncanonical stored paths as unknown and blocked writer starts. The maker sealed a seven-path candidate with digest `91ce56b046c5d413009a42c898572f08a891d7611b522d0460dce75a6896ff86`. Independent review examined that same digest. Its recorded result was sixty-four focused custody tests and 139 current-composite tests passing, including hostile stored-scope behavior.

REQ-281 became fulfilled and CHANGE-281 complete at 21:52 on 24 August. That establishes the bounded delivery and reviewed body. It does not establish a durability checkpoint or remote push; those are separate events.

## Acceptance exposed a lifecycle defect

Five minutes later, [FIND-818](#find-818) recorded the next lawful job being refused because thirteen legacy claims lacked declared scopes. Twelve owners had signed out; the remaining old execution could not be found. Blocking uncertain active claims was protective. Treating ended legacy work as indefinitely active prevented later work from starting.

PATCH-048 corrected compatibility with closed legacy claims while retaining the handling of active malformed records. Its [independent verification](#patch-048) recorded PASS. Acceptance of the final trial candidate was followed immediately by a use-driven repair.

The next day exposed another limit. FIND-849 recorded a legitimate claim on the large `corpus_ops.py` file blocking unrelated work in another section. Whole-file ownership protected against collision but was too broad for that code structure. Decomposition and finer ownership became separate work rather than silently expanding REQ-281's contract.

The trial made ownership explicit, kept observed changes distinct from claims, and attached review to an exact candidate. Its costs were also visible: legacy compatibility and the size of ownership units affected whether safe work could continue. It delivered a local mechanism with a correction trail, not a general assurance against concurrent errors.

## Source samples

Reviewed findings, contract, and verification selections; private work packets and operational logs remain unpublished.

### FIND-760

**24 August 2026 · architectural finding**

> Git status is evidence of changed paths, not coordination.

The observed fallback had no prepared worktree. Changed content did not establish ownership.

### REQ-281

**24 August 2026 · acceptance criterion, selected clause**

> receives an isolated base-bound worktree and lease independent of provider-bundle availability

A lease is the recorded active claim. Terminal fields: **REQ-281 fulfilled; CHANGE-281 complete**. Acceptance followed independent review of the same seven-path digest.

### FIND-818

**24 August 2026 · postacceptance defect**

> The fail-closed refusal is correct; the missing piece is a safe reconciliation or compatibility path for closed legacy leases.

This legacy lifecycle finding does not authorize treating active malformed claims as absent.

### PATCH-048

**24 August 2026 · correction record fields**

| Field | Recorded value |
| --- | --- |
| Title | Closed legacy scopeless leases do not block active custody |
| Status | verified |
| Verifier | Imp_Headpiece_048 |
| Verification | PASS (TRACE-491 patch-verification/v1) |

## Source provenance

Private source account: `library/work/source-custody/README.md`. Owning records: FIND-760, REQ-281, TRACE-475, TRACE-477, TRACE-478, FIND-818, PATCH-048, FIND-849. Initial implementation: `tools/capability_bundles.py`; current module named by the account: `tools/corpus_ops_v1/domains/shop/source_custody.py`. Paths are relative to the private Corpus repository. Full records remain private. Reviewed 17 October 2026.
