---
name: Gate Check
slug: gate-check-3
category: AI Engineering
description: Gate Check freezes a drafted option set and sends it to an independent advisor for a genuine, collapsed, or malformed verdict. It then verifies the cited grounds against the substrate before the result is returned.
github: "https://github.com/jongwony/epistemic-protocols/tree/main/epistemic-cooperative/skills/gate-check"
language: JavaScript
stars: 161
forks: 15
install: "npx degit https://github.com/jongwony/epistemic-protocols/tree/main/epistemic-cooperative/skills/gate-check ~/.claude/skills/gate-check"
installs_to: ~/.claude/skills/gate-check
source_path: epistemic-cooperative/skills/gate-check/SKILL.md
collection_size: 25
category_size: 3670
collection_url: "https://dirskills.com/collections/jongwony/epistemic-protocols"
added: 2026-09-08T05:36:05.030Z
last_synced: 2026-09-08T05:36:05.030Z
canonical_url: "https://dirskills.com/skills/gate-check-3"
---

# Gate Check

Gate Check freezes a drafted option set and sends it to an independent advisor for a genuine, collapsed, or malformed verdict. It then verifies the cited grounds against the substrate before the result is returned.

**Install:**

```bash
npx degit https://github.com/jongwony/epistemic-protocols/tree/main/epistemic-cooperative/skills/gate-check ~/.claude/skills/gate-check
```

## README

# Gate Check

An option set is normally judged by whoever drafted it. That is the one judgment the drafter cannot make well: the options inherit the frame they were drafted from, so an option set standing on the wrong axis looks complete from inside. This skill puts an independent adjudicator on the option set itself — not on the work the gate is about — and then checks the adjudicator's reasoning against the substrate before either reaches you.

The check separates two things that usually collapse into one: **who wrote the options** and **who says they are worth asking**. Everything below exists to keep those apart, including from itself.

## Caller Signature

```
/gate-check [gate?] [advisor?]

gate    : (implicit) | explicit draft   -- optional; defaults to the gate drafted in the current turn
advisor : { codex }                     -- optional; the independent adjudicator behind the
                                        --   (gate question, frozen option set, settled
                                        --    constraints, pointers)
                                        --   → { axis reading, falsifier, a ground cited for every
                                        --      conclusion asserted, and either a verdict — with
                                        --      what a collapse reduces to, or what axis a
                                        --      malformed relocates onto — or, where none of the
                                        --      three fits, the members it could not clear with
                                        --      the repairs available and what each changes }
                                        --      interface
```

The advisor is a parameter, not the identity. Any adjudicator satisfying that interface can drive the check, provided it is a genuinely separate reasoner — a second pass by the drafting agent does not satisfy it, because the independence is the whole mechanism.

## Pipeline Overview

```
/gate-check [gate?] [advisor?]
  Phase 0 : screen + freeze     -- eligible gate? → freeze the option set verbatim, capture a substrate anchor
  Phase 1 : launch ∥ precommit  -- dispatch to the advisor (background), then record the expected
                                   controlling sources and verification criteria BEFORE any advisor
                                   output is visible
  Phase 2 : verify              -- collect the advisor's own words; check each cited ground against
                                   the substrate; check whether its stated falsifier could have
                                   defeated the reading and whether it is there
  Phase 3 : dispose             -- genuine | collapse | malformed | indeterminate | failed
  Phase 4 : synthesize          -- on a settled repair: rebuild the option set under the synthesis guards,
                                   then one external recheck, bounded
  present                       -- three vantage points always; ground-by-ground detail folds to one line
  observer                      -- armed for the session; every cycle converges or fails explicitly
```

## When to Use

- A gate has been drafted whose options are competing approaches, orderings, or scopes, and it is not obvious whether they are genuinely different choices
- A decision keeps feeling like a choice while every option leads to the same place
- A gate that already fired produced an answer that did not settle anything, suggesting the axis was wrong
- An absence carries the option set — that no rule covers this, that nothing else fits, that it cannot be done in one pass. An absence leaves nothing behind to notice it by, so it reads as true off any summary of the ground; only the ground itself separates an absence that was checked from one that was assumed

