{
  "shard_id": "FV-PROPFLOOR-SHARD-B24-1",
  "spec_anchor": "FV-PBT-FLOOR-BUILD-SPEC.md §2/§3/§4",
  "population_definition": "all kernels in shard FV-PROPFLOOR-SHARD-B24-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). The WU row named 8 of 10 kernels float-sensitive (art-436, art-439, art-447, art-448, art-449, art-450, art-453, art-456) requiring mandatory ULP-boundary forcing, with art-438 and art-452 as stated float:no exceptions. ⚠ FIX-2 CARRY correction made during authoring after direct measurement against each kernel's source: art-450 (model-inventory-entry) and art-453 (model-validation-status) are misclassified in the triage table — art-450's materiality_score/complexity_score are Math.round()'d integers clamped to [0,4] with an integer tier_sum, and art-453's day arithmetic is entirely integer civil-calendar counting (Howard Hinnant's daysFromCivil) — neither has a genuine float-division/threshold-tolerance surface. Both are treated here as float:no-equivalent and carry forced CATEGORICAL boundary cases (integer clamp/tier-sum edges for art-450; calendar-date edges, leap years, cadence-override boundaries for art-453) instead of ULP forcing, matching the pattern FV-PROPFLOOR-SHARD-B12-1 established for its two stated float:no exceptions. The remaining 6 float-sensitive kernels (art-436, art-439, art-447, art-448, art-449, art-456) carry genuine ULP-boundary forcing: ratio/percentage division against fixed thresholds (art-436 capital ratios, art-447 retention percentage, art-456 simplified ETR), unrounded roll-forward addition (art-439, art-448), and a correlation-matrix sum-of-squares under Math.sqrt (art-449). 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-436-bhc-schedule-hcr-capital",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:3eb8ae80e279ce36b74155e260a9f47adda9dd53dc62f3668ff6dd3a1e90b295",
      "proptest_file_digest": "2fff6800bd6ebfeed6111efdb85cb79f858640e5bd5f8fb74267084e49acc16b",
      "proptest_file": "chaingraph/kernels/__proptests__/art-436-bhc-schedule-hcr-capital.proptest.mjs",
      "properties_tested": ["threshold_tier_agreement_pass_flags_match_ratio_vs_min", "ratios_nonincreasing_as_rwa_denominator_grows", "total_capital_exact_r2_tier1_plus_tier2", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-438-eval-attestation-receipt-composer",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — no arithmetic (pure hash-shape/string validation); forced CATEGORICAL boundary cases (malformed hex, short hex, uppercase hex, null eval_log, empty policy_parameters) used instead of ULP forcing",
      "kernel_digest": "sha256:4dd15343a439bc1a1a1212c58f21fed27dd330d9f8cf4476bfdd468f67a7624e",
      "proptest_file_digest": "2659d0f6bb87c4456041ea43c364e1e10f759fa660327c61f43514d27ac1432b",
      "proptest_file": "chaingraph/kernels/__proptests__/art-438-eval-attestation-receipt-composer.proptest.mjs",
      "properties_tested": ["claim_strength_bounded_weakest_link", "attestation_determination_exact_negation_of_hash_absence", "not_proven_always_four_fixed_items"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-439-y14-capital-worksheet-rollforward",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:c6c4a22b53316a6e6ccebc23773eb8e8509b3aea2dd9591b8ac65c6cd03e31db",
      "proptest_file_digest": "63e11e083e9403cd995b5c07c01d4bac90ff46ac37f8bbc0e3124eec5030b2c4",
      "proptest_file": "chaingraph/kernels/__proptests__/art-439-y14-capital-worksheet-rollforward.proptest.mjs",
      "properties_tested": ["ending_usd_exact_rollforward_arithmetic", "ending_total_capital_roundtrips_from_component_endings", "cross_check_pass_matches_abs_delta_vs_tolerance", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-447-securitization-risk-retention-check",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:7c47eb66621889efcbc72476358adf9d81118f0c4692dc01375cb7251f1ada8e",
      "proptest_file_digest": "ee74598ae8cbcffe69f3557522f485e514f4c509989acb9b3fc7364e0b477472",
      "proptest_file": "chaingraph/kernels/__proptests__/art-447-securitization-risk-retention-check.proptest.mjs",
      "properties_tested": ["compliant_exact_agreement_with_all_checks", "actual_retention_pct_nondecreasing_in_retained_amount", "actual_retention_pct_null_iff_zero_exposure_else_finite", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (4/4 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-448-ifrs17-loss-component-tracker",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:8e097549d34ca1082509778e8da4137f414ab761783cc9babc55ec076010976e",
      "proptest_file_digest": "3e643935bc0639a75d6b2e51c4803139c50db8017c85633d1fcb834b389925e4",
      "proptest_file": "chaingraph/kernels/__proptests__/art-448-ifrs17-loss-component-tracker.proptest.mjs",
      "properties_tested": ["closing_lc_never_negative", "pre_release_exact_and_reversal_never_exceeds_available", "closing_lc_nondecreasing_in_additional_lc", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-449-solvency2-scr-module-aggregator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:484b5640fddbb90b1bdecd2a7f4e9023d17cef27245c21ed1f726cbf1f30e0a4",
      "proptest_file_digest": "dc47e80ea4df6ee28c6b57638c7454088bccc654604c895488fd8a61136aecbb",
      "proptest_file": "chaingraph/kernels/__proptests__/art-449-solvency2-scr-module-aggregator.proptest.mjs",
      "properties_tested": ["bscr_and_scr_total_never_negative", "bscr_never_exceeds_sum_of_module_charges", "bscr_nondecreasing_as_any_module_charge_grows", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-450-model-inventory-entry",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "MISCLASSIFIED float:yes in the WU row's triage table — corrected during authoring. materiality_score/complexity_score are Math.round()'d integers clamped to [0,4] (clamp04), tier_sum is an integer sum, and completeness_score is a Math.round()'d integer percentage; no genuine float-division/threshold-tolerance surface exists. Forced CATEGORICAL boundary cases (integer clamp floor/ceiling, tier_sum cutoffs at 3 and 6, required-field completeness fractions) used instead of ULP forcing",
      "kernel_digest": "sha256:2de5269cd7ce2153d49d282c65e7561c5f097c2fc88f86daeb66ea327ad21a6e",
      "proptest_file_digest": "67e6de8132d170646d3b50c294e06938120f16a773cccf85a4369f1ae035b644",
      "proptest_file": "chaingraph/kernels/__proptests__/art-450-model-inventory-entry.proptest.mjs",
      "properties_tested": ["scores_clamped_0_to_4_tier_bounded_completeness_0_to_100", "tier_agreement_matches_sum_cutoffs_exactly", "completeness_score_nondecreasing_as_fields_fill_in"],
      "fixture_oracle_result": "PASS (fixture vectors confirmed)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-452-build-ai-training-data-lineage-record",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — no arithmetic beyond bounded-list truncation and retention_months clamping; forced CATEGORICAL boundary cases (jointly-optional receipt fields, malformed hex hashes, list truncation at 32, string truncation at 128 chars) used instead of ULP forcing",
      "kernel_digest": "sha256:fd23920a354af2d91e43fa946991d108f2d99c7a9565ba3dbca922aba445e5ad",
      "proptest_file_digest": "d2c09a114df070285d268e8b5b24196eadf0cbaf8a0a7a05ae07a409aa0ef81e",
      "proptest_file": "chaingraph/kernels/__proptests__/art-452-build-ai-training-data-lineage-record.proptest.mjs",
      "properties_tested": ["record_status_exact_and_of_all_checks_no_partial_leak", "referenced_receipt_always_fully_populated_or_null_never_partial", "source_dataset_ids_always_bounded_to_32"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-453-model-validation-status",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "MISCLASSIFIED float:yes in the WU row's triage table — corrected during authoring. All arithmetic is INTEGER civil-calendar day counting (Howard Hinnant's daysFromCivil, Math.trunc'd cadence_days); no genuine float-division/threshold-tolerance surface exists. Forced CATEGORICAL boundary cases (exact-cadence-day boundary, leap-year date crossing, negative cadence-override clamp, malformed as_of_date) used instead of ULP forcing",
      "kernel_digest": "sha256:63eb1d7394a4cafde3fcd6102e610ec0ff1a0ab83c0eb65ad5b704bcaf777ddc",
      "proptest_file_digest": "8b46c1a6ae3c3643c8775be559e5f867785525b49b91e4319ea0449673dc63ca",
      "proptest_file": "chaingraph/kernels/__proptests__/art-453-model-validation-status.proptest.mjs",
      "properties_tested": ["overdue_exact_agreement_days_since_gt_cadence", "validation_status_bounded_to_5_declared_states", "cadence_days_exact_override_or_tier_default_min_clamped_to_1"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-456-globe-safe-harbour-tests",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:9dd9ae74b1d4edde67ba59bd862dc96cd7a0623011b3e59070bf5fd6ccbf3669",
      "proptest_file_digest": "62a07ca59fb0b4d27a0518941b1babaa9160d516a21e5b97d744d85c01d7d5ad",
      "proptest_file": "chaingraph/kernels/__proptests__/art-456-globe-safe-harbour-tests.proptest.mjs",
      "properties_tested": ["safe_harbour_met_exact_or_of_three_test_pass_flags", "de_minimis_and_routine_profits_exact_threshold_agreement", "routine_profits_pass_never_lost_when_sbie_amount_only_increases", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (4/4 vectors)",
      "run_proptests_result": "PASS"
    }
  ],
  "ulp_forcing_summary": "6 of 10 kernels carry genuine ULP-boundary forcing (art-436, art-439, art-447, art-448, art-449, art-456). 2 of 10 are the WU row's stated float:no exceptions (art-438, art-452) and carry forced categorical boundary cases instead. 2 of 10 (art-450, art-453) are corrected here from the triage table's float:yes to float:no-equivalent after direct measurement found only integer arithmetic — both carry forced categorical boundary cases in place of ULP forcing, per the FIX-2 CARRY instruction.",
  "run_proptests_aggregate": "10/10 shard files ran individually and passed (each node <file>.proptest.mjs exits 0)",
  "fv_floor_coverage": "10 new floor files added to chaingraph/kernels/__proptests__/ for this shard's kernels"
}
