Eureka/references/postmortem-cultcache.md

47 lines
2 KiB
Markdown
Raw Permalink Normal View History

# Worked example: Aetheria CultCache migration (2026-09-12..15)
The full postmortem lives with the Body it describes, in
`F:\Projects\Aetheria\docs\cultcache-migration-postmortem.md`. The means and ends
documents sit beside it: `cultcache-migration-cut.md` and
`cultcache-migration-target.md`. Read those when you need detail. This file keeps
only the evidence behind the skill's rules, so that the reasons for the rules
survive.
**Scale:** 114 subagents ran: 50 Hands, 32 Soul, 3 Imagination, 23
Eyes/Explore and 6 Life passes (then called Mind Stewards). Aetheria went
+5.6k / −36.9k lines.
**Soul:** 29 of 32 passes found at least one real defect that Hands' tests
passed, about 75 in all. These included:
- five deadlocks or hangs;
- four lost-write or data-loss paths;
- a wire-parity split (nil map keys that Python rejects);
- semantics copied from docs instead of the compiler (`step` NaN);
- untested operator rulings.
Cut 3 took six passes, and Cuts 6 and 6b took four each. The one cut without a
Soul pass, the Cut 7 release, is where the release defects surfaced late.
**Model budget:** the only Fable agent, the first Imagination pass, hit its limit
before Cut 1. Opus ran everything else, including every Soul pass, and the hit
rate held.
**Operator corrections that became rules:**
- A pass over a plan is Imagination, not Soul.
- Probe every mechanism claim ("the effects you listed don't follow from the
causes").
- Count capability consumers across projects; atomic commit and compare-exchange
were nearly cut.
- Delete what only duplicates an owner (the generator).
- Order belongs in data, not in scheduling: tickets were built, deadlocked and
were deleted.
- Ask what a domain concept is for: loadouts were redefined three times in one
evening.
**Incidents that became rules:**
- A probe fork-bombed the workstation.
- A message file written by PowerShell 5 carried a BOM.
- A shared message filename collided.
- `git add -A` swept a local file into history.
- A push of more than 3 tags skipped publishing.
- An incremental DLL went stale.