Skip to content

AI 开发工具链:Skill 系统

定位:CodeBuddy 的领域知识扩展层,让 AI 从「懂代码」进化到「懂你的项目」。 配套视频:本文档与《Skill 系统实战》两期视频配套使用——视频建立认知,手册提供可复制模板与完整案例。


一、痛点:AI 懂代码,但不懂你的项目

你有没有遇到过这种情况?

你跟 AI 说:帮我部署一下小程序。AI 回你一连串问题:用什么命令?部署到服务器还是 COS?后端要不要一起部署?数据库迁移做了吗?

它懂代码,但它不懂你的项目

每次对话都像带一个新员工——先科普一遍项目结构、部署方式、服务器地址,才能进入正题。

Skill 系统解决的就是这个问题:把项目的领域知识、操作规范、安全底线,写成结构化的 Markdown 文件,让 AI 自带项目记忆。

你说「部署小程序」,它直接知道:H5 走对象存储上传,后端走标准部署脚本,数据库迁移不能跳过。


二、架构:三层知识系统

Skill 不是高级 Prompt,它是三层知识系统:

用户提问

L0 总分诊(SKILL.md)        ← 关键词 → 域路由

Domain 领域知识(DOMAIN.md)  ← 该域的完整规范

Tools 可执行工具(*.yaml)     ← 带检查、带异常处理的流程

