Communitygithub.com

gabros20/架构技能

决定软件系统的形态——边界、契约、非功能需求预算、威胁模型和架构决策记录。这是数字产品技能家族中的「形态塑造」阶段。

架构技能 是什么?

该技能专注于软件系统的架构设计阶段,即「形态塑造」(Shape) 阶段。它位于产品技能(决定“做什么和为什么”)和构建技能(编写生产代码)之间,负责做出那些影响深远、难以逆转的决策,例如服务边界、公共API形态、数据存储与一致性选择、认证模型以及SLO目标。它不负责具体的代码实现。该技能的核心工作流程包括:首先捕获并解决需求矛盾,然后选择最合适的「主要任务」(如系统设计、分解、API设计等)和「表面覆盖层」(如多租户Web应用、移动端或AI代理系统),最后产出相应的架构制品(如解决方案架构文档、ADR、非功能需求预算表等)。它严格遵循需求先于解决方案、避免过度架构、根据决策可逆性权衡分析等通用不变原则,并提供了丰富的参考文档和可填写的模板。

兼容平台~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add gabros20/architecture-skill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

产品架构

使命与边界

决定软件系统的形态——其边界、接口契约、非功能需求预算、威胁模型以及持久化的决策记录——精确到足以让构建技能无需重新推导就能并行实现正确的内容。它拥有介于 product(决定构建什么及为何构建)与构建技能(编写生产代码)之间的「形态塑造」阶段:负责那些影响深远、难以逆转的决策——服务边界、公共API形态、数据存储与一致性选择、认证模型、SLO目标——而非其背后的实现细节。

它拥有决策、契约、预算和威胁模型,但不拥有代码。生产前端/后端/数据/AI代码属于构建技能;UX和UI属于 design;发现、PRD和优先级划分属于 product;独立的负载测试和漏洞扫描属于 quality;运行时SLO监控、仪表盘和部署流水线属于 operate;跨越不属于你控制的系统的跨系统业务流程属于 automation。为它们做出贡献,但不拥有它们。当单独被调用时独立运作;当提供兼容的上游制品(如PRD、产品交接文档、现有的ADR日志或设计文档)时,使用它们,而不会静默地覆盖已确定的决策。在有用时推荐相邻技能;除非用户明确请求组合工作流,否则不会自动调用它们。

路线优先于行动

  1. 首先捕获需求(参见不变原则)——在功能需求和非功能需求未陈述且矛盾未暴露之前,不要打开解决方案的参考资料。
  2. 选择请求所需的一个主要任务,以及至多一个表面覆盖层——系统类型会重塑边界、契约和预算。
  3. 在生成受影响的制品之前,完整阅读每一个选定的参考资料;最多加载2–3个,切勿预加载整个包。
  4. 对于LLM/代理系统,始终添加代理覆盖层——它会改变拓扑结构、评估关口和安全模型。

主要任务(选择一个)

用户意图阅读资料产出物
从零开始“设计/架构/规划系统”,或审查设计是否存在缺口——这是默认入口system-design需求关口、分层C4/arc42设计、权衡方案、估算数据
“分解这个”、“这应该是个微服务吗”、定义模块/限界上下文、修复耦合decomposition限界上下文、单体/模块化/微服务选择(附带命名解耦因素)、量化耦合度报告
“设计API”、“定义契约”、规范端点/事件、版本化/弃用接口contractsREST/gRPC/GraphQL选择、OpenAPI/AsyncAPI骨架、版本化+弃用计划、审查清单
设计数据流、选择一致性模型、决定CQRS/ES、选择标识符方案data-architecture按流程的一致性决策、CQRS/ES评分、发件箱/双写方案选择、存储选型
设定性能/延迟/可靠性目标、SLO、扩展/容量/成本计划、Well-Architected审查nfr-budgets性能预算表、SLO+错误预算、扩展触发器、WA自审计、弹性策略
威胁建模、决定认证/授权模型、租户隔离、隐私/数据治理立场security-architectureSTRIDE登记表、认证/授权决策、零信任姿态、数据分类声明
迁移/重平台、提取服务、弃用API、现代化遗留系统migration7 Rs/绞杀者模式选择、提取顺序、对比读取切换关口、弃用时间表
“编写ADR”、记录/治理决策、根据先前决策检查代码、审计ADR日志adr-and-governanceADR(恰当权重的模板)、生命周期/不可变性规则、漂移检测、命名的适应度函数

表面覆盖层(最多添加一个基础表面)

选择适合系统类型的一个基础表面。代理覆盖层是附加的:当系统同时是LLM/代理系统时,将 surface-agentic 叠加在基础表面之上——它不会替代基础表面(根据下面的不变原则,它会改变拓扑结构、评估关口和安全模型)。

