来源:github.com/affaan-m/everything-claude-code · Anthropic Hackathon 获胜者 Affaan Mustafa 的 10+ 月实战经验
整理于 2026-02-07
通过控制 MCP 工具数量、按项目禁用不需要的 MCP Server、根据任务复杂度选择模型来最大化有效上下文窗口。核心数据:200k 上下文窗口在开太多 MCP 工具后可能缩到 70k。
为什么重要Claude Code 的 system prompt 里会注入所有已启用 MCP 的工具定义。每个 MCP Server 可能贡献数十个工具描述,占用大量 token。当你启用了 Playwright + Pencil + Context7 + Supabase + GitHub 等多个 MCP,system prompt 本身就可能消耗 100k+ token,留给实际对话和代码的上下文大幅缩水。
实现方法.claude/settings.local.json 中用 disabledMcpServers 按项目禁用不需要的 MCP/compact 手动触发上下文压缩高度匹配。你的项目同时启用了 Playwright、Pencil、Context7 等 MCP,加上 CLAUDE.md 本身就很长(约 15k+ 字符),上下文压力大。尤其做设计任务时 Pencil 的工具定义量巨大。
可以做的事cat ~/.claude/settings.json | grep -c mcp.claude/settings.local.json 的 disabledMcpServers 列表,做后端开发时禁用 Pencil/Playwright,做设计时禁用 Context7model: "haiku" 节省 token在 AI 辅助开发中引入系统性的验证机制,确保生成的代码符合预期。分两种模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| Checkpoint 验证 | 在关键节点保存状态,出错可回退到检查点 | 大型重构、多步骤迁移 |
| Continuous 验证 | 每一步都验证,持续评估输出质量 | TDD 开发、安全敏感代码 |
还引入了 pass@k 指标:衡量 agent 在 k 次尝试中至少成功一次的概率,用于评估 agent 可靠性。
为什么重要AI 生成代码有概率出错。不加验证循环的工作流相当于"盲信 AI",bug 会在后续步骤雪崩式放大。验证循环的核心理念是:生成 → 验证 → 修正 → 再验证,而不是生成后直接进入下一步。
实现方法/verify 命令:运行 lint + test + 类型检查,一键验证当前状态/checkpoint 命令:在 Git 中创建临时 commit 或 stash,标记当前已验证状态中高匹配。你的项目有完善的测试体系(465+ 测试文件),但目前验证是手动的(写完代码后手动跑测试)。可以把"跑测试"这一步标准化到每个 skill/command 里面。
可以做的事.claude/commands/verify.md 命令,内容为"运行 npm run lint && npm run test:backend -- --bail,报告结果"/verify 再继续下一步git stash 或临时 commit 做 checkpoint利用 Git Worktrees、Cascade 方法和多实例扩展来加速开发。三种模式:
单线程开发是 AI 辅助编程的最大瓶颈。一个 Claude 实例在跑测试时,你(或另一个实例)完全可以做别的事。Git Worktrees 让你无需 clone 多份代码就能并行开发。
实现方法# 创建 worktree(不影响主工作目录)
git worktree add ../qqnails-feature-x feature-x
git worktree add ../qqnails-bugfix-y bugfix-y
# 列出所有 worktrees
git worktree list
# 完成后清理
git worktree remove ../qqnails-feature-x
每个 worktree 可以打开独立的终端运行 Claude Code,互不干扰。
与你的工作流匹配度高度匹配。你经常做的 i18n 批量重构、测试覆盖率提升这类任务,天然适合并行化。比如同时用一个实例改前端,另一个实例写后端测试。
可以做的事git worktree add 创建第二个工作目录用一组专用 agent 分工协作完成复杂任务。核心思想:
/multi-plan 把大目标拆成可并行的子任务单个 agent 的上下文窗口有限。当任务涉及多文件、多领域时,单 agent 容易丢失重要上下文。多 agent 的优势:
中等匹配。你已经在用 Task 工具做子代理了(Explore、Bash 等),但还没有系统性的编排。你的项目规模(后端 + 前端 + 3 个 Flutter app)很适合多代理模式。
可以做的事.claude/agents/code-reviewer.md(只读审查)、.claude/agents/test-writer.md(专写测试)通过 Hook 自动观察用户行为,提取编码偏好为"直觉"(Instinct),带置信度评分,跨会话持久化。核心数据结构:
{
"trigger": "写 TypeScript 函数时",
"action": "优先用函数式写法而非 class",
"confidence": 0.7, // 0.3-0.9
"domain": "code-style", // code-style | testing | git | debugging | workflow
"evidence": 3, // 观察到 3 次用户纠正
"decay_rate": 0.02 // 每周期衰减 0.02
}
为什么重要
解决 Claude Code 的"失忆问题"。每次新会话,Claude 不知道你喜欢什么写法、什么工具、什么测试方式。目前你用 MEMORY.md 手动记录,但覆盖面有限。自动化可以捕获你意识不到的隐性偏好。
实现方法完整流水线:
PreToolUse/PostToolUse Hook 捕获
↓
observations.jsonl 存储(10MB 上限,7 天归档)
↓
后台 Haiku agent 每 5 分钟分析(需 20+ 条观察)
↓
检测信号:用户纠正 / 错误解决路径 / 重复工作流 / 工具偏好
↓
生成/更新 instinct(置信度 0.3 起步,0.7+ 自动采纳)
↓
/evolve 聚类:3+ 相关直觉 → skill / command / agent
置信度动态:
| 上升 | 下降 |
|---|---|
| 同一模式反复出现 | 用户明确纠正 |
| 用户未修正(默认认可) | 长时间未观察到 |
| 多来源证据一致 | 出现矛盾证据 |
中等。你已经有 MEMORY.md 手动记忆系统,效果不错。这套自动系统的增量价值在于:能捕获你没意识到的偏好(比如"你总是先读文件再编辑"、"你倾向用 Grep 而不是 Bash grep")。但部署成本较高,需要 Python CLI + Hook 配置 + 后台 Haiku 消耗。
利用 Claude Code 的 Hook 系统在特定事件发生时自动执行脚本。四个触发点:
| Hook 类型 | 触发时机 | 典型用途 |
|---|---|---|
PreToolUse | 工具执行前 | 验证参数、拦截危险操作、添加警告 |
PostToolUse | 工具执行后 | 记录操作、自动格式化、通知 |
SessionStart | 会话开始时 | 加载上下文、检查环境、初始化状态 |
SessionEnd | 会话结束时 | 保存状态、清理临时文件、生成总结 |
Hook 是 Claude Code 最强大但最被低估的功能。它让你可以:
在 .claude/settings.local.json 中配置 hooks:
{
"hooks": {
"PreToolUse": [
{
"matcher": "tool == 'Edit' && tool_input.file_path matches '\\.(ts|tsx)$'",
"command": "node .claude/hooks/check-ts-edit.js"
}
],
"PostToolUse": [
{
"matcher": "tool == 'Write'",
"command": "node .claude/hooks/log-write.js"
}
],
"SessionStart": [
{
"command": "node .claude/hooks/load-context.js"
}
]
}
}
console.log 残留 — 在 PostToolUse 中检查新写入的 .ts 文件是否包含 console.log,如果有就发出警告。
高度匹配。你的项目有明确的规范(禁止硬编码、禁止直接角色检查、禁止 AWS RDS 引用),这些规则完全可以通过 PreToolUse hook 自动检查,而不是靠 CLAUDE.md 里的文字提醒。
可以做的事PreToolUse hook,检查 Edit/Write 工具是否在修改 .env 文件,如果是则提示确认PostToolUse hook,检查新写入的 JS 文件是否包含 role === 'admin'(违反 RBAC 规范)SessionStart hook,自动读取最近的 Git log 和 TODO 列表注入到上下文根据当前任务类型,动态注入不同的 system prompt 补充内容。比如:
dev.md — 开发模式:包含编码规范、测试要求、文件结构review.md — 审查模式:包含安全 checklist、性能关注点、代码质量标准research.md — 研究模式:包含搜索策略、信息整理格式、竞品分析框架你的 CLAUDE.md 有 15k+ 字符,每次会话都会全量注入。但实际上:
动态上下文的核心是按需注入,减少噪音。
实现方法.claude/contexts/backend-dev.md、.claude/contexts/frontend-dev.md、.claude/contexts/i18n-refactor.mdSessionStart hook 根据当前分支名或目录自动加载对应上下文/context backend 切换高度匹配。你的 CLAUDE.md 信息密度很高(多租户架构、测试规范、PM2 管理、Flutter 配置……),不同任务场景只需要其中一部分。拆分后能显著减少无关上下文消耗。
可以做的事.claude/commands/ctx-backend.md、.claude/commands/ctx-frontend.md 等快捷命令###-feature-name),用 SessionStart hook 根据分支前缀自动选择上下文把 Claude Code 的行为规则按层级组织,而不是堆在一个 CLAUDE.md 里:
~/.claude/rules/ # 用户级(所有项目)
common/
coding-style.md # 通用编码风格
git-workflow.md # Git 提交规范
testing.md # 测试标准
security.md # 安全规范
typescript/
style.md # TS 特定规则
patterns.md # TS 设计模式
python/
style.md # Python 规则
.claude/rules/ # 项目级(仅当前项目)
rbac-enforcement.md # RBAC 强制规则
multi-tenancy.md # 多租户规范
i18n-requirements.md # 国际化要求
为什么重要
当前你所有规范都堆在 CLAUDE.md 里,问题:
分层后:每条规则独立文件,按需加载,跨项目复用。
实现方法~/.claude/rules/ 下创建按领域分类的规则文件.claude/rules/(跟着仓库走)高度匹配。你的 CLAUDE.md 现在包含了架构、规范、端口配置、测试命令、安全规则……全混在一起。分层后,做 i18n 任务时只加载 i18n rules,做安全审计时只加载 security rules。
可以做的事~/.claude/rules/common/ 目录,放入通用编码规则(可在其他项目复用)/skill-create 命令分析仓库的 Git commit 历史,自动提取反复出现的开发模式,生成 SKILL.md 技能定义文件。可选加 --instincts 同时生成直觉集合。
两种模式:
| 模式 | 能力 | 适用 |
|---|---|---|
| 本地 Git 分析 | 分析当前仓库历史 | 个人项目 |
| GitHub App | 10k+ commit、自动 PR、团队共享 | 团队协作 |
你的仓库已经有几千个 commit,里面蕴含大量模式:
这些模式人工总结效率低,但 Git 历史里全有。
与你的工作流匹配度中等。概念很好,但目前 Claude Code 官方没有内置这个功能,需要用第三方工具。不过核心思路 — "从历史中提取模式" — 你可以手动实践。
可以做的事git log --oneline --since="2026-01-01" | head -100,分析你最近 100 个 commit 的模式.claude/skills/(比如 add-api-endpoint.md — "新增 API 端点标准流程")/skill-create一组只读的专用审查 agent,分别负责不同维度的代码质量检查:
| Agent | 职责 | 工具权限 |
|---|---|---|
| Code Reviewer | 代码质量、可读性、设计模式 | Read, Grep, Glob(只读) |
| Security Reviewer | 安全漏洞、OWASP Top 10 | Read, Grep, Glob(只读) |
| Database Reviewer | SQL 注入、N+1 查询、索引缺失 | Read, Grep(只读) |
| Dead Code Cleaner | 识别未使用的代码、导出 | Read, Grep, Glob, Edit |
| Doc Updater | 文档与代码同步检查 | Read, Grep, Edit, Write |
关键优势是权限隔离:审查 agent 只有 Read 权限,不会意外修改代码。这比让一个全能 agent "顺便审查一下"安全得多。而且每个 agent 的 prompt 可以针对性优化,比通用 prompt 更精准。
实现方法创建 .claude/agents/code-reviewer.md:
---
name: code-reviewer
description: 只读代码审查 agent,检查代码质量和最佳实践
tools: [Read, Grep, Glob]
---
你是一位资深代码审查员。你的职责是:
1. 检查代码可读性和命名规范
2. 识别潜在 bug 和边界情况
3. 评估错误处理是否完善
4. 检查是否违反项目规范(RBAC、多租户、i18n)
输出格式:
- 严重问题 (必须修复)
- 建议改进 (可选)
- 优点 (好的实践)
与你的工作流匹配度
高度匹配。你的 CLAUDE.md 有大量规范(RBAC、多租户、命名约定、安全规则),这些规则塞给一个专用审查 agent 比塞给通用 agent 效果好得多。
可以做的事.claude/agents/code-reviewer.md,把 CLAUDE.md 里的代码审查检查项搬进去.claude/agents/security-reviewer.md,聚焦 SQL 注入、XSS、权限检查用 /tdd 命令和专用 agent 强制执行 Red-Green-Refactor 循环:
Everything Claude Code 在 rules 里写死了 80% 覆盖率硬性要求。
为什么重要AI 生成代码时容易"先写实现再补测试",这样测试容易变成实现的镜像(而不是行为的验证)。TDD 反过来:先定义行为,再让 AI 写实现,测试质量更高。
实现方法.claude/commands/tdd.md 命令模板:接收功能描述 → 生成测试 → 运行测试(应失败)→ 实现代码 → 运行测试(应通过)→ 重构中高匹配。你的 CLAUDE.md 已经要求"关键流程必须先编写自动化测试"和"后端逻辑遵循 Red-Green-Refactor",但实际执行时 Claude 经常跳过 Red 直接到 Green。用 skill/command 强制执行可以解决这个问题。
可以做的事.claude/commands/tdd.md:指导 Claude 先写测试、确认测试失败、再写实现test-and-fix agent 类型来自动跑测试并修复Everything Claude Code 把所有 hooks 从 bash/shell 重写为 Node.js,解决跨平台兼容问题。同时提供了智能包管理器检测(自动识别 npm/yarn/pnpm/bun)。
为什么重要Bash hooks 的问题:
Node.js hooks 的优势:
// .claude/hooks/check-edit.js
const fs = require('fs');
const path = require('path');
// Hook 接收环境变量:TOOL_NAME, TOOL_INPUT, FILE_PATH
const toolName = process.env.TOOL_NAME;
const filePath = process.env.FILE_PATH || '';
// 检查是否在修改 .env 文件
if (filePath.endsWith('.env') || filePath.includes('.env.')) {
console.error('WARNING: 正在修改环境变量文件,请确认!');
process.exit(1); // 非 0 退出码会阻止工具执行
}
process.exit(0);
与你的工作流匹配度
中等。你目前主要在 macOS 开发,短期内没有跨平台需求。但如果你开始写 hooks,直接用 Node.js 写而不是 bash 是正确的起手式,因为你的项目本身就是 Node.js 技术栈,维护成本更低。
可以做的事.claude/hooks/utils.js 工具库,封装常用检查(文件路径匹配、JSON 读取等).claude/hooks/ 目录,跟着仓库走按 投入产出比 排序的建议实施顺序:
| 优先级 | 观点 | 投入 | 收益 | 理由 |
|---|---|---|---|---|
| P0 | #1 Token 优化 | 30 分钟 | 高 | 改一个配置文件就能立竿见影 |
| P0 | #6 Hook 架构 | 1-2 小时 | 高 | 写 2-3 个防护 hook 就能避免常见错误 |
| P1 | #8 Rules 分层 | 2-3 小时 | 高 | 一次拆分,长期受益 |
| P1 | #10 审查 Agent | 1 小时 | 中高 | 创建 2 个 agent 文件就能用 |
| P1 | #7 动态上下文 | 2 小时 | 中高 | 配合 Rules 分层一起做 |
| P2 | #2 验证循环 | 1 小时 | 中 | 写一个 /verify 命令 |
| P2 | #11 TDD 标准化 | 1 小时 | 中 | 写一个 /tdd 命令模板 |
| P2 | #3 并行化 | 30 分钟 | 中 | 按需使用 git worktree |
| P3 | #4 多代理编排 | 3-4 小时 | 中 | 需要较多实验和调优 |
| P3 | #9 Skill Creator | 2-3 小时 | 低中 | 手动版先试,自动化看需求 |
| P3 | #5 持续学习 | 4+ 小时 | 低中 | 现有 MEMORY.md 已覆盖核心需求 |
| P3 | #12 跨平台 Hooks | - | 低 | 写 hooks 时自然用 Node.js 即可 |