roles-migrate apply, run once: 32 of 51 designs now declare roles (183 stats pointed at the role that governs them; the other 19 designs' kinds either carry no quality-bearing behaviour at all, or every candidate stat is authored flat with no observable role-vs-workmanship difference). 28 of 37 products authored matching ProductRole quality; the rest sell an unrolled design or a design no product sells (Core Power, Industrial Thermostatic Heater, pswarm, plight -- all already flagged unsold in the Cut 1 census). docs/stats-power-cut7-roles.md is the legible review table the map's O7 calls for: every design's roles and which stat took each, grouped by item kind, plus every product's authored mean/deviation and its basis (one real brand identity -- Arctica/Alakrita on heat efficiency, from item-provenance-target.md -- the rest generic placeholders flagged for operator review). Verified before/after: AetherDb dangling/station-fit/hardpoint-fit output is byte-identical; `loadout 1` output is byte-identical (no generation behaviour moved); census reports 0 designs with roles and no matching product spread; 144 Aetheria.Shared.Tests pass (was 141); the six-mutation harness in mutation_tests_stats_power_cut8.py all behave as declared. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
12 MiB (Stored with Git LFS)
12 MiB (Stored with Git LFS)