Собираем свой рабочий процесс поверх готового агента
Начните с повторяющейся ошибки
Агент дважды объявил готовность, запустив только проверку добавления. Значит, перед завершением нужен общий запуск и честный отчёт. Не нужно сразу создавать отдельную платформу агентов: сначала исправьте эту конкретную слабость процесса.
В этом уроке вы собираете настройку харнесса вокруг Claude Code или Codex. Готовый клиент продолжит управлять моделью и инструментами. Мы добавим договор, статус, скилл и одну воспроизводимую команду проверки. Собственный автономный рантайм — отдельная, более сложная задача, которая не требуется для курса.
Структура учебного проекта
app.py
README.md
SPEC.md
WORKFLOW.md
STATUS.md
AGENTS.md или CLAUDE.md
tests/test_app.py
check.py
.agents/skills/review-change/SKILL.md # для Codex
.claude/skills/review-change/SKILL.md # для Claude CodeВ архиве папка templates содержит примеры документов и скилла. Копируйте их в starter, приспосабливая к фактическому состоянию. Не помечайте функцию готовой только потому, что в шаблоне она упомянута.
check.py запускает тесты с помощью того же интерпретатора Python, которым запущен сам скрипт. В нём задан лимит времени. Он ничего не отправляет модели и не требует ключей API. При провале тестов возвращает ошибку. Это команда качества, а не автономный агент и не песочница.
python3 check.pyКоманда может запускать любой код, который импортируют тесты. Поэтому перед запуском чужого проекта нужно читать исходники и пользоваться подходящей изолированной средой. В учебном комплекте используются стандартная библиотека и временные папки.
Договор одного шага
Прочитай SPEC.md, WORKFLOW.md и STATUS.md.
Выбери следующий незавершённый критерий.
Предложи короткий план и выполни только этот шаг.
Запусти связанные проверки, затем общий check.py.
Если проверка падает, укажи причину и статус остальных функций.
После двух попыток с той же ошибкой остановись и разберись.
Покажи diff и обнови STATUS.md.
Сохранение коммита выполняет человек после просмотра.Правило двух попыток — договорённость с агентом, а не принудительный счётчик в check.py. Чтобы обеспечивать лимит технически, его должен считать рантайм. В нашем учебном процессе человек наблюдает попытки и останавливает работу при повторении.
Хуки и обязательные проверки
Хук запускается на событии клиента. В Claude Code существуют события до и после вызова инструмента; поведение определяется документацией хуков. Проверка после записи уже не предотвращает саму запись. Обычный ненулевой код скрипта тоже не всегда означает блокировку события: для многих command hooks Claude Code блокирующее поведение связано с кодом 2, и оно зависит от события.
Поэтому в первом харнессе используйте явный запуск check.py. Подключение хука — дополнительное упражнение после понимания событий. Не утверждайте, что команда стала обязательной, пока не проверили опыт с заведомо падающими тестами. Для командной работы обязательную проверку обычно закрепляют в CI и настройках приёма изменений; текстовая просьба этого не обеспечивает.
Самостоятельное задание
Соберите файлы процесса, подключите скилл и проведите две сессии. В первой реализуйте один критерий, во второй продолжите по статусу. На отдельной копии повторите проверку с ошибкой из предыдущей главы. Запишите, на каком этапе процесс её обнаружил.
Критерии и разбор
Вы получаете одинаковую команду проверки в обеих сессиях и можете продолжить без старого чата. Процесс честно сообщает об ошибке и не меняет тест ради успеха. Если тесты можно пропустить, так и опишите: это контролируемый человеком рабочий процесс, пока без технической блокировки публикации.