{
  "shard_id": "FV-PROPFLOOR-SHARD-B26-1",
  "spec_anchor": "FV-PBT-FLOOR-BUILD-SPEC.md §2/§3/§4",
  "population_definition": "all kernels in shard FV-PROPFLOOR-SHARD-B26-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 float-sensitive rows named in the WU (art-540, art-547, art-550), and float:no exception boundary cases (forced categorical) were used for the remaining 7. ⚠ TWO ROWS WERE RECLASSIFIED DURING AUTHORING per the WU's FIX-2 CARRY instruction ('verify float-sensitivity ... not inherited from the triage table alone'): the WU listed art-549-g20-corridor-cost-gap and art-580-15c3-3a-note-h-margin-debit as float-sensitive, but direct measurement against the shipped kernel source found art-549's only arithmetic is integer subtraction of two Number.isSafeInteger-constrained basis-point values (gap_bps = observed - target, no multiplication/division anywhere in compute() — the kernel's own docstring states this explicitly), and art-580's only numeric operation is Math.min() of two Number.isSafeInteger-constrained minor-unit values (no multiplication/division/rounding). Neither kernel has a float-precision failure mode to force ULP cases against, so both were treated as float:no exceptions with forced categorical boundary cases instead (tie-at-min, zero, negative, MAX_SAFE_INTEGER cases for art-580; exact-threshold, one-bps-over/under, negative-rejected cases for art-549) and this correction is the load-bearing content of this basis-of-review paragraph, not a footnote. The actually float-sensitive trio (art-540's reserve_to_liability_ratio division, art-547's qty*rate multiplication with round2, art-550's Math.round((net*rate)/1e6) — the last explicitly IEEE-754-double per its own docstring) carry genuine ULP-boundary forcing: threshold-at-exactly-1.0, near-zero denominator, negative zero, MAX_SAFE_INTEGER-scale multiplication precision loss, and .5-tie rounding cases. No row beyond these 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-527-classify-ledger-consensus-finality",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no per the WU row, confirmed by reading the kernel — terminal-branch outcome classification over booleans/integers/enums, no float arithmetic; forced CATEGORICAL boundary cases (deadline-sequence boundary at last_ledger_sequence+1, tec/tes/validated branches, federated_bft externalization boundary, unrecognised settlement_model default) used instead of ULP forcing",
      "kernel_digest": "sha256:46901368779de44333c60943c2a52d7458222841e0ac6420898016c6664114dd",
      "proptest_file_digest": "sha256:2d7cde4a12a37f628072dbef5632d4643a50fbde8c3998fb937a0c5b4f340998",
      "proptest_file": "chaingraph/kernels/__proptests__/art-527-classify-ledger-consensus-finality.proptest.mjs",
      "properties_tested": [
        "outcome_bounded_to_model_vocab",
        "meets_required_tier_exact_equality",
        "claim_verdict_exact_three_way_classification",
        "cross_model_fields_null_fixed_key_set"
      ],
      "fixture_oracle_result": "PASS (6/6 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-540-por-liabilities-composer",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:563cc673f35c6b1c66e152e11a07460a4cfa55b51028b1dcea2c42733e1b10c5",
      "proptest_file_digest": "sha256:cd07a271b1ad1b0b3de31140ee3d600d26332da4b362aa9fbe97b0582ea0d36e",
      "proptest_file": "chaingraph/kernels/__proptests__/art-540-por-liabilities-composer.proptest.mjs",
      "properties_tested": [
        "ratio_exact_r4_of_sum_over_reported",
        "determination_priority_order",
        "ratio_and_determination_nondecreasing_in_reserve_sum",
        "ULP_boundary_forcing"
      ],
      "fixture_oracle_result": "PASS (4/4 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-545-slate-readiness-diagnostic",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no per the WU row, confirmed by reading the kernel — pure boolean checklist tally (dimensions_passed = 5 - gaps.length, grade array lookup), no arithmetic beyond integer counting; forced CATEGORICAL boundary cases (all-true, all-false, exactly-one-gap boundaries, truthy-non-boolean rejection) used instead of ULP forcing",
      "kernel_digest": "sha256:438a35717911f7a15663987b2b41c45d5b90062da799f02954b3d5f959981c95",
      "proptest_file_digest": "sha256:508e6fd028a2418033dbbe3b0abaf1c262c5313f94be9f4cf78c38a51617d292",
      "proptest_file": "chaingraph/kernels/__proptests__/art-545-slate-readiness-diagnostic.proptest.mjs",
      "properties_tested": [
        "dimensions_passed_equals_5_minus_gaps_length",
        "grade_exact_lookup_by_dimensions_passed",
        "ready_exact_negation_of_any_gap",
        "gaps_exact_set_in_declared_order"
      ],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-546-dtcc-ca-iso20022-validator",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no per the WU row, confirmed by reading the kernel — structural message-shape validation with integer error-count arithmetic only (readiness_pct = max(0, 100 - error_count*15)), no float division; forced CATEGORICAL boundary cases (CUSIP length 8/9/10, participant-number digit-count 3/4/8/9, case-insensitivity) used instead of ULP forcing",
      "kernel_digest": "sha256:d75e8ba52e5757fe63fdf1f096b7135b083a72c97193a57fd6f9a3593a36e432",
      "proptest_file_digest": "sha256:41e0c2decda1f1e181cc23dda863f1eb42bfdce58246e01a8286a396672559ec",
      "proptest_file": "chaingraph/kernels/__proptests__/art-546-dtcc-ca-iso20022-validator.proptest.mjs",
      "properties_tested": [
        "error_count_exact_count_of_error_violations",
        "structure_valid_exact_negation_of_error_count",
        "readiness_pct_bounded_0_100_and_exact_formula"
      ],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-547-corporate-action-entitlement-recompute",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:426290aa93af154925c8418526e40ce47f1ccab54eb19febae4774c50041c1b3",
      "proptest_file_digest": "sha256:2c02c29e6512f2c31114c86ec610e8feefc896b6fac395ecc99b5845f6f6111c",
      "proptest_file": "chaingraph/kernels/__proptests__/art-547-corporate-action-entitlement-recompute.proptest.mjs",
      "properties_tested": [
        "entitlement_exact_formula_per_type",
        "whole_plus_fractional_roundtrips_to_raw_shares",
        "fractional_shares_present_exact",
        "entitlement_computed_exact_negation_of_error_count",
        "ULP_boundary_forcing"
      ],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-549-g20-corridor-cost-gap",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "RECLASSIFIED from float:yes (as listed in the WU row) to float:no during authoring per FIX-2 CARRY — the kernel's only arithmetic is integer subtraction of two Number.isSafeInteger-constrained basis-point values (gap_bps = observed_cost_bps - target_any_corridor_bps), confirmed by reading the kernel source; its own docstring states 'no division anywhere in compute()'. Forced CATEGORICAL boundary cases (gap_bps exactly 0 at the ceiling, one bps over/under, negative-observed rejection, unrecognised target_year) used instead of ULP forcing",
      "kernel_digest": "sha256:466123f62f6e6d1ee5414ed2b8d39004b3677e2cac5a9934c3c146bb1568975d",
      "proptest_file_digest": "sha256:82332d689915a66e126d01ed9d1ad924b478901c51898c202bc1e187fa6d41b8",
      "proptest_file": "chaingraph/kernels/__proptests__/art-549-g20-corridor-cost-gap.proptest.mjs",
      "properties_tested": [
        "gap_bps_exact_integer_subtraction",
        "meets_target_exact_gap_bps_lte_0",
        "gap_null_iff_target_year_missing"
      ],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-550-reg-e-remittance-disclosure-check",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "includes near-zero-rate (exchange_rate_disclosed_e6=1), MAX_SAFE_INTEGER-scale multiplication precision-loss, and .5-rounding-tie boundary cases — Math.round((net_cents*rate_e6)/1e6) is explicitly IEEE-754 double arithmetic per the kernel's own docstring",
      "kernel_digest": "sha256:8824902adca9694e5a610a35b14e2eea59ae7f67ef1a98985dea146a6ac144b9",
      "proptest_file_digest": "sha256:b635e925e0b428706198246a9c434aa80f613e2cd98606bb934265de7b2e9e22",
      "proptest_file": "chaingraph/kernels/__proptests__/art-550-reg-e-remittance-disclosure-check.proptest.mjs",
      "properties_tested": [
        "recomputed_cents_exact_round_net_times_rate_over_1e6",
        "discrepancy_exact_and_consistent_iff_zero",
        "recomputed_scales_with_rate_within_rounding_tolerance",
        "ULP_boundary_forcing"
      ],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-551-mt101-coexistence-readiness-diff",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no per the WU row, confirmed by reading the kernel — days_to_deadline divides exact UTC-midnight millisecond diffs by 86400000, which always divides evenly for ISO calendar dates (Math.round is a safety net, not an active rounding boundary); forced CATEGORICAL boundary cases (as_of_date exactly on/one-day-before/one-day-after the fixed 2026-11-14 deadline) used instead of ULP forcing",
      "kernel_digest": "sha256:3c1274fc147ac5bb67216765094aaf175766d6505785a4e2a5d45f7f9fd4983d",
      "proptest_file_digest": "sha256:6021c223748113b556a9a8ddb388de8291e49cb1c7791808c1ed7440e514a3cf",
      "proptest_file": "chaingraph/kernels/__proptests__/art-551-mt101-coexistence-readiness-diff.proptest.mjs",
      "properties_tested": [
        "past_deadline_exact_days_lt_0",
        "ready_null_iff_structural_issues_present",
        "past_deadline_mt101_forces_not_ready",
        "pain001v9_ready_exact_emits_flag"
      ],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-580-15c3-3a-note-h-margin-debit",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "RECLASSIFIED from float:yes (as listed in the WU row) to float:no during authoring per FIX-2 CARRY — the kernel's only numeric operation is Math.min() over two Number.isSafeInteger-constrained minor-unit values (debit_minor_units = MIN(margin_required, margin_on_deposit)), confirmed by reading the kernel source; no multiplication, division, or rounding appears anywhere in compute(). Forced CATEGORICAL boundary cases (tie-at-min, zero-required, zero-on-deposit, single-condition-false, single-condition-unstated, margin_source undeclared, MAX_SAFE_INTEGER inputs) used instead of ULP forcing",
      "kernel_digest": "sha256:3bdfd9647ff94c830fe925048617e9528272a1bd33da7bc0a2a640e70563eea2",
      "proptest_file_digest": "sha256:3db354cac6d4f955e6ffc98f8a8ed9abceed2cf62cdb9e4dc281609573bac1ce",
      "proptest_file": "chaingraph/kernels/__proptests__/art-580-15c3-3a-note-h-margin-debit.proptest.mjs",
      "properties_tested": [
        "debit_exact_min_of_required_and_deposit_or_zero",
        "amounts_missing_forces_indeterminate",
        "verdict_bounded_to_fixed_3_state_enum",
        "debit_never_exceeds_either_input"
      ],
      "fixture_oracle_result": "PASS (5/5 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-581-emir3-simm-approval-scope-classifier",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no per the WU row, confirmed by reading the kernel — pure enum/boolean classification plus one lexicographic ISO-date-string comparison, no arithmetic of any kind; forced CATEGORICAL boundary cases (as_of_date exactly on/one-day-after the EBA onboarding cutoff, competent_authority_declared false, unrecognised model_type/model_status fallback) used instead of ULP forcing",
      "kernel_digest": "sha256:05b8c0c228321335e7ba3d1133c961b3ba2aebcd9e92f1735833b892d78170ce",
      "proptest_file_digest": "sha256:31c62f21400ae0754c91bb2e318d821bd9026a4bc85bb202971736847a979ed2",
      "proptest_file": "chaingraph/kernels/__proptests__/art-581-emir3-simm-approval-scope-classifier.proptest.mjs",
      "properties_tested": [
        "obligation_set_fixed_4_in_order_verdict_bounded",
        "proforma_exact_model_type_gate",
        "nca_authorisation_requires_subject_and_in_scope_model",
        "zero_simm_methodology_content_invariant"
      ],
      "fixture_oracle_result": "PASS (5/5 vectors)",
      "run_proptests_result": "PASS"
    }
  ],
  "ulp_forcing_summary": "3 of 10 kernels carry genuine ULP-boundary forcing (art-540, art-547, art-550), confirmed float-sensitive by reading the kernel source. 7 of 10 carry forced categorical boundary cases instead: 5 were float:no per the WU row as authored (art-527, art-545, art-546, art-551, art-581), and 2 were RECLASSIFIED from float:yes to float:no during authoring per the WU's FIX-2 CARRY instruction (art-549-g20-corridor-cost-gap — integer bps subtraction only, no division; art-580-15c3-3a-note-h-margin-debit — Math.min of two safe integers only, no multiplication/division). Both reclassifications are checked in their items above with the specific arithmetic evidence, not asserted.",
  "run_proptests_aggregate": "10/10 shard files passed individually (node <file>.proptest.mjs, each exit 0); full-tree node scripts/run-proptests.mjs result recorded in the board check-off",
  "fv_floor_coverage": "recorded in the board check-off after check-fv-floor-coverage.mjs confirms these 10 as newly floored"
}
