Customs
Install Gate Evidence
Operational evidence for the Customs install gate. Customs blocks poisoned package lifecycle hooks before they run and emits an offline-verifiable Ed25519 receipt. This page reflects a controlled-fixture verification path, not production package traffic.
Red-team replay
Attack Corpus
Control install executes the marker. Customs stages with ignore-scripts, denies, and writes a receipt.
Poisoned postinstall scanner is denied before it can inspect the environment.
preinstall and prepare aliases are treated as denied lifecycle surface.
Recorded as a scope gap. No install lifecycle hook means Customs does not claim runtime blocking yet.
Verification path
Verification Runbook
npm run release:smoke
npm run customs:verify-receipt -- artifacts/poisoned-install-receipt.json --trusted-public-key artifacts/customs-issuer-public.jwk.json
The controlled test package writes
POSTINSTALL_RAN.txt only if its lifecycle script
executes. A passing Customs run denies the install, keeps the
marker absent, writes the receipt, and verifies it against an
out-of-band trusted public key.
Product claim: Customs gates install-lifecycle execution and blocks Clinejection/Nx-style poisoned lifecycle hooks before they run.
Release evidence