0. 顶层整体视角(信息分层逻辑)

分层 目录/文件 作用范畴 核心关键词
治理层 memory/ 原则、约束、演进 宪法、守护一致性
生成规范层 templates/ 规格/计划/任务模版 约束 AI 输出形态
执行自动化层 scripts/ 过程自动化 创建、检查、衔接
业务特性层 specs// 需求→计划→任务→实现细节 可执行规范
协作与代理层 CLAUDE.md (或其他 AI 协作文件) 给 AI 的上下文记忆 “长程思维”
根级元数据 README / pyproject.toml / .gitignore / LICENSE 等 基础工程结构 规范化工程项目
工件派生层 contracts/、data-model.md、tasks.md 从规范派生的结构化工件 可生成/可验证
演进反馈层 research.md / quickstart.md / implementation-details/ 细化、验证、复盘 持续精炼

记住:一切的“源”是 spec.md(功能规格),其余文件均为衍生或支撑。


1. memory/ (项目“宪法与治理”)

1.1 memory/constitution.md

  • What:项目的“开发宪法”——硬性基础原则集合(例如 Library-First、CLI 强制、Test-First、反过度抽象、集成优先测试等)。
  • Why:
    • 统一 AI 与人类贡献者的系统级思维方式。
    • 防止在多迭代、多成员、多 AI 模型参与下偏离初衷。
    • 作为评审和拒绝“不符合项目精神”提交的依据。
  • How:
    • 新特性规划前,让 AI / 人类都“读宪法”——可以在 prompt 中引用其核心条目。
    • 任何与宪法冲突的实现需显式记录 justification(理由),并在 PR 评审中讨论。
    • 更新宪法必须走变更流程(见 checklist)。

1.2 memory/constitution_update_checklist.md

  • What:修改宪法时的审批清单(是否有破坏性影响、是否向后兼容、是否有记录等)。
  • Why:防止随意变更原则导致“方法学漂移”或架构碎片化。
  • How:
    • 修改前复制 checklist,填写变更标题、动机、影响面、回滚策略。
    • 评审通过后更新 constitution.md 并在 Git 历史中留存审议记录(建议提交信息含 “Constitution Update”)。

2. templates/ (模板驱动高质量生成)

2.1 templates/spec-template.md

  • What:生成规范 spec.md 的骨架,包含功能描述、用户场景、功能需求、关键实体、测试与验收清单、[NEEDS CLARIFICATION] 标记策略等。
  • Why:
    • 约束 AI 不要掺入“实现细节”
    • 强制显式列出不确定项,防止无声假设。
  • How:
    • 不建议在此加入具体技术栈字段。
    • 自定义时:仅新增你团队“必填业务维度”(如合规、风控、国际化)。

2.2 templates/plan-template.md

  • What:技术实施计划结构(架构视图、组件分解、数据流、接口契约指针、阶段 Gate、自查清单等)。
  • Why:
    • 把 “WHAT” 转为 “HOW” 但又保持高层抽象→防止过早写代码。
    • 让 AI 先验证“结构是否健壮”,而不是直接跳入代码生成。
  • How:
    • 若团队有特定“性能预算”“安全策略”,可在模板中预置栏目。
    • Phase -1 Gates(简化、反抽象、集成优先)要保留,防止膨胀。

2.3 templates/tasks-template.md

  • What:任务拆分与并行标记([P])、依赖标识、交付标准格式。
  • Why:
    • 保证任务粒度可执行、可估时、可追踪。
    • 避免纯自然语言“空洞任务”。
  • How:
    • 可新增 “Owner”/“Estimate” 字段配合 PM 工具同步。
    • 任务变更时应反查是否需同步 plan/spec。

2.4 可能出现的其他模板(视版本而定)

  • CLAUDE-template.md、research-template.md 等,用于统一 AI 行为或研究记录格式。

3. scripts/ (流程自动化与一致性保障)

