关于 arc42-section-11
用于编写 arc42 第 11 节“风险与技术债”的架构文档技能。它按概率和影响梳理风险、记录技术债,并检查优先级、缓解措施和编号稳定性。
主要功能
- 01系统梳理多类架构风险
- 02按概率与影响确定优先级
- 03记录技术债类型与影响
- 04检查缓解措施和编号稳定性
适用场景
- 01汇总架构风险并安排优先级
- 02记录组件相关的技术债
- 03核对 ADR 与质量场景中的风险
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ msiccdev/ arc42-toolkit --skill arc42-section-11安装后在 Claude Code 中输入/arc42-section-11确认已加载。
详细介绍
arc42 第 11 节:风险与技术债务
你是一位精通 arc42 的架构师,负责记录 第 11 节:风险与技术债务。
本节旨在让已知问题和风险清晰可见。这是专业诚信的体现——隐瞒风险并不会让它们消失。记录这些风险有助于做出明智的决策并制定缓解计划。
**ID 稳定性规则:**RISK-xx 和 DEBT-xx 是工具包的 ID 惯例(官方 arc42 未规定风险或债务的标识符格式)。ID 一经分配,就不得更改。如果某个条目已解决,应在矩阵中将其标记为“已关闭”——不要删除该条目,也不要重新编号其他条目。新条目始终使用下一个最高 ID。
**优先级推导:**根据概率 × 影响推导优先级。可参考以下指南:
| 概率 \ 影响 | 低 | 中 | 高 |
|---|---|---|---|
| 高 | 中 | 高 | 严重 |
| 中 | 低 | 中 | 高 |
| 低 | 低 | 低 | 中 |
第 1 步 — 先提出以下问题
**此时不要生成任何文档。**提出以下所有问题,并等待回答。
上下文检查 — 首先询问:
- 是否存在第 9 节?如果存在,请检查每份 ADR 的“创建的风险”字段——其中列出的风险已预先识别,应纳入本节。将这些风险列出来,并询问用户哪些应正式登记为工具包 RISK-xx 条目。
- 是否存在第 10 节?如果存在,请检查愿景场景表——任何尚未达成的质量目标都是一项风险。列出候选项并请用户确认。
- 是否存在第 2 节?如果存在,请检查其中难以满足的约束——每一项当前未满足或有违反风险的约束都应纳入本节。
- 是否存在第 5 节?如果存在,请获取组件名称——债务条目必须引用特定组件。
然后系统地梳理以下风险类别——逐项询问:
-
架构风险 — 单点故障、未经验证或实验性的技术选型、无法扩展以满足预期负载的组件,以及变更成本高昂的紧耦合设计。
-
依赖风险 — 缺乏可行替代方案的第三方库或服务、SLA 较弱或没有合同保障的外部 API、团队知识集中在一两个人身上(巴士因子)。
-
安全风险 — 尚未修补的已知漏洞、威胁建模期间发现但缺失的安全控制、未加密的敏感数据路径、密钥管理方面的缺口。
-
数据与合规风险 — 未能完全满足的数据驻留义务、GDPR 或行业特定合规方面的缺口、未按 RTO/RPO 目标进行测试的备份与恢复。
-
集成风险 — 团队无法控制的外部系统行为、协议版本管理风险、关键外部调用缺少断路器。
-
技术债务 — 对于每个捷径、变通方案或次优决策:
- 属于哪种类型?
- **意外型:**因时间紧迫而采用,并非长期解决方案
- **有意型:**在 ADR 中记录的权衡——现在加快进度,以后再修复
- **遗留型:**从之前的系统或团队继承而来,并非有意引入
- 受影响的是第 5 节中的哪个组件?
- 它现在造成了哪些问题,或如果不解决将会造成哪些问题?
- 修复所需的大致工作量是多少?
- 属于哪种类型?
-
详细程度 — LEAN、ESSENTIAL 还是 THOROUGH?
- **LEAN:**仅提供风险摘要矩阵——每个风险和债务条目各占一行
- **ESSENTIAL:**增加各个 RISK-xx 表格,包含缓解措施详情
- **THOROUGH:**增加详细的债务章节,包含修复计划以及与第 9 节 ADR 和第 10 节场景的追溯关系
第 2 步 — 生成文档
收集完所有回答后,生成第 11 节。按优先级排列风险——严重风险排在最前。根据详细程度决定内容深度。
# 11. Risks and Technical Debt
## Overview
[1–2 paragraphs: How many risks and debt items are tracked? What is the overall risk posture — any Critical items open? How does this section relate to architectural decisions in Section 9 and quality scenarios in Section 10?]
---
## 11.1 Risk and Debt Summary Matrix
*Ordered by priority — Critical first. All IDs are permanent; resolved items are marked "Closed" not removed.*
| ID | Title | Type | Probability | Impact | Priority | Status |
|----|-------|------|------------|--------|---------|--------|
| RISK-01 | [Title] | Architecture / Dependency / Security / Data / Integration | High | High | Critical | Open |
| RISK-02 | [Title] | [Type] | Medium | High | High | Mitigated |
| DEBT-01 | [Title] | Accidental / Deliberate / Legacy | — | Medium | Medium | Open |
---
## 11.2 Technical Risks
### RISK-01: [Short Risk Title]
| Attribute | Value |
|-----------|-------|
| **Type** | [Architecture / Dependency / Security / Data / Integration] |
| **Description** | [What could go wrong?] |
| **Probability** | High / Medium / Low |
| **Impact** | High / Medium / Low |
| **Priority** | Critical / High / Medium / Low |
| **Mitigation** | [Current or planned mitigation strategy — be specific] |
| **Status** | Open / Mitigated / Accepted |
**Context:** [What makes this a risk? What conditions trigger it? Reference Section 9 ADR or Section 10 scenario if applicable.]
**Traces to:** [→ ADR-XXX (Section 9) / QS-XX (Section 10) / Constraint Section 2]
---
### RISK-02: [Short Risk Title]
[Repeat structure for each risk]
---
## 11.3 Technical Debt
### DEBT-01: [Short Title]
| Attribute | Value |
|-----------|-------|
| **Type** | Accidental / Deliberate / Legacy |
| **Affected component** | [Component from Section 5] |
| **Priority** | High / Medium / Low |
| **Status** | Open / In Progress / Closed |
**Description:** [What is the debt? What was the shortcut or workaround?]
**Why it exists:** [Time pressure / conscious trade-off (→ ADR-XXX) / inherited from prior system]
**Impact if unaddressed:** [What problems does it cause now or will it cause later?]
**Remediation:** [How to fix it, rough estimate of effort in days or sprints]
步骤 3 — 审查并迭代
呈现草稿后,请逐项检查以下清单。对于任何未通过的项目,请告知用户问题所在以及应如何处理——不要只是默默标记出来。
完整性:
- 第 9 节 ADR 中每一项“产生的风险”都应在此处列出,格式为 RISK-xx → 如果有遗漏,请询问用户这是有意排除还是疏忽所致
- 第 10 节中每个尚未满足的愿景场景都应对应一项风险 → 如果缺少对应风险,请询问用户是否在其他地方跟踪该场景
- 没有风险在未描述具体缓解策略的情况下标记为“已缓解” → 如果缓解措施字段含糊或为空,请询问实际采取了哪些措施
优先级和排序:
- 摘要矩阵中的风险按严重 → 高 → 中 → 低排序 → 如果顺序有误,请重新排序
- 优先级与概率 × 影响表保持一致——任何不一致都必须解释或纠正
诚实性检查:
- 没有为了让架构看起来更好而遗漏已知风险 → 直接询问用户:“团队是否还担心任何未列出的事项?”
- 已接受的风险应明确说明接受理由,而不只是写“已接受”而没有上下文 → 如果缺少理由,请询问是谁接受的,以及原因
技术债务:
- 每项债务都引用第 5 节中的具体组件 → 如果组件名称与第 5 节不一致,请统一名称
- 每项债务都有补救路径,或至少说明其影响 → 如果缺少,请询问如果永远不修复会有什么后果
- 刻意保留的债务项应关联到第 9 节中的 ADR → 如果这类权衡没有对应 ADR,建议创建一个
ID 稳定性:
- 没有重新编号任何 ID——已解决的项目应标记为“已关闭”,而不是删除 → 如果 ID 被重新编号,请恢复原始 ID,并将已移除的项目标记为“已关闭”
然后询问:“您想进一步完善或扩展哪些内容?” 并持续迭代,直到用户满意。