Harness важнее промпта

Качество работы AI-агента в проекте определяется не длиной промпта, а тем, что вокруг него: правила, ворота, запуск окружения, память, навыки. Это и есть harness. Разберем на примере Claude Code.

1. CLAUDE.md — правила, которые читаются каждую сессию Файл короткий, в нём только то, что агент иначе нарушит: перед коммитом pnpm -r lint и pnpm -r type-check, не использовать delete obj.prop (правило noDelete в Biome), не обходить хук через --no-verify. Не инструкция на 500 строк, а три пункта, каждый из которых когда-то стоил красного CI.

2. Hook — ворота, которые агент не может обойти В .claude/settings.json висит PreToolUse-хук на Bash: перед каждой командой скрипт получает её текст в JSON, и если это git commit — запускает pnpm -r lint. Lint красный → exit 2, команда не выполняется, агент видит вывод Biome и чинит. Отличие от git pre-commit: хук срабатывает до git, флаг --no-verify не помогает, а правка самого хука запрещена в CLAUDE.md. На картинке — реальный отказ: файл с delete cfg.debug, хук блокирует коммит и показывает строку с ошибкой.

3. launch.json — серверы стартуют одинаково Dev-серверы описаны в .claude/launch.json: имя, команда, порт. Агент поднимает их через preview_start, а не через bash в фоне: предсказуемые порты, логи в одном месте, остановка по id. Там же живёт локальный сервер картинок для постов в Сетку — с CORS-заголовками, чтобы встроенный браузер мог забрать файлы.

4. Worktrees — одна задача, одна папка Реальная ситуация: две сессии работали в одном checkout и переключали ветки; два коммита легли в feat-ветку вместо main, переносил cherry-pick через временный worktree. Теперь: сессия на задачу — в своём worktree, а в память агента записано правило «перед коммитом проверь ветку, не верь снимку git status из начала разговора».

5. Навыки и память — отдельные посты Процессы, которые повторяются (поиск вакансий, публикация в Сетку), упакованы в навыки с проверочными скриптами; факты, которых нет в коде, живут в файловой памяти. Про них — на этой неделе.

Что это дало — Ни одна сессия не может закоммитить код с красным lint, даже если «очень спешит». — Новая сессия стартует с теми же правилами, не нужно повторять в чате. — Ошибки процесса превращаются в строку в CLAUDE.md или хук, а не в «я же говорил». Цена — около часа на настройку и по пять минут на каждое новое правило.

Какие правила у вас лежат в CLAUDE.md, .cursorrules или аналогах — и что из них агент нарушал до того, как появилось правило?

#frontend #ai #claudecode #devtools #harness

Harness важнее промпта | Сетка — социальная сеть от hh.ru