{
  "shard_id": "FV-PROPFLOOR-SHARD-B4-1",
  "spec_anchor": "FV-PBT-FLOOR-BUILD-SPEC.md §2/§3/§4",
  "population_definition": "all kernels in shard FV-PROPFLOOR-SHARD-B4-1, enumerated below by kernel id and spec digest",
  "human_sign_off": {
    "status": "PENDING",
    "name": null,
    "date": null
  },
  "independence_sentence": "Each item listed was reviewed and attested independently; the single signature is a mechanical convenience over the enumerated digests, not a bulk review.",
  "per_item_basis_of_review": "Every row ran the same two mechanical checks unconditionally: (1) the fixture-oracle gate — compute() output diffed against the kernel's own existing golden fixtures before any property was trusted, and (2) run-proptests.mjs green (process exit 0). ULP-boundary forcing was mandatory and present for the 3 float-sensitive rows named in the WU (art-177-ifrs17-measurement-model-classifier, art-178-ifrs17-csm-rollforward-validator, art-179-ifrs17-risk-adjustment-checker — each directly re-read against its source per the WU's FIX-2 CARRY instruction and confirmed real-valued scalar threshold classifications), checked below. The other 7 rows (art-160, art-161, art-162, art-165, art-167, art-171, art-172) are the row's stated float:no exceptions and instead carry forced CATEGORICAL boundary cases (empty inputs, malformed regex fields, exact fixed-threshold ties, unrecognized enum values, negative-zero/negative-number inputs the kernel does not clamp) in place of ULP forcing. No row beyond these two mechanical checks received a separate in-depth human review in this pass — that is exactly the gap human_sign_off.status=PENDING names.",
  "items": [
    {
      "kernel_id": "art-160-vida-drr-transaction-reporter",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — member-state set membership and date-arithmetic logic only; forced CATEGORICAL boundary cases (lowercase state normalization, out-of-set state code, B2C-not-B2B, missing VAT ids, calendar-invalid-but-regex-valid date, negative/non-numeric transaction_value) used instead of ULP forcing",
      "kernel_digest": "sha256:d7f2833446d60e8f7303219930929c8108dd595e8e1574ddb37f60d366d375c8",
      "proptest_file_digest": "sha256:0f3924782b95659113fc49a3a98692f1f58c6f5f002eb2c9879e5b6bb8bcc1c5",
      "proptest_file": "chaingraph/kernels/__proptests__/art-160-vida-drr-transaction-reporter.proptest.mjs",
      "properties_tested": ["drr_in_scope_matches_intra_eu_and_is_b2b", "reporting_deadline_exactly_10_days_after_invoice_date", "member_states_and_value_roundtrip_exact"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-161-vida-recapitulative-statement-migration-assessor",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — fixed-field presence counting and a two-way boolean date-tier switch; forced CATEGORICAL boundary cases (zero-ESL-field legacy regime, all-4-fields-present, whitespace-only field not counted, truthy-string pre2024_domestic not === true) used instead of ULP forcing",
      "kernel_digest": "sha256:057a79e66cb2603cd0a4c91cc179046b19ebe82956a4c3a37cf10e5a3ecd1cfb",
      "proptest_file_digest": "sha256:5cc3571a087739ea35c228dc6fae34728a49d7fe5c2b76b936e5066a753da641",
      "proptest_file": "chaingraph/kernels/__proptests__/art-161-vida-recapitulative-statement-migration-assessor.proptest.mjs",
      "properties_tested": ["harmonize_deadline_matches_fixed_pre2024_tier", "boundedness_gap_count_and_gap_fields_subset", "monotone_gap_count_nonincreasing_on_added_field"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-162-vida-platform-deemed-supplier-classifier",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — sector/threshold-tier classification over a bounded integer (duration_nights) and booleans; forced CATEGORICAL boundary cases (duration_nights exactly at the 1/30-night accommodation boundaries, non-accommodation sector bypasses the duration bound, unrecognized sector string, negative duration_nights) used instead of ULP forcing",
      "kernel_digest": "sha256:523805e9550b3f35628e46722c867689df3e80d5777a5961f2d8139922715403",
      "proptest_file_digest": "sha256:a73d6167598c01bb26a6d8edf45f067e99ba22737b8313d7cf04acb11babf1e9",
      "proptest_file": "chaingraph/kernels/__proptests__/art-162-vida-platform-deemed-supplier-classifier.proptest.mjs",
      "properties_tested": ["deemed_supplier_matches_fixed_four_way_and", "boundedness_sector_eligible_set_and_accom_duration", "monotone_removing_supplier_vat_never_turns_deemed_off"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-165-eudr-dds-field-validator",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — 8-field structural presence/regex validation; forced CATEGORICAL boundary cases (all-8-valid, malformed EORI/HS-code/country-code regex fields, quantity exactly zero not valid, negative quantity, micro_operator_exemption OR-substitute) used instead of ULP forcing",
      "kernel_digest": "sha256:acd7dd7b0e4b050841535e867851410def190cd19b3c3965fea524418965bb8c",
      "proptest_file_digest": "sha256:e06081ce5e1ac757606991c4eaebe481d95532ae0c79b3ff63aeb75fcaf4fe34",
      "proptest_file": "chaingraph/kernels/__proptests__/art-165-eudr-dds-field-validator.proptest.mjs",
      "properties_tested": ["monotone_fields_passed_nondecreasing_on_added_field", "boundedness_fields_passed_and_missing_fields_subset", "conformant_matches_missing_fields_empty"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-167-eudr-commodity-scope-classifier",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — HS-code lookup table membership plus two fixed employee/turnover threshold tiers, compared against fixed integer constants (10/250 employees, 2M/50M EUR), not attacker-controlled continuous ranges; forced CATEGORICAL boundary cases (employee/turnover exactly at the SME and micro ceilings, dotted HS subheading normalization, unrecognized HS code, empty hs_code) used instead of ULP forcing",
      "kernel_digest": "sha256:40d480ee243c1129a894f873de670a195ee2a65e7057d3c68c734f66227fb2da",
      "proptest_file_digest": "sha256:6bf6ef3fcb48cec57a7620d81719bd73b3376fa216bd62b18592669926181a7a",
      "proptest_file": "chaingraph/kernels/__proptests__/art-167-eudr-commodity-scope-classifier.proptest.mjs",
      "properties_tested": ["deadline_matches_fixed_micro_sme_tier", "is_micro_is_sme_match_fixed_thresholds", "in_scope_and_commodity_independent_of_entity_type"],
      "fixture_oracle_result": "PASS (4/4 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-171-iso42001-aims-clause-conformance",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — inputs are restricted to the three-value enum {true, 'partial', other}, so the /7*100 and /6*100 rounding arithmetic operates over a small finite domain, not attacker-controlled raw doubles; forced CATEGORICAL boundary cases (all-13-fields-true=100, all-empty=0, 'partial' weighting, unrecognized string treated as absent, numeric 1 not === true, null aims fallback) used instead of ULP forcing",
      "kernel_digest": "sha256:6cf5102a16176e735d0a61a46e5bd06191bbc7ef5d12c2ce96cea472cd55e14f",
      "proptest_file_digest": "sha256:7293c74dac28f4c5bff52d4531696d1ff374e3e623b7b2fe9875ce9c5b2d3ea6",
      "proptest_file": "chaingraph/kernels/__proptests__/art-171-iso42001-aims-clause-conformance.proptest.mjs",
      "properties_tested": ["boundedness_scores_in_0_100", "monotone_overall_maturity_nondecreasing_on_field_upgrade", "maturity_band_matches_fixed_score_cuts"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-172-ai-risk-impact-assessment-validator",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — 7-field completeness checklist where the only arithmetic is fields_passed/7*100 rounded over a finite pass/fail domain, not attacker-controlled raw doubles; forced CATEGORICAL boundary cases (all-7-pass=100, all-empty=0, whitespace-only string not counted, non-array not counted, truthy-string not === true, empty-array list fields not counted) used instead of ULP forcing",
      "kernel_digest": "sha256:835086c93c872c7e1171afce4a0956dacbfd52fa9918c7d11cd23b4218fd07bd",
      "proptest_file_digest": "sha256:c2d3cf2594731b979ec8e01b3a7eada322e80fc97dedb61df597642a13c8dbcb",
      "proptest_file": "chaingraph/kernels/__proptests__/art-172-ai-risk-impact-assessment-validator.proptest.mjs",
      "properties_tested": ["boundedness_score_and_fields_passed", "monotone_score_nonincreasing_on_field_downgrade", "complete_and_score_match_fixed_ratio_rule"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-177-ifrs17-measurement-model-classifier",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:722f77361c37a5635fe5deb2077fcc3faccb5ec84a872dc0cdbfebc3027e0037",
      "proptest_file_digest": "sha256:e6fc6dd4988b0af7f0b54fb73790417961b0041f313b649414fdcdaccbe487ac",
      "proptest_file": "chaingraph/kernels/__proptests__/art-177-ifrs17-measurement-model-classifier.proptest.mjs",
      "properties_tested": ["coverage_period_months_roundtrip_exact_for_finite_input", "paa_eligible_matches_fixed_0_to_12_month_threshold", "boundedness_model_in_known_set_and_eligible_contains_gmm_and_chosen", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-178-ifrs17-csm-rollforward-validator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:6d63a964418acbc17998ddac7014b0d42e3a09197ea4e1ffe32feeea586fb11f",
      "proptest_file_digest": "sha256:f6c199332593c2e2dab779e6cd938330d6089584fef26b64f9e4711676a26048",
      "proptest_file": "chaingraph/kernels/__proptests__/art-178-ifrs17-csm-rollforward-validator.proptest.mjs",
      "properties_tested": ["boundedness_closing_csm_never_negative", "onerous_and_loss_component_match_raw_zero_threshold", "six_csm_fields_roundtrip_exact_for_finite_input", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-179-ifrs17-risk-adjustment-checker",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:970c7d775e817baef21991c6c87e7dfecaf2829b129990bf7fdd268efe1fa610",
      "proptest_file_digest": "sha256:8b46a99c84a36ed74d114ed7d21070c492dc25f8e0d92e7efa94b82a15c99868",
      "proptest_file": "chaingraph/kernels/__proptests__/art-179-ifrs17-risk-adjustment-checker.proptest.mjs",
      "properties_tested": ["confidence_disclosed_matches_fixed_0_to_100_threshold_for_var_cte", "ra_amount_gap_matches_fixed_zero_threshold", "technique_ok_and_ra_valid_match_fixed_rules", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    }
  ],
  "ulp_forcing_summary": "3 of 10 kernels required ULP-boundary forcing (art-177-ifrs17-measurement-model-classifier, art-178-ifrs17-csm-rollforward-validator, art-179-ifrs17-risk-adjustment-checker, as named in the WU row) and carry it, checked in their items above. The other 7 (art-160, art-161, art-162, art-165, art-167, art-171, art-172) are the row's stated float:no exceptions and carry forced categorical boundary cases instead.",
  "run_proptests_aggregate": "10/10 shard files passed (node scripts/run-proptests.mjs — 88/88 across the full tree, no regression in prior shards)",
  "fv_floor_coverage": "all 10 shard kernels confirmed present in __proptests__/ and absent from check-fv-floor-coverage.mjs's unfloored list; coverage gate reports 88/582 live kernels floored, clean ratchet"
}
