{"_id":"@blueking/bk-ai-kit","name":"@blueking/bk-ai-kit","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@blueking/bk-ai-kit","version":"0.1.0","description":"一条命令把跨工具（Cursor + CodeBuddy）的前端 AI 辅助开发体系装进 Vue 3 + bkui-vue 前端仓库：机制内核原样复制，项目内容交给 /generate-ai-kit 生成。","type":"module","author":{"name":"Tencent BlueKing"},"bin":{"bk-ai-kit":"bin/cli.mjs"},"engines":{"node":">=16.7.0"},"scripts":{"test":"node bin/cli.mjs --help"},"keywords":["ai","cursor","codebuddy","skills","design-tokens","frontend","scaffold"],"license":"MIT","publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"gitHead":"9e912048bd8845852e6006d712d5506bbabde2be","_id":"@blueking/bk-ai-kit@0.1.0","_nodeVersion":"20.19.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-Vm29Qed1Uhy2t/ASjlNihumlWG/0LjBU9st2c9Ta1kyKKbfGK/VIgMmwSQE9BLyGw0m2zxKzfE8Lx17JF8wzwA==","shasum":"9955d713aa82b838e4a9fb4753cc3dc11353ce78","tarball":"https://registry.npmjs.org/@blueking/bk-ai-kit/-/bk-ai-kit-0.1.0.tgz","fileCount":24,"unpackedSize":138234,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFtmz/4JFLLIoTzpJcgvjKdNsjQD+gc7gVWvVyziAz5JAiB+qZB1p1ofDWxY7fIZtUn24RYZb3yM9CjcB1Pu8kJcJA=="}]},"_npmUser":{"name":"blueking-magicbox","email":"contactus_bk@tencent.com"},"directories":{},"maintainers":[{"name":"blueking-magicbox","email":"contactus_bk@tencent.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bk-ai-kit_0.1.0_1781776140397_0.7773482012101476"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-18T09:49:00.232Z","0.1.0":"2026-06-18T09:49:00.522Z","modified":"2026-06-18T09:49:00.745Z"},"maintainers":[{"name":"blueking-magicbox","email":"contactus_bk@tencent.com"}],"description":"一条命令把跨工具（Cursor + CodeBuddy）的前端 AI 辅助开发体系装进 Vue 3 + bkui-vue 前端仓库：机制内核原样复制，项目内容交给 /generate-ai-kit 生成。","keywords":["ai","cursor","codebuddy","skills","design-tokens","frontend","scaffold"],"author":{"name":"Tencent BlueKing"},"license":"MIT","readme":"# @blueking/bk-ai-kit\n\n一条命令，把一套**跨工具（Cursor + CodeBuddy）的前端 AI 辅助开发体系**装进 **Vue 3 + bkui-vue** 前端仓库。\n\n核心理念 **「复用机制，生成内容」**：\n\n- **机制内核**（自进化引擎 `learn-lesson`、会话记忆 Hook、双工具同源治理、诊断）→ **原样复制**。\n- **项目内容**（Design Token 值、核心规则、脚手架、模块结构）→ 由编辑器里的 `/generate-ai-kit` **按你的 `design-guideline.md` 生成**。\n\nCLI 只做**确定性**的事（铺文件 / 建 symlink / 写配置）；**判断性**的事交给 AI。\n\n## 快速开始\n\n```bash\nnpm i -D @blueking/bk-ai-kit\nnpx bk-ai-kit init\n```\n\n`init` 会：\n\n1. 把套件复制到 `.cursor/skills/`（`generate-ai-kit` 编排 + 全量素材，以及可立即运行的 `diagnose-ai-setup`）。\n2. 建 `.codebuddy/{rules,skills}` → `.cursor/...` 的 symlink（Windows / 无权限时退化为复制并警告）。\n3. 写 `ai-kit.config.json`（记录所有占位值 + 套件版本）。\n\n> ⚠️ **MVP 重要约定**：`init` **不做占位替换**。完成时 `.cursor/` 里的资产仍带 `{{...}}`、**尚非可用态**。\n\n### 必做的下一步\n\n在编辑器（Cursor / CodeBuddy）里运行：\n\n```\n/generate-ai-kit\n```\n\n它读取 `ai-kit.config.json` + 你喂入的 `design-guideline.md`，完成**全部占位替换**并生成项目内容（token / 规则 / 脚手架 / 并入 bkui-vue 组件库通用经验），并把内核落位到最终位置。\n\n### 自检\n\n```bash\nnpx bk-ai-kit diagnose\n```\n\n跑健康体检（rules frontmatter / skills 命名 / 双工具 symlink / Token 卫生 / 经验库索引同步）。存在 ❌ 时退出码为 `1`，可一行接入 CI：\n\n```yaml\n- run: npx bk-ai-kit diagnose\n```\n\n`diagnose` 优先读 `ai-kit.config.json` 取路径，缺失时回落默认。\n\n## 命令\n\n| 命令 | 说明 |\n|------|------|\n| `init` | 复制套件 + 建 symlink + 写 `ai-kit.config.json`（不做占位替换） |\n| `diagnose` | 健康体检，读 config 取路径，可进 CI |\n| `upgrade` | 只重铺内核、不动已生成内容（**v2，未实现**） |\n\n### `init` 选项\n\n缺省走交互（能从目标 `package.json` 推断的先推断）；非 TTY 或 `--yes` 时直接用推断/flag 值。\n\n```\n--dry-run, -n        只预览将要进行的操作，不写任何文件\n--yes, -y            非交互，全部用推断/flag 值\n--force              覆盖本套件自己写过的资产/配置（仍不会删除你的非空真实目录）\n--tool <v>           cursor | codebuddy | both（默认 both）\n--prefix <v>         Token 前缀\n--scope <v>          前端包 rule 前缀\n--frontendPkg <v>    前端包根（相对仓库根）\n--projectGlobs <v>   通用规则 globs\n--docsDir <v>        详细文档目录\n--lessonsDir <v>     经验库目录\n--tokensScssDir <v>  Token SCSS 产物目录\n```\n\n## 在已有项目上 init（安全契约）\n\n绝大多数场景是给**已有项目**接入，所以 `init` 遵循一份安全契约——**安全压倒便利**：\n\n- **幂等**：重复跑 `init` 收敛到同一结果。已是套件自己产物的（正确 symlink / 套件写的 config）→ 跳过或就地更新；第二次跑**无任何变更**。\n- **非破坏**：对你的真实内容（手写文件、非空真实目录）**绝不删改**——`--force` 也不会删。\n- **可预览**：`--dry-run` 列出将**创建 / 合并 / 跳过 / 冲突**的每一项，不写盘。\n- **可备份**：任何覆盖动作**先写 `<目标>.bak-<时间戳>`** 再覆盖。\n\n具体规则：\n\n- **资产**（`.cursor/skills/generate-ai-kit`、`diagnose-ai-setup`）：已存在则跳过；`--force` 才整覆盖，且覆盖前先备份。\n- **`ai-kit.config.json` 用合并而非整覆盖**：重跑 = 补缺失键 + **保留你已调的值**（含自定义键）+ 只更新 `aiKitVersion`；无变化则幂等跳过；`--force` 才整覆盖（先备份）。\n- **`.codebuddy/{rules,skills}` 是真实非空目录**（项目已用 CodeBuddy）：默认**跳过 symlink** 并报告差异文件 + 精确迁移命令；要自动接管用 `--adopt-codebuddy`（备份原目录 → 非冲突文件并入 `.cursor/` → 再建 symlink，同名文件保留 `.cursor` 版本、你的版本留在备份里）。只有空目录会被安全替换为 symlink。\n\n接入前建议先预览：\n\n```bash\nnpx bk-ai-kit init --dry-run\n```\n\n> 备份产物为 `*.bak-<时间戳>`，确认无误后可自行删除，或加入 `.gitignore`。\n\n## `ai-kit.config.json`\n\n贯穿全流程的单一配置，被 `init`（写）、`diagnose`（取路径）、`/generate-ai-kit`（读占位值 + 执行替换）、`upgrade`（v2）共同消费。\n\n```jsonc\n{\n  \"aiKitVersion\": \"0.1.0\",\n  \"tool\": \"both\",\n  \"prefix\": \"acme\",\n  \"scope\": \"app-v1\",\n  \"frontendPkg\": \"packages/app\",\n  \"projectGlobs\": \"src/**\",\n  \"frontendPkgGlobs\": \"packages/app/**\",\n  \"docsDir\": \"packages/app/docs/ai-rules\",\n  \"lessonsDir\": \"packages/app/docs/ai-rules\",\n  \"tokensScssDir\": \"packages/app/src/styles/tokens\"\n}\n```\n\n## 套件构成\n\n| 层 | 复用范围 | `init` 处理 |\n|----|---------|------------|\n| **kernel**（机制） | 项目无关 | 随套件复制，由 `/generate-ai-kit` 落位 + 替换路径/前缀占位 |\n| **component-library**（组件库级） | bkui-vue 经验 | 随套件并入（bkui-vue 为前提） |\n| **templates**（项目内容） | 因项目而异 | 由 `/generate-ai-kit` 按 `design-guideline.md` + 工程分析填占位 |\n\n> Token 的**机制随包走**（分层 SCSS：`_primitive` 无损镜像 + `_semantic` UI 契约，无构建链），**值按项目从自己的 `design-guideline.md` 现生成、不打包**。\n\n## 要求\n\n- Node `>= 16.7.0`\n- 目标仓库为 git 仓库、含 `package.json`\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-d352dc527e1b9494097146cfe3c4a43f"}