## When NOT to Use

- The decision is already settled by something citable — say so and proceed
- The gate has one option; there is no set to adjudicate

Both are conditions of the screen below, listed here too because they are reasons not to reach for the skill at all rather than only reasons it declines.

## Eligibility and Exclusions

The check applies to gates that **route a reversible decision**. A decision is reversible when correcting it at the next interaction leaves no persistent state change, lost context, outward-facing commitment, or divergent downstream work.

These are the screen. A gate meeting any of them leaves the check, regardless of what verdict the advisor would have returned — but not all of them leave the same way, and firing them all as gates would put back the very asks the screen just caught. The first four leave as gates and fire on their own terms: they are real decisions the check has no standing over. The last two leave as something other than a gate — a decision already settled is relayed with the source that settles it, and a set down to one option is simply the thing it names, done. Where a gate meets conditions from both halves, the first half wins: an irreversible or environment-mutating decision stays a gate however settled its direction or however few options are left, since what those two conditions protect is a confirmation, and a relay is exactly the thing that skips one. Report every condition that applied, not only the one that decided. Everything elsewhere in this document that speaks of "the screen" means this list, and means all of it — no other passage carries a count of its own, because a count kept in two places drifts in one of them.

- **Gates that measure you rather than route a decision** — comprehension checks and recognition prompts, where a single correct option is the design rather than a defect
- **Options turning on private preference** — where the deciding weight is something only you hold, an external reasoner has nothing to adjudicate against
- **Irreversible actions** — a settled direction never lowers the bar for a decision whose effects cannot be corrected at the next interaction
- **Environment-mutating actions** — the gate is the permission boundary, not a routing question
- **Decisions a citable source already settles** — the direction is determined before the check begins, so a round spent on it confirms what the citation already said
- **Sets down to one option** — there is no option set to adjudicate, only a thing to do

Running the check on an excluded gate is not merely wasted — a `collapse` verdict on an irreversible decision would relay away exactly the confirmation the irreversibility demands. Screen first.

Where the running environment carries its own standing policy about when gates get checked, that policy may narrow this screen further. The skill operates fully without one; no external rule file is required for correct operation.

## Phase 0: Screen + Freeze

1. **Bind the gate.** With an explicit draft argument, use it. Without one, take the most recently drafted gate whose decision is still open — a gate that already fired and whose answer settled nothing leaves its decision open whatever was said. With neither an argument nor a gate to reach for, there is nothing to check: say so and stop, naming what would give the skill a target. An invocation with no gate is a landing like any other, not a silent no-op.
2. **Screen for eligibility** against the screen above, in full. Anything it catches stops the cycle here and leaves the way that condition leaves, reported.
3. **Freeze the option set verbatim.** The frozen text is what the advisor adjudicates and what any later comparison is made against. Rewording an option after freezing invalidates the cycle — restart it rather than patch it.
4. **Capture a substrate anchor** — as a value the later check can re-read and compare against, never as a description of one, and covering whatever of the substrate the check will actually read. Capturing it describes the tree rather than operating on it — the anchor is a thing to read back, not a change to make. Everything downstream is evaluated against this one anchor, and the movement check later asks whether the substrate moved away from it — a question answerable only if what was captured can be held up against what is there now.

## Phase 1: Launch, then Precommit

**Order matters here and is the point.** Dispatch first, record second, and never inspect partial advisor output before the record is written.

**Dispatch.** Send the advisor exactly four things:

- the gate's question, as bound in Phase 0 — what the options are answers to. Without it an option set can only be read for internal consistency, while the judgment being asked for is whether it stands on the right axis, and an axis is only right or wrong relative to the decision the options serve
- the frozen option set, verbatim, including each option's stated implication
- the constraints already settled by the user that the advisor cannot re-derive from the substrate — decisions made in conversation that left no trace on disk
- substrate pointers: paths, search patterns, and commands the advisor can dereference with its own tools. Where the option set rests on an absence, this is the slot that carries it: the search whose result would surface a counter-example, never the claim that none exists. An absence stated is rationale and the boundary below excludes it; an absence the adjudicator runs for itself is the only kind that reaches the adjudication, and it is the stronger one — the drafting side cannot notice what it failed to look for

