Среды исполнения

Codex и Claude Code

Harness описывает процесс разработки независимо от конкретного агента для программирования. Codex и Claude Code подключаются к одному протоколу через отдельные конфигурации адаптеров.

Один протокол, две среды исполнения

Команды Harness, требования, ADR, STEP, навыки, политика Git и правила обновления не принадлежат конкретной модели. Канонический контракт репозитория хранится в AGENTS.md, а Codex и Claude Code получают собственную конфигурацию исполнения.

HARNESS PROTOCOL
AGENTS.md · REQ · ADR · STEP · skills · policies
             ↓
      адаптер среды исполнения
        ↙         ↘
     Codex     Claude Code
Можно сменить среду исполнения, не меняя смысл проекта. Состояние работы остаётся в репозитории, поэтому следующая сессия восстанавливает контекст из тех же артефактов.

Provider-neutral Runtime Adapter Contract

Граница между Harness control plane и конкретным AI runtime формализована в .harness/runtime-adapter-contract.json. Adapter переводит lifecycle, account state и события конкретного provider, но не меняет CTS, STEP/REQ/ADR semantics, resolver или recovery decisions.

Capabilities

Каждая capability объявляется как native, synthesized или unsupported. Ключи включают runtime identity, authenticated account, model/effort, interactive input, streaming, resume, cancel, subagents, structured output, MCP tools и session/execution IDs.

Normalized events

Control plane работает с закрытым набором событий: run.started, message delta/completed, tool started/completed, input.required, auth.required, run.interrupted, run.completed и run.failed. Неизвестный canonical event fail-closed.

Account state без secrets

Codex использует machine-readable account/read App Server, Claude Code — claude auth status. Harness может показывать безопасную identity/account metadata, но не сохраняет токены, ключи, cookies или credential files.

Проверка контракта выполняется детерминированно:

python3 .harness/tools/runtime_adapter_contract.py --json
python3 .harness/tools/runtime_adapter_contract.py --runtime codex --json
python3 .harness/tools/runtime_adapter_contract.py --runtime claude --json

Контекст роли выбирает Harness, а не адаптер среды исполнения

Перед смысловым вызовом Harness строит Context Contract для конкретной роли. Планировщик, реализатор и проверяющий получают разные проекции отдельных разделов STEP, связанных REQ/ADR/OQ, ссылки на архитектуру и применимых Project Principles.

STEP + role + repository revision
        ↓
runtime-neutral Context Contract
        ↓
Codex adapter / Claude Code adapter

Adapter может отличаться способом физического чтения файлов, но не меняет состав обязательного контекста. Дополнительный файл подключается только с явной причиной, а недоступный обязательный контекст приводит к BLOCKED вместо неограниченной предварительной загрузки всего репозитория.

Адаптер Codex

Основная конфигурация

.codex/config.toml регистрирует проектные роли и их файлы конфигурации.

Специализированные роли

.codex/agents/*.toml задают модель, уровень рассуждений, изоляцию и инструкции для каждой роли.

Модель и уровень рассуждений можно менять независимо для инициализатора, архитектора, планировщика, реализатора, проверяющего и остальных ролей. Это позволяет использовать усиленное рассуждение для архитектуры и независимого ревью, а механическую работу отдавать более экономичному профилю.

Адаптер Claude Code

Общий контракт репозитория

CLAUDE.md импортирует @AGENTS.md, поэтому правила Harness не дублируются в двух независимых файлах.

Основной профиль

.claude/settings.json задаёт проектные значения по умолчанию: модель, уровень рассуждений и базовый режим разрешений.

Специализированные роли

.claude/agents/*.md задают model, effort и permissionMode для каждой роли.

Локальные настройки

.claude/settings.local.json и CLAUDE.local.md позволяют хранить персональные настройки только для Claude вне Git.

Роли только для чтения — например архитектор, планировщик и проверяющий — по умолчанию используют режим планирования. Семантическое правило «не менять файлы» остаётся частью контракта Harness, даже если пользователь временно меняет режим основной сессии Claude Code.

Codex и Claude Code используют одну проектную память

Различается формат адаптера, но канонические артефакты проекта и смысл команд остаются общими.

ОбластьCodexClaude Code
Входной контрактAGENTS.mdCLAUDE.md → AGENTS.md
Роли.codex/agents/*.toml.claude/agents/*.md
Состояние аккаунтаApp Server account/readclaude auth status
Навыки.agents/skills/.agents/skills/
REQ / ADR / PRN / STEPОбщиеОбщие
Project State APIОбщийОбщий

Поэтому проект можно продолжить в другой поддерживаемой среде исполнения без переноса скрытой истории чата: источник истины остаётся в репозитории.

Практический сценарий Codex и Claude Code в одном проекте →

Роли одинаковы по смыслу

Оба адаптера поддерживают один набор ролей Harness. Отличается только формат конфигурации среды исполнения и конкретный выбор модели.

initializer · architect · planner · implementer
reviewer · security-reviewer · test-reviewer · docs
mechanic · skill-curator · git-operator · harness-updater

В базовом профиле роли с большим объёмом рассуждений получают более сильную модель и высокий уровень рассуждений, реализатор — сбалансированный профиль, а механические роли — более дешёвый. Проект может менять эти значения под собственные ограничения.

Навыки остаются общими

Канонические навыки Harness находятся в .agents/skills/<name>/SKILL.md. Адаптер Claude не создаёт зеркальную копию базовых навыков в .claude/skills/: это избегает расхождения двух версий одного процесса. Проектные навыки только для Claude при необходимости можно добавлять отдельно.

Настройки проекта сохраняются при обновлении Harness

Отслеживаемые конфигурации ролей Codex и Claude относятся к общим файлам. HARNESS UPDATE APPLY использует трёхстороннее слияние BASE / OURS / THEIRS и не должен молча перезаписывать локальный выбор модели и уровня рассуждений. Неизвестные проектные файлы внутри каталогов адаптеров по умолчанию считаются принадлежащими проекту.

Что выбрать

Выбирайте ту среду исполнения, которой хотите пользоваться в текущей рабочей среде. Harness не требует использовать оба одновременно: достаточно одной поддерживаемой среды исполнения — Codex или Claude Code. После создания репозитория откройте его в выбранном инструменте и выполните PROJECT INIT.

Перейти к началу работы →