notrest

hook: completion-gate.sh + gate-check.py

Part 3 · EACH TOOL · Slide 50 of 60

Event: Stop · 60 s.
If gates/ACTIVE.md exists, runs every declared gate command;
a red gate blocks "done" with the failing command shown. Then
the loop: a correction or dirty refuter round no lesson cites,
or a "not tested" no open record carries, blocks "done" and
prints the exact add command. No gates file → the loop still
runs. Fails open with a note when the payload is unreadable.

   Stop ──► gates · uncited lessons · untested admissions ──► 0 / red