{
  "shard_id": "FV-PROPFLOOR-SHARD-B16-1",
  "spec_anchor": "FV-PBT-FLOOR-BUILD-SPEC.md §2/§3/§4",
  "population_definition": "all kernels in shard FV-PROPFLOOR-SHARD-B16-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 CONFIRMED by direct kernel-source measurement (art-69, art-70, art-71, art-72, art-74, art-76, art-77, art-78). CLASSIFICATION CORRECTION (FIX-2-CARRY, per this row's own instruction to verify float-sensitivity against the kernel rather than inherit the WU's triage table): art-73-taxonomy-alignment-scorer was named float:yes in the WU row, but direct measurement of compute() found ZERO floating-point arithmetic anywhere in the function body — every field is a string/enum/boolean derived purely from string comparisons and array membership (substantial_contribution/objective/minimum_safeguards enums, dnsh status lookups, alignment_verdict string-prefix logic), with no toFixed(), no division, no multiplication, and no numeric output field. This is corrected to float:no in this manifest and carries forced CATEGORICAL boundary cases instead of ULP forcing, same shape as B12's art-314/art-316 exceptions. art-75-eugb-factsheet-validator's WU classification of float:no was VERIFIED, not just inherited: the kernel contains exactly one floating-point division (proceeds_aligned_pct = aligned_proceeds/total_proceeds*100), but that division is immediately toFixed(2)-rounded and only feeds a >=100 threshold comparison and a fixed-integer conformance_score tier table downstream — the same 'threshold operates on an already-rounded value' shape B12 documented for art-316's categorical exception — so the WU's float:no call is confirmed. Because a real division still feeds the 100%-threshold comparison, art-75's floor file nonetheless forces boundary cases at that exact threshold (x/y*y!==x style amount combinations, 0/0 denominator branch, negative zero) as a categorical safeguard, belt-and-suspenders beyond the WU's minimum. Two monotonicity/boundedness property scopes were narrowed after direct measurement found the kernel does not itself enforce the naive full-domain claim: art-69's quantity-monotonicity property is scoped to non-negative actual-data emission factors (a negative factor would legitimately make embedded emissions decrease as quantity rises — a real modelling effect, not a floor defect); art-74's GAR [0,100] boundedness property is scoped to the 'GAR-numerator amounts ⊆ total_assets' sane-input domain (the kernel does not clamp green_asset_ratio, so an aligned_covered sum exceeding total_assets legitimately produces a ratio above 100 — a caller data-quality expectation, not an enforced invariant). 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-69-cbam-embedded-emissions-calculator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:41700ba84727c6ac4cb1f9fb130ed565723c48eb48cd03b94b3f3ac31e4d6f00",
      "proptest_file_digest": "sha256:4c5a5d120a6e673adfe802cc57c4148e4b86bc339ee10ad58e7b8ea41740f884",
      "proptest_file": "chaingraph/kernels/__proptests__/art-69-cbam-embedded-emissions-calculator.proptest.mjs",
      "properties_tested": ["total_embedded_emissions_nondecreasing_in_quantity", "basis_and_data_quality_flag_bounded_to_declared_enum", "total_embedded_emissions_exact_two_step_rounding", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-70-cbam-default-value-resolver",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:d4e0e283b6e1384fcd684e12c55e68e57ce1522b619bdab563f28f5e79ab4838",
      "proptest_file_digest": "sha256:a99e019f851c17e02c929fb165c8aa8d3819b9eccc67b0c1ef579115e493d38f",
      "proptest_file": "chaingraph/kernels/__proptests__/art-70-cbam-default-value-resolver.proptest.mjs",
      "properties_tested": ["markup_pct_matches_fixed_year_tier", "markup_pct_nondecreasing_in_reporting_year", "effective_default_equals_base_times_one_plus_markup", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-71-cbam-certificate-cost-engine",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:80df4fc1195a5177c803aad81d51aabbfad003ca7e5c117591b4f557b278f2d9",
      "proptest_file_digest": "sha256:58a7c72b98a17c566d0c53aab9a04d7dea0a671475ebcdb751454bbb80a4f8aa",
      "proptest_file": "chaingraph/kernels/__proptests__/art-71-cbam-certificate-cost-engine.proptest.mjs",
      "properties_tested": ["certificates_required_nonnegative_integer", "gross_liability_nondecreasing_in_embedded_emissions", "certificates_required_exact_ceil_of_net_liability_over_eua_price", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-72-cbam-precursor-emissions-aggregator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:989771281b7268f99e74d59f151efd4deaf418e9c6e233529b873618190229fd",
      "proptest_file_digest": "sha256:ce522addb652eb02a3935ad996e360ff8ca623d7115e47de89fbe41f2d9d4637",
      "proptest_file": "chaingraph/kernels/__proptests__/art-72-cbam-precursor-emissions-aggregator.proptest.mjs",
      "properties_tested": ["cumulative_see_tco2e_nonnegative", "cumulative_see_tco2e_linear_in_quantity_tonnes", "data_quality_grade_bounded_to_declared_enum", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-73-taxonomy-alignment-scorer",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "CLASSIFICATION CORRECTED from the WU row's stated float:yes to float:no — direct measurement found zero floating-point arithmetic in compute() (pure string/enum/boolean decision logic, no toFixed/division/multiplication/numeric output). Forced CATEGORICAL boundary cases used instead of ULP forcing (SC met/partial/not-met, DNSH all-met vs single-gap vs empty-array-defaults, safeguards in-place/partial/none, primary-objective-appearing-in-its-own-DNSH-array edge).",
      "kernel_digest": "sha256:9b92c3c4c8082ee5def48e00030b928ad66b653ffea5f5dfb69b3356b9323ffa",
      "proptest_file_digest": "sha256:4dc85bf9d30dd101a9a9476c096aec247f560e2647d43300a4347806d63de36a",
      "proptest_file": "chaingraph/kernels/__proptests__/art-73-taxonomy-alignment-scorer.proptest.mjs",
      "properties_tested": ["is_aligned_exact_negation_free_prefix_check", "alignment_verdict_bounded_to_declared_prefixes", "dnsh_gaps_exact_notmet_subset_excluding_primary_objective"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-74-taxonomy-kpi-gar-aggregator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:5810a300b83afde6fbf0bba7ce4da33b6fce0152cfdd4ccf02eb94258ea957d3",
      "proptest_file_digest": "sha256:7b8ab1c6bd8306df79aad03e2d616b6cb4f349df046a70362134794efc936bf4",
      "proptest_file": "chaingraph/kernels/__proptests__/art-74-taxonomy-kpi-gar-aggregator.proptest.mjs",
      "properties_tested": ["aligned_pct_and_gar_bounded_0_to_100", "aligned_pct_exact_recompute_from_kpi_breakdown", "aligned_count_and_activity_count_exact", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-75-eugb-factsheet-validator",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "WU-stated float:no VERIFIED (not just inherited): kernel's only division (proceeds_aligned_pct) is immediately toFixed(2)-rounded and feeds a fixed 100%-threshold comparison plus an integer conformance-score tier table, same 'threshold on an already-rounded value' shape as B12's art-316. Forced CATEGORICAL boundary cases used instead of full ULP forcing, but include x/y*y!==x style amount forcing and the 0/0 denominator branch at the 100% proceeds threshold as a belt-and-suspenders safeguard beyond the WU's minimum.",
      "kernel_digest": "sha256:6764ffb26c2786330c5c9ec5912f6c5c37ae6e0e6b3c69efa0576e0cdb1a269f",
      "proptest_file_digest": "sha256:b99a383ec96d1062b4e655dfba0085610279048de33b50c5916bb78299395156",
      "proptest_file": "chaingraph/kernels/__proptests__/art-75-eugb-factsheet-validator.proptest.mjs",
      "properties_tested": ["proceeds_threshold_met_exact_100_pct_boundary", "label_ready_exact_logical_and_of_four_gates", "conformance_grade_exact_score_tier_and_score_bounded_0_100"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-76-climate-scenario-applicator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:b93b7309081c0f6c2d2a5f3e8728d9d2cd11f4701cc936c42efc0d4d29c7809a",
      "proptest_file_digest": "sha256:6640869cab61c2bf5c213f3bf51f34e589ae3c486348dab9a2b619e0fb9f04e9",
      "proptest_file": "chaingraph/kernels/__proptests__/art-76-climate-scenario-applicator.proptest.mjs",
      "properties_tested": ["stressed_pd_bounded_0_to_1", "carbon_price_assumption_nondecreasing_in_horizon_fixed_family", "carbon_price_assumption_exact_piecewise_interpolation", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-77-t1-settlement-readiness-diagnostic",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:3152f3bd790393117c348ef2ecfd1f0eab68504808ece058103511bd988c616d",
      "proptest_file_digest": "sha256:8e87bd7ee30bce7f932f2c61d2e9e0cdbee6b1fc0ca2f27d0122125f18445907",
      "proptest_file": "chaingraph/kernels/__proptests__/art-77-t1-settlement-readiness-diagnostic.proptest.mjs",
      "properties_tested": ["overall_score_bounded_and_grade_exact_tier", "overall_score_exact_weighted_sum_of_dim_scores", "overall_score_nondecreasing_when_any_dimension_improves", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-78-csdr-penalty-calculator",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "kernel_digest": "sha256:696b46349d69a4f615727264f5a7a59492a6dfc1eb9b73e631af142a6d436a80",
      "proptest_file_digest": "sha256:7c3aefdb9b5e2aa119d0979042438d4c97c1e86e9fd9aaca086bd965fd488cad",
      "proptest_file": "chaingraph/kernels/__proptests__/art-78-csdr-penalty-calculator.proptest.mjs",
      "properties_tested": ["penalty_amount_nonnegative", "penalty_amount_nondecreasing_in_fail_days", "penalty_amount_exact_rate_times_adj_price_times_days", "ULP_boundary_forcing"],
      "fixture_oracle_result": "PASS (1/1 vectors)",
      "run_proptests_result": "PASS"
    }
  ],
  "ulp_forcing_summary": "8 of 10 kernels required and carry ULP-boundary forcing (art-69, art-70, art-71, art-72, art-74, art-76, art-77, art-78), checked in each item above. The other 2 (art-73, art-75) carry forced categorical boundary cases: art-73's float:yes WU classification was CORRECTED to float:no after direct measurement found no floating-point arithmetic in the kernel at all (a genuine misclassification fix, per this row's FIX-2-CARRY instruction); art-75's float:no WU classification was VERIFIED as correct (one division present, but it only feeds an already-rounded threshold/tier comparison), and nonetheless carries forced boundary cases at that threshold as a categorical safeguard.",
  "run_proptests_aggregate": "10/10 shard files passed; node scripts/run-proptests.mjs — 318/318 across the full tree, no regression in prior shards",
  "fv_floor_coverage": "all 10 shard kernels confirmed absent from check-fv-floor-coverage.mjs --list-unfloored (grepped by exact tool_id); coverage gate reports 288/582 live kernels floored, clean ratchet"
}
