Skip to content

计划文档规范

存储位置规范

计划文档按状态分类存储在 .claude/plans/ 目录:

.claude/plans/
├── *.md           # 👉 进行中/待开始的计划(直接放在一级目录)
├── completed/      # ✅ 已完成的计划(整体工作完成后移入)
└── archived/       # 🗘️ 已废弃/取消的计划(移入不再执行)
  • 新产品功能或重构计划创建时,直接放在 .claude/plans/ 根目录
  • 整体工作全部完成后,自动移动到 .claude/plans/completed/
  • 计划被取消或不再执行时,将移动到 .claude/plans/archived/

语言规范

  • 计划文档名、内容和输出优先使用中文
  • 代码示例中的注释使用中文
  • 提交信息可使用中文或英文,保持一致

元数据规范

每个计划文档必须包含 Meta 元数据块:

markdown
---
created: 2026-03-21
completed: 2026-03-21
status: 未完成 | 已完成 | 废弃
---

更新规则

  1. 创建计划时:设置 createdstatus: 未完成
  2. 执行完成时:更新 completedstatus: 已完成
  3. 未完成中断时:记录未完成的 Chunk 和原因

中断记录示例

markdown
---
created: 2026-03-21
status: 未完成
pending:
  chunk: Chunk 3
  reason: 依赖 shadcn/ui Button 组件未安装
---

提交策略

分块提交原则

每个 Chunk 完成并验证后进行 git 提交,而非整体完成后再提交:

  1. 验证后提交:每个 Chunk 必须先验证(构建/测试/检查),验证通过后再提交
  2. 合理合并:相关联的 Chunk 可以合并提交,减少提交次数
  3. 提交粒度:每个提交应是一个独立、可验证的变更单元

提交类型

根据 Chunk 内容选择正确的提交类型:

内容类型提交类型示例
依赖安装、配置文件configconfig: 配置 React Router 路由
功能实现featfeat: 添加主布局和侧边栏组件
文档更新docsdocs: 更新安装说明
Bug 修复fixfix: 修复路由跳转问题

提交时机示例

Chunk 1 → 验证 → 提交
Chunk 2 → 验证 → 提交
Chunk 3 + Chunk 4 → 合并验证 → 提交

合并 Chunk 的判断标准

以下情况建议合并多个 Chunk:

  1. 功能关联:多个 Chunk 共同完成一个功能(如主题切换 + 页面组件)
  2. 工具关联:多个 Chunk 是同一类工具的配置(如 ESLint + Prettier)
  3. 基础设施:CI/CD、编辑器配置等基础设施相关内容

以下情况建议分开提交:

  1. 独立功能:每个 Chunk 是独立可用的功能
  2. 不同类型:配置类和功能类分开提交
  3. 验证周期长:验证时间较长的 Chunk 单独提交

计划文档结构

markdown
# 标题

> **For agentic workers:** 必须使用 superpowers 执行计划

**Goal:** 目标描述
**Architecture:** 架构说明
**Tech Stack:** 技术栈

---

## 提交策略

| Chunk | 提交信息 |
|-------|----------|
| ... | ... |

---

## Chunk N: 标题

### Task X: 任务标题

**Files:**
- Create: 文件路径
- Modify: 文件路径

- [ ] **Step 1: 步骤描述**
- [ ] **Step 2: 验证步骤**
- [ ] **Step N: 提交步骤**

---

## 验证清单

- [ ] **单元验证**: 各模块单独测试通过
- [ ] **集成验证**: 服务能正常启动,关键端点可访问
- [ ] **E2E 验证**: 必须进行端到端测试验证,完成完整对话流程

测试和验证

测试用例沉淀要求

每完成一个功能模块,必须同步添加对应的单元测试用例:

  1. 按模块组织agent/test/test_模块名.py,一个模块对应一个测试文件
  2. 一个测试验证一个行为:每个测试函数只验证一个特定功能点或边界条件
  3. 不依赖外部服务:单元测试不访问网络、数据库或外部 API
  4. 快速执行:所有单元测试应能在 10 秒内完成
  5. 命名清晰test_功能名(),清晰表达测试内容
  6. 使用中文:所有注释、打印信息、错误提示都使用中文,便于团队理解

收益:

  • 后续重构能快速发现回归问题
  • 新人能通过测试用例理解代码预期行为
  • 问题排查能通过测试用例快速定位

强制验证要求

完整功能开发完成后,必须进行 E2E 端到端验证:

  1. 启动验证: 两种启动方式(LangGraph CLI、自定义 CLI)都能正常启动
  2. 端点验证: /health 返回 200,/chat 能正常输出 SSE 流
  3. 环境变量验证: .env 文件加载和环境变量覆盖正常工作
  4. 流式验证: 前端能正确解析 SSE 流式响应

不能仅完成单元测试就宣告完成,必须实际启动服务并验证端到端工作流程


注意事项

  1. 验证优先:任何时候都应先验证再提交,未验证的代码不应提交
  2. 增量提交:避免大爆炸式提交,每个提交应可独立回滚
  3. 原子性:每个 Chunk 应是原子操作,要么全部成功,要么全部回滚

基于 MIT 许可发布