ai-landing-tutorial

Claude Code + Skill 实战心法

Claude Code + Skill 实战心法,作为本目录 README 的补充——README 讲「skill 仓库怎么用」,这里讲「Claude Code 怎么用得顺手、skill 怎么写得值钱」。

不是金科玉律,是一般情况下有效的起点。用久了你会长出自己的直觉。


一、Claude Code 最佳实践心法

围绕一个核心约束展开:Claude 的上下文窗口(约 200K 词元)会快速填满,填满后性能下降。 几乎所有心法都在和这个约束博弈。

1. 验证驱动:给它验证手段,别只信任输出

这是提升质量很有效的单一策略。没有验证手段时,Claude 会产出看起来对但实际跑不起来的代码,而你成了唯一的反馈回路。

一句话:验证 > 信任。

2. Plan Mode 是基础操作,不是可选步骤

让 Claude 直接跳到编码,可能产出解决错误问题的代码。推荐四阶段:探索 → 计划 → 编码 → 提交

3. 上下文是最贵的资源:/clear 是你最好的朋友

4. 子代理是你的上下文防火墙

子代理运行在独立的上下文窗口里,有自己的系统提示和工具权限。它去探索代码库、读文件,只返回摘要到主会话,不污染主上下文。

5. 五件套辨析:CLAUDE.md / Skills / Sub-agents / Hooks / MCP

理解这五个扩展机制的区别,是高效配置环境的关键。别一锅炖。

机制 定位 加载方式 适合什么
CLAUDE.md / rules/ 团队规范 每次会话全量加载 / 按路径匹配 所有开发者必须遵守的规则
Skills 领域知识 + 工作流 description 常驻,正文按需加载 每天做超过一次的重复工作流
Sub-agents 独立上下文里的专家 独立上下文窗口 隔离探索、并行处理
Hooks 确定性保证 工作流节点自动触发 必须自动执行的操作(格式化、保护文件)
MCP 外部数据源连接 连接时加载 连数据库、Notion、Figma 等

三个易混的辨析:

6. 配置是长期杠杆:投入一次,每次会话都回报

7. Headless 模式:把 Claude 变成可编程函数

claude -p 让 Claude 在任何无交互环境里跑——CI 管道、pre-commit hook、自动化脚本、定时任务。本质是 f(输入) → 输出

# 管道输入
cat error.log | claude -p "简洁地解释这个构建错误的根因"
git diff main | claude -p "审查这些变更中的安全问题"

# JSON 输出 + 权限控制 + 系统提示定制
git diff main...HEAD | claude -p "Review this PR diff" \
  --output-format json \
  --allowedTools "Edit,Bash(npm run lint)" \
  --append-system-prompt "Focus on security vulnerabilities."

Fan-out 批量处理:大规模迁移时,先生成任务列表,再循环并行调用,每个任务一个独立 PR。最佳实践——先在 2-3 个文件上测试、优化提示词,再批量执行

8. 多会话并行:一个人当一个团队用

当你用好了一个 Claude,用并行倍增产出。三种方式:多个终端窗口 / Desktop 多窗口 / Git Worktrees(每个会话一个独立工作目录,互不干扰)。


二、Skill 编写与管理方法论

1. skill.md 怎么写:三件套结构

一个 skill = SKILL.md(入口)+ reference/scripts(按需加载)+ 可选 rules/<name>.md(覆盖规则)。

---
name: fix-issue
description: 修复 GitHub Issue(写清「何时触发」,因为 frontmatter 常驻上下文)
disable-model-invocation: true   # 可选:禁止模型自动调用,只能 /fix-issue 显式触发
---
分析并修复 GitHub Issue: $ARGUMENTS。

1. 使用 gh issue view 获取 Issue 详情
2. 搜索代码库找到相关文件
3. 实现修改
4. 编写并运行测试验证修复   ← 末尾强制一步验证
5. 创建描述性的提交消息并创建 PR

两个要点

2. 渐进式披露:三层加载,省词元

skill 采用三层加载,是它比 CLAUDE.md 全量常驻更省的关键:

层级 内容 加载时机 词元消耗
元数据层 所有 skill 的 name + description 始终加载 极低(轻量目录)
指令层 SKILL.md 正文(触发逻辑、流程) 选中后才加载 中等
资源层 Reference 文件(被读取)/ Script 脚本(被执行) 需要时才触发 Reference 按文件大小 / Script 几乎为零

Reference vs Script 怎么选

3. 写好 skill 的四个关键

4. 命名空间与生命周期组织

5. 装 skill 前先过安全审核

skill 可以包含可执行脚本,下载来源不明的 skill 等于让别人在你机器上跑代码。装之前先审


三、多 Agent 实战避坑

把多个 Claude 塞进一个团队并行干活很爽,但坑也不少。以下来自多端并行项目实战。

1. 数量稳妥起见 2-3 个,别一上来就开 5 个

2. Windows 下 fork 是大坑

3. 子 agent 的 model 只认那三个值

Agent 工具的 model 参数只接受 "haiku""sonnet""opus" 三个值——这是 Claude Code 的硬限制

4. SendMessage 别忘了 summary

给 agent 发消息时,如果是字符串消息,必须带 summary 参数,否则报错:

SendMessage(to="agent-name", summary="5-10字摘要", message="消息内容")

summary 是给团队协调用的简短描述,漏了就直接失败——这是多 agent 协作里最常见的低级错误。

5. 团队会断线,要有重建预案

6. 在 CLAUDE.md 里声明你的 agent 偏好

不同模型对 agent 形态有偏好(有的倾向可见的进程级 agent,有的倾向不可见的 worktree agent)。如果你的工作流依赖某一种,在项目 CLAUDE.md 里明确写死

# Agent Configuration
生成子 agent 时,统一用 teammate 系统(team_name + name 参数),
不要用 isolation: "worktree"。这样 agent 可见、可监控。

不写死,模型可能自作主张选了你不想要的那种。


心法速查卡

  1. 验证 > 信任 — 给它验证手段,别盲目信任输出。
  2. 上下文是最贵的资源/clear 是好朋友,子代理是上下文防火墙。
  3. 具体 > 模糊 — 一次精准指令胜过三次模糊修正。
  4. 先探索再编码 — Plan Mode 是投资不是开销。
  5. 配置是长期杠杆 — CLAUDE.md / Hooks / Skills 上花的时间,每次会话都在回报。
  6. 预批准而非跳过权限 — 白名单 > 关掉安全门。
  7. 犯错后更新规则 — 每个错误都是改进 CLAUDE.md 的机会。
  8. skill 三件套 + 渐进式披露 — SKILL.md 精简,详细内容拆子文件按需读。
  9. 装 skill 先审安全 — 别让别人的脚本在你机器上裸跑。
  10. 多 agent 2-3 个起步 — Windows fork、model 限制、SendMessage summary 都是坑。