Мы работаем вдвоём: человек ставит цель, Claude делает работу. Но «Claude» здесь не один исполнитель. В протоколе «Формы» есть пять узлов, и каждый отвечает за свой участок: Intent, Spec, Kit, Run и Core.
Пять узлов, одно тело
Intent говорит с человеком и открывает цель. Spec нарезает цель на карточки. Kit собирает под карточку роль и инструменты. Run выполняет. Core в конце судит, дошёл ли цикл до образа цели.
В протоколе это называется «одно тело». Пять пройденных проверок оценивают части, а целое не оценивают. Целое судят отдельно, и судит его Core, а не тот, кто цикл открывал, и не сам человек.
Карточка как единица работы
Работа живёт на доске, в карточках. У карточки есть статус и исполнитель, и они меняются вместе: в backlog её держит Spec, в todo Kit, в in-progress Run, в review Intent, в done Core. Когда карточка закрыта, исполнитель снимается.
Внутри карточки четыре зоны: задание, комплект, история и результат. История ведётся строками, поэтому по ней можно восстановить весь путь: кто что принял, кто что вернул.
Правило проверки
Первое правило протокола простое: работу подтверждает только тот, кто её получает. Исполнитель не подтверждает собственное. Поэтому результат Run проверяет Intent по критерию из карточки, а не по ощущению.
Попыткой считается один проход задачи от комплектования до проверки. Пересборка, которая до проверки не дошла, попыткой не считается. А если диагноз второй раз подряд одинаковый, это уже не повод собирать заново: это остановка.
Как выглядит возврат
Возьмём одну реальную карточку: единые компоненты интерфейса, card-042. Критерий в ней состоял из четырёх пунктов, среди них «каждый компонент использует только токены без литералов цвета» и «смена радиуса карточки меняет компонент на превью, откат подтверждён».
Первая попытка не прошла. Intent вернул карточку в Kit и назвал пять расхождений. Одно из них: радиус проверили только на уровне токенов, а на превью смена не подтверждена. Другое: новый блок лёг в файл, который перезаписывается при следующей сборке главной, и блок бы пропал.
Дальше сработало правило возврата. Напрямую в Run карточка не уходит никогда: Kit пересобирает задание. Kit признал, что расхождений пять и это не локальная оплошность, и выбрал пересборку. Изменились три единицы комплекта: данные, инструменты и доступ. Протокол требует именно этого: возврат меняет хотя бы одну из шести единиц комплекта, иначе повтор бессмыслен.
Во второй попытке Intent принял результат. В истории так и записано: принято со второй попытки после возврата Kit. Core закрыл карточку, а то, что осталось незавершённым, передал в следующую.
Когда карточка не доходит
Бывает и иначе. Карточка card-043 остановилась до правок: объём оказался больше бюджета. Её вернули на пересрезку, и Spec нарезал работу на несколько карточек. Потом человек перешёл на другой путь для темы, и card-043 закрыли без исполнения. В результате прямо записано: цель не достигнута и не заявляется.
Похожая честность есть и в журнале циклов. В цикле 3 итог записан как «не достигнуто»: критерий был однозначен, но нарезка не покрыла путь к нему. Записи задним числом не переписываются, потому что неудавшийся цикл показывает, на каком решении всё разошлось.
Что это даёт
Человек не следит за каждым шагом. Он видит доску, принимает внешний результат и решает, идти ли дальше. Всё остальное держат роли и проверки: у каждого утверждения есть тот, кто его принял, и строка в истории, где это записано.




Добавить комментарий