Repository navigation
Skills
英文名:
skills· 领域:插件与扩展 · 返回功能索引
Skill 是一份写给 Claude 的「操作手册」:一个文件夹里放一个 SKILL.md,写清楚什么时候用、怎么做。之后:
- 你输入
/名字就能直接调用; - Claude 看到描述匹配的请求(例如你说「帮我写个 changelog」),也会自己调用。
平时每个 skill 只有一行描述放在系统提示里,完整内容只在用到时才加载,所以装多个也不会很占上下文。
1. 建文件。 在项目里建 .claude/skills/changelog/SKILL.md:
---
name: changelog
description: Write release notes from the git log since the last tag. Use when the user asks for a changelog or release notes.
---
1. Run `git log --oneline $(git describe --tags --abbrev=0)..HEAD`.
2. Group commits into Features / Fixes / Other.
3. Write the result to CHANGELOG.md.description 很关键:Claude 靠它判断什么时候该用这个 skill,写清楚「做什么 + 什么时候用」。
2. 让会话看到它。 新会话会自动加载;已经开着的会话输入 /reload-skills 重读。输入 / 加名字开头,补全列表里就能看到:

注意别和内置命令重名(例如 /release-notes 是内置命令)。
3. 用 /skills 查看和开关 skill,按来源分组,并显示每个的描述占多少 token。用 ↑/↓ 选中一个,按 Enter 或空格在四种状态间切换:

| 状态 | 列表里显示 | 效果 |
|---|---|---|
| on | ✔ hello |
默认,你和 Claude 都能用 |
| name-only | ✔ hello · name-only |
Claude 只看到名字,看不到描述,省 token |
| user-invocable-only | ✔ hello · user-only |
只能你输入 /hello 用,Claude 调用会被拒绝 |
| off | ◯ hello |
完全停用;输入 /hello 会提示 Skill "hello" is disabled via skillOverrides…
|
切换结果写进 .claude/settings.local.json 的 skillOverrides(例如 {"skillOverrides":{"hello":"off"}}),切回 on 会删掉这一项。插件里的 skill 跟随插件开关,不在这里单独设置。
4. 调用。 你输入 /changelog 直接运行。Claude 自己调用项目里的 skill 时,第一次会问你是否允许;选第 2 项以后就不再问,规则 Skill(changelog) 写进 .claude/settings.local.json:


装的 skill 越多,每轮系统提示越长。/skill-doctor 列出本会话加载的 skill、各自占多少上下文、过去 7 天用了多少 token、调用次数和最近一次使用:

从没用过的会被点名,可以在 /skills 里切到 off 停用,或者直接删掉。
| 位置 | 作用范围 |
|---|---|
~/.claude/skills/<名字>/SKILL.md |
你自己的所有项目 |
.claude/skills/<名字>/SKILL.md |
当前项目(可提交进仓库给团队用) |
插件的 skills/<名字>/SKILL.md
|
装了该插件的地方,名字带插件前缀,如 /my-plugin:review
|
| 内置 | 随程序提供,如 /batch、/update-config、/dataviz(图表和仪表盘设计规范,取自官方 2.1.303) |
旧的 .claude/commands/<名字>.md 也按同样规则读取。
| 字段 | 作用 |
|---|---|
name / description
|
名字和描述;描述决定 Claude 何时自动使用 |
when_to_use |
补充说明使用时机 |
argument-hint |
补全时提示参数,正文里用 $ARGUMENTS 取用户输入 |
allowed-tools / disallowed-tools
|
运行这个 skill 时额外放行 / 禁止的工具 |
model / effort
|
运行时使用的模型、推理强度 |
disable-model-invocation: true |
只能你手动 /名字 调用,Claude 不会自己用 |
user-invocable: false |
不出现在 / 菜单里,只给 Claude 用 |
paths |
只在处理匹配路径的文件时才提供 |
context: fork |
在独立的子代理里运行,不污染主对话(见下节) |
复杂的 skill 可以交给子代理执行,主对话只收到结果:
---
description: Run the review in a separate agent
context: fork
agent: reviewer
background: false
---
Review $ARGUMENTS.-
agent:用哪个子代理,名字对应.claude/agents/<名字>.md;不写按默认规则选。值会转成字符串,agent: 42选名为"42"的代理,建议直接写字符串。 -
background:交互模式默认在后台运行;false表示等它跑完再继续。
子代理的更多说明见 agents.md。
-
-p非交互模式下,Claude 调用项目 skill 也会要求权限,官方此时直接放行(未修)。
- 回归测试:
bun test --no-env-file ./src/skills/loadSkillsDir.forkAgent.test.ts;对照记录见 fork agent 类型专项。 - 仓库自带项目级 skill
.claude/skills/claude-code-feature-validation/,用于功能验收,不随 binary 分发。 - 官方文档:Anthropic skills。
画面来自实际运行,模型回复由测试用假 API 生成(FAKE_DONE;提示词里的 DO<<…>> 是让假 API 调用工具的指令)。
本页由 docs/features/skills.md 自动同步,请在仓库中修改。
- Agent SDK 与 stream-json 控制协议
- Agent Teams
- Agent 与后台任务
- 自动模式(Auto mode)
- 背景会话、daemon 与 agents 视图
- 自定义 UI / Branding 与 Status line
- 构建、发布与终端验收工具
- Channels
- Codex Apps
- 自动压缩窗口
- 调试日志
- /diff 视图
- Direct Connect
- Effort 档位
- 自主 Goal
- Hooks 事件、匹配与输出校验
- 快捷键与 Vim 模式
- MCP 配置与认证
- 记忆:auto memory 与 SQLite FTS5 检索
- 模型自动发现与 Gateway
- Mods 远程客户端(stream-json)
- Mods / Function Hooks
- Monitor 工具
- OpenAI / Codex provider
- 独立会话通信
- 权限规则、权限模式与 Safe mode
- 插件与 Marketplace
- Prompt context 与 Tool search
- 请求韧性:重试、回退模型与默认模型
- Bash 沙箱
- 定时任务:Cron、/loop 与 ScheduleWakeup
- 会话命令
- Skills
- SSH Remote
- 遥测与反馈
- 终端程序状态(OSC 7501)
- Terminal 工具
- 用量、成本与状态
- VS Code 插件
- Dynamic Workflow