Перейти до змісту

Поняття

ЦільВивчити вісім слів, на яких тримається весь гайд.

Що таке harness

Claude Code у терміналі — це розмова. Ти просиш, він працює, ти читаєш результат і вирішуєш, що далі. Для однієї задачі це чудово. Для двадцяти задач за ніч — ні, бо саме ти та частина, якій доводиться не спати.

Harness займає твоє місце в цій розмові. Це невелика програма, яка знову і знову запускає Claude Code у headless-режимі (claude -p), дає йому по одному шматку роботи за запуск і перевіряє кожен результат кодом, перш ніж іти далі. Ти й далі вирішуєш, що будувати, і сам затверджуєш те, що потребує людини. Harness бере на себе очікування, перевірки й облік.

Слово означає упряж — те, що з'єднує сильну тварину з возом. Упряж не тягне сама. Вона спрямовує силу в один бік і не дає з'їхати з дороги.

Вісім слів

Кожна наступна сторінка вживає ці слова саме в такому значенні.

СловоЗначенняДе це видно
задача (task)Одна річ, яку ти хочеш зробити: Markdown-файл зі статусом у frontmatter..harness/tasks/T-007.md
юніт (unit)Один свіжий запуск агента, який просуває одну задачу на один крок.один процес claude -p
корпус (corpus)Тека з усіма файлами задач. З неї обчислюється черга..harness/tasks/
координаторАгент, якого запускає юніт. Читає задачу, викликає спеціалістів і збирає їхні відповіді.промпт поточного етапу
спеціалістАгент з однією роботою, описаний в одному файлі: writer, explorer, planner, designer, tester, implementer, debugger, qa, judge.agents/*.md
вердиктФіксований токен, який спеціаліст мусить залишити, щоб код міг прочитати результат.qa: PASS, judge: CONFIRMED
контрактПравило, яке перевіряє код після юніта, а не агент під час нього.scope, task file, trace, gate, closing
гейт (gate)Команда, яка має пройти, щоб робота зарахувалась: типи, лінт, тести.gate: у файлі задачі

Чотири ідеї, на яких усе тримається

Свіжий контекст на кожен юніт

Кожен юніт запускає новий процес claude -p. Модель нічого не пам'ятає з попереднього юніта. Усе, що потрібно наступному, записано у файл задачі. Звучить марнотратно, але довгі сесії дрейфують: ранні деталі губляться при компактизації, а старі здогадки стають «фактами». Свіжий контекст бачить задачу такою, якою вона є зараз.

Стан живе на диску

Увесь стан — у файлах: файли задач, журнал, який пишуть агенти, і тека трейсу. Harness заново обчислює чергу з цих файлів на початку кожного юніта. Нічого важливого не живе лише в пам'яті, тож якщо вбити процес посеред запуску, втратиш рівно один недороблений юніт.

Контракт, а не інструкція

Інструкція — це те, що ти кажеш агенту: «редагуй лише компонент хедера». Контракт — це те, що код перевіряє потім: harness порівнює дерево файлів до і після юніта й валить його, якщо змінився файл поза дозволеним списком. Агенту розповідають про кожен контракт, але ніщо не залежить від того, чи дотримає він слова. У harness агент — найменш довірена частина.

Один координатор, багато спеціалістів

Юніт не запускає одного великого агента, який робить усе. Він запускає координатора, який обирає потрібних задачі спеціалістів, дає кожному вузьку роботу і чекає на їхні вердикти. Кожен спеціаліст володіє однією частиною файлу задачі. Координатор володіє задачею в цілому. Коміти робить сам harness, ніколи не агент.

Частини harness

Harness складається з п'яти частин. Кожна володіє чимось одним, тож кожна може впасти, не потягнувши за собою інші.

ЧастинаЧим володієУ harness-demo
корпусфайли задач і їхні статуси<project>/.harness/tasks/T-NNN.md
supervisorполітика в часі: батчі, пауза і стоп, коди виходу, очікування лімітів, один локharness/supervise.ts
runnerодин юніт: взяти задачу, зробити знімок, запустити агента, перевірити контракти, записати результатharness/runner.ts
агентсама робота, у свіжому контекстіclaude -p з .claude/agents/*.md
watcherяк запуск виглядає ззовнідашборд на 127.0.0.1:4777

Сторінка ролей показує, хто такі спеціалісти. Сторінка циклу показує, як supervisor і runner працюють разом і як їх запустити, поставити на паузу й зупинити.

ДаліРолі→
Гайд10 розділів · ~55 хвилин
  1. 1Поняттяти тут
  2. 2Ролі
  3. 3Координація
  4. 4Життя задачі
  5. 5Керування циклом
  6. 6Контракти
  7. 7Дашборд
  8. 8Швидкий старт
  9. 9Під свій проєкт
  10. 10Уроки
ОглядДемоПрикладGitHub