02 / THE GATE

It doesn't wait
to be called.

Even if the AI forgets to ask, the gate stays in the workspace. It stops only the move that breaks the accord, and returns the reason and the remaining options in the same place.

WRITE / EDIT
SHELL REMEASURE
PRE-COMMIT

TWO ROUTES

Stop it before.
Re-measure after.

A
WRITE / EDIT

Stopped before it exists.

The moment the AI calls a write, the workspace consults AccordRail. If it crosses the record, the file is never created.

BEFORE THE WRITE
B
SHELL

Measured right after.

Shell command strings are never guessed at. The real file tree is measured the moment the command finishes, and the deviation is named.

AFTER THE COMMAND

A REAL REFUSAL

If it refuses,
it offers the next move.

A gate that only says "forbidden" gets routed around. AccordRail states which agreement was crossed and what remains possible, in prose the AI can use as-is.

accordrail / gate

$ accordrail gate

DENY LAYER BACKFLOW

src/domain/rules.ts
src/ui/format.ts

A dependency from domain to ui runs
against the approved layer direction.

Your options
01 / move the shared logic into shared
02 / propose a revision to the spec

✓ FILE NOT WRITTEN

THE WORK THAT DID NOT HAPPEN

What was stopped
is also a result.

A prevented change doesn't exist in the code. Unless it's recorded, the gate's work is invisible. Each stop is kept — when, what, and which agreement it crossed.

STOPPED / LOCAL LEDGER2 RECORDS

src/domain → src/uilayer backflow · never written

DENIED

src/feature-a → feature-bownership crossing · never written

DENIED
HASHED LOCALLY / NOTHING EXPORTED

SILENCE IS A FEATURE

When the work is right,
it says nothing.

Tools that praise every step, or warn "just in case," stop being read. AccordRail shows red only when the dependency graph and the record allow certainty.

No evidence,
no noise.
See the silence, measured

03 / NEXT

Before the gate: how work is handed over.See ownership ↗