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.
69 lines
3.9 KiB
Markdown
69 lines
3.9 KiB
Markdown
---
|
||
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: краткое описание на английском`.
|
||
Коммить только после явного согласия пользователя.
|