先交代一个背景:这套claude-code-templates不是某个官方仓库,而是我基于 Claude Code 日常使用半年多之后沉淀下来的一套“模板集合”。起因很简单:Claude Code 是真正能落地的 AI 编码工具,但它不是一个开箱即用、永远不用管的黑盒。每次开新项目、换新机器,都要重新设置 CLAUDE.md、重新敲一遍约束规则、把权限配置和 hook 脚本再配一次。如果不把这些东西沉淀成模板,每换一个项目,就等于把同一个坑重新踩一遍。所以我把提示词、配置文件、脚本模板全部整理进了claude-code-templates,让“配置一套,到处复用”成为现实。这篇文章就是完整拆解这套模板的设计思路、内容结构、实操步骤,以及我在整理和使用过程中踩过的各种坑,希望能帮到正在用或准备用 Claude Code 的朋友。
1. 先搞懂 Claude Code 到底在终端里做了什么
1.1 一分钟理解 Claude Code 的定位
Claude Code 是 Anthropic 推出的官方命令行 AI 编码工具。它和网页版 Claude 聊天最大的区别在于:它能直接站在你的项目目录里干活。你在终端输入claude启动它之后,它可以读取当前仓库的文件、搜索代码、修改代码、运行测试、执行 shell 命令,还可以调用外部工具。本质上它不是“问答机器人”,而是一个有权限操作你电脑的 agentic 工具。
举个例子,你让它“帮我把登录接口的单元测试补全”,它不会只给你一段建议性的代码,而是会自己去读auth/src/login.ts和相关测试文件,分析现有测试风格,然后直接生成测试文件并保存到项目里。如果发现缺少某个依赖,它可能会询问你是否安装。这些操作都需要权限,Claude Code 的权限模型允许你给某些命令配置自动放行,也可以让它在每次执行敏感操作前征求你的确认。
所以它的使用体验和 IDE 补全完全不一样:你给的是一个任务目标,它负责拆解、执行、验证,过程中会不断向你汇报进展。也因为这种“主动行动”的特性,它比普通聊天助手更需要一套稳定的上下文约定,否则每次会话它都可能跑偏,这就是模板库存在的意义。
1.2 为什么模板化能大幅提升效率
我第一次用 Claude Code 的时候,觉得这玩意太强了,后来发现一个严重问题:每次新建一个项目,启动claude之后,它的记忆是空的。它不知道这个项目用什么语言、不知道代码风格偏好、不知道哪些目录不能改、不知道测试框架是哪一套。同一类任务,我每次都要花几百字去描述背景和约束,甚至每次说的还不太一样,导致它生成的代码风格飘忽不定。
模板化解决的就是这几件事:
- 上下文一致性:把一个项目的“自我介绍”固定下来,写进 CLAUDE.md,Claude Code 每次启动都会自动读取,相当于它一进项目就“认识”了代码库。
- 减少重复输入:把常见任务的提示词模板化,例如代码审查、测试生成、重构、提交信息生成,用的时候直接调用,不用临场发挥。
- 环境可移植:把 settings.json、hook 脚本、权限规则归档,换台电脑、换个团队,几分钟恢复同样的工作环境。
- 质量兜底:好的模板里写清楚了“不要做什么”,相当于给 AI 立了一条不能越过的底线,减少错误操作和安全隐患。
我整理这套claude-code-templates的过程,其实就是不断把“我在和 Claude Code 反复沟通的内容”提炼成固定资产的过程。下面这几节就是这套模板库最核心的三块内容。
2. 模板库里的三块核心资产
2.1 提示词模板:让 AI 第一次就按规矩办事
提示词模板是整套模板里最常用、也最容易见效的部分。很多人的误区是觉得提示词就是一句话“帮我写个测试”,而真正有效的提示词应该包含角色定位、任务目标、输入输出约定、质量标准和禁止事项。我从长期使用中挑出了几个高频场景,每个都固化成了模板。
第一个是代码审查模板。我用的最终版大致长这样:
你现在是拥有20年经验的资深代码审查专家。请审查diff中涉及的所有改动,输出格式严格按以下结构: 1. 总体印象(3句话以内) 2. 严重问题(按严重程度排序,每个问题附建议修复方法) 3. 改进建议(按性价比排序) 4. 可以合并的判断(通过/需要修改) 约束:不要泛泛而谈“代码质量良好”,必须指出具体行号;不要提风格偏好类意见;只审查diff范围内涉及的问题。第二个是单元测试生成模板。这个模板能极大减少“生成了一堆空测试”的情况:
请为以下模块生成单元测试。要求: - 测试框架:vitest - 只测试这个模块的对外行为,不 mock 内部实现细节 - 每个用例必须有明确断言,禁止空壳测试 - 覆盖正常路径、边界条件、异常输入三类场景 - 测试文件保存到与源文件同级的 __tests__ 目录 - 生成后运行一次测试命令,把结果反馈给我第三个是重构模板。这个模板的重点是“限制 AI 的发挥空间”:
请在不改变函数签名和外部行为的前提下,重构以下代码片段。优化目标按优先级排序: 1. 可读性 2. 减少嵌套复杂度 3. 消除重复逻辑 重构完成后,给我一份变更摘要,说明每处改动的理由。 注意:不允许引入新的依赖;不允许改变现有注释;重构范围仅限于指定的这段代码。为什么要模板化?因为 Claude Code 是对话式的,对话次数越多,越容易产生上下文漂移。开头几次它还遵守规矩,聊到后面如果用户插了几句无关内容,它可能就忘了某条约束。把约束写在模板里,每次任务一开始就调出来,相当于把最容易失效的“口头约定”变成了“初次指令”,效果稳定很多。
在模板的组织方式上,我建议按“任务类型”来分目录,不要全部堆在一个文件里。我目前的仓库结构是这样的:
claude-code-templates/ ├── prompts/ │ ├── code-review.md │ ├── unit-test-generation.md │ ├── refactoring.md │ ├── commit-message.md │ └── architecture-design.md ├── configs/ │ ├── settings.json │ ├── CLAUDE.md.example │ └── permissions.json ├── hooks/ │ ├── pre-commit-format.js │ └── post-tool-use-log.js └── scripts/ ├── init-project.sh └── apply-templates.sh每个目录解决一个问题,使用的时候直接复制到目标项目里。后面我会给出具体的使用流程。
2.2 配置文件模板:settings.json 与 CLAUDE.md 的结构设计
配置文件是模板库的骨架。Claude Code 有两个关键的配置文件,一个是settings.json,一个是CLAUDE.md。
settings.json控制的是工具级行为,比如权限、hook、模型参数。它分成项目级和用户级两级:项目级的放在.claude/settings.json,用户级的放在用户目录下。我模板里的settings.json大概长这样:
{ "permissions": { "allow": [ "Read", "Glob", "Grep", "Edit", "Bash(npm run lint)", "Bash(npm run typecheck)" ], "deny": [ "WebFetch", "Bash(rm -rf *)", "Bash(shutdown *)" ] }, "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "node ~/.claude-templates/hooks/pre-command-check.js" } ] } ] } }permissions.allow是白名单,把高频且安全的操作自动放行,比如读取文件、搜索、编辑,以及两个无副作用的命令。permissions.deny是黑名单,明确禁止危险操作。这样配好之后,日常开发中大部分基础操作不用频繁确认,同时又保留了对危险命令的拦截。注意 WebFetch 实际上是可以安全用的,但我在团队场景默认禁掉,避免模型随意抓取网页内容导致注意力被带偏,真需要的时候再临时放开更安全。
CLAUDE.md是 Claude Code 的项目记忆文件,或者说“项目说明书”。这个文件最关键,因为每个项目启动时它都会被自动加载。我的模板给了三个不同的 CLAUDE.md 版本:一个是 Node.js 后端项目模板,一个是前端项目模板,还有一个是 Python 项目模板,每个都用同样的骨架:
# 项目概述 (一两句话说明这个仓库是做什么的) # 技术栈 (列出语言、框架、关键依赖,以及版本要求) # 已确认的命令 (构建命令、测试命令、运行命令,分成常用和不常用两栏) # 架构约定 (模块边界、目录结构说明、禁止跨层依赖有哪些) # 编码偏好 (命名规范、错误处理方式、测试风格、注释风格) # 不要做 (列出 AI 最容易做错的事项,例如不要修改schema、不要自动升级依赖等)这个结构非常朴素,但每一条都有明确价值。比如“不要做”这一节,我一开始没写,结果 Claude 经常自作主张去升级依赖版本,或者顺手重构掉一些看起来不好的代码,导致我 review 成本剧增。加了“不要做”之后,行为立刻收敛了很多。CLAUDE.md 不需要写太长,重点是高频、稳定、可执行的信息。
2.3 脚本与 Hook 模板:把重复动作自动化
模板库的第三块是 hook 脚本。Claude Code 提供了 hook 机制,可以在特定事件发生时执行自定义脚本,比如PreToolUse、PostToolUse、UserPromptSubmit等。这块是效率和安全的双重保障。
我实际在用的 hook 有两个。第一个是 PreToolUse 的检查脚本,它会拦截所有即将执行的 Bash 命令,检查命令是否包含危险模式(比如删除数据库、强制执行 push 等),一旦命中就中止操作。这个脚本我在一次事故之后写的:当时 Claude 在跑测试的时候误执行了一个清理脚本,把我的临时目录清空了,虽然没造成什么不可逆的损失,但这个教训让我意识到默认权限不能给得太宽。
const { execSync } = require('child_process'); const command = process.env.CLAUDE_TOOL_INPUT || ''; const dangerousPatterns = [ /rm\s+-rf\s*[\/~]/, /drop\s+table/i, /git\s+push\s+--force/i, /curl\s+.+\|\s*sh/i ]; if (dangerousPatterns.some((pattern) => pattern.test(command))) { console.error('拦截到危险命令,已阻止执行:' + command); process.exit(2); }第二个是 PostToolUse 的日志钩子,把所有 AI 执行过的工具调用记录到本地日志文件。这条日志特别有用,因为 Claude Code 会话崩了或者你想回顾一次长会话到底做了什么,没有日志就只能靠记忆。有了日志,就可以写脚本统计 AI 在哪些操作上花的时间最多、地图里跑了什么命令。hooks 里的脚本不一定复杂,关键在于“把关键动作沉淀成可审计、可自动化、可复用的代码”,这正是模板库叫 templates 而不是 tools 的原因。
3. 从零搭建一套可复用的 claude-code-templates
3.1 安装与初始化:Windows / macOS / Linux
我先说一下 Claude Code 本身的安装方式,再讲模板的落地方案。Claude Code 是一个 npm 全局包,官方推荐的安装命令:
npm install -g @anthropic-ai/claude-code装完之后在终端输入claude就能启动。macOS 和 Linux 上这一步没什么问题,Windows 用户要注意 Node.js 的版本,建议 18 以上。装好之后,建议先运行一遍claude并完成登录验证,然后进入下一步:初始化项目模板。
启动 Claude Code 后,在交互界面里输入/init,它会分析当前项目的代码结构,自动生成一份基础的 CLAUDE.md。这个功能对新手很友好,但对我的模板库来说只是起点。/init生成的 CLAUDE.md 基于对代码的静态分析,缺少团队约束和项目潜规则,所以我会再用自己的模板覆盖它。
初始化模板库的方式有两种。第一种是直接把模板仓库克隆到本地:
git clone https://github.com/yourname/claude-code-templates ~/.claude-templates第二种是把模板作为项目模板的一部分,复制到每个新项目里:
cp -r ~/.claude-templates/configs/CLAUDE.md.example ./CLAUDE.md cp -r ~/.claude-templates/configs/settings.json ./.claude/settings.json cp -r ~/.claude-templates/hooks/* ./.claude/hooks/这两种方式我都用过。对个人项目,第二种更干净,因为模板副本不会污染项目仓库;对团队项目,我推荐第一种,把模板仓库作为统一基准,然后要求每个人在自己本地同步。
3.2 把模板写进项目的具体位置
这套模板的关键是理解“三个层级”的配置覆盖关系。层级从高到低分别是:用户级配置文件、项目级配置文件、CLAUDE.md 项目说明。
用户级配置位置:
- Windows:
%USERPROFILE%\.claude\settings.json - macOS / Linux:
~/.claude/settings.json
项目级配置位置是.claude/settings.json,和用户级相比,项目级只影响当前仓库。CLAUDE.md 直接放在项目根目录,属于最高优先级的内容级配置,相当于一进项目就先加载“项目身份证”。三个层级的覆盖原则是:都保留,但项目级和 CLAUDE.md 里的说明会覆盖用户级里冲突的部分。
我之前踩过一个配置混乱的坑:在用户级权限里把Bash(npm run * )全部放行,然后项目里又放行了一个更宽泛的Bash(*),结果就是 Claude 在项目里可以无限制跑任何命令。后来我把模板里用户级和项目级的权限声明分开,并明确规则:项目级只能缩小权限范围,不能扩大权限范围。这个约定写进了模板的 README 里,之后团队里再没出现过类似问题。
模板里的apply-templates.sh脚本做了一件事:把上面的复制过程自动化。它会检查当前目录是否存在.claude目录,不存在就创建,然后把模板复制进去,最后提示用户手动检查 CLAUDE.md 里的项目说明。这样从克隆代码到开始使用 Claude Code,大概只需要一分钟。
3.3 接入第三方模型:以 DeepSeek 为例
Claude Code 默认使用 Anthropic 的模型,但它支持通过环境变量切换模型端点。社区里常用的玩法是接入 DeepSeek,利用 DeepSeek 兼容的 API 接口,把 Claude Code 变成一个前端,底层换成其他模型。这对预算有限、或者想尝试不同模型效果的团队来说,是一个很实际的用法。
我以 DeepSeek 为例,给出配置方式。确认好 DeepSeek 官方提供 Anthropic 兼容端点后,在终端设置两个环境变量:
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN=你的DeepSeek_API_Key然后启动 Claude Code 时指定模型:
claude --model deepseek-chatWindows PowerShell 下对应的写法:
$env:ANTHROPIC_BASE_URL = "https://api.deepseek.com/anthropic" $env:ANTHROPIC_AUTH_TOKEN = "你的DeepSeek_API_Key" claude --model deepseek-chat这里一定要留意:很多教程会同时设置ANTHROPIC_API_KEY,但在兼容模式下,ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY的优先级和行为是有差异的。我实测下来,使用兼容端点时用ANTHROPIC_AUTH_TOKEN更稳定,用ANTHROPIC_API_KEY有时会触发类似unexpected status 401 unauthorized的报错。如果发现401,先检查是不是同时设置了多个 key 环境变量互相冲突了。
这个配置方式有几个副作用需要提前说清楚。切换到 DeepSeek 之后,Claude Code 的一部分高级功能依赖后端模型能力,不同模型的 tool calling 能力、long context 表现、指令遵循能力都不一样,所以模板里的提示词可能需要微调。我的建议是保留默认的 CLAUDE.md,但提示词里的“绝对不要做什么”类约束要写得更强硬,因为弱模型更容易在长上下文里忘记约束。
3.4 在 VS Code 里配合使用
除了纯终端使用,Claude Code 也可以和 Visual Studio Code 结合。Anthropic 官方提供了一个 VS Code 扩展,装上之后可以在编辑器里直接打开 Claude Code 面板,不用来回切换终端窗口。
我个人的使用习惯是:复杂的全局操作放终端会话,文件级别的修改放 VS Code 面板。原因很简单:终端里跑命令方便看日志,编辑器面板里看 diff 方便 review。模板库在 VS Code 场景下的适配,主要是让它生成的代码改动更符合编辑器里的工作流。
具体做法是:在模板的 CLAUDE.md 里加了一行约定“所有修改都使用 Edit 工具并展示 diff,不要使用全文重写”,这样它改代码时会尽量做最小修改,diff 看起来清晰。另外在 settings.json 里把 diff 相关的命令加入白名单。这套适配做完之后,在 VS Code 里 review AI 的改动舒服很多,同时也能用上 VS Code 的自带 Git 能力。
4. 高频报错与避坑指南
模板再完善,也挡不住环境问题。这一节把我实际遇到的高频报错和排查思路整理成速查表,每一条都是真实踩过的。
4.1 API Key 相关的 401 错误
Claude Code 启动后最常见的报错是 401:
unexpected status 401 unauthorized: {"error":{"code":"invalid_api_key"}} unexpected status 401 unauthorized: {"error":{"code":"api_key_required"}} unexpected status 401 unauthorized: {"error":{"code":"unauthorized"}}这三个报错虽然都是 401,原因完全不同。
invalid_api_key表示 API Key 本身是无效的,最常见原因是复制的时候多复制了空格或引号。我排查过一次,发现是我在 PowerShell 里设置环境变量时用了中文引号,明面上看起来一样,实际字符串里多了两个不可见字符。解决办法是重新设置环境变量,设置完用echo $env:ANTHROPIC_API_KEY打印出来检查。在 bash 里可以用env | grep ANTHROPIC来看当前生效的所有相关变量。
api_key_required表示根本没检测到 API Key。这种情况在用户同时用 API Key 和订阅登录两种方式时容易出现。Claude Code 的官方登录方式有两种:一种是使用订阅账号,初始化时的 token 会存在本地;另一种是设置环境变量方式,二选一即可。如果你同时设置了 API Key 又残留了本地 token 文件,可能触发冲突。处理方式是清理本地残留的凭据缓存,重新用环境变量方式配置。
unauthorized表示身份认证通过但权限不足,通常是因为账号额度耗尽或者 Key 所属账号没有权限使用。这时候去控制台检查配额就行。
还有一种跟 401 相关的报错是:
error code token_exchange_failed details token exchange failed这个一般出现在订阅账号的 token 过期或刷新失败时。处理思路是先退出重新登录,如果还不行,就换用 API Key 方式。
下面这张表是速查版:
| 报错内容 | 常见原因 | 排查方向 |
|---|---|---|
| invalid_api_key | Key 复制错误、包含隐藏字符 | 重新设置并打印检查 |
| api_key_required | 环境变量未生效 | 检查是否使用正确的变量名 |
| unauthorized | 配额不足或账号不可用 | 去控制台检查项目权限 |
| token_exchange_failed | 订阅 token 过期 | 重新登录或改 API Key |
4.2 地区限制提示的处理思路
Claude Code 在部分地区、区域会出现以下提示:
{"error":{"code":"unsupported_country_region_territory","message":"country, region, or territory not supported"}}以及:
note: claude code might not be available in your country. check supported countries这类提示表面上是网络出口区域层面的校验,实际上是服务端对账号区域和当前网络位置的综合判断。我遇到这个问题时,第一反应千万不要想着去改什么系统设置来“绕”,因为这是服务端策略,并涉及合规层面,用非常规手段只会让账号风险变大。正确做法是先确认账号的注册区域、付款方式对应的区域,以及当前使用的网络出口区域是否一致。如果账号头部和网络出口不在同一区域,服务端会直接拒绝。这种情况需要先解决账号区域一致性问题,这也是我踩坑之后总结出来的:注册账户时候填的信息要真实可用,后面使用最好不要跨区频繁切换。
这个问题本质上属于账号层面的问题,和安全合规高度相关,所以在模板库的 FAQ 里我写的处理建议很简单:查看官方支持地区列表,确认当前区域是否在列表内;不要在非官方支持的地区强行使用非正规手段访问,这是对自己账号和代码安全负责。
4.3 PowerShell 无法识别 claude 命令
Windows 上另一个非常常见的报错:
claude : 无法将“claude”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。这个报错的本质是claude命令不在当前 PATH 里。npm 全局包安装后,会生成一个可执行文件放在 npm 的全局 bin 目录,Windows 上通常是%APPDATA%\npm。如果这个目录没被加入系统 PATH,终端就找不到claude。
排查步骤就三步:
- 运行
npm config get prefix,获取 npm 全局目录。 - 确认那个目录下的
claude.cmd或claude文件存在。 - 把该目录加入系统环境变量 PATH 并重启终端。
如果装了 nvm for Windows,这个问题更常见,因为不同 Node 版本下,全局 bin 目录会跟着变。解决方式是固定 Node 版本后再重新安装一次 Claude Code,并确认 PATH 指向的是当前版本对应的 bin 目录。
4.4 Windows 虚拟化与 VM Platform 报错
我在 Windows 上传 Claude 相关客户端时遇到过下面的提示:
Claude's workspace requires the Virtual Machine Platform on Windows. Enable it and try again.这个提示的意思是:Claude Code 的某些沙箱能力依赖 Windows 的可选功能“虚拟机平台”。这个问题本质上和 WSL2 底层机制有关,Claude Code 在 Windows 上实现文件系统隔离和沙箱操作时,会使用到 Windows 的虚拟化能力。解决方法是打开“启用或关闭 Windows 功能”,勾选“虚拟机平台”和“适用于 Linux 的 Windows 子系统”,重启系统即可。
这里有一个值得注意的点:如果你平时不用 Docker、不用 WSL,突然为了 Claude Code 打开“虚拟机平台”,可能在部分老机器上引起内存占用上升和虚拟化性能下降。我建议只在你确实需要用这些功能时才开启,不用的时候关闭也不影响。模板库里我把这个开启步骤写进了 Windows 的 README,避免团队新成员反复问。
4.5 别把不懂的代码粘进 devtools
最后想说一条和模板关系不大、但和安全直接相关的问题。网上有些教程会让你打开开发者工具,在控制台粘贴一段“激活脚本”或“初始化代码”来实现某些功能。Claude Code 官方文档甚至专门给出过警告:don't paste code into the devtools console that you don't understand。我的模板库里没有也永远不会有这种操作。
为什么我特别强调这条?因为开发者的信任习惯有时候会被利用。你看着一段只有几十行的脚本,但它可以读取你的本地文件、访问你的浏览器存储、修改你的 IDE 配置、甚至把你的 API Key 发到另一个地址。一旦你在 devtools 里执行了,它就已经运行在和你一样的权限级别上。我的建议是:任何让你打开终端或者开发者工具执行不明脚本的“教程”,直接关掉。这比我模板里任何一条权限规则都重要。
5. 这套模板还能怎么扩展
5.1 从个人模板到团队规范
个人使用的模板和团队使用的模板,设计重心完全不同。个人用的时候,重点是“省事”,所以权限可以放得很宽,CLAUDE.md 也可以写得随意。团队场景就不一样了,模板是一份“公共约束”,每个字都要经得起讨论。
我后来把模板库从个人仓库扩展成了团队仓库,改动最大的是三块:一是把 settings.json 里所有权限声明都加了注释,注明为什么放行;二是新增一个CODEOWNERS规则,指定 CLAUDE.md 和 hooks 目录的负责人,任何修改都必须经过 review;三是在 CI 里加了一个检查脚本,在代码提交时检查当前仓库的.claude目录是否和模板仓库一致,防止有人修改了团队约定。
这套东西跑起来之后,最明显的变化是:团队里的初级工程师也能放心让 Claude Code 干活了,因为约束都写死在模板里,AI 不会轻易越界。新同事克隆仓库后运行一遍apply-templates.sh,看到和团队其他人完全一样的命令规则,学习成本低了很多。
5.2 与其他工具的组合玩法
Claude Code 不是银弹,它最好和其他工具配合使用。模板库扩展到现在,我参考了不少代码片段组织方式,其中有一个灵感来自 30 seconds of code 这类短代码风格的思路:每个模板尽量压缩到“一段能快速理解、复制即用的内容”,而不是一个几百行的巨型配置。
实战中最常用的组合是:Claude Code 负责生产代码和测试,常规 lint、typecheck、format 交给项目自身的工具链,git pre-commit hook 负责把关。Deploy 和发布流程不要交给 Claude Code,至少现阶段别让它碰生产环境,因为生产发布需要的审计链路和权限隔离非常严格,AI 工具目前不适合直接介入最后一公里。
另外我建议把 Claude Code 的会话记录和 hooks 日志接入团队内部的日志系统,这样如果某次改动出了问题,可以回溯当时 Claude 执行了哪些工具调用、读了哪些文件。这种可追溯性,比任何“AI 生成的代码质量评级”都更有实际价值。
在文档展示层面,模板里的提示词文件我同时维护了纯文本版和 Markdown 版。纯文本版是给 Claude Code 直接读取的,Markdown 版放在团队 Wiki 里供人查阅。如果你计划把提示词发布成网页,记得用<pre><code>这类结构保证格式渲染正常,至少我见过很多代码片段因为忘了包一层 pre 而显示成一坨乱行的情况。
最后分享一点个人体会:我在整理claude-code-templates的过程中最大的收获,不是工作速度变快了多少,而是我终于把“如何让 AI 稳定干活”这件事变成了一套可以复用的方法。模板库不是一次性写完就完事的东西,它会随着你项目的演化不断修改。每隔一段时间,我会翻一遍 hooks 日志,看看 Claude Code 最近在项目里干过哪些事,哪些操作是频繁触发权限确认的,哪些命令是它自己想出来的,然后把新的规则写进模板。这套东西用到现在,已经不像“配置”,更像是一个陪我写代码的资深同事的工作手册。如果这篇文章对你有用,建议你先从 CLAUDE.md 模板和 code-review 提示词开始,把这两样放进你的下一个项目里,跑两周再调整,会比一开始就追求大而全稳健得多。