Короткое определение
В контексте AI Development Harness AI coding harness — это слой управления вокруг агента для программирования, который превращает отдельные запросы к модели в воспроизводимый процесс разработки. Он задаёт источники истины, границы задач, допустимые переходы, обязательные проверки, правила ревью и способ восстановления работы после смены или обрыва сессии.
Сам агент для программирования по-прежнему пишет и анализирует код. Harness не пытается заменить Codex или Claude Code другой моделью. Его задача — сделать так, чтобы модель работала внутри понятного проекта, а не каждый раз заново реконструировала его по истории чата.
Почему одного хорошего промпта недостаточно
Промпт хорошо передаёт намерение на текущем шаге, но плохо заменяет долговременное состояние проекта. В длинной разработке появляются требования, принятые архитектурные решения, открытые вопросы, зависимости, критерии приёмки, готовые планы и результаты проверок. Если всё это существует только внутри одной conversation history, следующая сессия должна заново угадывать контекст.
В Harness эти сущности становятся артефактами репозитория: REQ описывает обязательный результат, ADR фиксирует устойчивое решение, PRN — долгоживущий инженерный инвариант, STEP — ограниченную единицу работы. Код, доказательства и отчёт ревью дополняют эту базу фактическим состоянием.
Из чего состоит coding harness
Протокол
AGENTS.md, канонические команды и machine-readable transitions определяют, как начинается, продолжается и завершается работа.
База знаний
REQ, ADR, PRN, OQ и STEP хранят, что строится, почему выбрано решение и какие ограничения действуют.
Детерминированный слой
Python-инструменты проверяют структуру, переходы, актуальность планов, verification, completion, Git preconditions и состояние выполнения там, где ответ можно вычислить однозначно.
Смысловые роли
Планировщик, реализатор и проверяющий получают Context Contract конкретной задачи и используют модель только там, где требуется интерпретация.
Чем это отличается от фреймворка агентов
Фреймворк агентов обычно является частью самого AI-приложения: он соединяет агентов, инструменты, сообщения, память и внешние сервисы во время работы приложения. AI Development Harness расположен на другом уровне — вокруг процесса разработки репозитория.
| Вопрос | AI coding harness | Фреймворк агентов |
|---|---|---|
| Кто пользователь | Разработчик и агент для программирования | Рабочее AI-приложение |
| Что организует | Требования → план → код → ревью → Git | агенты → инструменты → сообщения → действия |
| Где хранит проектную истину | В Git-репозитории | В среде исполнения или хранилище приложения |
| Заменяет Codex/Claude Code | Нет | Не относится к задаче |
Поэтому проект вполне может одновременно использовать Harness для собственной разработки и какой-либо фреймворк агентов внутри продукта.
Почему это больше, чем AGENTS.md
AGENTS.md важен: он даёт модели правила проекта. Но инструкции сами по себе не хранят состояние конкретного STEP, не доказывают прохождение verification, не определяют актуальность плана после изменения REQ и не отвечают на вопрос, можно ли безопасно повторить Git side effect после сбоя.
Harness добавляет к инструкциям сохраняемое состояние и исполнимые контракты. Например, STEP RUN не означает «модель, сделай всё»: dispatcher вычисляет допустимую следующую фазу, verification запускается отдельно, ревью создаёт неизменяемый отчёт, а completion gate решает, выполнены ли обязательства задачи.
Когда такой слой оправдан
Harness особенно полезен, когда проект живёт дольше одной сессии, требования и архитектура меняются, задачи затрагивают несколько подсистем, а результат должен быть проверяемым. Он также полезен, когда один репозиторий открывают в разных поддерживаемых средах исполнения и нельзя полагаться на скрытую память конкретного клиента.
Для одноразового скрипта или очевидной мелкой правки полный STEP действительно может быть избыточен. Поэтому Harness отдельно оставляет короткий путь PROJECT QUICK FIX и не превращает каждую опечатку в церемонию.
Как попробовать
Практический путь короткий: создать репозиторий из шаблона, описать проект в PROJECT_BRIEF.local.md, открыть его в Codex или Claude Code и выполнить PROJECT INIT. После инициализации новая задача начинается с STEP ADD, а полный цикл можно пройти через STEP RUN.