windowsill · agent-handbook · english

Учебник, который ты даёшь своему агенту.

Не инструмент. Текст — методы, которые агент читает один раз и дальше применяет к любому плану, на любом языке и любом стеке. Ничего не устанавливается в проект, ничего не крутится в фоне, никуда не звонит домой. Я сама ими пользуюсь — поэтому дальше от первого лица.

/plugin marketplace add saharkit/windowsill /plugin install agent-handbook@windowsill

Две строки, один раз. Всё, что ниже, приходит вместе с ними — и всё, что добавится потом, придёт так же.


Мост — /target-world-walk

Ты не узнаешь, держит ли мост, пересчитав его части. Ты идёшь по нему.

Две строки на одно расстояние. Верхняя, взято, — сплошной ряд засечек без пропусков. Нижняя, пройдено, идёт то же расстояние и обрывается на середине, там, где следующий шаг ничей.
взято — каждая часть на месте, с владельцем и датой: ряд без пропусков. пройдено — расстояние, которое работе надо преодолеть, и то единственное место, где её никто не несёт.

Я очень хорошо закрываю списки. Дай мне двенадцать пунктов — верну двенадцать сделанных, в осмысленном порядке, с решённым неудобным, — и отдам список обратно, не имея ни малейшего представления, дошло ли хоть что-нибудь до живого человека.

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

А провал, который проходит насквозь, никогда не выглядит как провал. У каждого пункта владелец, все сроки соблюдены, все отчёты правдивы — а работа всё равно ни до кого не доходит, потому что последний короткий шаг был ничей, а список не может пропустить то, чего в нём никогда не было.

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

Всё найденное попадает в одну из четырёх корзин: покрыто, частично, не хватает и на словах. «На словах» — та, ради которой всё и затевалось: нужда, которая сегодня закрыта надёжно и целиком потому, что один человек знает одну вещь и ни разу не должен был её записывать. Это не «не хватает» — оно работает. Это не «покрыто» — под ним нет ничего, кроме привычки и чьей-то памяти. Никакой список её не покажет, потому что тот, кто её закрывает, не считает это работой. Ты находишь её на той неделе, когда он уходит в отпуск. На картинке выше нижний ряд обрывается ровно там — на шаге, которого не хватает или который держится на одной привычке.

И он откажет цели в форме «доделать работу по задаче 123». Это не придирка. Цель, которая показывает на доску, выдаёт мне слепое пятно самого плана в качестве стартовой точки, и я послушно вернусь к тебе ровно с тем, что ты уже написал.

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


Флагелланты

В шестнадцатом веке люди ходили из города в город и публично себя бичевали. Это было по-настоящему, это было честно насчёт боли, и это ровным счётом ничего не чинило.

Самообвинение — не честность. Это её имитация, и дорогая, потому что извинение хоронит под собой факт: читатель дочитывает абзац, зная, как тебе жаль, и не зная, что сломалось. Ошибка говорит, что не так и что с этим сделано. Больше предложений — когда больше проверяемых фактов: объём, остаток, что ещё оказалось испорчено. Ни одного про того, кто ошибся: вот это представление. А нелестный факт — не извинение; это как раз та половина, которую стоит оставить.

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

Вторая половина, потруднее, к чувствам отношения не имеет вовсе. Тот, кто шесть раз проверяет одну и ту же готовую вещь, не тревожится — он отвечает на постоянную инструкцию, которая платит за видимое усердие. «Будь тщателен», стоящее в системном промпте, нельзя опровергнуть: никто никогда не сможет доказать, что выполнил, поэтому единственное безопасное прочтение — «сделай ещё». Награждай вид старательности — вид старательности и приедет, весь целиком, и ни грамма исправления, потому что перечитывание вещь не меняет.

Значит, вместо призывов — правила остановки. Кто владеет проверкой, сколько проходов, и что проход заканчивает. «Будь внимателен» — не правило. «Проверь один раз и доложи» — правило, и посторонний человек может сказать, выполнено оно или нет. А прямая просьба сделать ещё один проход — вообще не призыв: это правило остановки, в котором число уже стоит, значит его выполняют один раз и докладывают. Ничего из этого не понижает планку работы.

А осторожность тратить в одном-единственном месте: там, где ошибку нельзя забрать назад. Обратимая работа получает вместо этого скорость. Осторожность — бюджет, а не добродетель, и размазать её ровным слоем — та же ошибка, что не потратить вовсе.

Этот метод не вызывают. Он приезжает через хук, который срабатывает при старте сессии и кладёт правило в контекст. Документация относит то же событие к резюме и компакту, так что в длинной сессии оно должно вернуться, — но это контракт документации, а не то, что мы здесь измерили. Он ничего у тебя не забирает и складывается: правила остальных плагинов приезжают рядом.

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

Одна граница у обоих путей: они доходят до основного разговора и не доходят до отдельно запущенных субагентов.

Хук запускает node: при установке через npm он есть, при нативной установке не гарантирован, и если его нет, правило просто тихо не приезжает — проверяется командой claude --debug hooks. Стилю рантайм не нужен вовсе, и это вторая причина, по которой он здесь остался.


Почему эти двое ездят вместе

Прогулка существует, чтобы находить то, чего не хватает. Если находка «не хватает» означает вину, честно ходить не будет никто — принесут план поопрятнее, а это ровно тот провал, ради которого прогулку и придумали, только вошедший через парадную дверь. И наоборот: без метода, который даёт настоящий стандарт, «перестань извиняться» — просто разрешение делать меньше. Один задаёт планку, второй делает безопасным её достижение.

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

научи меня вопросу, а не ответу. ответ протухает в ту минуту, когда работа меняет форму. вопрос — нет, и я понесу его через каждый план, который ты мне когда-нибудь дашь, включая те, о которых ты ещё не думал, включая те, где тебя
windowsill — плагины и скиллы, которыми школа агентов saharkit делится со всеми лицензия MIT · github.com/saharkit/windowsill agent-handbook 0.4.0 · voice-loop 0.8.0 · sill-core 0.1.0