SKILL.md
技术方案写作助手#
把一句需求、一段口头想法或一份粗糙提纲,整理成能拿去评审的技术方案文档。纯指令技能:不带脚本、不联网、不写任何文件,产出为方案文本本身。
触发时机#
- 用户要求写技术方案、设计文档、RFC、评审材料或「把这个想法落成文档」;
- 用户给出需求一句话,希望拆解成实现路径供团队讨论;
- 已有方案草稿需要补齐缺失章节、强化论证或压缩篇幅。
工作流程(逐步推进,不跳步)#
1 先问清三个锚点#
动笔前逐项确认,用户没说就用假设值并显式标注:
- 目标:这个方案上线后,用什么指标判断成功;
- 边界:明确不做什么,防止评审时范围膨胀;
- 约束:时间、人力、兼容性、合规等硬限制。
2 背景与目标章节#
- 用两三句话讲清楚为什么现在做、不做会怎样;
- 目标写成可验证的陈述,避免「提升体验」这类无法判定的措辞。
3 方案对比与选型#
- 至少给出两个候选方案,各列核心思路、改动面、优缺点;
- 明确写出选了哪个、为什么,淘汰项也要写理由——这是评审时最常被追问的部分;
- 只有一个可行方案时,写清「为什么没有别的选择」。
4 详细设计#
- 接口:列出关键接口的签名、入参出参与错误语义,不追求穷举;
- 数据:表结构或模型变更,标注存量数据如何迁移;
- 流程:关键时序用编号步骤描述,异步与失败分支必须写;
- 兼容性:对调用方、下游和历史的破坏性影响逐条列出。
5 风险、灰度与回滚#
- 每个风险写「触发条件 + 影响 + 缓解措施」三段式;
- 灰度方案写清放量顺序与观察指标;
- 回滚写清回滚动作、数据是否可逆、预计耗时——数据不可逆的回滚要在风险里标红。
输出模板#
# <方案名称>
## 1 背景与目标
(为什么做 + 成功指标 + 明确不做什么)
## 2 约束
(时间 / 人力 / 兼容性 / 合规等硬限制)
## 3 方案对比
| 维度 | 方案 A | 方案 B |
|---|---|---|
(核心思路 / 改动面 / 优缺点)
**选型结论**:选 X,理由 ……;淘汰 Y,理由 ……
## 4 详细设计
### 4.1 接口
### 4.2 数据模型与迁移
### 4.3 关键流程(含失败分支)
### 4.4 兼容性影响
## 5 风险与灰度
(风险:触发条件 + 影响 + 缓解;灰度:放量顺序 + 观察指标)
## 6 回滚预案
(动作 / 数据可逆性 / 耗时)
定稿前自查清单#
- 三个锚点(目标 / 边界 / 约束)全部落实,假设值已标注;
- 有方案对比,淘汰项有理由;
- 每个异步流程都写了失败分支;
- 数据迁移与回滚的可逆性有明确结论;
- 没有「视情况而定」「后续再定」这类悬空表述——要么写死,要么进开放问题清单。
红线#
- 不虚构数据指标、性能数字或「业界普遍做法」来支撑选型;
- 不省略风险章节——评审最容易通过的方案往往是最危险的方案;
- 不在方案里夹带未与用户确认的组织决策(谁负责、排期承诺),此类内容放「待确认」清单;
- 用户只想要提纲时,不强行展开成全文,按用户要的粒度输出。
用途与依赖
作者没写,这些是平台读文件后整理的,以文件为准。
使用示例
请求:我们想把用户头像从本地存储迁到对象存储,帮我写个技术方案。
预期
技能会先确认三个锚点:成功指标(如头像加载失败率、迁移完成率)、明确不做什么(如不改动头像上传交互)、硬约束(迁移窗口、人力、对老客户端的兼容要求),用户未说明的用假设值并标注。然后按模板输出:背景与目标、约束、方案对比表(如全量迁移 vs 双写过渡,写明选型与淘汰理由)、详细设计(头像读写接口签名与错误语义、存储表结构与存量数据迁移、上传与读取关键流程含失败分支、对老客户端和下游的兼容性影响)、风险与灰度(每条风险按触发条件+影响+缓解三段式,放量顺序与观察指标)、回滚预案(动作、数据可逆性、预计耗时)。最后附自查清单,并把负责人、排期等未确认事项放入待确认清单。
- 适用场景
- 用户要求写技术方案、设计文档、RFC 或评审材料
- 用户只有一句需求,希望拆解成可讨论的实现路径
- 已有方案草稿需要补齐缺失章节或强化论证
- 需要为方案补充方案对比与选型理由
- 需要梳理接口、数据模型与迁移、关键流程和兼容性影响
- 需要补写风险、灰度放量和回滚预案
- 需要压缩过长的方案篇幅
- 用户只想要提纲,按指定粒度输出
- 输入
- 无
- 输出
- 无
- 运行环境
- 未说明
- 依赖
- 无

