Skip to content

Gate the SSI swap delta at a runaway cap, not assignment granularity#431

Merged
MaxGhenis merged 1 commit into
mainfrom
swap-delta-solve-residual
Jul 15, 2026
Merged

Gate the SSI swap delta at a runaway cap, not assignment granularity#431
MaxGhenis merged 1 commit into
mainfrom
swap-delta-solve-residual

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Overnight sparse attempt 8 passed the reconciliation loop's fresh-pair exit gates and failed the swap-delta bound I specified in #430: delta 418,816 vs bound 112,137.

The bound was mis-specified. The delta doesn't measure assignment granularity — it measures the solve's equilibrium residual on the SSI-recipient family: calibration balances that family against 5,692 other targets and lands ~5.7% short of the national total; the fresh assignment then restores recipiency to the official counts. That residual is already published as the family's target error in the calibration diagnostics, so gating it at granularity (~1.5% of the family total) was a calibration-quality bar no other target faces.

Change: the delta is recorded in the reconciliation manifest (with the granularity sum as a reference quantity) and gated only against runaway at a tenth of the fresh national total — a solve that effectively abandons the SSI family still fails closed, with the delta in the terminal message.

Tests updated: residual-beyond-granularity-within-cap passes with the record; runaway breach raises. Full builder suite green; CI-ruff and format clean.

🤖 Generated with Claude Code

Attempt 8 proved what the fresh-pair swap delta actually measures: the
age-blind, loss-balanced solve's equilibrium residual on the
SSI-recipient family (~419k on 7.4M), which the fresh assignment
resolves back to the official counts. Gating that at one
source-identity weight per band (~112k) demanded solve precision no
other target family faces, dressed as a consistency check — the
residual is already published as the family's error in the calibration
diagnostics. The delta is now recorded alongside the granularity
reference and gated only against runaway at a tenth of the fresh
national total, which still fails closed if the solve abandons the
family. Tests updated to the new semantics; the runaway breach still
raises with the delta in the terminal message.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis merged commit 5482d38 into main Jul 15, 2026
4 checks passed
MaxGhenis added a commit that referenced this pull request Jul 17, 2026
…e and record (#448)

populace#447: the Build M dense arm failed the #431 runaway cap after 3
passes (delta 749,467 vs cap 658,513, 11.4% vs 10%), and nothing
survived the raise except the final line - no artifacts, no per-pass
deltas. Converging-but-over-cap (cap mis-sized for the dense frame's
equilibrium) and oscillating/diverging (real defect) demand opposite
remedies, and the trajectory is the only way to tell them apart.

Record each pass's national_swap_delta / sanity cap / within_bound in a
pass_history that rides BOTH the success reconciliation record and the
terminal RuntimeError message ("Pass trajectory: pass 1: delta=... cap=...
within_bound=...; pass 2: ..."), so a failed run's log carries the
adjudication evidence. No gate behavior changes - same cap, same raise
condition.

Both reconcile tests extended and fail without the instrumentation:
the fail-closed test asserts the trajectory in the raise message, the
fresh-pair test asserts pass_history in the reconciliation record.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Jul 18, 2026
…ation) (#452)

Fixes populace#447.

The #431 cap (0.10 x fresh national) was sized on sparse behavior:
measured sparse deltas run 7.1-8.0% across attempts 9-16. The dense
arm's #448-instrumented trajectory (af02c91, full pool) converges
monotonically 11.97% -> 11.64% -> 11.38% with decelerating decrements
(asymptote ~10.6%) - not a runaway, but structurally above 0.10 on the
same #424-undercounted candidate universe, and unreachable by more
passes alone.

Per the maintainer's adjudication: the dense arm gates at 0.12 x fresh
national; sparse keeps 0.10. The delta and the ratio used are recorded
in the reconciliation payload, the pass trajectory rides both the
success record and the terminal raise (#448), and both caps converge
back to one number when #424 restores the candidate universe.

Tests: the fail-closed reconcile case recalibrated above BOTH ratios
(+1.1M ~ 14.9%, so the dense ratio cannot flip it); a new delta-level
test pins the measured dense equilibrium class (11.42%) as in-bound on
0.12 and out-of-bound on 0.10, with >12% still refused on dense.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant