其他
开发前关键技术决策不明时,用限时技术 Spike…
在开发前对可能阻塞进度的关键技术问题,创建限时、以证据和决策为导向的 spike 文档。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
开发前关键技术决策不明时,用限时技术 S通用
解决思路
- 在 `${input:FolderPath|docs/spikes}` 目录中为每个 spike 创建独立文件,并按 `[category]-[short-description]-spike.md` 命名,例如 `api-copilot-integration-spike.md`、`performance-realtime-audio-spike.md`。
- 在文件 frontmatter 中填写 `title`、`category`(默认 `${input:Category|Technical}`)、`status`(默认 `🔴 Not Started`)、`priority`(默认 `${input:Priority|High}`)、`timebox`(默认 `${input:Timebox|1 week}`)、`created`(`[YYYY-MM-DD]`)、`updated`(`[YYYY-MM-DD]`)、`owner`(`${input:Owner}`)、`tags`(包含 `"technical-spike"`、`"${input:Category|technical}"`、`"research"`)。
- 编写 `Summary` 部分,包含 `Spike Objective`(需要解决的具体问题或决策)、`Why This Matters`(对开发/架构决策的影响)、`Timebox`(分配时间)、`Decision Deadline`(必须解决以避免阻塞开发的截止时间)。
- 编写 `Research Question(s)` 部分,包含 `Primary Question`(主要技术问题)和 `Secondary Questions`(相关次要问题列表)。
- 编写 `Investigation Plan` 的 `Research Tasks` 清单,逐项包含:具体研究任务 1、具体研究任务 2、具体研究任务 3、创建 proof of concept/prototype、记录发现与建议。
- 编写 `Success Criteria`,定义 spike 完成条件:具体标准 1、具体标准 2、清晰建议已记录、proof of concept 已完成(如适用)。
- 编写 `Technical Context`,包含 `Related Components`(受决策影响的系统组件)、`Dependencies`(其他依赖此决策的 spike 或决策)、`Constraints`(影响方案的已知限制或需求)。
- 编写 `Research Findings`,包含 `Investigation Results`(研究发现、测试结果和证据)、`Prototype/Testing Notes`(原型/spike/技术实验结果)、`External Resources`(相关文档、API 参考、社区讨论、示例/教程链接)。
- 编写 `Decision`,包含 `Recommendation`(基于发现的明确建议)、`Rationale`(为何选择该方案而非替代方案)、`Implementation Notes`(实现关键注意事项)、`Follow-up Actions`(行动项 1、行动项 2、更新架构文档、创建实现任务)。
- 编写 `Status History` 表格,记录 `Date`、`Status`、`Notes`,并包含状态行:`🔴 Not Started`/`Spike created and scoped`、`🟡 In Progress`/`Research commenced`、`🟢 Complete`/`[Resolution summary]`;底部写 `_Last updated: [Date] by [Name]_`。
- 若 spike 属于 API Integration,聚焦第三方 API 能力与限制、集成模式与认证、速率限制与性能特征。
- 若 spike 属于 Architecture & Design,聚焦系统架构决策、设计模式适用性、组件交互模型。
- 若 spike 属于 Performance & Scalability,聚焦性能需求与约束、可扩展性瓶颈与解决方案、资源利用模式。
- 若 spike 属于 Platform & Infrastructure,聚焦平台能力与限制、基础设施需求、部署与托管考虑。
- 若 spike 属于 Security & Compliance,聚焦安全需求与实现、合规约束、认证与授权方法。
- 若 spike 属于 User Experience,聚焦用户交互模式、可访问性需求、界面设计决策。
- 文件命名使用描述性 kebab-case,标明类别和具体未知项。
- API/Integration 命名示例:`api-copilot-chat-integration-spike.md`、`api-azure-speech-realtime-spike.md`、`api-vscode-extension-capabilities-spike.md`。
- Performance 命名示例:`performance-audio-processing-latency-spike.md`、`performance-extension-host-limitations-spike.md`、`performance-webrtc-reliability-spike.md`。
- Architecture 命名示例:`architecture-voice-pipeline-design-spike.md`、`architecture-state-management-spike.md`、`architecture-error-handling-strategy-spike.md`。
- 每个 spike 只聚焦一个技术决策或研究问题。
- 为每个 spike 定义具体时间限制和交付物。
- 在标记完成前要求具体证据(测试、原型、文档)。
- 记录具体建议及实现理由。
- 识别 spike 之间关系及其对项目决策的影响。
- 确保每个 spike 产出可执行决策或建议。
- Phase 1 信息收集:使用 search/fetch 工具搜索现有文档。
- Phase 1 信息收集:分析代码库中现有模式和约束。
- Phase 1 信息收集:研究外部资源(API、库、示例)。
- Phase 2 验证与测试:创建聚焦原型以测试特定假设。
- Phase 2 验证与测试:运行有针对性的实验以验证假设。
- Phase 2 验证与测试:用支持证据记录测试结果。
- Phase 3 决策与文档:将发现综合成清晰建议。
- Phase 3 决策与文档:为开发团队记录实现指导。
- Phase 3 决策与文档:创建后续实现任务。
- 使用 `search/searchResults` 研究现有解决方案和文档。
- 使用 `fetch/githubRepo` 分析外部 API、库和示例。
- 使用 `codebase` 理解现有系统约束和模式。
- 使用 `runTasks` 执行原型和验证测试。
- 使用 `editFiles` 更新研究进度和发现。
- 使用 `vscodeAPI` 测试 VS Code 扩展能力与限制。
- 聚焦限时研究,解决关键技术决策并解除开发阻塞。
适用边界 · 注意事项
- 已有明确决策或问题不需要调研时,不要创建 spike。
- 无法限定时间、没有可验证交付物或问题不影响开发推进时,不适合使用 spike。
- 琐碎、可逆、无需证据即可决定的问题,不必写完整 spike 文档。