在ClaudeCode中用Rabetbase:从一句话到完整功能
这篇回答一个更实际的问题:打开 Claude Code 之后,怎么让 AI 帮你用 rabetbase 完成真实开发任务。你会看到从一句话到完整功能的全过程——包括 AI 怎么自动选命令、怎么查字段、怎么保证不出错。
开始之前:30 秒确认
确保以下条件全部满足,否则 AI 无法正常工作:
| 检查项 | 命令 |
|---|---|
| CLI 已安装 | rabetbase --version 输出版本号(>= 2.0) |
| Skill 已安装 | npx skills add lovrabet/rabetbase --global(只需一次) |
| 已认证 | rabetbase auth login 浏览器完成 OAuth |
| 项目已初始化 | 项目目录下有 .rabetbase.json(rabetbase init 生成) |
不确定环境是否正常?运行 rabetbase doctor 一键诊断。
详细的安装步骤请参考:Rabetbase CLI 2.0 快速上手指引。
第一个对话:探索数据
最简单的场景。在 Claude Code 里说一句话,看看会发生什么。
在 Claude Code 里输入: 帮我看看这个应用有哪些数据集
AI 自动做了什么
Claude Code 读取了 Skill 中的命令手册,知道"列数据集"应该用 rabetbase dataset list。然后它自动执行:
rabetbase dataset list --format compress
AI 自动加了 --format compress(单行紧凑 JSON)。这不是你要求的——是 Skill 教它这么做的,因为压缩格式能省约 60% 的 token,让 AI 的上下文窗口更充裕。
AI 拿到返回结果后,会把数据集列表整理给你:
找到 5 个数据集:
1. customers(客户) - dataset_abc123
2. orders(订单) - dataset_def456
3. order_items(订单明细) - dataset_ghi789
4. products(商品) - dataset_jkl012
5. users(用户) - dataset_mno345
追问一句
你再问: 客户数据集有哪些字段?
AI 自动执行:
rabetbase dataset detail --code --format compress
返回完整的字段结构——字段名、类型、是否必填、枚举值,一目了然。
这和手动操作有什么区别?
手动方式
- 打开浏览器
- 登录管理后台
- 找到数据集管理页
- 在列表里翻找客户数据集
- 点进去看字段详情 用时:3-5 分钟
Claude Code + Skill
- 说一句话
- AI 自动执行正确的命令
- 结果直接在对话中呈现 用时:10 秒
进阶对话:创建 SQL 查询
这次让 AI 完成一个需要多步操作的任务——写一条自定义 SQL。
在 Claude Code 里输入: 帮我写一条 SQL,按月统计订单金额,支持按年份筛选
AI 的完整工作流
AI 不会拿到需求就埋头写 SQL。Skill 教了它一套严格的 SOP:
第 1 步:查数据集结构(绝不猜字段名)
rabetbase dataset detail --code --format compress
AI 拿到了订单表的真实字段:order_date(不是 date)、total_amount(不是 amount)、status(枚举:pending/paid/completed/cancelled)。字段名用真实的,不靠猜。
没有 Skill 时,AI 会猜字段名——10 条 SQL 里大概 3 条字段名是对的。有了 Skill,AI 被强制要求先查 dataset detail,从返回值中获取真实字段名。准确率从 30% 跳到接近 100%。** 第 2 步:检查是否已有类似 SQL**
rabetbase sql list --name "order"
看看有没有能复用的。如果没有,就新建。
第 3 步:编写 SQL 并校验AI 编写 SQL 后,用 rabetbase sql validate 校验语法。如果校验失败(字段名拼错、语法错误、危险语句),AI 会自动修正后重新提交。第 4 步:保存到平台
rabetbase sql save --file ./monthly-order-summary.sql
sql save 内置了不可跳过的校验——DELETE、DROP 等 dangerous 语句会被自动拦截。
第 5 步:测试执行
rabetbase sql exec --sqlcode --params '{"year":"2025"}'
AI 验证查询结果正确后,告诉你 SQL 已就绪,可以在前端代码中调用。
整个过程你做了什么?
你说了一句话。AI 自动执行了 5 步完整工作流——查字段、查已有、写 SQL、校验、保存、测试。全程符合平台的 SQL 开发规范。
这就是 Skill 的核心价值:它把"最佳实践"编码成了 AI 可以遵循的 SOP。AI 不是靠"聪明"在做——它是按 Skill 定好的流程一步步执行,所以结果稳定可靠。
完整实战:从需求到功能上线
这次来一个全链路——从理解需求到页面生成到构建部署。
在 Claude Code 里输入: 用 rabetbase CLI 帮我创建一个客户列表页面,支持搜索和分页
AI 的全流程
| 步骤 | AI 执行的命令 | 说明 |
|---|---|---|
| 数据探索 | dataset list → dataset detail | 先找到客户数据集,再查完整字段结构(字段名、类型、枚举值、关联关系) |
| API 拉取 | rabetbase api pull | 生成 TypeScript SDK 客户端代码,直接在项目中 import 使用 |
| 代码生成 | AI 根据 Skill 中的 SDK 规范编写代码 | 使用真实的字段名和 API 调用方式——不是猜的,是从第 1 步拿到的 |
| 本地预览 | rabetbase run start | 本地启动开发服务器,实时预览效果 |
| 构建 | rabetbase run build | 构建生产包,CLI 自动处理微前端集成配置 |
| 菜单同步 | rabetbase menu sync | 自动扫描页面,同步到主应用菜单——用户点击即可访问 |
生成的代码长什么样?
AI 生成的客户列表页面,核心代码类似:
// AI 从 dataset detail 拿到的真实字段:
// name(string), phone(string), company(string),
// status(enum: potential|active|lost)
const result = await client.models.customers.filter({
where: {
name: { $contain: searchKeyword }, // 用 $contain 做模糊搜索
status: { $eq: selectedStatus }, // 用 $eq 做精确筛选
},
select: ["id", "name", "phone", "company", "status"],
orderBy: [{ createTime: "desc" }],
currentPage: page,
pageSize: 20,
});
注意几个细节——这些都不是 AI 随手写的,是 Skill 规定的标准用法:
- 参数名用 select(不是 fields)、orderBy(不是 sort)、currentPage/pageSize(不是 page/limit)
- 模糊搜索用 $contain,精确匹配用 $eq——不是 LIKE '%xxx%'
- 字段名是 name、phone、status——从 dataset detail 返回值中拿的,不是猜的
最终效果
用户在主应用菜单中看到"客户列表",点击后加载你的子应用页面。搜索、筛选、分页全部正常工作——数据从真实的数据集读取,不是 mock 数据。
Skill 为什么能让 AI "聪明"
你可能好奇:同样是 Claude Code,装了 Skill 和没装有什么区别?
没有 Skill 时
- AI 猜字段名——customer_name 还是 name 还是 customerName?猜对概率约 30%
- AI 猜参数格式——page=1&size=20 还是 currentPage=1&pageSize=20?不确定就两个都试试
- AI 不知道 SQL 要先校验,直接写完就调接口——字段名错了返回一堆报错
- AI 不清楚什么时候该用 filter、什么时候该写 SQL——全靠"感觉"
- AI 想直接调 HTTP 接口——拼 URL、处理认证、处理错误,每一步都可能出错
有了 Skill 后
- AI 先执行 dataset detail 拿到真实字段名——准确率接近 100%
- AI 用 Skill 规定的参数格式:select、orderBy、currentPage、pageSize——没有歧义
- AI 严格按流程:先 sql validate 再 sql save——语法错误被自动拦截
- AI 按优先级选方案:filter → aggregate → SQL → BFF——不乱猜
- AI 通过 CLI 命令操作——认证、错误处理、风险控制全部内置
Skill 里到底装了什么?
Rabetbase Skill 2.0 包含三层内容:
| 层级 | 内容 |
|---|---|
| 命令手册 | 35+ 个命令的完整参数、风险等级、输出格式、使用场景。AI 执行任何命令前会先读对应手册——确保参数正确、风险可控 |
| 跨领域指南 | 10 个主题指南:SDK 完整用法、SQL MyBatis 语法、BFF 脚本规范、前端页面开发约束、数据接口最佳实践、冲突处理、故障排查等。AI 在生成代码时会参考这些规范 |
| SOP 规则 | 禁止猜字段名、禁止跳过校验、禁止手动拼 URL、按优先级选方案。这些"禁止"和"必须"让 AI 的行为从"可能对"变成"基本不会错" |
安全防线:Skill 还定义了风险等级——只读命令 AI 可以直接执行,写入操作会先 --dry-run 预览,高危操作需要你确认。AI 无法自行提升权限等级(riskLevel 只能由人类手动修改配置文件)。
AI 友好的参数速查
以下参数是 Skill 教 AI 使用的,你日常手动操作时一般不需要关心——但了解它们有助于理解 AI 的行为:
| 参数 | 作用 | 为什么 AI 用它 |
|---|---|---|
| --format compress | 单行紧凑 JSON,语义与 json 完全相同 | 省约 60% token,AI 上下文窗口更充裕 |
| --format json | 缩进 JSON,便于人类阅读 | 调试时用,输出结构清晰 |
| --jq '.data[]' | 用 jq 表达式提取结果子集 | 返回数据量大时只取需要的部分,避免刷屏 |
| --dry-run | 预览变更,不实际执行 | 写入操作前的安全网——先看后做 |
| --yes | 跳过交互确认 | CI/CD 管道或信任场景下使用 |
关于 rabetbase schema:如果 AI 不确定某个命令有哪些子命令或参数,它会先执行 rabetbase schema(导出与 --help 同源的机器可读契约)。这个命令不需要登录,零成本获取完整的命令元数据。
更多提示词模板
以下是一些你可以直接复制到 Claude Code 中使用的提示词,覆盖常见开发场景:
数据探索类:
- 「帮我看看这个应用有哪些数据集,它们的关联关系是什么」
- 「客户数据集有哪些字段?哪些是枚举?枚举值分别是什么?」
- 「帮我拉取最新的 API 客户端代码」
SQL 开发类:
- 「帮我写一条 SQL,统计每个客户的订单总数和总金额,按金额降序排列」
- 「已有的 SQL 里有没有和订单统计相关的?有的话给我看看详情」
- 「这条 SQL 执行报错了,帮我看看哪里有问题」
BFF 开发类:
- 「帮我创建一个 BFF 独立端点,接受订单 ID 参数,返回订单详情(包含客户信息和商品明细)」
- 「帮我创建一个 filter 操作的前验函数,校验手机号格式必须是 11 位数字」
页面开发类:
- 「帮我创建一个订单列表页面,支持按状态筛选和日期范围筛选,分页显示」
- 「帮我创建一个新建客户表单,手机号要校验格式,提交后返回列表页」
- 「帮我创建一个订单提交页面,主表填客户信息,明细表可以动态增删商品行,一次提交」
构建部署类:
- 「帮我构建项目并同步菜单到主应用」
- 「帮我检查一下菜单同步状态,看看有没有遗漏的页面」
相关阅读
| 文档 | 说明 |
|---|---|
| Rabetbase CLI 2.0 快速上手指引 | 安装 CLI、安装 Skill、认证、初始化项目 |
| Rabetbase 命令合集 | 所有命令的分组速览和参数说明 |
| Rabetbase CLI 风险等级完全指南 | read / write / high-risk-write 三级风险控制详解 |
| Rabetbase 配置项参考 | .rabetbase.json 完整字段说明 |