openharmonyinsight/openharmony-skills

oh-pdd-design-doc-generator

基于 PRD 文档自动生成鸿蒙系统设计文档,包括架构设计文档和功能设计文档。生成前会分析 OpenHarmony 存量代码结构,确保与现有架构兼容。架构设计文档第2章必须为竞品方案分析,位于需求背景之后。适用于用户请求:(1) 生成架构设计文档, (2) 生成功能设计文档, (3) 从 PRD 生成设计文档, (4) 创建系统架构设计, (5) 编写功能规格说明, (6) 分析 OH 代码结构。关键词:architecture design, functional design, design doc, 竞品…

Zobacz źródło
Oryginalny dokument Skill

Treść z repozytorium z zachowaniem nagłówków, przykładów, kodu, tabel, linków i obrazów.

设计文档生成器

基于 PRD 文档自动生成鸿蒙系统(HarmonyOS/OpenHarmony)设计文档,包括架构设计文档和功能设计文档。

快速开始

提供 PRD 文档路径:

基于 {PRD文档} 生成设计文档

指定输出类型:

生成架构设计文档和功能设计文档,基于 {PRD文档路径}

OpenHarmony 代码分析

在生成设计文档前,需要分析 OpenHarmony 存量代码结构,确保新设计与现有架构兼容。

分析步骤

1. 发现代码结构

使用 Glob 工具快速发现目录结构和关键文件:

文件类型搜索模式说明
配置文件**/bundle.json, **/BUILD.gn, **/config.json部件定义、构建配置
文档文件**/README.md, **/*.md模块说明、使用指南
接口文件**/*.idl, **/include/*.hIDL 接口、C++ 头文件
元数据文件**/*.gn, **/*.gniGN 构建脚本
SA 配置**/sa_profile/*.json, **/etc/profile/*.jsonSA 配置文件

2. 搜索关键信息

使用 Grep 工具搜索关键字提取组件信息:

搜索目标搜索关键字提取信息
SA ID"sa-id"已分配的 SA ID
子系统subsystem_name子系统组织
依赖关系external_deps组件依赖
接口定义interfaceIDL 接口
服务类class.*Service服务实现类
Provider.*ProviderSA Provider 类

3. 读取关键配置

使用 Read 工具读取关键配置文件:

  • bundle.json: 部件定义和子系统归属
  • BUILD.gn: 构建依赖和编译选项
  • sa_profile/*.json: SA 配置和启动参数
  • README.md: 模块说明和使用指南
  • *.idl: 接口定义和数据结构

4. 智能探索

使用 Task 工具启动 Explore 代理进行多轮探索:

  • 发现相关模块的目录结构
  • 查找相似功能的实现参考
  • 提取接口设计和数据结构

命名模式推断

通过文件和目录命名推断功能:

命名模式推断功能示例
*_service.cpp服务实现disk_info_service.cpp
*_provider.h/cppSA Provider 实现disk_manager_provider.cpp
*_listener.idl事件监听接口IDiskChangeListener.idl
*_types.idl数据类型定义DiskInfoTypes.idl
*/kits/对外 API 层kits/js/, kits/native/
*/innerkits/内部 API 层innerkits/native/
*/sa_profile/SA 配置文件sa_profile/5001.json
*/test/测试代码test/unittest/
*/mock/测试 Mocktest/mock/

分析输出

代码分析完成后生成:

  1. 现有 SA 清单: 已分配的 SA ID 和服务名称
  2. 子系统组织: 子系统和部件的层次结构
  3. 依赖关系图: 组件间的依赖关系
  4. 接口参考: 相似功能的接口设计参考
  5. 代码风格参考: 命名规范、目录结构等

竞品方案分析章节要求

架构设计文档 第2章必须为竞品方案分析,位于需求背景之后、鸿蒙系统架构分析之前。

章节结构

2. 竞品方案分析

2.1 竞品识别

  • 列出主要竞品(至少2-3个)
  • 说明竞品选择理由
  • 竞品类型:同类产品、技术方案、行业标准

2.2 竞品技术方案分析

对每个竞品分析:

  • 核心技术架构
  • 关键技术组件
  • 通信机制
  • 数据流程
  • 关键流程图、时序图

2.3 技术对比表格

对比项本方案竞品A竞品B
架构模式
核心技术
通信机制
进程模型
安全机制
跨语言支持

2.4 差异化设计

  • 本方案相对于竞品的创新点
  • 解决的竞品痛点
  • 技术优势说明
  • 借鉴与改进

输出要求

  • 使用4+1视图、流程图、时序图呈现竞品技术方案
  • 至少包含2个竞品的详细分析
  • 必须有技术对比表格
  • 必须明确差异化设计点

章节顺序验证

生成架构设计文档时,验证章节顺序:

标准顺序:需求背景 → 竞品方案分析 → 鸿蒙系统架构分析 → 架构设计...

