Why it has leverage
One decision covers every release path.
It turns source, build, signing, and release controls into an enforced outcome: unverifiable software does not run.
A short field manual for making software release paths harder to poison—and easier to verify.
Start with one deployment rule. Use six field notes for everyday decisions. Keep the twelve controls as a checklist.
If you do one thing
ONE CONTROL // MAXIMUM COVERAGE
Highest-leverage single move
Only ship code when you can prove where it came from and how it was built.
Production accepts only the exact artifact whose signed evidence proves an approved source and trusted builder produced it.
DEFAULT // REJECTWhy it has leverage
It turns source, build, signing, and release controls into an enforced outcome: unverifiable software does not run.
What it cannot prove
It proves where and how software was built. It does not prove the code has no vulnerabilities or that every approved person and platform is benign.
From recent practice
SMALL DECISIONS // REUSABLE HABITS
These are generalized field notes from recent engineering and infrastructure work. The sources validate each practice; the personal details are intentionally kept private.
What happenedBefore running an unfamiliar project, I checked its install scripts, dependency sources, and expected network destinations first.
Make it a habitTreat installation as code execution. Inspect first, use isolation, and allow only the scripts and network access the project needs.
What happenedDuring a trusted security tool’s supply-chain incident, I checked the exact version and digest instead of trusting the project name or “latest.”
Make it a habitPin executable inputs to a full commit SHA or digest, then compare that exact identity with the incident report.
What happenedWhen a tag existed but the release workflow had not completed, I treated the release as missing—not mostly done.
Make it a habitVerify the outcome: artifact digest, completed workflow, signature, and provenance. A label is not evidence.
What happenedDuring a signing-key rotation, automation paused at the secret boundary until the expected revision, identity, and file permissions were verified.
Make it a habitKeep trust-root changes deliberate. Separate build code from signing authority and prefer short-lived, narrowly scoped credentials.
What happenedI moved repeatable release checks—immutable tags, manifests, signatures, and hashes—into one shared release pattern instead of relying on memory.
Make it a habitCreate one paved release path with secure defaults. If required evidence is missing, the shared path should fail closed.
What happenedFor a domain transfer, I unlocked the domain only for the transfer window and confirmed the lock afterward.
Make it a habitApply the same shape to automation: locked or read-only by default, narrow elevation for one task, then verify that access ended.
The twelve controls
SOURCE → RUNTIME → RECOVERY
Start with control 01. Add the others to make its evidence more trustworthy and recovery faster.
Plain EnglishOnly ship code when you can prove where it came from and how it was built.
Reject an artifact unless its digest, source, build definition, builder identity, and signed provenance match policy.
Plain EnglishGuard the files and settings that decide what gets built.
Require strong authentication and review for source, workflow, release-policy, branch, and tag changes.
Plain EnglishUse the exact tool or dependency version you already checked.
Pin actions, images, installers, and toolchains by full commit or digest—not a floating tag or version range.
Plain EnglishStop and look before adding new third-party code.
Treat a new package, owner, maintainer, install script, or unusual release as a new trust decision.
Plain EnglishKeep a parts list for every release.
Create an SPDX or CycloneDX inventory from resolved release inputs and bind it to the artifact digest.
Plain EnglishGive every build a clean room.
Use a fresh environment, prevent cross-run influence, and keep signing material away from user-controlled build steps.
Plain EnglishGive automation only the access it needs, only while it needs it.
Default tokens to read-only and use short-lived, job-scoped identity for the smallest necessary permission set.
Plain EnglishTest once, then ship those exact same bytes.
Move the same immutable artifact through test, staging, and production. Do not rebuild it per environment.
Plain EnglishKeep the receipts attached to the code.
Attach provenance, SBOM, policy results, and source revision to the exact artifact they describe.
Plain EnglishMake sure someone else can rebuild the important stuff.
Independently rebuild critical releases and compare digests to expose undeclared inputs or a compromised builder.
Plain EnglishKeep checking—trusted things can change.
Plain EnglishPractice getting bad code out before it happens for real.
Practice tracing, revoking, rebuilding, rolling back, and notifying before a real compromise forces the sequence.
Start today
Pick one production service and make the full path visible before trying to fix everything at once.
Check the evidenceBefore installing a new tool or dependency, check what it will execute and where it will connect.
Replace one floating version such as “latest” with the exact commit or image you already checked.
Try shipping code from the wrong place or with changed contents. Your system should stop it.
Source index
PRIMARY GUIDANCE // OPEN STANDARDS
Every recommendation above links to its closest source. This smaller index collects the references most useful for understanding and implementation.
Framework
Practice
Evidence
Built to be challenged
OPEN DOCTRINE // VERSIONED EVIDENCE
This is an opening draft. The intended next step is a public repository for issue reports, counterexamples, implementation notes, and versioned releases.
Repository publication // next