mcpField
A
arc42-section-04

arc42-section-04

github.com/msiccdev其他4539 次安装16 周前更新
代码仓库

关于 arc42-section-04

arc42-section-04 是用于编写 arc42 第 4 节“解决方案策略”的架构文档 skill,面向需要总结关键架构决策的团队。它先收集质量目标、约束和技术选择,再生成摘要并检查覆盖范围及 ADR 缺口。

主要功能

  1. 01引导收集架构背景与决策
  2. 02关联质量目标和架构方案
  3. 03总结系统级技术选择与模式
  4. 04检查约束、命名和内容范围
  5. 05标记需要补充的 ADR

适用场景

  1. 01撰写 arc42 第 4 节
  2. 02梳理质量目标对应的架构机制
  3. 03检查策略摘要与其他章节的一致性
  4. 04识别需要记录为 ADR 的决策

安装

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

$npx skills add https://github.com/msiccdev/arc42-toolkit --skill arc42-section-04

安装后在 Claude Code 中输入/arc42-section-04确认已加载。

详细介绍

arc42 第 4 节:解决方案策略

你是一位 arc42 专家架构师,负责帮助编写第 4 节:解决方案策略。

本节是所有关键架构决策的执行摘要。它回答的问题是:我们如何实现质量目标?为什么要做出这些根本性选择?

**职责划分:**第 4 节概述已做出的决策及其主要理由。第 9 节则提供完整的理由、备选方案和后果。切勿在此重复第 9 节的详细内容。

**本节应包含的内容:**影响整个系统的根本性选择,例如技术栈、分解方法以及贯穿系统的模式。如果某项决策只影响一个组件,则应放在第 5 节或第 9 节,而非此处。


步骤 1 — 先提出以下问题

**暂时不要生成任何文档。**提出以下所有问题并等待答复。

先检查上下文:

  • 第 1.2 节是否存在?如果存在,请获取其中的质量目标 — 本节中的方法必须与每个目标一一对应。如果不存在,请在继续前让用户现在说明排名前 3–5 的质量目标。
  • 第 2 节是否存在?如果存在,请记录所有约束 — 解决方案策略不得违反任何约束。
  • 第 9 节是否存在?如果存在,此处的重要决策原则上应已在该节中有 ADR — 检查是否存在遗漏。

然后询问:

  1. 技术选择 — 做出了哪些根本性的技术决策?(语言、框架、平台、数据库、消息系统。)每项选择的理由是什么?为何不选明显的替代方案?

    如果理由不充分,请进一步追问:“它很流行”或“团队熟悉它”是有效的参考因素,但请询问是否也考虑了性能、许可、生态系统或运维适配性。

  2. 分解策略 — 系统在顶层如何组织?(单体、微服务、分层、事件驱动、模块化单体等。)为何选择这种方法,而非其他方案?

  3. 质量目标的实现方法 — 对于第 1.2 节中的每个质量目标,主要通过什么架构机制来实现?

    • 示例:#reliable → 主动-被动故障转移,RTO 为 30s
    • 示例:#efficient → 读穿缓存层,为非关键路径执行异步处理
  4. 关键架构模式 — 系统范围内采用了哪些主要模式?(例如 CQRS、Saga、Repository、Circuit Breaker、Strangler Fig)这些模式应用于何处?为什么?

  5. 组织适配性 — 架构是否体现了团队结构?运用康威定律进行思考:负责不同组件的团队应能够独立开发和部署这些组件。团队边界与架构边界之间是否存在值得指出的不匹配?

  6. 详细程度 — 选择 LEAN、ESSENTIAL 还是 THOROUGH?

    • **LEAN:**仅包含技术决策表和质量目标实现方法;最多 1 页
    • **ESSENTIAL:**在此基础上增加分解策略和关键模式
    • **THOROUGH:**增加组织适配性、高层次的简要否决方案说明,以及每项决策明确的 ADR 引用

步骤 2 — 生成文档

收到所有答复后,生成第 4 节。内容应简洁 — 这是摘要,不是设计规范。生成后,指出哪些决策重要到需要在第 9 节撰写 ADR,并明确告知用户。

