ship-gate
Skill1 starsChanged 23 days agoMITView on GitHub
Verification gate for a Next.js-on-Vercel + Supabase + GitHub Actions stack, to run before claiming anything is shipped, deployed, live, merged, passing, or done. Use before saying a change is in production, before merging a PR, before reporting CI green, and before writing any status into a document — even if the user does not ask for verification. Trigger phrases include "is it live", "did it deploy", "ship it", "merge it", "is CI green", "confirm prod", "did that work". Encodes traps where the obvious check returns a false pass.
- Commits and pushes
11 other projects use a version of this.
Adopted by
Most recently taken up by
- darkweb19/skillstheir own version, first seen Nov 8, 2026
- kazemcodes/skill-treetheir own version, first seen Nov 8, 2026
- hamidettefagh/two-gatestheir own version, first seen Oct 28, 2026
- edenbuilds/agentlooptheir own version, first seen Oct 13, 2026
- sunnybhara/claude-startertheir own version, first seen Aug 14, 2026
- Hassaan146/claude-skillstheir own version, first seen Jul 25, 2026
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- unlearndev/skills★ 101same name
- Hassaan146/claude-skills★ 18same name
- csiddhant796-blip/claude-skills-collection★ 2same name
- Hussain-Elfalah/Agentic-Skills★ 2same name
- kazemcodes/skill-tree★ 1same name
- mahiunfiltered/claude-code-skills★ 1same name
- orkait/hyperstack★ 1same name
- darkweb19/skills★ 0same name
- edenbuilds/agentloop★ 0same name
- hamidettefagh/two-gates★ 0same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository27 other files it gives its agents.
- agent-workflow-builderSkill
- ai-evals-architectSkill
- ai-visibility-auditorSkill
- brand-foundation-researchSkill
- codebase-auditSkill
- cold-call-coachSkill
- community-group-builderSkill
- competitive-teardownSkill
- copywritingSkill
- decision-councilSkill
- digital-product-builderSkill
- fleet-briefSkill
- funnel-buildingSkill
- inbox-triageSkill
- knowledge-captureSkill
- lead-follow-upSkill
- lead-magnet-builderSkill
- master-prompt-builderSkill
- overnight-buildSkill
- prospecting-researchSkill
- realtor-website-builderSkill
- reference-video-editorSkill
- session-logSkill
- social-performance-coachSkill
- sphere-activationSkill
- vault-doctorSkill
- website-conversion-doctorSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 6 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Every rule here exists because the obvious check once returned a false pass.
- Distinctive: line 19
If no human has eyeballed the result, it is not "verified" — say what you actually checked instead.
- Distinctive: line 25
Verify with commit status against the deployed SHA, not a dashboard glance.
- Distinctive: line 51
If the test suite mocks the database globally, a passing unit test proves nothing about the database.
- Distinctive: line 52
Never compare-and-set on a trigger-managed column — the trigger changes it underneath the write.
- Distinctive: line 66
Never imply a gate ran when it did not.
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ship gate
Every rule here exists because the obvious check once returned a false pass. Run the gate before the claim, not after.
Adapt the specifics to your stack; the shape — what would make this claim false? — is the transferable part.
The claim rule
A claim about production requires a query against production.
A passing test is not prod. A merged PR is not prod. A green deploy is not prod. Each of those is a claim about a different system than the one you are asserting on.
If no human has eyeballed the result, it is not "verified" — say what you actually checked instead.
Deploy verification
- Know what actually triggers a deploy. On a git-integrated host it is the push, not a CLI invocation. Deploying by CLI when the project deploys by push produces a build that is not the one users get.
- Check the account that owns the project. A locally logged-in CLI may be authenticated as a personal account that does not own the production project — every command then succeeds against the wrong target, silently.
- Verify with commit status against the deployed SHA, not a dashboard glance.
- Confirm the deployment that is current production, not merely one that is READY. Several can be ready at once.
- Edge/serverless functions deploy separately from the app. A merged PR does not deploy an edge function; check its version explicitly.
- Client-only changes may need no function deploy — don't wait for one that will never come.
- Re-fetch the live manifest before asserting a version. Parallel work bumps versions underneath you.
CI verification
- Gate on every required context, not the first green one.
- Never gate on a piped command.
some-check | tailreports the exit code oftail, masking the real failure. In shells withoutPIPESTATUS(zsh differs from bash here), this is easy to get wrong — check the command's own status. steps: 0means the job never ran, not that it passed. A checks API can report a conclusion for a job that did no work.- A suspiciously fast failure with no steps is usually a billing or permissions problem, not a YAML problem.
- Re-running only failed jobs replays a stale snapshot of the branch. Update the branch first, then re-run.
- A checks list omits jobs that were never created. Absence of a failure is not evidence of a pass.
gh pr createrequires an explicit--base. Chained heredocs around it can fail silently.
Type and lint gates
- Large TypeScript projects may need an increased Node heap; without it
tscdies in a way that looks like a code error. - Know which directories your typechecker and linter actually cover. Edge-function directories are frequently excluded from both. If they run on a different runtime, check them with that runtime's own checker — a test job is not a type gate.
- Build in worktrees or clean checkouts, not a working directory with uncommitted drift.
Database
- Never push schema or run migrations casually against production. Apply schema through the reviewed path the project has chosen, once.
- Call new stored procedures against the real database before believing them. Mocks hide runtime errors that only appear with real types and real ambiguity.
- If the test suite mocks the database globally, a passing unit test proves nothing about the database.
- Never compare-and-set on a trigger-managed column — the trigger changes it underneath the write.
- Measure a change's blast radius against production data before merging. A filter that looks narrow against a local seed can match a very different share of real rows.
Environment traps
- Never assume the machine's timezone — run
date. Date-dependent tests fail on the offset, and the failure looks like a code bug. - An unset git identity can block deploys and surface as an unrelated network error.
- Set host environment variables from a file rather than inline assignment; shells and CLIs can embed trailing newlines that corrupt the value invisibly.
- Scheduled-job success is not job-effect success: a runner reporting
succeededmeans the invocation returned, not that the work happened. Verify the effect.
Output
State each gate as PASS (evidence) or NOT CHECKED (why).
Never imply a gate ran when it did not. If any gate fails or is unchecked, say plainly that the change is not verified — withholding the claim is correct.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

