☰
手把手教你在 Claude Code 中熟练使用 SKILL 技能:从 SKILL.md 到 Plugin 的完整配置
2026/10/2 5:59:52 网站建设 项目流程

1. 为什么你的 Claude Code 里 SKILL 技能总是不触发

很多人第一次接触 Claude Code 的 SKILL 技能,都会经历同一个困惑:明明把 SKILL.md 放进了目录,对话里也提了需求,Claude 却像没看见一样,该干嘛干嘛。我试过把一份写好的技能文档丢进~/.claude/skills/,然后问它"帮我按规范生成提交信息",结果它直接手写了一段,完全没走我的技能。

问题几乎都不在模型,而在 SKILL.md 本身。SKILL 技能是一套"按需加载"的能力封装机制:Claude 平时并不会把所有技能的正文都读进上下文,它只先看每个技能的 name 和 description,判断当前请求要不要命中;命中之后,才把 SKILL.md 的正文加载进来,按里面的步骤执行。所以决定"触不触发"的是 frontmatter,决定"执行对不对"的才是正文。绝大多数不触发,都是 description 写得太虚,或者干脆漏了 frontmatter。

SKILL 技能能做什么?把一类有固定套路的重复工作沉淀成可复用单元,比如统一 commit 规范、固定代码审查清单、按模板生成接口文档、按项目约定做目录初始化。适合谁?适合每天都在 Claude Code 里重复交代同一套要求的人——你交代三遍的东西,就该封装成一个 SKILL。

这篇会从 SKILL.md 的写法讲到目录结构,再讲到 Plugin 挂载,最后给你一套可复制的模板和验证动作。全程围绕 Claude Code、SKILL、Skill、Plugin、SKILL.md 这几个关键词展开,跟着做就能把技能从文档变成真正会被调用的能力。

2. TaoToken 前置准备:给 Claude Code 配好可用的模型入口

在折腾 SKILL 之前,得先保证 Claude Code 本身能稳定跑起来。SKILL 是"能力层",模型入口是"底座",底座不通,技能写得再好也验证不了。这里用 TaoToken 作为模型接入入口,它提供兼容 Anthropic 的 API 形式,Claude Code 可以直接对接。

先拿 Key。打开 https://taotoken.net/api-keys ,登录后创建一个 API Key,复制保存好。这个 Key 就是后面配置里的ANTHROPIC_AUTH_TOKEN,只显示一次,丢了只能重建。

然后确认你要用的模型 ID。在 https://taotoken.net/models 可以看到当前可用的模型列表,把你要接的模型 ID 记下来,比如某个 Claude 系列模型 ID。SKILL 技能对模型的指令遵循能力有要求,建议选指令遵循较强的模型,否则正文里的步骤它可能执行得七零八落。

如果你更想先感受一下模型对话效果,可以打开 https://taotoken.net/chat 直接试几句,确认 Key 和模型都正常,再进 Claude Code 配置。这一步能帮你排除"到底是 Key 问题还是 SKILL 问题"。

配置的核心是三件套:Base URL、Key、Model ID。Claude Code 通过环境变量读取,Base URL 指向https://taotoken.net/api,Key 用刚创建的,Model ID 用你选定的。三者缺一,Claude Code 要么连不上,要么连上了但模型不对。

需要提醒的是,SKILL 技能的调试会反复触发模型请求,建议在正式项目之外先建一个测试目录专门用来验证技能,避免误操作污染真实仓库。等技能稳定了,再放进正式项目或全局目录。

如果你打算长期用 Claude Code 做编码和 Agent 类任务,可以了解一下 Coding Plan( https://taotoken.net/coding-plan ),它更适合高频、长时间的编码场景,比零散调用更省心。SKILL 技能本身就是为"长期重复任务"设计的,和这类计划搭配起来比较顺。

3. 可复制配置:SKILL.md 模板与 Plugin 挂载方式

这一节是全文的核心,给你能直接抄的配置。先讲目录结构,再给 SKILL.md 完整模板,最后讲 Plugin 怎么挂载。

3.1 Skill 目录结构与两种存放位置

一个自建 Skill 的典型结构是这样:

my-skill/ ├── SKILL.md # 必需:技能说明文档 ├── scripts/ # 可选:辅助脚本 ├── references/ # 可选:参考文档、模板 └── assets/ # 可选:示例、素材

最小可用的 Skill 只要一个 SKILL.md 就够了,其余目录按需扩展,别为了凑结构建空目录。

存放位置决定作用范围,这是最容易搞错的地方:

位置类型典型路径作用范围适用场景
个人级(全局)~/.claude/skills/<skill-name>/当前用户所有项目通用技能,如 commit 规范
项目级(本地)<项目根>/.claude/skills/<skill-name>/仅当前项目项目特有约定、模板

记忆口诀:全局放家目录,项目放项目里。想让团队每个人都用到,就放项目级并提交到仓库;只想自己用,放个人级。

3.2 SKILL.md 完整模板(可直接复制)

下面这份模板以"生成符合 Conventional Commits 规范的提交信息"为例,你可以整体替换成自己的场景。注意 frontmatter 必须用---包裹,这是触发匹配的门牌号。

--- name: git-commit-helper description: 根据 git diff 自动生成符合 Conventional Commits 规范的提交信息。当用户要求"写 commit message / 提交信息 / commit 信息 / 生成提交说明"时使用。 allowed-tools: - Bash - Read --- # Git Commit Helper ## 用途 读取当前仓库的改动(git diff / git status),按 Conventional Commits 规范生成一条清晰的提交信息。 ## 适用场景 - 用户完成一个功能或修复,需要写提交信息 - 用户明确说"帮我写 commit / 写个提交信息 / 生成 commit message" ## 不适用场景 - 用户只是想看 diff,不需要提交信息 - 用户已有现成 commit 文案,只需帮忙执行 git commit ## 执行步骤 1. 运行 `git status` 和 `git diff --staged`(无暂存时退回 `git diff`)。 2. 归类本次改动类型:feat / fix / docs / refactor / test / chore / perf。 3. 用一句话总结改动核心,控制在 50 字以内。 4. 如有必要,补充正文说明"为什么改 / 影响范围"。 5. 输出标准格式后停止,等待用户确认是否提交。 ## 输出规范 格式必须为: <type>(<scope>): <subject> <body> 示例:feat(login): 新增手机号验证码登录 ## 注意事项 - type 必须取自约定集合,禁止自创 - subject 使用祈使句、现在时,末尾不加句号 - 中文项目用中文 subject,英文项目用英文 ## 示例 输入:git diff 显示新增了 src/login/sms.js,注册了发送短信验证码的逻辑 输出:feat(login): 新增手机号验证码登录

frontmatter 里三个字段的分工要清楚:name是小写连字符、全局唯一的技能名;description是触发匹配的核心依据,必须写准;allowed-tools可选,用来限制这个技能能调用哪些工具,比如只允许 Read 和 Bash,防止它乱写文件。

3.3 Plugin 挂载方式

Skill 和 Plugin 是两个层级:Skill 是最小能力单元,Plugin 是承载和分发 Skill 的容器。一个 Plugin 可以包含多个 Skill。安装一个 Plugin,往往就获得一整套配合的能力。

如果 Skill 是随 Plugin 分发的,按 Plugin 的安装方式整体安装即可,不用手动往 skills 目录里塞。如果是单独分发的,就放进上面说的个人级或项目级目录。判断标准很简单:拿到的是单个 SKILL.md 文件夹,就手动放;拿到的是一个带配置的 Plugin 包,就整体装。

3.4 Claude Code 环境变量配置

Claude Code 通过环境变量读取模型入口,三件套对应关系如下:

export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_AUTH_TOKEN="你的_API_Key" export ANTHROPIC_MODEL="你的_Model_ID"

把这三行写进你的 shell 配置文件(如~/.zshrc或~/.bashrc),然后source一下,或者新开终端。Base URL 指向https://taotoken.net/api,Key 用第 2 节创建的,Model ID 用你选定的。三件套齐全,Claude Code 才能正常发起请求,SKILL 技能才有验证的基础。

4. 验证请求:确认 SKILL 真的被触发并执行

配置写完不算完,得验证。验证分两层:先确认模型入口通,再确认 SKILL 被命中。

4.1 先验证模型入口

在终端里跑一句最简单的请求,确认 Base URL、Key、Model ID 三件套生效。如果 Claude Code 有内置的连通性检查命令,用它;没有的话,直接在项目里发起一次普通对话,看是否正常返回。返回正常,说明底座通了,可以进 SKILL 验证。

4.2 验证 SKILL 是否被识别

把第 3 节的git-commit-helper放进~/.claude/skills/git-commit-helper/SKILL.md,然后查看技能列表,确认git-commit-helper已经出现在可用技能里。列表里没有,说明路径错了或 frontmatter 格式有问题,先解决这个再往下。

4.3 正例测试:应该触发

在一个有改动的 git 仓库里,对 Claude Code 说:

帮我写个 commit 信息

预期结果:它自动命中git-commit-helper,先跑git status和git diff,然后按<type>(<scope>): <subject>格式输出一条提交信息,比如feat(login): 新增手机号验证码登录,输出后停下等你确认。

4.4 反例测试:不应该触发

同一个仓库里,对 Claude Code 说:

看一下我改了哪些文件

预期结果:它只总结改动,不生成 commit 信息,也就是不触发这个 Skill。如果反例也触发了,说明 description 太宽,或者正文里"不适用场景"没写清楚,回到 SKILL.md 补边界。

4.5 稳定性测试

用同一段测试 prompt 连续跑 3 到 5 次,看输出是否稳定。稳定就说明技能成型了;不稳定,比如有时触发有时不触发、有时格式对有时格式乱,就按第 5 节的排查表定位。

验证通过后,这个技能就从"文档"变成了"可复用能力"。核心闭环是:建目录 → 写 frontmatter + 正文 → 测正例反例 → 按症状迭代。

5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth

调试 SKILL 时遇到的报错,一半是模型入口问题,一半是技能本身问题。分开看。

5.1 401 报错

现象:Claude Code 发起请求直接返回 401,或提示认证失败。

原因基本是 Key 不对或没生效。检查ANTHROPIC_AUTH_TOKEN是否和 https://taotoken.net/api-keys 里创建的一致,有没有多余空格,有没有把 Key 写进了错误的变量名。改完记得重新source配置文件或新开终端,环境变量不会自动刷新。

5.2 local proxy failed

现象:提示本地代理失败或连接被拒。

这类报错通常指向 Base URL 配置问题。确认ANTHROPIC_BASE_URL写的是https://taotoken.net/api,没有多余路径、没有拼写错误、没有混入其他地址。如果你本地有其他网络层配置,先排除它们对请求的干扰,保证请求直达配置的入口。

5.3 reading choices 相关报错

现象:返回结构解析失败,提示读取 choices 出错之类。

这通常是模型 ID 不对,或者返回格式和客户端预期不匹配。回到 https://taotoken.net/models 核对ANTHROPIC_MODEL是否是你实际可用的模型 ID,别用猜测的字符串。模型 ID 错,请求可能返回非预期结构,客户端解析就报错。

5.4 OAuth 相关报错

现象:提示 OAuth 认证流程失败或 token 过期。

如果你用的是基于 token 的接入方式,确认没有混用两套认证逻辑。用ANTHROPIC_AUTH_TOKEN这套,就不要再触发 OAuth 流程;两者混用容易互相覆盖。清掉冲突的认证配置,只保留一套。

5.5 SKILL 不触发 / 乱触发 / 执行错

模型入口没问题后,剩下的就是技能本身。对照下表定位:

症状可能原因处理方法
根本不触发description 太模糊,没覆盖用户真实问法用用户真实会问的话术重写 description,加入关键词
乱触发缺少"不适用场景",边界不清在正文明确列出不适用场景
触发但执行错步骤太抽象,缺示例补"输入 → 输出"具体示例,强化步骤
输出格式不稳输出规范太宽松用固定标题、固定字段钉死输出形式
执行到一半跑偏步骤间缺中间校验在关键步骤后加自检环节

排查顺序建议:先确认三件套(Base URL + Key + Model ID)都对,再看技能列表里有没有这个 Skill,最后才调 description 和正文。顺序反了,会在错误的地方浪费时间。

6. 把 SKILL 用起来:从单个技能到 Plugin 化复用

技能跑通之后,下一步是让它真正融入日常。单个 SKILL 解决一类任务,多个 SKILL 组合起来,就可以考虑用 Plugin 打包分发。

6.1 触发行为的控制

Skill 不是装上就全开。自动触发是默认行为,Claude 根据请求语义自行判断;手动触发则是你在对话里显式点名某个技能。对那些"重要但容易漏触发"的技能,可以养成手动点名的习惯,别完全依赖自动匹配的命中率。

影响触发的关键因素有三个:description 质量、是否显式启用或禁用、作用范围。description 越贴合用户真实问法,自动触发越准;作用范围设得越合理,越不会在无关项目里误触发。

6.2 技能的查看、停用与删除

技能多了要管理。定期查看技能列表,确认哪些还在用;对来源不明的第三方 Skill 保持审慎,安装前读一遍它的 SKILL.md,尤其是带脚本的技能,别直接运行来历不明的逻辑。

停用是让某个 Skill 暂时不参与自动触发,文件还在;删除是彻底移除。删除前确认没有团队其他成员依赖它,尤其是放在项目级目录、已经提交到仓库的技能。

6.3 从 Skill 到 Plugin

当你攒了一组相互配合的技能,比如 commit 规范、代码审查清单、接口文档模板,就可以把它们打包成一个 Plugin。Plugin 是筐,Skill 是筐里的工具。打包后,团队里其他人装一个 Plugin 就能拿到整套能力,不用一个个手动放 SKILL.md。

这也是 SKILL 技能设计的初衷:把重复且有套路的工作从对话里沉淀下来,变成随取随用的能力模块。精准的描述、清晰的步骤、典型的示例,三者缺一不可,再加上不断迭代,你就能让 Claude Code 在你最常见的那几类任务上稳定输出。

如果你还在选模型入口阶段,可以先去 https://taotoken.net/chat 试几句感受效果;准备长期在 Claude Code 里跑编码和 Agent 任务,可以看 https://taotoken.net/coding-plan ;接入细节和参数说明在 https://taotoken.net/doc 有完整文档。把底座配好,再把 SKILL 一个个沉淀下来,这套组合会越用越顺。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询