Skip to content

G0 whole-PR review coverage — 2026-08-17

Decision: COMPLETE_LOCAL_REVIEW_COVERAGE / NO_PUBLICATION_AUTHORITY

Pull request: rsasaki0109/lidar_slam_ros2#427

Whole-PR base: 86fa9b610c07ccf4d2b0f10939e17c129d34b40a

Initial reviewed tip: 6a8727a9014aea1ecfe8ea9c65d6f10cffb87cd3

Follow-up slice base: 3f4dd70cdc58ad421192559213cdee0bdc41eba8

Remote mutations performed: none

Why this gate exists

The original clean-candidate audit binds 116 paths at 6a8727a and says that any later non-documentation carrier change makes that exact audit stale. The seven-slice follow-up plan begins at the later 3f4dd70 baseline. Two commits sit between those boundaries, so a path-only review of the first audit plus the follow-up plan would otherwise leave their exact edits implicit.

This gate composes three sequential review phases and derives their inventories from Git:

  1. 86fa9b6...6a8727a — the original 116-path clean candidate;
  2. 6a8727a..3f4dd70 — the exact two-commit CI bridge below; and
  3. 3f4dd70...HEAD — every path owned once by the seven follow-up slices.

The checker requires those commits to form one linear ancestry, verifies each fixed inventory and review record, then requires the union of all phase paths to cover the final whole-PR diff with no missing or extraneous path. Phase overlap is expected: a later phase reviews the new delta of a path already introduced earlier.

Exact CI bridge review

The bridge contains exactly two commits and 11 modified paths:

  • 78061410dfd4ed61dce2b19b3a6ef6148005bcec refreshes only the two G0 evidence/decision documents at the then-current exact tip;
  • 3f4dd70cdc58ad421192559213cdee0bdc41eba8 changes only Python test source, correcting Jazzy ament_flake8 import order and two shell-fixture quote delimiters. It changes no product implementation, runtime default, schema, workflow, release profile, or production dependency.

The exact bridge inventory is:

  • docs/evidence/growth/g0-clean-candidate-audit-2026-08-11.md;
  • docs/evidence/growth/g0-external-action-decision-packet-2026-08-11.md;
  • graph_based_slam/test/test_mid360_robot_public_datasets.py;
  • graph_based_slam/test/test_product_python_tests_script.py;
  • lidarslam/test/test_audit_published_fixture.py;
  • lidarslam/test/test_check_fixture_publication.py;
  • lidarslam/test/test_check_issue_triage_proposal.py;
  • lidarslam/test/test_check_onboarding_trial_matrix.py;
  • lidarslam/test/test_collect_runtime_apt_packages.py;
  • lidarslam/test/test_measure_oci_archive.py; and
  • lidarslam/test/test_runtime_docker_image_contract.py.

Its sorted newline-terminated path inventory has SHA-256 dddadf04f04d38fcc86f0a4d4a7926a2eb8b9528e63df665750395a772c20416. git diff --check passes for the exact range. The bridge is review evidence, not a claim that the older 6a8727a audit covered later bytes.

Whole-PR result

python3 scripts/check_publication_slice_plan.py --json now reports both the follow-up slice inventory and the composed whole-PR inventory. It fails closed when a phase SHA, path count, path digest, bridge allowlist, review record, lineage edge, or final coverage set drifts. A green follow-up plan alone can no longer hide a gap between the clean-candidate and follow-up baselines.

The latest exact counts, digests, complete regression totals, and release-bundle identity are regenerated at the final local carrier rather than copied into this content-bearing evidence document.

Authority boundary

This audit performs local Git reads and local tests only. It does not authorize or perform a push, force push, PR update, review, ready transition, merge, release, tag, package/image publication, issue/community change, dataset download, mount, or benchmark run. Public Draft head verification and any non-force branch update remain separate exact-tip decisions.