ArkWeb Spec 文档评审

SkillDocs & knowledge

ArkWeb Spec document review. Can run as a standalone subagent. Checks documents for completeness, consistency, and feasibility. Trigger words: 评审设计文档, Spec review, 检查设计文档, 需求评审.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the ArkWeb Spec 文档评审 skill

What this skill tells your AI

The instructions your AI receives, as published by openharmonyinsight/openharmony-skills in workflows/arkweb/.aceharness/skills/arkweb-spec-review/SKILL.md and read by ahel’s review.

Announce at start: "我正在使用 arkweb-spec-review skill 评审设计文档。"

运行模式

模式 A:Subagent 模式(推荐)

作为独立 subagent 被 arkweb-architect 调用时,设计文档和代码分析结果路径已在 task 描述中提供,直接执行评审。

输入格式(从 task 描述中解析):

## 待评审文档
{DOCS_REPO}/docs/{date}-{feature}-requirement.md

## 代码分析结果(用于交叉验证)
{DOCS_REPO}/analysis/{date}-{feature}-analysis.md

## 参考资料(按需读取)
- ACE Engine 索引:{DOCS_REPO}/analysis/arkweb-ace-engine-analysis.md
- WebWebView 分析:{DOCS_REPO}/analysis/web-webview-analysis.md

输出: 评审报告 → 保存到指定路径 → 回复评审结果摘要

模式 B:交互模式

在主 session 中直接调用,评审完成后呈现给用户,用户决定是否修改。

模式 C:最小化检视流程(独立检视 + 修改闭环)

适用于已有设计文档,只需检视和修改的场景,跳过 brainstorm/code-analysis/design-doc 全链路。

触发词: 检视设计文档、review checklist、快速检视

流程:检视 → 修改 → 复审 → 提 PR

Step 1: 读取设计文档 + Checklist 模版
Step 2: 执行 Checklist 33 项检视(输出结果表)
Step 3: 有阻塞项?
  ├─ 否 → 输出"通过",流程结束
  └─ 是 → 逐组修改设计文档
         ├─ 每组修改提交一个 PR
         ├─ 老板审批合并
         ├─ 合并后重新检视该组修改项
         └─ 全部通过 → 流程结束

与模式 A/B 的区别:

  • 不执行完整评审维度检查(5 维度 31 项),仅做 Checklist 33 项检视
  • 不依赖代码分析结果交叉验证
  • 检视不通过时直接修改文档(而非打回 design-doc skill)
  • 每组修改独立提 PR,合并后复审该组,不重跑全量检视

概述

对已生成的 ArkWeb 设计文档进行系统评审,确保完整性、一致性和技术可行性。

评审维度

1. 完整性检查(10 项)

  • 需求描述覆盖所有功能点(FR)
  • 非功能需求覆盖(NFR):性能/安全/兼容性/可测试性
  • 每个章节有实质内容(无空章节/占位符)
  • 包含架构图(ASCII)
  • 包含类图(ASCII)
  • 包含时序图(ASCII)
  • 接口设计有参数表和返回值说明
  • 接口设计有示例代码
  • 测试用例矩阵完整
  • 全量设计待办清单完整

2. 一致性检查(6 项)

  • 术语统一(全文中同一概念使用相同术语)
  • 架构描述与类图一致
  • 时序图与接口设计一致
  • 设备差异表与兼容性分析一致
  • 工期估算与方案复杂度匹配
  • 文件路径与实际代码索引一致(交叉验证)

3. 技术可行性检查(5 项)

  • 方案涉及的 ArkWeb API 是否已存在(查 ace_engine 分析文档)
  • 涉及的 Chromium 内核修改是否有上游支持
  • OHOS 平台 API 依赖是否在目标版本可用
  • 性能基线是否可达成
  • 兼容性降级方案是否合理

