CNB AI 流水线工厂 Skill — 从需求到上线的全自动 NPC 协作工作流。
cnbdocs(PRD) → cnbuu(UI) → cnbvv(前端) → cnbmm(后端) → cnbyy(管理后台) → cnbnn(集成) → 部署
| 站 | 组织 | NPC | 产出 | work_mode |
|---|---|---|---|---|
| ① PRD | cnbdocs | @codebuddy(glm-5.1) | PRD 文档 | 不需要 |
| ② UI | cnbuu | @npc/ui-ux-pro-max | 设计系统 + 原型图 | 不需要 |
| ③ 前端(用户端) | cnbvv | @codebuddy | 用户端前端代码 | 需要 |
| ④ 后端 | cnbmm | @tencent/cloud/cloudbase/community(云开发工程师) | CloudBase 云函数 | 需要 |
| ⑤ 管理后台 | cnbyy | @codebuddy | Admin 后台前端 | 需要 |
| ⑥ 集成 | cnbnn | @codebuddy | 完整可部署 monorepo | 需要 |
判断口诀:NPC 要不要动代码?要动 → work_mode: true
/ + 管理后台 /admin + 后端 API /api| 依赖 | 环境变量/工具 | 用途 |
|---|---|---|
| CNB Token | CNB_TOKEN | API 认证(需权限:repo-manage:rw, repo-code:rw, group-manage:rw, group-resource:rw) |
| 腾讯云凭证 | TENCENTCLOUD_SECRET_ID + TENCENTCLOUD_SECRET_KEY | CloudBase API |
| EdgeOne CLI | npm i -g edgeone@latest(≥1.2.30) | 前端部署 |
| tcb CLI | npm i -g @cloudbase/cli | CloudBase 云函数部署 |
| curl + python3 | 系统自带 | API 调用 |
安装到 OpenClaw workspace:
npx skills add cnbll/ai-pipeline-factory -y
或直接复制 skills/ai-pipeline-factory/ 到 ~/.openclaw/workspace/skills/。
老板说"帮我做{项目名}"时,按以下顺序执行:
1. 创建仓库(cnbdocs)→ 推 .cnb.yml + .cnb/settings.yml
2. 开 PRD Issue → 等 NPC 完成(~8min)
3. transfer → cnbuu → 开 UI Issue(含管理后台页面) → 等 NPC 完成(~10min)
4. transfer → cnbvv → 开前端 Issue(work_mode:true)→ 等 NPC 完成(~10min)
5. 合并前端 PR → transfer → cnbmm → 开后端 Issue(含admin接口,work_mode:true)→ 等 NPC 完成(~8min)
6. 合并后端 PR → transfer → cnbyy → 开管理后台 Issue(work_mode:true)→ 等 NPC 完成(~10min)
7. 合并管理后台 PR → transfer → cnbnn → 开集成 Issue(work_mode:true)→ 等 NPC 完成(~10min)
8. 合并集成 PR → CloudBase 部署云函数 + 数据库 → EdgeOne Pages 部署前端(用户端+管理后台合并)
总预期时间: 60-80分钟(含等待 NPC)
{项目名}/
├── client/ # 用户端前端(React + Vite)
│ ├── src/
│ ├── public/
│ └── package.json
├── admin/ # 管理后台前端(React + Vite + Ant Design Pro)
│ ├── src/
│ ├── public/
│ └── package.json
├── server/ # CloudBase 云函数
│ ├── {函数1}/
│ ├── {函数2}/
│ ├── shared/
│ ├── types/
│ └── package.json
├── cloudbaserc.json
├── PRD.md
├── README.md
├── .cnb.yml
└── .cnb/settings.yml
路由约定:
/ → client/ 的构建产物/admin → admin/ 的构建产物/api/* → CloudBase 云函数(HTTP 触发)| 模型 | @方式 | 适合场景 | 性价比 |
|---|---|---|---|
| glm-5.1 | @codebuddy(glm-5.1) | PRD、架构决策、复杂推理、多方案权衡 | ★★★★ |
| glm-5.0-turbo | @codebuddy(glm-5.0-turbo) | 常规代码、CRUD、日常任务、默认选择 | ★★★★★ |
| deepseek-v4-flash | @codebuddy(deepseek-v4-flash) | 快速小活、格式化、简单修改 | ★★★★★ |
| 不指定模型 | @codebuddy | 使用 defaultRole(glm-5.0-turbo) | ★★★★★ |
| # | 坑 | 解法 |
|---|---|---|
| 1 | errcode 9 "management rules" | 组织保护开着:PUT /{slug}/-/settings {"group_protection":0} |
| 2 | "target slug already exists" | 目标组织有同名仓库残留,先 DELETE |
| 3 | "parameter source is invalid" | source 要完整路径 org/repo,target 只要 org slug |
| 4 | 仓库转移后两边都找不到 | 确认 DELETE 的是目标组织的同名仓库,不是源 |
| 5 | Token 报 bill authorization scope | 环境变量未 export,检查 echo $CNB_TOKEN |
| # | 坑 | 解法 |
|---|---|---|
| 6 | NPC 说"没有 repo-code:rw 权限" | Issue/评论请求体加 "work_mode": true |
| 7 | NPC 不触发/无反应 | @格式不完整:必须 @仓库路径(角色名) |
| 8 | .cnb.yml 写了 npc.work_mode: true 无效 | work_mode 不是 yml 配置,是 API 参数 |
| 9 | NPC 第一次说做完但没推代码 | 可能没传 work_mode,重新评论触发 |
| 10 | .cnb.yml 格式报错 | 严格参照 CodeBuddy 仓库格式:$: 通配 + 各模型独立段 |
| 11 | UI NPC 只输出整体风格不输出独立页面 | Issue 中明确要求"每个页面一张独立SVG(375×812px)+ 真实数据" |
| # | 坑 | 解法 |
|---|---|---|
| 12 | tcb login 失败 | 用 tcb login --apiKeyId $ID --apiKey $KEY |
| 13 | cloudbaserc.json envId 为 "your-env-id" | 手动替换为真实环境 ID |
| 14 | tcb fn deploy 找不到 functions/ | 用 --dir 指定函数目录:tcb fn deploy {fn} --env-id {id} --dir server/{fn} |
| 15 | 创建集合权限不足 | 用 @cloudbase/node-sdk + tccli 凭证 |
| 16 | node-sdk 报 missing secretId | 代码里显式传 secretId/secretKey,不要依赖环境变量自动注入 |
| # | 坑 | 解法 |
|---|---|---|
| 17 | 直接访问 /profile 路径 404/401 | SPA 需要 public/_routes.json 做路由 fallback |
| 18 | eo_token 过期(401 UNAUTHORIZED) | 重新 edgeone pages deploy 获取新 token |
| 19 | 管理后台 /admin 白屏 | admin 的 vite.config.ts 必须设 base: '/admin/' |
| 20 | EdgeOne Pages CLI 版本低 | npm install -g edgeone@latest,要求 ≥1.2.30 |
NPC 产出异常(声称完成但未提交代码、构建失败、功能遗漏)时的处理:
| 场景 | 操作 |
|---|---|
| 代码构建失败/功能遗漏 | 在 Issue 下追加评论明确指出问题重新触发 |
| NPC 无响应(>20min) | 评论追加 @codebuddy(glm-5.1) 请确认收到任务并立即开始执行。 |
| 回滚 | git log --oneline -10 找到安全点 → git reset --hard {hash} → git push --force |
| 多次失败跳过 | 手动完成该工位 → git add && git commit && git push → 继续下一步 transfer |
完整异常处理流程详见 SKILL.md。
| 文件 | 用途 | 处理方式 |
|---|---|---|
~/.tccli/default.credential | 腾讯云 API 密钥 | ⚠️ 不要提交到 Git,权限设为 600 |
~/.edgeone/.token | EdgeOne Pages 部署 | 自动保存,加入 .gitignore |
CNB_TOKEN | CNB API | 仅环境变量,不落盘 |
.env | 项目环境变量 | 加入 .gitignore |
.gitignore模板已包含在仓库中,覆盖node_modules/、dist/、.env*、.edgeone/、.tccli、cloudbaserc.local.json。
| 文档 | 内容 |
|---|---|
| SKILL.md | 完整执行流程(Step 0-7)、各站提示词模板、NPC 配置模板、部署全流程、监控脚本 |
| ADR.md | 架构决策记录:同仓同域方案选择依据、CloudBase 选型理由、迁移路径 |
| CHANGELOG.md | 版本变更历史(v1.0 → v2.0) |
| check-env.sh | 环境预检脚本(Token、CLI 版本、云 API 可用性一键校验) |