You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Split out of #253. Continues the programme #162 started.
Why
A bound cannot tell "close" from "identical". #253 measured four defects that passed the bound they were meant to be caught by, while destroying bit-exactness wholesale:
op
planted defect
worst
exact
its bound
plain multioctave
drop f32 on amp*basis
3.725e-7
173/266
< 5e-7
passes
plain multioctave
drop f32 on the amp chain
4.768e-7
215/266
< 5e-7
passes
variable persistence
drop f32 on the gain multiply
1.907e-6
252/266
< 4e-6
passes
quick multioctave
scale/amp by powers not a chain
4.971e-5
143/190
< 5e-5
passes
93 points stop matching the game in row 1 and the bound never moves off green. A bound is not "tight" because it sits near the residual - it is blind by construction.
Two bounds found carrying enormous slack in passing: amplitude_corrected at < 5e-3 against a measured 1.788e-7 (~28,000x), and cliffiness_basic at < 5e-6 against 5.960e-8 (~84x, tightened in #253).
Scope
A sweep found roughly 30 more specs that grade a ported primitive or expression against a committed oracle fixture with toBeLessThan / toBeLessThanOrEqual / toBeCloseTo, or a tolerance predicate wrapped in .toBe(true).
Nearly all of their fixtures are 100% f32-representable, which is what makes exact-match scoring legal. Measured per fixture by walking the compared arrays and counting Math.fround(v) === v failures. Some of the larger ones:
One genuine exception found:spot-selection.game.json's spots[][2] peak field is 0/413 f32 - it was captured with deliberate 3-decimal rounding, per that spec's own comment. A bound is the correct instrument there. Do not convert it.
Also note regularPatches.spec.ts's own header already documents its abs/rel tolerance pair hiding two independent opposite-signed bugs at once, so it is a good early candidate.
How to do one
Confirm the fixture's compared values are all f32 (Math.fround(v) === v), and add a test asserting it, so the scoring cannot quietly stop being valid.
Measure the current exact count and worst residual.
If worst is already 0, assert toBe(0) and the exact count and delete the bound. If not, that gap is a finding, not a tolerance to keep - the last three times it was chased it turned out to be an f64 evaluation or an aliased constant.
Plant a defect and confirm the new assertion goes red. Verify the planted break actually applied.
Good subagent fan-out: the specs barely interact. Give any agent that edits files its own worktree.
Split out of #253. Continues the programme #162 started.
Why
A bound cannot tell "close" from "identical". #253 measured four defects that passed the bound they were meant to be caught by, while destroying bit-exactness wholesale:
amp*basis< 5e-7< 5e-7< 4e-6< 5e-593 points stop matching the game in row 1 and the bound never moves off green. A bound is not "tight" because it sits near the residual - it is blind by construction.
Two bounds found carrying enormous slack in passing:
amplitude_correctedat< 5e-3against a measured 1.788e-7 (~28,000x), andcliffiness_basicat< 5e-6against 5.960e-8 (~84x, tightened in #253).Scope
A sweep found roughly 30 more specs that grade a ported primitive or expression against a committed oracle fixture with
toBeLessThan/toBeLessThanOrEqual/toBeCloseTo, or a tolerance predicate wrapped in.toBe(true).Nearly all of their fixtures are 100% f32-representable, which is what makes exact-match scoring legal. Measured per fixture by walking the compared arrays and counting
Math.fround(v) === vfailures. Some of the larger ones:vulcanusResources.spec.tsoracle-vulcanus-resourcesregularPatches.spec.tsoracle-resource-regularcliffOrientationMargin.spec.ts< 0.1...corner-fields-entity-regionsfulgoraExpressions.spec.tsvulcanusBiomes.spec.tsoracle-vulcanus-biomestreeOracle.spec.tsoracle-trees,-controlscliffFields.spec.ts,cliffResidual.spec.ts< 1e-3oracle-cliff-elevationvulcanusRocks.spec.tsoracle-vulcanus-rockselevationNauvis/elevationLakes/elevationIsland8e-3,1e-4basisNoiseSeeding.spec.ts< 1e-5basis-noise-seeding.gamestartingSpotAtAngle.spec.ts< 3e-6oracle-starting-spotrandomPenalty.spec.ts< 1e-6oracle-random-penaltyvulcanusSpawn/vulcanusCracks/vulcanusHelpers/vulcanusClimate/vulcanusElevationOne genuine exception found:
spot-selection.game.json'sspots[][2]peak field is 0/413 f32 - it was captured with deliberate 3-decimal rounding, per that spec's own comment. A bound is the correct instrument there. Do not convert it.Also note
regularPatches.spec.ts's own header already documents its abs/rel tolerance pair hiding two independent opposite-signed bugs at once, so it is a good early candidate.How to do one
Math.fround(v) === v), and add a test asserting it, so the scoring cannot quietly stop being valid.toBe(0)and the exact count and delete the bound. If not, that gap is a finding, not a tolerance to keep - the last three times it was chased it turned out to be an f64 evaluation or an aliased constant.Good subagent fan-out: the specs barely interact. Give any agent that edits files its own worktree.