{
  "shard_id": "FV-PROPFLOOR-SHARD-B9-1",
  "spec_anchor": "FV-PBT-FLOOR-BUILD-SPEC.md §2/§3/§4",
  "population_definition": "all kernels in shard FV-PROPFLOOR-SHARD-B9-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 8 float-sensitive rows named in the WU (art-248-compute-remittance-disclosure — send_amount/exchange_rate/fee doubles feeding the (send-fees)*rate accounting identity; art-249-compare-corridor-cost — fee_pct/fx_margin_pct doubles compared against the fixed SDG 3.0% threshold; art-250-model-stablecoin-corridor-economics — on_ramp/off_ramp/fx_spread pct doubles compared against the fixed SDG 3.0% threshold and driving a break-even division; art-252-validate-cat-bond-trigger-terms — reported_loss/attachment_point/exhaustion_point doubles feeding the pro_rata_factor division and the fixed attachment/exhaustion boundary; art-254-compute-rbc-action-level — total_adjusted_capital/authorized_control_level doubles compared against fixed 70/100/150/200 NAIC thresholds; art-255-compute-lcm-rate-derivation — loading pct doubles feeding the 1/(1-loading) LCM division with a denominator<=0 boundary; art-257-calculate-claims-stp-economics — cost/rate doubles feeding net_annual_benefit and a payback>0 boundary; the row's FIX-2-carry verification against kernel source), checked below. The other 2 rows (art-247, art-269) are the row's stated float:no exceptions and instead carry forced CATEGORICAL boundary cases (empty/malformed structural fields, exact fixed-tier boundaries, unrecognized enum values) in place of ULP forcing — art-265-amortize-asc606-commissions was also verified float:no despite its division arithmetic (contract-term/renewal-flag classification with a fixed-denominator amortization, no continuous-threshold comparison) per the WU's FIX-2-carry instruction and correspondingly carries forced categorical boundary cases rather than 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-247-prevalidation-readiness-scorer",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — IBAN mod-97/BIC/LEI/UETR/address structural checks and a fixed-denominator (÷5) readiness percentage, no continuous arithmetic; forced CATEGORICAL boundary cases (empty input, malformed UETR/IBAN, HYBRID_SILENT_FAIL address duplication, unstructured address) used instead of ULP forcing",
      "kernel_digest": "sha256:5474f7090f70ee2ec83b77349b3e6a1aa511bfb76c6e43c9b8972f5556b752c7",
      "proptest_file_digest": "sha256:f66c43b642aab2dad89093f580ce81c1c62f1c650003b6b21064ed63d4bf6f38",
      "proptest_file": "chaingraph/kernels/__proptests__/art-247-prevalidation-readiness-scorer.proptest.mjs",
      "properties_tested": ["monotone_readiness_nonincreasing_as_fields_degrade", "boundedness_readiness_pct_and_checks_passed_within_total", "ready_requires_valid_uetr_matches_fixed_rule"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-248-compute-remittance-disclosure",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:18f88fa54000e35774488e4e653fe00d09df23fee91ad40e50611f194cf1d7f7",
      "proptest_file_digest": "sha256:bdae449a037c350879fe795c26e84ed102bda9b604f000159c919559a642db42",
      "proptest_file": "chaingraph/kernels/__proptests__/art-248-compute-remittance-disclosure.proptest.mjs",
      "properties_tested": ["monotone_received_nondecreasing_with_send_amount", "boundedness_transfer_amount_nonnegative_and_identity_holds", "transfer_and_received_match_fixed_deduction_formula", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-249-compare-corridor-cost",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:5b97702d4128add63e1efcd5e53b18eb0f0c6775b5e0a7192e52492070064bec",
      "proptest_file_digest": "sha256:00ad83e441102a16272f8973c853508f9cf046bc9074c57c40f04ab6130e39e9",
      "proptest_file": "chaingraph/kernels/__proptests__/art-249-compare-corridor-cost.proptest.mjs",
      "properties_tested": ["monotone_total_cost_nondecreasing_with_provider_fee", "boundedness_fee_and_fx_margin_pct_nonnegative", "meets_sdg_target_matches_fixed_3pct_threshold", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-250-model-stablecoin-corridor-economics",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:65998d555685be3e102ff17ae1fd898ca63aa688a69873358fa6d7a520660f2b",
      "proptest_file_digest": "sha256:e0cf8ea3b9e3687e37eab09b7e16ee34fb895ed14658ecd06f958a1332ad2c82",
      "proptest_file": "chaingraph/kernels/__proptests__/art-250-model-stablecoin-corridor-economics.proptest.mjs",
      "properties_tested": ["monotone_gross_cost_nondecreasing_with_on_ramp_fee", "boundedness_net_cost_never_exceeds_gross_and_nonnegative", "meets_sdg_target_matches_fixed_3pct_threshold", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-252-validate-cat-bond-trigger-terms",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:2d69f187e9c32ff8b2bcd4346e912a0546f39bd91839fd9b301e67c13e36a438",
      "proptest_file_digest": "sha256:e782be9467ab10e1118d715ec768f9a8a83e604765995c25cb2813b8f27e81f5",
      "proptest_file": "chaingraph/kernels/__proptests__/art-252-validate-cat-bond-trigger-terms.proptest.mjs",
      "properties_tested": ["monotone_payout_nondecreasing_with_reported_loss", "boundedness_payout_within_coverage_and_pro_rata_factor_unit_interval", "attachment_and_exhaustion_match_fixed_threshold_rule", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-254-compute-rbc-action-level",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:a55fcead8d91066d4678479d0792b6faacc67a98b724625025533952be8d0ec3",
      "proptest_file_digest": "sha256:eec1c7d978eb217cdb44347633a4959263e76f7c8bb61b4de034a05c916b48cf",
      "proptest_file": "chaingraph/kernels/__proptests__/art-254-compute-rbc-action-level.proptest.mjs",
      "properties_tested": ["monotone_action_level_nondecreasing_with_capital", "boundedness_action_level_known_set_and_ratio_nonnegative", "action_level_matches_fixed_70_100_150_200_tier_rule", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-255-compute-lcm-rate-derivation",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:d206ed051fd45134f40a3c4a1c1d7ff696243aa84d005225fe8c3d4e9084dca4",
      "proptest_file_digest": "sha256:9b892038ddc4f68d13234f3d82b5574de8e56fa5a7c343b5de44ea9dfe3132e9",
      "proptest_file": "chaingraph/kernels/__proptests__/art-255-compute-lcm-rate-derivation.proptest.mjs",
      "properties_tested": ["monotone_lcm_nondecreasing_with_loading_increase", "boundedness_lcm_at_least_one_when_denominator_valid", "lcm_matches_fixed_one_over_one_minus_loading_formula", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-257-calculate-claims-stp-economics",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:705011effaaf8ceec89ff5d39d51b1a8bf478dbd66ded2dfe68639036e90ef20",
      "proptest_file_digest": "sha256:934bffaef505b3d343e4b84eb735c6c0ce5c07ca79d367f2a95c5359d3306c21",
      "proptest_file": "chaingraph/kernels/__proptests__/art-257-calculate-claims-stp-economics.proptest.mjs",
      "properties_tested": ["monotone_savings_nondecreasing_with_target_stp_when_automation_cheaper", "boundedness_projection_years_clamped_and_stp_claims_within_volume", "payback_years_null_iff_net_benefit_nonpositive_matches_fixed_rule", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-265-amortize-asc606-commissions",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — contract-term/renewal-flag classification with a fixed-denominator (incremental_cost/amortization_period_months) monthly amortization, no continuous-threshold comparison; confirmed against kernel source before authoring per the WU's FIX-2-carry instruction; forced CATEGORICAL boundary cases (expedient/override boundary at 12 months, renewal-commensurate branching, impairment flag) used instead of ULP forcing",
      "kernel_digest": "sha256:e2860ee1786ecfb80cab10fca8acd74b179d8d80a1063d4ffa45ea30045cdbe5",
      "proptest_file_digest": "sha256:890a1976b614148558ea1d7b949480c5ec791a0b12fb50fd452d14f636d1bca9",
      "proptest_file": "chaingraph/kernels/__proptests__/art-265-amortize-asc606-commissions.proptest.mjs",
      "properties_tested": ["monotone_monthly_amortization_nondecreasing_with_cost", "boundedness_amortization_nonnegative_and_annual_equals_12x_monthly", "renewal_treatment_matches_fixed_expedient_override_rule"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-269-validate-w8-series-structural",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — form/chapter-status enum validation, integer treaty-rate comparison, and calendar-arithmetic validity window, no continuous arithmetic; forced CATEGORICAL boundary cases (invalid form_type/chapter3_status, Ch.3/Ch.4 inconsistency, 3-year validity expiry boundary, treaty rate exceeding table) used instead of ULP forcing",
      "kernel_digest": "sha256:a1851d45c46b04a84e8841137e3fe46ec0b91c345ba39ce7ce125fe9e446ce5e",
      "proptest_file_digest": "sha256:d445ff53768a7d5ee4739da9c15e4671ebf62d21c77cc3192341d92ebd57a38c",
      "proptest_file": "chaingraph/kernels/__proptests__/art-269-validate-w8-series-structural.proptest.mjs",
      "properties_tested": ["monotone_violations_nondecreasing_toward_bogus_fields", "boundedness_violation_count_matches_array_length_and_validity_flag", "form_ch3_compatible_matches_fixed_map_rule"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    }
  ],
  "ulp_forcing_summary": "8 of 10 kernels required ULP-boundary forcing (art-248-compute-remittance-disclosure, art-249-compare-corridor-cost, art-250-model-stablecoin-corridor-economics, art-252-validate-cat-bond-trigger-terms, art-254-compute-rbc-action-level, art-255-compute-lcm-rate-derivation, art-257-calculate-claims-stp-economics, as named in the WU row) and carry it, checked in their items above. The other 2 (art-247, art-269) are the row's stated float:no exceptions and carry forced categorical boundary cases instead. No misclassification found on verification against kernel source (WU's FIX-2-carry instruction) — the row's stated float-sensitivity list matched the kernel arithmetic in all 10 cases, including art-265 which despite division arithmetic was confirmed float:no (fixed-denominator classification, no continuous-threshold comparison).",
  "run_proptests_aggregate": "10/10 shard files passed locally (node chaingraph/kernels/__proptests__/<file>.proptest.mjs, each exit 0); full-tree run-proptests.mjs aggregate recorded in the check-off",
  "fv_floor_coverage": "check-fv-floor-coverage.mjs result recorded in the check-off"
}
