Affaan的Claude Code配置解读

Affaan是elizOS的作者,他和David赢得了2025年9月的纽约黑客马拉松,本文的内容来自于他从2025年2月以来的Claude Code使用经历。

Affaan的Claude Code配置解读

几天前,一个标题为 "Claude Code 的一切简明指南" 的帖子在 X 上获得了 900,000 次浏览。超过 10,000 人收藏了它。作者 Affaan Mustafa 将 10 个月的日常 Claude Code 使用提炼成一个单一的、密集实用的帖子,涵盖技能、钩子、副代理、MCPs、插件,以及真正重要的配置。

他从 2 月的实验性推出以来一直在使用 Claude Code,并赢得了纽约的黑客马拉松使用它。所以当我看到 Affaan 的指南爆炸时,我注意了。不是因为它是炒作,而是因为它不是。这是一个在经历我们其他人相同的学习曲线后分享真正有效东西的人。

以下是这个指南的内容,谁写了它,以及我们还能从中挤出什么。

1、Affaan Mustafa 是谁?

在我们进入技术细节之前,知道谁写了这个会有帮助。

Affaan(在 X 上叫 "cogsec")是一个 21 岁的西雅图建设者。从 18 岁开始就在发货产品,当时他创立了一个微软支持的 AI 初创公司 DCUBE。从那时起,他在 Solana 上构建了自主交易代理(一个达到了 7000 万并发观众观看他现场编码的 3800 万 FDV),为 elizaOS(一个 17,000+ 星框架)做出了贡献,并退出了华盛顿大学的博士轨道来继续建设。

最相关于这个指南:他与 David Rodriguez 一起赢得了 2025 年 9 月纽约的 Anthropic x Forum Ventures 黑客马拉松。他们使用 Claude Code 完全构建了 Zenith,一个 AI 驱动的客户发现平台。奖金包括 15,000 美元 Anthropic 积分(任何有那种头脑的人可以在不到一周内烧掉)。

所以当他说"这是我在 10 个月日常使用后的完整设置"时,他不是在理论化。他正在记录在黑客马拉松压力和数月实际工作下幸存下来的东西。

2、构建块

Affaan 的指南涵盖六个核心概念。如果你是 Claude Code 新手,这里是每个做什么以及为什么重要。

2.1 概念:技能和命令

技能是给 Claude 特定工作流程专门知识的 markdown 文件。将它们视为当需要时可以调用的可重用提示。

它们生活在 ~/.claude/skills/(用于跨所有项目的个人使用)或 .claude/skills/(用于项目特定东西)。你可以在单个提示中将它们链接在一起。Affaan 的例子:在长时间编码会话后 /refactor-clean 来剥离死代码和松散的 markdown 文件。

命令类似但通过斜杠命令执行。区别主要在存储和调用风格。官方文档在skills中 涵盖这个。

# 示例技能结构
~/.claude/skills/
  pmx-guidelines.md      # 项目特定模式
  coding-standards.md    # 语言最佳实践
  tdd-workflow/          # 多文件技能与 README.md
  security-review/       # 基于检查表的技能

2.2 概念:钩子

钩子是基于触发器的自动化,在 Claude 执行期间特定事件上触发。与技能(关于知识)不同,钩子是关于动作。

有六种钩子类型:

  1. PreToolUse — 在工具执行前运行(适用于验证或提醒)
  2. PostToolUse — 在工具完成后运行(用于格式化、日志、反馈循环)
  3. UserPromptSubmit — 当你发送消息时触发
  4. Stop — 当 Claude 完成响应时触发
  5. PreCompact — 在上下文压缩前运行
  6. Notification — 处理权限请求

Affaan 的实际例子:在运行像 npm installpytest 这样的长命令前提醒你使用 tmux 的钩子。如果你不在 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"
        }
      ]
    }
  ]
}

官方钩子文档在 docs.anthropic.com/en/docs/claude-code/hooks

来自指南的专业提示:使用 hookify 插件来对话式创建钩子而不是手动编写 JSON。运行 /hookify 并描述你想要什么。

2.3 概念:子代理

子代理(sub agents)是你的主 Claude 实例可以委托任务给的进程。它们以有限范围运行,有自己的上下文,这让你的主代理专注于编排。

这就是有趣的地方。一个子代理可以用特定工具权限沙盒化,并分配你技能的子集。需要代码审查?生成一个 code-reviewer 子代理。需要安全分析?security-reviewer。它们并行工作而不膨胀你的主上下文。

# 示例子代理结构
~/.claude/agents/
  planner.md           # 功能实现规划
  architect.md         # 系统设计决策
  tdd-guide.md         # 测试驱动开发
  code-reviewer.md     # 质量/安全审查
  security-reviewer.md # 漏洞分析
  build-error-resolver.md
  e2e-runner.md
  refactor-cleaner.md

参见 docs.anthropic.com/en/docs/claude-code/sub-agents 以获取完整信息。

2.4 概念:规则和记忆

