The gate now runs pytest as well, so one command answers whether the code base is broken: syntax, protocol imports, the 125 core tests, then the lab functional suites. It fails when a test fails, verified by feeding it a deliberately broken test. Two leftovers from moving the labs into experiments/ are fixed: the lab command still pointed at tests/, and the hook only watched protocol and tests, so edits under experiments/ and tools/ triggered nothing. Profiling the 3.6 s gate: 0.24 s syntax, 0.12 s imports, 0.61 s pytest, 2.7 s lab functional suites, of which Lab042's software loopback is 1.14 s because it pushes a whole image through the chain. The pytest addition is the small part. prepare_jpeg is now cached, since six checks call it and each call re-encoded the image at several qualities. README described the gate without the tests it now runs.
3.9 KiB
description, argument-hint
| description | argument-hint |
|---|---|
| Полный цикл работы над лабой — аудит, план, реализация, независимая проверка | <номер лабы> [краткая постановка] |
Работаем над лабой: $ARGUMENTS
Порядок обязательный. Не перескакивай через этапы и не начинай писать код, пока пользователь не согласовал план.
Этап 1. Аудит
Запусти агента Explore с запросом: что в protocol/ уже относится к этой задаче,
какие модули придётся трогать, где есть пересечение или дублирование, как устроены
две-три ближайшие по смыслу лабы в experiments/.
Прочитай сам последние записи в 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: краткое описание на английском.
Коммить только после явного согласия пользователя.