1. 设计书总是写不齐,问题往往不在人
团队里写开发设计书这件事,最容易出现的不是“没人会写”,而是“每次写得都不一样”。同一个项目,A 同学写的设计书有完整的表结构和接口定义,B 同学写的只有几段架构描述,评审会上大家对着两份风格完全不同的文档讨论,口径自然对不齐。更麻烦的是细节遗漏:异常处理、性能指标、回滚策略这些章节,写的人觉得“没必要写那么细”,评审的人却认为“这是必须项”,来回拉扯几轮,时间就耗掉了。
Claude Skills 能缓解这个问题,它的思路是把团队的设计规范、章节模板、检查清单封装成一个可复用的技能包,放在.claude/skills/design-document/SKILL.md里。之后在 Claude Code 里输入“帮我写开发设计书”,Claude 会自动加载这个 Skill,按你定义好的结构输出文档,而不是每次自由发挥。这篇就围绕这个 Skill 的落地来讲:怎么建目录、怎么写 YAML 元数据、怎么触发、怎么验证,以及模型通道怎么改到 TaoToken 上让整套流程跑通。
需要先说清楚一件事:TaoToken 在这里只负责给 Claude Code 提供 Key 和 Base URL,它不会替你写 SKILL.md,也不会替你生成设计书。Skill 的内容、模板、检查清单,仍然要你自己按团队规范来定。把这两件事分开,后面配置的时候就不会混淆。
2. 把模型通道切到 TaoToken 的前置准备
Claude Code 默认走的是官方通道,如果你想把模型请求切到 TaoToken,需要先拿到一把 Key。这一步在官网完成:打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 注册账号,登录后进控制台创建 API Key。创建完先复制保存,后面配置模型通道时要用。
这里有个容易踩的坑:Base URL 填的是https://taotoken.net/api,不带/v1,也不加任何 UTM 参数。很多人习惯性写成https://taotoken.net/api/v1,结果请求 404。TaoToken 的接口路径已经内置了版本处理,你只需要填到/api这一层。
配置入口有两个选择:一是直接在 Claude Code 的模型通道设置里改,二是用 CC Switch 这类切换工具来管理多套配置。如果你同时用多个模型通道,建议用 CC Switch,切换的时候不用反复改配置文件。不管用哪种方式,核心就两个字段:Base URL 和 API Key。
| 配置项 | 填写内容 | 注意事项 |
|---|---|---|
| Base URL | https://taotoken.net/api | 不带/v1,不加 UTM |
| API Key | 官网控制台创建的那把 | 创建后立即复制,页面刷新后不再完整显示 |
| 模型通道 | 按 Claude Code 要求选择对应模型 | 与 Skill 触发无关,Skill 是本地文件 |
配好之后先别急着写 Skill,建议先发一条最简单的请求验证通道是否通。比如在 Claude Code 里问一句“你好”,看是否有正常回复。如果这一步就报错,先排查 Key 和 Base URL,不要往下走。
3. 创建 design-document Skill 的完整目录与 SKILL.md
Skill 的本质是一个本地目录,Claude Code 在启动时会扫描.claude/skills/下的内容。你要做的是建好目录结构,然后写一个符合规范的SKILL.md。
先建目录。在项目根目录下执行:
mkdir -p .claude/skills/design-document/references mkdir -p .claude/skills/design-document/examplesreferences/放参考模板,比如api-design-template.md、database-schema-template.md;examples/放示例文档,比如一份完整的user-service-design.md。这两个目录不是必须的,但有了它们,Claude 在生成时可以参考你团队的真实模板,输出会更贴近实际规范。
接下来写SKILL.md。文件分两部分:YAML 元数据和主体内容。元数据用---包裹,放在文件最开头:
--- name: design-document description: 生成完整的开发设计书,包括系统架构、接口设计、数据库设计、异常处理、性能优化等。当用户要求编写设计书、技术方案、架构设计时使用。 allowed-tools: Read version: 1.0.0 ---字段含义如下:name是技能名称,只能用小写字母、数字和连字符,长度 1 到 64 字符;description是功能描述和使用时机,1 到 1024 字符,必须包含触发关键词,Claude 靠它判断什么时候加载这个 Skill;allowed-tools是允许使用的工具,这里填Read,表示 Skill 可以读取项目里的已有文档;version是版本号,可选,但建议写上,方便团队追踪模板迭代。
主体内容部分,先写触发条件,再写前置信息收集,最后写设计书章节结构。触发条件直接列关键词:
## 触发条件 当用户提出以下需求时激活此技能: - "帮我写设计书" - "生成技术方案" - "编写架构设计文档" - "设计文档" - "技术设计"前置信息收集部分,要求 Claude 在生成前先确认需求背景、技术栈、团队规范。这一步很关键,因为设计书的质量取决于输入信息的完整度。你可以写成清单形式,让 Claude 逐项确认。
章节结构部分,把团队的设计书模板完整写进去。从文档概述、需求背景、系统架构、数据库设计、接口设计、核心业务流程、异常处理、性能优化、安全设计、测试方案、部署方案、风险评估,到后续优化计划,每个章节都给出表格或示例格式。这部分内容越长越细,生成出来的设计书就越稳定。比如数据库设计章节,直接给出表结构模板:
#### 4.2.1 用户表 (t_user) | 字段名 | 类型 | 长度 | 允许 NULL | 默认值 | 说明 | |--------|------|------|----------|--------|------| | id | BIGINT | 20 | 否 | 自增 | 主键 ID | | username | VARCHAR | 50 | 否 | - | 用户名 | | email | VARCHAR | 100 | 否 | - | 邮箱 | | password | VARCHAR | 255 | 否 | - | 加密密码 | | status | TINYINT | 1 | 否 | 1 | 状态:1-正常 0-禁用 | | created_at | DATETIME | - | 否 | CURRENT_TIMESTAMP | 创建时间 | | updated_at | DATETIME | - | 否 | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | 更新时间 | **索引设计**: - 唯一索引:`idx_username` (username) - 唯一索引:`idx_email` (email) - 普通索引:`idx_status_created` (status, created_at)接口设计章节同理,给出统一响应格式和错误码规范:
{ "code": 200, "message": "success", "data": {}, "timestamp": 1642694400000 }把这些模板写进SKILL.md后,Claude 在生成时会严格按这个结构走,不会漏掉异常处理或性能指标这些容易被忽略的章节。
4. 触发 Skill 并验证设计书生成结果
Skill 写好后,触发方式有两种。自动触发是直接在 Claude Code 里输入需求,比如“帮我为博客系统写一份开发设计书”,Claude 会根据description里的关键词判断是否加载design-documentSkill。如果自动判定没命中,用手动触发:输入/design-document,然后描述需求。
验证的时候,建议用原文里的博客系统案例,输入:
帮我为博客系统写一份开发设计书。 功能需求: - 用户注册、登录 - 文章发布、编辑、删除 - 文章列表、详情、搜索 - 评论功能 技术栈: - 前端:Vue 3 + TypeScript + Element Plus - 后端:Spring Boot 3 + MyBatis Plus - 数据库:MySQL 8.0 - 缓存:Redis 非功能需求: - 支持并发用户 1000 - 接口响应时间 < 200ms - 数据安全,防止 SQL 注入观察 Claude Code 的输出,重点看几个章节是否齐全:文档概述、系统架构、t_user和t_article表结构、/api/v1/articles接口定义、异常处理。如果这些章节都出现了,说明 Skill 加载成功。如果只输出了几段泛泛的架构描述,说明 Skill 没被触发,检查description里的关键词是否覆盖了你的输入。
生成完成后,去 TaoToken 控制台确认调用记录。控制台会显示请求时间、模型、消耗情况。如果能看到对应时间点的调用成功记录,说明模型通道配置正确,Skill 生成流程完整跑通。这一步是很多人忽略的:Skill 是本地文件,但生成设计书需要模型请求,两者要分别验证。
5. 本篇常见错误排查
配置过程中最容易遇到的是 Base URL 写错。有人填https://taotoken.net/api/v1,有人填https://taotoken.net,这两种都会导致请求失败。正确写法是https://taotoken.net/api,不带/v1,不加 UTM 参数。如果你在 CC Switch 里配置,注意不要手动拼接路径。
第二个常见问题是 Skill 不触发。原因通常是description写得太窄,比如只写了“生成设计书”,但用户输入的是“写技术方案”,关键词没匹配上。解决办法是把常见说法都列进去:设计书、技术方案、架构设计、设计文档、技术设计。另外,name字段如果包含大写字母或下划线,也会导致 Skill 加载失败,只能用小写字母、数字和连字符。
第三个问题是生成的设计书章节缺失。这通常是因为SKILL.md主体内容里的章节结构写得不完整,Claude 没有可参考的模板,就自由发挥了。检查你的SKILL.md是否把 14 个章节都写进去了,尤其是异常处理、性能优化、风险评估这些容易被省略的部分。如果团队有特殊要求,比如必须包含“回滚策略”,就在模板里显式写出来。
第四个问题是权限报错。allowed-tools填了Read,但 Skill 尝试读取项目文件时仍然报错,检查一下项目目录权限,以及 Claude Code 是否有读取.claude/skills/下文件的权限。如果不需要读取已有文档,可以把allowed-tools留空或去掉这一行。
6. 把 Skill 纳入团队协作流程
Skill 建好之后,建议提交到版本控制,让团队成员拉取后直接使用统一模板:
git add .claude/skills/design-document/ git commit -m "feat: 添加开发设计书自动化 Skill" git push后续迭代时,收集团队反馈,把常见问题固化到SKILL.md里。比如评审时经常发现“接口错误码不统一”,就在模板里把错误码规范写死;如果发现“性能指标总是漏写”,就在检查清单里加一条强制项。版本号记得同步更新,方便追踪。
如果你想把模型通道也统一管理,可以在团队内部分享 TaoToken 的配置方式:Base URL 填https://taotoken.net/api,Key 各自在官网创建。需要长期跑编码任务或 Agent 流程的,可以了解 Coding Plan;只是想验证模型对话效果的,用模型对话入口即可。接入文档和 API Keys 管理都在控制台里,配置时对照着填就不会出错。
整套流程跑下来,你会发现设计书的产出变得稳定了:格式统一、章节完整、评审口径一致。Skill 负责规范,TaoToken 负责通道,两者各司其职,剩下的就是按团队实际需求持续打磨模板。