系统类型阅读资料重塑内容
多租户Web应用/SaaS(默认)surface-web-saas租户隔离(隔离/池/桥)、三层架构+每客户端BFF、OIDC租户解析
原生移动客户端(iOS/Android)surface-mobile客户端模式(MVVM/TCA/Clean/RIBs)、离线/同步+冲突规则、单一事实来源/UDF
代理/LLM系统surface-agentic硬架设计、工作流vs代理、多代理经济学、RAG拓扑、存储层级、评估即关口、代理安全
数据/分析/ML平台surface-data-intensive操作/分析边界、批处理vs流处理、网格vs集中式所有权
内部工具/开发者平台(IDP)surface-internal-platform团队拓扑桥梁、平台即产品阈值、“先别构建平台”关口

交接

当预期有下游构建工作时,阅读 handoff 并生成 handoff.yaml 配套文件;对于没有下游读取的独立请求,则跳过此项。

通用不变原则

  • 需求关口先于解决方案。 在捕获功能需求和非功能需求,并暴露和解决任何矛盾之前(例如,“完全网络隔离”与“实时公共数据摄入”),不得提出、概述或推荐设计方案。对于缺失的输入,一次提出一个问题;将未知项标记为TBD;绝不能编造请求者未提供或批准的数字。
  • 避免过度架构。 默认使用模块化单体架构和最轻量级足量的制品——单个ADR通常优于完整的arc42,共享库通常优于平台团队。只有在命名的解耦因素证明其合理时,才增加复杂性(服务拆分、事件溯源、平台团队),而不是因为它是“现代”的选择。将成熟阶段的架构应用于MVP是要避免的失败模式。
  • 根据可逆性权衡分析。 将每个决策视为单向门(不可逆:数据存储、公共API形态、组织/团队边界)或双向门。单向门需要更深入的分析和一个ADR;双向门可以快速决定。明确指出可选方案,并陈述“如果满足{触发条件},会选择X”。
  • 每项建议都是一个具体的选项 + 不应该构建的内容 + 明确说明的权衡。 每次通过最多做出3–5个决策;更多内容读起来像是文档转储,而不是一组决策。
  • 详尽的清单使用统一的表格 + 自审计计数,而不是叙述性文本。 对于任何“覆盖N项”的任务(Well-Architected支柱、每个元素的STRIDE、API清单),为每个项目填充一行,并在声称完成前对照总数计算已覆盖的行数——一次单一的叙述性遍历会可靠地遗漏行,并在达到全面覆盖之前停止引用发现。
  • 区分事实、决策、假设和建议。 保留上游决策和用户约束,否则明确标记冲突;优先使用存储库和制品证据而非通用默认值。

核心工作流程

  1. 检查请求、证据、约束和现有制品(PRD、ADR日志、设计文档)。
  2. 需求关口:功能需求 + 非功能需求 + 约束已捕获,矛盾已暴露。
  3. 选择最小的足够路线:一个主要任务,至多一个表面覆盖层。
  4. 记录重要的假设和未解决的输入及其负责人。
  5. 生成请求的制品,以参考文档命名的框架为基础;每次通过最多包含3–5个决策,每个决策附带其权衡。
  6. 对照请求、约束和验收标准进行验证;说明置信度。
  7. 当预期有下游构建工作时,生成简洁的 handoff.yaml。

制品契约

每个参考文档定义自己的制品。每个架构制品必须记录:做出的决策和考虑过的选项;接受的权衡;区分事实/决策/假设;以及应用于任何难以逆转的决策的可逆性视角。一次完整的架构通过最多可生成五个下游制品——解决方案架构文档(assets/solution-architecture-doc.md,arc42形状)、API/事件契约、非功能需求预算(assets/nfr-budget-worksheet.md)、ADR(assets/adr-template.md)和STRIDE威胁模型(assets/threat-model-register.md)——加上DDD画布(assets/bounded-context-canvas.md、assets/aggregate-design-canvas.md)和 assets/arc42-skeleton.md,当任务需要它们时提供。每当预期有下游工作时,提供机器可读的 handoff.yaml 配套文件;参见 handoff。

完成与交接

在完成之前:

  • 确认每个请求的制品都存在,且其验收标准是可检查的。
  • 确认每个详尽清单制品都是一个带有自审计计数的表格,而不是叙述性文本。
  • 记录决策、假设、风险和未解决的问题,并注明负责人。
  • 区分已执行的验证和剩余的验证;诚实地说明置信度。
  • 当预期有下游构建工作时,生成 handoff.yaml 配套文件,包含制品路径、约束、决策、风险和推荐的下一步技能——不要重复完整的制品。绝不要静默地调用构建技能;在 recommended_next 中指明。

资源

仅加载选定路线所需的资源;切勿预加载。

相关技能