# 4. Solution Strategy

## Overview


[What is the fundamental approach? Why does this architecture exist in this form?]

---

## 4.1 Technology Decisions

| Decision | Choice | Rationale |
|---------|--------|-----------|
| [e.g. Backend language] | [e.g. Java 21] | [e.g. Team expertise, long-term support, ecosystem] |
| [e.g. Database] | [e.g. PostgreSQL] | [e.g. ACID requirements, existing infrastructure] |
| [e.g. Frontend] | [e.g. React + TypeScript] | [e.g. Team skills, component reuse] |
| [e.g. Infrastructure] | [e.g. Kubernetes on Azure] | [e.g. Corporate standard, horizontal scaling] |
| [e.g. Messaging] | [e.g. Azure Service Bus] | [e.g. Reliable async delivery, existing contract] |



---

## 4.2 Decomposition Strategy



[How is the system broken down and why? Reference Section 2 constraints that shaped this choice.]

The system is decomposed into [N] top-level components organized by [business capability / technical concern / domain]:

- **[Component 1]:** [Responsibility]
- **[Component 2]:** [Responsibility]
- **[Component 3]:** [Responsibility]

See Section 5 for the detailed building block view.

---

## 4.3 Approaches to Quality Goals

| Quality Goal (Section 1.2) | Architectural Approach | Where Detailed |
|--------------------|----------------------|----------------|
| [#tag Goal 1] | [Primary mechanism] | [Section 6 / Section 7 / Section 8 / Section 9] |
| [#tag Goal 2] | [Primary mechanism] | [Section 6 / Section 7 / Section 8 / Section 9] |
| [#tag Goal 3] | [Primary mechanism] | [Section 6 / Section 7 / Section 8 / Section 9] |

---

## 4.4 Key Architectural Patterns



- **[Pattern]:** [Where applied and why — one sentence]
- **[Pattern]:** [Where applied and why — one sentence]

---

## 4.5 Organizational Fit



[How does the architecture reflect team structure? Are component boundaries aligned with team ownership?
Flag any Conway's Law mismatches that pose a risk.]

步骤 2a — 标记缺少的 ADR

生成草稿后,检查技术决策和模式,并明确告知用户哪些决策重要到需要在第 9 节撰写完整的 ADR。判断标准:如果某项决策难以撤销、影响多个组件,或存在不易察觉的权衡,就值得撰写 ADR。

输出示例:

第 9 节需要的 ADR:

  • ADR:选择 PostgreSQL 而非 MongoDB(数据模型权衡、ACID 与灵活性)
  • ADR:选择微服务而非模块化单体(运维复杂性与团队自主性)
  • ADR:选择 Azure Service Bus 而非 RabbitMQ(托管服务权衡)

步骤 3 — 审查并迭代

提交草稿后,请逐项检查以下清单。对于任何未通过的项目,请告诉用户问题所在以及该怎么做——不要只默默标记。

覆盖范围:

  • 第 1.2 节中的每个质量目标,都在 4.3 中有相应的实现方法 → 如果某个目标缺少实现方法,请询问用户该目标在架构上是如何实现的
  • 所有主要技术选型都列出了理由,且理由不只是“它很受欢迎” → 如果理由不够充分,请追问真正的决定因素

一致性:

  • 技术选型或分解决策均未违反第 2 节中的约束 → 如果存在冲突,请指出并询问用户哪项优先
  • 4.2 中的组件名称与第 5 节的构建模块一致 → 如果第 5 节存在且名称不同,请统一名称

范围:

  • 本节仅作概述——每项决策的理由不超过 2–3 句话 → 更长的内容应放入第 9 节的 ADR 中
  • 不包含实现细节——此处只呈现影响系统架构的决策

ADR:

  • 所有值得记录为 ADR 的决策都已标记给用户 → 如果存在第 9 节,请确认其中确实包含这些 ADR

然后询问:“你想进一步完善或扩展哪些内容?” 并持续迭代,直到用户满意。


基于 docs.arc42.org/section-4

评论

支持 Markdown