@cloudai-design/cli
v0.1.6
Published
CloudAI UI 初始化 CLI:合并安装 skills、注入 AGENTS.md 托管块
Readme
@cloudai-design/cli
把 CloudAI UI 的设计规范装进业务仓,让 AI 能读到。只是安装器——内容全在
@cloudai-design/skills 里,本包不含任何规范文本。
npx @cloudai-design/cli init [--brand <brand>] [--no-skills] [--targets agents,cursor,claude,gemini,qoder]安装后 bin 名是 cloudai-ui,可直接 pnpm cloudai-ui init。不带子命令时打印用法与可用 brand。
init 做三件事
- 装 skills:baseline + brand overlay 合并后写入
.agents/skills/<name>/, 再为探测到的工具(存在.cursor/.claude/.gemini/.qoder目录)建镜像。 镜像优先 symlink 指向.agents/skills/,Windows 或建链失败时退化为拷贝。 链接内容是仓库内相对路径(如../../.agents/skills/<name>),可随仓库提交; - 注入 AGENTS.md:
<!-- BEGIN:agent-design-rules -->…<!-- END:agent-design-rules -->之间是本命令的托管区,重跑只替换这一段,不动仓库自己的内容;没有标记则追加、没有文件则创建。 - 兜底 DESIGN.md:仅当
--no-skills或 skill 安装失败时生成,取自cloudai-design-system/SKILL.md的ROOT区(已合并 brand delta)。
全程幂等、确定性拼装,不调用 LLM;不在 postinstall 自动触发,改动都能 git diff 后再提交。
brand
--brand 决定两件事:AGENTS.md 里的 Tailwind 插件 subpath,以及 overlay 取哪一份。
可用 brand 由 skills 包内的 generated/<brand>-tokens.md 探测而来,默认值取
manifest.json 的 defaultBrand(当前 aidbs)。写错 brand 会回落默认值并打印原因。
合并规则
文件级合并,细节见 skills 包 README。
本包的 lib/merge-skills.mjs 只做内存计算,lib/install-skills.mjs 负责落盘——
DESIGN.md 兜底要在 skill 装不上时也能拿到合并结果,所以两者必须能分开调用。
安装时会顺手删掉 manifest.json 的 legacySkillNames 里列的目录:
同名规范新旧并存会让 AI 同时读到两套互相矛盾的说法。
为什么是 JS 而不是 TS
本包在业务仓由 npx 执行,Node 版本不可控,因此发布入口一律 JS、engines.node 保守到
>=18(仓库其余部分要求 Node 22)。逻辑只有 fs 读写与字符串拼装,上 TS 只换来一个构建步骤。
