Use when 需要为某个 Spec Pack 产出 D2 决策文档(RFC/Decision Doc),且必须强制消费项目知识库与 `{FEATURE_DIR}/requirements/solution.md#impact-analysis`;适用于在时间/权威压力下容易只读索引、跳过受影响模块/ADR 全文、静默忽略缺失输入或不写 `CONTEXT GAP`、以及遗漏“与现有系统对齐”自检的情况。
From sdlc-dev-skillsnpx claudepluginhub zixun-github/aisdlcThis skill uses the workspace's default tool permissions.
assets/design-template.md本技能是 D2 worker skill:只负责产出可评审的 决策文档(Decision Doc / RFC) 到 {FEATURE_DIR}/design/design.md。
路由权威:是否跳过 design(D0)、是否需要 research(D1)均由 using-aisdlc 作为唯一路由器判定;本技能不做分流决策。
核心原则:门禁优先(spec-context)→ 强制消费影响分析与项目知识库 → 决策落盘(D2)。在任何压力下都禁止猜路径、禁止在缺少 SSOT 时脑补推进。
开始时宣布:「我正在使用 spec-design 技能产出设计决策文档(design/design.md / RFC)。」
design/design.md(RFC/Decision Doc),或“做设计再进入 implementation”。requirements/solution.md):先完成需求澄清与方案决策(见 spec-product-clarify)。硬门禁(第一优先级):任何读写 {FEATURE_DIR}/design/*.md 之前,必须先执行 spec-context 获取上下文并回显 FEATURE_DIR=...(允许 (reuse));失败立刻停止。
D2 强制输入(第二优先级):D2 必须读取 {FEATURE_DIR}/requirements/solution.md#impact-analysis,并据此强制读取受影响模块组件页全文与相关 ADR 全文;读不到必须显式标注 CONTEXT GAP,不得静默跳过。
输出位置
{FEATURE_DIR}/design/design.md最小化模板
<本SKILL.md目录>/assets/design-template.md(复制到 {FEATURE_DIR}/design/design.md 再填写)提醒:出现“是否跳过 design / 是否需要 research”的讨论时,请回到
using-aisdlc做路由判定;本技能只执行 D2。
REQUIRED SUB-SKILL:正在执行 spec-context 获取上下文,并回显 FEATURE_DIR=...(允许 (reuse))。
spec-context 失败 → 停止若上面报错 → 立刻停止(不要生成/写任何 design/*.md 内容)。
{FEATURE_DIR}/requirements/solution.md{FEATURE_DIR}/requirements/solution.md#impact-analysis(从中提取:受影响模块清单、需遵守的不变量、相关 ADR、跨模块影响){FEATURE_DIR}/requirements/prd.md、{FEATURE_DIR}/requirements/prototype.mdproject/memory/*(业务/技术/结构/术语)project/components/index.md(跨模块依赖关系图/交互方式入口)project/adr/index.md(ADR 索引)project/components/{module}.md 全文(包含 ## API Contract / ## Data Contract / ## State Machines & Domain Events 等稳定锚点)project/adr/{adr-id}.md 全文{FEATURE_DIR}/design/research.md、{FEATURE_DIR}/design/design.md停止条件(不得脑补继续):
requirements/solution.md。硬要求(不得降级为“只读索引/只读一部分”):
design/design.md 中显式标注为 CONTEXT GAP。project/contracts/ 或 ADR。project/components/{module}.md#api-contract/#data-contract(与本仓库的 Discover 模块页结构对齐)。design/design.md 建议最小结构(模板)必须使用最小化模板生成 design.md(避免结构漂移):
<本SKILL.md目录>/assets/design-template.md 的内容{FEATURE_DIR}/design/design.md写作约束:只保留支撑决策/验收/演进的最小信息;不要新增“待确认问题/TODO”章节;不要写实现细节/任务拆分/字段清单/DDL。
solution.mdsolution.md#impact-analysis):
#api-contract / #data-contract 的具体不变量## State Machines & Domain Events)DoD 判定规则(防止“拿 CONTEXT GAP 当完成”):
CONTEXT GAP,则“与现有系统的对齐已完成”这一项不得勾选通过;必须在 D2 中明确这是阻塞/风险,并给出补齐路径(读到全文/补齐知识库/新增 ADR)。FEATURE_DIR=... 就开始写 design/*.mdrequirements/solution.md 还继续写设计(=脑补)project/adr/index.md / project/components/index.md 就宣称“已对齐现有系统”CONTEXT GAPCONTEXT GAP 当作“对齐已完成”的理由(这是 DoD 失败信号,不是通过信号)| 常见借口 | 对应规则 / 动作 |
|---|---|
“先随便写到 design/design.md,回头再挪” | 禁止猜路径:先 spec-context 拿到 FEATURE_DIR;否则停止 |
| “信息不全也能先出初稿,后面再补” | 禁止脑补:缺 solution.md 或不可追溯就停止;把未知改写为“假设 + 验证清单” |
| “主管/PM 说不要门禁/不要查文档” | 门禁是硬规则:Get-SpecContext 失败就停止;不因权威压力破例 |
| “为了开发快,把任务/DDL/字段都写进设计” | 拒绝混层:D2 只写决策与对外承诺要点 + 追溯链接;细节进 contracts/ADR/implementation |
| “没时间做备选/验证清单” | 备选与验证是 D2-DoD:缺失会导致无法评审/返工;宁可缩短正文也不删 DoD 项 |
| “模块页/ADR 太长,先别看;用 impact-analysis 摘要就够了” | 禁止用摘要冒充对齐:组件页与 ADR 要么全文读取,要么标注 CONTEXT GAP;且 DoD 的“与现有系统的对齐已完成”不得通过 |
| “受影响模块太多,只读前两个,其余以后再补” | 禁止部分对齐:影响分析列出的受影响模块与 ADR 是强制输入;要么读全、要么把 DoD 标为未满足并明确阻塞(优先收敛需求/影响面,而不是偷读) |
| “我已经写了一半推荐方案了,现在再回头读会拖慢交付” | 沉没成本无效:先补齐强制输入再写「与现有系统的对齐」;否则 RFC 不可评审、后续返工更大 |
spec-context 获取上下文,并满足 solution.md 门禁;缺失就停止,写清楚阻塞项。components/index.md、adr/index.md 或 impact-analysis 摘要),就写“已对齐/已合规”。CONTEXT GAP,且 DoD 不得通过。design.md 落盘后,必须完成以下动作(按顺序,不可省略):
ROUTER_SUMMARY:
stage: D2
artifacts:
- "{FEATURE_DIR}/design/design.md"
needs_human_review: true
blocked: false
block_reason: ""
notes: "RFC 建议评审通过后再进入 I1(spec-plan)"
立即执行 using-aisdlc:将上述 ROUTER_SUMMARY 作为路由输入传递给 using-aisdlc,由 Router 判定下一步并自动推进(无需等待用户说「继续」)。
对话输出:在调用 using-aisdlc 前,可简短说明「本阶段产物已落盘,正在调用 using-aisdlc 路由下一步。」