Handbooks
Руководства

Генерация handbook

Выбор детализации, режима синтеза и стратегии; запуск фаз по отдельности; возобновление; и что делать, когда результат неверен.

handbook generate --source <repo> --work <workdir> [options]

Это единственная дорогая команда. Всё на этой странице — о том, как тратить на неё меньше и получать от неё больше.

Начните дёшево, затем углубляйте

Убедитесь, что сканирование корректно — бесплатно

handbook analyze --source $REPO --work $WORK

Проверьте количество файлов. Если оно неверно, исправьте это, прежде чем потратить хоть один токен.

Сгенерируйте с дешёвыми настройками по умолчанию

handbook generate --source $REPO --work $WORK

--detail brief и --synth-mode oneshot. Прочитайте $WORK/phase2/skeleton.yaml.

Исправьте ту половину, которая неверна

Проза слишком скудная? Углубите только карточки, сохранив скелет, который вы уже проверили:

handbook generate --source $REPO --work $WORK --phase 2a --detail deep --resume

Структура неверна? Перезапустите 2b с циклом починки, сохранив карточки:

handbook generate --source $REPO --work $WORK --phase 2b,2c,3 --synth-mode doctor

Такой порядок означает, что вы никогда не платите за глубокие карточки поверх скелета, который вот-вот выбросите.

--detail brief против deep

brief (по умолчанию)deep
На файлназначение, роль, жизненный цикл+ разбор на 120–300 слов
На функциюназначение, поток данных, связи
Размер пакета8 файлов на запрос1 файл на запрос
Стоимостьпримерно 1×в несколько раз больше

Режим deep оправдан, когда handbook будет использовать агент, потому что именно заметки по функциям превращают страницу этапа в адресную книгу. Режим brief подходит для первого прохода, для очень большого репозитория или когда вам в основном нужна структура.

Режимы можно смешивать: сгенерируйте brief везде, затем перезапустите --phase 2a --detail deep --resume, направив --source на подкаталог, который важнее всего.

--synth-mode oneshot против doctor

oneshot синтезирует скелет за один проход. Быстро, дёшево, обычно разумно.

doctor запускает цикл починки «актор–критик»: предложить не более трёх структурных изменений, рассмотреть их тремя критиками (инженер, архитектор, читатель), проверить выживших механически по реальному графу, применить, переназначить, повторить.

Когда doctor окупается

Используйте его, когда oneshot выдал перекошенные этапы (один этап с 200 файлами и три по два файла), этапы с ничего не значащими названиями или много неназначенных файлов. --max-doctor-rounds по умолчанию равен 6; цикл также останавливается раньше при сходимости или после двух раундов без прогресса.

--strategy file против member

file (по умолчанию) — скелет синтезирует LLM; листовой единицей является исходный файл. Масштабируется на большие репозитории. Используйте эту стратегию, если нет причин поступить иначе.

memberskeleton.yaml пишете вы; отдельные функции и методы классифицируются по вашим этапам, а артефакты уровня файлов выводятся из этого.

skeleton.yaml
metadata:
  version: 1
  archetype: HTTP API server
stages:
  - id: stage-1
    title: Request intake
    description: Accepting connections, parsing requests, and routing them.
    parent: null
    children: []
    crosscut: false
  - id: stage-2
    title: Business logic
    description: What the service actually does with a validated request.
    parent: null
    children: []
    crosscut: false
  - id: crosscut-1
    title: Configuration and logging
    description: Cross-cutting infrastructure used by every stage.
    parent: null
    children: []
    crosscut: true
handbook generate --source $REPO --work $WORK --strategy member --skeleton skeleton.yaml

Стратегия member стоит дороже — классифицируется каждая функция, — но даёт более точную прозу, а phase 2c становится бесплатной, потому что организация выводится детерминированно.

Стратегия записывается в phase2/strategy.json. Частичный перезапуск с другой --strategy без --phase 2b будет отклонён, поэтому стратегия file по умолчанию не может незаметно перезаписать организацию, выведенную из member.

Запуск фаз по отдельности

--phase 1        # just the graph (same as `handbook analyze`)
--phase 2a       # just the cards
--phase 2b       # just skeleton + assignment
--phase 2c       # just the grouping
--phase 3        # just narration + registers
--phase 2        # 2a + 2b + 2c
--phase 2c,3     # a comma list

Каждая фаза читает только свои артефакты, лежащие выше по потоку, поэтому это всегда безопасно. Типичные случаи:

СитуацияКоманда
Карточки в порядке, скелет неверен--phase 2b,2c,3 --synth-mode doctor
Всё в порядке, но проза читается плохо--phase 3 --refresh
Нужны более глубокие карточки, и только--phase 2a --detail deep --resume
Вы сменили язык повествования--phase 3 --narrate-lang zh --refresh

Возобновление и кэширование

  • --resume пропускает файлы, у которых уже есть полная карточка на запрошенной глубине. Карточки записываются по мере готовности, так что Ctrl-C всегда безопасен.
  • --llm-cache кэширует сырые ответы в <work>/phase3/cache с ключом по модели, промпту и опциям. Повторные запуски во время итераций становятся почти бесплатными.
  • --refresh игнорирует кэши phase 3. Используйте его, когда вы изменили входные данные промпта, а ключ кэша этого не заметил — например, после ручного редактирования skeleton.yaml.

--refresh отключает --llm-cache для этого запуска — так задумано.

Наблюдение за работой

handbook generate --source $REPO --work $WORK -v
[scan] auto root=/Users/me/code/api
[scan] typescript: 284 files
[2a] batch 12/36 · 96 cards
[2b] 9 stages; 0 files unassigned
[3] narrating stage-4 (2 children)

Использование токенов записывается в run-manifest.json по завершении запуска.

Когда результат неверен

СимптомВероятная причинаИсправление
Этапы перекошены или бессмысленныодношаговый синтез на необычной структуре--phase 2b,2c,3 --synth-mode doctor
Много неназначенных файловскелет не покрывает часть репозиториярежим doctor, либо напишите скелет сами и передайте --skeleton
У карточек пустые описанияответы модели не удалось разобратьпрочитайте phase2/cards/_rejected/; попробуйте более сильную модель или --detail brief
Проза шаблонная и бесполезнаямодель слишком мала для этой кодовой базысмените --model; эта фаза вознаграждает более сильную модель больше любой другой
В обзоре упоминается «generic analyzer»у вас есть языки generic-уровняожидаемо — см. Достоверность анализа
Запуск очень медленныйслишком мало воркеров или медленный эндпоинтповысьте --read-workers и --llm-concurrency
Ошибки ограничения частоты (rate limit)слишком высокая конкурентностьпонизьте --llm-concurrency; повысьте --llm-retries

Подробнее в разделе Устранение неполадок.

На этой странице