diff --git a/changelog.d/nz-benefit-unit-rule-durable-citation.fixed.md b/changelog.d/nz-benefit-unit-rule-durable-citation.fixed.md new file mode 100644 index 0000000000..46a1c52bf8 --- /dev/null +++ b/changelog.d/nz-benefit-unit-rule-durable-citation.fixed.md @@ -0,0 +1 @@ +Cite code by symbol name instead of line number in the New Zealand benefit-unit rule (`build/nz/benefit_unit_rule.json`). Its citations of `microcosm.graph.executor` (`_structural_columns`, `_validate_population_declaration`) and `microcosm.frame.concepts` (the relationship pointer concepts, `_check_pointers`) named line ranges that had gone stale. Only prose changes; because the file is a hashed NZ country-spec resource, its sha256 and the NZ composition fingerprint in `tests/golden/nz_country_spec.json` are re-pinned. diff --git a/packages/microcosm-build/src/microcosm/build/nz/benefit_unit_rule.json b/packages/microcosm-build/src/microcosm/build/nz/benefit_unit_rule.json index 0fe9753e62..5f62ae55a4 100644 --- a/packages/microcosm-build/src/microcosm/build/nz/benefit_unit_rule.json +++ b/packages/microcosm-build/src/microcosm/build/nz/benefit_unit_rule.json @@ -2,7 +2,7 @@ "version": 1, "country": "nz", "method_card_row": "MC7", - "description": "The New Zealand benefit unit (engine Family entity): an adult, their co-resident partner, and their dependent children; every other adult forms their own unit. The unit id family.family_id and the membership person.person_family_id are structural graph columns: the graph executor counts each entity's id column and each person-table membership column as structural (microcosm.graph.executor._structural_columns, executor.py lines 636-643) and rejects a non-structural node that declares one as an output (_validate_population_declaration, executor.py lines 1550-1573). family.family_household_id, the unit's link to its household, is not structural; it is an ordinary family column. The planned shared transport CREATE kernel (packages G4 and G5a) is to build the units from the donor concept pointers, refusing ambiguous or cross-household units. Family weights are never stored: each unit inherits its household's weight through the Frame.", + "description": "The New Zealand benefit unit (engine Family entity): an adult, their co-resident partner, and their dependent children; every other adult forms their own unit. The unit id family.family_id and the membership person.person_family_id are structural graph columns: the graph executor counts each entity's id column and each person-table membership column as structural (microcosm.graph.executor._structural_columns) and rejects a non-structural node that declares one as an output (microcosm.graph.executor._validate_population_declaration). family.family_household_id, the unit's link to its household, is not structural; it is an ordinary family column. The planned shared transport CREATE kernel (packages G4 and G5a) is to build the units from the donor concept pointers, refusing ambiguous or cross-household units. Family weights are never stored: each unit inherits its household's weight through the Frame.", "status": "awaiting D1 (MC7; the dependent-child rule is spec data under amendment MC11a, which is proposed and also awaits D1)", "entity": "family", "engine_entity": "Family", @@ -19,7 +19,7 @@ "parent_2_person_id" ], "household_reference_person": "reference_person_id", - "citation": "packages/microcosm-frame/src/microcosm/frame/concepts.py:880-919" + "citation": "microcosm.frame.concepts, the partner_person_id, parent_1_person_id, parent_2_person_id and reference_person_id pointer concepts" }, "composition": [ { @@ -32,7 +32,7 @@ }, { "member": "dependent_child", - "rule": "a dependent child joins the unit of its co-resident parent parent_1_person_id; a lone co-resident parent is always parent 1 (the pointer definition, concepts.py lines 892-901; the pointer checks flag parent_2_person_id without parent_1_person_id as parent_order, concepts.py _check_pointers), so parent_2_person_id never chooses the unit" + "rule": "a dependent child joins the unit of its co-resident parent parent_1_person_id; a lone co-resident parent is always parent 1 (the parent_1_person_id pointer definition in microcosm.frame.concepts; the pointer checks flag parent_2_person_id without parent_1_person_id as parent_order, microcosm.frame.concepts._check_pointers), so parent_2_person_id never chooses the unit" }, { "member": "other_adult", diff --git a/packages/microcosm-build/tests/golden/nz_country_spec.json b/packages/microcosm-build/tests/golden/nz_country_spec.json index 2f0ff95ad4..fbb29d2bfd 100644 --- a/packages/microcosm-build/tests/golden/nz_country_spec.json +++ b/packages/microcosm-build/tests/golden/nz_country_spec.json @@ -1,6 +1,6 @@ { "country": "nz", - "fingerprint": "df8850d5893e9311882573ff6b4baa41c9dda41f6838d9a140199ddf0cc7fd48", + "fingerprint": "a3229c537c4c7a14b8bf837ed5cadd1e42af42475ad418c25ad0ffa79b14c371", "gate_ids": [ "calibration_per_family_fit", "national_and_region_admin_aggregates", @@ -37,7 +37,7 @@ "as_area_crosswalk.json": "cfb76c99898204598b0609e5462b2fba9d081872a13ac5dd973cb406bb6f7469", "as_rate_bridge.json": "5eea897159508fb71820f22cd8ccf4993075a750462bd97312d9e89ab01cba15", "axiom_rules_bindings.json": "72905af77132ff6a3c01ada4b6210be4c369d9c6dc49dc8c1b673e4bac0b5fb1", - "benefit_unit_rule.json": "9e507e78f180566a1eece74da2a35d88478dbe13487c3a64ee2b76c9ecc7a653", + "benefit_unit_rule.json": "a5f37485605c3a16df317f2e289a63414161333b103e5bc596b91715b9a0f148", "country_package.json": "b83de9e12238b41481810ddb7fbdbaaa71d457cbfa9da83f3f53cbf479cee43b", "currency_bridge.json": "aa6a4b286a6a1a015088f32ac013148553422c3d45eeef7d7a15af08388857ca", "export_contract.json": "f0629a3990a47f3f94114c4d7b6680636ef7b1bd34bb8e950976d3065f029fda",