# Storage binding slice — complete, full goal unfinished

Previous goal turn made progress: committed concrete value views as 22c5a08e. This turn implemented and verified the shared binding owner described in verification.md. All processes are terminal; no hardware process is running. Do not mark the full structural-refactor goal complete.

The next connected work is local-copy helper binding. Current duplicated decisions: tile::local_copy_call chooses helper/ABI; place::collect_requirements forces alignment 8; estimate/program independently assumes the 64-bit strided helper; useful-work accounting excludes local copies. Preserve the existing byte/stride descriptor for coalescing and motion, bind the family once, and have costing/placement/inventory/emission use it. Do not fabricate an arithmetic tensor type for byte copies.

Geometry-cache consolidation is also unfinished. compile/benchmark.rs exposes cache statistics and disabled/cold/warm expansion benchmarks. ExpansionCache and GeometryAnalysis still repeat normalized view/traversal/pair work. Follow the proposal's measured consolidation and retained-memory requirements; do not replace all cache lifetimes with one universal cache.

The source-size acceptance criterion remains unmet: preliminary implementation count is 50,893 against baseline 48,402. Counting must include new worktree files (fixed measure.py). Final source-comprehension audit should also remove the misleading public MidOperator compatibility name; its real type is planner::OperatorFamily, used in the CLI/reference fixtures and optimistic-planning example.

Placement's weighted disjoint sets are still necessary: Repeat introduces extra relationships beyond direct low aliases, so blindly substituting storage_root for that allocation analysis would lose constraints.

User files remain unstaged: TODO, unrelated artifacts, callgraphs, review and screenshot. Keep frequent runnable commits.