4. DFX 完整性(6 项)

  • 可靠性设计(异常处理、重试、降级)
  • 安全设计(权限、沙箱、数据保护)
  • 可扩展性设计(接口预留、插件机制)
  • 可配置性设计(开关、参数)
  • 兼容性设计(版本兼容、向前/向后兼容)
  • 可测试性设计(测试点、自动化方案)

5. 文档规范(4 项)

  • 文件命名符合 {YYYY-MM-DD}-{feature-name}-requirement.md
  • 关键决策点有 <!-- architect: ... --> 注释
  • 1+8 设备差异表完整
  • 工期估算合理

6. 接口设计规范(7 项 — 历史纠正项固化)

⚠️ 以下为多轮评审反复出现的问题,已固化为强制检查项:

  • 说明列四段式结构: 参数表中每个字段的「说明」列必须包含描述/前置条件/规格/异常处理四段,内容过多时引用具体表格或章节。禁止在表格下方另起独立段落写四段式(与说明列冗余)。若参数表后有"接口整体规格"段落,仅保留跨字段的全局性说明(如执行语义、公共异常处理),不重复字段级信息。
  • 设备差异表必须用表格: 即使所有设备均支持,也必须保留表格格式,每个格子填"支持"。禁止删除表格改为纯文字描述(如"不涉及。所有设备均支持")。不支持的设备在对应格标注原因。
  • 字段关联关系: 参数表后的字段关联关系说明必须存在(互斥/依赖/联动),不得缺失。
  • 接口入参全文档联动: 当接口入参格式变更(如字段名、类型、结构变化),全文所有引用处必须同步更新,包括但不限于:功能范围表、典型场景示例、架构图 JSON 示例、类图成员变量、时序图、C++ 代码/伪代码、错误码触发场景、DFX 分析、设备矩阵功能点命名、全量特性表。不得残留旧字段名。
  • 方案变更全文档联动: 当实现方案发生重大变更(如 JS 注入 → C++ DOM API),以下章节必须全部重写/更新:功能概述(实现路径描述)、架构图(内核层描述)、类图(方法命名)、时序图(NWebImpl→Chromium 的调用方式)、C++ 代码(核心 API 调用)、JS 注入模板(删除或改为降级方案)、框架兼容性(新方案的兼容性分析)、伪代码、接口规格汇总(描述中的实现方式)、DFX(安全设计检查等)、演进路线/降级方案。
  • 错误码完整性: 错误码定义表的触发场景描述必须与实际实现方式匹配。方案变更后(如不再使用 JS 注入),需删除已不适用的错误码(如 ERROR_SETTER_NOT_AVAILABLE),新增方案特有的错误码(如 ERROR_CPP_API_NOT_AVAILABLE),并更新其他错误码的触发场景描述(如"document.evaluate()" → "Document::EvaluateXPath()")。
  • 术语一致性: 全文同一概念必须使用相同术语。方案变更后,旧术语(如 setValue/selectOption/ExecuteJavaScript)不得残留,C++ 类成员变量名(如 eventType_)除外。

需求检视 Checklist

评审流程中嵌入结构化检视环节,使用通用 Checklist 模版(assets/templates/requirement-design-review-checklist.md)逐项检查设计文档质量。 Checklist 为设计文档评审的质量门禁:检视不通过时,要求 design-doc 修改后重新评审。

Checklist 分类

  • 必选(27 项): 大部分设计文档需要满足,少量不涉及的可填写不涉及
  • 可选(6 项): 设计文档中写明不涉及即通过,如涉及则需评审满足度

检视时机

在 Step 2 逐项检查完成后、Step 3 输出报告前执行。

检视不通过的处理

  • 🔴 必选项不满足 → 打回 design-doc 修改,修改后重新走 spec-review
  • ⚠️ 可选项涉及但不满足 → 建议修改,不阻塞
  • ❌ 必选项不涉及 → 需在说明列给出不涉及理由

Checklist 模版路径

assets/templates/requirement-design-review-checklist.md