验证规则

  • ✅ 第1章必须是"需求背景"
  • ✅ 第2章必须是"竞品方案分析"(必需
  • ✅ 竞品方案分析必须在需求背景之后
  • ✅ 竞品方案分析必须在架构设计之前
  • ❌ 如顺序错误,提示用户调整

验证逻辑

  1. 提取文档中所有一级标题(# 开头)
  2. 验证第1章是否为"需求背景"
  3. 验证第2章是否为"竞品方案分析"或"竞品分析"
  4. 如缺失第2章或顺序错误,返回错误提示

生成内容

架构设计文档 (architecture_vX.md)

包含以下标准章节(按顺序):

章节内容
1. 需求背景项目背景、业务需求、技术挑战
2. 竞品方案分析竞品识别、技术方案对比、差异化设计(必需
3. 鸿蒙系统架构分析现有架构、可复用组件
4. 架构设计整体架构、技术选型、模块划分
5. 数据模型核心数据结构、数据库设计
6. 接口设计IDL接口、NAPI接口
7. 部署架构进程模型、启动依赖
8. 安全韧性隐私可靠性分析安全设计、韧性设计、隐私保护、可靠性
9. 需求分解与代码量评估需求拆分、代码量估算
10. 附录错误码、性能指标

功能设计文档 (functiondesign_vX.md)

包含以下标准章节:

章节内容
1. 概述文档目的、模块清单
2. 模块定义各模块职责、输入输出、依赖关系
3. 接口定义IDL接口、回调接口
4. 状态机设计状态枚举、转换表、转换图
5. 流程设计主流程图、时序图、异常处理
6. 错误处理错误码定义、处理策略

架构层次

┌─────────────────────────────────────────┐
│              应用层 (Application)         │
│         设置应用 | 文件管理 | 磁盘工具      │
└─────────────────────────────────────────┘
                    ↓ NAPI/IPC
┌─────────────────────────────────────────┐
│               服务层 (Service)            │
│      DiskManagement SA (5001)            │
│  DiskInfo | Format | Repair | Status     │
└─────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────┐
│               工具层 (Tools)              │
│    FormatTool | FsckTool | PartedTool    │
└─────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────┐
│              系统层 (System)              │
│  Storage SA | OsAccount SA | HiSysEvent   │
└─────────────────────────────────────────┘

SA 划分规则

SA 名称SA ID 范围示例
基础服务1000-1999OsAccount (4101)
数据存储4000-4999
文件管理5000-5999DiskManagement (5001), StorageManager (5003)

状态机设计

使用 V11.0 状态机规范:

mermaid
stateDiagram-v2
    [*] --> UNKNOWN
    UNKNOWN --> NORMAL: 检测成功
    UNKNOWN --> ABNORMAL: 检测失败
    NORMAL --> CHECKING: 开始检测
    CHECKING --> NORMAL: 检测完成
    CHECKING --> REPAIRING: 需要修复
    CHECKING --> ABNORMAL: 检测失败
    REPAIRING --> NORMAL: 修复成功
    REPAIRING --> ABNORMAL: 修复失败
    ABNORMAL --> CHECKING: 重新检测

时序图示例

mermaid
sequenceDiagram
    participant App as 应用
    participant Kit as DiskManagementKit
    participant SA as DiskManagement SA
    participant Tool as FormatTool

    App->>Kit: formatDisk(diskId, fsType)
    Kit->>SA: format(diskId, fsType)
    SA->>SA: 权限校验
    SA->>SA: 状态验证
    SA->>Tool: executeFormat()
    Tool-->>SA: onProgress(percent)
    SA-->>Kit: onFormatProgress()
    Kit-->>App: progress callback
    Tool-->>SA: result
    SA-->>Kit: result
    Kit-->>App: format result

参考文档

与 PRD 的映射关系

PRD 章节设计文档章节映射规则
第4章:竞品分析第2章:竞品方案分析PRD的竞品分析扩展为技术方案对比
第2章:需求背景第1章:需求背景直接映射
第5章:需求描述第4章:架构设计需求转换为架构设计
KEP 定义模块架构 + 接口设计每个 KEP 对应至少一个服务模块
用户故事功能规格用户场景转换为功能流程
验收标准接口返回值定义验收条件转为接口契约
非功能需求架构选型 + 性能指标技术约束体现在架构设计中

依赖服务映射

设计文档中的服务对应的 OpenHarmony SA说明
权限校验服务OsAccount SA (4101)复用账户系统能力
存储服务StorageManager SA (5003)外接存储管理
加密服务Crypto SA磁盘加密能力

输出目录结构

output/
├── architecture_v1.md      # 架构设计文档
├── functiondesign_v1.md     # 功能设计文档
├── code_paths_v1.md        # 代码路径文档
└── diagrams/               # 生成的图表文件
    ├── architecture.png
    ├── state_machine.png
    └── sequence.png

使用示例

生成完整设计文档

基于 {PRD文档} 生成架构和功能设计文档

仅生成架构设计

只生成架构设计文档,基于 {PRD文档}

指定 SA ID

生成设计文档,SA ID 使用 {SA_ID},基于 {PRD文档}

指定产品名称和版本

为 {产品名} {版本} 生成设计文档,版本 {文档版本},基于 {PRD文档}

指定输出目录

生成设计文档到 ./design_docs 目录,基于 {PRD文档}

命名规范

文档类型命名格式示例
架构设计architecture_v{major}.mdarchitecture_v1.md
功能设计functiondesign_v{major}.mdfunctiondesign_v1.md
代码路径code_paths_v{major}.mdcodepathsv1.md
PRD 引用prd_v{version}.mdprd_v17.md

版本管理规则

版本变化更新内容
PRD 版本变更设计文档版本同步递增
架构调整增加 .1 子版本(V1.0 → V1.1)
新增功能增加次版本号(V1.0 → V2.0)

图表格式

使用 Mermaid 语法绘制图表。支持的图表类型:

  • 流程图: graph TDflowchart TD
  • 状态图: stateDiagram-v2
  • 时序图: sequenceDiagram
  • 类图: classDiagram
  • 组件图: graph LR

错误处理

错误类型处理方式
PRD 文件不存在提示文件路径错误
PRD 缺少竞品分析提示补充PRD第4章竞品分析,或基于现有信息生成
架构文档缺少第2章竞品方案分析返回错误:第2章必须为竞品方案分析
章节顺序错误提示:第2章必须为竞品方案分析,位于需求背景之后
KEP 解析失败列出缺失的 KEP 定义
格式不符合规范按默认模板生成
输出目录不可写提示权限问题
z tego samego repozytorium

Więcej Skills

Wszystkie Skills