Claude Code开发者

用了 10 个月 Claude Code,我学到了什么

从技能、钩子到 MCP 管理,这篇文章归纳了长期使用 Claude Code 后最值得分享的配置哲学与实战技巧。把配置当成微调,而非架构工程。

2026-04-01·阅读约 10 分钟

📖 阅读笔记 · 原文来源

本文是阅读 @affaanmustafa 推文长文《The Shorthand Guide to Everything Claude Code》后的归纳整理。原作者在 Anthropic × Forum Ventures Hackathon 中获奖,是深度使用 Claude Code 10 个月的实战总结。文中配置示例、技巧与观点均源于原文,经二次整理与补充说明,非原创内容

原文仓库:github.com/affaan-m/everything-claude-code

Claude Code 是一个运行在终端里的 AI 编程助手,但它远不只是"更快的代码补全"。它有一套完整的配置体系——技能、钩子、子代理、MCP——让 AI 真正嵌入你的工作流。

本文的核心观点只有一句话:把配置当成微调,而非架构工程。


01 · 技能(Skills):给 Claude 装上"工作记忆"

技能本质上是一种受限的提示词,专门用来触发某个特定工作流。与其每次向 Claude 解释"帮我清理死代码并跑测试",不如把这个流程固化成一个技能,一条指令搞定。

技能存放在 ~/.claude/skills/ 目录中,可以通过斜线命令(如 /refactor-clean)调用,而且可以链式组合——在一条提示词里同时触发多个技能。

# 在一条提示词里链式调用多个技能
Run /refactor-clean, /add-tests, /test-coverage

# 技能还可以管理代码导航图,节省上下文
~/.claude/skills/codemap-updater.md

技能的核心价值是减少重复提示。与其每次都向 Claude 重新描述你的工作习惯,不如把最常用的工作流变成技能,让 AI 记住你的偏好。

Claude Code 技能系统示意图

Skills 与 Commands 的区别:

类型 存放位置 触发方式 适用场景
Commands(命令) ~/.claude/commands / 前缀触发 快速执行的单一任务
Skills(技能) ~/.claude/skills 提示词中调用 跨多步骤的宽泛工作流

02 · 钩子(Hooks):让 Claude 在对的时机做对的事

钩子是基于事件触发的自动化机制。与技能不同,它不需要你手动调用,而是在特定事件发生时自动执行——比如工具运行前的验证、工具运行后的格式化,或者对话结束前的提醒。

钩子工作流程示意图

钩子类型一览

类型 触发时机 常见用途
PreToolUse 工具执行前 验证、安全检查,阻止危险命令
PostToolUse 工具执行后 格式化输出、生成反馈循环
UserPromptSubmit 用户发送消息时 注入额外上下文
Stop Claude 完成回复后 发送桌面通知(如 tmux 提醒)
PreCompact 上下文压缩前 保存关键状态

推荐用法:hookify 插件

作者特别推荐 hookify 插件——与其手写 JSON 配置,不如让 AI 帮你对话式地生成钩子

# 安装 hookify
/plugin install hookify

# 直接用自然语言描述你想要的行为
/hookify Warn me when I use rm -rf commands
/hookify Don't use console.log in TypeScript files
/hookify Warn before any command containing "production"

hookify 会自动在 .claude/ 目录下生成对应的 Markdown 规则文件,无需重启,立即生效

生成的规则文件格式(YAML 头部 + Markdown 正文):

---
name: block-dangerous-rm
enabled: true
event: bash
pattern: rm\s+-rf
action: block
---
⚠️ **危险的 rm 命令被检测到!**
请确认路径是否正确,并考虑是否有更安全的替代方案。

💡 小技巧:直接运行 /hookify(不带参数),它会自动分析当前对话历史,找出你曾经纠正过 Claude 的地方,然后帮你自动生成对应规则。


03 · 子代理(Subagents):把工作甩给"小弟"

子代理是你的主 Claude(编排器)可以委托任务的独立代理实例。它们在后台或前台运行,拥有受限的工具权限,不会占用主代理的上下文窗口。

子代理架构示意图

子代理的最佳实践:工具少 → 执行专注。一个只负责代码审查的子代理,不应该同时拥有数据库访问权限。

