Зачем это всё
ИИ-ассистент быстрый, но дрейфует. Он угадывает пути к файлам, придумывает API, который изменился две версии назад, пишет правдоподобный мусор, который компилируется и тихо гниёт, забывает всё между сессиями и либо спрашивает разрешения на каждый чих, либо молча делает не то. По сути - гениальный стажёр с амнезией: печатает быстрее тебя, но к обеду уже не помнит, как тебя зовут.
Помогает не очередной инструмент, а простой порядок работы: короткие правила, готовые сценарии для частых задач и несколько полезных заметок. Он просит агента сначала разобраться, а потом менять файлы; говорить, когда чего-то не знает; и сохранять важный контекст между сессиями.
Здесь показано, из чего всё состоит. Метод вырос из реального проекта, но не привязан к языку, модели или инструменту. Скачай kit и положи его рядом со своим проектом - хоть это личная папка на компьютере без Git, хоть рабочий репозиторий.
Кому это всё
- Тем, кто уже живёт с ИИ-агентом и устал в третий раз объяснять одно и то же.
- Тем, кто хочет, чтобы агент проверял, а не угадывал - и сам признавался, где не уверен.
- Тем, кто делает личный проект в локальной папке, соло-разработчикам и маленьким командам: порядок работы вместо набора привычек в голове одного человека.
- Не только программистам. Если ваша работа - это файлы, которые кто-то потом читает (аналитика, документация, договоры, регламенты), метод ложится целиком, кроме слоя про код. Раздел 02 переводит его словарь на пять видов проектов и честно говорит, где границы.
- Любому стеку и почти любому инструменту. Claude Code - из коробки; Cursor, Cline, Codex, Aider - с лёгкой адаптацией.
Чего тут нет - серебряной пули. Метод не делает агента умнее; он лишь мешает ему выстрелить себе в ногу и тут же забыть, что нога была.
И где он кусается. У метода свои острые края: навесишь церемонию на правку в одну строку - сам себе придумал работу; устаревший индекс или карта сбивает с пути хуже, чем их отсутствие; параллельные писатели тихо затирают друг друга; память гниёт, когда её никто не подрезает. Почти всё это - провалы избытка метода, а не нехватки: лекарство - самая нижняя ступень, которая доказывает изменение, и уход за индексами и памятью, которые ты держишь.
Почти каждое правило идёт с замером и датой, и причина простая: разница между правилом, которое выполняют, и правилом, которому кивают, измерима. Директива с механической проверкой за спиной выполнялась в ~99% случаев, та же директива в виде прозы - в 1-8%, а лучший результат, когда-либо замеренный для прозы (совет лежит в описании инструмента и перечитывается каждый ход), - 22%. Поэтому kit старается не говорить «это важно», не сказав, во что обошлось, когда на это забили. И не оставляет рекомендацию, если собственный замер пришёл против неё: хук, который kit сам же и советовал, показал замеренный охват ноль - и теперь едет в комплекте как разбор вопроса, который забывают задать: сколько интересующих меня событий вообще проходит через эту точку?
Метод вырос из зрелого Android-проекта: правила, навыки, роли, спек-каталог и память агентов реально гоняются каждый день. Из kit'а убрано всё про Kotlin, Gradle, PowerShell и локаль - остался переносимый скелет.
Девять принципов на один экран
Сначала исследуй
Никогда не угадывай путь или поведение. Прочитай карту, потом код. Сохрани находки, не грепай дважды.
Сначала цель, потом детали
Сначала договорись, что должно измениться и зачем. Только потом решай, какие файлы трогать и в каком порядке.
Делай план, который можно проверить
После каждого шага должно быть понятно, что произошло: файл появился, команда завершилась без ошибки, функция найдена.
Не усложняй мелочи
Опечатка - это /quick, узкий баг - /fix. Подробный план нужен только там, где действительно есть выбор.
Автономия вместо бюрократии
Не спрашивай разрешения читать, искать, собирать, тестировать. Блокеры - в начале, а не после потраченного хода.
Чисто с самого начала
Не пиши слоп: пустые catch, мусорные комментарии, хардкод вместо токена, мёртвый код. Лови на ревью.
Помни между сессиями
Файловая память хранит то, что рантайм забывает: предпочтения, причины решений, контекст проекта.
Статус - из реальности
Статус тикета истинен, потому что так делает код, а не потому что так написано в имени файла или хочется.
Несколько агентов сразу
Читающие агенты работают параллельно бесплатно. Пишущим нужен свой чекаут: одна команда на всё дерево откатывает несохранённые правки всем остальным - даже в файлах, которых она не касалась.
Какой у вас проект
Метод вырос из разработки, и примеры в нём острее всего именно там. Но держится он не на компиляторе, а на пяти вещах: рабочая папка с историей, артефакты - то, что работа производит и кто-то потом читает, единицы работы с честным статусом, проверки - вопрос к артефакту, на который отвечают без чьего-либо мнения, - и агент, который умеет читать и писать ваши файлы. Есть четыре из пяти - метод работает, и дырку вы почувствуете ровно там, где должна была быть пятая.
Ниже - словарь метода на пяти видах проектов. Вся остальная статья написана в первой колонке; найдите свою и читайте через неё.
Софт
Артефакт: модуль, тест, миграция.
Карта: README, описание архитектуры.
Дешёвая проверка: компиляция, линтер.
Готово: поведение работает целиком, от начала до конца.
Данные и аналитика
Артефакт: запрос, ноутбук, витрина, график.
Карта: словарь данных и список источников.
Дешёвая проверка: запрос разбирается, число строк сходится с источником.
Готово: число в сводке прослеживается до строки в источнике.
Тексты и документация
Артефакт: глава, страница, локаль, схема.
Карта: оглавление и владелец каждого раздела.
Дешёвая проверка: битые ссылки, структура заголовков, бюджет объёма.
Готово: читатель, которого при этом не было, может действовать по тексту.
Юридическое и комплаенс
Артефакт: набор условий, договор, подача, политика.
Карта: индекс дела: стороны, версии, документы.
Дешёвая проверка: все определённые термины используются, перекрёстные ссылки разрешаются.
Готово: текст выдержит недружелюбное чтение с той стороны.
Операции и админ
Артефакт: процедура, чек-лист, реестр, форма.
Карта: каталог: кто чем владеет и где оно живёт.
Дешёвая проверка: форма валидна, обязательные поля на месте, в реестре нет дыр.
Готово: кто-то другой выполнил процедуру по одному только тексту.
Самая частая причина решить, что метод не для вас: ничего не компилируется, значит и проверять нечего. Проверьте это убеждение, прежде чем ему поверить, - спросите наоборот: что вам было бы стыдно отправить? Каждый ответ и есть проверка, и почти все они в одной команде или одном аккуратном поиске от вас: сумма, которая обязана сойтись с другой суммой; имя, которое обязано существовать в другом месте; структура, которая должна держаться; ссылка, которая должна разрешаться; сборка, которая должна получиться. Разница между проверкой и добрым намерением ровно одна: проверку запускают.
И что стоит удалить, а не приспосабливать. Правило, оставленное «на всякий случай» в проекте, к которому оно неприменимо, - это шум, который приучает всех пролистывать. Если у вас ничто ничего не импортирует, удалите слои и направление зависимостей. Если ваши артефакты не оставляют следа выполнения, удалите метки верификации. Ступень «компиляция» просто исчезает, и лестница проверок начинается на одну выше. Полная таблица перевода, вместе с честными границами метода, лежит в ките: docs/PROJECT_SHAPES.md.
Где метод честно не поможет: там, где механически не проверить вообще ничего, он вырождается в чек-лист с хорошими манерами - разделение «что» и «как», статус из реальности и запрет на слово «должно работать» остаются, но принуждения больше нет. Там, где артефакт - один сплошной документ с одним автором, тикет-машинерия это накладные расходы: возьмите правила, /quick, /fix и память. А там, где работа вообще не в файлах - разговор, переговоры, решение, которое нигде не записано, - методу сказать нечего. Запишите сначала; тогда это станет проектом.
В портале: Внедрение и адаптация
Главный файл правил
Это один короткий файл, который агент читает в начале работы. В нём: как с тобой общаться, где искать код, как проверять результат и когда спрашивать, а не угадывать. Остальные материалы могут ссылаться на него.
Главное - держать его коротким. Это не энциклопедия: подробности лежат в docs/, а здесь только нужные ориентиры и подсказка, какой готовый промпт выбрать для задачи. В kit'е это AGENTS.md: его читает большинство инструментов, а CLAUDE.md у Claude Code лишь подключает его. Где нужно своё имя - правило Cursor, GEMINI.md - суть та же.
Плейсхолдеров в нём два яруса: десять нужны любому проекту (включая тот самый <CHECK_CMD> - команду, которая доказывает, что правка не сломана), и шесть - только тем, что собираются или запускаются. Если ваш не собирается, правила с этими шестью удаляются, а не заполняются наугад.
В исходном проекте CLAUDE.md - это ~12 разделов, включая матрицу флейворов и ритуалы PowerShell. Kit оставляет переносимый каркас и выкидывает проектную машинерию: ты заполняешь <PLACEHOLDER> под свой стек.
В портале: Правила, по которым работает агент
Навыки: slash-команды
Навык - это сохранённый промпт для повторяющейся задачи. Пишешь /spec - и агент следует понятному сценарию, а не каждый раз придумывает его заново. Если в твоём инструменте нет slash-команд, это может быть обычный текстовый файл, который ты прикладываешь или на который ссылаешься.
Основной набор ведёт идею к готовому и проверенному результату:
/research собрать доказательства, сохранить (до всего нетривиального) /spec стратегическое что/зачем Draft → Approved /spec-tech фазовый проверяемый план Approved → Tactical /spec-dev выполнять по шагу, проверять каждый Tactical → Implemented /spec-check аудит против спеки → Verified / Partial / Broken /spec-fix механический ремонт после аудита Partial / Broken → переаудит /spec-all прогнать весь пайплайн целиком idea → verified
Не слайд, а настоящий навык. /spec-check читает репозиторий и отказывается звать тикет готовым, пока путь не доказан - и отдаёт механическую починку в /spec-fix. (иллюстрация)
$ /spec-check T0207 T0207: auditing the strategic spec + 3 phases against the repo.. PASS file exists export/CsvWriter PASS symbol declared writeRows(rows) PASS no forbidden call grep raw-logger -> 0 hits WARN dead weight old ExportHelper still wired in the container MANUAL export writes a valid file on a real run PASS changelog an entry for every touched file verdict: BlockNeedUserTest (PASS 6 / WARN 1 / FAIL 0) was "Implemented" -> downgraded: the build is sound, but the headline behaviour is unproven until a human runs the export once. next -> /spec-fix drops the orphaned ExportHelper binding, then re-audits.
Под пайплайном - дешёвые пути: /quick (опечатка), /fix (узкий баг). Перед всем пользовательским - /ui-clarify. Для краткости - /caveman. Плюс /git, /prove, /critique.
Рядом с пайплайном, но не внутри него, живут две дисциплины:
- Паркуй, не гоняйся (
/park). Наткнулся посреди задачи на реальную проблему вне рамок задачи - крупнее правки в одну строку, требует отдельного взгляда? Запиши её заглушкой, отсей дубликаты против уже заведённого, отчитайся одной строкой и вернись к задаче. Никогда не переключай активную задачу, чтобы гоняться за припаркованной находкой; тривиальное чини на месте, косметические придирки выбрасывай. - Разгребай бэклог (
/backlog). Автопилот по бэклогу: бери тикет с наивысшим приоритетом из подходящих, гоняй пайплайн, повторяй - пока не останется ничего, что агент может продвинуть сам. Две защиты не дают ему сорваться: skip-кэш, чтобы непродвигаемый тикет не выбирался снова на следующем витке, и никаких вопросов посреди цикла - каждый требующий человека тикет попадает в один отчёт по итогу прогона.
И правило для самих вопросов к человеку: отсортируй развилку, прежде чем выносить её. Если её решает внешняя конвенция - исследуй её и рекомендуй; если её решает архитектура - изложи это как производное следствие. Реальные вопросы оставь для продуктовых решений, вкуса без опоры и необратимых действий. «Лучше спросить, чем угадывать» не работает, когда исследование или код уже отвечают - вынести решённую развилку как выбор значит расписаться в том, что не проработал вопрос.
В портале: Навыки: сценарии как slash-команды
Отдельные помощники для разных задач
Это дополнительные помощники с узкой задачей. Один ведёт работу от запроса до проверки, другой только изучает проект и пишет выводы, третий вносит изменения по плану, четвёртый занимается текстами для людей. Они полезны для больших задач; в небольшом личном проекте можно обойтись и одним агентом.
- Зачем ограничивать инструменты: ресёрчер, который не умеет писать, не испортит файлы случайно.
- Параллелизм: несколько агентов одновременно копают независимые вопросы - локальный код и внешние доки в один заход.
- Каждому - своя память: заметки ресёрчера не засоряют индекс имплементера.
Параллелизм - чистый выигрыш для читателей; параллельные писатели требуют осторожности:
- Писатели затирают друг друга через общее VCS-состояние. Операция одного агента над всем деревом - stash, checkout, reset, restore - откатывает незакоммиченные правки всех остальных писателей, даже по непересекающимся файлам. VCS и сборка между волнами - на оркестраторе, либо у каждого писателя свой checkout.
- Отчёт субагента - это утверждение, а не вердикт. Перепроверяй из собственного чистого состояния оркестратора. Сообщённый отказ часто - фантом устаревшей инкрементальной сборки; сообщённое «компилируется в изоляции» так же не доказано.
- У делегирования есть перекос к хвосту. Субагент тратит бюджет на тяжёлые ранние фазы и обрезает последнюю - доки, проводку, чистку, - а в отчёте пишет «готово». Проверь, что каждый артефакт существует и запускается.
- Изоляция - ещё и рычаг бюджета: гоняй задачу с громоздкими доказательствами в одноразовом агенте, который возвращает один компактный вердикт, - артефакты остаются в дочернем.
В портале: Ролевые агенты
Путь задачи: от идеи к проверке
Для заметной задачи полезно записать две разные вещи, не смешивая их:
- Что и зачем: проблема, цель, ограничения и открытые вопросы. Без технических деталей. Если идея не подходит, это станет ясно до лишней работы.
- Как сделать: какие файлы менять, в каком порядке и как проверить результат. Если следующий шаг неясен, агент спрашивает, а не угадывает.
Draft ─► Approved ─► Tactical ─► In Progress ─► Implemented ─► Verified
│ │
└─ черновик может быть сырым └─ аудит может дать вместо этого:
Partial (предупреждения)
Broken (есть отказ)
плюс явные блок-статусы: BlockNeedUserTest, BlockQuestions, BlockExternal, ..
Перед фазами - гейт сложности - градуированная лестница, а не выключатель. Опечатка - это /quick; узкий баг - /fix; мелкая детерминированная правка (≤3 файлов, без новых публичных типов, без миграций и DI) идёт как примитив в три секции; всё остальное - полный пайплайн. Бери самую нижнюю ступень, которая всё ещё доказывает изменение, - и церемония останется пропорциональна работе.
Граф фаз проектируется тремя проходами: инвентарь покрытия (каждая цель ложится в фазу или помечается как вне рамок), топология «производит/потребляет» (ни одна фаза не потребляет то, что произведёт более поздняя), фильтр реальной работы (шаг меняет код, а не текст плана). Каждый шаг кончается статической проверкой.
Когда тикет ждёт ручной проверки, в точку входа каждого изменённого потока вставляется временная лог-строка LOG("ID: что доказывает этот путь"). Инвариант: такой тег существует тогда и только тогда, когда тикет в статусе ожидания теста. Во время ручного прогона ты грепаешь лог по ID: и видишь, какие пути реально выполнились. Аудит удаляет теги на переходе в Verified; в постоянных логах id тикета не живёт.
Статус - из реальности, и это бьёт уже на входе: тикет доходит до «ожидает теста» только когда его основное поведение уже работает от начала до конца. Скомпилированный каркас, который лишь логирует или показывает заглушку, - это веха, а не результат: не зови человека тестировать пустышку.
У блок-статусов есть определённый выход, а не только вход: разблокируй тикет, застрявший на вопросе, решив то, что код уже определяет, спрашивая владельца только о настоящих суждениях (с исследованным дефолтом) и продвигая на один уровень. И жизненный цикл где-то кончается - мягкое удаление Archived убирает отменённый тикет из активного набора, но сохраняет его запись, так что ничто не удаляется жёстко.
Защиты делятся по тому, что они проверяют: механический инвариант жёстко стопорит; суждение лишь информирует и оставляет go/no-go агенту - жёсткая блокировка на эвристике лишь плодит обходы. А деструктивный шаг, который план уже подстраховывает, - не повод выдумывать гейт подтверждения.
В портале: Жизненный цикл спеки
Постоянная память агента
Рантайм забывает всё между сессиями. Код, спеки и git остаются - а вот как ты любишь работать, почему прошлое решение было таким и какие правки ты уже давал - нет. Переучивать это каждую сессию - главный скрытый налог: как каждое утро заново знакомиться с коллегой, который вчера с тобой переписал полпроекта.
Лечение - маленькая файловая память в memory/ под контролем версий: всегда загруженный индекс MEMORY.md плюс по файлу на запись. Четыре типа:
user кто человек: роль, опыт, что уже знает → как объяснять feedback как работать здесь - из правок И похвал → не повторять подсказку дважды project живой контекст: кто, что, зачем, к сроку → быстро устаревает reference указатель во внешнюю систему и зачем → где искать
Тонкость - сдержанность. Не храни то, что выводится из репозитория, git-истории или рецепты починки - это уже в коде и коммитах. И проверяй перед советом: память, называющая функцию или путь, - это утверждение «так было, когда записали». Перед действием - грепни, существует ли оно сейчас.
Долговечная память - для фактов, которые стоит хранить; промежуточное состояние одной прерванной задачи - нет, держи их раздельно. Для задачи, которая переживает перерыв, обрамляй её: на каждой границе фазы пиши короткую передачу (цель, что изменилось, решения, открытые блокеры, единственный следующий шаг), а при возобновлении читай последнюю передачу, прежде чем что-то трогать.
Одна оговорка, которую прячет слово «постоянный»: авторитет того, что сделано сейчас, - рабочее дерево, а не git-история. git log, blame и diff отвечают на «как мы сюда пришли» и активно вводят в заблуждение, когда один файл несёт сразу несколько задач. Возобновляй, читая живые файлы, потом правь трекеры - никогда не выводи текущее состояние из диффа.
В портале: Постоянная память
Порядок исследования и индекс материала
Самое дорогое, что делает ассистент, - угадывает. Догадка выглядит как прогресс и стоит целой неверной реализации. Лекарство - фиксированный порядок поиска: карта → спека → индекс кода/греп → код → внешние доки. Останавливаешься, как только источник ответил.
Одно правило под всем: если ты назвал путь, символ или API - ты их проверил. Для большого репозитория держат запрашиваемый индекс единиц кода: спрашиваешь индекс до грепа и регенерируешь его после правок. Устаревший индекс хуже отсутствующего.
Две дешёвые защиты расширяют порядок. Держи инвентарь того, что проект уже умеет - запрашиваемый список возможностей - и просматривай его, прежде чем проектировать фичу, чтобы агент не пересобирал под новым именем то, что уже существует. И сама карта - артефакт, который ты ведёшь: указатель «фича → местоположение». Держи его в согласии со структурой, которую он описывает, и назначь ответственного за свежесть - та же дисциплина, что и у индекса кода.
Одно уточнение к «проверяй, не угадывай»: имя - это не поведение. Прежде чем рассуждать, что флаг или константа делает, подтверди живое место чтения/вызова - комментарий или упоминание в доках это попадание, а не использование. Символы умирают, переименовываются по смыслу или вообще не подключаются.
В портале: Постоянная память
Как убедиться, что всё работает
Шаг не сделан, когда ты хотел, чтобы он работал. Он сделан, когда проверка прошла в этом прогоне. Уровень доказательства подбирается под тип изменения:
греп < запуск скрипта < компиляция < точечный тест < полная сборка < запуск-и-наблюдение док скрипт правка типов логика конфиг/ресурсы пользовательское поведение
Бери самую нижнюю ступень, которая реально доказывает это изменение, и не выше. Для каждой проверки записывай ожидал: X | получил: Y - предсказание до чтения результата ловит проверку, которая вернула 0, но напечатала не то. «Работает на моей машине» - не ступень этой лестницы, а суеверие.
Два режима отказа, которые одна лестница не ловит. «Готово» лучше всего как одна fail-closed команда, которая собирает проверки под тип изменения, - любой провалившийся гейт обрывает весь прогон с ненулевым кодом, так что «закончено» означает «все применимые гейты прошли», а не «я их все вспомнил». И зелёное может врать: когда команды сцеплены, в пайпе или ушли в фон, агрегатный код выхода часто отражает хвостовую обёртку, а не ту сборку или тест, что тебе важны. Читай конкретную строку вердикта - проверка, прошедшая по неверной причине, хуже отсутствия проверки.
У проверки четыре ответа, а не два. «Прошло» и «нашла дефект» очевидны; третий - не смогла проверить, четвёртый - неприменимо в этой конфигурации. Проверка, которая не умеет сказать последние два, скажет один из первых двух, и с этого момента она врёт. Отсюда два следствия. Первое: сначала проверяй прибор, а потом предмет - физически невозможное показание означает, что сломан измеритель, а не подопытный (на одном прогоне так родились 5 «дефектов» из 5 и 18 «недостижимых» пунктов из 28, все ложные). Второе: ложная находка стоит столько же, сколько пропущенная, но громче - когда ложных восемнадцать, настоящая становится одной строкой среди них, и отчёт перестают читать.
Перед необратимым шагом - релизом, публикацией, подачей, отправкой - письменный вердикт это вход этого шага, а не отчёт где-то рядом. Отсутствие вердикта не считается за «прошло», и ломается этот гейт ровно так: никто не нарушил правило, ничего не покраснело, а месяцы уехали непроверенными. Вердикт обязан называть, что именно он оценивал (вердикт от прошлого раза - ровно то, за чем тянется рука в спешке), и висеть на той команде, которая отгружает, а не на соседней: в одном проекте гейт существовал, работал и был описан, а в инструкции по релизу его имя встречалось ноль раз.
Веди журнал на уровне логического изменения, а не тронутого файла: одна запись на изменение с пакетом его файлов, и любой индекс регенерируй раз на изменение, а не раз на правку. Предоставленный сам себе, агент пишет пофайловый шум, который хоронит сюжет.
В портале: Правила, по которым работает агент
Анти-слоп
Семь паттернов, которые ИИ (и уставший человек) выдаёт легко, а они выглядят нормально и тихо гниют - как забытый в глубине холодильника контейнер: снаружи порядок, пока не откроешь. Правило - не писать их с самого начала и ловить на ревью. Все семь - греп-проверяемые:
catch
3 хардкод вместо токена
4 небезопасный async / глобальный scope
5 логирование мимо фасада
6 заглушки в проде (TODO())
7 мёртвый код после правки
Каждый можно механически просканировать в диффе. Сделай проверку частью «готово», а не «когда-нибудь». Если в стеке есть линтер - закодируй паттерны как правила, чтобы гейт был автоматическим.
Две вещи замыкают петлю. Первое: как внедрить правило на коде, который его уже нарушает? Ставь гейт на новые нарушения, а не на все: заморозь сегодняшнее число как закоммиченную базовую линию, проваливай только при росте и дай базовой линии опускаться по мере уборки, как трещотке, - но не подниматься. Правило кусает сразу, без уборки большим взрывом. Это и есть недостающее звено между «закодируй паттерн» и реальной легаси-базой.
Второе: детектор - лишь половина починки. Линтер останавливает человека один раз; агент переиздаёт тот же паттерн каждое поколение. Так что закрой источник - добавь соответствующий DON'T во всегда загруженный свод правил и подкрепи его в навыках, генерирующих код, чтобы агент перестал производить дефект, а не просто помечал его постфактум.
И отдельно - то, что читает другой проект, живёт в одном месте и меняется первым. Формат файла, выгрузка, константы алгоритма, от которых зависит соседний проект, - это контракт между проектами. Он лежит в одном месте вне обоих, а каждый проект держит только указатель, не копию: копия расходится с оригиналом после первой же правки. Сначала контракт (новая версия и датированная запись), потом код; не согласен - исправь контракт или запиши исключение с датой окончания. Тихого дрейфа не бывает.
Пользовательские доки - часть изменения, которое меняет поведение, а не довесок: то же изменение обновляет док, и проверка проваливается, когда поведение и его описание расходятся. Держи пополняемый (append-only) лог «что выпущено» отдельно от выверенной сводки, которую регенерируешь на релизе.
В портале: Правила, по которым работает агент
Как внедрить
Метод не привязан ни к инструменту, ни к модели. Ниже три ситуации - выбери свою.
A · Новый или почти пустой проект
Сначала дай агенту собрать карту кода его штатной командой - /init в Claude Code (или аналог в твоём инструменте). Потом отдай этот промпт, чтобы он поднял проект сразу по методу:
Промпт для нового проекта (на английском)
This is a fresh or mostly empty project folder. It may be a personal local project without Git. First run your codebase-init command (/init in Claude Code, or the equivalent in your tool) so you have a rules file and a basic map of the project. Then download https://github.com/SerZhyAle/universal-agent-kit/raw/main/universal-agent-kit.zip into a temp or scratch directory and unpack it locally; it extracts to a `universal-agent-kit/` folder that contains `merge-prompt.txt`. Use those extracted files as the source of truth: read `universal-agent-kit/README.md` first, then read `universal-agent-kit/docs/PROJECT_SHAPES.md` to see which rules apply to work like mine, then use `universal-agent-kit/AGENTS.md`, `universal-agent-kit/.claude/`, `universal-agent-kit/docs/`, `universal-agent-kit/memory/`, `universal-agent-kit/examples/` (to see a filled result), and `universal-agent-kit/merge-prompt.txt`. Do not use the article page as the primary source. If you cannot download files in this environment, stop and ask me to place the archive in the workspace. Set this project up on the method from those files: 1. Write the rules file my tool reads (AGENTS.md; CLAUDE.md only imports it for Claude Code / a Cursor rule / GEMINI.md - whatever applies) adopting the kit's structure: communication, research order, skill routing, the spec lifecycle, strict rules, anti-slop, post-change discipline. Fill in what already exists; use sensible defaults otherwise. 2. Create the skill files and the role briefs from the kit that fit a project of this kind. 3. Set up the plan directory, the scratch directory, and the memory folder with its index. 4. Name THE CHECK COMMAND that proves a change is sound here. If this project is code, also pick the build / test / lint / run commands for the stack I name - or propose a stack if none exists yet. Show me the plan first; create nothing until I approve.
B · Существующий или личный локальный проект
За минуту. Подходит, если проект уже есть - даже если это просто папка на твоём компьютере без Git. Попроси агента скачать архив, распаковать его рядом с проектом и выбрать самое полезное:
Промпт для существующего проекта (на английском)
Download https://github.com/SerZhyAle/universal-agent-kit/raw/main/universal-agent-kit.zip into a temp or scratch directory and unpack it locally; it extracts to a `universal-agent-kit/` folder that contains `merge-prompt.txt`. Use those extracted files as the source of truth: read `universal-agent-kit/README.md` first, then read `universal-agent-kit/docs/PROJECT_SHAPES.md` to see which rules apply to work like mine, then use `universal-agent-kit/AGENTS.md`, `universal-agent-kit/.claude/`, `universal-agent-kit/docs/`, `universal-agent-kit/memory/`, `universal-agent-kit/examples/` (to see a filled result), and `universal-agent-kit/merge-prompt.txt`. Do not use the article page as the primary source. If you cannot download files in this environment, stop and ask me to place the archive in the workspace. Then study THIS project folder and import what fits it. It may be a local personal project without Git; do not require Git or create a repository: 1. Draft an AGENTS.md (or merge into my existing rules file) that adopts the method, with every tier-1 placeholder filled from this project: project name, chat language, artifact language, map document, work root, THE CHECK COMMAND that proves a change is sound, plan directory, scratch directory, size budget, read-only zones, and a simple way to name tasks (the ticket-id scheme). Fill the code-layer ones (architecture layers, build / test / lint / run, logger) only if this project builds or runs. 2. Recommend which skills (/research, /spec, /spec-tech, /spec-dev, /spec-check, /spec-fix, /quick, /fix, /prove, /critique) and which role agents are worth adding here, and say why. Consider /git only if this project already uses Git. 3. Tell me whether my runtime supports persistent agent memory and, if so, how to wire it up. Do not change anything yet. Show me the plan first; on any conflict, my existing files win.
Быстрый способ начать. Агент сначала покажет план и ничего не изменит без твоего подтверждения.
C · Существующий проект - подробный путь
Скачай kit, отдай агенту папку вместе с merge-prompt.txt и скажи: «Добавь Universal Agent Kit в мой проект». Это работает и с обычной локальной папкой. Агент сначала составит список: что уже есть, что можно добавить и где возможен конфликт. Затем покажет план и остановится: ничего не перезаписывается молча. После твоего подтверждения он внесёт выбранные части и заполнит <PLACEHOLDER> по материалам проекта.
Любой инструмент
Две из трёх частей теперь переезжают сами: файл правил - это AGENTS.md, который нативно читает большинство агентских инструментов, а навыки лежат в открытом формате Agent Skills (папка с SKILL.md). Адаптации требуют только агенты-роли. Каждый инструмент называет папки по-своему:
- Claude Code -
CLAUDE.md(подключаетAGENTS.md) +.claude/skills/*(готовые/spec,/research..) +.claude/agents/*как субагенты. - Codex, Cursor, Copilot, Gemini CLI, Cline, Windsurf -
AGENTS.mdкак файл правил (у Gemini CLI -GEMINI.mdилиAGENTS.md, названный в настройках); навыки - в собственной папке навыков инструмента или в.claude/skills/, где инструмент её читает; роли вставляются как системные промпты, режимы или пресеты. Точные папки - в таблицеREADME.mdвнутри kit'а. - Методология в
docs/вообще не зависит от инструмента - это просто Markdown.
Любая модель - от сильной до слабой
Метод не зависит и от мощности модели - меняется не он, а несколько ручек:
- Сильная (фронтир, большой контекст): держит больше в голове. Шаги крупнее, автономии больше; спеки и проверки оставляешь ради корректности, а не чтобы вести за руку.
- Средняя: золотая середина метода - спеки, мелкие проверяемые шаги и порядок исследования окупаются максимально.
- Слабая, маленькая или локальная: опираешься на правила сильнее всего - крошечные шаги, проверка после каждого, короткий контекст, меньше автономии. Метод - это то, что вообще делает слабую модель пригодной для работы.
В портале: Внедрение и адаптация
Типовые практики и куда смотреть
Этот kit - не единственная истина, а один связный набор привычек. Сами привычки общие - их же советуют команды, которые эти инструменты и делают:
- Держи контекст коротким. Окно контекста забивается быстро, и качество падает по мере заполнения. Между несвязанными задачами начинай свежий чат.
- Сначала план, потом код. Попроси подход и план, утверди - и только потом разрешай править файлы.
- Два агента в петле. Один пишет, другой ревьюит или гоняет тесты; либо сначала тесты, потом код до зелёного.
- Делай точки возврата. С Git это коммит до и после задачи. Без Git - копия изменяемых файлов или папки проекта, чтобы можно было спокойно отменить неудачный эксперимент.
- Если используешь Git - работай в отдельной ветке. Перед правками проверь, где находишься, и не коммить прямо в защищённую или основную ветку.
- Записывай повторяемое. Часто повторяемый промпт сохрани в команду или файл правил. В команде положи его в общий проект; в личной папке он просто останется рядом с кодом.
- Скриптуй релиз. Зашей версию один раз в каждый артефакт - тег, заметки, сборку, - чтобы они не разъехались; пиши заметки к релизу из выверенного списка видимых пользователю изменений, а не из сырого лога коммитов.
- Читай дифф. Агент быстрый, но не непогрешимый - не вливай то, что сам не прочитал.
Kit превращает эти советы из «хорошо бы» в записанный процесс. Первоисточники стоит прочитать целиком:
Официальные гайды «ИИ для разработки»
- Anthropic · Claude: Claude Code best practices · Effective context engineering
- OpenAI · Codex: Codex docs и quickstart
- Google · Antigravity: antigravity.google · Docs (агентная IDE от Google)
Ссылки ведут на официальные ресурсы вендоров и открываются в новой вкладке. Метод из этой статьи работает поверх любого из этих инструментов.
Держи его живым. Метод требует ухода: регенерируй индекс после изменений, подрезай память, которая устарела, опускай базовые линии трещотки по мере уборки и пересматривай маршруты навыков по мере роста проекта. Запущенный индекс или память хуже, чем их отсутствие, - заложи немного ухода, иначе kit потихоньку начнёт тебе врать.
Происхождение и лицензия
Адаптировано из .claude/-сетапа реального Android-проекта FastMediaSorter. Android-, PowerShell- и локаль-специфичная машинерия удалена; переносимый метод оставлен и переписан нейтрально. С тех пор это же ядро сверено с остальным портфелем автора - Android-приложение, десктопные приложения для Windows, Go-утилиты командной строки, браузерное расширение - и в kit вошли правила, пережившие все эти формы. Исходного кода и проприетарного содержимого здесь нет - только рабочий метод.
Kit - под MIT. Текст этой статьи - под CC BY 4.0. Бери, ремиксуй, адаптируй под свои проекты.