18 ЯЗЫКОВ · ЛЮБАЯ OPENAI-СОВМЕСТИМАЯ КОНЕЧНАЯ ТОЧКА · MIT

Одна кодовая база на входе. Два руководства на выходе — одно читает команда, по другому ориентируется агент.

Ваш кодинг-агент делает grep по символу, находит три из семи важных мест и отдаёт половину изменения. Это сбой не рассуждения, а маршрутизации. Handbooks даёт ему карту.

# весь конвейер, офлайн, без API-ключа, ~30 с
pnpm install && pnpm build
pnpm demo

Встроенный образец проекта, встроенный mock-сервер LLM. Ни одного потраченного токена.

Семь команд, один цикл

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

  1. 1analyzeБЕЗ LLM

    Разбирает каждый файл в типизированный граф вызовов.

  2. 2generateLLM

    Карточки, этапы, проза, межэтапное состояние.

  3. 3renderБЕЗ LLM

    Markdown, HTML, индекс для агентов, llms.txt.

  4. 4skillБЕЗ LLM

    Упаковывает всё для вашего кодинг-агента.

  5. 5planLLM

    Сводит правку к байт-точным изменениям.

  6. 6applyБЕЗ LLM

    Патч «всё или ничего», с откатом.

  7. 7resyncLLM

    Прокатывает руководство вперёд. Без пересборки.

  8. Как работает каждая фаза
Конвейер Handbooks: analyze, generate, render, skill, plan, apply и контур обратной связи resync

Почему прочитанному можно доверять

Факты берутся из парсера

tree-sitter строит граф вызовов: функции, разрешённые рёбра, граничные вызовы и вызовы, которые разрешить не удалось, — они помещаются в карантин и никогда не угадываются. Этот слой никогда не касается LLM, поэтому он одинаков в каждом запуске.

Проза ложится сверху — и говорит об этом

LLM пишет, для чего нужен файл и как устроена подсистема, всегда привязываясь к графу. Там, где она не получилась, структура всё равно выпускается — с пустым описанием. Отсутствующее предложение лучше выдуманного.

Построено для маршрутизации, а не для чтения

Результат отвечает на вопрос «какие файлы, функции и состояние должно затронуть это изменение?» — включая разбросанные и неочевидные, которые текстовый поиск пропускает. Затем планировщик читает реальные исходники по каждому адресу.

Применение скучно намеренно

Якорь должен совпадать байт в байт и ровно один раз. Всё проверяется до того, как что-либо будет записано. Каждый затронутый файл сохраняется вместе с хешем до патча, поэтому откат может доказать, что именно он восстанавливает.

Оно остаётся актуальным инкрементально

Resync сравнивает старый граф вызовов с новым и перегенерирует только то, что действительно изменилось. Тронули три файла — платите за три файла. Документация перестаёт гнить, потому что её обновление перестало быть дорогим.

И раскрывает собственные границы

Языки, которые читает анализатор на основе конфигурации, названы в обзоре, поэтому «отношения вызовов по мере возможностей» невозможно прочитать как «точные».

Достоверность анализа

Один запуск. Шесть готовых форматов.

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

Markdown-руководство

обзор · индекс · страница на каждый этап · таблица регистров состояния

Многостраничный HTML-сайт

липкое оглавление, хлебные крошки, смена темы — работает по file://

Одна автономная страница

один .html, который можно отправить почтой или приложить к тикету

Индекс-локатор для агентов

назначение · понятия входа · состояние · образцы · со-правки

llms.txt + llms-full.txt

конвенция llms.txt плюс всё то же самое одним полотном

Агентный SKILL-пакет

SKILL.md + references/ + хеш содержимого на каждый файл

Начните с бесплатной команды

handbook analyze никогда не требует API-ключа. Запустите её на своём репозитории, посмотрите на число файлов и функций и решите, стоит ли остальное хотя бы одного токена.