Ask it for four things back: a verdict (`genuine | collapse | malformed`), its reading of what axis the options actually stand on, a ground cited for every conclusion it reaches — the axis reading is one conclusion and the verdict on it is another, and each owes its own — and, stated after the rest so it accounts for what it just said rather than shaping it, the observation that would break its own reading. Grounds are asked for per conclusion rather than for the answer as a whole because conclusions rest on different evidence: what axis a set stands on and what follows for the set are separate claims, and it is the verdict, not the axis, that routes what happens next.

A verdict asserting anything beyond the axis owes that in the same answer, with its own ground. On `collapse`: which option of the frozen set the others reduce to, and the ground they reduce on. On `malformed`: the axis the options should stand on instead, and the ground for relocating there. These are asked for rather than worked out afterwards because naming them *is* the substance of those verdicts — a set said to collapse without saying what it collapses to, or said to stand on the wrong axis without saying which axis is right, has not been adjudicated. A target named without the ground that carries it defers the same thing one step in, arriving as a conclusion with nothing behind it for the verification to check. Leaving any of it to be supplied later would hand the choice back to the side whose option set is under judgment, which is the collapse of drafter and judge this skill exists to keep apart.

Where two verdicts both fit — a set on the wrong axis whose options also all converge — `malformed` is the one to return. A collapse relayed off a wrong-axis set delivers a settled answer to a question that should not have been asked; relocating first puts the convergence question to the set that belongs there, where it can be asked again and mean something. Say which verdicts were in contention and why the returned one won, so the ordering is checkable rather than assumed.

Where none of the three fits — the set stands on the right axis and still is not the set to ask — say so rather than round to the nearest verdict. What it owes then is the same in kind: which members it could not clear and the ground for each, the repairs available for them, and what each repair changes about the set you would end up answering. A verdict rounded to from a set that fit none of them is worse than no verdict, because it arrives labeled as checked.

**Input boundary.** The dispatch never carries which option the drafting side prefers, the rationale behind the option set, or any prior disposition. An adjudicator told the preferred answer is no longer adjudicating; it is agreeing. Naming the constraint the user settled is conveyance; adding what the advisor should therefore conclude is not. The gate's question sits on the conveyance side of that line and is not the rationale: the rationale is why these options were drafted, which the adjudication must not see, while the question is what they answer, without which there is nothing to adjudicate their fit against.

**Precommit.** While the advisor runs, write down — to the same kind of per-invocation record the dispatch and answer use, for the same reason: what makes this work is that it can be read back afterwards and shown not to have moved, which a recollection cannot be — two things:

- the **expected controlling sources**: which parts of the substrate the answer ought to turn on
- the **verification criteria**: what would have to be true of the returned grounds for them to check out

The precommit is deliberately **not** a preferred option. A recorded preference invites the later comparison to become "did we agree," which is the failure this whole ordering exists to prevent. What the precommit buys is different: it makes the question *did I converge or did I follow* answerable afterwards, which it is not once the answer has been read.

## Phase 2: Verify the Grounds

Collect the advisor's final message and carry it forward as written. Do not parse it into fields — read what it concluded, what it offers in support of each conclusion, and what it names as its own falsifier directly from its own words, and keep the full text intact for reference. Reading it through a fixed set of fields is how a conclusion the answer did assert goes missing before anything has a chance to check it.

Then check it, ground by ground, against the anchored substrate:

