gate
Skill3 starsChanged 21 days agoMITView on GitHub
Run your Definition-of-Done and security gate against the current change, now, with real quoted command output. Use when the user types /gate, asks to "run the gate", "prove it works", or "verify before I ship", or before declaring a task done.
32 other projects use a version of this.
Adopted by
Most recently taken up by
- amirf147/active-desktop-context-enginetheir own version, first seen Nov 8, 2026
- ronniepinnell/caspertheir own version, first seen Nov 8, 2026
- BSSE23047/nauraiz-devtheir own version, first seen Nov 8, 2026
- per-simmons/claude-game-studiotheir own version, first seen Nov 8, 2026
- blauwtje/exotheir own version, first seen Nov 1, 2026
- Railly/skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use new, build and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
codebycoreySkillnew
Start a new change with a proposal. Use when starting a feature, creating a proposal, or beginning planned work.
Also in 3 projects that use this
Microsoft AzureSkillbuild
Build the TypeSpec Rust emitter from source. Run this after cloning the repo, after pulling changes, or when TypeScript source files have been modified.
Also in 5 projects that use this
genomewalkerSkillcheckpoint
Save a checkpoint of task status, decisions, active files, and next steps
Also in 3 projects that use this
VercelSkillinvestigate
Investigate an issue report, or analyze the constraints of a proposed change, with strict, evidence-driven diagnosis.
Also in 3 projects that use this
BlockSkillplan
Draft a TDD, PRD, or lightweight plan in the conversation without committing it.
Also in 4 projects that use this
GitHubSkillrefactor
Surgical code refactoring to improve maintainability without changing behavior. Covers extracting functions, renaming variables, breaking down god functions, improving type safety, eliminating code smells, and applying design patterns. Less drastic than repo-rebuilder; use for gradual improvements.
Also in 3 projects that use this
Other versions32 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 32
- plugin87/ux-ui-agent-skills★ 3.1ksame name
- guardana/guardana★ 203same name
- skillberry-ai/cap-evolve★ 69same name
- assaio/assaio★ 63same name
- Cleveland-RD/hivehouse★ 46same name
- ProjectAJ14/eklavya★ 29same name
- Railly/skills★ 11same name
- BenjaminG/ai-skills★ 4same name
- dadwadw233/team-collab-skills★ 4same name
- per-simmons/claude-game-studio★ 4same name
22 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 repository11 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- braintrustSkill
- demoSkill
- explain-prSkill
- full-output-enforcementSkill
- impeccableSkill
- sanad-implementationSkill
- sanadSkill
- shipSkill
- specSkill
- worktreeSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 30 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Choose behavior evidence: Read reference/behavior-proof.md for a behavior change and the proof-by-change-type and mechanical-checks …
- Distinctive: line 42
Real proof or no claim: Every "builds / tests pass / works" line is backed by the actual command and its output quoted in your reply.
- Distinctive: line 47
Quote the decisive lines,: not the whole scroll: the final error/warning count, the test tally, the HTTP status + body, the row counts.
- Very specific: line 48
No silent skips: Run every step; name any you skip and why (– in the verdict).
- Distinctive: line 51
Verify at the cheapest correct rung (CLAUDE.md "Verify fast") — the gate is rigorous about proof, never about rebuilding the world to get …
“Common” is measured: kept by at least 6 in 10 of the 30 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
<!-- Author: Eng. Mohammed Almutairi - Developzone.net -->/gate — run the Definition of Done now
Execute the "⛔ Definition of Done" section of CLAUDE.md AND the full security checklist against the current change — rigorously, end to end, right now. A gate produces a verdict backed by real output, not a narrative of what probably works.
Before anything
- Read
~/.claude/skills/gate/security-checklist.md(it sits next to this file) — that is the complete security gate; CLAUDE.md carries only the summary. - Choose behavior evidence. Read
reference/behavior-proof.mdfor a behavior change and the proof-by-change-type and mechanical-checks sections of../sanad/reference/engineering-bar.md. Map applicable failure mechanisms and missed-bug classes to actual checks; record the outcomes inDone means. - Pin down the change set.
git status+git diff(staged and unstaged), or the files edited this session if not in a repo. The gate runs against that diff — name it in the report so it is unambiguous what was gated. - Apply execution.md and the project's verified commands. Reuse its evidence ledger; do not start a second verification plan or reconstruct a working runtime rig.
- For an already-reviewed cherry-pick, apply promotion.md. Verified equivalent changes reuse the original independent/security reviews; item 4 does not require rerunning reviewers just because the session or commit IDs changed. Current target compatibility, applicable provider checks and required CI remain necessary.
- For red-before-green, long command logs or HTTP probes, use command-evidence.md. Assert statuses/codes/persisted state, preserve native exits, and keep setup/test/cleanup separate.
Independent review is the Sanad Step 3.5 two-pass review's collected reports — Pass A on the risk files, Pass B on the whole diff, the fresh Pass B re-check after the last fix, and, before a push that carries code, the FRESH EYES whole-PR review (every prompt starts You are the independent reviewer) — or verified promotion reuse per ship/reference/promotion.md (verdict labelled "reused" after a git range-diff); a launched but unfinished reviewer does not count. Write REVIEW: PASS only after reading the latest reports and dispositioning every finding, after the last code edit; then complete verification before GATE: PASS.
Every code or configuration publication requires completed independent review and a successful source-bound receipt from scripts/evidence.mjs for the exact outgoing content. The helper records the Git tree before and after execution; both must match the outgoing commit. Plain terminal output cannot replace that receipt, including for mechanical changes. Only a diff consisting entirely of ordinary documentation can omit code proof. Failed, pending, missing or stale evidence blocks both pushes and draft PR creation.
Browser acceptance is user-owned (user choice 2026-09-21). Give the user the verified local URL, test account/role and a short checklist of actions and expected results for affected roles/locales. Record their reported result against the current branch/diff as human-provided evidence. Until they reply, mark browser acceptance pending and continue independent code checks/review; do not claim a full gate pass. Do not launch browser automation or create a browser probe solely for acceptance unless the user asks. Keep applicable existing automated tests and required code, API, security and real-provider checks. A relevant UI change invalidates the affected manual result. See reference/behavior-proof.md for the evidence boundary.
The gate, in order
Execute CLAUDE.md's "⛔ Definition of Done" items 1–6 in order — none optional. Don't restate them here (CLAUDE.md is loaded every session and owns the wording); run them. Two items get a built-in tool and one gets a scope pin:
- Item 3 (Actually run it) — run agent-owned checks using verified project commands and HTTP requests; the user performs browser acceptance under the rule above. Quote the observed business result and its source, data size/provider, affected role and locale. Genuinely can't run it here → say so explicitly and give exact steps; never imply it ran. Relational code (ExecuteUpdate / ExecuteDelete / raw SQL / a migration) is proven against the real provider — a MySQL query or a live API request — before the PR opens, not after; the push guard requires a completed provider run after the last edit. If the integration branch was merged into this branch this session, restart the API container first (the watcher's hot reload fails on const or reference changes and keeps serving old code) and confirm the new code is live by an observation only the new code can produce.
- Item 4 (Red-team) — the independent review (
/sanadStep 3.5: Pass A on the risk files with a trace list, Pass B on the whole diff against the Done means list, a fresh Pass B re-check after every fix, plus a selected-engine boss-model review only when assigned a named unresolved issue or expertise gap) is the primary input: quote itsREVIEW:line. None for this diff, or code changed since the last pass → run the re-check first; self-review supplements the independent review and cannot replace it when publishing code. Then tick every Done means line with its evidence (test name / request + status / rendered screen) — no evidence = ✗. - Item 5 (Security) — use
/security-reviewif available, or an independent security review, over the pending diff first (reuse the completed independent review if it actually covers this exact security scope; otherwise request the missing scope), THEN~/.claude/skills/gate/security-checklist.mdfor what it can't know (multi-tenant query filters, idempotency, shared key-ring, audit rows). Run the whole checklist — its reading order routes attention, it waives no section; for the sections the change touches, call out each risk + mitigation explicitly in the report.
A build failure (item 1) stops the gate — nothing downstream is meaningful; fix, then restart from item 1. Any other failing step: keep going, gather the complete picture, then report FAIL with everything found — one round trip, not five.
Rules of evidence
- No writes during the gate. Do not run a formatter or touch source files while gating — a write (csharpier included) resets the guard's last-edit marker and invalidates the verification order. Changed C# files are formatted once before the final checks (Sanad Step 3), not per edit.
- Human-provided browser evidence: quote the user's actual result and identify the tested flow/revision. Do not invent command output or require a screenshot for an unambiguous pass/fail.
- Real proof or no claim. Every "builds / tests pass / works" line is backed by the actual command and its output quoted in your reply. No output = no claim — say "not run yet", never predict a pass or narrate what a run "would" print.
- Avoid duplicate work. Reuse a completed check only when its code state and relevant dependencies, configuration, toolchain and test data are unchanged; cite its original command/output. Run affected checks after a change and the full relevant suite once before handoff. This does not waive a gate item or a hook requirement.
- Check actual coverage and native exit status. A TypeScript solution root with
files: []is not checked by baretsc --noEmit; use the real app project or the repository's build command.--listFilesOnlyand--showConfigare inspection, not verification. Capture each command's own exit status; a successfultail,head, or later command cannot prove it passed. - Fresh, completed evidence only. Output must cover the current code after the last edit. Collect background commands to completion (their completion notification, or TaskOutput where the host has it); a launched process, a pending CI check, or a successful build followed by failed tests is unverified. Record branch/HEAD and the diff checked.
- CI-skipped proof runs here. A changed path proven only by opt-in tests that CI skips (environment-gated real-provider or integration tests) has them run after the last edit with the variable set, their result quoted in the gate (a skipped count is not a pass), and the PR body states CI does not run them. Not run → ✗ on tests.
- Quote the decisive lines, not the whole scroll: the final error/warning count, the test tally, the HTTP status + body, the row counts. Trim, never fabricate.
- No silent skips. Run every step; name any you skip and why (
–in the verdict). - Proof by change type: endpoint → request + status + body + one negative case (401/403/404); query → generated SQL + row counts before/after; UI → user-reported interaction/result for affected roles/locales; job/migration → log lines start→finish + affected rows.
- Changed UI behavior needs a user interaction check. Supply the affected click, navigation or error-path steps after the last relevant behavior edit and record the user's result. A compiler check does not prove the interaction. User-confirmed acceptance can satisfy ran it/goals with attribution; no reply or a failure cannot.
- Verify at the cheapest correct rung (CLAUDE.md "Verify fast") — the gate is rigorous about proof, never about rebuilding the world to get it.
On failure
FAIL is a valid verdict, not an error to hide. Fix the cause where you can and re-run only the affected step; if a fix is out of reach now (missing env, needs a human decision), report GATE: FAIL naming the exact blocking item and what would flip it to PASS. Never downgrade a ✗ into a footnote under a PASS.
Report format
End with a verdict block, not prose:
- One line per Definition-of-Done item:
✓ / ✗ / – <item> — <command> → <quoted result>(–= skipped, with why). - Security: which checklist sections applied, each risk + mitigation in one line.
Gate summary, one line, exactly this shape —
/shipquotes it in the teach-back and proceeds only on PASS:GATE: PASS|FAIL — build ✓, tests <n>/<n> ✓, attack tests ✓, security ✓, ran it ✓, review ✓, goals <k>/<k> ✓Emit the actual verdict on its own line, outside a code fence, after verification finishes and the review verdict. Quoting this template is not a gate result.
attack tests= the 401/403/404 + red-team probes from DoD items 4–5, quoted (not merely asserted).review= theREVIEW:verdict postdates the last code edit.goals= Done-means lines ticked with evidence. The line before it is one plain sentence for the user (Sanad Reporting contract). PASS requires every component ✓ or a justified–(e.g. docs-only change → tests/review–); a ✗ anywhere = FAIL.- Emit the final gate verdict in the conversation and saved evidence record, never in tracked files after review (even bookkeeping invalidates the checked snapshot). Spec timing is owned by
/shippre-flight 4.
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.

