gatelisted
Install: claude install-skill radozaprazny/attest
# /gate — the commit-time gate, one command
One command instead of several. `/gate` runs the **commit-time** half of GUIDE PART 9's loop —
the `reviewer` subagent (code-level) plus the document audits **the diff actually needs** — and
returns **one** merged verdict. The **ship** gate stays separate: run `/audit-history` before a push and
`/audit-history full` before a public release; `/gate` deliberately excludes it so the two
cadences (every commit vs. leaving the machine) stay distinct.
## Two modes and one suffix, a word apart (attest ADR-0067, ADR-0068)
| | scope | passes | when |
|---|---|---|---|
| **`/gate`** | the working diff, or `HEAD` when the tree is clean | only those a shell stage says the diff touched | before every commit |
| **`/gate full`** | `<base>..HEAD` **plus** the working tree — the whole branch | **every** installed pass, unconditionally | once, before a push, beside `/audit-history` |
| **`/gate fix`** (also `/gate full fix`) | as the mode it suffixes | the same, then a bounded repair loop | when you want the code-level findings closed as they are found |
The light gate is cheap enough to run on a one-file change; that is the point, because a gate
too expensive to run is not run. It buys that with keyword triggers, and **a keyword set finds
what a word can find and nothing else** — the 2026-09-07 blocker was `*.sh text eol=lf` in
`.gitattributes`, which no list flags. `full` is where the complete judgment happens, once, over
the diff that ships.