工具大全
Claude 指南作者:Coocon2026年7月28日331 次阅读约 3 分钟阅读

Claude Code Skills 完全指南:用 SKILL.md 把重复工作流变成一条斜杠命令

如果你发现自己每周都在对 Claude Code 重复同一段长指令——"先拉数据、再按这个格式出报表、注意这三个坑"——那你需要的不是更好的提示词,而是一个 Skill。

Skill 是 Claude Code 的可复用指令包:把一套工作流写成 SKILL.md 文件放进约定目录,之后既可以用 /技能名 手动调用,也可以让 Claude 在识别到匹配任务时自动加载。它解决的是"专家经验没法沉淀"的问题:你调教好的工作流,从此跟着项目走,团队里每个人(以及每次新会话)都能直接用。

Skill 的文件结构:一个目录、一个 SKILL.md

一个最小的 Skill 长这样:

.claude/skills/
└── deploy-check/
    └── SKILL.md

SKILL.md 由 frontmatter 和正文两部分组成:

---
name: deploy-check
description: 部署前检查清单。当用户说"准备部署"、"发布前检查"或要求上线时使用。
---

按顺序执行以下检查,任何一步失败都停下来报告:

1. 运行 `npm run typecheck`,确认无类型错误
2. 运行 `npm run build`,确认构建通过
3. 检查 git status,列出未提交的文件
4. 对照 CHANGELOG 确认版本号已更新

两个存放位置,作用域不同:

  • 项目级.claude/skills/<名称>/SKILL.md,跟着仓库走,团队共享
  • 个人级~/.claude/skills/<名称>/SKILL.md,跨项目生效,只有你可见

description 是灵魂:它决定 Skill 什么时候被自动加载

Skills 有两种触发方式。手动触发很直白:会话里输入 /deploy-check 即可。真正的巧思在自动触发——Claude 会在每轮对话里比对所有技能的 description,任务匹配就自动加载对应 SKILL.md。

所以 description 不要写成功能简介,要写成触发条件清单

# ❌ 弱 description:Claude 不知道什么时候该用
description: GA4 数据分析技能

# ✅ 强 description:把用户可能说的话写进去
description: 分析站点 GA4 流量数据时使用。触发词包括"看访问量"、
  "哪个页面最火"、"流量来源"、"改版效果"、pageviews、traffic。

这和给人写文档的思路相反:给人看的文档解释"是什么",给 Claude 看的 description 要穷举"什么时候用"。

渐进式加载:Skills 是上下文管理利器

Skills 与 CLAUDE.md 的关键区别在加载时机。CLAUDE.md 每次会话全文进上下文,写太长会持续消耗 token;而 Skill 只有名称和 description 常驻,正文在被触发时才加载。

这带来一个实用的架构原则:

  • CLAUDE.md 放"永远适用"的规则:代码风格、构建命令、红线约束
  • Skills 放"特定场景"的流程:发布检查、数据分析、报表生成、某个子系统的操作手册

一个技能目录还可以带附属文件(参考文档、脚本),在 SKILL.md 里引用,Claude 需要时才去读——重文档的工作流也不会撑爆上下文。

Skills、hooks、子代理:三兄弟怎么分工

三个机制经常被混淆,按"确定性"排一下就清楚了:

机制 本质 适用场景
Hooks 确定性 shell 命令,在事件点必然执行 提交前 lint、写文件后自动格式化
Skills 按需加载的指令,Claude 照着做 多步骤流程、领域操作手册
子代理 独立上下文的分身,干完活汇报结果 大范围搜索、并行探索、隔离的重活

判断口诀:必须每次都发生的用 hook,需要 Claude 理解和随机应变的用 skill,会污染主上下文的重活交给子代理。三者可以组合——比如一个 skill 的正文里就可以写"把这一步派给子代理执行"。

三个可以直接抄的实战技能

1. 发布检查(deploy-check):上文的例子。价值在于把"部署前该做什么"从某个人的脑子里搬进仓库。

2. 数据报表(weekly-report)

---
name: weekly-report
description: 生成周报时使用。触发词:"周报"、"weekly report"、"这周数据"。
---

