216c433793
Phase 1 deviation from spec: the original PHASE1_AUDIT_BASELINE.json was gitignored (tests/artifacts/ is in .gitignore) and lost when the working tree rebuilt. Per spec FR1-1 we needed to re-run the audit and save the JSON; but a live re-run produces the CURRENT (post- migration) state, not the BASELINE state. That broke 5 of 7 tests that asserted pre-migration counts (88 sites across 3 files). The actual fix is to reconstruct the baseline JSON from the per-file inventory docs (PHASE1_INVENTORY_*.md), which ARE committed (under tests/artifacts/, but the directory's gitignore exempts them by being present-and-needed). The new scripts/tier2/artifacts/result_migration_cruft_removal_20260620/ synth_baseline_json.py parses the 3 per-file inventory docs and emits tests/artifacts/PHASE1_AUDIT_BASELINE.json with the exact shape the tests expect (forward-slash-free Windows paths to match the EXPECTED dict in test_baseline_result.py). Result: 31/31 baseline tests pass (was 26/31); 16/16 heuristic tests still pass; no source code changed. Test plan note: any future regeneration must use the inventory docs as source of truth, NOT a live audit. The audit is a moving target once migration begins.