实现计划:[FEATURE]
分支:[###-feature-name] | 日期:[DATE] | 规格说明:[link]
输入:来自 /specs/[###-feature-name]/spec.md 的功能规格说明
说明:本模板由 /speckit.plan 命令填充。执行流程可参考 .specify/templates/commands/plan.md。
摘要
[从功能规格中提取:核心需求 +(结合 research 的)技术方案摘要]
技术上下文
语言/版本: [例如 Python 3.11、Swift 5.9、Rust 1.75 或 NEEDS CLARIFICATION] 主要依赖: [例如 FastAPI、UIKit、LLVM 或 NEEDS CLARIFICATION] 存储: [如适用,例如 PostgreSQL、CoreData、文件 或 N/A] 测试: [例如 pytest、XCTest、cargo test 或 NEEDS CLARIFICATION] 目标平台: [例如 Linux 服务器、iOS 15+、WASM 或 NEEDS CLARIFICATION] 工程类型: [single/web/mobile - 决定源码结构] 性能目标: [领域相关,例如 1000 req/s、10k lines/sec、60 fps 或 NEEDS CLARIFICATION] 约束: [领域相关,例如 <200ms p95、<100MB 内存、支持离线 或 NEEDS CLARIFICATION] 规模/范围: [领域相关,例如 10k 用户、1M LOC、50 个页面 或 NEEDS CLARIFICATION]
宪法检查
门禁:必须在阶段 0 调研前通过;在阶段 1 设计后需要复检。
[根据 constitution 文件确定门禁项]
项目结构
文档(本功能)
specs/[###-feature]/
├── plan.md # 本文件(/speckit.plan 输出)
├── research.md # 阶段 0 输出(/speckit.plan)
├── data-model.md # 阶段 1 输出(/speckit.plan)
├── quickstart.md # 阶段 1 输出(/speckit.plan)
├── contracts/ # 阶段 1 输出(/speckit.plan)
└── tasks.md # 阶段 2 输出(/speckit.tasks - 不由 /speckit.plan 创建)
源码(仓库根目录)
# [不使用则删除] 选项 1:单体工程(默认)
src/
├── models/
├── services/
├── cli/
└── lib/
tests/
├── contract/
├── integration/
└── unit/
# [不使用则删除] 选项 2:Web 应用(检测到 "frontend" + "backend" 时)
backend/
├── src/
│ ├── models/
│ ├── services/
│ └── api/
└── tests/
frontend/
├── src/
│ ├── components/
│ ├── pages/
│ └── services/
└── tests/
# [不使用则删除] 选项 3:移动端 + API(检测到 "iOS/Android" 时)
api/
└── [同 backend 的结构]
ios/ 或 android/
└── [平台相关结构:功能模块、UI 流程、平台测试]
结构选择: [说明最终选择的结构,并引用上面列出的真实目录]
复杂度记录
仅在“宪法检查”存在需要解释的违规项时填写
| 违规项 | 必要性 | 为什么不能用更简单方案 |
|---|---|---|
| [例如:第 4 个子工程] | [当前需求] | [为何 3 个工程不够] |
| [例如:Repository 模式] | [具体问题] | [为何不能直接访问数据库] |