规则是你的护栏。你的 .rules 文件夹保存 Claude 应该总是遵循的最佳实践 markdown 文件。你可以将一切转储到一个单一的 CLAUDE.md 文件中,或者将其分解为按关注点分组的模块化文件。

Affaan 的规则结构:

~/.claude/rules/
  security.md      # 没有硬编码秘密,验证输入
  coding-style.md  # 不变性,文件组织
  testing.md       # TDD 工作流程,80% 覆盖
  git-workflow.md  # 提交格式,PR 过程
  agents.md        # 何时委托给副代理
  performance.md   # 模型选择,上下文管理

他提到的例子规则:在代码库中没有表情符号,前端中没有紫色色调,总是部署前测试,从不提交 console.logs。

记忆系统使用三个级别的 CLAUDE.md 文件:

  • 项目: ./CLAUDE.md(与你的团队共享)* 用户: ~/.claude/CLAUDE.md(个人,适用于所有项目)* 项目特定用户: .claude/CLAUDE.md

细节在 docs.anthropic.com/en/docs/claude-code/memory

2.5 概念:MCPs(模型上下文协议)

MCPs 将 Claude 连接到外部服务。不是 API 的替代,而是围绕它们的提示驱动包装器,给 Claude 在导航信息中更多灵活性。

Affaan 的例子:Supabase MCP 让 Claude 直接拉取特定数据并运行 SQL 而无需复制粘贴。同样的模式适用于数据库、部署平台、GitHub 等。

以下是他指南中的关键位:

你在压缩前 200k 上下文窗口可能在启用太多工具时只有 70k。性能显著下降。

这是为任何人加载 MCPs 的最重要洞察。你启用的每个 MCP 都会向 Claude 的上下文添加工具。太多工具意味着实际代码和对话的空间更少。

经验法则: 在你的配置中有 20–30 个 MCP,但保持在任何时候启用少于 10 个。活跃工具少于 80 个。

导航到 /plugins 并向下滚动,或运行 /mcp 来查看当前启用了什么。

官方 MCP 概述在 docs.anthropic.com/en/docs/claude-code/mcp

2.6 概念:插件

插件打包工具以便轻松安装。一个插件可以是技能 + MCP 结合,或钩子和工具捆绑在一起。

从市场安装:

# 添加市场
claude plugin marketplace add https://github.com/mixedbread-ai/mgrep

# 然后打开 Claude,运行 /plugins,找到新市场,从那里安装

LSP 插件如果你在编辑器外运行 Claude Code 很有用。语言服务器协议给 Claude 实时类型检查、转到定义,以及无需打开 IDE 的智能补全。

与 MCPs 同样的警告:注意你的上下文窗口。

3、真正重要的东西

你知道我需要那样做。

除了构建块,Affaan 的指南包括实用提示,将休闲用户与实际使用这个东西发货的人分开。

3.1 键盘快捷键

  • Ctrl+U - 删除整行(比退格键垃圾更快)*
  • !- 快速 bash 命令前缀
  • @ - 搜索文件
  • / - 启动斜杠命令
  • Shift+Enter - 多行输入
  • Tab - 切换思考显示
  • Esc Esc - 中断 Claude 或恢复代码

3.2 并行工作流程

运行多个 Claude 实例而不冲突的两种方法:

  1. /fork - 分叉对话以并行做非重叠任务而不是排队消息
  2. Git 工作树 — 用于重叠并行工作。每个工作树是一个独立检出。
git worktree add ../feature-branch feature-branch
# 现在在每个工作树中运行单独的 Claude 实例

3.3 tmux 用于长时间运行命令

流式传输并观看 Claude 运行的进程日志:

tmux new -s dev
# Claude 在这里运行命令,你可以分离并重新附加
tmux attach -t dev

3.4 mgrep 胜过 grep

mgrep 明显优于 ripgrep 或 grep。通过插件市场安装,然后使用 /mgrep 技能。与本地和 web 搜索一起工作。

mgrep "function handleSubmit"  # 本地搜索
mgrep --web "Next.js 15 app router changes"  # Web 搜索

3.5 其他有用命令

  • /rewind - 返回到之前状态
  • /statusline - 用分支、上下文 %、待办事项自定义
  • /checkpoints - 文件级撤销点
  • /compact - 手动触发上下文压缩

4、他实际的设置

这就是指南变得具体的地方。Affaan 分享他的确切配置。

插件(通常一次启用 4–5 个):

ralph-wiggum@claude-code-plugins       # 循环自动化
frontend-design@claude-code-plugins    # UI/UX 模式
commit-commands@claude-code-plugins    # Git 工作流程
security-guidance@claude-code-plugins  # 安全检查
pr-review-toolkit@claude-code-plugins  # PR 自动化
typescript-lsp@claude-plugins-official # TS 智能
hookify@claude-plugins-official        # 钩子创建
code-simplifier@claude-plugins-official
feature-dev@claude-code-plugins
explanatory-output-style@claude-code-plugins
code-review@claude-code-plugins
context7@claude-plugins-official       # 实时文档
pyright-lsp@claude-plugins-official    # Python 类型
mgrep@Mixedbread-Grep                  # 更好搜索

