如何写一个自己的skill

如何写一个自己的skill为什么同样用 Claude 你的效率差这么多 本文将会带大家了解 Skill 不管你是什么语言 没写过的情况下 你都可以学会他 如果你用过 Claude Code 大概率遇到过这样的场景 每次让 Claude Code 写代码 让部分代码风格保持一致 你会告诉他项目的编码风格 或者是一段样本代码 或者是指定某个文件 也就是 重复描述具体的某一流程 为了解决这个问题

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



为什么同样用 Claude,你的效率差这么多,本文将会带大家了解 Skill,不管你是什么语言,没写过的情况下,你都可以学会他

如果你用过 Claude Code ,大概率遇到过这样的场景: 每次让 Claude Code 写代码,让部分代码风格保持一致, 你会告诉他项目的编码风格,或者是一段样本代码,或者是指定某个文件;

也就是,重复描述具体的某一流程,为了解决这个问题,那么就要引出今天我们要说的 Skill

核心速览: Skill 的本质就是一个文件夹里面放了一个 SKILL.md 文件,通过编写重复的指令,Claude 就会识别这个文件,执行特定的功能

在开始讨论 Skill 之前,我们要区分一个事情,它和CLAUDE.md 的区别是什么,CLAUDE.md 里的内容每次对话都会加载,而 Skill 只在需要时才加载,不用的时候几乎不占上下文。

Skill 遵循的规范 (Specification - Agent Skills)。

位置 路径 适用范围 个人 ~/.claude/skills/ /SKILL.md 你所有的项目 项目 .claude/skills/ /SKILL.md 仅当前项目 插件 /skills/ /SKILL.md 启用了该插件的地方

接下来我们就按项目级别的 Skill 来给大家说一下,如何实现,这也是你能看完本文快速能落地的方案,聪明的你,就知道如何去提取 Skill 然后省下自己的token,并且在简历猛吹,自研xxxSkill 这是我的路径: .claudeskillsmy-skillSKILL.md

 
  
    
    
my-skill/ 

└── SKILL.md

 

SKILL.md 由两部分组成------YAML 头部(frontmatter)和 Markdown 正文:

--- 

name: hello-world

description: 一个示例 skill,用于演示基本结构

当用户打招呼时,用中文回复,并附上一个冷笑话。

 

创建之后,你可以通过 /hello-world 手动调用,也可以让 Claude 在匹配到 description 时自动调用。

你执行的时候 在对话框输入 / ,就可以得到下图:

注意: 如果没有,记得创建好上面的步骤,重启你的 Claude

最终执行,我们将得到:

常用 frontmatter 字段速查:

字段 作用 name 名称,也是 /hello-world 的名字 description 最重要的字段,Claude 根据它决定是否加载 disable-model-invocation 设为 true 则只能手动调用,Claude 不会自动触发 allowed-tools 该 skill 激活时允许 Claude 免确认使用的工具 context 设为 fork 可在子代理中隔离运行

具体的东西,可以在上面的规范中去查询,值得注意是 description 你尽量要写的通俗易懂,上图的内容,你可以再去看看,就知道指的是哪里

掌握基本结构之后,关键在于写得 "好用"。以下是从官方文档和实践中总结的核心要点:

第一,description 是触发器,不是摘要。

Claude 决定是否加载一个 Skill,完全依赖 name + description。不要写 "这是一个帮助生成代码的工具",而要写 "生成 Vue 3 组件。当用户要求创建组件、页面或 Vue 文件时使用"。把触发词和使用场景写进去,Claude 才能准确匹配。说白了,把 Claude 当成你的合伙人,他要阅读这个说明书,才能懂你意思。

第二,指令用命令语气,按步骤编号。

写 "提取颜色主题",不要写 "你应该提取颜色主题"。

第三,SKILL.md 控制在 500 行以内。

当你的项目特别庞大的时候,此时你的内容也会越来越多,我们可以把详细的参考资料、模板、示例拆到同目录下的独立文件里,在 SKILL.md 中引用它们:

 
  
    
    
my-skill/ 

├── SKILL.md # 主指令(必须) ├── template.vue # 组件模板 ├── examples/ │ └── sample.vue # 示例输出 └── scripts/

└── validate.sh # 辅助脚本

SKILL.md 中这样引用:

 参考资料 
 

第四,善用动态注入。

!`command` 语法可以在 skill 加载前执行 shell 命令,把输出注入到提示词中:

 
  
    
    
--- 

name: pr-review

description: 审查当前 PR 的代码变更

当前变更

!git diff --stat

变更详情

!git diff

请审查以上代码变更,关注潜在的 bug 和规范问题。

 

Claude 看到的不是命令本身,而是命令的输出结果。

第五,用 $ARGUMENTS 接收参数。

 
  
    
    
--- 

name: fix-issue description: 修复 GitHub issue

disable-model-invocation: true

修复 GitHub issue #$ARGUMENTS:

  1. 阅读 issue 描述
  2. 实现修复
  3. 编写测试
  4. 创建 commit
 

调用 /fix-issue 42 时,\(ARGUMENTS 会被替换为 42。也支持 \)0$1 按位置取参数。

编号可以让 Claude 按顺序执行,减少遗漏。

第六,区分"谁来调用"。

有副作用的操作(部署、发消息)加 disable-model-invocation: true,防止 Claude 自作主张。

建议从你日常最重复的流程开始操作,把它封装成第一个 Skill。写好之后提交到项目的 .claude/skills/ 里,这样团队成员都能受益。(前提不是古法编程)

注意: description 写成触发条件而非摘要;指令用命令语气并编号;大文件拆分引用;善用动态注入和参数传递。

小讯
上一篇 2026-04-19 19:49
下一篇 2026-04-19 19:47

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/271577.html