Skip to content

Recognize series-identity ledger qualifiers as inert in the materializer guard#429

Merged
MaxGhenis merged 1 commit into
mainfrom
identity-ledger-filter-class
Jul 14, 2026
Merged

Recognize series-identity ledger qualifiers as inert in the materializer guard#429
MaxGhenis merged 1 commit into
mainfrom
identity-ledger-filter-class

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Build M sparse attempt 5 cleared eCPS parity (post-#428) and stopped at target materialization: the fail-closed metadata guard rejected three #405 targets whose ledger facts carry ledger_filter_bea_nipa.series_code (both NIPA specs) and ledger_filter_administering_entity/ledger_filter_program (LIHEAP).

These are series-identity qualifiers, not microdata-domain filters: they identify which published series the registry selected (a NIPA table line, the LIHEAP state-programs count), were applied at registry fact-selection, and restrict nothing at the household level. The guard's refusal is the correct default — a domain filter silently ignored would corrupt the target — so the fix is a reviewed IDENTITY_LEDGER_FILTER_METADATA_KEYS class the guard passes as inert provenance, with unknown ledger_filter_* keys remaining fatal.

Verification: new test pins the three qualifiers as inert AND an unknown domain filter as still-fatal — fails pre-fix, passes post-fix; full fiscal-refresh builder suite green; CI-ruff and format clean.

🤖 Generated with Claude Code

…zer guard

Build M's sparse run stopped at target materialization: the #405 NIPA
and LIHEAP targets carry fact metadata identifying which published
series the registry selected (ledger_filter_bea_nipa.series_code,
ledger_filter_administering_entity, ledger_filter_program). The guard
rightly refuses ledger_filter_* keys it cannot apply, but these are
identity qualifiers applied at registry fact-selection — there is no
household-level series code to filter on — so a reviewed
IDENTITY_LEDGER_FILTER_METADATA_KEYS class now passes them as inert
provenance. Unknown ledger_filter_* keys remain fatal, so a genuine
domain filter can never be silently ignored.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@MaxGhenis MaxGhenis merged commit 3df8aac into main Jul 14, 2026
4 checks passed
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