{
  "schema_version": 1,
  "schema_uri": "https://rsasaki0109.github.io/lidar_slam_ros2/schemas/publication-slice-plan-v1.schema.json",
  "generated_at": "2026-08-17T20:15:04+09:00",
  "candidate": {
    "repository": "rsasaki0109/lidar_slam_ros2",
    "pull_request": 427,
    "base_sha": "3f4dd70cdc58ad421192559213cdee0bdc41eba8",
    "public_head_sha": "3ed632e6f6aa1e3ca7f32d893773de1079086ffb",
    "expected_path_count": 349,
    "expected_paths_sha256": "48a99e65edd16c172a5658767c23d7054ef3f296d43a5385a0946dc7d8329710",
    "scope": "worktree-delta-from-pr-base"
  },
  "whole_pr_review": {
    "base_sha": "86fa9b610c07ccf4d2b0f10939e17c129d34b40a",
    "expected_path_count": 396,
    "expected_paths_sha256": "b303b004014ddb097efa68b905c4438bebda5f07f867cbb07073de1f820f0a16",
    "coverage_policy": "union-covers-final-diff",
    "linear_history_required": true,
    "initial_review": {
      "start_sha": "86fa9b610c07ccf4d2b0f10939e17c129d34b40a",
      "end_sha": "6a8727a9014aea1ecfe8ea9c65d6f10cffb87cd3",
      "diff_mode": "three-dot",
      "expected_commit_count": 42,
      "expected_path_count": 116,
      "expected_paths_sha256": "e198d45b869f68042311eda9f9876d05bc1561a57c54bdffc75a9779d1b3cc14",
      "review_record": "docs/evidence/growth/g0-clean-candidate-audit-2026-08-11.md"
    },
    "bridge_review": {
      "start_sha": "6a8727a9014aea1ecfe8ea9c65d6f10cffb87cd3",
      "end_sha": "3f4dd70cdc58ad421192559213cdee0bdc41eba8",
      "diff_mode": "two-dot",
      "expected_commit_count": 2,
      "expected_path_count": 11,
      "expected_paths_sha256": "dddadf04f04d38fcc86f0a4d4a7926a2eb8b9528e63df665750395a772c20416",
      "allowed_paths": [
        "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",
        "lidarslam/test/test_runtime_docker_image_contract.py"
      ],
      "review_record": "docs/evidence/growth/g0-pr-review-coverage-2026-08-17.md"
    },
    "follow_up_review": {
      "start_sha": "3f4dd70cdc58ad421192559213cdee0bdc41eba8",
      "end_ref": "c5cbc9f81c5849109321ac3585b41afa5b6270fb",
      "diff_mode": "two-dot",
      "review_record": "docs/evidence/growth/g0-publication-slice-plan-2026-08-12.md"
    }
  },
  "review_slices": [
    {
      "id": "S1-runtime-safety",
      "order": 1,
      "title": "Runtime point-cloud and VoxelGrid safety",
      "review_outcome": "Malformed or oversized layouts, plus readable samples with empty frame IDs, fail closed without terminating the mapping process; rejected map updates preserve the movement threshold for an immediate safe retry, asynchronous exceptions stay inside the component boundary, and valid point clouds retain their fields.",
      "depends_on": [],
      "paths": [
        "docs/evidence/voxel-grid-overflow-safety-2026-08-11.md",
        "graph_based_slam/include/graph_based_slam/pointcloud_conversion.hpp",
        "graph_based_slam/include/graph_based_slam/registration_factory.hpp",
        "graph_based_slam/src/graph_based_slam_component_impl.hpp",
        "graph_based_slam/src/graph_slam_application.cpp",
        "graph_based_slam/src/graph_slam_offline_runner.cpp",
        "graph_based_slam/src/graph_slam_ros_adapter.cpp",
        "graph_based_slam/test/test_mid360_robot_public_dataset_map_runner.py",
        "graph_based_slam/test/test_mid360_robot_tools.py",
        "graph_based_slam/test/test_pointcloud_conversion.cpp",
        "scanmatcher/CHANGELOG.rst",
        "scanmatcher/CMakeLists.txt",
        "scanmatcher/include/scanmatcher/scanmatcher_component.h",
        "scanmatcher/src/scanmatcher_component.cpp",
        "scanmatcher/test/test_scanmatcher_voxel_grid_recovery.cpp",
        "scripts/lidarslam_tools/mid360_preflight.py"
      ],
      "verification": [
        "python3 -m pytest -q -p no:cacheprovider graph_based_slam/test/test_mid360_robot_tools.py -k frame",
        "source \"/opt/ros/${ROS_DISTRO:-jazzy}/setup.bash\" && colcon build --packages-up-to graph_based_slam scanmatcher && colcon test --packages-select graph_based_slam scanmatcher",
        "colcon test-result --verbose"
      ],
      "publication_gate": "PUBLIC_CI"
    },
    {
      "id": "S2-first-map-foundation",
      "order": 2,
      "title": "One-command first map and resilient runtime foundation",
      "review_outcome": "A user can inspect a bag, build a verified map, reopen it in a local 3D preview, recover from bounded runtime failures, and retry low-storage demo rejection without calculating the shortage or rebuilding the command. Product-dispatched native bag opens omit routine storage INFO while retaining WARN/ERROR, direct use, and explicit expert levels. A real guided completion shows only the selected profile, storage decision, honest progress, and one verified terminal handoff while direct expert execution detail remains available. Hidden routine workflow output remains checksum-bound, and an ordinary workflow failure replays a bounded diagnostic tail. The unchanged 5 GiB start preflight is exercised in real ROS, and a sealed expected SIGINT or SIGTERM gets one concise retained-evidence line without weakening ordinary failure or genuine startup and offline-completion timeout diagnostics.",
      "depends_on": [
        "S1-runtime-safety"
      ],
      "paths": [
        ".github/workflows/docker.yml",
        "Dockerfile",
        "docs/schemas/docker-map-bag-plan-v1.schema.json",
        "docs/schemas/first-map-demo-plan-v1.schema.json",
        "docs/schemas/preflight-v4.schema.json",
        "docs/schemas/preflight-v5.schema.json",
        "docs/schemas/preflight-v6.schema.json",
        "graph_based_slam/test/test_autoware_dogfood_script.py",
        "graph_based_slam/test/test_autoware_map_preflight.py",
        "graph_based_slam/test/test_autoware_map_run_diagnosis.py",
        "graph_based_slam/test/test_docker_demo_script.py",
        "graph_based_slam/test/test_mid360_robot_3d_map_preview.py",
        "graph_based_slam/test/test_mid360_robot_public_datasets.py",
        "lidarslam/launch/rko_lio_slam.launch.py",
        "lidarslam/test/test_autoware_map_runner_script.py",
        "lidarslam/test/test_docker_map_bag.py",
        "lidarslam/test/test_first_map_demo.py",
        "lidarslam/test/test_rko_lio_launch_config.py",
        "lidarslam/test/test_runtime_docker_image_contract.py",
        "lidarslam/test/test_view_autoware_map.py",
        "scripts/docker_map_bag.sh",
        "scripts/export_mid360_robot_3d_map_preview.py",
        "scripts/first_map_demo.py",
        "scripts/mid360_robot_3d_map_preview.py",
        "scripts/mid360_robot_loop_alignment_analyzer.py",
        "scripts/mid360_robot_public_datasets.py",
        "scripts/preflight_autoware_map_bag.py",
        "scripts/record_backend_input.sh",
        "scripts/run_autoware_map_from_bag.py",
        "scripts/run_first_map_demo.sh",
        "scripts/run_offline_determinism_check.sh",
        "scripts/run_rko_lio_graph_autoware_dogfood.sh",
        "scripts/view_autoware_map.py",
        "scripts/wait_for_offline_output_subscribers.sh"
      ],
      "verification": [
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_first_map_demo.py lidarslam/test/test_docker_map_bag.py lidarslam/test/test_view_autoware_map.py",
        "python3 -m pytest -q -p no:cacheprovider graph_based_slam/test/test_autoware_map_preflight.py graph_based_slam/test/test_docker_demo_script.py"
      ],
      "publication_gate": "PUBLIC_CI"
    },
    {
      "id": "S3-map-lifecycle",
      "order": 3,
      "title": "Sensor setup, session history, map editing, merging, and support",
      "review_outcome": "Users can move beyond a first map without hand-editing commands or losing provenance, recovery state, or support-safe evidence; confirmed starts move from one calibration decision through one concise product-owned progress stream to one terminal card, with exactly one safe Next action on success or failure and complete structured evidence retained. Internal delegated commands, YAML paths, topic/frame details, staging promises, lifecycle duplication, launch-log locations, and routine post-processing output stay out of guided output while direct expert run and dogfood output remain complete. The hidden output is retained in a manifest-bound workflow log, normal failure replays its bounded tail, and real complete-map plus Ctrl-C cleanup are exercised on one exact install. A verified result explicitly offers the first-class read-only report command instead of implying automatic sharing; the legacy spelling, compatibility-keyed structured action, and JSON schema remain stable, exact-installed human/JSON outputs match, and reads leave the session tree unchanged without archive creation or network access. An unchanged live stage stays visibly active through a bounded 30-second terminal heartbeat with monotonic elapsed time, no ETA or forward-progress claim, and no session-artifact rewrite. After the unchanged 5 GiB preflight, one Ctrl-C makes the stable CLI wait for the start helper, signals the complete isolated delegated process group, waits through bounded cleanup and terminal-evidence sealing, and returns through the same one-action recovery handoff without routine native reader INFO, a Python traceback, synthesized success, false timeout label, recent-launch-log dump, repeated failed command, or duplicate generic session error.",
      "depends_on": [
        "S2-first-map-foundation"
      ],
      "paths": [
        "docs/schemas/map-edit-plan-v1.schema.json",
        "docs/schemas/map-edit-receipt-v1.schema.json",
        "docs/schemas/map-merge-receipt-v1.schema.json",
        "docs/schemas/map-project-v1.schema.json",
        "docs/schemas/map-session-catalog-v1.schema.json",
        "docs/schemas/map-session-comparison-v1.schema.json",
        "docs/schemas/map-session-index-v1.schema.json",
        "docs/schemas/map-session-recovery-v1.schema.json",
        "docs/schemas/sensor-setup-rejection-v1.schema.json",
        "docs/schemas/sensor-setup-v1.schema.json",
        "docs/schemas/support-bundle-v1.schema.json",
        "graph_based_slam/test/test_map_edit.py",
        "graph_based_slam/test/test_map_merge.py",
        "lidarslam/test/test_sensor_setup_wizard.py",
        "lidarslam/test/test_session_compare.py",
        "lidarslam/test/test_session_history.py",
        "lidarslam/test/test_support_bundle.py",
        "scripts/apply_map_edit.py",
        "scripts/map_edit.py",
        "scripts/map_merge.py",
        "scripts/merge_map_sessions.py",
        "scripts/sensor_setup_wizard.py",
        "scripts/session_compare.py",
        "scripts/session_history.py",
        "scripts/support_bundle.py"
      ],
      "verification": [
        "source \"/opt/ros/${ROS_DISTRO:-jazzy}/setup.bash\" && python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_sensor_setup_wizard.py lidarslam/test/test_session_history.py lidarslam/test/test_session_compare.py lidarslam/test/test_support_bundle.py",
        "python3 -m pytest -q -p no:cacheprovider graph_based_slam/test/test_map_edit.py graph_based_slam/test/test_map_merge.py"
      ],
      "publication_gate": "LOCAL_REVIEW"
    },
    {
      "id": "S4-source-onboarding",
      "order": 4,
      "title": "Fresh-terminal source and Docker onboarding measurement",
      "review_outcome": "Humble and Jazzy users receive one exact six-package source route and a bounded Docker probe for either a release or a set-bound tag-free candidate, with dependency bootstrap, launcher activation, installed checks, authenticated exact-host GET-only public-readiness preflight and fixture audit, a read-only guided host-readiness card, content-bound Docker observer bootstrap, one-command run-to-session orchestration, a byte-bound privacy-safe validation receipt, and an auditable path for attaching retained measurements without rerunning a trial.",
      "depends_on": [
        "S2-first-map-foundation"
      ],
      "paths": [
        "docker/onboarding-trial-host.Dockerfile",
        "docs/evidence/growth/contributor-python-test-entrypoint-2026-08-11.md",
        "docs/evidence/onboarding/g0-source-humble-20260813-runtime-a.json",
        "docs/evidence/onboarding/g0-source-jazzy-20260813-runtime-a.json",
        "docs/evidence/ros-apt-dependency-readiness-2026-08-12.json",
        "docs/evidence/source-all-packages-install-2026-08-12.md",
        "docs/evidence/source-launcher-activation-2026-08-12.md",
        "docs/evidence/source-onboarding-public-preflight-2026-08-12.md",
        "docs/schemas/candidate-trial-execution-v1.schema.json",
        "docs/schemas/candidate-trial-readiness-v1.schema.json",
        "docs/schemas/candidate-trial-session-v1.schema.json",
        "docs/schemas/onboarding-measurement-supplement-v1.schema.json",
        "docs/schemas/onboarding-trial-matrix-v1.schema.json",
        "docs/schemas/onboarding-trial-v1.schema.json",
        "docs/schemas/source-quickstart-plan-v1.schema.json",
        "graph_based_slam/test/test_product_python_tests_script.py",
        "lidarslam/test/test_audit_published_fixture.py",
        "lidarslam/test/test_check_onboarding_trial.py",
        "lidarslam/test/test_complete_onboarding_measurements.py",
        "lidarslam/test/test_install_source_dependencies.py",
        "lidarslam/test/test_installed_product_cli_contract.py",
        "lidarslam/test/test_run_candidate_trial.py",
        "lidarslam/test/test_run_docker_onboarding_probe.py",
        "lidarslam/test/test_run_source_onboarding_probe.py",
        "lidarslam/test/test_source_quickstart.py",
        "lidarslam/test/test_start_candidate_trial.py",
        "scripts/audit_published_fixture.py",
        "scripts/check_installed_product_cli.py",
        "scripts/check_onboarding_trial.py",
        "scripts/complete_onboarding_measurements.py",
        "scripts/install_source_dependencies.sh",
        "scripts/lidarslam",
        "scripts/run_candidate_trial.py",
        "scripts/run_docker_onboarding_probe.py",
        "scripts/run_product_python_tests.sh",
        "scripts/run_source_onboarding_probe.py",
        "scripts/source_quickstart.sh",
        "scripts/start_candidate_trial.py"
      ],
      "verification": [
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_audit_published_fixture.py lidarslam/test/test_check_onboarding_trial.py lidarslam/test/test_install_source_dependencies.py lidarslam/test/test_source_quickstart.py lidarslam/test/test_run_candidate_trial.py lidarslam/test/test_start_candidate_trial.py lidarslam/test/test_run_docker_onboarding_probe.py lidarslam/test/test_run_source_onboarding_probe.py lidarslam/test/test_complete_onboarding_measurements.py",
        "workspace=$(mktemp -d) || exit $?; mkdir \"${workspace}/src\" || { status=$?; rmdir \"${workspace}\"; exit \"${status}\"; }; bash scripts/source_quickstart.sh --dry-run --workspace \"${workspace}\"; status=$?; rmdir \"${workspace}/src\" \"${workspace}\" || status=$?; exit \"${status}\""
      ],
      "publication_gate": "PUBLIC_CI"
    },
    {
      "id": "S5-distribution-readiness",
      "order": 5,
      "title": "NDT dependency, immutable candidate gate, and ROS distribution readiness",
      "review_outcome": "Release tooling reports package-manager and exact-head benchmark blockers honestly, retains an actionable NO_DATA report even when the benchmark root is empty, preflights the multi-gigabyte NTU and RTK-SLAM acquisitions without writes or network access, verifies exact official input identities, binds RTK evaluation assets and image publication to immutable identities, re-derives and byte-compares all four retained candidate artifacts without write authority, refuses historical version reuse, and keeps candidate, release, and moving-tag authority separate from local readiness.",
      "depends_on": [
        "S1-runtime-safety",
        "S4-source-onboarding"
      ],
      "paths": [
        ".gitattributes",
        ".github/workflows/candidate-image.yml",
        ".github/workflows/main.yml",
        ".github/workflows/release.yml",
        "CHANGELOG.md",
        "CITATION.cff",
        "RELEASING.md",
        "VERSION",
        "docs/comparison.md",
        "docs/contracts/canonical-ndt-convergence-v1.json",
        "docs/contracts/v1-readiness.json",
        "docs/distribution.md",
        "docs/evidence/growth/canonical-ndt-upstream-pr-packet-2026-08-12.md",
        "docs/evidence/growth/clone-free-docker-launcher-2026-08-12.md",
        "docs/evidence/growth/ntu-viral-attached-storage-recovery-2026-08-17.md",
        "docs/evidence/growth/rtk-slam-acquisition-hardening-2026-08-17.md",
        "docs/evidence/ndt-omp-release-review-2026-08-12.md",
        "docs/releases/v0.9.1.md",
        "docs/roadmap/v0.9.md",
        "docs/rosdistro-release.md",
        "docs/schemas/candidate-environment-readiness-v1.schema.json",
        "docs/schemas/candidate-image-request-v1.schema.json",
        "docs/schemas/candidate-image-set-audit-v1.schema.json",
        "docs/schemas/candidate-image-set-audit-v2.schema.json",
        "docs/schemas/candidate-image-set-v1.schema.json",
        "docs/schemas/candidate-image-v1.schema.json",
        "docs/schemas/canonical-ndt-convergence-contract-v1.schema.json",
        "docs/schemas/canonical-ndt-convergence-readiness-v1.schema.json",
        "docs/schemas/ndt-omp-release-readiness-v2.schema.json",
        "docs/schemas/package-manager-release-readiness-v1.schema.json",
        "docs/schemas/published-release-v1.schema.json",
        "docs/schemas/v1-readiness-report-v1.schema.json",
        "docs/v1-readiness.md",
        "graph_based_slam/CHANGELOG.rst",
        "graph_based_slam/package.xml",
        "graph_based_slam/test/test_attached_storage.py",
        "graph_based_slam/test/test_ntu_viral_download_script.py",
        "graph_based_slam/test/test_rtk_slam_download_script.py",
        "lidarslam/CHANGELOG.rst",
        "lidarslam/package.xml",
        "lidarslam/test/test_audit_candidate_image_set.py",
        "lidarslam/test/test_benchmark_summary_profiles.py",
        "lidarslam/test/test_build_docker_launcher_asset.py",
        "lidarslam/test/test_candidate_environment_readiness.py",
        "lidarslam/test/test_candidate_image_gate.py",
        "lidarslam/test/test_canonical_ndt_convergence.py",
        "lidarslam/test/test_ndt_omp_release_readiness.py",
        "lidarslam/test/test_package_manager_release_readiness.py",
        "lidarslam/test/test_published_release.py",
        "lidarslam/test/test_release_image_promotion.py",
        "lidarslam/test/test_v1_readiness.py",
        "lidarslam_msgs/CHANGELOG.rst",
        "lidarslam_msgs/package.xml",
        "packaging/ndt_omp/koide3-ndt-omp-lidarslam-priors.patch",
        "packaging/ndt_omp/lidarslam-canonical-ndt-transition.patch",
        "scanmatcher/package.xml",
        "scripts/attached_storage.py",
        "scripts/audit_candidate_image_set.py",
        "scripts/benchmark_summary.py",
        "scripts/build_docker_launcher_asset.py",
        "scripts/build_release_bundle.py",
        "scripts/check_candidate_environment.py",
        "scripts/check_canonical_ndt_convergence.py",
        "scripts/check_ndt_omp_release_readiness.py",
        "scripts/check_package_manager_release_readiness.py",
        "scripts/check_published_release.py",
        "scripts/check_v1_readiness.py",
        "scripts/create_candidate_image_record.py",
        "scripts/download_ntu_viral_tnp01.sh",
        "scripts/download_rtk_slam_dataset.py",
        "scripts/release_profiles.yaml",
        "scripts/run_release_readiness_checks.sh",
        "scripts/validate_candidate_image_request.py",
        "scripts/verify_candidate_image_set.py"
      ],
      "verification": [
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_audit_candidate_image_set.py lidarslam/test/test_candidate_image_gate.py",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_canonical_ndt_convergence.py lidarslam/test/test_ndt_omp_release_readiness.py lidarslam/test/test_package_manager_release_readiness.py lidarslam/test/test_release_image_promotion.py lidarslam/test/test_v1_readiness.py",
        "python3 scripts/check_ndt_omp_release_readiness.py --json",
        "python3 scripts/check_canonical_ndt_convergence.py --json",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_build_docker_launcher_asset.py lidarslam/test/test_published_release.py",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_benchmark_summary_profiles.py",
        "python3 -m pytest -q -p no:cacheprovider graph_based_slam/test/test_ntu_viral_download_script.py graph_based_slam/test/test_rtk_slam_download_script.py",
        "bash scripts/download_ntu_viral_tnp01.sh --dry-run && bash -n scripts/run_release_readiness_checks.sh",
        "python3 scripts/download_rtk_slam_dataset.py --sequence construction_seq2 --eval-assets --dry-run --json"
      ],
      "publication_gate": "MAINTAINER_DECISION"
    },
    {
      "id": "S6-product-shell-integration",
      "order": 6,
      "title": "Beginner-facing product shell, installed surface, docs, and support entrypoints",
      "review_outcome": "The lower-level capabilities appear as coherent three-goal README and canonical Getting Started choosers, a no-argument home, stable CLI contract, path-private doctor with one dependency-ordered Do this now action and copy-ready low-storage recovery, issue-driven other-PointCloud2 doctor-to-start handoff without tracked launch/YAML edits, bounded user-reported visual-map triage through the retained-run inspector, installed runtime surface, copy-ready and deployment-provenance-bound documentation, dependency-gated and schema-valid contributor next actions that keep one independent maintainer preview moving while #422 remains blocked for contributors, bind its title, labels, heading-free body, and digests without granting issue authority, and require PR #427 merged plus an exact public-develop queue match before publication review, source- and evidence-hashed issue-triage review packets whose live #69 response fails closed on exact public Draft/CI and stable-release drift and have no write mode, schema-valid first-map handoff JSON with an explicit first-class report command, compact reviewed attachment/copy/privacy guidance, byte-identical legacy compatibility, and a demonstrated no-write/no-network installed path whose focused help exposes no ZIP option, honest FAIL-without-receipt validation intake, pre-session bug intake without fake ZIP claims, path-free public doctor evidence with stable finding codes and no bag/topic/frame/command/free-text disclosure, every human bag report carries one shell-safe exact-input public-evidence handoff while keeping the full report local, a product-dispatched ready bag report replaces lower-level mapping alternatives with one shell-safe exact-input start action while a finding-bearing report withholds start for an exact doctor retry, a bounded compact product card omits topic/frame names and secondary finding prose while exact private JSON and the direct expert report retain complete detail, location-safe Autoware issue intake that excludes precise projector coordinates and map geometry without weakening required diagnostics/privacy, and redaction-first benchmark intake that preserves public identity, configuration shape, and key metrics without requesting private bags, paths, geometry, or raw artifacts, neutral GLIM usability scorecard with a schema-bound GET-only public pair preflight, SHA-bound preparation receipt, retained untouched source archive, receipt-required final validation, and atomically visible collision-preserving GLIM reference caching, a shared helper that obtains existing gh credentials without exposing them and attaches them only to exact GitHub HTTPS GETs, claim-bounded social demo media, validated anonymous review routing/ledger surfaces, one-option Draft/environment/release transition auditing with release-state-bound fresh-packet eligibility, and an atomic prepare-then-run observer path that derives exact published or candidate identities and never invents a tag or a human measurement.",
      "depends_on": [
        "S1-runtime-safety",
        "S2-first-map-foundation",
        "S3-map-lifecycle",
        "S4-source-onboarding",
        "S5-distribution-readiness"
      ],
      "paths": [
        ".github/ISSUE_TEMPLATE/autoware-pointcloud-map.yml",
        ".github/ISSUE_TEMPLATE/benchmark-report.yml",
        ".github/ISSUE_TEMPLATE/bug-report.yml",
        ".github/ISSUE_TEMPLATE/config.yml",
        ".github/ISSUE_TEMPLATE/first-map-validation.yml",
        ".github/ISSUE_TEMPLATE/sensor-support.yml",
        ".github/workflows/docs-site.yml",
        "CONTRIBUTING.md",
        "README.md",
        "SUPPORT.md",
        "docs/autoware-map-authoring.md",
        "docs/autoware-quickstart.md",
        "docs/benchmarking.md",
        "docs/cli-compatibility.md",
        "docs/contracts/cli-v1.json",
        "docs/contracts/contributor-starter-queue-v1.json",
        "docs/contracts/first-map-validator-cohort-v1.json",
        "docs/contracts/g0-onboarding-matrix-evidence-v1.json",
        "docs/contracts/glim-usability-scorecard-evidence-v1.json",
        "docs/contracts/product-draft-review-routing-v1.json",
        "docs/contracts/social-demo-media-v1.json",
        "docs/evidence/growth/2026-08-13.json",
        "docs/evidence/growth/2026-08-15.json",
        "docs/evidence/growth/2026-08-17.json",
        "docs/evidence/growth/community-contributor-backlog-2026-08-11.md",
        "docs/evidence/growth/contributor-product-surface-sync-2026-08-12.md",
        "docs/evidence/growth/first-map-validator-cohort-launch-packet-2026-08-12.md",
        "docs/evidence/growth/first-map-validator-cohort-state.json",
        "docs/evidence/growth/glim-parity-system-doctor-2026-08-12.md",
        "docs/evidence/growth/glim-reference-cache-integrity-2026-08-16.md",
        "docs/evidence/growth/glim-usability-scorecard-contract-2026-08-12.md",
        "docs/evidence/growth/japanese-quickstart-2026-08-12.md",
        "docs/evidence/growth/leo-drive-compressed-playback-2026-08-16.md",
        "docs/evidence/growth/odometry-tf-bag-preflight-2026-08-17.md",
        "docs/evidence/growth/odometry-tf-timing-preflight-2026-08-17.md",
        "docs/evidence/growth/onboarding-matrix-index-2026-08-12.md",
        "docs/evidence/growth/open-issue-triage-proposal-2026-08-11.json",
        "docs/evidence/growth/open-issue-triage-proposal-2026-08-11.md",
        "docs/evidence/growth/public-docs-deployment-provenance-2026-08-16.md",
        "docs/evidence/growth/published-onboarding-identity-2026-08-16.md",
        "docs/evidence/growth/social-demo-media-safety-2026-08-16.md",
        "docs/evidence/interactive-home-2026-08-12.md",
        "docs/external-first-map-validation.md",
        "docs/g0-readiness.md",
        "docs/getting-started-ja.md",
        "docs/getting-started.md",
        "docs/golden-path-cli.md",
        "docs/growth-scorecard.md",
        "docs/index.md",
        "docs/onboarding-trial-execution.md",
        "docs/onboarding-trials.md",
        "docs/product-contract.md",
        "docs/review-routing.md",
        "docs/roadmap/1000-stars-2026-2029.md",
        "docs/roadmap/1000-stars.md",
        "docs/schemas/candidate-trial-preparation-v1.schema.json",
      "docs/schemas/contributor-next-action-v1.schema.json",
      "docs/schemas/contributor-starter-queue-v1.schema.json",
      "docs/schemas/diagnosis-v1.schema.json",
      "docs/schemas/docs-deployment-audit-v1.schema.json",
        "docs/schemas/docs-deployment-manifest-v1.schema.json",
        "docs/schemas/first-map-handoff-v1.schema.json",
        "docs/schemas/first-map-validator-cohort-state-v1.schema.json",
        "docs/schemas/first-map-validator-cohort-v1.schema.json",
        "docs/schemas/g0-readiness-report-v1.schema.json",
        "docs/schemas/glim-reference-cache-v1.schema.json",
        "docs/schemas/growth-snapshot-v1.schema.json",
        "docs/schemas/issue-triage-application-packet-v1.schema.json",
        "docs/schemas/issue-triage-proposal-v1.schema.json",
        "docs/schemas/onboarding-matrix-evidence-index-v1.schema.json",
        "docs/schemas/onboarding-matrix-observer-packet-v1.schema.json",
        "docs/schemas/onboarding-matrix-observer-packet-v2.schema.json",
        "docs/schemas/onboarding-matrix-observer-packet-v3.schema.json",
        "docs/schemas/product-draft-review-ledger-report-v1.schema.json",
        "docs/schemas/product-draft-review-ledger-v1.schema.json",
        "docs/schemas/product-draft-review-routing-report-v1.schema.json",
        "docs/schemas/product-draft-review-routing-v1.schema.json",
        "docs/schemas/public-doctor-evidence-v1.schema.json",
        "docs/schemas/published-onboarding-identity-v1.schema.json",
        "docs/schemas/social-demo-media-manifest-v1.schema.json",
        "docs/schemas/social-demo-media-v1.schema.json",
        "docs/schemas/system-doctor-v1.schema.json",
        "docs/schemas/usability-scorecard-evidence-index-v1.schema.json",
        "docs/schemas/usability-scorecard-pair-preparation-v1.schema.json",
        "docs/schemas/usability-scorecard-trial-v1.schema.json",
        "docs/social/autoware_map_authoring_post_v0.9.1.md",
        "docs/usability-scorecard.md",
        "docs/workflows.md",
        "graph_based_slam/CMakeLists.txt",
        "graph_based_slam/test/test_docs_entrypoints.py",
        "graph_based_slam/test/test_lidarslam_product_cli.py",
        "lidarslam/CMakeLists.txt",
        "lidarslam/images/social_autoware_map_authoring.png",
        "lidarslam/images/social_autoware_map_authoring_demo.en.vtt",
        "lidarslam/images/social_autoware_map_authoring_demo.manifest.json",
        "lidarslam/images/social_autoware_map_authoring_demo.mp4",
        "lidarslam/product-runtime-files.txt",
        "lidarslam/test/test_check_g0_readiness.py",
        "lidarslam/test/test_check_issue_triage_proposal.py",
        "lidarslam/test/test_check_onboarding_trial_matrix.py",
        "lidarslam/test/test_check_usability_scorecard.py",
        "lidarslam/test/test_cli_interactive_home.py",
        "lidarslam/test/test_cli_option_contract.py",
        "lidarslam/test/test_collect_growth_snapshot.py",
        "lidarslam/test/test_contributor_starter_queue.py",
        "lidarslam/test/test_docs_deployment_provenance.py",
        "lidarslam/test/test_first_map_validator_cohort.py",
        "lidarslam/test/test_github_api_auth.py",
        "lidarslam/test/test_glim_reference_cache.py",
        "lidarslam/test/test_lidarslam_doctor.py",
        "lidarslam/test/test_lidarslam_guided.py",
        "lidarslam/test/test_open_data_applanix_velodyne_gnss_benchmark_script.py",
        "lidarslam/test/test_open_data_applanix_velodyne_gnss_smoke_script.py",
        "lidarslam/test/test_prepare_candidate_trial.py",
        "lidarslam/test/test_prepare_issue_triage_application.py",
        "lidarslam/test/test_prepare_onboarding_matrix_packet.py",
        "lidarslam/test/test_prepare_rosbag2_playback.py",
        "lidarslam/test/test_prepare_usability_scorecard.py",
        "lidarslam/test/test_prepare_usability_scorecard_pair.py",
        "lidarslam/test/test_product_draft_review_ledger.py",
        "lidarslam/test/test_product_draft_review_routing.py",
        "lidarslam/test/test_published_onboarding_identity.py",
        "lidarslam/test/test_record_usability_scorecard_pair.py",
        "lidarslam/test/test_social_demo_media.py",
        "mkdocs.yml",
        "scripts/check_g0_readiness.py",
        "scripts/check_onboarding_trial_matrix.py",
        "scripts/check_product_draft_review_routing.py",
        "scripts/check_public_docs_deployment.py",
        "scripts/check_published_onboarding_identity.py",
        "scripts/check_usability_scorecard.py",
        "scripts/collect_growth_snapshot.py",
        "scripts/compare_with_glim.sh",
      "scripts/completions/lidarslam-map.bash",
      "scripts/contributor_starter_queue.py",
      "scripts/diagnose_autoware_map_run.py",
      "scripts/first_map_validator_cohort.py",
        "scripts/generate_docs_deployment_manifest.py",
        "scripts/generate_social_autoware_demo_video.py",
        "scripts/generate_social_autoware_map_authoring_card.py",
        "scripts/github_api_auth.py",
        "scripts/glim_reference_cache.py",
        "scripts/lidarslam_cli.py",
        "scripts/lidarslam_doctor.py",
        "scripts/lidarslam_guided.py",
        "scripts/prepare_candidate_trial.py",
        "scripts/prepare_issue_triage_application.py",
        "scripts/prepare_onboarding_matrix_packet.py",
        "scripts/prepare_rosbag2_playback.py",
        "scripts/prepare_usability_scorecard.py",
        "scripts/prepare_usability_scorecard_pair.py",
        "scripts/product_draft_review_ledger.py",
        "scripts/record_usability_scorecard_pair.py",
        "scripts/run_open_data_applanix_velodyne_gnss_benchmark.sh",
        "scripts/run_open_data_applanix_velodyne_gnss_smoke.sh"
      ],
      "verification": [
        "source \"/opt/ros/${ROS_DISTRO:-jazzy}/setup.bash\" && python3 -m pytest -q -p no:cacheprovider graph_based_slam/test/test_docs_entrypoints.py graph_based_slam/test/test_lidarslam_product_cli.py",
        "source \"/opt/ros/${ROS_DISTRO:-jazzy}/setup.bash\" && python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_support_bundle.py lidarslam/test/test_installed_product_cli_contract.py",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_check_issue_triage_proposal.py lidarslam/test/test_check_onboarding_trial_matrix.py lidarslam/test/test_check_usability_scorecard.py lidarslam/test/test_cli_interactive_home.py lidarslam/test/test_cli_option_contract.py lidarslam/test/test_collect_growth_snapshot.py lidarslam/test/test_contributor_starter_queue.py lidarslam/test/test_glim_reference_cache.py lidarslam/test/test_github_api_auth.py lidarslam/test/test_lidarslam_doctor.py lidarslam/test/test_lidarslam_guided.py lidarslam/test/test_prepare_candidate_trial.py lidarslam/test/test_prepare_issue_triage_application.py lidarslam/test/test_prepare_onboarding_matrix_packet.py lidarslam/test/test_prepare_usability_scorecard.py lidarslam/test/test_prepare_usability_scorecard_pair.py lidarslam/test/test_product_draft_review_ledger.py lidarslam/test/test_product_draft_review_routing.py lidarslam/test/test_published_onboarding_identity.py lidarslam/test/test_record_usability_scorecard_pair.py lidarslam/test/test_social_demo_media.py",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_check_g0_readiness.py",
        "python3 scripts/check_onboarding_trial_matrix.py --json",
        "python3 scripts/check_g0_readiness.py --json",
        "python3 scripts/check_usability_scorecard.py --json",
        "python3 scripts/contributor_starter_queue.py --json",
        "python3 scripts/prepare_issue_triage_application.py --json",
        "python3 scripts/first_map_validator_cohort.py --json",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_first_map_validator_cohort.py",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_docs_deployment_provenance.py",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_prepare_rosbag2_playback.py lidarslam/test/test_open_data_applanix_velodyne_gnss_benchmark_script.py lidarslam/test/test_open_data_applanix_velodyne_gnss_smoke_script.py",
        "mkdocs build --strict"
      ],
      "publication_gate": "PUBLIC_CI"
    },
    {
      "id": "S7-publication-control",
      "order": 7,
      "title": "Exact publication inventory and authority boundary",
      "review_outcome": "Every follow-up path has one review owner, dependency order is explicit, and a valid local plan cannot authorize or claim a GitHub mutation.",
      "depends_on": [
        "S1-runtime-safety",
        "S2-first-map-foundation",
        "S3-map-lifecycle",
        "S4-source-onboarding",
        "S5-distribution-readiness",
        "S6-product-shell-integration"
      ],
      "paths": [
        "docs/evidence/growth/g0-current-action-packet-2026-08-14.md",
        "docs/evidence/growth/g0-pr-review-coverage-2026-08-17.md",
        "docs/evidence/growth/g0-publication-slice-plan-2026-08-12.json",
        "docs/evidence/growth/g0-publication-slice-plan-2026-08-12.md",
        "docs/schemas/publication-slice-plan-v1.schema.json",
        "lidarslam/test/test_check_publication_slice_plan.py",
        "scripts/check_publication_slice_plan.py"
      ],
      "verification": [
        "python3 scripts/check_publication_slice_plan.py --json",
        "python3 -m pytest -q -p no:cacheprovider lidarslam/test/test_check_publication_slice_plan.py"
      ],
      "publication_gate": "MAINTAINER_DECISION"
    }
  ],
  "authority": {
    "status": "LOCAL_PLAN_ONLY",
    "github_writes_authorized": false,
    "remote_mutations_performed": false,
    "next_external_action": "maintainer direction outside this plan for exact candidate tip and non-force PR update"
  }
}
