文档书写规范¶
本文件受项目宪法 §7 管辖;修改须按宪法 §7 随评审流程走。唯一权威来源,任何 Spec 不得另立规则。
Spec 文档模板¶
每份 Spec 至少包含以下章节(不适用的章节删除,不留 "N/A"):
- 概述:背景、目标、范围(含明确"不做的事")
- 需求:用户故事按 P1/P2/P3 排序,每条附 Why this priority 与 Independent Test(P1 单独做完必须是能运行的 MVP);功能需求 FR-XXX 编号,每条可独立测试,并把砍掉的范围写进 FR(如"支持 X(v1)不支持 Y");澄清标记 [NEEDS CLARIFICATION] 不超过 3 个,优先级 scope > security > UX > technical(技术选型不是澄清项,属 plan 阶段)
- 验收标准:SC-XXX 编号,四条硬标准——可量化(带数字)、技术无关(不提框架/语言/数据库/工具)、用户视角(不懂技术的 PM 可直接验收)、可验证;边界条件(断网、超时、非法输入)写入 Edge Cases
- 假设:只写合理默认行为,不写技术选型
- 关键实体:仅涉及数据时填写;只写业务定义与关系,不写字段类型/索引/DDL
- 设计:描述用户可观察的业务流程与异常分支,不包含技术架构和代码结构
- API 与数据:描述业务交互的输入、输出及实体关系;具体接口路径、传输协议、字段类型及技术模型由 Plan 与 contracts 承接
- 提交前自查:全文搜技术栈名(命中即改);搜 should/最好/考虑(命中即改);每条 FR 能直接写成一条测试用例;每条 SC 可交由 PM 验收
文档文件命名¶
<主题>-spec-<序号>.md(如 auth-spec-001.md);草稿加 -draft-<序号> 后缀;变更/选型提案加 -proposal-<序号> 后缀。
模块/仓库命名¶
小写字母 + 短横线(如 lab-edu-core),避免私有缩写。
API 路径约定¶
/api/v1/<资源>/[<子资源>];资源名使用小写复数,REST 风格但不强制。
开发工作流规范¶
plan 产物(plan.md)¶
- 必须含:Summary / Technical Context / Constitution Check / Project Structure / Complexity Tracking / Phase 0/1 产物。
- Technical Context:AI 推断选型 MUST 标 [INFERRED];research.md 中每个决定必有 Decision / Rationale / Alternatives,且 Alternatives 至少 2 个并写明被否理由。
- Constitution Check:机械检查表(原则 | 具体的 Gate 问题 | 通过/偏离/违反三档 | Evidence 指向文件路径);设计前后各查一次;违反项入 Complexity Tracking,每项记录"试过的简单方案 + 至少 2 个被否更简方案"。
- Project Structure 只保留 1 个选项并展开真实路径(出现 "Option 1/2/3" 视为不合格,打回)。
- data-model.md:只写业务约束、验证规则与状态机,不出现 SQL DDL(CREATE/ALTER/DROP/INDEX/REFERENCES/DEFAULT)。
- quickstart.md:每个场景含 Prerequisites / Steps / Expected output / Validation,命令可直接执行,预期输出可断言。
- 不适用的节删除,不留 "N/A"。
tasks 产物(tasks.md)¶
- 每条格式:
- [ ] TXXX [P?] [USx?] 描述(含文件路径),缺一视为不合格(Setup/Foundational/Polish 阶段无 [Story] 标签)。 - 颗粒度:一个文件 = 一条 task(跨文件 service 除外),一个 US 约 6~8 条;禁止 "加 import" / "加 docstring" 级原子 task;AI 拿到 task 无需再问问题。
- 依赖:US 之间独立(删 US2 不影响 US1 跑通);非并行 task 未标
depends on TXXX视为不合格;跨 US 依赖只扩展不重构。 - [P] 标记仅当"不同文件 + 无未完成依赖";未标 [P] 的 task 至少有 1 个依赖。
- Tests 段仅当 spec/宪法显式要求测试(TDD、覆盖率门禁等)时出现,并注明来源(per constitution / per spec FR-XXX)。
- Final Phase 不超过 10 条,不得放入对其他 feature 也适用的项目级基建(监控、CI 等走单独 spec)。
- 交付策略按团队规模选:1-2 人用 MVP First 或 Incremental;3+ 人可用 Parallel Team。
implement 阶段纪律¶
- ① 实现启动前 MUST 加载全部设计文档(plan / tasks / data-model / contracts / research / 宪法 / quickstart),漏读视为违规。
- ② 对既有配置文件(.gitignore / .dockerignore / README.md / .github/workflows/ 等)只检测后追加,追加处标注 [SPEC-KIT APPENDED 日期],禁止整体重写覆盖。
- ③ 每条任务完成立即标 [X] 并跑验证命令,失败标回 [ ] 并停止;禁止一次批量标记 3 条以上 [X]。
- ④ 阶段顺序固定 Setup → Tests → Core → Integration → Polish,阶段间以真实可执行命令(build / 启动 / quickstart 场景)设门禁,命令失败必须 halt。
- ⑤ 完成报告含四表:任务完成、Spec 符合度、宪法符合度、测试覆盖;缺项打回。
- ⑥ 实现阶段发现的 spec 遗漏:禁止当场拍板,MUST 写 ADR(docs/adr/)+ 同步 spec amend + 修正 tasks.md 三处同步。
变更记录¶
2026-10-29 整稿评审通过后澄清 Spec 模板第 6、7 项,保留原章节并明确与 Plan/contracts 的职责分工;其他规则不变。批准依据见 docs/agents/ratification-record-001.md。