1. 运行 `npm run ga:report -- top-pages --days 7`
2. 与上周对比,标出涨跌超过 20% 的页面
3. 按"结论先行"的格式输出:先一句话总结,再放数据表
4. 数据延迟 24-48 小时,报表末尾必须注明统计截止日期

3. 排障手册(debug-build):把项目特有的坑写进去——"构建失败先查 Node 版本是否 20+"、"Prisma 报错先跑 db:generate"。新人(和新会话)从此不用重新踩一遍坑。

上手建议

从你最近一周重复说过两次以上的指令开始:把它原样粘进一个 SKILL.md,写好触发条件,下次用 /技能名 调用。跑通一次后再回头打磨步骤描述。Skills 的回报是复利的——每沉淀一个,之后每次会话都在赚。

想系统了解 Claude Code 的其他进阶能力,可以接着读站内的《Claude Code 进阶实战:10 个官方技巧》和《Claude Code 的记忆与命令》。

相关文章

Claude Code 报错 temporarily unavailable, so auto mode cannot determine the safety of bash 怎么解决

Claude Code auto 模式弹出「temporarily unavailable, so auto mode cannot determine the safety of bash」?先说结论:不是你的命令危险,是安全判定器(一次额外的模型调用)暂时联不上。本文给出四步处理、模型名×工具名×原因的完整变体速查,以及只读操作为何不受影响的机制解释。

llmclaude-code+3
pitfalls2026年9月4日4 min
290

复现一条能打穿 Claude Code auto 模式的注入链:模型拒跑恶意二进制,却自写代码把自己坑了

embracethered 8 月底放出一条攻击链,让一句『总结这个网页』把 auto 模式的 Claude Code 拖到 60~80% 的代码执行成功率——而 Anthropic 委托第三方测出的数字是 0.00%。我在隔离环境里把这条链拆开逐段实测:诱导模型从 WebFetch 降级到 curl 的分流端点、以及最关键的一环——模型『拒绝运行陌生二进制、改自己写 Python 解码器』这个安全决定本身,反而踩中了同目录下的同名 struct.py 投毒。确定性部分(分流 + 同名模块投毒 + 缓解对照)在本机完整复现并给出真实证据;live 端我这台机器因判定器限流 fail-closed 而没能跑通完整 RCE,如实标注。文末给出真正有用的缓解手段。

claude-codeauto-模式+5
hands-on2026年8月31日9 min
294

抓包拆开 Claude Code auto 模式的判定器:11 万字系统提示词逐段解析

上一篇复测确认了 auto 模式在放行 Bash 前会调一次会话模型当判定器,但那个判定器收到的到底是什么,一直是黑盒。这次我用本地日志代理把判定请求整包抓了下来:一份 116,879 字符的系统提示词,开头写着 You are a security monitor for autonomous AI coding agents。本文逐段引用抓包原文,拆开它的威胁模型、两级规则(1 条 HARD BLOCK / 68 条 SOFT BLOCK / 17 条 ALLOW)和两阶段判定流程——第一阶段只评估危害、明确不看用户意图,第二阶段才叠加意图和豁免。附三张真实终端截图和抓包证据,所有数字均来自本次读出,未经估计。

claude-code提示词+5
hands-on2026年8月30日11 min
316
把家里的 Mac mini 变成 24 小时在线的 Claude Code 工作站:claudecodeui + SSH 反向隧道,手机浏览器随时接管

把家里的 Mac mini 变成 24 小时在线的 Claude Code 工作站:claudecodeui + SSH 反向隧道,手机浏览器随时接管

家里的 Mac mini 常年开机跑 Claude Code,人在外面怎么用浏览器接管会话?这是一套上线一周、每天在用的真实方案:claudecodeui 做 Web 界面(选型对比了官方 Web 版、ttyd、code-server),SSH 反向隧道把它推到 VPS,nginx 加 TLS 和登录限流反代成一个普通网址。附完整配置、真实运行数据(隧道五天零掉线、内存 170MB)、上线一周就踩到并自己修掉的 <synthetic> 占位符 bug,以及「为什么不用 Tailscale」的正反论证。

claude-codeclaude-code-lab+7
claude2026年8月29日10 min
385