- **Does each cited source exist, and does it say what the advisor attributed to it?** A citation pointing at a location that says something else is a failed ground even when the underlying claim turns out to be true elsewhere — the claim and its citation are checked separately, and both are reported.
- **Does the source track what it asserts?** A source that is current but coupled to nothing can silently disagree with the behavior it describes; freshness is not the same as fidelity.
- **Does each cited ground carry the conclusion it was offered for?** Run this once per conclusion the answer asserts, whatever they turn out to be — the axis reading is one, the verdict reached on it is another, and a verdict naming something further asserts that as well. A true premise that does not reach its conclusion is the most common way a verdict looks grounded and is not. They are checked apart because grounds that establish one conclusion leave the others standing untouched, and a conclusion carried on another's grounds is the advisor's own judgment passed through unaudited. A conclusion the answer asserts with no ground offered for it is unchecked, and unchecked is a result rather than a pass — enumerating which conclusions to check would leave whichever the list has not caught up with silently exempt.
- **Could the stated falsifier have defeated the reading, and is it present in the substrate?** Whether it could comes first: an observation that cannot be obtained, or whose obtaining would leave the reading standing, is not a falsifier at all, and its absence certifies nothing. Once it could, presence carries meaning — present means the reading is live-contested, absent means that particular objection does not apply, not that the reading is right. The two are checked apart because absent-because-vacuous and absent-because-tested look identical afterwards, and only the second is a result.
- **Does each proposed repair say what it changes about the set you would answer?** A repair named without that is not yet something anyone can choose between — it says something would be done without showing what the choosing is over, which is the recall the whole presentation exists to spare you. Like any conclusion offered without its ground, it is unchecked rather than passed.
- **Is any material premise inaccessible, ambiguous, or a matter of reading rather than fact?**
- **Did the answer turn on the sources the precommit named, and do the grounds meet the criteria it set?** This is where the precommit is read, and reading it is the only thing that makes it more than paperwork — both halves of it, because a precommit half-read is a precommit half-binding. A source it named that the answer never reaches is an uncovered ground no present citation can speak for: the answer did not refute that source, it went somewhere else. The criteria are applied as they were written, before the grounds arrived; loosening one afterwards to fit what came back is the same substitution the ordering exists to prevent, arriving at the last step instead of the first and leaving every visible step intact. A citation that checks out, a controlling source left untouched, and a criterion quietly lowered are all perfectly compatible, which is exactly the shape a followed answer takes.

This phase is the audit vertex, and it is deliberately narrow: it checks whether the advisor represented and applied the evidence correctly. It does not re-argue the options. A second opinion from the side that drafted them is not independent evidence, and offering it as one would quietly restore the collapse the skill exists to prevent.

**Snapshot consistency.** Read the captured anchor back and hold it against the substrate as it stands now — that comparison is what the anchor was captured for, and no other step performs it. If the substrate moved, re-anchor and run the cycle once more rather than reconciling across two states. Bounded at one, for the same reason the synthesis recheck is: if it moves again, stop re-anchoring and let the cycle land on `indeterminate (anchor)`. A gate held open until the ground stops shifting is a gate that never fires.

## Phase 3: Disposition

Exactly one of these holds — which is three claims rather than one, and they fail separately.

**Every cycle reaches a row.** A situation matching none of them has found a gap in the table, not a way out of it; the cycle does not proceed unlabeled while the gap goes unreported.

**No two rows can both be the answer.** The ordering is what secures that, so a row is read against every row above and below it before it lands, and a row inserted anywhere but the end changes what the rows under it mean.

**Every row can deliver what it promises.** A row whose action names something no phase produces cannot fire however well it reads, and the phase that produces it is named before the row is trusted.

None of the three implies another, and a table can satisfy two of them while silently failing the third.

**What each landing presents follows from two rules, so the rows do not restate them.** What reaches you is the set actually adjudicated — not the set a cycle started from, where those have come apart. And where a rebuild was attempted and its recheck did not come back clean, every set attempted is shown with what the check found against each, none of them as the answer. The pass a cycle is on matters to the rows only where it turns continuation into termination: a first attempt may rebuild, a second may not.

| Condition | Disposition | What happens |
|---|---|---|
| No usable answer — the advisor failed, timed out, returned nothing readable, returned something readable that is neither a verdict nor a report of members it could not clear, or the gate turned out after dispatch to be one the screen catches, so its verdict is discarded | **failed** | Present, labeled as unchecked, with what went wrong. A late-caught screen condition is the exception: the gate leaves the way that cond
