gate
Skill2 starsChanged 4 months agoApache-2.0View on GitHub
Read-only consistency and coverage gate before build. Walks the full chain criterion -> component -> product -> task across the whole spec, flags orphans, gaps, constitution violations, and unresolved placeholders, severity-rates every finding, and routes each fix to the stage that owns it. Use AFTER plan and BEFORE build. Triggers: 'verify', 'analyze', 'is this ready to build', 'check coverage', 'spec consistency'. Scope: only within an Agent SDLC run (a spec chain exists), not on the bare word alone. Modifies nothing; it reports.
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, ship and 7 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
AWSSkillship
Finalize dev work on an issue branch — update docs, push, and open a PR.
Also in 8 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
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
SentrySkillreview
Fixture review skill.
Also in 6 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 repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- acceptance-criteriaSkill
- architecture-designSkill
- buildSkill
- getting-startedSkill
- handoffSkill
- ideaSkill
- lightSkill
- linear-syncSkill
- planSkill
- pr-reviewSkill
- repo-setupSkill
- techstackSkill
- writing-readmesSkill
- writing-repo-docsSkill
- writing-technical-docsSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 2 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 30 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Coverage, both directions: Every AC-N traces to a component (design), to a product where one is needed (techstack), and to at least one …
- Very specific: line 64
ONLY — that the referenced output is present and well-shaped (a non-empty referenced artifact / log / transcript), and NOTHING more: it …
- Distinctive: line 71
Hygiene: No unresolved TBDs, placeholders, or "decide later" markers remain.
- Very specific: line 72
Mechanical corroboration: After checks 1–5, run the bundled checker as a second, automated witness to the same chain: sdlc-check …
- Very specific: line 83
Load every artifact: every section of docs/specs/<feature>/<feature>.md plus docs/specs/overview.md and root constitution.md and CONTEXT.md.
- Very specific: line 153
All six checks have run, including the checker's mechanical corroboration — or, when node was absent, a loud degraded fallback is recorded …
- Distinctive: line 156
Every finding is severity-rated, located, owner-named, and given a next action.
- Very specific: line 178
Run after the ## Plan section exists and before build.
“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
Gate: walk the chain before anyone writes code
Confirm the spec is internally consistent and fully covered before build begins. Walk the chain from every acceptance criterion through the component that owns it, the product that realizes it, and the tasks that build it, and report anything broken. This is a gate, not an editor: it reads everything and changes nothing, routing each fix to the stage that owns it.
<HARD-GATE>
Reads the `## Brief`, `## Acceptance Criteria`, `## Design`, `## Tech Stack`, and `## Plan` sections
of `docs/specs/<feature>/<feature>.md` (plus `docs/specs/overview.md` at project level), `constitution.md`,
`CONTEXT.md`, and any probe-output artifact a `## Tech Stack` load-bearing claim references
(read-only, for presence + shape only). **Light spec:** no `## Design` and no `## Tech Stack` is
not a gap. Do not require those sections, do not invent them, and do not fail the walk for their
absence. A section may be materialized from a non-canonical source (a provenance marker on
its first line) and the chain may be entered mid-way (some upstream links marked `untraced`); the
gate honours both — see [input-resolution](../getting-started/reference/input-resolution.md).
Writes only `docs/specs/<feature>/gate-report.md`. Modifies NO other file, fixes
NOTHING, writes no code and no plan. Findings are reported with the owning stage
named, so the fix happens there and the gate stays trustworthy. The terminal action is a report and
a verdict: ready to build, or not.
</HARD-GATE>The checks (walk all of them)
- Coverage, both directions. Every
AC-Ntraces to a component (design), to a product where one is needed (techstack), and to at least one task (plan). Light spec (no## Design, no## Tech Stack): the plan's*Component:*name (ornone) is the component link; there is no feature-level product link to walk. Missing Design/Tech Stack is not a gap. Flag any criterion with a gap, and any component, product, or task that no criterion justifies (orphan / gold-plating). Mid-chain entry: when the chain was entered belowidea(e.g. a plan ingested from Linear with no upstream criteria), a task whose upstream link is explicitlyuntracedis not an orphan — record it in the mid-chain-entry coverage note (loud, never a silent pass) rather than flagging it Critical. Still flag a genuine gap (a criterion that exists but reaches no task) and any fabricated link (a trace to anAC-Nthat does not exist). In-stack fast-path: when## Tech Stackdeclares the single No new products — reuses the declared stack form (feature level, zero new products), the gate recognizes that declaration as satisfying the component -> product link for all the feature's components at once — a declared claim the walk honours, not a coverage gap and not an orphan (same as it honours a materialized section or anuntracedlink). This is a gate-walk recognition, not a newsdlc-checkrule:sdlc-checkdoes not walk component -> product at all, so it neither parses nor enforces this form — the recognition lives only in the gate's chain walk. - Consistency. Terminology matches
CONTEXT.mdacross all artifacts, and the artifacts do not contradict each other (a criterion the design ignores, a task that fights the design, a product the design did not call for). - Constitution. Nothing across the spec violates a MUST principle.
- Verification integrity. Each test-backed criterion has a kind-of-oracle and a task;
each reviewer-checked criterion has a named review axis; the design's criterion-to-component map
and the plan stage's task-to-criterion map are both complete. Light spec: there is no
feature-level criterion-to-component map; the plan
*Component:*field is enough. The project's green bar — the runnable commands that define a passing build (compile, test, lint, format-check) — is declared and concrete (no placeholders), so build inherits one definition of "green". On a light spec the declaration lives ondocs/specs/overview.md## Tech Stackor the repo's existing declared commands, not on a feature## Tech Stack. Concreteness is all the gate checks here — runnability (does each declared command actually run?) is executed and diagnosed at the build baseline (build stage), where the workspace is isolated and side-effects are expected. The gate never executes declared commands: it stays read-only. Load-bearing library claims in## Tech Stackmust each beverified-by-probe(a probe ran, output kept + referenced) or explicitlyasserted— anasserted(or untagged) load-bearing claim is a finding routed to techstack. The gate checks the tag and the kept probe output's minimal evidence shape ONLY — that the referenced output is present and well-shaped (a non-empty referenced artifact / log / transcript), and NOTHING more: it never opens-to-execute, never re-runs the probe, never authenticates truth or history: averified-by-probetag plus a referenced, shaped output present -> the claim is treated as probed; anassertedor untagged load-bearing claim -> a finding; the gate does not and cannot re-verify the probe's truth (consistency-not-truth, ADR-0001). The probe itself runs at techstack/spike time — interactive, human-in-loop — never in the gate. - Hygiene. No unresolved TBDs, placeholders, or "decide later" markers remain.
- Mechanical corroboration. After checks 1–5, run the bundled checker as a second, automated
witness to the same chain:
sdlc-check docs/specs/<feature>/<feature>.md(resolve per getting-started's checker-resolution rule; degrade only when no form resolves; a plain run auto-scopes to whatever artifacts exist at gate time — do not--requirethe ledger or verification report, they don't exist yet).nodepresent -> run it and interpret the exit code: 0 = corroborated; nonzero, or the checker crashing, is itself a failed check (fail-closed) — it blocks the verdict exactly like a Critical finding, even if checks 1–5 came back clean.nodeabsent -> checks 1–5 still stand alone, but state a loud, explicit degraded fallback line in the report; never skip this check silently.
Checklist (do in order)
- Load every artifact every section of
docs/specs/<feature>/<feature>.mdplusdocs/specs/overview.mdand rootconstitution.mdandCONTEXT.md. - Build the chain map for each
AC-N, assemble criterion -> component -> product -> task(s) from the artifacts. - Note provenance + entry point record which sections carry a source marker (materialized, not
hand-authored) and where the chain was entered; treat explicitly
untracedlinks as entry artifacts to surface, not defects to block on. - Run checks 1–5 mechanically, not by impression. The value of this gate is the literal walk.
- Run the checker (check 6) invoke
sdlc-checkover the spec whennodeis present. A nonzero exit or a crash is a failed check — do not issue ready to build; treat it as a stop-and-ask, and if a human explicitly overrides it, record the override ingate-report.md(who/what, and why the verdict proceeded despite the failed check).nodeabsent -> write the degraded-fallback line into the report now, so it can't be dropped later. - Severity-rate each finding Critical (blocks build), High (blocks build), Medium, Low. A failed checker run (check 6) rates Critical.
- Route each finding name the owning stage that should fix it (criteria, design, techstack, or plan) and a suggested next action.
- State the verdict ready to build only if there are no Critical or High findings AND check 6 did not fail (or its failure was explicitly overridden and the override is recorded).
- Write
gate-report.mdand stop. Do not fix anything. If Linear sync is enabled in.agent-sdlc/config.json, also post the gate's status update + report via thelinear-syncskill.
Principles
- Read-only. A gate that edits its own inputs cannot be trusted to judge them. Report, never fix.
- The chain is the spine. The walk from criterion to task is the whole point; do it literally.
- Honest severity. Critical is Critical. A gate that downgrades findings to pass is theater.
- Route, don't repair. Each fix belongs to the stage that produced the gap. Send it back there.
- Believe the artifacts, flag the contradictions. Take each artifact at face value and surface where they disagree, rather than guessing the intent.
- Corroborate, don't just impress-check. The checker is a second, mechanical witness to the same chain — a nonzero exit means the automation caught something the walk missed, or contradicts it. Either way that's a real finding, not noise to wave past.
- Degrade loud, never quiet. No
node, no corroboration — the manual checks still stand, but say so in the report. A silent skip reads as a clean pass it isn't.
Rationalizations (excuses to skip the bar, and the rebuttal)
| Excuse | Rebuttal |
| "I'll just fix this small gap while I'm here." | Then the gate is grading its own work. Report it; the owning stage fixes it. |
| "It obviously hangs together, skip the chain walk." | The mechanical walk is the entire value. Impressions miss the orphan task and the uncovered criterion. |
| "Downgrade this so the build can start." | Severity is honest or the gate is decoration. Block on Critical and High. |
| "No need to name the owning stage." | A finding with no owner does not get fixed. Route it. |
| "The checker isn't installed here, just skip check 6." | node absent is a degraded fallback, announced in the report — not a silent skip. |
| "sdlc-check failed but the manual walk looked fine, issue ready to build anyway." | A failed checker run is a failed check — stop-and-ask. Proceeding needs an explicit, recorded human override. |
Red flags (stop and fix the gate's behavior)
- The gate edited any artifact other than the report.
- A criterion with no task passed as acceptable.
- A "ready to build" verdict issued with a Critical or High finding open.
- A "ready to build" verdict with no green bar declared — build then has no shared definition of "green".
On a light spec, look at
overview.mdor the repo's existing declared commands; missing feature## Tech Stackis not this flag. - A "ready to build" verdict issued with a load-bearing library claim left
asserted(or untagged) — an unprobed load-bearing claim passed off as settled. - Findings stated as impressions rather than located in a specific artifact.
- An
untracedlink or a materialized section silently dropped from the report — a mid-chain entry passed off as a fully-traced chain (the same failure as silently dropping review coverage). - A "ready to build" verdict issued while
sdlc-checkfailed, with no recorded override. - The checker silently skipped when
nodewas absent, instead of an announced degraded fallback.
Done when
- The full chain has been walked for every criterion, or the light-spec walk (criterion -> named
existing component or
none-> task) has, with missing Design/Tech Stack recorded as by-design. - Load-bearing library claims in
## Tech Stackare eachverified-by-probe(tag + referenced kept output present) or theassertedones are surfaced as findings. - All six checks have run, including the checker's mechanical corroboration — or, when
nodewas absent, a loud degraded fallback is recorded in its place. - A failed checker run either blocked the verdict or was overridden with the override recorded.
- Every finding is severity-rated, located, owner-named, and given a next action.
- A clear verdict is stated.
gate-report.mdis written, and nothing else was modified.
The artifact (output)
docs/specs/<feature>/gate-report.md, containing only:
- Chain coverage table
AC-N-> component -> product -> task(s), with gaps marked. - Findings by severity each with: location (which artifact and where), the issue, the owning stage, and a suggested next action.
- Mid-chain entry / coverage note (when applicable) — if any section was materialized from an
external source or any upstream link is
untraced: name the entry stage, the source (from the provenance marker), and which links are unvetted upstream. Visible, never a silent pass. - Checker corroboration result — pass, or failed (stop-and-ask stated, plus the recorded override
if one was taken), or an announced degraded fallback (
nodeabsent). Never left implicit. - Verdict ready to build, or not, with the blocking findings listed.
Conventions
- Lives at
docs/specs/<feature>/gate-report.md(rootspecs/in a repo that already uses it — the back-compat rule in getting-started). Read-only over every other artifact. - Run after the
## Plansection exists and before build. Re-run after any fix until the verdict is clean. - Invokes
sdlc-check(resolve per getting-started's checker-resolution rule; degrade only when no form resolves) after its own chain walk for mechanical corroboration, mirroring the existing pr-review <-> Review panel contract: present and clean -> corroborated; present and failing (or crashing) -> stop-and-ask, override recorded; absent -> an announced degraded fallback, never a silent skip. The checker is read-only, same as the gate itself. - May be invoked inline by
buildon a freshly materialized plan (build runs the gate itself when no verdict exists for the plan in hand), as well as standalone — the checks are identical either way. - Critical and High findings block build; the owning stage fixes them and the gate is re-run.
- Mirrors spec-kit's analyze: a read-only consistency and coverage pass that modifies nothing.
- Downstream consumer: the build stage proceeds only on a clean or explicitly accepted report.
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.

