Мы релизим 150+ пакетов через него.
Каждый раз.
Один плагин закрывает весь цикл: проверки, сборка, changelog, npm publish, git тег. Без скриптов, без памятки в Notion, без «кажется забыл запушить тег».
Один запуск. Вот что происходит.
kb release run
$ kb release run ╭─ Release Plan ───────────────────────────────────────────────╮ │ 12 package(s) · strategy: lockstep │ │ │ │ · @kb-labs/core-types 1.4.1 → 1.4.2 │ │ · @kb-labs/core-platform 1.4.1 → 1.4.2 │ │ · @kb-labs/sdk 1.4.1 → 1.4.2 │ │ · @kb-labs/release-manager-core 1.4.1 → 1.4.2 │ │ · ... 8 more packages │ ╰──────────────────────────────────────────────────────────────╯ Proceed with release? [y/N] y ~ [4.1s] Running 3 pre-release check(s)... ~ [18.2s] Building 12 package(s)... ~ [22.4s] Verifying package artifacts... ~ [23.0s] Updating package versions... ~ [25.1s] Generating changelog... ~ [27.3s] Publishing packages... ~ [44.8s] Committing and tagging release... ✓ Release completed
CHANGELOG.md · corporate-ai
## [1.4.2] - 2026-05-24
> **@kb-labs/release-manager-core** 1.4.1 → 1.4.2 (patch)
### Fixes
- Atomic build now correctly handles symlinks inside dist/
- Checkpoint detection skips stale entries older than 24h
### Internal
- Pipeline timing reported per-step in `kb release report`Четыре встроенных шаблона: corporate-ai, corporate, technical, compact. Если LLM недоступен — fallback на plain список.
Восемь шагов. Строго по порядку.
Каждый шаг можно запустить отдельно. Каждый падает явно — с понятным сообщением.
Три решения, которые важны.
Воркфлоу как код, а не конфиг
Пайплайны релизов живут в YAML под version control — ревьюируются, отличаются, откатываются как любые другие изменения. Никакого GUI-состояния на экспорт, никакого vendor-формата для миграции.
Каждая стадия — плагин
Lint, review, QA, deploy — каждый шаг это типизированный плагин с задекларированными возможностями. Заменяй любую стадию без касания остального пайплайна.
Fail fast, трейс всего
Стадии идут в порядке с явными зависимостями. Первая ошибка останавливает пайплайн. Каждый запуск полностью трейсится: входы, выходы, тайминг и вызовы плагинов.
Независимые релизы для разных частей монорепо.
Flow — именованный профиль релиза. Полностью заменяет три вещи: какие пакеты собирать, стратегию версионирования, набор проверок. Остальное (registry, changelog, git) берётся из глобального конфига.
Платформа и SDK релизятся независимо — одной командой каждая. 150+ пакетов, но никогда не всё сразу.
pnpm kb workflow run release@kb-labs/core-platform, @kb-labs/sdkстратегияaffectedLint → type-check → test → AI review → build → publish. Только изменённые пакеты.
pnpm kb workflow run release --allВсе 35+ пакетовстратегияfullПринудительный полный пайплайн независимо от git-состояния. Для мажорных релизов.
Flow полностью заменяет глобальный packages конфиг — не мерджит. Пакеты выбираются glob-паттернами.
checks config
"checks": [
{
"id": "type-check",
"command": "pnpm type-check",
"runIn": "repoRoot"
},
{
"id": "test",
"command": "pnpm test",
"runIn": "perPackage",
"timeoutMs": 60000
},
{
"id": "size-limit",
"command": "pnpm size-limit --json",
"parser": "json",
"runIn": "scopePath",
"optional": true
}
]Не просто список команд.
Каждый чек — объект с контролем где и как запускается. Checks переопределяются на уровне flow — у платформы и SDK свои наборы.
runIn: repoRootrunIn: perPackagerunIn: scopePathparser: jsonoptionaltimeoutMsВсё в одном файле. Никакого лишнего конфига.
Конфиг живёт в .kb/kb.config.json рядом с остальными настройками KB Labs. Никакого отдельного release.config.js.
- release.workflow — путь к YAML-файлу воркфлоу релиза
- release.targets — какие пакеты включать в пайплайн
- release.gates — обязательные стадии перед публикацией
- release.aiReview — модель и конфиг промпта для AI review
- release.npm — URL реестра, уровень доступа и токен публикации
{
"release": {
"changelog": {
"template": "corporate-ai",
"locale": "en"
},
"flows": {
"platform": {
"packages": {
"include": ["@kb-labs/core-*", "@kb-labs/plugin-*", "@kb-labs/adapter-*"]
},
"versioningStrategy": "lockstep",
"checks": ["pnpm type-check", "pnpm test"]
},
"sdk": {
"packages": {
"include": ["@kb-labs/sdk", "@kb-labs/agent-sdk"]
},
"versioningStrategy": "independent",
"checks": ["pnpm lint", "pnpm type-check", "pnpm test"]
}
}
}
}Хотите навести порядок в релизном пайплайне?
kb marketplace install @kb-labs/release-entry