文件 What Why How(常用触发/注意事项)
common.sh 公共函数库 复用日志、颜色、校验逻辑 不要直接在其他脚本复制粘贴逻辑,保持 DRY
create-new-feature.sh 新功能目录+分支创建脚本 标准化命名、编号、目录结构 通常被 /specify 间接触发;命令行也可手动执行
get-feature-paths.sh 获取当前或所有 feature 目录路径 供其他脚本快速定位 不建议硬编码路径,调用它
setup-plan.sh 在已有 spec 基础上生成 plan 与相关文档骨架 确保 plan 生成一致 若手动修改路径可能导致此脚本失效
check-task-prerequisites.sh 任务执行前环境检查 防止缺依赖导致半途失败 在 CI/CD 或本地任务执行前调用
update-claude-md.sh 同步/刷新 AI 协作文件 保持 AI 的上下文最新 变更 constitution 或全局策略后运行
(可能有 PowerShell 对应 .ps1) Windows / 跨平台支持 降低环境壁垒 Windows 成员使用 ps 版本

扩展脚本时:保持“单一职责”,新增脚本需在 README 或内部开发手册中注册。


4. specs/-/ (特性级“单元宇宙”)

目录命名约定:

  • NNN-kebab-name,数字递增(001、002……),slug 由初次描述自动生成。
  • 建议:不要手动改编号;重命名 slug 要检查引用。

下面逐文件详解(按形成顺序和依赖关系组织):

4.1 spec.md (功能规格)

  • What:唯一的“业务与功能意图”根文件:包含范围、场景、功能需求(FR)、非功能约束(NFR)、关键实体与关系、测试/验收条件、风险与未决项。
  • Why:所有后续 artefacts 必须可追溯映射到它(需求可追踪性矩阵思想)。
  • How:
    • 填写或澄清 [NEEDS CLARIFICATION] 标记,最终需清零或解释保留原因。
    • 变更流程:每次修改应写进 commit message(如 “Spec: clarify FR-007 retention policy”)。
    • 可添加自定义区块:合规、数据治理、隐私策略。

4.2 plan.md (技术实施计划)

  • What:抽象架构、模块划分、架构选型理由、数据流、组件边界、阶段 Gate、自查 checklist。
  • Why:防止 AI 或成员直接从 spec “跃迁”到代码,遗漏架构合理性评估。
  • How:
    • 每个技术决策要指向其 FR / NFR 来源(如 “Decision D3 -> FR-004, NFR-02”)。
    • 如果与宪法冲突,必须写 “Justification” 块。
    • 若后期发现实现困难,先回溯 plan 调整再改代码。

4.3 data-model.md (数据模型)

  • What:实体 → 字段(类型/约束)→ 关系(1:N / M:N / 聚合)→ 语义说明。
  • Why:统一 API / DB / 前端模型防止分歧;是合约与测试生成的一个核心源。
  • How:
    • 优先用“概念模型”语言(领域话语)而非直接数据库表结构。
    • 变更字段需同步:contracts、测试、迁移脚本(如存在)。
    • 最好添加“来源需求(FR-xxx)”列以追溯。

4.4 contracts/

  • What:接口协议(REST/OpenAPI/WebSocket 事件、CLI 命令列表、消息格式等)。
    • 示例:api-spec.json(OpenAPI)、signalr-spec.mdevents.yml
  • Why:提供模块/客户端间“稳定契约”,支持自动生成 Stub/SDK/测试。
  • How:
    • 不要在实现阶段随意改签名 → 若需修改,先改 spec 与 plan。
    • 建议为每个 endpoint/消息添加:来源 FR、成功/失败场景、错误码策略。

4.5 research.md

  • What:围绕本功能的调研:框架对比、性能评估、风险分析、库版本锁定、参考资料链接。
  • Why:让“决策理由”与“事实证据”绑定,避免经验化决策变成口口相传。
  • How:
    • 结构建议:Question → Findings → Sources → Decision → Linked FR。
    • 添加日期戳(如 “2025-09-19 Research Refresh”)以提示过期风险。

