mcpField
T
technical-spec-template

technical-spec-template

github.com/mohitagw15856开发1.5k53 次安装5 天前更新
代码仓库

关于 technical-spec-template

用于撰写工程技术规格的 Skill,涵盖问题定义、决策、备选方案、权衡和评审标准。适合规划跨系统或影响较大的变更,并提供结构化模板与质量检查。

主要功能

  1. 01结构化技术规格格式
  2. 02问题定义与范围说明
  3. 03备选方案和权衡记录
  4. 04安全、性能与测试章节
  5. 05发布计划和质量检查

适用场景

  1. 01规划涉及多个系统的功能
  2. 02记录架构决策及未选方案
  3. 03准备工程评审规格

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mohitagw15856/pm-claude-skills --skill technical-spec-template

安装后在 Claude Code 中输入/technical-spec-template确认已加载。

附带文件references/spec-decisions.mdtemplates/spec-skeleton.md

详细介绍

技术规格说明模板技能

编写工程师愿意阅读的技术规格说明——清晰地阐述问题,明确无歧义地列出需求,明确做出决策,并记录权衡取舍。

必要输入

如果用户未提供,请向用户询问以下信息:

  • 功能或系统描述(需要编写规格说明的内容)
  • 相关 PRD 或产品简报(如有)
  • 工程评审人员(需要哪些人签字批准)
  • 已知约束(技术限制、安全要求、性能目标)

何时编写技术规格说明

在以下情况下编写技术规格说明:

  • 该功能需要修改 2 个或更多系统
  • 需要做出重要的架构决策
  • 不止一名工程师将参与实现
  • 该功能涉及安全、隐私或合规性
  • 预估工作量 >5 个故事点

对于简单的错误修复或 1–2 小时的改动,无需编写规格说明。


技术规格说明输出格式

技术规格说明 — [Feature Name]

作者: [Name] 状态: 草稿 | 评审中 | 已批准 | 已实现 创建日期: [Date] | 最后更新: [Date] 评审人员: [Eng Lead、Architect、PM,需要时包括 Security] 相关 PRD: [Link] | Jira Epic: [Link]


1. 问题陈述

[用 2–3 句话说明我们要解决什么问题,以及为什么现在要解决。此处不要描述解决方案。]

2. 目标与非目标

目标(范围内):

  • [具体、可衡量的结果]
  • [具体、可衡量的结果]

非目标(明确不在范围内):

  • [本规格说明不涵盖的内容]
  • [需要尽早澄清的常见误解]
3. 背景与上下文

[此前的方案、相关系统,或工程师理解决策空间所需的上下文。链接到先前的规格说明、ADR 或研究资料。]

4. 拟议解决方案

高层方案: [用 2–4 句话描述所选解决方案。为什么选择此方案而非其他方案?]

系统架构图: [描述或嵌入:涉及哪些服务、数据如何流动、调用哪些 API]

数据模型变更:

-- New tables or schema changes
[Include DDL or schema definition]

API 设计:

[Endpoint] [Method]
Request: { [fields and types] }
Response: { [fields and types] }
Error codes: [list]

关键实现细节:

  • [重要的技术约束或方案]
  • [边缘情况处理]
  • [第三方依赖及其版本]
5. 考虑过的替代方案
选项优点缺点拒绝原因
[替代方案 1][优点][缺点][未选择的原因]
[替代方案 2][优点][缺点][未选择的原因]
6. 安全与隐私考量
  • 存储的数据:[涉及哪些个人身份信息或敏感数据]
  • 身份验证:[如何控制访问权限]
  • 授权:[需要哪些权限]
  • 加密:[静态数据/传输中的数据加密要求]
  • 合规性影响:[如适用,列出 GDPR、SOC2 等]
7. 性能与可扩展性
  • 预期负载:[请求数/秒、数据量]
  • 延迟要求:[P50/P95 目标]
  • 缓存策略:[如适用]
  • 数据库索引:[需要新增的索引]
  • 已知瓶颈:[需要关注的环节]
8. 测试计划
  • 单元测试:[需要覆盖的关键场景]
  • 集成测试:[需要测试的系统边界]
  • 负载测试:[如对性能要求较高]
  • 边缘情况:[已知的棘手场景]
  • 回滚计划:[出现问题时如何还原]
9. 发布计划
  • 功能标志:[是/否 — 标志名称]
  • 发布阶段:[各阶段的用户百分比]
  • 监控:[需要设置的指标和警报]
  • 推进发布的成功标准:[需要满足的条件]
  • 回滚触发条件:[哪些情况会导致立即回滚]
10. 待解决问题
问题负责人截止日期解决情况
[未解决的问题][Name][Date][待处理]
11. 实施时间表(粗略估算)
阶段工作内容预估工作量
[阶段 1][要实现的内容][X 天/点数]
[阶段 2][要实现的内容][X 天/点数]
总计[X 个故事点]

指南

  • 规范是一份决策记录,而不是任务清单——记录做出决策的原因
  • 所有待解决问题都必须指定负责人和截止日期
  • 对于涉及用户数据的功能,安全与隐私部分绝不能省略
  • 建议采用异步评审:工程师先阅读,然后安排 30 分钟的同步会议来解决疑问
  • 随着实现推进,持续更新规范——过时的规范比没有规范更糟糕

深入材料

此技能附带支持文件——请在这些文件可用时使用:

  • references/spec-decisions.md — 规范的用途:决策、备选方案和影响范围。生成输出时请参考此文件;其中包含对上述方法摘要所做压缩的校准和判断。
  • templates/spec-skeleton.md — 可填写的交付文档模板,内含质量检查项。用户想自行编写文档而非让系统生成时,请提供此模板。

质量检查

  • 问题陈述不包含任何解决方案相关表述
  • 非目标明确列出至少 2 项可能被误认为属于范围的内容
  • 记录至少 2 种备选方案,并说明拒绝它们的原因
  • 对于涉及用户数据的功能,已完成安全与隐私部分
  • 所有待解决问题均指定了负责人和截止日期(不能写“待定”)

反模式

  • 不要在问题陈述中加入解决方案相关表述——必须独立于拟议的解决方案来描述问题
  • 不要省略考虑过的备选方案——只考虑一种方案的规范尚未得到恰当评估
  • 不要将待解决问题留作“待定”,而不指定负责人和截止日期——未解决的问题都是阻塞项
  • 对于涉及用户数据的任何功能,都不要跳过安全与隐私部分
  • 不要将非目标部分留空——始终至少列出两项可能被误认为属于范围的内容

评论

支持 Markdown