Skip to content

1.2 项目指令文件膨胀——什么时候该拆分

引言

小王的项目指令文件从 50 行涨到了 300 行。

里面有项目技术栈、代码风格约定——这些确实每次都需要。但也有 API 规范文档、部署流程、代码审查清单——这些只有特定场景才用得上。

问题不是"要不要写",而是"写在哪里"。

💡 本课程用 CLAUDE.md 作为代表

Claude Code 的 Skill 系统是最完整的,所以我们用它作为教学示例。但你学到的概念完全适用于其他工具——只需要把 CLAUDE.md 替换成你所用工具的等价物(.cursorrules.windsurfrules 等)。


判断标准:事实 vs 流程

一条简单的分界线:

事实
**是什么**——永远成立的陈述
- 项目使用 Vue 3 + TypeScript - 测试框架是 Vitest - 金额用整数(分),禁止浮点数 - 所有 API 调用走 src/api/ 层
→ 写在 **项目指令文件**
流程
**怎么做**——特定场景的操作步骤
- 部署流程:测试 → 构建 → 部署 → 验证 - 修复 Issue:查看 → 定位 → 修分支 → 修代码 → 测试 → PR - 代码审查检查清单(8 个维度) - API 设计规范(REST + GraphQL 完整规则)
→ 写在 **技能包**

三个信号:你的项目指令文件该减肥了

信号一:你开始反复粘贴同样的话

小王发现,每次做代码审查,他都要粘贴一段 30 行的审查清单到聊天中。

这意味着:这段内容应该是技能包,而不是手动复制。

信号二:项目指令文件里出现了"步骤"

小王的项目指令文件里有这么一段:

## 部署步骤
1. 运行 npm run test
2. 运行 npm run build
3. 运行 npm run deploy:prod
4. 检查部署状态

这意味着:步骤是流程,不是事实。应该提取为 /deploy 技能包。

信号三:项目指令文件超过 100 行

经验表明,项目指令文件超过 100 行后就该警惕,超过 200 行后 AI 对其遵从度明显下降。就像一份 200 条规则的员工手册——没人能全记住。

项目指令文件行数标准

  • 推荐:50-100 行(最佳状态)
  • 警告线:200 行(超过就该拆分)
  • 理想目标:核心事实为主

注意:技能包主文件的标准不同,参见 2.2 结构与配置

这意味着:把"偶尔需要"的内容移到技能包,项目指令文件只保留"始终需要"的核心。


小王的项目指令文件重构

重构前(300 行):

项目指令文件(300 行)
├── 技术栈和约定(50 行)✓ 始终需要
├── 代码风格(30 行)✓ 始终需要
├── API 规范(120 行)✗ 偶尔需要
├── 部署流程(40 行)✗ 偶尔需要
└── 代码审查清单(60 行)✗ 偶尔需要

重构后(80 行):

项目指令文件(80 行)
├── 技术栈和约定(50 行)✓
├── 代码风格(30 行)✓
└── 指向技能包的链接:
    - API 规范 → /api-guide
    - 部署 → /deploy
    - 审查 → /review

技能包/
├── api-guide/    ← 120 行,按需加载
├── deploy/       ← 40 行,按需加载
└── review/       ← 60 行,按需加载

Token 节省:每次会话从 ~6000 token 降到 ~1600 token,节省 73%


更多的"什么时候用技能包"

场景用项目指令文件用技能包
项目技术栈
代码风格约定
禁止操作列表
部署工作流
API 设计规范
代码审查清单
Issue 修复流程
测试运行约定
框架特定知识
项目状态仪表盘

💡 一个简单的记忆法

每次都要 AI 知道的 → 项目指令文件(像工位上的便签贴) 特定场景才需要的 → 技能包(像抽屉里的参考手册)


本节小结

📌 本节核心要点

  • 判断标准:事实(是什么)→ 项目指令文件,流程(怎么做)→ 技能包
  • 三个信号:反复粘贴、出现步骤、超过 200 行
  • 重构效果:小王的项目指令文件从 300 行降到 80 行,token 节省 73%
  • 记忆法:项目指令文件 = 工位便签,技能包 = 抽屉里的参考手册

思考题

  1. 检查你当前的项目指令文件,其中有多少内容是"流程"而非"事实"?挑出一处,如果改成技能包你会怎么设计?
  2. 有没有一种内容,既不是纯"事实"也不是纯"流程",而是介于两者之间?你会怎么处理?
  3. 如果你的项目指令文件只有 20 行,你觉得最不能省略的 3 条是什么?

下一节预告

知道了"什么时候用技能包",下一节我们深入技能包的设计哲学——渐进式披露。这个来自人机交互的概念,为什么是技能包系统的哲学基础?

下一节:渐进式披露——技能包的设计哲学