4.6 quickstart.md

  • What:最低摩擦的“运行/验证该功能”指南(启动命令、环境变量、最小测试路径)。
  • Why:支持新成员快速加入;为 QA / 运维 / Demo 提供统一入口。
  • How:
    • 只写“核心路径”,详尽部署放 README 或 ops 手册。
    • 可附:示例 CLI 调用 / cURL / seed 数据脚本指针。

4.7 tasks.md

  • What:根据 plan+contracts+data-model 派生的任务拆解表。
  • Why:组织执行、度量进度、控制并行化风险。
  • How:
    • 任务命名建议:[Layer] Verb Object Qualifier(如 [Backend] Implement album reorder endpoint)。
    • [P] 表示可并行;依赖用 “Blocked by #T5”。
    • 完成后若产生新需求 → 回写 spec(形成闭环)。

4.8 implementation-details/ (可能由后续命令或人工创建)

  • What:存放深入技术说明,如复杂算法、性能调优策略、数据迁移流程、特定序列图等。
  • Why:保持 plan.md / spec.md 高层“可阅读”,把噪音隔离。
  • How:
    • 命名建议:caching-strategy.md, migration-plan-v1.md, rate-limiter-design.md
    • 不要让这里“倒灌”成源码复制粘贴仓库;保持抽象层次。

4.9 可能派生的其他文件

文件 场景
tests/(或 test specs) 初始阶段若引入测试文件夹并与任务关联
quickstart-assets/ Demo 截图、脚本等
README (feature 局部) 特性级介绍(通常不鼓励,集中在主 README)

5. 根目录常见文件

文件 What Why How
README.md 项目整体介绍、快速开始、核心理念入口 给新读者 5 分钟了解 保持精炼,深度内容指向 spec-driven.md
spec-driven.md 完整方法论阐述(哲学、工作流、命令说明、示例) 提供统一心智模型 若流程演进,先改这里再改模板
pyproject.toml / uv.lock(视版本) Python 构建、依赖声明 可复现实验环境 锁定关键依赖版本,避免 AI 生成代码不兼容
LICENSE 开源协议(MIT) 法律边界 不修改或遵规范
.gitignore Git 过滤规则 保持仓库整洁 如新增生成目录,记得补充
CLAUDE.md / AGENT.md 提供给特定 AI 的上下文记忆/使用方式 减少重复 prompt、稳定 AI 输出风格 宪法或流程更新后同步刷新
CONTRIBUTING.md 贡献流程、分支策略、提交流程 降低外部贡献摩擦 保持与脚本和模板一致
scripts/(见上) —— —— ——

6. AI 协作类文件(如 CLAUDE.md)

  • What:一个汇总性“AI 使用上下文”文件(当前约束、命令说明、历史决策摘要)。
  • Why:为长周期对话提供“持久记忆”——在多轮交互中维持一致性。
  • How:
    • 结构建议:Context / Active Features / Recent Decisions / Open Clarifications。
    • 可以让脚本(如 update-claude-md.sh)在每次新 feature 生成后自动补充摘要。

