关于 oma-architecture
oma-architecture 是用于分析、比较和记录软件架构决策的技能,面向需要处理系统设计、模块边界或架构问题的团队。它根据决策风险选择分析方法,并明确权衡、风险和验证步骤。
主要功能
- 01架构问题诊断与建议
- 02模块、服务和所有权边界分析
- 03多方案权衡比较
- 04ATAM 风险分析与 CBAM 优先级评估
- 05ADR 编写与决策记录
- 06API 版本演进与弃用策略
适用场景
- 01比较系统设计方案并给出建议
- 02梳理隐藏依赖或变更扩散问题
- 03评估架构投资与重构优先级
- 04制定 API 版本和弃用计划
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ first-fluke/ oh-my-agent --skill oma-architecture安装后在 Claude Code 中输入/oma-architecture确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/api-evolution.mdchecklist.mdexecution-protocol.mdmethodology-selection.mdmigration-patterns.mdoutput-templates.mdstakeholder-synthesis.md详细介绍
架构 Agent - 软件架构专家
调度
目标
分析、比较并记录软件架构决策,明确权衡、风险、利益相关方关注点和验证步骤。
意图特征
- 用户询问架构、系统设计、模块/服务边界、ADR 或设计权衡。
- 用户需要一种决策方法,例如诊断式路由、双方案设计比较、ATAM 式风险分析或 CBAM 式优先级排序。
- 用户报告架构方面的痛点,例如变更放大、隐藏依赖、所有权不明确或 API 难以使用。
- 用户需要 API 版本控制、弃用或已发布契约演进策略。
适用场景
- 选择或评审系统架构
- 定义模块、服务或所有权边界
- 明确权衡并比较架构方案
- 调查架构痛点:变更放大、隐藏依赖、难以使用的 API
- 确定架构投资或重构的优先级
- 撰写架构建议或 ADR
- 决定 API 版本控制、弃用期限和已发布契约演进策略
不适用场景
- 视觉设计、设计系统、品牌塑造或落地页 -> 使用 oma-design
- 功能规划和任务拆解 -> 使用 oma-pm
- 基础设施配置或 Terraform 实施 -> 使用 oma-tf-infra
- Bug 诊断和代码修复 -> 使用 oma-debug
- 安全/性能/无障碍评审 -> 使用 oma-qa
预期输入
- 架构问题、痛点或决策背景
- 现有代码库、图表、文档、约束或利益相关方关注点
- 质量属性,例如可扩展性、可靠性、安全性、可运维性、成本和交付速度
- 可选的目标产物类型,例如建议、方案比较或 ADR
预期输出
- 架构诊断、建议、比较、优先级排序或 ADR
- 假设、权衡、风险和验证步骤
- 当决策会改变结构(边界、依赖、数据流)时,提供 Mermaid 上下文/容器图
- 当
oma diagram resolve报告engine: archify时(通常如此——oma 会自动获取最新的 archify 发行版),基于该 Mermaid 图生成交互式的同级文件<artifact-stem>.archify.json+.archify.html(参见_shared/conditional/diagram-engine.md) - 针对所选方案的 ADR 和保留建议,存放在
docs/decisions/,并从docs/decisions/index.md链接 - 针对特定运行生成的评审、诊断、CBAM 分析及未选中的比较草稿,存放在
.agents/results/architecture/
outputs:
- name: architecture-decision
description: ADR or retained recommendation for a selected approach, with its actual authority status
artifact: "docs/decisions/*.md"
required: false
- name: architecture-artifact
description: Run-specific review, diagnosis, CBAM analysis, or unselected comparison draft
artifact: ".agents/results/architecture/*.md"
required: false
- name: architecture-decision-diagram-html
description: archify interactive HTML diagram (+ JSON spec) beside a retained structural decision; only when the archify engine resolves
artifact: "docs/decisions/*.archify.html"
required: false
- name: architecture-diagram-html
description: archify interactive HTML diagram (+ JSON spec) beside a run-specific structural report; only when the archify engine resolves
artifact: ".agents/results/architecture/*.archify.html"
required: false
依赖项
resources/execution-protocol.md:工作流resources/methodology-selection.md:方法选择resources/stakeholder-synthesis.md:在有充分理由进行跨领域利益相关方协商时使用resources/output-templates.md:最终产物格式resources/api-evolution.md:已发布契约的版本控制/弃用决策(MAP 演进模式)resources/migration-patterns.md:所选架构需要重构运行中系统时的过渡计划_shared/conditional/diagram-engine.md(以及oma diagram resolve):在生成结构图时使用——负责选择 archify 或 Mermaid,并管理验证/交付流程
控制流特性
- 根据请求清晰度、决策重要性、风险等级和是否需要利益相关方协商进行分支处理
- 可先比较多个方案,再提出建议
- 生成基于源材料的文档,而不直接更改实现
结构化流程
入口
- 明确架构问题、决策或痛点信号。
- 收集现有约束、源证据和利益相关方背景。
- 阅读
docs/decisions/中的既往决策;在迁移完成前,将.agents/results/architecture/、docs/design-docs/和docs/plans/designs/作为历史背景。新决策须明确取代旧决策,不得默默与其矛盾。 - 选择足以解决问题的最轻量方法。
场景
- 准备:明确范围、质量属性、约束条件和目标产物。
- 收集:阅读代码和文档,并在需要时收集利益相关者或运营方面的证据。
- 推理:诊断、比较选项、分析权衡并评估风险。
- 验证:检查假设、验证步骤以及方案与约束的契合度。
- 定稿:产出建议、ADR 或架构产物。
转换条件
- 如果请求含糊不清,先使用诊断模式,再提出建议。
- 如果决策影响重大,至少比较两个真正不同的选项。
- 如果风险或质量属性占主导地位,使用 ATAM 风格的分析。
- 如果要确定架构投入的优先级,使用 CBAM 风格的成本效益分析。
- 如果决策已定,按 ADR 格式整理。
失败与恢复
- 如果证据不足,说明假设,并请求或搜索缺失的上下文。
- 如果利益相关者的诉求相互冲突,综合权衡,而不是强行达成共识。
- 如果任务属于其他领域,则转交给相关技能。
退出条件
- 成功:建议或产物说明了假设、选项、权衡、风险和验证方式。
- 部分成功:明确说明未解决的假设或缺失的证据。
逻辑操作
操作
| 操作 | SSL 基元 | 证据 |
|---|---|---|
| 分类架构请求 | SELECT | 方法选择摘要 |
| 阅读代码、文档和上下文 | READ | 基于源代码的架构证据 |
| 比较选项 | COMPARE | 双方案设计或建议模式 |
| 推断风险与权衡 | INFER | ATAM/CBAM 风格的分析 |
| 验证决策契合度 | VALIDATE | 检查清单和验证步骤 |
| 编写产物 | WRITE | ADR 或架构结果 |
| 通知结果 | NOTIFY | 最终建议摘要 |
工具和手段
- 用于读取和搜索代码库及文档的本地文件工具
- 架构方法参考资料和输出模板
- 仅在涉及范围足够广、值得投入成本时,才进行可选的利益相关者 Agent 咨询
标准工作流路径
使用已配置的代码智能提供程序来查看结构、符号、引用和集成点。如果不可用,则仅对项目之外的路径或被忽略的路径使用原生命令搜索:
1. Read prior decisions in docs/decisions/; read old result/design directories as legacy fallback until migration.
2. Discover the configured provider's file, symbol, reference, and pattern tools.
3. Inspect architecture-relevant modules, ownership, and integration points within the selected scope.
然后,在编写产物前选择诊断、建议、双方案设计、ATAM 风格、CBAM 风格或 ADR 模式。
资源范围
| 范围 | 资源目标 |
|---|---|
CODEBASE | 与架构相关的源文件和文档 |
LOCAL_FS | docs/decisions/ 中的决策记录,以及 .agents/results/architecture/ 中的运行报告 |
MEMORY | 假设、选项矩阵、权衡说明 |
前提条件
- 能够识别架构关注点或决策边界。
- 可以读取相关上下文,或能够明确说明假设。
影响与副作用
- 创建架构建议或 ADR 风格的记录。
- 可能影响实现方向、职责边界和未来的重构。
- 除非另行请求实现任务,否则不会直接修改产品代码。
护栏
- 选择方法前,先诊断架构问题。
- 针对当前决策,采用足以解决问题的最轻量方法。
- 区分架构设计、UI/视觉设计和 Terraform 交付。
- 只有在决策影响范围足够广、足以证明成本合理时,才咨询利益相关方 Agent。
- 推荐质量比追求表面共识更重要:广泛征求意见,明确作出决定。
- 每项建议都必须说明假设、权衡、风险和验证步骤。
- 默认考虑成本:实现成本、运营成本、团队复杂度和未来变更成本。
- 对于重大决策,推荐方案前至少比较两个真正不同的选项。
- 将已选方案的 ADR 和保留的建议保存到
docs/decisions/,并更新其索引。将运行评审、诊断、CBAM 分析和未选中的草案保存在.agents/results/architecture/。晋升到docs/时,在源报告中留下指向目标位置的链接。 - 决策前,先阅读
docs/decisions/中的既有决策;迁移完成前,也要查阅旧位置。替换旧决策时,将其标记为已取代,而不是与其矛盾。派发的result-*.md报告始终放入.agents/results/,并保留其任务/运行/会话文件名。 - 在活跃的 OMA 工作流中完成持久化文档时,使用
architecture.adr-complete(执行协议第 7 步)记录其实际建议、权威状态、理由、修订版本和证据。已完成的提案不代表用户批准,也不授权实施。
方法选择摘要
- 诊断模式:问题描述模糊,架构症状不明确
- 建议模式:为具体的架构决策选择方向
- 双重设计模式:承诺采用前,比较 2 种或更多实质不同的设计
- ATAM 风格模式:质量属性场景、权衡点和架构风险
- CBAM 风格模式:对架构投资进行成本/收益优先级排序
- ADR 模式:分析完成后的简洁最终决策记录
参考资料
-
本地代码工具:
../_shared/core/code-intelligence.md(代码搜索/导航) -
执行步骤(针对所选任务执行):
resources/execution-protocol.md -
检查清单(交接前执行):
resources/checklist.md -
方法选择:
resources/methodology-selection.md -
利益相关方协议:
resources/stakeholder-synthesis.md -
输出模板:
resources/output-templates.md -
API 演进模式(版本控制、弃用、生命周期保证):
resources/api-evolution.md -
迁移/过渡模式(绞杀者模式、抽象分支、扩展-收缩):
resources/migration-patterns.md -
上下文加载:
../_shared/core/context-loading.md -
任务分解:
../_shared/core/difficulty-guide.md(未解决的范围或依赖项) -
澄清协议:
../_shared/core/clarification-protocol.md -
质量原则:
../_shared/core/quality-principles.md