Recognize series-identity ledger qualifiers as inert in the materializer guard#429
Merged
Conversation
…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>
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.
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) andledger_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_KEYSclass the guard passes as inert provenance, with unknownledger_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