everything-claude-code 拆解:用 agents/skills/hooks 把 Claude Code 工作流变成可复用组件
1. 为什么你的 Claude Code 每次都要重新教一遍如果你已经在用 Claude Code 写代码大概率遇到过这种场景新开一个会话它又忘了你们团队的代码规范让它做代码审查它给的建议每次风格都不一样明明上次已经说清楚先写测试再实现这次它还是上来就改业务逻辑。问题不在于模型能力而在于你把所有工程约束都放在了对话记忆里而对话是会丢的。everything-claude-code 这个仓库解决的正是这件事。它把 Claude Code 的 agents、skills、hooks、rules、commands 拆成一个个可复用的组件单元让规划→测试→实现→评审→验证这套工程节奏变成工具行为而不是靠你每次手动提醒。简单说它是一套可安装、可迁移、可组合的 Claude Code 工程化工作流组件库适合已经在团队里推广 Claude Code、但苦于流程不统一的开发者和技术负责人。我试过把它的目录结构直接拷进项目配合 TaoToken 提供的 API 接入跑通了一条从/plan到/verify的确定性任务链。下面把目录结构、组件清单、可复制的配置示例和验证步骤完整拆给你你可以照着做一遍。核心检索词先明确everything-claude-code 是一套 Claude Code 工作流组件库通过 agents/skills/hooks 把软件工程流程固化成可复用单元适合团队统一 AI 编码规范。2. TaoToken 接入 Claude Code 的前置准备在拆解组件之前得先让 Claude Code 能稳定跑起来。Claude Code 官方 CLI 需要配置 API 端点和密钥这里用 TaoToken 作为接入层它的 API 地址是https://taotoken.net/api兼容 Anthropic 的接口格式配置方式和官方一致。你需要准备三样东西Base URL、API Key、Model ID。这三件套在后面的 settings.json、环境变量、以及 hooks 脚本里都会用到先记牢。第一步去 TaoToken 控制台创建一个 API Key。打开https://taotoken.net/api-keys带 utm 的完整链接是https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite登录后新建一个 Key复制保存。这个 Key 只显示一次丢了就得重建。第二步确认你要用的 Model ID。Claude Code 场景下常用的是 Claude 系列模型具体可用的模型名在模型对话页面能查到https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite。选一个支持长上下文和工具调用的模型因为 agents 和 hooks 会频繁触发工具调用。第三步理解 Claude Code 的配置加载顺序。它读取配置的优先级是项目级.claude/settings.json 用户级~/.claude/settings.json。everything-claude-code 的 hooks 和 rules 既可以装在用户级全局生效也可以装在项目级只对当前项目生效。团队统一流程建议装项目级跟着仓库走新人 clone 下来就有。这里有个容易踩的坑很多人把 API Key 直接写进 settings.json 提交到 git这是安全事故。正确做法是用环境变量。Claude Code 支持从环境变量读取ANTHROPIC_API_KEY和ANTHROPIC_BASE_URL你在 shell 里 export或者用.env文件配合 direnv 之类的工具加载。配置好之后先跑一个最小验证确认 Claude Code 能连上export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEY你的Key claude --version claude -p 回复 ok 两个字母如果返回ok说明接入层通了。这一步没过后面所有组件都跑不起来所以别跳过。关于 Coding Plan如果你打算长期在团队里跑 Agent 工作流可以了解下https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite它针对高频编码场景做了额度优化比按量计费更适合天天跑/plan/tdd的团队。3. 可复制的目录结构与 hooks/skills 配置everything-claude-code 的目录设计是它最值得抄的部分。它把不同职责的组件分开放每个目录对应 Claude Code 的一个机制。下面是精简后的目录结构你可以直接照着建your-project/ ├── .claude/ │ ├── settings.json # hooks 权限 环境配置 │ ├── agents/ # 子代理定义 │ │ ├── planner.md │ │ ├── code-reviewer.md │ │ └── security-reviewer.md │ ├── skills/ # 技能含斜杠命令 │ │ ├── tdd-workflow/ │ │ │ └── SKILL.md │ │ └── verification-loop/ │ │ └── SKILL.md │ ├── rules/ # 常驻规则约束 │ │ ├── security.md │ │ ├── coding-style.md │ │ └── testing.md │ └── hooks/ # 事件钩子脚本 │ ├── hooks.json │ └── scripts/ │ ├── session-start.js │ └── evaluate-session.js └── CLAUDE.md # 项目级上下文说明关键点agents/放子代理skills/放技能rules/放常驻约束hooks/放事件自动化。这四类组件的触发机制完全不同混在一起会乱。先说 hooks 配置。hooks 是 Claude Code 在生命周期事件点自动执行的脚本配置写在settings.json里。下面是一份可复制的 hooks 配置覆盖会话开始、工具调用前、会话结束三个关键点{ hooks: { SessionStart: [ { matcher: *, hooks: [ { type: command, command: node .claude/hooks/scripts/session-start.js } ] } ], PreToolUse: [ { matcher: Write|Edit, hooks: [ { type: command, command: node .claude/hooks/scripts/pre-write-guard.js } ] } ], Stop: [ { matcher: *, hooks: [ { type: command, command: node .claude/hooks/scripts/evaluate-session.js } ] } ] } }SessionStart在会话开始时注入项目上下文PreToolUse匹配Write|Edit在写文件前做检查Stop在每轮回复结束时评估会话。matcher 支持正则比如mcp__memory__.*可以匹配特定 MCP 工具。再说 skills 配置。一个 skill 就是一个目录里面必须有SKILL.md顶部用 YAML frontmatter 定义元信息。下面是一个 TDD 工作流 skill 的完整示例--- name: tdd-workflow description: 当用户要求用测试驱动方式开发新功能或修复 bug 时触发强制先写测试再实现 disable-model-invocation: false allowed-tools: Read, Write, Edit, Bash --- # TDD 工作流 ## 执行步骤 1. 先阅读相关源码理解现有测试框架和约定 2. 编写失败的测试用例覆盖正常路径和边界条件 3. 运行测试确认测试失败RED 4. 编写最小实现让测试通过GREEN 5. 重构代码保持测试通过REFACTOR 6. 输出测试覆盖率报告 ## 约束 - 禁止在测试通过前修改实现逻辑 - 每个测试用例必须有明确的断言 - 覆盖率目标不低于 80%frontmatter 里的name决定斜杠命令名输入/tdd-workflow就能触发。description决定模型能否自动加载它。disable-model-invocation: true表示只允许手动触发适合有副作用的流程比如部署。allowed-tools限制这个 skill 执行期能用哪些工具只读场景就只给 Read。agents 的配置类似放在.claude/agents/下frontmatter 里可以配tools、permissionMode、skills。比如一个代码审查 agent--- name: code-reviewer description: 代码提交前做质量审查检查可维护性、一致性和潜在 bug tools: Read, Grep, Glob permissionMode: plan --- 你是一个严格的代码审查者。审查时关注 - 命名是否清晰一致 - 是否有重复逻辑可以抽取 - 边界条件是否处理 - 错误处理是否完整 - 是否符合项目 coding-style 规则permissionMode: plan表示这个 agent 只读不写审查完给建议不直接改代码。这比让它直接改安全得多。4. 跑通一次确定性任务链的验证步骤配置写好了得验证它真的能跑。下面用实现一个用户注册接口这个任务走一遍从规划到验证的完整链路每一步都有明确的输入和预期输出。第一步触发规划。在 Claude Code 里输入/plan 为当前项目实现用户注册接口技术栈 Node.js Express PostgreSQL。 需求邮箱注册、密码 bcrypt 加密、返回 JWT token。 拆分成 5-8 个任务识别安全风险。预期Claude 进入计划模式输出任务清单用户模型设计 → 加密工具 → 注册接口 → 测试 → 中间件等和风险提示密码复杂度、JWT 密钥管理。这时候不要让它直接实现选择tell ask claude继续调整直到计划满意。第二步触发 TDD。计划确认后输入/tdd-workflow 为注册接口编写测试用例使用 Jest。 覆盖邮箱格式校验、密码长度校验、重复邮箱、成功注册。预期Claude 先写auth.test.js包含失败和成功用例然后运行测试确认失败RED 阶段。这一步的关键是它必须先跑测试看到红色再写实现。第三步实现。退出计划模式输入按照刚才的测试用例实现注册接口使用 bcrypt 加密密码。预期Claude 生成models/User.js、controllers/authController.js、routes/auth.js然后运行测试直到全绿。第四步审查。输入/code-review 审查刚才的注册代码检查 OWASP Top 10 风险。预期code-reviewer agent 检查是否硬编码密钥、是否有 SQL 注入风险、密码校验是否合理给出问题清单。第五步验证。输入/verify 运行所有测试启动服务模拟注册流程报告结果。预期Claude 跑测试、启动服务、发一个注册请求、检查返回的 token最后汇总通过率。整条链路跑下来你会得到一个有测试、有审查、有验证证据的注册接口而不是一段能用但不敢改的代码。这就是 everything-claude-code 的核心价值它不自动帮你写代码它强制你走流程。验证过程中可以用模型对话页面单独测试某个模型对工具调用的支持情况https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite确认模型能正确解析 hooks 输出的 JSON。5. 常见报错排查401、local proxy failed、reading choices配置过程中最容易卡在几个报错上下面按真实错误信息对照排查。报错一401 UnauthorizedAPI Error: 401 - {error:{message:invalid api key}}原因通常是 API Key 没配对或者环境变量没生效。排查顺序先确认echo $ANTHROPIC_API_KEY有输出再确认echo $ANTHROPIC_BASE_URL是https://taotoken.net/api注意结尾不要多加/v1最后确认 Key 没有多余空格。如果用的是 settings.json 里的env字段注意 JSON 里不能有注释。报错二local proxy failedError: local proxy failed to start这个通常出现在你配置了本地代理端口但端口被占用或者代理配置和 Base URL 冲突。Claude Code 本身不需要额外代理直接连https://taotoken.net/api即可。检查你的 shell 里有没有残留的HTTP_PROXY/HTTPS_PROXY环境变量有的话 unset 掉unset HTTP_PROXY HTTPS_PROXY http_proxy https_proxy报错三reading choices of undefinedTypeError: Cannot read properties of undefined (reading choices)这是响应格式不匹配导致的。choices是 OpenAI 格式的字段Anthropic 格式用的是content。出现这个报错说明你的客户端在按 OpenAI 格式解析但请求打到了 Anthropic 兼容端点。检查你的 Base URL 是否配错或者某个中间层做了格式转换。Claude Code 应该直接用 Anthropic 格式Base URL 设为https://taotoken.net/api。报错四OAuth token expiredOAuth token has expired, please re-authenticate如果你之前用官方账号登录过 Claude Code它可能缓存了 OAuth token。切换到 API Key 模式后需要清掉旧凭证。删除~/.claude/下的凭证缓存文件然后重新用环境变量方式启动。报错五hooks 脚本不执行Hook command failed: node .claude/hooks/scripts/session-start.js先确认脚本路径是相对项目根目录的Claude Code 执行 hooks 时的工作目录是项目根。再确认脚本有执行权限Node 脚本本身不需要 chmod但要确认node在 PATH 里。最后看脚本的 stdouthooks 的SessionStart会把 stdout 注入对话上下文如果脚本报错会中断。排查完这些建议把配置固化下来。团队协作时把.claude/目录提交到仓库API Key 用环境变量注入新人 clone 下来配好 Key 就能用同一套流程。需要管理多个项目的 Key 时可以在控制台按项目建不同的 Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite。6. 把组件库变成团队资产跑通一次任务链之后真正有价值的是把这套东西沉淀成团队资产。everything-claude-code 的思路是agents 定义谁来干skills 定义怎么干rules 定义什么不能干hooks 定义什么时候自动干。四者组合起来Claude Code 才从一个聊天机器人变成一个守纪律的工程助手。我的建议是从 rules 开始抄。先把团队的编码规范、安全底线、测试纪律写成rules/*.md这部分改动成本最低收益最直接。然后加 hooks把会话开始时的上下文注入和写文件前的检查自动化。最后再补 agents 和 skills针对你们最常做的任务比如接口开发、代码审查定制专用流程。配置过程中如果遇到接入层的问题接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite里面有完整的 Base URL、鉴权方式和错误码说明。Claude Code 相关的配置细节可以参考https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_contentClaudeCodeAnthropicutm_campaignrewrite那里有针对 CLI 工具的接入示例。最后提醒一句hooks 能执行任意 shell 命令装之前一定要审计脚本内容。团队共享的.claude/目录任何 hooks 改动都应该走 code review别让一个恶意脚本在每次会话开始时偷偷跑起来。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →