{
  "shard_id": "FV-PROPFLOOR-SHARD-B6-1",
  "spec_anchor": "FV-PBT-FLOOR-BUILD-SPEC.md §2/§3/§4",
  "population_definition": "all kernels in shard FV-PROPFLOOR-SHARD-B6-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 8 of the 10 rows (art-213, art-214, art-217, art-218, art-219, art-221, art-223, art-224 — all continuous rate/margin/threshold arithmetic with round2/round4/round6 rounding or epsilon-margin comparisons). Per this row's FIX-2-CARRY duty (verify float-sensitivity against the kernel before authoring, not inherited from the WU row's triage table alone), art-220-reg-z-threshold-lookup was RECLASSIFIED float:no during authoring — inspection of its compute() shows a pure year/table string lookup with no continuous arithmetic or float comparison anywhere (only Math.round(year)); it now carries forced categorical boundary cases in place of ULP forcing, same shape as art-222-agency-eligibility-matrix, which the WU row itself stated as float:no and which this session confirmed on inspection (direct fixed-tier percentage comparisons, no epsilon-tolerance continuous arithmetic). 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-213-perp-liquidation-calculator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:2fccd34d45ee83dbb10844e720e1c4469b6f63bec1243d60757849f139768803",
      "proptest_file_digest": "sha256:c457a89eef6266c25aa110f7224b2ac9fa4271fcd1f230342b06e598153aab4d",
      "proptest_file": "chaingraph/kernels/__proptests__/art-213-perp-liquidation-calculator.proptest.mjs",
      "properties_tested": ["monotone_initial_margin_nonincreasing_with_leverage", "health_matches_fixed_buffer_pct_tier_rule", "distance_to_liq_moves_favorably_with_mark_price", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-214-perp-position-lifecycle",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:aa963eb24ee88e725b08bbaaf443a0f756a8d42eb469f9c1fe1e68ef75dc4cf6",
      "proptest_file_digest": "sha256:3fd9d3131bd3098dfdbca53b80dd476ac1314779351c63abdb9b66dac4413f87",
      "proptest_file": "chaingraph/kernels/__proptests__/art-214-perp-position-lifecycle.proptest.mjs",
      "properties_tested": ["monotone_total_net_pnl_favorable_with_exit_price", "liquidation_risk_flag_matches_mid_price_rule", "margin_returned_matches_round2_identity", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-217-trid-apr-accuracy",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:a74ebe7cdb837e03a939cbe160d49a4f412192f9c98d5d928c8daddda570f8fd",
      "proptest_file_digest": "sha256:04c13adb89ffb8cf62cc4ea68c19f6d40075ed80b9193a0dccb56b996c28f3c6",
      "proptest_file": "chaingraph/kernels/__proptests__/art-217-trid-apr-accuracy.proptest.mjs",
      "properties_tested": ["within_tolerance_matches_fixed_1e6_margin_rule", "tolerance_pct_bounded_to_two_documented_values", "headroom_pct_matches_r4_identity", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-218-qm-points-and-fees",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
      "proptest_file_digest": "sha256:5151699e10156a2620b92e2c13ca8d5f4fce5b622ef4b09a4bd3622357a0aa73",
      "proptest_file": "chaingraph/kernels/__proptests__/art-218-qm-points-and-fees.proptest.mjs",
      "properties_tested": ["monotone_pass_nonincreasing_with_points_and_fees", "pass_matches_limit_plus_0005_tolerance_rule", "headroom_matches_r2_identity", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-219-qm-apr-apor-spread",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:9a3c7fb7f2a17cb3b8ba3e352f32b1d77d7d51093e23fa65165e7d3d594b106b",
      "proptest_file_digest": "sha256:b46ac8147239ea2f87e02d50c42d70513fd371e1e82d19bd5da98dea278a5600",
      "proptest_file": "chaingraph/kernels/__proptests__/art-219-qm-apr-apor-spread.proptest.mjs",
      "properties_tested": ["monotone_general_qm_pass_nonincreasing_with_spread", "is_hpct_matches_fixed_1e5_margin_rule", "headroom_pct_matches_r4_identity", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-220-reg-z-threshold-lookup",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "RECLASSIFIED float:no during authoring per this row's FIX-2-CARRY duty — the WU row listed this kernel among the 9 float:yes items, but compute() is a pure year/table string lookup into version-pinned constant tables with no continuous arithmetic or float comparison anywhere (only Math.round(year)). Forced CATEGORICAL boundary cases (earliest/latest pinned years, out-of-range years, unknown table names, case-sensitivity, all-empty input, the `||` default-coalescing edge on an empty-string table) used instead of ULP forcing.",
      "kernel_digest": "sha256:224b7fe562fe4671cc165a1228afc28e82d8abbdfc5ec4c9e93ee480e50587a5",
      "proptest_file_digest": "sha256:11b3d78a9032837f84e2e3a49122344ae0bd8b341250c0721e609a5e57b55f85",
      "proptest_file": "chaingraph/kernels/__proptests__/art-220-reg-z-threshold-lookup.proptest.mjs",
      "properties_tested": ["boundedness_data_object_present_for_known_table_year", "unknown_table_always_yields_documented_error_shape", "out_of_range_year_always_yields_year_not_in_table"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-221-llpa-stack",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:7221a3468182a878ebf517663153a90e4973b4125fe3d77c8a44789898b785ad",
      "proptest_file_digest": "sha256:db844f76525780dd900ed2fd313ad0c09f01bc4fe8a01268cfa7cd550fc26b7c",
      "proptest_file": "chaingraph/kernels/__proptests__/art-221-llpa-stack.proptest.mjs",
      "properties_tested": ["monotone_total_llpa_nonincreasing_with_fico", "boundedness_total_llpa_pct_never_negative", "fthb_waiver_matches_eligibility_rule_and_floors_at_zero", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-222-agency-eligibility-matrix",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row, confirmed on inspection — every decision is a direct comparison of a user-supplied percentage against a fixed table value with no epsilon tolerance and no derived continuous arithmetic. Forced CATEGORICAL boundary cases (FICO exactly at MIN_FICO under DU vs. manual override, DTI exactly at DU/manual tier caps, second-home multi-unit rule, investment cash-out 70% LTV seam, multi-unit LTV override table) used instead of ULP forcing.",
      "kernel_digest": "sha256:1974e5147a75759c71c8deb05d10e26b2803fb3ce6c5947cabd998c089cf0e49",
      "proptest_file_digest": "sha256:b76e9b8446ff416d7dc3d0e823b450a6fb00220c896d84cc2f022f4d68091564",
      "proptest_file": "chaingraph/kernels/__proptests__/art-222-agency-eligibility-matrix.proptest.mjs",
      "properties_tested": ["monotone_eligible_never_flips_true_when_worsened", "boundedness_fails_from_known_set_eligible_iff_empty", "ltv_check_pass_matches_fixed_max_ltv_rule"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-223-conforming-loan-limit",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:114e209f4a992a5b64a0357a6263fe467420738e6ac70b6c238b17987521fb40",
      "proptest_file_digest": "sha256:0012dd856473174bfbac08c8ca408d148bd8e5b0aeb7e1c89034c036f0d94b7f",
      "proptest_file": "chaingraph/kernels/__proptests__/art-223-conforming-loan-limit.proptest.mjs",
      "properties_tested": ["monotone_jumbo_never_reverts_to_nonjumbo_as_loan_amount_grows", "classification_is_a_partition_and_matches_flags", "conforming_matches_fixed_applicable_limit_rule", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-224-fha-mip-eligibility",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:0188afefdc40d10dd5d1058b02fdf32126f50994c6cdfc0389f7e1cf93cfe295",
      "proptest_file_digest": "sha256:edfab223a8e9002b25fb4517a953bb85b1e8897e76d2ebe858899c2ae76adeef",
      "proptest_file": "chaingraph/kernels/__proptests__/art-224-fha-mip-eligibility.proptest.mjs",
      "properties_tested": ["ufmip_amount_matches_r2_identity", "monotone_max_ltv_nondecreasing_with_fico_tier", "fha_eligible_matches_fico_and_ltv_and_conjunction", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    }
  ],
  "ulp_forcing_summary": "8 of 10 kernels required ULP-boundary forcing and carry it (art-213, art-214, art-217, art-218, art-219, art-221, art-223, art-224). The other 2 (art-220, art-222) carry forced categorical boundary cases instead. This DIFFERS from the WU row's stated 9 float:yes / 1 float:no split — art-220-reg-z-threshold-lookup was reclassified float:no during authoring per this row's mandatory FIX-2-CARRY verification duty (a pure table lookup with zero continuous arithmetic); see art-220's item-level ulp_forcing_note for the reasoning.",
  "run_proptests_aggregate": "119/119 total proptest files passed (node scripts/run-proptests.mjs), including this shard's 10; no regression in prior shards",
  "fv_floor_coverage": "check-fv-floor-coverage.mjs reports 119/582 live kernels floored (ratchet clean); these 10 kernels confirmed present in the floored set"
}