MCP 服务器(在用户级别配置):

{
  "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
  "firecrawl": { "command": "npx", "args": ["-y", "firecrawl-mcp"] },
  "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" },
  "railway": { "command": "npx", "args": ["-y", "@railway/mcp-server"] },
  "cloudflare-docs": { "type": "http", "url": "https://docs.mcp.cloudflare.com/mcp" },
  "cloudflare-workers-bindings": {
    "type": "http",
    "url": "https://bindings.mcp.cloudflare.com/mcp"
  },
  "cloudflare-workers-builds": { "type": "http", "url": "https://builds.mcp.cloudflare.com/mcp" },
  "cloudflare-observability": {
    "type": "http",
    "url": "https://observability.mcp.cloudflare.com/mcp"
  },
  "clickhouse": { "type": "http", "url": "https://mcp.clickhouse.cloud/mcp" },
  "AbletonMCP": { "command": "uvx", "args": ["ableton-mcp"] },
  "magic": { "command": "npx", "args": ["-y", "@magicuidesign/mcp@latest"] }
}

关键:14 个 MCP 配置但每个项目只启用 5–6 个。他使用 ~/.claude.json 中的 disabledMcpServers 在每个项目基础上禁用其余的。

关键钩子:

{
  "PreToolUse": [
    { "matcher": "npm|pnpm|yarn|cargo|pytest", "hooks": ["tmux reminder"] },
    { "matcher": "Write && .md file", "hooks": ["block unless README/CLAUDE"] },
    { "matcher": "git push", "hooks": ["open editor for review"] }
  ],
  "PostToolUse": [
    { "matcher": "Edit && .ts/.tsx/.js/.jsx", "hooks": ["prettier --write"] },
    { "matcher": "Edit && .ts/.tsx", "hooks": ["tsc --noEmit"] },
    { "matcher": "Edit", "hooks": ["grep console.log warning"] }
  ],
  "Stop": [
    { "matcher": "*", "hooks": ["check modified files for console.log"] }
  ]
}

自定义状态行:

显示用户、目录、带有脏指示器的 git 分支、剩余上下文 %、模型、时间和待办事项计数。

5、关于编辑器

Affaan 使用 Zed,一个基于 Rust 的轻量级快速编辑器。他喜欢它用于 Claude Code 因为:

  • 代理面板集成 — 实时跟踪 Claude 编辑的文件变化
  • 性能 — 即时打开,处理大代码库而不滞后
  • CMD+Shift+R 命令面板 — 快速访问自定义斜杠命令
  • 最小资源使用 — 不会与 Claude 竞争系统资源
  • Vim 模式 — 如果那是你的东西,则完整键绑定

他的工作流程:

  1. 分屏:一侧终端与 Claude Code,另一侧编辑器
  2. Ctrl+G 快速打开 Claude 正在工作的文件
  3. 启用自动保存所以 Claude 的文件读取总是当前的
  4. 使用编辑器的 git 功能在提交前审查变化

VSCode 和 Cursor 也工作得很好。你可以使用终端模式下的 Claude Code 与通过 \ide 的自动同步,或使用扩展以获得更紧密集成。官方文档在 docs.anthropic.com/en/docs/claude-code/ide-integrations

6、关键收获

Affaan 以五个原则结束他的指南。值得重复:

  1. 不要过度复杂化 — 将配置视为微调,而不是架构
  2. 上下文窗口宝贵 — 禁用未使用的 MCPs 和插件
  3. 并行执行 — 分叉对话,使用 git 工作树
  4. 自动化重复的工作 — 钩子用于格式化、linting、提醒
  5. 限定你的子代理 — 有限工具 = 聚焦执行

容易忽视,最后一个。诱惑是给每个副代理访问一切。但一个有 50 个工具的副代理会比一个有 5 个工具限定到其实际工作的副代理更慢更不聚焦。

7、我的看法

我从实验性日子以来一直在运行类似设置,并且大部分与我自己的经验一致。上下文窗口管理建议是最有价值的部分。我观察到我的有效上下文从 200k 下降到通过在 MCP 和插件加载上粗心而低于 80k(但是现在有修复)。

钩子设置也值得偷师。每次编辑后自动运行 Prettier,每次 .ts 文件变化后 TypeScript 检查,在它们复合前捕获错误。Stop 上的 console.log 审计是个好触感。

如果你刚刚开始使用 Claude Code,不要尝试一次实现所有这些。从几个技能、一个或两个你实际需要的 MCP 开始,也许一个用于格式化的 PostToolUse 钩子。随着你遇到限制添加复杂性,而不是之前。

如果你想要原始来源,Affaan 的完整指南在X上。 他还在 GitHub 上发布了一个包含他配置的仓库


原文链接: The Claude Code setup that won a hackathon

汇智网翻译整理,转载请标明出处