用了两个多月 claude-code,我最大的感触不是它能写多少代码,而是没有模板的 claude-code,约等于一匹脱缰的野马。今天让它看一段代码,它给你写成一篇分析报告;明天让它重构一个模块,它顺手把无关文件也改了;团队里两个人用同一个工具,产出的风格完全对不上。后来我认真研究了 claude-code-templates 这套东西,才算把工具真正“驯服”下来。
所谓 claude-code-templates,核心就是围绕 Claude Code 沉淀的提示词模板、斜杠命令和项目规范文件。它解决的并不是“让 AI 多能写”,而是“让 AI 稳定、可控、可复用”。这篇文章我会把模板设计的原因、文件存放规范、命令模板的写法、实战调优和常见坑位完整讲一遍,适合刚接触 Claude Code 想少走弯路的新手,也适合已经在用但觉得输出不稳定、想建立团队协作规范的老手。
1. 为什么 claude-code 必须有一套模板体系
1.1 没有模板的会话,为什么总在同一个坑里打转
Claude Code 不是简单的聊天机器人,它被设计成直接跑在终端里的工程助手,可以读取项目文件、修改代码、执行命令。这本是它的优势,但也带来两个致命问题:一是上下文缺失,二是边界模糊。
上下文缺失很好理解。默认情况下,每次会话它对项目的了解主要来自你的一句话描述,它不知道你的目录结构、代码规范、测试命令、历史包袱。这就好比让一个能力很强的新员工空降到一个快速迭代的项目,不给他看任何文档,让他直接上手改代码。他大概率会写出风格陌生、结构脱离现状的实现。
边界模糊更隐蔽。没有模板时,Claude Code 常常会“自由发挥”,你让它修一个 bug,它觉得相关代码也不够好,顺手帮你重构了;你让它写测试,它自己决定跳过哪些边界条件。这种主动性和能力放在个人玩具项目里还能接受,放进正式工程里就是隐患。
我统计过自己刚开始用的那两周:同一处业务逻辑会以两种风格被重复实现;改一个接口时,AI 连带更新了三个无关文件;它甚至在自己的总结里承认“我无法确定项目约定,所以按常见最佳实践处理”。核心问题不是它不够聪明,而是你没有给它一套固定的工作框架。
1.2 模板解决的不只是效率,是“可控性”
模板体系的价值,我用三个词概括:一致性、边界、复用。
一致性,是让同一类任务每次的执行流程、输出格式保持一致。今天是代码审查,明天也是同样的 Blocker/Major/Minor 分级,而不是一次详细到像论文、一次敷衍到像便签。
边界,是明确告诉它哪些可以碰、哪些绝不能动。比如“不要修改 public/ 目录下的静态资源”“不要引入新的第三方依赖”“不要自动执行 git push”。有了这些边界,AI 的自由发挥就被约束在合理范围内。
复用,是把一次成功的对话沉淀成可调用的命令。这个需求做过一次,效果不错,那就写成模板文件,下次输入一条斜杠命令就能用同一套标准再跑一遍。
把这三个词落到工程管理里,本质上就是可控性。你把 AI 当外包团队,就得给它需求文档;你把它当协作同事,就得给它流程规范。模板就是这层规范和文档。流程稳定靠的是纪律和模板,而不是个人发挥,这点放在人身上成立,放在 AI 身上一样成立。
2. 模板的载体:CLAUDE.md 与 .claude 目录
Claude Code 的模板体系不是挂在天上的语法糖,就是文件系统里的一套约定。理解这些载体存放的位置和加载规则,才知道模板应该往哪里放、怎么起名、怎么生效。
2.1 CLAUDE.md:项目的“长期记忆”,不是摆设
CLAUDE.md 放在项目根目录,每次启动会话时 Claude Code 会自动读取,相当于项目的“长期记忆”。这是所有模板体系里优先级最高的一层,因为它在任何对话中都生效,不管你用不用斜杠命令。
很多人的 CLAUDE.md 写得太敷衍,就两三行字,“这是一个某某项目”,然后没了。这等于浪费了最重要的全局模板。我建议把它当作“给 AI 看的新员工入职手册”,内容控制在一屏到两屏,重点覆盖四块:
- 项目技术栈与目录结构
- 构建、测试、启动命令
- 代码约定与禁止事项
- 容易被误操作的历史包袱
写一个可参考的极简示例:
# 项目说明 这是一个 Web 前端项目,基于 React 18 + TypeScript + Vite。 # 常用命令 - 安装依赖: npm install - 本地开发: npm run dev - 执行测试: npm run test - 构建产物: npm run build # 代码约定 - 页面组件放 src/pages,公共组件放 src/components,每个组件一个文件夹 - 状态管理统一使用 Zustand,禁止引入 Redux - 接口请求统一走 src/api 下的封装,禁止在组件里直接调用 fetch - 新代码必须通过 TypeScript 类型检查 # 注意事项 - 不要修改 public/ 目录下的静态资源文件 - vendor/ 目录是第三方源码快照,不要改动 - 生成代码需兼容 Node 18 运行环境CLAUDE.md 写得好不好,直接决定了每次对话的起点质量。它本身就是一个“全局模板”,只是它的作用域是整个项目,而不是某一条命令。
2.2 自定义斜杠命令:/review、/refactor 这类模板怎么落地
如果你只想给某类任务定义一个模板,那就要用到斜杠命令。在项目下创建.claude/commands/目录,里面每个 Markdown 文件就是一条命令,文件名不带 .md 后缀,就是触发的命令名。
举个例子,创建.claude/commands/review.md,然后在 Claude Code 会话里输入/review,它就会读取文件内容作为提示词执行。你还可以在命令模板里用${arg:参数说明}定义变量,执行时 Claude Code 会交互式地让你逐个填完。
比如:
# 命令名称:review(代码审查) 请审查 ${1:指定文件或目录} 的变更,输出格式固定为: |- Blocker:必须修复的问题 |- Major:强烈建议修改的问题 |- Minor:建议优化的问题这类命令模板的价值,是把高频、重复的需求从“每次重新描述”变成“一条命令调用”。写一次,全项目通用,团队成员也能复用。
2.3 全局、项目、团队三层模板的边界
模板存放的位置,决定了它的作用范围。实际工程里通常分三层:
| 层级 | 存放位置 | 适合内容 | 生效范围 |
|---|---|---|---|
| 全局 | ~/.claude/CLAUDE.md、~/.claude/commands/*.md | 个人编码偏好、通用禁止事项、个人常用命令 | 本机所有项目 |
| 项目 | 项目根目录CLAUDE.md、.claude/commands/*.md | 项目特有约定、技术栈说明、项目级命令模板 | 当前项目 |
| 团队 | 项目仓库内.claude/目录并提交到版本库 | 团队协作规范、统一代码审查标准、公共任务模板 | 所有克隆该仓库的人 |
我见过一个误区:把个人偏好写进项目模板提交到团队仓库,比如“变量命名必须用英文”“禁止使用三元表达式”,结果团队成员怨声载道。全局层写个人偏好,项目层写项目约束,团队层写协作规范,这个边界要划清楚。
2.4 模板文件格式与命名规范
先说命名。文件名即命令名,建议统一用小写字母加短横线,比如code-review.md、task-breakdown.md、test-generate.md。不要用空格和大写,不是不能,而是团队协作时容易踩到输入差异的坑。命令多了之后,命名风格不一致找起来会很难受。
再说文件内部格式。命令模板本质是 Markdown 文件,第一行可以用#写一个简短说明,也可以加 Front Matter 元信息,给命令增加描述,方便在命令列表里展示。有没有 Front Matter 不影响执行,但加上会更清晰。参数化的写法我后面细讲,这里只要记住:${arg:提示}是交互式补全参数,$ARG是自由文本参数。
最后提一个不少人都忽略的点:.claude目录里最好维护一个README.md,把每个命令模板的用途、适用场景、示例写清楚。工具本身不带文档,团队协作时没人记得住每个模板是干什么的,写个 README 比开会讲十遍都有用。
3. 核心模板逐个拆解:代码审查、任务拆解、测试生成
模板不是越多越好,一套能跑起来的最小集合里,我认为有三个核心模板最值得优先建立:代码审查、任务拆解、测试生成。下面逐个讲清楚设计思路和内部写法。
3.1 代码审查模板:不只看 Bug,看的是风险
代码审查是 Claude Code 用得最频繁的功能之一。但没模板时,它给出的反馈经常是“一锅乱炖”:命名不清晰、函数太长、潜在内存泄漏、注释写错了,各种严重级别的建议混在一起,毫无优先级。
后来我写的 review 模板里固定了几个核心要素:
一是指定审查范围,避免它把整个项目都翻出来看一遍,消耗上下文还容易跑偏。二是强制按严重级别分级输出,我把输出结构固定成 Blocker、Major、Minor 三档,并定义清楚:Blocker 是会导致错误或严重安全隐患的问题,Major 是强烈建议修改的健壮性和可维护性问题,Minor 是风格和优化建议。三是要求每条建议必须带文件路径和行号,没有定位的建议等于废话。四是要求涉及修复时给出最小修改的示例代码,而不是整段重写。
# 代码审查 你在项目中担任资深代码审查员。 审查范围:${1:需审查的文件或目录} 请按以下结构输出: ## Blocker(必须修复) - 文件路径:行号 | 问题 | 影响 ## Major(强烈建议修改) - 文件路径:行号 | 问题 | 影响 ## Minor(可优化) - 文件路径:行号 | 问题 | 优化建议 ## 修改示例 仅针对 Blocker 和 Major,给出最小改动示例。 约束: - 每条记录必须包含文件路径和行号 - 不修改任何文件,只输出审查结论 - 不要给出超出审查范围的额外建议 - 如果无法确定问题真实影响,标注“需要开发者确认”为什么这么设计?因为代码审查的输出价值在于“让开发者快速定位并决策”,而不是让 AI 展示它能找出多少问题。分级输出之后,开发者可以先处理 Blocker,有空再看 Minor。实测下来,团队里对这种输出格式的接受度远高于自由格式。
3.2 任务拆解模板:把“一句话需求”变成可执行清单
Claude Code 最容易出错的地方,其实不是写代码,而是“需求本身是模糊的,它却默认自己听懂了”。你输入“帮我做一个用户列表页”,它可能直接开始写组件,写完之后你才发现,你要的其实是带分页、筛选和权限控制的列表页。
任务拆解模板就是用于对抗这种模糊性的。它的核心不是把任务分成几个步骤,而是强制 AI 在动手前先完成两件事:澄清需求,定义完成标准。模板写法大致如下:
# 任务拆解 你在项目中担任技术负责人。 你接到的需求描述如下: ${1:任务描述} 请按以下流程执行: 1. 如果需求描述中存在以下模糊点,先逐条向用户提问,不要直接给方案: - 功能和范围边界 - 涉及的前后端模块 - 预期完成标准 - 是否包含测试与文档 2. 在用户确认需求后,输出任务清单,格式为: | 序号 | 任务 | 涉及文件 | 依赖前序任务 | 完成标准 | 验证方式 | 3. 最后检查:每个任务是否有明确的完成标准,如果没有,补充完整。 约束: - 第一步未完成前,禁止输出任务清单 - 任务粒度控制在小型 PR 可审查的范围内 - 不擅自修改任何代码,只做拆解这个模板在真实使用中效果非常明显。我第一次用它拆一个鉴权模块的需求时,它主动问了我三个问题:“是否需要支持刷新令牌”“退出登录时要不要清除所有本地缓存”“兼容哪些第三方登录方式”。这三个问题我确实没在需求里写过,但都是实现前必须确认的。没有模板时,它大概率会直接按常见方案默认处理,等代码写完了再被发现不对,返工成本很高。
3.3 测试生成模板:从“补用例”到“梳理覆盖”
让 Claude Code 生成测试用例,没用模板前我踩过一个很深的坑:它生成的全是快乐路径用例。每个函数都测了“正常输入返回正常结果”,边界条件、异常分支一概没有。表面上看测试覆盖率提高了,实际上关键的错误处理逻辑完全没被覆盖。
后来我在测试模板里做了几个强制要求:先分析被测代码的分支路径和边界条件,再输出用例设计表,最后才是具体实现。还要求它明确标出“哪些用例需要开发者人工确认”,比如涉及外部依赖和真实业务规则的用例。示例核心段落:
# 测试生成 针对 ${1:文件或函数} 生成测试。 执行步骤: 1. 阅读被测代码,列出所有分支条件与边界输入 2. 输出用例设计表:| 用例名 | 输入 | 预期输出 | 前置条件 | 分支覆盖点 | 3. 对标 Red / Green / Refactor:先确认需要补哪些用例 4. 生成测试代码文件,确保每个用例与设计表一一对应 约束: - 禁止只覆盖快乐路径 - 每个函数至少包含一个异常或边界输入用例 - 涉及外部服务时必须使用测试替身,不发起真实请求 - 若存在明显违反现有测试规范的情况,先指出,不直接写这套模板把“生成测试代码”这个动作延后了,先逼着 Claude Code 做用例设计。用例设计合理,生成的测试才有价值;用例设计一塌糊涂,生成的代码再漂亮也是垃圾。
3.4 模板间的组合使用
三个核心模板不是孤立存在的,实际工作流里可以组合起来用。我个人的惯用流程是:先执行任务拆解模板,把需求拆成可执行清单;实现过程中针对每个任务让 Claude Code 写代码;写完后执行代码审查模板;审查出可修复问题后再做修复,最后补一轮测试生成模板。
这套组合流程本质上对应了一个标准工程的完整生命周期:需求分析、实现、审查、测试。模板不负责替你思考,它负责的是让每个环节的输出稳定在可接受水平。你在会话里依次输入/task-breakdown、/review、/test-generate,执行标准就统一了。这比在会话里重新组织一遍语言要可靠得多。
4. 提示词模板的编写实战:结构、约束与调优
到了最核心的部分。理解了模板放在哪、长什么样之后,真正难的是“怎么写”。我见过很多人把模板写成长篇大论,看起来详尽,实际上 Claude Code 执行时经常漏掉关键指令。原因很简单:模板不是文档,是约束条件,写多了等于没写。
4.1 模板写作的本质:给你的模型建立契约
模板不是让 AI 更聪明,而是建立契约。契约的四要素是:输入、输出、权限、边界。输入就是模板中定义的参数,比如审查哪个文件、拆解什么任务;输出是固定的格式要求,比如分级结构、表格、检查项;权限是允许 AI 做什么,比如“只输出结论,不修改文件”;边界是禁止做什么,比如“不要引入新依赖”“不要改动未指定目录下的文件”。
把模板当契约来写,你会有完全不同的视角。你会开始考虑:如果它没理解我的指令,我能不能从输出格式里发现?如果它做过头了,哪条约束能拦住它?如果这次执行效果不好,我该改的是提示词措辞还是添加一条禁止项?
我常用一个比喻:给模板就像给外包团队写需求说明。需求说明不需要把所有业务背景都写进去,但验收标准、禁止事项、交付格式必须写清楚。AI 模型的注意力是有限的,契约条款越精炼,执行越稳定。
4.2 提示词模板的通用结构
我总结了一个可复用的提示词模板骨架,七个部分,按顺序出现。你可以把它当作草稿,再根据任务类型增删:
# 模板标题 ## 角色定义 你在项目中担任【角色】,你的任务是【一句话任务概述】。 ## 上下文锚定 - 项目约定遵守根目录 CLAUDE.md - 本次操作限定的范围:【文件/目录/模块】 - 技术栈基线:【版本信息】 ## 执行步骤 1. 【第一步,比如阅读或分析】 2. 【第二步,比如设计或提问】 3. 【第三步,比如输出或生成】 ## 输出格式 【固定结构,比如表格、分级清单、代码文件路径】 ## 禁止事项 - 【不要修改的范围】 - 【不要执行的命令】 - 【不要省略的步骤】 ## 人机协作点 - 在执行【某步】之前,必须向用户确认 - 产出后需用户核实的内容:【明确列出】 ## 完成判据 - 当且仅当输出满足以上格式且通过上述检查时,任务视为完成角色定义的作用是给 AI 一个稳定的行为基线,上下文锚定确保它不跑出当前代码范围,执行步骤约束流程,输出格式保证结果可用,禁止事项是安全兜底,人机协作点防止它一口气闷头干到底,完成判据是给整个流程收口。七个部分不是都要写满,但核心的“上下文锚定、输出格式、禁止事项、人机协作点”这四要素建议每次都写。
4.3 参数化设计:${arg} 占位符与交互补全
参数化是让模板从“一次性”变成“可复用”的关键。Claude Code 的命令模板支持${arg:提示语}形式的交互式占位符,执行命令时它会逐个询问并补全参数。这种机制用来在同一个模板结构下处理不同文件、不同需求。
比如一个通用的重构模板:
# 重构 请对 ${1:目标文件或模块} 进行重构。 目标:${2:希望改善的问题,如可读性/性能/结构} 范围限制:${3:允许改动的文件范围} 输出要求: - 重构前后对比说明 - 行为保持不变的验证方式 - 改动落地后需要运行的测试命令执行/refactor时,Claude Code 会依次问“目标文件或模块”“希望改善的问题”“允许改动的文件范围”,它拿到答案后按模板框架执行。这种方式的好处是模板本身不绑定具体业务,换另一个文件、另一个目标,同一个模板照样能跑。
另一种参数形式是$ARG,表示自由文本参数,适合把一段完整描述塞给模板。模板的灵活度更高,但代价是格式约束会变弱。我的建议是:能用结构化的${arg}就不用$ARG,结构化参数更可控,输出也更容易对齐。
4.4 模板质量自查清单
模板写完,不着急直接用,先过一遍自查。我每次写完模板都会按下面这份清单检查:
- 上下文锚点:是否写清楚了作用的文件或目录范围?
- 输出格式:是否有固定结构?开发者拿到后能直接定位关键信息吗?
- 禁止事项:是否明确声明了不允许做的事?至少一条,最好两条。
- 人机协作点:是否存在需要用户确认的节点?你在模板里标记了吗?
- 参数化:命令模板是否用
${arg}预留了关键输入? - 长度:模板正文是否控制在一屏到两屏内?过长的模板会稀释注意力。
- 可测试:是否定义了任务完成的判据?如果 AI 完成了但你不知道,模板就不完整。
- 依赖约定:是否引用了 CLAUDE.md 里的项目规范?没有引用的模板是孤立的。
做完这轮检查,模板才算达到可以进仓库的标准。我在初用模板的阶段,最大的问题就是写完直接用,结果模板又长又空,执行下来还不如自己手打提示词。后来强制自己过清单,情况才好转。
5. 实操记录:从零搭建一套模板库
说了这么多理论,落地的部分更值得看。下面是我给一个新项目搭建模板库的完整实操记录,你可以照着走一遍。
5.1 安装与目录初始化
Claude Code 的安装可以通过 npm 完成,一条命令:
npm install -g @anthropic-ai/claude-code装好之后,进入项目目录,初始化模板目录:
cd your-project mkdir -p .claude/commands然后创建第一个命令模板。以代码审查为例:
touch .claude/commands/review.md用编辑器把上一章提到的代码审查模板写入文件,保存。此时在项目里运行claude,输入/,你会看到命令列表里出现了review命令。输入/review,再按要求填参数,就能跑起来。
这个是第一天的目标:先跑通一条命令。不要一开始就把所有模板建好,工具链越简单越容易坚持用下去。
5.2 从“复制粘贴”到“定制改写”的落地路径
很多人看模板库的坑,是试图从网上找一套现成的东西直接抄进来用。模板是我见过的最难“抄作业”的东西之一,因为每个项目的约定、痛点、团队习惯都不一样。照搬别人的模板库,结果往往是要么跑不起来,要么跑起来但输出水土不服。
我更推荐“三段式落地路径”:
第一周:选择现成模板库中与你需求最接近的一个,比如审查模板,原样复制进去跑通。目标不是“完美”,而是感受命令模板的执行方式和输出格式。
第二周:把你在真实任务中反复使用的提示词,整理成自己的命令模板。整理的标准是“这个需求我一周至少提到两次”。比如你总说“帮我看一下这次改动有没有问题”,那就值得写一个review模板。
第三周:结合前两周的经验,把 CLAUDE.md 完善一遍。这时候你才知道项目里哪些约定是 Claude Code 容易违反的,哪些命令该写进 README。经过三周迭代的模板库,才真正属于你的项目。
5.3 项目规模与模板策略的匹配
模板体系不是固定模板,项目规模不同,策略要做调整。我整理了一张对照表:
| 项目类型 | 模板重点 | CLAUDE.md 详细度 |
|---|---|---|
| 个人玩具项目 | 只建 2~3 个核心命令,如 review、test | 简短,50 行内 |
| 小团队业务项目 | 审查、拆解、测试、提交信息生成 | 详细,覆盖约定和禁止项 |
| 多仓大型项目 | 按模块分区维护 .claude,强调范围限制 | 每个仓库维护独立版本,重点写边界 |
个人项目里模板太多会变成负担,命令列表刷出来一长串,常用没几个,还要花时间维护。小团队项目可以按协作流程来,审查和拆解模板优先。多仓项目最需要注意的是范围限制,每个仓库的 CLAUDE.md 一定要写清楚“这个仓库负责什么、不负责什么”,否则 Claude Code 很容易跨仓乱动。
5.4 实测效果:两个真实场景对比
场景一是老代码审查。没有模板前,我让 Claude Code 审查一个历史遗留模块,它输出了一条长篇总结,列出了十几条“建议”,排序混乱,有些是真实 Bug,有些是它自己的风格偏好,甚至还有两条建议互相矛盾。有模板之后,同样一段代码,输出变成了标准的三段式:Blocker 两条、Major 四条、Minor 六条,每条带文件路径和行号。我优先处理 Blocker 和 Major,十几分钟就完成了问题梳理,效率提升非常明显。
场景二是新需求拆解。没模板时,我提了一句“给订单模块加导出功能”,它直接给了一个实现方案,但没问“导出格式是 Excel 还是 CSV”“数据量级多大要不要走异步”“权限上谁能导出”。有模板后,它先抛出五个澄清问题,我逐一回答后,再输出一张可执行任务表,每个任务都带着完成标准。这次体验让我彻底理解了模板在这个场景里的价值:它把“AI 替我猜”变成了“AI 替我确认”。
6. 常见问题与排查技巧实录
用模板库的过程不会一帆风顺,多多少少都会遇到几个典型问题。我把实际踩过的坑整理成下面的排查实录,先看现象,再看原因,最后给处理方法。
6.1 模板不生效的排查路径
我在群里见的最多的一句话是“我建了命令模板,但输入/xxx没反应”。遇到这个问题,按顺序排查:
第一,检查文件名。文件名就是命令名,不能用大写字母、空格,也不能带 .md 扩展名输入。Review.md和review.md在我实际测试里有概率因为文件系统或工具版本的大小写处理产生不同的表现,建议全部统一成小写短横线命名,省心。第二,检查目录位置。.claude/commands/必须放在当前项目根目录,如果你在子目录里启动 claude-code,工具可能找不到。第三,检查启动路径。确认你进入 claude-code 会话时的工作目录,就是项目根目录。第四,试试列出命令。在会话里输入/查看命令列表,如果列表里没出现,说明模板没有被加载,回到前两步复查。
把这几步走完,模板不生效的问题基本能解决。如果还是不行,重启一下会话,让 Claude Code 重新扫描目录。
6.2 输出结果不稳定的几个优化方向
模板写出来执行了一次,效果不错,第二次执行却变差了,这种情况很常见。几个优化方向值得优先考虑。
模板太长,关键指令被稀释。我把一个长模板拆成三个短模板后,执行稳定性明显提升。注意力机制决定了一条提示词里越靠前被关注得越多,太长会导致后面重要的“禁止事项”被直接忽略。二是缺少负向约束。很多模板只写了“你要做什么”没写“不要做什么”,我把“禁止生成与任务无关的建议”加到模板里后,输出里的杂音少了很多。三是一次任务塞了太多步骤。模板试图让 AI 一口气完成“分析、设计、编码、审查、测试”,大概率到后面步骤质量下滑。正确做法是把任务拆成多个模板工位,每个模板只做一个环节。四是上下文太大。指定审查范围时,src/全目录可能撑爆上下文窗口,建议先缩小范围,或者让 Claude Code 先列目录再定范围。
6.3 多人协作与模板版本管理
团队一起用模板库,最大的隐性问题不是 AI,而是人。.claude目录应该像代码一样被版本管理,模板变更走 PR,配合 code review。谁想改模板,提 PR,其他人审查后再合入,避免出现个体把个人偏好塞进公共模板的操作。
我在团队推广时立了两条规矩:第一,公共模板里不写个人编码品味,比如“我喜欢函数名用动词开头”“禁止使用 any 类型”,这些写进全局层,不写进项目公共模板。第二,模板里要求 Claude Code 在执行完成后输出它读过的文件路径列表,方便团队成员复核它到底碰了哪些范围。这个习惯救过我们好几次,有次它擅自读取了敏感配置文件,就是因为输出里暴露了路径,才被及时拦住。
6.4 模板过多反而内耗,如何保持精简
最后聊一个容易被忽略的问题:模板越多越好吗?不是。每新增一个模板,都意味着多一份维护成本、多一次学习成本。模板库膨胀到一定规模后,使用者会在命令列表里迷茫,不知道用哪个,最后干脆不用了。
我个人的维护经验是:一个项目路径下的核心命令长期维持在 5~8 个,再多就要做合并或清理。清理标准很简单:先看使用频率,再看产出价值。三十天没用过、输出也从不被引用的模板,直接删。合并思路更实用,把review、security-review、dependency-review合并成一个review,通过参数选项区分重点类型,比分别维护三个模板文件省力得多。
做减法比做加法难,但模板库的可维护性恰恰取决于你多久做一次减法。每隔一段时间检查一遍模板库,就像给代码库做一次依赖清理,看着清爽,用起来也更顺手。
我在实际使用中体会最深的一点,是模板并不会让 Claude Code“变得更聪明”,它只是让工具的产出边界变得更清晰。刚开始我自己也有些抵抗,觉得写模板是额外负担,但跑通几条核心命令后,反而是它帮我省下了最多的重复沟通时间。如果只给你一条建议,那就从最小的模板开始,先写一个 review 命令,用一周,再决定要不要继续扩展。另外一个小技巧:CLAUDE.md 里写“不要做什么”,效果往往比写“要做什么”来得更直接。AI 的自由发挥和人的自由发挥一样,都需要在合理范围内进行。