执行结果
层级类比文件职责
L0 总分诊医院导诊台SKILL.md关键词匹配 → 路由到对应域
Domain专科医生知识DOMAIN.md架构、规范、操作流程、严禁事项
Tools处方单tools/*.yaml可执行命令 + 前置检查 + 异常处理

2.1 L0 总分诊:关键词路由

SKILL.md 是一张关键词路由表,把用户的自然语言翻译为「挂哪个科」。

示例:

关键词路由到覆盖场景
部署、上线、发布、deploy、publish、shipdeploy/代码发布到服务器或 COS
开发、编码、运行、调试、npm、pipdevelop/本地开发环境操作
服务器、数据库、日志、备份ops/生产环境运维
review、审查、安全review/代码审查与安全审计
产品、课程、方法论、SDADproduct/产品体系与实践手册
小程序、H5、uni-app、场景app/小程序多场景开发
后台、admin、编排、flowadmin/3 个管理后台
课图、diagram、手绘、模板diagram/课图生成器
后端、API、FastAPI、Agent、RAGplatform/后端核心 200+ 模块

设计要点:同义词要兜住。「部署」「上线」「publish」「ship」指向同一个域,用户怎么说 AI 都不会迷路。

2.2 Domain:领域知识

DOMAIN.md 是该域的「诊断规范」,回答三个问题:

  1. 这个域管什么? —— 职责边界
  2. 怎么操作? —— 配置、决策树、流程
  3. 什么不能做? —— 严禁操作、安全底线

2.3 Tools:可执行工具

tools/*.yaml 是「处方单」,不是写死的命令,而是:

  • 有前置检查(SSH 通不通?配置对不对?)
  • 有异常处理(卡住了怎么排查?失败了怎么回滚?)
  • 有参数化(文件路径、环境变量用占位符,换项目改一行就行)

三、案例解剖:deploy 域设计(脱敏示例)

不空讲概念,用 deploy 域的结构 说明 Skill 怎么写。以下为公开版示例——真实 IP、SSH、服务器路径等运维细节仅保留在仓库内 .codebuddy/skills/(不对外发布)。

3.1 目录结构

.codebuddy/skills/<your-project>/deploy/
├── DOMAIN.md              ← 领域知识(配置表、决策树、严禁操作)
├── tools/
│   ├── ssh.yaml           ← 远程部署(占位符,不含真实地址)
│   ├── cos.yaml           ← 静态资源上传
│   ├── alembic.yaml       ← 数据库迁移
│   └── workflows/
│       └── full-deploy.yaml

3.2 DOMAIN.md 应写什么

关键配置表(用占位符,勿写生产真值)

配置项公开文档示例说明
SSH 别名<your-ssh-alias>写在本地 ~/.ssh/config勿写 IP
生产域名<your-domain.com>仅域名,无账号密码
后端服务名<your-systemd-service>systemd 单元名
对象存储<your-bucket> / <region>bucket 与地域,勿写密钥
项目根路径<server-app-path>服务器目录用占位符

部署决策树(模块 → 方式)

改动模块部署方式执行位置
后端 API标准部署脚本SSH 或 CI
管理后台构建 + 同步静态资源SSH 或 CI
H5 / 小程序构建后上传对象存储 / 开发者工具本地或 CI

部署原则

  1. 代码部署 ≠ 数据迁移 — 两者分开处理
  2. 备份先行 — 生产库操作前必须备份
  3. 可回滚 — 部署前打 Git Tag
  4. 密钥隔离.env、SSH 私钥不进 Git、不进公开文档

严禁操作

  • ❌ 不要在公开文档或对话中粘贴生产 IP、SSH 密钥、.env 内容
  • ❌ 不要修改生产 .env(除非授权且二次确认)
  • ❌ 不要执行 alembic downgrade(除非明确回滚且已备份)
  • ❌ 不要在部署失败时清数据库、删文件或 git reset --hard
  • ❌ 不要跳过 alembic upgrade head(有新迁移时必须执行)

3.3 tools/*.yaml 写法要点

公开文档只展示结构,不粘贴可直连生产的命令。Tool 文件应包含:

  • 前置条件(SSH 别名已配置、代码已 push 等)
  • 参数(如 dry_run
  • 分步命令(用 {ssh_alias}{app_path} 等占位符)
  • 异常处理(连不上、脚本卡住、服务起不来时的排查思路)

示例(脱敏):

yaml
# deploy/tools/ssh.yaml(结构示例 — 非生产命令)

用途:通过 SSH 执行远程部署脚本。

## 前置条件
- 本地已配置 SSH 别名 `{ssh_alias}`(私钥路径仅写在本机,不进文档)
- 代码已合并并 push 到主分支

## 执行步骤
### 步骤 1:连通性检查
ssh {ssh_alias} "echo OK && cd {app_path} && pwd"

### 步骤 2:执行部署脚本
ssh {ssh_alias} "cd {app_path} && ./scripts/deploy.sh"

### 步骤 3:健康检查
curl -s https://{your-domain}/health

## 异常处理
- SSH 失败 → 检查本机 `~/.ssh/config` 与密钥权限
- 部署卡住 → 分步执行 pull / migrate / restart,查服务日志
- 健康检查失败 → 查应用日志与反向代理配置

设计要点:AI 读的是结构与禁忌;真实主机名、IP、路径放在仓库内 Skill 或密码管理器,不进入 VitePress 公网构建


四、动手实战:写一个最小 Skill

看完案例,自己动手。三步搞定一个代码审查 Skill。

4.1 第一步:建目录

bash
mkdir -p .codebuddy/skills/my-project/review/tools

4.2 第二步:写 DOMAIN.md

markdown
# 代码审查领域

> 对项目中的 S 级模块做安全与质量审查。

## S 级模块清单

以下模块涉及资金安全、用户隐私或核心权限,必须审查:

- 支付相关(payment/、order/、wallet/)
- 用户权限(auth/、role/、permission/)
- 数据导出(export/、report/)

## 审查要点

1. **输入校验**:所有外部输入是否做了类型校验和长度限制?
2. **敏感信息**:是否有密码、密钥、Token 硬编码在代码中?
3. **权限控制**:接口是否有身份验证?敏感操作是否有权限检查?
4. **SQL 注入**:拼接 SQL 的地方是否用了参数化查询?

## 输出格式

审查结果按以下结构输出:

【审查文件】xxx.py 【风险等级】🔴 高 / 🟡 中 / 🟢 低 【问题描述】... 【修复建议】...

4.3 第三步:写 Tool

yaml
# review/tools/security-check.yaml

name: security-check
description: 对指定文件做安全检查,扫描硬编码密钥和常见风险

## 参数

| 参数 | 类型 | 必需 | 说明 |
|------|------|------|------|
| file | string | 是 | 要审查的文件路径 |

## 执行步骤

### 步骤 1:检查文件是否存在
```bash
test -f {file} && echo "文件存在" || echo "文件不存在: {file}"
```

### 步骤 2:扫描硬编码密钥
```bash
grep -n -E "(password|secret|token|api_key|private_key)\\s*[=:]\\s*[\"'][^\"']{8,}" {file} || echo "未发现明显硬编码"
```

### 步骤 3:检查 SQL 拼接
```bash
grep -n -E "(execute|query)\\s*\\(\\s*['\"].*%s" {file} || echo "未发现 SQL 拼接"
```

4.4 第四步:加路由

SKILL.md 中加一行:

markdown
| review、审查、安全、代码检查 | `review/` | 代码审查与安全审计 |

4.5 测试

在 CodeBuddy 中输入:

review 一下 payment.py

AI 应该:

  1. 匹配到 review/
  2. 读 DOMAIN.md,知道 payment 是 S 级模块
  3. 调用 security-check.yaml
  4. 输出审查结果

五、设计原则

5.1 按职能切域,不按项目切

❌ 不要每个项目建一个 deploy:

❌ project-a/deploy/
❌ project-b/deploy/

✅ 一个 deploy 管所有项目的部署:

✅ deploy/DOMAIN.md 里写明:后端用部署脚本,H5 用对象存储,小程序用开发者工具

知识可复用,维护一份就行。

5.2 知识写「刚好够用」

AI 不需要知道项目的历史沿革,它只需要知道「现在怎么操作、有什么禁忌」。

写太多写刚好
项目 2022 年为什么选 FastAPIFastAPI 版本要求、启动命令、常用调试方式
团队组织架构和汇报关系这个域的职责边界和对接人
技术选型的完整论证过程当前技术栈和关键配置

保留行动所需的最小信息集

5.3 Skill 和代码一起变

Skill 不是写一次就忘的文档,它和代码一样需要维护。

推荐做法

  • PR 改了数据库结构 → 同步改 DOMAIN.md 的表结构说明
  • 改了构建命令 → 同步改 tools/*.yaml
  • 新增了一个部署方式 → 同步改 DOMAIN.md 决策树
  • 把「Skill 维护」加入 Code Review checklist

六、9 域速查表

覆盖项目触发词示例能做什么
deploy各子项目部署、上线、发布远程部署、静态资源上传、数据库迁移(细节见内网 Skill)
develop全项目开发、运行、调试、npm/pip环境初始化、启动命令、编码规范、MCP 配置
ops后端服务服务器、数据库、日志、备份状态查询、日志排查(生产细节不进公开文档)
review全项目review、代码审查、安全S 级模块审查清单、安全审计
productproduct / official-web产品、课程、方法论、SDAD手册结构、官网内容、转型路径
appapp小程序、场景、uni-app5 场景切换、分包结构、设计 Token、真机预览
admin各管理后台后台、编排构建命令、发布流程(路径见内网 Skill)
diagramdiagram课图、手绘、模板、PNG5 模板映射、AI 生成→渲染→嵌入手册
platformplatformAPI、路由、Agent、RAG、模型200+ 模块全景、10 层架构、对话链路

七、配套视频

  • 视频①:《Skill 系统实战(上)》— 为什么需要 Skill,解剖 deploy 域完整设计
  • 视频②:《Skill 系统实战(下)》— 动手写一个最小 Skill,三个设计原则

视频建立认知和方法,本文档提供完整案例和可复制模板。建议先看完视频,再对照本文档查阅细节。


八、与工程文档的关系

位置给谁看用途
Skill(完整版)仓库内 .codebuddy/skills/本机 AI / 团队含部署细节,不进入公网文档站构建
Skill(公开版)本站 engineering/skill-system学员 / 读者方法论与结构示例,已脱敏
工程文档仓库根 docs/团队内完整设计、面试、架构
产品手册chenyue-product/docs/公网浏览转型路径、案例、编排说明

公开文档只保留「能自学的方法」;运维真值、支付方案、内部目录索引等通过 srcExclude 排除在 VitePress 生产构建之外。

晨悦 AI 实践手册