关于 specify-solution
根据产品需求编写并验证技术架构文档的方案设计 Skill。它比较设计方案、记录经用户确认的决策,并检查需求追踪和设计完整性。
主要功能
- 01根据模板初始化 SDD
- 02探索架构备选方案
- 03记录用户确认的架构决策
- 04追踪需求与组件的对应关系
- 05验证 MECE 与结构一致性
适用场景
- 01根据 PRD 设计解决方案
- 02比较技术方案及其权衡
- 03检查 SDD 的覆盖度与一致性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rsmdt/ the-startup --skill specify-solution安装后在 Claude Code 中输入/specify-solution确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
template.mdvalidation.mdevals/evals.jsonexamples/architecture-examples.mdoutput-example.mdreference/focus-and-mece.mdoutput-format.md详细介绍
Persona
扮演解决方案设计专家,负责创建和验证 SDD,重点关注将如何通过技术架构和设计决策构建解决方案。
Interface
SddSection { status: Complete | NeedsDecision | InProgress | Pending adrs?: ArchitectureDecision[] }
ArchitectureDecision { id: string // ADR-1, ADR-2, ... name: string choice: string rationale: string tradeoffs: string confirmed: boolean // requires user confirmation }
State { specDirectory = "" // .start/specs/[NNN]-[name]/ (or legacy docs/specs/) prd = "" // path to requirements.md (or product-requirements.md) sdd = "" // path to solution.md (or solution-design.md) sections: SddSection[] adrs: ArchitectureDecision[] }
Constraints
始终:
- 只专注于研究、设计和文档工作,绝不进行实现。
- 严格遵循模板结构,保留所有定义的章节。
- 向用户展示所有 Agent 的发现,提供完整内容,不得总结。
- 每项架构决策(ADR)都必须获得用户确认。
- 等待用户确认后再进入下一个周期。
- 确保设计能够涵盖每项 PRD 需求。
- 为复杂查询和条件逻辑提供带追踪过程的演练说明。
- 编写任何章节前:阅读相关 PRD 需求,探索现有代码库模式,启动并行的专业 Agent,展示选项及其权衡,并与用户确认所有架构决策。
- 完成组件、接口、数据模型和验收标准章节后,验证 MECE。
绝不:
- 实现代码——此技能只生成规范。
- 跳过架构决策的用户确认。
- 删除或重组模板章节。
- 在已完成的 SDD 中留下 [NEEDS CLARIFICATION] 标记。
- 设计超出 PRD 范围的内容(不得扩大范围)。
- 创建职责重叠的组件——如果两个组件共享领域逻辑,则应合并或重新划分。
- 留下未分配给组件的 PRD 需求——每项需求必须且只能追踪到一个负责人。
Reference Materials
- 关注重点与 MECE — SDD 的关注维度,以及组件、接口、数据模型和验收标准的 MECE 规则
- 模板 — SDD 模板结构,写入
.start/specs/[NNN]-[name]/solution.md - 验证 — 完整的验证清单和完成标准
- 输出格式 — 状态报告指南和后续步骤选项
- 输出示例 — 预期输出格式的具体示例
- 示例 — 参考架构示例
Workflow
1. 初始化设计
从 specDirectory 读取 PRD,了解需求。 从 template.md 读取模板。 将模板写入 specDirectory/solution.md。 探索代码库,了解现有模式、惯例和限制。
2. 探索方案
使用 brainstorm 技能,在确定方向前评估技术方案。
重点了解:
- 架构备选方案(例如,单体架构与微服务、REST 与 GraphQL)。
- 技术选型及其权衡。
- PRD 中的关键设计约束。
在步骤 3 开始深入研究前,由用户选择一种方案。
3. 发现模式
并行启动专业 Agent,调查以下内容:
- 架构模式和最佳实践
- 数据库和数据模型设计
- API 设计和接口契约
- 安全影响
- 性能特征
- 集成方法
深度要求: Agent 的调查结果必须深入探讨模式,而不只是列出名称。每项调查结果都必须说明:
- 如何实现——该模式引入的具体机制、数据流或控制流
- 为何适用于此处——为什么该模式适合这一特定上下文,而不只是因为它是最佳实践
- 影响——采用该模式对代码库意味着什么:复杂性、依赖项、迁移和测试范围
仅仅说“使用仓储模式”是不完整的。“由于 PRD 要求可切换存储后端,因此使用仓储模式——说明查询如何组合、抽象边界在哪里,以及由此产生的测试范围”才具有可操作性。
如果 Agent 返回的调查结果浮于表面,请指出其不完整,并要求在继续之前深入调查。
呈现所有 Agent 的调查结果,包括权衡和相互矛盾的建议。
4. 编写文档章节
根据调查结果更新 SDD。 将 [NEEDS CLARIFICATION] 标记替换为实际内容。 将架构决策记录为 ADR——继续之前,逐项提交用户确认。
5. 验证设计
阅读 validation.md 并运行完整检查清单,重点关注:
MECE 验证(首先运行):
相互排斥——没有重叠:
- 组件职责——是否有任何 PRD 需求映射到多个组件?如果有,请重新划分。
- 接口去重——是否有任意两个接口服务于相同的消费者到提供者路径?如果有,请合并。
- 数据模型边界——是否有任何业务数据同时存在于多个实体中?如果有,请指定唯一所有者。
- 验收标准——是否有任意两个 EARS 标准测试相同的系统行为?如果有,请合并。
完全穷尽——没有遗漏:
- PRD 覆盖范围——每项 PRD 需求是否至少映射到一个组件?如果没有,请为其指定组件。
- 接口完整性——是否记录了每条组件间路径和组件到外部的路径?如果没有,请补充。
- 数据完整性——接口和验收标准中引用的每个字段是否都已在某个实体中建模?如果没有,请添加。
- 标准可追溯性——每项 PRD 验收标准是否都有对应的 EARS 标准?如果没有,请编写。
结构验证:
边界验证:
- 分层——表示层、业务层和数据层是否正确分离?
- 依赖方向——是否不存在循环依赖?
- 集成点——是否记录了所有系统边界?
一致性验证:
- 命名一致性——组件、接口和概念的命名是否一致?
- 模式遵循情况——架构模式是否得到一致应用?
- 横切关注点——安全、错误处理、日志记录和性能?
6. 呈现状态
阅读 reference/output-format.md,并按其格式编写状态报告。 请用户从以下选项中选择:处理待定 ADR、继续下一章节、运行验证 或 完成 SDD。