要创建高效skill,需先从终端日志筛选高频稳定命令(如git checkout、curl等),满足“多次复用、需解释背景、多步操作或跨项目一致”任两条才封装;再按规范建目录、写含yaml元数据和执行逻辑的skill.md文件。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想把每天重复敲的命令、反复解释的需求、固定格式的文档生成流程,变成一个输入名字就能自动执行的Skill,而不是每次都要重新组织语言描述。这需要识别真正高频、结构稳定、可封装的动作,而不是把临时想法随手塞进SKILL.md里。
第一步:从日志里挖出高频动作
打开终端历史记录,执行 history | grep -E "(git|curl|python|jq|sed)",筛出最近3天你手动执行超过5次的命令组合。
重点看那些带固定参数模式的命令,比如 git checkout -b feat/$(date +%Y%m%d)-xxx 或 curl -H "Authorization: Bearer $TOKEN" https://api.example.com/v1/status —— 这类命令天然具备结构化输入和确定性输出,是Skill的最佳候选。
【不要选“偶尔试一次”的操作】 比如某次调试时临时写的Python脚本,没复用过两次以上,就别强行封装。Skill不是代码收藏夹,而是被调用过至少7次的稳定路径。
第二步:判断是否值得封装成Skill
满足以下任意两条,就进入创建流程:
- 每次执行前都要解释背景(例如:“这是给前端同学生成接口Mock数据,字段要按Swagger定义转成JSON Schema”);
- 涉及3个以上连续操作(读文件→解析→改内容→写回→git commit);
- 不同项目里出现相同逻辑(比如多个服务都用同一套日志清洗规则)。
不满足任一条件的,用/btw快速问一句就行,不用动Skill。
第三步:创建Skill目录与基础文件
方法一:全局Skill(所有项目可用)
执行 mkdir -p ~/.claude/skills/extract-api-spec → 在该目录下新建 SKILL.md 文件。
方法二:项目级Skill(仅当前项目生效)
在项目根目录执行 mkdir -p .claude/skills/extract-api-spec → 同样新建 SKILL.md。
【目录名必须全小写+连字符】 比如不能叫 ExtractApiSpec 或 extract_apispec,Claude Code只识别 extract-api-spec 这种命名。
第四步:写SKILL.md——Frontmatter部分
在 SKILL.md 顶部用三横线包裹元数据:
---name: extract-api-specdescription: | 从OpenAPI YAML文件中提取指定路径的请求/响应结构,生成TypeScript接口定义。 当用户说“导出/user接口TS类型”或“把Swagger转成TS”时自动触发。allowed-tools: [Read, Bash, Python]parameters:- name: input_path type: string description: OpenAPI规范文件路径,如./openapi.yaml required: true- name: endpoint type: string description: 接口路径,如 /user/{id} required: true---
这段必须严格按YAML语法写,缩进用空格(不能用Tab),description里第二行开始的空格数要和第一行对齐,否则Claude Code会跳过整个Skill。
第五步:写SKILL.md——正文指令部分
在Frontmatter下方空一行,直接写执行逻辑:
你先用Read工具读取{{input_path}}文件内容 → 调用Python脚本scripts/parse-openapi.py传入{{endpoint}}和文件内容 → 把脚本输出的TS代码写入src/types/{{endpoint|slugify}}.ts → 最后告诉用户“已生成:src/types/user-id.ts”。
注意:所有变量用双大括号包裹,如{{input_path}};路径中不能出现中文或空格;脚本文件要放在Skill目录下的scripts/子目录里,且需有执行权限(chmod +x scripts/parse-openapi.py)。










