Verify production deploys actually shipped the right version
Check release prerequisites before deployment and verify the intended revision and critical behavior on the live system afterward.
18.7.0Add to Favorites
Why it matters
Ensure that production deployments actually serve the intended code version to users by verifying live systems instead of trusting deploy command output, preventing silent failures where pipelines succeed but old or broken versions remain live.
Outcomes
What it gets done
Check pre-flight conditions like migrations, feature flags, build cache, and environment variables before deploy runs
Compare live revision identifiers from running services against intended deployment versions
Detect silent failure modes including stuck canaries, missing config, and stale release pointers
Emit explicit SHIP or HOLD verdicts with specific blocking issues identified before reporting deployment success
Install
Add it to your toolbox
Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-pre-ship-gate | bash After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.
Reports
Agent outcome reports
No reports yet
Overview
Checks common release prerequisites before deployment and compares the intended revision with the running system afterward. It produces explicit SHIP or HOLD evidence. Use before production or staging releases and before claiming a change is live. Supply the real target and version endpoint, then verify critical behavior as well as revision identity.
What it does
Pre-Ship Gate checks the difference between a deployment command succeeding and the intended version actually serving users. It wraps an existing release process with pre-flight checks and live verification. It does not run the production deployment itself.
The workflow has three phases in order: examine release prerequisites, let the human or existing tooling perform the deploy, and verify the running system before reporting success. Pre-flight reviews common silent failure modes that can survive a green pipeline. Each item must be confirmed or explicitly flagged rather than assumed.
The migration check asks whether the target schema will be ready before new code serves traffic. The feature-flag check verifies the setting in the actual target environment. Build and cache checks examine changed artifact fingerprints and the possibility of an old CDN bundle. Release-pointer checks distinguish uploading a build from activating its revision. Staged-rollout checks identify traffic left at zero or waiting for manual promotion. Configuration checks establish that required environment variables and secrets exist in the target.
When to use - and when NOT to
Use before a production or staging push, before claiming a release is live, or when users still see old behavior after an apparently successful deploy. Migrations, flags, and canaries make the checks especially relevant.
A passing health status alone does not prove the right build is running. The probe may have reached a cached edge or an old instance. If the target environment, intended revision, or verification endpoint is unknown, clarify those details before relying on the gate. Environment-specific testing, load tests, and expert review still have their own roles.
Inputs and outputs
Inputs include the intended immutable revision, the actual target environment, the service's real version endpoint, and release-specific migration, flag, cache, pointer, rollout, and configuration details. Outputs are an explicit SHIP or HOLD verdict with named failing items and a post-deploy revision comparison.
The comparison logic in the supplied example is:
if [ "$INTENDED" = "$LIVE" ]; then
echo "Live revision $LIVE matches intended $INTENDED: verified shipped."
else
echo "MISMATCH: intended $INTENDED but live is $LIVE. Do not report shipped."
fi
Those variables must hold full immutable identities in the same format, obtained from the intended build and the intended live environment. Placeholder hosts and response fields need replacement before use. Never include secrets in health-check URLs.
Integrations
The gate works around existing deployment tooling and service-specific status endpoints. After cutover, fetch the running revision, compare it with the intended one, inspect initial production errors, and exercise the requested critical paths, including migration and flag behavior. A matching revision is necessary evidence but does not establish functional acceptance by itself.
If the revision differs, report the mismatch. If a canary has not promoted or a schema is unavailable, name that condition explicitly. Verification calls are read-oriented; production mutation remains the responsibility of the separately authorized deployment process.
Source README
Most bad deploys do not fail loudly. The pipeline goes green, the CLI prints "deployed", and the old or broken version is still what users hit. This skill is the gate you run right before a production deploy and right after, so an agent stops trusting deploy output and starts confirming what is actually live. It exists because "the deploy command exited 0" and "the new version is serving traffic" are two different facts, and agents routinely confuse them.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.