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

68
.claude/commands/lab.md Normal file
View File

@@ -0,0 +1,68 @@
---
description: Полный цикл работы над лабой — аудит, план, реализация, независимая проверка
argument-hint: <номер лабы> [краткая постановка]
---
Работаем над лабой: $ARGUMENTS
Порядок обязательный. Не перескакивай через этапы и не начинай писать код,
пока пользователь не согласовал план.
## Этап 1. Аудит
Запусти агента `Explore` с запросом: что в `protocol/` уже относится к этой задаче,
какие модули придётся трогать, где есть пересечение или дублирование, как устроены
две-три ближайшие по смыслу лабы в `tests/`.
Прочитай сам последние записи в `PROJECT_LOG.md` — там указано, чем должен
заниматься следующий этап.
Выдай карту: что есть, чего нет, что придётся изменить. Только карта, без решений.
## Этап 2. План
На основе карты предложи план: какие модули создаются, какие меняются, что именно
измеряет лаба, какие CSV и PNG появятся в `data/processed`, какие функциональные
проверки будут в `run_functional_tests`.
**Остановись и дождись согласования.** Это прямое требование пользователя.
## Этап 3. Реализация
Пишешь ты, в этом же треде. Отдельного агента-кодера не запускай — у тебя уже есть
весь контекст, а он начнёт с нуля и потратит лимит впустую.
Держи стиль проекта: русские докстроки и подписи осей, `from __future__ import annotations`,
датаклассы для метрик, CSV и PNG в `data/processed`, `run_functional_tests` и `main`
как в соседних лабах.
После каждой заметной правки: `python tools/quick_gate.py`.
## Этап 4. Проверка
Запусти агента `verifier`. В задании передай:
- номер и постановку лабы своими словами,
- список созданных и изменённых файлов,
- команду полного прогона,
- прямое указание читать требование из `README.md` и `PROJECT_LOG.md`, а не из твоего пересказа.
Если лаба касается управления, аварийной остановки, сеансов, сброса или подлинности
сообщений — параллельно запусти `adversary` с брифом на атаку под эту тему.
Оба агента read-only. Правки вносишь ты.
## Этап 5. Разбор находок
Ты арбитр. По каждой находке:
- воспроизведи её сам, прежде чем чинить;
- невоспроизводимую отклони и скажи об этом вслух;
- подтверждённую почини и перезапусти проверку.
Не чини всё подряд из вежливости к агенту.
## Этап 6. Завершение
Полный прогон лабы, затем `python tools/quick_gate.py`.
Запись в `PROJECT_LOG.md` в том же формате, что предыдущие записи.
Коммит в стиле проекта: `LabNNN: краткое описание на английском`.
Коммить только после явного согласия пользователя.