# 子代理目录结构示例
~/.claude/agents/
  planner.md              # 拆解功能任务
  architect.md            # 系统设计决策
  code-reviewer.md        # 质量与安全审查
  build-error-resolver.md # 专注错误分析
  refactor-cleaner.md     # 死代码清理
  doc-updater.md          # 保持文档同步

子代理与技能配合使用效果最佳——可以把一部分技能委托给子代理执行,主代理只负责调度与审查。


04 · MCP:强大但必须节制使用

MCP(模型上下文协议)让 Claude 直接连接外部服务——数据库、GitHub、Supabase 等——无需复制粘贴,直接在对话中操作数据。这是 Claude Code 最强大的能力之一。

MCP 连接示意图

⚠️ 关键警告:MCP 会大量消耗上下文

你的上下文窗口在压缩前可能只有 20 万 token,但如果同时激活太多 MCP,实际可用空间可能只剩 7 万。性能会显著下降。

作者的实践经验:配置 20–30 个 MCP,但每次项目只激活 5–6 个,通过项目级 .claude.jsondisabledMcpServers 字段来管理。

{
  "disabledMcpServers": [
    "playwright",
    "cloudflare-workers-builds",
    "clickhouse",
    "tableson-mcp"
  ]
}

经验法则:安装 20–30 个,激活不超过 10 个,工具总数控制在 80 个以内。


05 · 规则与记忆:让 Claude 记住你的习惯

Claude 的 rules 文件夹存放 .md 格式的最佳实践,它每次都会遵守。有两种组织方式:

方式一:单文件 CLAUDE.md — 把所有规则放在一个文件里,适合规则较少或个人项目。

方式二:按关注点拆分 — 把安全、代码风格、Git 规范等分别放在独立文件,模块化管理,更易维护。

~/.claude/rules/
  security.md       # 禁止硬编码密钥,验证输入
  coding-style.md   # 可测试性、文件组织
  testing.md        # 100% 覆盖率要求
  git-workflow.md   # 常规提交流程
  agents.md         # 何时委托给子代理
  performance.md    # 模型选择权衡

推荐规则示例:

# coding-style.md
- 代码库中不使用 emoji
- 前端避免使用颜色常量
- 部署前必须先跑测试
- 优先考虑模块化代码而非超大文件
- 永远不要提交 console.log

06 · 技巧与快捷键:真正提升效率的细节

键盘快捷键

快捷键 功能
Ctrl+U 删除整行(比反复按 Backspace 快得多)
! 快速 bash 命令前缀
@ 搜索文件
/ 触发斜线命令
Shift+Enter 多行输入
Esc Esc 中断 Claude / 恢复代码

并行工作流

/fork 分叉对话:同时处理多个非重叠任务,替代顺序排队消息。

Git 工作树(Worktree):在不冲突的情况下并行运行多个 Claude 实例。

# 创建独立工作树,在其中运行独立 Claude 实例
git worktree add ../feature-branch feature-branch
# 现在可以在两个目录中同时运行 Claude,互不干扰

其他高频命令

命令 功能
/rewind 回到上一个状态,快速撤销
/fork 分叉当前对话
/compact 手动触发上下文压缩
/checkpoints 文件级撤销点
mgrep 同时支持本地+网络搜索
mgrep "function handleSubmit"        # 本地搜索
mgrep --web "Next.js router changes" # 网络搜索

07 · 核心结论:五条值得记住的原则

01. 把配置当微调,不是架构 — 文件组织要简单清晰,不要过度工程化。

02. 上下文窗口是稀缺资源 — 关闭不用的 MCP 和插件,是最直接的性能优化。

03. 并行执行才是正确姿势 — 用 /fork 分叉对话,用 git 工作树运行多实例。

04. 把重复工作自动化 — 格式化、lint、提醒这类事,应该交给钩子,不要每次手动触发。

05. 给子代理限定工具范围 — 工具越少,执行越专注,结果越可控。


Claude Code 最大的误区,是把它当成一个"回答问题的聊天框"。它真正强大的地方,是当你把工作流的知识和规范都编码进配置里,让它成为一个真正了解你项目的协作者。

从今天起,先做一件事:写下你最想让 Claude 记住的一条规则,放进 CLAUDE.md 其余的,随着使用慢慢积累。


参考资源

← 返回文章列表