150+ пакетов. Один граф.
kb-devkit оркестрирует монорепо: топологическая сборка, content-addressable кэш, --affected по git diff, health score по presets. Мы собираем KB Labs им каждый день.
Меняешь один пакет — пересобирается только цепочка.
Граф зависимостей + топологический порядок + content-addressable кэш по SHA256. Одинаковый контент — 0ms, независимо от числа пакетов.
kb-devkit run buildСборка всех пакетов в топологическом порядке. SHA-кэш — пропускает неизменённые.kb-devkit run build --affectedСборка только изменённых пакетов и их зависимостей.kb-devkit run build --packages @kb-labs/workflow-entryТочечная сборка конкретного пакета.kb-devkit run build lint testЦепочка задач в одном запуске, каждая в правильном порядке.$ kb-devkit run build --affected
Detected 3 changed packages (git strategy)
@kb-labs/core-types ● building [1.4s]
@kb-labs/core-platform ● building [2.1s]
@kb-labs/sdk ● building [3.2s]
@kb-labs/commit-core ● building [0.9s]
@kb-labs/commit-entry ● building [1.3s]
@kb-labs/qa-entry ◌ cached [0ms]
@kb-labs/quality-entry ◌ cached [0ms]
@kb-labs/review-entry ◌ cached [0ms]
Done in 9.4s · 5 built · 113 from cacheHealth score. Checks. Auto-fix.
Статический аудит каждого пакета по presets: ESLint-конфиг, TSConfig, README, engines, exports. Health score 0–100 с грейдом A–F — по категориям сразу видно где деградация.
Нужна своя логика? custom_checks в devkit.yaml — shell-команда, которая получает JSON с контекстом пакета и возвращает {"issues": [...]}. Лицензионные заголовки, barrel exports, naming conventions — всё что угодно.
kb-devkit checkВалидация всех пакетов по правилам devkit.yaml: именование, tsconfig, eslint, deps.kb-devkit statsОценка здоровья воркспейса (A–F), количество проблем по категориям.kb-devkit fixАвто-исправление безопасных нарушений. --dry-run для предпросмотра.kb-devkit gateПроверка только staged-файлов. Код выхода 1 при нарушениях. Для pre-commit хуков.pnpm kb plugins listСписок всех установленных плагинов с версией и статусом.$ kb-devkit stats
KB Devkit — Workspace Stats
Health Score 72/100 Grade C
(98 healthy, 12 warning, 8 error of 118 total)
By category
go-binary ████████████ 7/7 Grade A
ts-lib ██████████░░ 77/93 Grade B
ts-app ████████░░░░ 14/18 Grade C
Issues by check
structure 3 errors 8 warnings in 11 packages
package_json 2 errors 4 warnings in 6 packages
eslint 1 error 2 warnings in 3 packages
Coverage (TS packages)
✓ ESLint config 94% (104/111)
✓ TSConfig 98% (109/111)
⚠ README.md 61% (68/111)
⚠ engines field 72% (80/111)
✓ exports field 91% (101/111)Что сломается. Что тестировать.
Impact плагин строит обратный граф и показывает каскад: direct → dependent → transitive пакеты. Тесты — только те, что реально задеты. Build-план сразу с командой для devkit.
kb-devkit run build --affectedПоиск affected-сета через git diff + BFS по графу зависимостей.pnpm kb impact analyzeПоказать какие пакеты и тесты затронуты текущими изменениями.pnpm kb impact reportЭкспорт структурированного impact-отчёта с путями зависимостей.pnpm kb marketplace plugins refreshПринудительная инвалидация CLI-кэша после сборки.$ kb impact:check
📦 Package Impact
Direct (1):
@kb-labs/core-types — 3 files changed
Dependent (4):
@kb-labs/core-platform ← core-types
@kb-labs/sdk ← core-platform
@kb-labs/commit-core ← sdk
@kb-labs/commit-entry ← commit-core
🔨 Build Impact (5 packages in order)
1. @kb-labs/core-types
2. @kb-labs/core-platform
3. @kb-labs/sdk
4. @kb-labs/commit-core
5. @kb-labs/commit-entry
→ kb-devkit run build --packages ...
🧪 Test Impact
Must run (2):
@kb-labs/core-types — 2 test files ← changed
@kb-labs/commit-core — 5 test files ← sdkГраф. Кэш. Impact. Всё в одном.
kb-devkit идёт с платформой. Impact — отдельный плагин.
kb marketplace install @kb-labs/impact-entry