8 大类 33 项:需求分析(5) / 需求规格(3) / KPI&KQI(4) / 模块(3) / 接口(2) / 设计(8) / 可测试性(3) / 安全(5)


流程

Step 1: 读取文档

读取待评审文档 + 代码分析结果(用于交叉验证类名、接口签名、文件路径)。

Step 2: 逐项检查

按上述 5 个维度逐项检查,记录问题。

交叉验证要点:

  • 设计文档中的类名是否在 ace_engine 分析中存在
  • 接口签名是否与 web_webview 分析中的定义一致
  • 文件路径是否正确

Step 2.5: Checklist 结构化检视

基于 assets/templates/requirement-design-review-checklist.md 逐项检查,输出 Checklist 结果表:

## Checklist 检视结果

| # | 检查项 | 必/可选 | 状态 | 说明 |
|---|--------|---------|------|------|
| 1 | ... | 必选 | ✅/⚠️/❌ | ... |
| ... | ... | ... | ... | ... |

### 检视统计
- 必选满足:N / 27
- 必选不满足:N(阻塞项)
- 必选不涉及:N
- 可选涉及:N / 6
- 可选不涉及:N

### 检视结论
✅ 通过 / ❌ 不通过(N 项必选阻塞)

判定规则:

  • 必选无"不满足"项 → ✅ 通过,进入 Step 3
  • 必选有"不满足"项 → ❌ 不通过,输出评审报告后打回 design-doc 修改

Step 3: 输出评审报告

# {文档名} 评审报告

## 评审结果:{通过 / 需修改 / 不通过}

## Checklist 检视结果

| # | 检查项 | 必/可选 | 状态 | 说明 |
|---|--------|---------|------|------|
| 1 | ... | 必选 | ✅/⚠️/❌ | ... |

### 检视统计
- 必选满足:N / 27 | 必选不满足:N | 必选不涉及:N
- 可选涉及:N / 6 | 可选不涉及:N
- 检视结论:✅ 通过 / ❌ 不通过

## 问题清单
### 🔴 必须修改(含 Checklist 必选不满足项)
1. [描述] - 位置:{章节} - 来源:Checklist #N

### 🟡 建议修改
1. [描述] - 位置:{章节}

### 🟢 优秀实践
1. [描述]

## 统计
- Checklist 总检查项:33(必选 27 / 可选 6)
- Checklist 满足:N | 不满足:N | 不涉及:N
- 评审维度检查项:N
- 通过:N
- 🔴 必须修改:N 项
- 🟡 建议修改:N 项
- 🟢 优秀实践:N 项

Step 4: 闭环处理

Checklist 不通过时(必选有阻塞项)
  • 输出评审报告,明确列出 Checklist 不满足项
  • 打回 arkweb-design-doc 修改
  • 修改后重新走 spec-review 流程
Checklist 通过但评审维度有问题时
  • 🔴 必须修改项:打回 design-doc 修改
  • 🟡 建议修改项:不阻塞,记录在评审报告中
全部通过时
  • 进入下一阶段(create-sr)

Step 5: 输出

Subagent 模式

保存评审报告并回复结果摘要。不执行修改(由主 session 的决策 3 处理)。

交互模式

呈现评审结果,用户决定是否修改。修改后可重新评审。

产出物

  • 路径{DOCS_REPO}/docs/YYYY-MM-DD-{feature-name}-review.md

Subagent 回复格式

✅ spec-review 完成
📄 报告:{file_path}
📊 评审结果:{通过 / 需修改 / 不通过}
📋 Checklist 检视:满足 N/33 | 不满足 N | 不涉及 N(必选阻塞 N)
- 总检查项:{N},通过:{N}
- 🔴 必须修改:{N} 项
- 🟡 建议修改:{N} 项
- 🟢 优秀实践:{N} 项

Signals

GitHub stars
34
Forks
7
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
arkweb-spec-review
Source
github.com/openharmonyinsight/openharmony-skills