# Named work grouping and actual result homes

Reduction/preparation proposals now use Recipe's ordinary result-home policy. A reduction-group choice names its members; the grouping rewrite changes only order. It rejects unavailable/duplicate members, region crossings and read/write hazards before mutation. Disjoint-home proposals preserve each existing domain and check physical overlap, rather than assuming rotations within different embeddings are disjoint. The previous global production rewrites and their clone/mutate ownership wrapper are removed from mid/ownership.

Explicit result homes denote actual assignments, with alias-relative rotations preserved. Version-six checkpoints resolve old result bases against constructor rotations and turn global grouping hints into named groups plus ordinary homes. Only compatibility loading performs that one-time late resolution; current recipes apply ownership through normal construction and use the explicit grouping rewrite. Layout/cast proposals can explicitly remove affected groups and result homes, preserving unrelated choices. The existing bounded joint grouping neighborhood is retained.

Validation:

- Release workspace tests: 440 passed, 0 failed, 8 ignored, including doctests. All-target checking and formatting pass without warnings.
- SDK saved-search replay passes, including budgets, visited recipes, placement and schedules across uninterrupted/resumed searches and thread counts.
- A two-GEMM graph with view preparation exercises a real grouping choice through construction, low expansion, placement, checkpoint recipe replay and legacy normalization. It also checks that an actual result home does not inherit a constructor rotation and that stale group members fail.
- A one-time reference harness copied the old reduction rewrite verbatim from 96545d07. On that graph its low expansion is identical to the scoped implementation; before-low.txt and after-low.txt are retained here. The harness and capture hook are archived here and removed from compiler/test sources. Its temporary unused reference helpers account for the two warnings in that comparison log; final sources check without warnings.
- Dependency/alias tests retain Repeat/yield and checkpoint-boundary coverage. Added cases verify grouping does not change homes, duplicate requests leave the program unchanged, different embeddings require physical overlap checks, and insufficient domains are not proposed as disjoint.
- Default MLP FP16 Repeat3, small ViT FP8 Repeat3, and real-weight 27-layer SigLIP packages are byte-identical to the preceding packing stage. The full-model build took 107.738 s with peak host RSS 4,309,048 KiB while other verification was running; this is a compatibility run, not a controlled timing measurement.
- A four-attempt small ViT FP8 Repeat3 search passes on hardware with minimum cosine 0.996962352 and maximum absolute error 0.215820; its package is byte-identical to the preceding stage. A separate build-only schema-five checkpoint with both old grouping hints resolves to no eligible groups on this small workload. It is not counted as a device test of nondefault grouping; that path is covered by the real graph's expansion/placement and pre-change low comparison above.

The full refactor remains active. Mixed attention state, resolved operand/local-copy binding, remaining movement-policy ownership, cache measurement/consolidation and the overall size/extension audit remain unfinished.
