1. 为什么需要「用 Skill 创建 Skill」如果你已经在 Claude Code 里写过几个 Skill大概率会遇到一个很现实的问题每次新建 Skill 都要手动建目录、写 frontmatter、补 description、再想触发条件重复劳动特别多。尤其是团队里要批量产出 Skill 的时候一个人写还好多人协作时命名风格、目录结构、description 写法全都不一样最后 Claude 加载时要么识别不到要么触发时机完全不对。我最近在整理一批内部 Skill目标是让「描述需求 → 生成 Skill 骨架 → 本地加载 → 实际调用」这条链路能跑通而不是每次靠记忆手敲模板。Anthropic 官方其实已经开源了一个 Skills 仓库里面有一个专门用来生成 Skill 的 Skill叫skill-creator。它的思路很直接你把想做的 Skill 用自然语言描述清楚它按 Agent Skills 规范帮你生成目录、SKILL.md、frontmatter 和示例段落。这篇要解决的就是这条完整链路怎么拿到官方 Skill、怎么把skill-creator装进 Claude Code、怎么用 TaoToken 统一 Key 和 API 通道把模型请求接上、生成后怎么验证 Skill 真的被加载并能被调用。面向的是需要批量生成 Skill 的开发者所以配置部分我会给可直接复制的settings.json和config.toml骨架验证部分给具体命令和预期输出。需要先说明一点Skill 本身是本地文件系统里的 Markdown 目录约定Claude Code 读取它不需要联网但生成 Skill 内容、让模型按规范产出文本这一步是要走模型 API 的。所以「TaoToken 配置」和「Skill 创建」是两件事前者负责模型通道后者负责本地能力沉淀别混在一起理解。2. TaoToken 前置统一 Key 与 API 通道TaoToken 在这里的角色是模型调用的统一入口。你可以在官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 了解它的定位实际接入用的是 API 地址 https://taotoken.net/api这个不加 UTM。它的价值在于不管你后面用 Claude Code、还是别的编码工具Key 和 base_url 可以统一管理不用每个工具单独配一套。先拿 Key。进入控制台创建 API Key路径是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 创建完复制出来形如sk-xxxx。这个 Key 后面会同时出现在 Claude Code 的配置和config.toml里。如果你还没决定用哪种接入方式可以先看接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面区分了不同工具的配置写法。想先验证模型通不通用模型对话页面 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 发一条测试消息最快。注意Key 只创建一次就够不要每个工具建一个。统一 Key 的好处是额度、日志、限流都在一个地方看排障时不用猜是哪个 Key 出的问题。环境变量建议这样设Linux/macOS 写进~/.zshrc或~/.bashrcWindows 用系统环境变量export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api设完执行source ~/.zshrc再用echo $TAOTOKEN_API_KEY确认能打印出来。这一步看着简单但后面 Claude Code 读不到 Key 时八成是这里没生效或者拼错了。3. 可复制配置settings.json 与 config.toml 骨架Claude Code 的配置分两层一层是模型通道走 TaoToken一层是 Skill 目录约定。先把模型通道配好再装skill-creator。3.1 Claude Code 的 settings.jsonClaude Code 的用户级配置一般在~/.claude/settings.json。下面这份骨架可以直接改 Key 后用{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的Key }, permissions: { allow: [ Read, Write, Bash(git:*) ] } }这里ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址ANTHROPIC_API_KEY填你刚创建的 Key。permissions.allow里我放了Read、Write和Bash(git:*)因为生成 Skill 时要写文件、偶尔要看 git 状态。你可以按需增减但别一上来就全放开。改完保存重启 Claude Code 终端让它重新读配置。3.2 config.toml 骨架如果你用的是支持config.toml的客户端比如某些 CLI 或 IDE 插件配置结构类似核心还是 base_url 和 key[api] base_url https://taotoken.net/api api_key sk-你的Key model claude-sonnet-4-20250514 timeout 120 [skill] user_dir ~/.claude/skills project_dir .claude/skills auto_load truemodel按你实际可用的填timeout给到 120 秒是因为生成 Skill 时输出可能比较长。skill.user_dir和skill.project_dir对应下面要讲的两种 Skill 存放位置。3.3 装官方 skill-creator官方 Skills 仓库在anthropics/skills里面skills目录下有skill-creator。两种装法第一种直接拖目录。把仓库里的skill-creator文件夹复制到# 用户级所有项目可用 ~/.claude/skills/skill-creator # 项目级只对当前项目生效 .claude/skills/skill-creator第二种用插件市场方式。在 Claude Code 里运行/plugin marketplace add anthropics/skills然后输入/plugin安装example-skills或document-skills重启终端后运行/skills能看到已安装的 Skill 列表。装完后skill-creator应该出现在列表里。提示用户级和项目级别同时放同名 SkillClaude Code 加载时可能产生歧义。团队协作建议项目级个人通用建议用户级。4. 验证请求与成功结果配置完不验证等于没配。分两步先验证模型通道通再验证 Skill 被加载。4.1 验证 TaoToken 通道最直接的方式是用 curl 打一次 APIcurl -s https://taotoken.net/api/v1/messages \ -H x-api-key: $TAOTOKEN_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 64, messages: [{role: user, content: 回复 OK 两个字母}] }预期返回里能看到content字段文本是OK之类。如果返回 401检查 Key返回 404检查 base_url 是不是多了或少了一段路径。4.2 验证 Skill 加载在 Claude Code 里运行/skills预期输出会列出当前加载的 Skill包括skill-creator。如果没看到按顺序查目录名对不对、SKILL.md在不在、frontmatter 有没有写错。4.3 实际生成一个 Skill确认skill-creator加载后直接对它下指令比如用 skill-creator 帮我创建一个 Skill名字叫 api-mock-helper 用途是当我在写前端代码需要 mock 接口时自动生成符合 REST 规范的 mock 数据。 触发条件用户提到 mock、假数据、接口模拟。它会在~/.claude/skills/或.claude/skills/下生成目录里面有一个SKILL.md结构大致是--- name: api-mock-helper description: 当用户需要 mock 接口数据、假数据或接口模拟时使用生成符合 REST 规范的 mock 响应。 --- # API Mock Helper ## 使用场景 - 前端联调时后端接口未就绪 - 单元测试需要固定返回数据 ## 示例 - 生成用户列表 mock - 生成分页响应 mock ## 规范 - 字段命名用 camelCase - 分页统一用 page/pageSize/total生成后再次运行/skills应该能看到api-mock-helper。然后在对话里说「帮我 mock 一个用户列表接口」观察它是否触发这个 Skill。触发成功的话输出会明显带上你定义的规范。5. 本篇常见错排查Skill 不加载九成是目录层级错了。正确结构是~/.claude/skills/skill-creator/SKILL.md不是~/.claude/skills/SKILL.md。每个 Skill 一个独立文件夹文件夹名和 frontmatter 里的name最好一致。frontmatter 解析失败---必须是文件第一行前后不能有空行或空格。name和description是必填description要写清楚「做什么 什么时候用」否则模型不知道何时触发。模型请求 401/403先echo $TAOTOKEN_API_KEY看环境变量有没有值再看settings.json里的 Key 有没有多余空格。Key 复制时容易带上换行。生成内容为空或截断把max_tokens调大或者把timeout从 60 提到 120。生成 Skill 的输出通常比普通对话长。项目级和用户级冲突同名 Skill 同时存在于~/.claude/skills和.claude/skills时优先删掉一个。排查时先只保留项目级确认能加载后再决定要不要放用户级。插件市场装完看不到装完必须重启终端/skills才会重新扫描。不重启的话列表是旧的。6. 后续怎么用这套链路把skill-creator装好、TaoToken 通道配好之后批量生成 Skill 就变成了一件可重复的事描述需求 → 生成骨架 → 检查 frontmatter → 放进对应目录 →/skills确认 → 对话触发验证。团队里可以约定所有 Skill 都走这个流程description 的写法统一后面维护成本会低很多。如果你后面要长期跑编码任务或者做 Agent 编排可以看 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它更适合持续性的编码场景。Key 管理统一在 API Keys https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 接入细节看文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。Claude Code 相关的接入说明在 ClaudeCodeAnthropic https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-anthropicutm_campaignrewrite 。最后留一个我踩过的坑生成完 Skill 别急着写第二个先把第一个在真实对话里触发三次确认 description 的触发边界是对的。description 写太宽什么话题都触发写太窄该触发时不触发。这个只能靠实测调没有捷径。