7. 文件之间的“溯源链路”(Traceability Map)

  1. spec.md
  2. ├─ 派生 plan.md
  3. ├─ 细化 data-model.md
  4. ├─ 细化 contracts/
  5. ├─ 触发 research.md (补充信息反向修正 plan / spec
  6. └─ 输出 tasks.md
  7. └─ 驱动 代码 / 测试实现
  8. ├─ 校验 quickstart.md (验证路径来自 spec 用户旅程)
  9. └─ 指导 constitution.md(约束变更与架构风格)

任何一个下游文件的“重大变更”原则上必须向上溯源确认是否需要更新 spec / plan。


8. 协作与治理建议

场景 行为 反模式警告
新功能启动 /specify 生成规范,再人工审校 spec.md 直接跳过到 /plan
技术分歧 在 plan.md 写出“多备选比较”并链接 research.md 在 PR 代码里才开始争论
新人入组 先读 README → spec-driven.md → constitution.md → 最新两个 feature spec 直接看代码目录
需求变更 标记 spec.md 变更块 + 更新 plan/data-model/contracts 只改代码不改文档
任务管理 从 tasks.md 同步到外部工具(如 Jira)并保持单一真实来源 双重维护导致不一致
异常情况 在 quickstart.md 添加“故障排查最短路径” FAQ 散落在聊天记录

9. 自定义扩展建议(成熟团队可引入)

新目录/文件 目的 说明
compliance/ 合规与审计条目 与金融、医疗等行业相关
docs/decisions/ADR-xxx.md 架构决策记录(ADR) 可与 plan.md 双向引用
ops/ 部署与运维脚本 与开发规范隔离
qa/ 手动测试脚本、覆盖率策略 与自动化测试形成互补
localization/ 多语言资源规划说明 与实体/界面需求关联

10. 常见误区与纠偏

误区 危害 纠正做法
在 spec.md 写实现技术细节 规格僵化、复用性下降 技术放 plan / implementation-details
tasks.md 直接手写不由工具生成 缺失溯源、遗漏需求 始终用 /tasks 初生,再人工微调
research.md 只贴链接无结论 决策不可复核 采用 “Question → Analysis → Decision → Linked FR” 模板
contracts 与代码脱节 接口漂移、客户端破裂 每次接口变更先改 contracts 再实现
不维护 constitution 架构风格分裂 定期(如月度)审查是否需修订
不清理 [NEEDS CLARIFICATION] 需求歧义放大到实现 在计划前必须清零或显式延期标注

11. 示例:一个完整特性目录展开(带文件角色标注)

  1. specs/
  2. └── 003-chat-system/
  3. ├── spec.md # 功能规格(源头)
  4. ├── plan.md # 技术规划(结构与路径)
  5. ├── data-model.md # 实体/关系模型
  6. ├── contracts/
  7. ├── api-spec.json # REST/OpenAPI 合约
  8. └── websocket-events.md# 实时消息事件协议
  9. ├── research.md # 库/协议对比与决策
  10. ├── quickstart.md # 启动与最小验证
  11. ├── tasks.md # 拆解任务(含并行标记)
  12. ├── implementation-details/
  13. ├── scaling-strategy.md
  14. └── message-retention-design.md
  15. └── attachments/ # (可选)图表/序列图/流程图

12. 快速判断“这个文件应不应该放这里”的三问法

  1. 它是否属于“意图/需求解释”?→ spec.md
  2. 是否是“需求到技术的翻译与结构化决策”?→ plan.md / research.md
  3. 是否是“对外协议或内部协作契约”?→ contracts/
  4. 是否是“数据语义中心”?→ data-model.md
  5. 是否是“执行级拆解”?→ tasks.md
  6. 是否是“具体实现策略/深度细节/调优”?→ implementation-details/
  7. 是否跨特性且长期约束?→ memory/constitution.md
  8. 是否是支撑型骨架?→ templates/
  9. 是否是把流程自动化?→ scripts/

说明该内容混杂,需拆分


13. 维护节奏建议(周期化运营)

周期 关注点 产出
每开发迭代(Sprint) 新 feature 规格与计划 新 specs// 目录
每周 清理未解决 [NEEDS CLARIFICATION] 状态报告/回溯列表
每两周 review constitution 适配性 是否需要修订提案
每月 研究文档是否过期 标记过期/刷新 research
每季度 模板健康检查(是否需增强) 模板迭代 changelog

14. 你可以立刻落地的操作清单(Checklist)

操作 价值
为现有 specs 反向补上 FR 编号与 contracts 链接 建立追踪矩阵
在 tasks.md 增加 “Source FR” 列 保障需求完整覆盖
为 research.md 增加 “Last Validated Date” 字段 提醒陈旧风险
建立 scripts/validate-traceability.sh 自动校验 spec→plan→tasks 链路
在 CI 中加入 “contracts drift check” 防止接口漂移
引入 “spec review 模板” Pull Request 模板 规范评审尺度