Skip to main content

ohos-req-arch-decision

Use when selecting an OHOS solution direction in Phase 0.3, especially for 03-arch-decision-record.md, candidate options comparison, or when the main session needs structured ADR output with user-provided decision. Do NOT use for feasibility analysis (ohos-req-feasibility-analysis), feature baseline (ohos-req-feature-baseline), or review gate (ohos-req-review-gate).

Source facts

Repository
openharmonyinsight/openharmony-skills
Last source activity
July 21, 2026 at 12:25
Detected SKILL.md language
Chinese
Stars
34
Forks
7

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
3 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
ohos-req-arch-decision
description
Use when selecting an OHOS solution direction in Phase 0.3, especially for 03-arch-decision-record.md, candidate options comparison, or when the main session needs structured ADR output with user-provided decision. Do NOT use for feasibility analysis (ohos-req-feasibility-analysis), feature baseline (ohos-req-feature-baseline), or review gate (ohos-req-review-gate).
metadata
{"author":"openharmony","scope":"common","stage":"requirements","capability":"arch-decision","version":"0.3.0","status":"draft","tags":["sdd","requirements"]}
# OHOS 方案选型决策分析 **Announce at start:** "我正在使用 ohos-req-arch-decision skill 生成 03-arch-decision-record.md。" ## 定位 `03-arch-decision-record.md` 记录候选方案对比和用户决策结论,为 SIG 初审提供选型依据。OHOS SIG 采用集体评审制度,方案选型权归属 SIG 评审会议(由 SIG Maintainer + 领域 Owner 组成),AI 仅提供候选方案对比和推荐倾向参考,不代行决策权——决策结论必须由用户(代表 SIG 评审结论)提供。 ## 核心原则 ⭐ **决策结论必须由用户提供,AI 不替代用户做决策。** 两阶段执行: - **阶段 A(候选方案分析)**:生成候选方案对比表和 AI 推荐倾向,输出草稿供用户决策参考。 - **阶段 B(决策定稿)**:用户提供决策结论后,填入 §5-§6,输出定稿。 **⚠️ 阶段 A 完成后必须暂停,主 Session 向用户展示候选方案并等待用户决策。不允许跳过用户决策直接推进到阶段 B 或后续 Step。** ## 输入 - `{docs_dir}/01-requirement.md` - `{docs_dir}/02-feasibility.md` - 阶段 B 额外输入:用户决策结论(选定方案、理由、决策者)+ 用户评审会议认定的遗留问题清单 ## 自省提示(Mindset Prompts) 在执行关键步骤前,自问以下问题。这些问题把 SIG 评审会议的真实约束传递给 AI——方案选型权归属评审会议,AI 只负责候选对比与推荐倾向参考,任何一步替用户决策都会让未评审的方案进入下游。 - **Before writing §1 (背景与问题), ask yourself:** am I reading constraints from 01-requirement.md,还是在自行推断硬约束?硬约束应一行简述,不展开为表格。 - **Before constructing §3 (候选方案对比表), ask yourself:** 候选方案是 feasibility 给出的客观路径,还是我在自行扩充/裁剪?每个方案是否都有一句话描述 + 工作量 + 优势 + 劣势 + 风险 + AI 推荐倾向?对比表是否中立呈现,未夹带选型结论? - **Before writing §5 (决策结论), ask yourself:** 这份结论来自用户(代表 SIG 评审),还是我在替用户拍板?§5 是否仍为占位? - **Before writing §6 (遗留问题), ask yourself:** 这份清单是评审会议提供的,还是我在从 feasibility 条件项/风险自动推演?AI 推演会引入虚构风险项。 - **Before pausing after 阶段 A, ask yourself:** 我是否真的暂停等待用户决策了,还是直接推进到了阶段 B?status 是否保持 `PendingDecision`? - **Before triggering 单方案快速路径, ask yourself:** feasibility §6 是否明确标注其他路径 ❌不可行 且有证据支撑?还是只有一个方案被标 ✅ 而其余未排除?触发条件不满足时必须回到标准两阶段流程。 - **Before writing §6 占位 in 阶段 B(用户未提供遗留问题), ask yourself:** 我是否保留了 `[待用户评审会议后填写]` 并保持 status=`PendingDecision`,而不是自行补全 §6 凑闭环? ## 阶段 A:候选方案分析(subagent 执行) 1. 读取 `reference/arch-decision-record.md` 和输入文件。模板文件不带 `03-` 阶段编号前缀;`03-arch-decision-record.md` 仅作为 `{docs_dir}` 下的产物文件名。模板只定义产物结构(6个章节),流程规则(两阶段写入、AI不代行决策等)全部由本 skill 控制,不在模板中呈现。 2. 定义决策问题和硬约束 → 写入 §1 背景与问题(约束条件写为一行简述,不展开为表格)。 3. 从 feasibility 候选路径中提取方案,生成候选方案对比表(一句话描述 + 工作量 + 主要优势 + 主要劣势 + 主要风险 + AI 推荐倾向)→ 写入 §3 候选方案对比。 4. §5 决策结论、§6 遗留问题 **留空占位**(标注 `[待用户评审会议决策后填写]`)。注意:§5和§6均由用户提供,AI不代行。§5来自用户方案选型决策,§6来自用户评审会议认定的遗留问题清单。模板中 §5/§6 无阶段提示注释,这些流程规则由本 skill 控制。 5. 输出到 `{docs_dir}/03-arch-decision-record.md`,frontmatter 添加 `status: PendingDecision`(模板 frontmatter 不含 status 字段,由 skill 注入)。 ### 阶段 A 回传 ≤15 行:路径 + 候选方案 A/B/C 一句话 + AI 推荐倾向 + 关键风险 + 阻塞条件。 ## 阶段 B:决策定稿(subagent 执行) **前置条件:** 用户已在 Step 0.3.2 明确提供决策结论。 1. 读取 `{docs_dir}/03-arch-decision-record.md`(阶段 A 草稿)。 2. 读取用户决策结论(由主 Session 注入 task 描述): - **选定方案**:方案 A / B / C(或自定义) - **决策理由**:用户给出的选择理由 - **决策者**:拍板人姓名/角色 3. 将用户结论写入 §5 决策结论(选定方案 + 理由 + 决策者)。 4. 读取用户评审会议认定的遗留问题清单(由主 Session 注入 task 描述),写入 §6 决策后遗留问题。表格列结构:`| 遗留项 | 描述 | 负责人 | 解决动作 | 计划关闭时间 | 状态 |`(与模板 arch-decision-record.md §6 一致)。每条遗留项必须包含:描述、负责人、解决动作、计划关闭时间。 - **⚠️ §6遗留问题必须由用户提供,AI 不代行生成。** AI不得从feasibility条件项或风险自动推演遗留问题。如用户未提供遗留问题清单,§6保留占位标注 `[待用户评审会议后填写]`,status 保持 `PendingDecision`,不允许推进到后续 Step。 5. 更新 frontmatter `status: Accepted`(由 skill 注入,模板不含 status 字段)。 6. 输出到 `{docs_dir}/03-arch-decision-record.md`。 ### 阶段 B 回传 ≤15 行:路径 + 选定方案 + 决策理由一句话 + 遗留问题数 + status(Accepted)。 ## 阶段判定规则 | 阶段 | 触发条件 | status 值 | 产出 | |------|----------|-----------|------| | A | Step 0.3.1(requirement+feasibility 就绪) | `PendingDecision` | §1-§3 填充,§5-§6 占位 | | B | Step 0.3.3(用户提供决策结论 + 遗留问题清单) | `Accepted` | §5 填充(用户决策),§6 填充(用户遗留问题),全文定稿 | **不允许在阶段 A 直接输出 `status: Accepted` 或自行填写 §5 决策结论。** **不允许在阶段 B 用户未提供遗留问题清单时输出 `status: Accepted` 或自行填充 §6。** ## 强制规则 - **遗留问题闭环门禁**:§6 每条遗留项必须有负责人、解决动作、计划关闭时间。任一遗留项缺少这三字段 → 阻断 Phase 0→1-9 交接。 - **AI 推荐倾向仅为参考**:§3候选方案对比表的"AI 推荐倾向"列仅供用户决策参考,不是最终结论。 ## 单方案例外 只有一个客观可行方案时允许不构造虚假备选,但必须写明其他路径不可行的证据。 **单方案快速路径(简化两阶段为一阶段)**: 当 feasibility 阶段已明确排除其他方案(客观上只有一条可行路径)时,可跳过候选方案对比表,采用简化流程: 1. **阶段 A 简化**:直接呈现唯一方案分析(方案描述 + 工作量 + 优势 + 不可行证据),**不生成候选方案对比表**(§3 标注"单方案场景,无可行备选") 2. **单次确认**:向用户一次性呈现唯一方案 + 其他路径不可行证据,用户一次确认采纳即可,**无需两阶段暂停** 3. 用户确认采纳后直接定稿 §5(选定方案 + 理由:"唯一可行方案,无备选" + 决策者),status 直接设为 `Accepted` **触发条件**:feasibility.md §6 结论中仅有一个方案标记为 ✅可行 或 ⚠️有条件可行,其余方案均标记为 ❌不可行,且不可行有证据支撑。 **不满足触发条件时**(≥2 个可行方案),仍执行标准两阶段流程。 ## 职责边界 本 skill 只产出方案选型决策,不产出 Feature 评审基线(目标/非目标/AC/交付影响),这些由 `ohos-req-feature-baseline` skill 负责。 ## NEVER - **禁止 AI 代行决策**:§5 选定方案、决策理由和决策者由用户提供,AI 不代行(原因:方案选型权归属 SIG 评审会议,AI 推荐倾向仅为参考) - **禁止 AI 生成遗留问题**:§6 遗留问题由用户评审会议输入,不得从 feasibility 条件项或风险自动推演(原因:遗留问题反映用户认定的开放风险,AI 推演会引入虚构风险项) - **禁止阶段 A 直接定稿**:不允许在阶段 A 输出 `status: Accepted` 或自行填写 §5(原因:跳过用户决策会导致未评审的方案进入下游) - **禁止用户未提供遗留问题时填充 §6**:阶段 B 时如用户未提供,§6 保留占位,status 保持 `PendingDecision`(原因:遗留问题未经评审会议认定则不构成闭环) ## 自检 - [ ] status 字段由 skill 注入(PendingDecision→Accepted),非模板填写 - [ ] §5 方案比较来自用户提供,非 AI 推断 - [ ] §6 遗留问题来自评审会议,非 AI 推演 - [ ] 阶段A完成后已暂停等待用户决策 - [ ] 单方案例外仍执行了两阶段流程 - [ ] 每条遗留问题含负责人/解决动作/计划关闭时间 ## 错误处理 | 场景 | 行为 | |------|------| | 01-02 未就绪 | 提示用户先完成上游 Step 0.1-0.2,列出缺失文档 | | 用户未提供候选方案 | 追问用户:"请提供至少 2 个候选方案用于比较" | | 用户未做决策(阶段A后) | 保持 status: PendingDecision,追问:"请提供评审会议决策结论" | | 遗留问题未提供 | §6 保留占位符 [待用户评审会议后填写],不自行填充 | ## 输出 - 路径:`{docs_dir}/03-arch-decision-record.md` - 阶段 A 回传:路径、候选方案概要、AI 推荐倾向、关键风险、阻塞条件 - 阶段 B 回传:路径、选定方案、决策理由、遗留问题数、status
View on GitHub