M2.5: the reality gate passes — 33.0% empty verdicts on 32 real Logic projects - #37
Merged
Merged
Conversation
… projects Issue #15's exit criterion was a decision, not a tool: if >50% of real Logic saves show no visible structural change, stop and map the volume-fader field before building M5, because no UI copy survives a dominant "nothing changed" first impression. The tool shipped in #32; the measurement needed a real library and never ran. It has now run. Measured 2026-08-16, 32 projects / 28 GB / 100 consecutive save pairs: 67.0% of save pairs show a structural change Wit can see (67 of 100) 33 pairs show none; 28 pairs (28.0%) are byte-different but structurally identical 33.0% is below the 50% threshold, so the gate passes and M5 proceeds — #18 is unblocked. Every ProjectData in the library walked cleanly (no read-error line), so all 100 pairs are real comparisons. The distribution is long-tailed rather than bimodal: the mode above zero is a single change, 26 pairs sit in the 1-7 band, and a thin tail runs to 235. The M2 volume-fader stretch goal stays worth doing — a save that moved only a fader is still in that 33% — it just no longer has to come first. Also closes M3's flagged `wit dupes` follow-up, which needed the full library: the Rust implementation reports 5.5 GB of 23.9 GB (23.2%) against §9's independent Python walk at 5.38 GB of 21.95 GB (24.5%), on a library that gained ~2 GB of audio in between. Recorded as a cross-check in §9 rather than as a rewrite of that finding, since they are different tools on different snapshots. Fixes a units bug found while reconciling those two numbers: `human_bytes` divided by 1024 while printing decimal labels ("GB"), understating its own totals by 7.4% and making `wit dupes` output silently incomparable to EXPERIMENTS.md, which quotes decimal GB throughout. Now decimal, with a test pinning the boundary. Verification (real material, opt-in — CI cannot reproduce any of it): $ WIT_LOGIC_LIBRARY=~/Music/Logic cargo test -p wit-index \ --test real_fixtures -- --nocapture --ignored test real_library_reports_the_three_m2_5_statistics ... ok cargo test --workspace 127 passed, 0 failed python3 -m pytest tests/ 293 passed, 13 skipped cargo fmt --check / clippy -D warnings / cargo deny clean Closes #15. Unblocks #18. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Issue #15's exit criterion was a decision, not a tool. If >50% of real Logic saves show no visible structural change, stop and map the volume-fader field before building M5 — because no UI copy survives a dominant "nothing changed" first impression. The tool shipped in #32; the measurement it exists to produce needed a real library and had never run. The ROADMAP and EXPERIMENTS.md §11 both still said the finding was open, with an n=1 (55.6%) data point standing in for it.
It has now run at the scale the issue specified.
Measured — 2026-08-16, 32 projects / 28 GB / 100 consecutive save pairs:
33.0% is below the 50% threshold, so the gate passes and M5 proceeds. #18 is unblocked. Every
ProjectDatain the library walked cleanly — the report printed no read-error line — so all 100 pairs are real comparisons rather than partial ones.The M2 volume-fader stretch goal stays worth doing: a save that moved only a fader sits in that 33%, and "no structural change Wit can see" remains a statement about the Structure honesty tier, not about the music. It just no longer has to come before M5.
For calibration: Ableton's semantically-empty rate is 24% (§1). Logic's 33% is higher, as expected from a narrower tier — but not the majority outcome the gate was written to catch.
Also closes M3's flagged
wit dupesfollow-upM3 landed with
wit dupesverified only against a deliberately-planted duplicate; the README's ~5.4 GB figure needed the full library. Run against it now, the Rust implementation reports 5.5 GB of 23.9 GB (23.2%) against §9's independent Python walk at 5.38 GB of 21.95 GB (24.5%) — agreement on a library that gained ~2 GB of audio in between. Recorded as a cross-check in §9 rather than as a rewrite of it, since they are different tools on different snapshots.One bug, found while reconciling those two numbers
human_bytesdivided by 1024 while printing decimal unit labels ("GB"). That understated its own totals by 7.4% and madewit dupesoutput silently incomparable todocs/EXPERIMENTS.md, which quotes decimal GB throughout and says so in §9's limits. Now decimal, with a test pinning the boundary.Checklist
.gitignore)If this PR changes a number in
docs/Material: one person's real working Logic library — 32 projects, 28 GB, 100 consecutive save pairs. macOS, Apple Silicon. Real material, never committed; CI cannot reproduce any of this.
Gates:
Limits, stated plainly
One person's library, one machine — the same breadth weakness every number in this repo carries, and exactly what #4 exists to fix. It is a library that has never been used with a version-control tool, so its cadence reflects Logic's own backup behaviour rather than deliberate committing. And 33.0% is a rate over save pairs, not sessions: a project with 20 backups contributes 19 pairs and outweighs one with 2.
Closes #15. Unblocks #18.
🤖 Generated with Claude Code