Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
cdd6802
Carry Schedule E line 32 and its passive subset on the PUF donor (#1239)
MaxGhenis Oct 13, 2026
e95ec23
Register the passive partnership/S-corp leaf across the US spec and p…
MaxGhenis Oct 13, 2026
b9c6057
Test the Schedule E line-32 donor and its passive leaf (#1239)
MaxGhenis Oct 13, 2026
f6e7c92
Merge origin/main (#1209 raw partnership SE derivation) into #1239
MaxGhenis Oct 13, 2026
0b79b6d
Keep the passive leaf coherent after the late transfer; probe it in r…
MaxGhenis Oct 13, 2026
5d39631
Re-pin every count and digest the passive leaf moves; fix the H3 fixt…
MaxGhenis Oct 13, 2026
ef81a9d
Place the passive leaf by the magnitude of each person's own line 32 …
MaxGhenis Oct 13, 2026
01e5c5e
Test the late-transfer passive rule end to end; re-pin what round 2 m…
MaxGhenis Oct 13, 2026
f7c1eee
Re-pin the catalog's resolved-column and undeclared-unit counts (#1239)
MaxGhenis Oct 13, 2026
45a5b98
Enforce the passive leaf's placement preconditions; refresh stale cou…
MaxGhenis Oct 13, 2026
f59263c
Merge main into us-puf-line32-passive-1239 and re-pin the spec digests
MaxGhenis Oct 21, 2026
c715df8
Lock the primary QRF target count at 66 with the passive leaf (#1239)
MaxGhenis Oct 22, 2026
2f9e6b4
Count the passive probe's smoke baseline key in the moved engine test…
MaxGhenis Oct 22, 2026
c50bda1
Merge main into us-puf-line32-passive-1239 and re-pin the spec digests
MaxGhenis Oct 29, 2026
49bfd37
Count main's ESI probe beside the passive NIIT probe in the scoring pins
MaxGhenis Oct 29, 2026
0550bb8
Merge origin/main (98aef7529) into the line-32 donor
MaxGhenis Oct 31, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 73 additions & 73 deletions docs/evidence/spec-engine/us-f0-coverage.json

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions docs/spec-engine.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ Review provenance:
machine-decidable.
- v2 factual errors corrected here: `puf_tax_itemization` is **five**
batches / **37** targets (19 bounded groups / 70 targets across the
registry), not 4/32; `wic` and `social_security` are not contract
registry), not 4/32 (counts as of this ruling; #1239 later added the
passive partnership/S-corp leaf, making them 38 and 71); `wic` and `social_security` are not contract
programs; `takes_up_eitc`/`takes_up_dc_ptc` break the suffix naming
rule (column mapping must come from an engine ABI projection).

Expand Down Expand Up @@ -336,7 +337,8 @@ ownership matrix**). The v3 contract:

**The frozen split ledger, corrected**: at the flip, the entire current
ordered split structure — **19 bounded groups / 70 targets overall;
five batches / 37 targets for `puf_tax_itemization`** — is declared
five batches / 37 targets for `puf_tax_itemization`** (71 and 38 since
#1239) — is declared
explicitly with a reason per split, compiled back against both greedy
splitter implementations and every literal batch-name consumer
(ownership constants included), after which the two splitters and
Expand Down
28 changes: 14 additions & 14 deletions docs/us-multispine-operator-ordering.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@
)
from .schemas import load_schema_registry

EXPECTED_AUTHORED_FIELD_COUNT = 32_454
EXPECTED_RESOLVED_BINDING_FIELD_COUNT = 9781
EXPECTED_CONFIGURATION_FIELD_COUNT = 42235
EXPECTED_AUTHORED_FIELD_COUNT = 32_506
EXPECTED_RESOLVED_BINDING_FIELD_COUNT = 9_781
EXPECTED_CONFIGURATION_FIELD_COUNT = 42_287


class FieldUsageError(AssertionError):
Expand Down Expand Up @@ -341,8 +341,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]:
# wildcard broadening a source diff rather than an automatically accepted field.
_PINS: dict[str, tuple[int, str]] = {
"battery": (
797,
"55c2c0cd2d652216ed35f2d2667f52fe00229eb4336507bef9758397a1e24a17",
802,
"eaf3cc45daebdba940e20e7bf2c995e7fc0bd5219935a963e7fca60c87111409",
),
"bundle_country": (
1,
Expand All @@ -361,12 +361,12 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]:
"36564747627fb0058bb99e8e8c4397e41d8ecc472a20c49d4b6d7df1003a80ec",
),
"calibration": (
315,
"13227bf16227b7027c6ccd1220bf2b451b6c8be2b17dbe63b0c5500dc32433a2",
316,
"0212e52e2bf1e5996fe6b4785b2d74f2fb5680ec38b258c6ad4dbeadbd181a1b",
),
"catalog_columns": (
1_673,
"a983c0d68e980a31bd1ad41e7ef3c0cb3db9a7ee4d73454ae46f81eb6d1bb427",
1_683,
"e43651deeb21fd914443862e0c8689c2a0c86631a00e2a7dcf5ddb3b03dd1370",
),
"catalog_metadata_waivers": (
5,
Expand Down Expand Up @@ -401,8 +401,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]:
"bdf40812604e7cd35d68093fe14b7cd1371cb8ab8658fd6002b254610b062781",
),
"imputation_family_execution": (
1_769,
"cd395f41c1cc425c734dc344607de043f3506b4ec2e727a29130fc4304f351e3",
1_781,
"0e8e14ad18161ef4b871ad5f2cfbb924bb39a80c334ecdc05336a8eae6731451",
),
"imputation_gap_fill_schedule": (
5,
Expand All @@ -421,12 +421,12 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]:
"e1dd7dc5123ab0f39d08ea4939d98dd09a6fdb8e7449a7ca3125fb1ddbd5b4e9",
),
"imputation_producer_graph": (
24_488,
"6382a3ed07016414c31462b8bedb24590d92b792405a89c927d85fa1bd2a8347",
24_504,
"342cad7ff55198088d9d4dc4d57fe5601f7ded6081d64379109a72917e57f682",
),
"imputation_transfer_execution": (
103,
"61c8d58b8389386f266eada72ef7565acac1ed37fb08326e151874e72cea5ca5",
110,
"4e1cdee017270e10a123df1e37be3d7c3a88056684c09eace90bd102c7d9ec83",
),
"imputation_waiver_records": (
70,
Expand Down Expand Up @@ -485,8 +485,8 @@ def _path_inventory(rows: Sequence[tuple[str, object]]) -> tuple[int, str]:
"d6782c5de5bbed1bdc6bf653c4a6d4aadcad4ccc72d35e1092e130fcb04680a3",
),
"source_stages": (
1_757,
"29c137db9d9e522c4280fbad42a3d3528411453853d2c7c5d1d347662e7b2076",
1758,
"baf946a13c027d9e26f786d4ee6b4ba442ead281304896a7d822d53a24e1c9f5",
),
"spine_assembly_household_mass_shares": (
2,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -348,17 +348,19 @@
EXPECTED_HASHES = {
"acs_group_predictors": "a927bb7ecf3e84f54c93583ab79318654514ac546aefafba67da5285615fbd60",
"acs_person_predictors": "878c788a6f037d7aca12b3586ea034eff04f3034ffa11935a736493042551f25",
"authority": "9d4a9672a0f03039b1fe874b9fe21ed575be0d29f14afc396d03cdf5c809bdd2",
"authority": "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2",
"early_families": "4aa9f736fd76e83955477ad1667e58f48f264783f05bdc7f0102cd32d61323bd",
"full_checkpoint": "c88b0d7fce767e7415c10bfd003b6eb0508244775605a5adf27a430299ffbb4e",
"full_checkpoint": "42a6073c6d6661321ec943536bc8fe2c9c0dd7e1507a7f238949844eed6df5c8",
"gap_fill_schedule": "1c31f9868f7884347cc19cf1ff65da43f950b9114941a715bab168246db414a7",
"graph_nodes": "40cd51ffdfe2e9d9d08d48c08e8ded9de1e4b134783bab05c4abc6ad5c72ca1e",
"graph_nodes": "5e5c89a0d5e00f759566b5bb025efd46f179e11faf7de4ff663ed2488c5a669b",
"geography_assignment": "44e7f5f6cd7ceeef85d532c3d46306d03de4f4ee811376e6d29920742746b65c",
"late_families": "d91f9ff0eb52f43e7b6eed3d5c58c37abe1620c3a11021da15dae9c10e16d382",
"late_resource_semantics": "6634f7512bee554e291b635860e0efdb90b38647099be43e8e85ccfea3f9221d",
"late_schedule": "e59c019d3d454eac99ac0ac209b6c5b6faaf9bdfcaeee18c36a25be19bf7da2f",
"late_families": "734080f8857f8637913a0e3ae81c59bf28b63dccc8d4bbf42009d0a80e9f1e48",
"late_resource_semantics": "4f2918584365b53b95c9a72203307ed2e2737e74108552f227437759a5875871",
"late_schedule": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0",
"ownership": "5f64f0aac49e2313177564f71876bffc8c81b3ded4df701e70930e60e9c98356",
"primary_tuples": "fdf23da429f8c501e198a2f5b719763d523a41565c2153fdf17b0344f21bcd7c",
"primary_tuples": "6655e37f15befe053f8de2583c216f97098e4c2bde526f315299c2858c97f055",
# #1239: puf_support's source bytes and the primary chain order gain the
# passive partnership/S-corp leaf after s_corp_income.
# #1178: puf_support's source bytes attest CPS Social Security preservation.
# RNG rules and the ordered QRF targets are unchanged. microcosm#104 moves
# both again: the protocol attests microcosm.calibrate.solve. microcosm#1124
Expand All @@ -371,11 +373,13 @@
# manifest. #1376: the puma_county_vintage draw module joins the seed
# protocol's attested kernel modules. #1380: the ACS transfer's
# self-employment component step changes acs_transfer's attested bytes.
"seed_map": "eb6b685478a35cbbf3295773c8396527d70167a4675432afa7530b0b64b611b2",
"seed_protocol": "961eb7d68291fb5ed45fa96f6949af91a315a0c1db6ced1f514898c65fab935f",
"source_manifest": "10c05f0fd057f75536b47e3a0160ffb2b47cdec094b6694ebd62cc6bef50d9e8",
# microcosm#1251 (#1239) moves the seed map and protocol again: puf_support
# gains the passive partnership/S-corp leaf, so the PUF QRF targets change.
"seed_map": "7eb4e585cb968366a218a318b2638979421602076aadeb7c0f4d375a458a7921",
"seed_protocol": "281c2a54be11e3391d1129db04869277cf206d2461212ac9558c9ccf94b747b3",
"source_manifest": "608c3621b1e4a108e57c8f83d16a184acdb3d05e16a81b895f7f72dbf5d0685c",
"take_up": "9522ce40f7dea569312dd7a7beb474e5a5afadd2f1e10cb5876534c3ef623d35",
"tail": "256947cd7c1bbd85f5d1fa3911a07a170ae87830f098110a40ed25d93f78347c",
"tail": "071d418bb49976f4682c320d2ad07097c177de3a645d2524f235e1ff33ac83f9",
}

INVENTORY_REPORT_SCHEMA_VERSION = 1
Expand Down Expand Up @@ -432,20 +436,20 @@
"early_families": 13,
"early_targets": 48,
"itemization_batches": 5,
"itemization_targets": 37,
"itemization_targets": 38,
"late_groups": 19,
"late_targets": 70,
"late_targets": 71,
"ownership_rows": 18,
"primary_effective_predictor_tuples": 65,
"primary_effective_predictor_tuples": 66,
"primary_families": 1,
"primary_targets": 65,
"primary_targets": 66,
"producer_authored_outputs": 92,
"producer_compiled_outputs": 227,
"producer_inputs": 2_744,
"producer_compiled_outputs": 229,
"producer_inputs": 2_746,
"producer_nodes": 38,
"producer_virtual_resources": 75,
"release_rungs": 5,
"resolved_references": 334,
"resolved_references": 335,
"seed_owner_bindings": 112,
"seed_owner_rows": 54,
"seed_sites": 53,
Expand All @@ -455,11 +459,11 @@
"stacked_checkpoint_full_components": 13,
"stacked_checkpoint_pool_code_components": 19,
"stacked_checkpoint_static_components": 10,
"tail_control_fields": 937,
"tail_control_fields": 938,
"take_up_pipeline_steps": 28,
"take_up_programs": 17,
"typed_artifacts": 84,
"typed_columns": 176,
"typed_columns": 177,
"typed_entities": 8,
"typed_scopes": 7,
}
Expand Down Expand Up @@ -840,7 +844,7 @@ def add(
"primary_predictor_tuples_exact",
clauses={
"primary family is not unique": len(primary) == 1,
"effective tuple count differs": len(primary_tuples) == 65,
"effective tuple count differs": len(primary_tuples) == 66,
"effective tuple digest differs": sha256_json(primary_tuples)
== EXPECTED_HASHES["primary_tuples"],
"legacy target order differs": _mapping(
Expand All @@ -851,7 +855,7 @@ def add(
homes=("/imputation/families", "/imputation/predictor_blocks/puf_tax_detail"),
consumers=("compiler_ir.node_slices", "legacy_adapter.imputation.primary_qrf"),
observed={"tuples": len(primary_tuples), "sha256": sha256_json(primary_tuples)},
expected={"tuples": 65, "sha256": EXPECTED_HASHES["primary_tuples"]},
expected={"tuples": 66, "sha256": EXPECTED_HASHES["primary_tuples"]},
)
qrf_params = _mapping(
_mapping(
Expand Down Expand Up @@ -894,7 +898,7 @@ def add(
"late_split_ledger_exact",
clauses={
"late group count differs": len(late) == 19,
"late target count differs": late_targets == 70,
"late target count differs": late_targets == 71,
"late family digest differs": sha256_json(late)
== EXPECTED_HASHES["late_families"],
"legacy late schedule differs": _json_equal(
Expand All @@ -910,7 +914,7 @@ def add(
},
expected={
"groups": 19,
"targets": 70,
"targets": 71,
"sha256": EXPECTED_HASHES["late_families"],
},
)
Expand All @@ -925,8 +929,8 @@ def add(
f"late/person/puf_tax_itemization__batch_{index}"
for index in range(1, 6)
],
"itemization batch sizes differ": itemization_sizes == [8, 8, 8, 8, 5],
"itemization target count differs": sum(itemization_sizes) == 37,
"itemization batch sizes differ": itemization_sizes == [8, 8, 8, 8, 6],
"itemization target count differs": sum(itemization_sizes) == 38,
"legacy late schedule differs": _json_equal(
late_schedule, expected_late_schedule
),
Expand All @@ -937,7 +941,7 @@ def add(
"ids": [row["id"] for row in itemization],
"batch_sizes": itemization_sizes,
},
expected={"batches": 5, "targets": 37, "batch_sizes": [8, 8, 8, 8, 5]},
expected={"batches": 5, "targets": 38, "batch_sizes": [8, 8, 8, 8, 6]},
)

source_node_by_id = {str(row["id"]): row for row in source_nodes}
Expand Down Expand Up @@ -1024,15 +1028,15 @@ def add(
"producer_inputs_exact",
clauses={
"producer input rows differ": inputs_exact,
"input row count differs": input_count == 2744,
"input row count differs": input_count == 2746,
},
homes=("/imputation/producer_graph/nodes/*/inputs",),
consumers=(
"compiler_ir.producer_graph.nodes.inputs",
"compiler_ir.node_slices",
),
observed={"rows": input_count},
expected={"rows": 2744, "relation": "source rows preserved exactly"},
expected={"rows": 2746, "relation": "source rows preserved exactly"},
)
outputs_exact = set(expected_outputs) == set(compiled_by_id) and all(
_json_equal(
Expand All @@ -1050,7 +1054,7 @@ def add(
"compiled outputs differ from typed closure": outputs_exact,
"authored output count differs": authored_output_count == 92,
"compiled output count differs": compiled.producer_graph.compiled_output_count
== 227,
== 229,
},
homes=(
"/imputation/producer_graph/nodes/*/outputs",
Expand All @@ -1066,7 +1070,7 @@ def add(
},
expected={
"authored_rows": 92,
"compiled_rows": 227,
"compiled_rows": 229,
"relation": "typed closure exact",
},
)
Expand Down Expand Up @@ -1423,7 +1427,7 @@ def add(
add(
"capital_gains_tail_contract_exact",
clauses={
"tail terminal field count differs": tail_count == 937,
"tail terminal field count differs": tail_count == 938,
"resolved calibration tails differ": _json_equal(
legacy.get("calibration_tail_contracts"),
expected_legacy["calibration_tail_contracts"],
Expand Down Expand Up @@ -1451,7 +1455,7 @@ def add(
"legacy_adapter.stacked_checkpoint_static_components",
),
observed={"terminal_fields": tail_count, "sha256": sha256_json(tail_bundle)},
expected={"terminal_fields": 937, "sha256": EXPECTED_HASHES["tail"]},
expected={"terminal_fields": 938, "sha256": EXPECTED_HASHES["tail"]},
)

add(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,6 +402,62 @@
"contract"
]
},
"passive_partnership_s_corp": {
"type": "object",
"additionalProperties": false,
"properties": {
"activation": {
"type": "object",
"additionalProperties": false,
"properties": {
"all_targets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"all_targets"
]
},
"contract": {
"type": "object",
"additionalProperties": false,
"properties": {
"line_32": {
"type": "array",
"items": {
"type": "string"
}
},
"mutable_rows": {
"type": "string"
},
"rule": {
"type": "string"
},
"subset": {
"type": "string"
},
"tax_unit_link": {
"type": "string"
}
},
"required": [
"line_32",
"mutable_rows",
"rule",
"subset",
"tax_unit_link"
]
}
},
"required": [
"activation",
"contract"
]
},
"schedule_d_capital_gain_distributions": {
"type": "object",
"additionalProperties": false,
Expand Down Expand Up @@ -578,6 +634,7 @@
},
"required": [
"adult_care",
"passive_partnership_s_corp",
"schedule_d_capital_gain_distributions",
"self_employment_components"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ def _late_families(
def _late_transfer_surface(
imputation: Mapping[str, object],
) -> tuple[dict[str, dict[str, list[str]]], str, int, str]:
"""Compile the 70-target post-PUF surface and its shared donor contract."""
"""Compile the 71-target post-PUF surface and its shared donor contract."""

surface: dict[str, dict[str, list[str]]] = {}
donor_channels: set[str] = set()
Expand Down

Large diffs are not rendered by default.

Loading
Loading