Что это
KBD Project Orchestrator Init (kbd-init) — это единственный навык в экосистеме KBD, который создаёт проектную конфигурацию. Он автоматически сканирует репозиторий, определяет идентичность проекта, технологический стек, команды сборки/тестирования/линтера, пути к спецификациям, ограничения из AGENTS.md, настройки VSCode workspace и предпочтения агентов. На основе собранных данных генерируется два файла: .kbd-orchestrator/project.json (основной контекст) и .kbd-orchestrator/constraints.md (правила-ограничения). Все остальные навыки KBD только читают project.json — они никогда его не пишут.
Как работает
Алгоритм состоит из семи последовательных шагов. Каждый шаг использует приоритетный порядок источников и заполняет соответствующую секцию project.json.
Шаг 1: Имя и описание проекта
Источники проверяются в порядке убывания приоритета:
- Явный аргумент:
/kbd-init "My Project Name"
AGENTS.md — первый заголовок H1 или секция "Project Identity"
CLAUDE.md — первый H1 или первое предложение executive summary
README.md — первый H1
package.json → поля name и description
Cargo.toml → секция [package]
pyproject.toml → поля name и description
- Имя директории репозитория (последнее средство)
Шаг 2: Определение технологического стека
По lock-файлам и конфигурационным файлам определяется стек:
pnpm-lock.yaml или package.json + next.config.* → Next.js (pnpm)
package.json + vite.config.* → Vite/React
package.json (без фреймворка) → Node.js
Cargo.toml → Rust
pyproject.toml → Python
go.mod → Go
build.gradle → JVM
*.sln или *.csproj → .NET
Шаг 3: Команды сборки, тестирования, линтинга и разработки
Извлекаются из package.json (скрипты build, test, lint, dev, check), Cargo.toml, Makefile или общих соглашений. Для Next.js дополнительно определяется порт из скрипта pnpm run dev (по умолчанию 3000). Для Rust генерируются cargo check --workspace, cargo test --workspace, cargo clippy. При необходимости добавляются коррекции путей окружения (например, путь к nvm из .nvmrc).
Шаг 4: Пути к спецификациям
Проверяются в порядке:
openspec/specs/*.md — если существует директория openspec/
docs/specs/*.md — если существует docs/specs/
docs/*.md — запасной вариант
- Если ничего не найдено, устанавливается
openspec_available: false
Шаг 5: Ограничения (constraints)
Читается AGENTS.md:
- Секция "Never Do" → блокирующие ограничения (blocking constraints)
- Секция "Always Do" → предупреждающие ограничения (warning constraints), если они имеют машиночитаемую форму
- Секция "Code Style" → также предупреждающие ограничения
Если AGENTS.md отсутствует, используются общие ограничения из шаблона навыка.
Шаг 6: VSCode Workspace
Поиск файла .code-workspace начиная с родительской директории фокус-проекта:
<focus_project_path>/../*.code-workspace
<focus_project_path>/../../*.code-workspace
<focus_project_path>/*.code-workspace
Если найден, читаются все записи folders и автоматически назначаются роли:
- Папка, совпадающая с фокус-проектом (cwd или содержит
AGENTS.md) → focus
- Имя папки содержит
MVP, legacy, spec, reference, old, reference → reference
- Остальные → запрос пользователю:
focus / reference / ignore
Для reference-папок определяются полезные пути для чтения:
src/pages/Doc*.jsx, src/pages/DocPage*.jsx — legacy spec-файлы
docs/**/*.md — документация
- Корневые
*.md — readme/specs
Результат записывается в блок workspace в project.json. Если файл не найден, workspace.workspace_file = null и используется одномодульный режим.
Шаг 7: Предпочтения агентов
Если в AGENTS.md есть секция "Agent-Specific Notes", в которой упоминаются конкретные инструменты, они используются для заполнения preferred_planning_agent и preferred_execution_agents. По умолчанию для планирования назначается antigravity, а список исполнителей остаётся пустым.
Итоговые файлы
.kbd-orchestrator/project.json — генерируется из шаблона references/schemas/project.template.json и содержит:
name, description
active_phase (изначально null)
focus_project_path (абсолютный путь)
spec_paths (массив)
openspec_available (boolean)
constraint_file (путь к constraints.md)
build_health_command, test_command, lint_command, dev_command
preferred_planning_agent, preferred_execution_agents
agents_config (объект)
workspace (объект с workspace_file, folders)
.kbd-orchestrator/constraints.md — генерируется из шаблона references/constraints.md с проектно-специфичными блокирующими правилами из секции "Never Do" файла AGENTS.md.
Идемпотентность и флаги
- Если
.kbd-orchestrator/project.json уже существует, команда выводит diff изменений и запрашивает подтверждение перед перезаписью.
/kbd-init --force — пропускает подтверждение и перезаписывает.
/kbd-init --dry-run — выводит обнаруженные значения без записи файлов.
Пример вызова
/kbd-init # Автоопределение всего
/kbd-init "HotSeaters" # Явное имя проекта
/kbd-init --force # Принудительная перезапись
/kbd-init --dry-run # Предпросмотр
Когда использовать
- Один раз на проект — сразу после клонирования репозитория или перед началом работы с KBD.
- После инициализации рекомендуется выполнить
/kbd-status, чтобы убедиться, что KBD корректно настроен.
- Затем можно запускать
/kbd-new-phase <name> для создания первой фазы или /kbd-assess, если фаза уже определена в active_phase.
Важно знать
- Навык не изменяет ничего в директории
.agent/skills/kbd-process-orchestrator/ — она доступна только для чтения.
- Все остальные навыки KBD (например,
kbd-process, kbd-status, kbd-new-phase) читают project.json, но никогда его не пишут.
- Если в проекте используется VSCode workspace с несколькими папками,
kbd-init автоматически распределяет роли (focus, reference, ignore), что позволяет организовать контекстную работу между модулями.
- Для корректной работы рекомендуется наличие файлов
AGENTS.md, CLAUDE.md или README.md — они дают наиболее точную информацию об идентичности проекта и ограничениях.
Комментарии
Комментариев пока нет. Будьте первым.