Add quick gate and independent review pipeline

Introduce tools/quick_gate.py: a one-second check that parses every file
in protocol, tests and tools, imports each protocol module, and runs the
functional tests of the labs that need no experiment data.

Wire it to a PostToolUse hook so edits under protocol or tests are checked
automatically, and add two read-only review agents with slash commands that
drive them: verifier for independent re-derivation of results, adversary for
unsafe-state hunting in control, failsafe, session and reset code.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
LittleSam129
2026-08-07 17:33:46 +03:00
parent 7d122b53ed
commit 28227e4228
7 changed files with 456 additions and 0 deletions

35
.claude/commands/check.md Normal file
View File

@@ -0,0 +1,35 @@
---
description: Независимая проверка уже сделанной работы — verifier и, при необходимости, adversary
argument-hint: [что проверяем: номер лабы, модуль или «текущие изменения»]
---
Проверяем: $ARGUMENTS
Если аргумент не задан, проверяем незакоммиченные изменения — возьми их из
`git status --porcelain` и `git diff`.
## Что сделать
1. Собери фактуру: какие файлы затронуты, какая лаба или модуль за это отвечает,
какой командой прогоняется полный тест.
2. Запусти `python tools/quick_gate.py`. Если шлюз не пройден — дальше не иди,
сначала почини, агентов дёргать бессмысленно.
3. Запусти агента `verifier`. Передай ему:
- список затронутых файлов,
- команду полного прогона,
- указание брать требование из `README.md` и `PROJECT_LOG.md`, а не из твоих слов.
4. Агента `adversary` запускай **только** если затронуто что-то из списка:
управление, failsafe, аварийная остановка, сеансы, перезапуск, сброс,
подлинность сообщений. Для видео, сжатия, FEC и модуляции он бесполезен —
не трать лимит.
5. Разбери находки как арбитр: воспроизведи, отклони невоспроизводимые вслух,
почини подтверждённые.
## Отчёт пользователю
Коротко: что запускалось, что нашли, что починили, что отклонили и почему.
Отчёты агентов пользователь не видит — пересказывай сам, не отсылай к ним.