3.2 KiB
Scenario aggregate removal: captured checks
Create-only packaging for explicitly named, closed removal-app-* runs under CHECKOUT/.local/scenario-group-gates. Python 3.11+ standard library; no Cargo, Git, network, source execution or native process is used. Adapted from the reviewed semantic-reorder checks tools; input capsules remain deduplicated by SHA-256, with every original logical run path retained.
python -B prepare.py --root CHECKOUT --runs removal-app-scenario-1 removal-app-scenario-2 --check-only
python -B prepare.py --root CHECKOUT --runs CLOSED_RUN_NAMES --output NEW_DIRECTORY
python -B NEW_DIRECTORY/verify.py
Replace CLOSED_RUN_NAMES with the explicit complete set intended for delivery, including failed attempts. The tool does not silently discover or select runs. It refuses a pre-existing output directory, active/incomplete runs, changed-input runs and runs missing an exact source-proof receipt. It validates all selected data in memory before creating output. The supplied two-run example is historical demonstration, not a complete final delivery inventory. Do not package an active run.
Output contains evidence.zip, manifest.json, files.json, the packager, standalone verifier and this README. Raw stdout/stderr, started/process/result receipts, input maps/ZIPs and source proofs retain exact bytes. Measured capture helpers and the source comparator are included as data. Supply repeatable --helper PATH or --comparator PATH when a historical measured helper is no longer at its default checkout path.
Verification checks outer file and ZIP inventories/hashes, safe member paths, exact nested input ZIP membership and bytes against its map, dynamic input counts (currently 823), unchanged closed-run receipts, command/time/process consistency, executable Cargo-record relationships, proof result/map/count/name bindings and comparator provenance. The existing capture contract includes all 71 tracked patched-widget vendor files. Every recorded exit code is printed; failures remain failures regardless of package consistency PASS.
Captured head and the proof's named commit retain distinct meanings. The offline verifier validates the proof's metadata and pinned comparator, but does not execute it, read Git objects, establish that captured source matches Git, or rehash omitted executable bytes. The archived source bytes are the independently hash-checkable input witness. Source attribution ultimately relies on the separately performed source comparison. Neither successful packaging nor a source proof establishes test success, hermetic builds, native usability, integration, release acceptance or issue completion.
Maintainer selfcheck (only closed runs; fresh scratch output beneath this tools directory):
python -B selfcheck.py --root CHECKOUT --runs removal-app-scenario-1 removal-app-scenario-2 --output TOOLS_DIRECTORY/selfcheck-package-1
It verifies exact original raw equality, refuses existing output, and mutates only in-memory copies to test corruption rejection. It never edits the original captures or executes archived helpers. Run the standalone verifier again after copying a final package to its delivery location. Published outer pins provide integrity, not an external signature or trust anchor.