这是我日常使用 10 个月后的完整配置:技能 (Skills)、钩子 (Hooks)、子智能体 (Subagents)、MCPs、插件,以及真正有效的工作流。
自 2 月份实验性推出以来,我一直是 Claude Code 的狂热用户,并完全使用 Claude Code 与 @DRodriguezFX 一起赢得了 Anthropic x Forum Ventures 纽约黑客松(构建了 PMFProbe)。
1. 技能与命令 (Skills and Commands)
技能的操作方式类似规则,但被限制在特定的范围和工作流中。当你需要执行特定工作流时,它们就是提示词的“速记符”。
场景:在用 Opus 4.5 进行了长时间编码后,想清理死代码和散落的 .md 文件?
运行 /refactor-clean。
需要测试?运行 /tdd, /e2e, /test-coverage。
技能和命令可以在同一个提示词中串联使用。
我可以制作一个在检查点更新代码图谱 (Codemaps) 的技能——这是一种让 Claude 快速导航代码库而无需消耗上下文进行探索的方法。
- Skills (技能):
~/.claude/skills- 更广泛的工作流定义。 - Commands (命令):
~/.claude/commands- 快速可执行的提示词。
# 示例技能结构 ~/.claude/skills/
pmx-guidelines.md # 项目特定模式
coding-standards.md # 语言最佳实践
tdd-workflow/ # 多文件技能,包含 README.md
security-review/ # 基于检查清单的技能
2. 钩子 (Hooks)
钩子是基于触发器的自动化,在特定事件发生时启动。与技能不同,它们被绑定在工具调用和生命周期事件上。
钩子类型:
PreToolUse- 工具执行前(验证、提醒)PostToolUse- 工具完成后(格式化、反馈循环)UserPromptSubmit- 发送消息时Stop- Claude 完成响应时PreCompact- 上下文压缩前
示例:在运行耗时命令前提醒使用 tmux
{
"PreToolUse": [
{
"matcher": "tool == \"Bash\" && tool_input.command matches \"(npm|pnpm|yarn|cargo|pytest)\"",
"hooks": [
{
"type": "command",
"command": "if [ -z \"$TMUX\" ]; then echo '[Hook] Consider tmux for session persistence' >&2; fi"
}
]
}
]
}
专家提示: 使用 hookify 插件通过对话方式创建钩子,无需手写 JSON。
3. 子智能体 (Subagents)
子智能体是你的协调者(主 Claude)可以委派任务的进程,具有有限的范围。它们可以在后台或前台运行,为主智能体释放上下文。
子智能体与技能配合得很好——一个能够执行你技能子集的子智能体可以自主工作。它们还可以通过特定的工具权限进行沙盒化。
# 示例子智能体结构 ~/.claude/agents/
planner.md # 功能实现规划
architect.md # 系统设计决策
tdd-guide.md # 测试驱动开发
code-reviewer.md # 质量/安全审查
security-reviewer.md # 漏洞分析
refactor-cleaner.md # 清理代码
4. 规则与记忆 (Rules and Memory)
你的 .rules 文件夹保存了 Claude 应始终遵循的最佳实践 .md 文件。
- 单一 CLAUDE.md: 所有内容在一个文件中。
- Rules 文件夹: 按关注点分组的模块化
.md文件(推荐)。
~/.claude/rules/
security.md # 无硬编码密钥,验证输入
coding-style.md # 不可变性,文件组织
testing.md # TDD 工作流,80% 覆盖率
agents.md # 何时委派给子智能体
5. MCPs (模型上下文协议)
MCP 将 Claude 直接连接到外部服务。例如:Supabase MCP 让 Claude 直接在上游运行 SQL,而无需复制粘贴。
关键:上下文窗口管理 (Context Window Management)
对 MCP 要挑剔。我虽然配置了很多,但禁用了未使用的。如果启用了太多工具,你压缩前的 200k 上下文窗口可能只剩下 70k。性能会显著下降。
经验法则: 配置 20-30 个 MCP,但保持启用状态的少于 10 个(或少于 80 个活跃工具)。
6. 插件 (Plugins)
插件将工具打包以便安装。LSP 插件特别有用,如果你在编辑器之外运行 Claude Code,语言服务器协议 (LSP) 能提供实时类型检查和跳转定义。
# 启用插件示例
typescript-lsp@claude-plugins-official # TypeScript 智能提示
hookify@claude-plugins-official # 对话式创建钩子
mgrep@Mixedbread-Grep # 比 ripgrep 更好的搜索
7. 技巧与窍门 (Tips and Tricks)
键盘快捷键
- Ctrl+U - 删除整行
- ! - 快速 Bash 命令前缀
- @ - 搜索文件
- / - 启动斜杠命令
- Tab - 切换思考过程显示
并行工作流
/fork- 分叉对话以并行执行不重叠的任务。- Git Worktrees - 针对重叠任务。每个 Worktree 是独立的检出,避免 Git 冲突。
Tmux 用于长时间运行命令
让 Claude 启动服务器并在 tmux 中监控日志,而不是阻塞当前会话。
mgrep > grep
mgrep 是 ripgrep 的重大改进。它支持本地和网络搜索。
mgrep "function handleSubmit" # 本地搜索
mgrep --web "Next.js 15 app router changes" # 网络搜索
沙盒模式 (Sandboxing)
对高风险操作使用沙盒模式。反之,使用 --dangerously-skip-permissions 让 Claude 自由漫游(需小心)。
8. 编辑器集成 (On Editors)
虽然不是必须的,但搭配编辑器能解锁实时文件跟踪。
Zed (我的首选)
Rust 编写,轻量快速。Agent Panel Integration 让你可以实时跟踪 Claude 的更改。使用 CMD+Shift+R 快速访问自定义斜杠命令。
VSCode / Cursor 也是可行的选择,特别是配合官方扩展。
9. 我的完整设置 (My Setup)
MCP Servers 配置 (User Level)
我有 14 个已配置,但每个项目只启用约 5-6 个。
{
"github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
"supabase": { "command": "npx", "args": ["-y", "@supabase/mcp-server-supabase@latest", "--project-ref=YOUR_REF"] },
"memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] },
"sequential-thinking": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"] },
"vercel": { "type": "http", "url": "https://mcp.vercel.com" },
"clickhouse": { "type": "http", "url": "https://mcp.clickhouse.cloud/mcp" }
// ... 其他配置见原文
}
关键钩子 (Key Hooks)
{
"PreToolUse": [
// Tmux 提醒
{ "matcher": "npm|pnpm|yarn|cargo|pytest", "hooks": ["tmux reminder"] },
// 阻止不必要的 .md 文件创建
{ "matcher": "Write && .md file", "hooks": ["block unless README/CLAUDE"] },
// git push 前审查
{ "matcher": "git push", "hooks": ["open editor for review"] }
],
"PostToolUse": [
// Prettier 自动格式化
{ "matcher": "Edit && .ts/.tsx/.js/.jsx", "hooks": ["prettier --write"] },
// TypeScript 检查
{ "matcher": "Edit && .ts/.tsx", "hooks": ["tsc --noEmit"] }
]
}