Skip to main content

arkweb-architect

ArkWeb AI 辅助设计流程编排入口。当用户提到 ArkWeb、chromium、web_webview、WebView、需求分析、设计文档等关键词时触发。每个 skill 对应一个独立 subagent,主 session 仅做调度和决策。

ソース情報

リポジトリ
openharmonyinsight/openharmony-skills
ソースの最終更新活動
2026年5月21日 02:26
検出された SKILL.md の言語
中国語
スター
34
フォーク
7

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
arkweb-architect
description
ArkWeb AI 辅助设计流程编排入口。当用户提到 ArkWeb、chromium、web_webview、WebView、需求分析、设计文档等关键词时触发。每个 skill 对应一个独立 subagent,主 session 仅做调度和决策。
# ArkWeb 架构师 - Subagent 编排流程 ## 环境变量 主 Session 在 Phase 1 开始前确定以下变量值,后续所有 Phase 引用这些变量: | 变量 | 含义 | 取值规则 | 示例 | |------|------|---------|------| | `SKILL_HOME` | 只读资源路径(skill 定义、模板、参考资料、已有分析) | **默认 = 主 Session 当前工作目录(cwd)**。即 skill 定义的根路径 | — | | `WORK_HOME` | 产出物路径(设计文档、分析报告、生成代码) | **默认 = SKILL_HOME**。用户可指定为目标代码仓库(跨仓库场景) | — | | `DOCS_REPO` | 设计文档仓库路径(产出物存放位置) | **启动时自动发现,找不到则询问用户**:按优先级查找 → 找到即使用 → 均未找到则通过 `AskUserQuestion` 要求用户直接输入路径 | — | | `docs_dir` | 特性产出物目录 | `{DOCS_REPO}/docs/features/{feature-name}/` | — | | `analysis_dir` | 代码分析缓存目录 | `{DOCS_REPO}/analysis/` | — | | `references_dir` | 参考资料 | `{DOCS_REPO}/references/` | — | **取值逻辑:** 1. 主 Session 启动时,`SKILL_HOME` = 当前工作目录(cwd) 2. 如果用户指定了其他工作目录,则 `WORK_HOME` = 用户指定路径;否则 `WORK_HOME` = `SKILL_HOME` 3. `DOCS_REPO` 启动时检查(按优先级依次尝试,找到第一个满足条件的即停止): - `{SKILL_HOME}` 本身(检查是否包含 `docs/features/` 和 `analysis/` 子目录) - `{SKILL_HOME}/{DOCS_REPO_DIR}`(检查该目录是否存在且包含 `docs/` 和 `analysis/` 子目录) - 从 `SKILL_HOME` 逐级向上查找包含 `docs/features/` 和 `analysis/` 子目录的目录 - 以上均未找到 → 使用 `AskUserQuestion` 向用户询问:"未找到设计文档仓库(需包含 docs/features/ 和 analysis/ 目录),请输入完整路径" 4. 主 Session 在 spawn subagent 时,将上述变量替换为实际绝对路径后注入 task 描述 5. subagent 收到的 task 中不包含变量名,只有实际路径值 > **重要:** 本 SKILL.md 中所有路径引用均使用上述变量。这是为了让不同模型/环境都能无歧义理解路径含义。实际执行时由主 Session 完成变量替换。 ## 核心原则 **主 Session = 协调者 + 决策者,不做实际工作。** 每个 skill 是一个独立 subagent,拥有自己的上下文和输出。Subagent 之间通过文件系统传递数据(读写共享 workspace),不直接通信。 **proposal.md 是核心需求文档。** 模板产出物(spec.md)从 proposal.md 中提取生成。评审对象始终是 proposal.md。 ## 架构总览 ``` ┌──────────────────────────────────────────────────────────────────────────────────────────────┐ │ 🧠 主 Session(协调者) │ │ │ │ ┌───────┐ ┌───────┐ ┌───────┐ │ │ │决策 1 │ │决策 2 │ │决策 3 │ │ │ │选方案?│ │评审? │ │审代码?│ │ │ └───┬───┘ └───┬───┘ └───┬───┘ │ │ └─────────┴─────────┘ │ │ ┌──────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ Subagent 调度器 │ │ │ │ spawn / yield / collect / steer / kill │ │ │ └──────────────────────────────────────────────────────────────────────────────────────┘ │ └──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬────────────────┘ │ │ │ │ │ │ │ ┌──────────────────────────────────────────────────────────┐ │ 专家团(10 专家并行,由主 Session 直接调度) │ │ ⚡🎬🔌🔐🎨🖼️✨🌐⚙️🛡️ │ │ → 按相关度权重筛选(🟢核心/🟡关联/⚪旁听) │ └──────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────┐ │Sub-1 brainstorm(接收专家意见,输出方案)[Phase 2] │ │ → 读取专家团讨论纪要 → 融入方案 → 输出 brainstorm │ └──────────────────────────────────────────────────────────┘ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │Sub-2 │ │Sub-3 │ │Sub-4 │ │Sub-7 │ │Sub-8 │ │code │ │design │ │spec │ │code │ │committer│ │analysis │ │doc │ │review │ │gen │ │review │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ ┌─────────┐ │Sub-9 │ │gitcode │ │pr │ │(Phase 9)│ └─────────┘ ┌─────────┐ │Sub-10 │ │spec-gen │ │(Phase 6)│ └─────────┘ ┌──────────────────────────────────────────────────────────┐ │ 主 Session 直接生成(不通过 subagent) │ │ → proposal.md (Phase 1 需求录入 + Phase 1.5 澄清 + Phase 3 基线) │ └──────────────────────────────────────────────────────────┘ ``` ## Subagent 清单 | ID | Skill | 职责 | 输入 | 输出 | |----|-------|------|------|------| | Sub-1 | arkweb-brainstorm | 需求拆解与方案设计 | 用户需求 + 约束 | brainstorm.md | | Sub-2 | arkweb-code-analysis | 代码仓库分析 | 技术关键词 | analysis.md | | Sub-3 | arkweb-design-doc | 设计文档生成 | 确认方案 + 代码索引 + 不涉及项 | requirement.md + design.md | | Sub-4 | arkweb-spec-review | 文档评审(含 Checklist 检视) | 设计文档 + 代码索引 | review.md | | Sub-7 | arkweb-code-gen | 代码生成(Spec 驱动) | 设计文档 + spec.md + 代码索引 | 实现代码 + 测试 | | Sub-8 | arkweb-committer-review | Committer 代码检视 | 设计文档 + 生成代码 | review-report.md | | Sub-9 | gitcode-pr | GitCode 提交 | 文档 + 代码 + 提交信息 | Issue + PR | | Sub-10 | arkweb-spec-gen | 统一 Spec + 执行计划生成 | proposal + requirement + design + review + analysis | spec.md + task.md | > **注:** proposal.md(Phase 1 需求录入 + Phase 1.5 澄清记录 + Phase 3 需求基线)由**主 Session 直接生成**。spec.md + task.md(Phase 6)由 Sub-10 (spec-gen) 生成。 > **v5 变更:** Sub-4 合并了原 Sub-4.5(checklist-review)的功能,评审时同时完成技术评审和 Checklist 规范性检视。Sub-5(spec-extract)和 Sub-6(create-spec)已移除,spec.md 改由 Sub-10 (spec-gen) 在 Phase 6 生成。 ### 专家团 Subagent(由主 Session 直接调度) 在 Phase 2 的 Step 2.2 中,主 Session 直接 spawn 领域专家 subagent,收集意见后传给 brainstorm: | ID | Skill | 角色 | 触发条件 | |----|-------|------|---------| | Exp-1 | arkweb-expert-performance | ⚡ 性能专家 | brainstorm 自动触发 | | Exp-2 | arkweb-expert-multimedia | 🎬 多媒体专家 | brainstorm 自动触发 | | Exp-3 | arkweb-expert-peripheral | 🔌 外设服务专家(传感器/电池/唤醒锁/震动/屏幕) | brainstorm 自动触发 | | Exp-4 | arkweb-expert-interaction-security | 🔐 交互安全专家 | brainstorm 自动触发 | | Exp-5 | arkweb-expert-rendering | 🎨 渲染引擎专家 | brainstorm 自动触发 | | Exp-6 | arkweb-expert-compositing | 🖼️ 渲染合成专家 | brainstorm 自动触发 | | Exp-7 | arkweb-expert-interaction-motion | ✨ 交互专家(滚动/缩放/菜单/选择/拖拽/上传/焦点/填充/AI化) | brainstorm 自动触发 | | Exp-8 | arkweb-expert-network | 🌐 网络加载专家 | brainstorm 自动触发 | | Exp-9 | arkweb-expert-js-engine | ⚙️ JS 引擎专家 | brainstorm 自动触发 | | Exp-10 | arkweb-expert-stability | 🛡️ 稳定性与 DFX 专家 | brainstorm 自动触发 | > **注意**:专家团 subagent 由主 Session 在 Phase 2 中直接调度,不在 Sub-1 (brainstorm) 内部 spawn。主 Session 收集专家意见后汇总为「专家团讨论纪要」,作为 brainstorm 的输入。 ## 完整流程 ### 阶段编号规范 **Phase 1-9 = 自然数顺序** — 每个阶段对应一个独立步骤,编号连续无跳号。 | 编号 | 阶段 | 类型 | 必选/可选 | 说明 | |------|------|------|----------|------| | 1 | proposal(需求录入+基线) | 独立 | **必选** | Phase 1 录入原始需求,Phase 3 追加需求基线,一份文件 | | 1.5 | 需求澄清(多轮对话) | 独立 | **必选** | 逐轮向用户提问,澄清待验证假设、范围、子系统影响等,全部澄清后才可进入 Phase 2 | | 2 | 需求分析 | 独立 | **必选** | 知识库检索 + 专家团 + brainstorm + code-analysis,触发决策 1 | | 3 | design(设计文档) | 独立 | **必选** | 产出 requirement.md + design.md | | 4 | 设计文档 | 独立 | **必选** | 产出完整设计文档 | | 5 | spec-review | 独立 | **必选** | 技术评审 + Checklist 一次完成,触发决策 2 | | 6 | spec(统一规格文档) | 独立 | **必选** | Sub-10 生成 spec.md(4 合 1)+ task.md,code-gen 输入 | | 7 | 代码生成 | 独立 | **必选** | Spec 驱动代码生成,触发决策 3 | | 8 | Committer 检视 | 独立 | **必选** | 产出检视报告 | | 9 | 提交 PR | 独立 | **必选** | 产出 Issue + PR | ### Phase 1: 初始化与需求录入 ``` 主 Session: 1. 接收用户需求 2. 提取关键信息: - 需求描述 - 目标设备(默认:全覆盖) - OHOS 版本(默认:全部) 3. 确定工作目录: - docs_dir = {docs_dir}{feature-name}/ - analysis_dir = {analysis_dir} - date = YYYY-MM-DD - feature = {从需求中提取的简短英文标识(kebab-case)} 4. 创建需求目录: - mkdir -p {docs_dir} 5. 生成文件名模板: - proposal: {docs_dir}/proposal.md - brainstorm: {docs_dir}/{date}-{feature}-brainstorm.md - requirement: {docs_dir}/{date}-{feature}-requirement.md - design: {docs_dir}/{date}-{feature}-design.md - review: {docs_dir}/{date}-{feature}-review.md - spec: {docs_dir}/spec.md - analysis: {analysis_dir}/{date}-{feature}-analysis.md - committer-review: {docs_dir}/{date}-{feature}-committer-review.md ``` #### proposal(需求录入+基线)⭐ 必选 在 brainstorm 之前,记录需求的原始上下文,确保追溯链完整。使用 **proposal.md** 模板格式。 ``` 主 Session: 1. 从用户需求中提取: - 来源(MSDP / 内部 / 竞品 / 社区 Issue) - 提出人/团队 - 原始问题描述 - 用户痛点 - 竞品/背景证据 - 初始范围(可能包含 / 明确不包含) - 初始假设(待验证的技术假设) - 预计流程级别:L0(小改动)/ L1(标准 Feature)/ L2(跨子系统)/ L3(大型 Feature) - 判断依据:涉及仓数量、API 级别、是否需要跨团队 - 目标发行版本:记录版本号或 TBD - 版本是否已承诺:是/否/待确认 3. 保存为 proposal.md ``` **【强制】生成 proposal.md 前,必须先读取模板文件 `{DOCS_REPO}/assets/templates/proposal.md`,严格按模板的章节结构、中文章节标题、表格格式填充内容。不得自行改为英文结构或英文标题。** **模板参考**:`{DOCS_REPO}/assets/templates/proposal.md` - 基本信息表(需求ID / 来源 / 优先级 / 状态) - 目标发行版本表(版本 / 判断依据 / 是否已承诺 / 后续事实源) - 原始问题描述 - 用户/开发者痛点表 - 期望结果列表 - 背景和证据表(竞品分析链接、代码分析链接) - 初始范围(可能包含 / 明确不包含) - 初始假设表(假设 / 类型 / 验证方式 / 状态) #### Phase 1.5: 需求澄清(多轮对话)⭐ 必选 · 强制决策点 **proposal.md 第一章生成后,必须进入需求澄清环节。不允许跳过。** 澄清是逐轮对话,不是一次性填表。主 Session 必须主动向用户提问,等待用户回复后再继续。 ``` 主 Session: 1. 从 proposal.md 第一章提取所有"待澄清/待验证"项: - 初始假设表中的「待验证」条目 - 初始范围中的模糊描述 - 用户痛点中需要确认的细节 - 目标设备/OHOS 版本的默认值是否正确 - 初始分级判断是否有依据不足的项 - 复杂度判断是否需要更多信息 2. 将待澄清项整理为编号问题清单(Q-1, Q-2, ...),每项包含: - 具体问题 - 为什么需要澄清(对后续设计的影响) 3. 向用户展示问题清单,**逐条或分批提问** 4. 记录用户回答到 proposal.md 第二章「澄清记录」: - 更新「待澄清问题」表的状态(待澄清 → 已确认/已排除/待定) - 追加「讨论记录」 - 更新「功能范围确认」「子系统影响」「API 变更评估」等表 - 更新「初始假设」表的状态(待验证 → 已验证/已否定/需补充信息) 5. 每轮澄清后检查:是否产生了新的待澄清项? - 是 → 继续下一轮澄清 - 否 → 检查进入设计条件 ``` **澄清完成条件(全部满足才能进入 Phase 2):** - [ ] 所有待澄清问题状态不为"待澄清"(已确认/已排除/待定但用户已知情) - [ ] 初始假设全部有结论(已验证/已否定/用户接受风险) - [ ] 功能范围确认完毕 - [ ] 子系统影响已初步识别 - [ ] 复杂度分级有明确判断(或有用户确认的"待定"理由) **澄清原则:** - **不猜测**:不确定的一定要问,不要用"默认""推测""大概率"代替用户确认 - **不过载**:每轮提问控制在 3-5 个核心问题,避免一次性列出所有问题 - **有优先级**:先澄清对方案选型有直接影响的问题,再澄清细节 - **可追溯**:每轮澄清的结论都记录到 proposal.md 第二章,不丢信息 - **允许中断**:用户可以随时补充新信息,主 Session 回到澄清环节更新记录 > **注意:** proposal.md 模板中「第二章:澄清记录」已包含完整的记录结构(待澄清问题表、讨论记录、功能范围确认、子系统影响、API 变更评估、兼容性需求、依赖与风险等)。主 Session 按模板结构逐项填充即可。 ### Phase 2: 需求分析 — 知识库检索 + 专家团 + brainstorm + code-analysis Phase 2 分为五个步骤: #### Step 2.0: 知识库检索(主 Session 执行) **【强制】** 在 spawn 任何 subagent 之前,主 Session 必须先执行知识库检索,产出「知识库证据包」。 降级策略(按优先级逐级尝试,参见 `_shared/KB_RULES.md`): | 优先级 | 数据源 | 执行方式 | |--------|--------|----------| | 🥇 首选 | oh-chromium-knowledge | GitCode API 读取 index.json → search/by_feature.json → routing_table.json | | 🥇 首选 | oh-ai-full-design | GitCode API 读取 index.json → search/by_keyword.json → subsystems/ → components/ | | 🥈 次选 | DeepWiki MCP | `read_wiki_structure` → `read_wiki_contents` → `ask_question` | | 🥉 兜底 | 本地文档 | grep 搜索 `{DOCS_REPO}/analysis/*.md` 和 `{DOCS_REPO}/references/*.md` | | 🏅 最终 | 克隆仓库 | `git clone --depth=1` 到 `{DOCS_REPO}/tmp/` 后搜索 | > **两个 🥇 知识库互补使用**:oh-chromium-knowledge 聚焦 Chromium 内核实现,oh-ai-full-design 聚焦鸿蒙组件体系。涉及 Chromium 代码路径优先前者,涉及子系统/部件/API 优先后者。oh-ai-full-design 为私有仓库,无权限时跳过。 **执行步骤:** 1. 从 Phase 1 的 proposal.md 中提取需求关键词 2. 🥇 读取 `skills/oh-chromium-knowledge/SKILL.md` 获取知识库读取协议 3. 🥇 按 `index.json → search/by_feature.json → routing_table.json` 流程检索,匹配需求关键词 4. 🥇 读取 oh-ai-full-design 知识库,按 `index.json → search/by_keyword.json → subsystems/ → components/` 流程检索(如无权限跳过) 5. 记录命中结果(相关仓库、模块、代码路径、架构文档、子系统/部件/API) 6. 🥈 对于 🥇 未覆盖的需求关键词,使用 DeepWiki MCP 补充检索 7. 🥉 对于 🥇🥈 都未覆盖的细节,搜索本地文档 8. 🏅 如仍有未覆盖项,按需克隆仓库 9. 汇总为「知识库证据包」,格式如下: ``` ## 知识库证据包 ### 🥇 oh-chromium-knowledge - 匹配的功能类型: {type}(来自 search/by_feature.json) - 相关代码路径: {paths}(来自 routing_table.json) - 架构约束: {summary}(来自 architecture.md) - 未覆盖项: {items} ### 🥇 oh-ai-full-design - 匹配的子系统/部件: {subsystem/component} - 相关 API: {apis} - SystemCapability: {syscap} - 未覆盖项: {items}(或:无权限,已跳过) ### 🥈 DeepWiki 补充 - 仓库: {repo} → 搜索 "{keyword}" → {发现摘要} - 未覆盖项: {items} ### 🥉 本地文档补充 - 文档: {path} → {发现摘要} - 未覆盖项: {items} ### 🏅 克隆仓库(如有) - 仓库: {repo} → 搜索 "{keyword}" → {发现摘要} ``` 10. **【强制持久化】** 将完整证据包(含所有原始检索内容)Write 到 `{DOCS_REPO}/tmp/arkweb_kb_evidence_{YYYYMMDD_HHmmss}_{feature}.md`。详见 `_shared/KB_RULES.md` 第 11 节「证据包持久化」。 - 文件必须包含每个数据源的**原始检索结果**(完整 JSON、文本、代码片段),不允许仅保存摘要 - 先 Write 到 `{DOCS_REPO}/tmp/`,然后再将证据包内容注入 subagent - 后续 phase 如需复用证据包,优先从 `{DOCS_REPO}/tmp/` 读取已有文件 **此证据包将注入到后续所有 subagent(专家团、code-analysis、brainstorm)的 task 描述中。同时,证据包文件路径也会传递给 subagent,以便 subagent 在上下文丢失时可以从文件恢复。** #### Step 2.1: 专家团相关度权重判定 在 spawn 之前,主 Session 先判定每个专家的相关度级别: **权重规则:** 1. **核心专家**(权重 3x):需求直接相关的领域专家,其意见在汇总时优先级最高 2. **关联专家**(权重 2x):需求间接相关的领域专家,其意见有参考价值 3. **旁听专家**(权重 1x):需求基本不相关的领域专家,仅从通用角度补充 **判定方式:** - 🟢 核心专家:需求的主要功能直接属于该专家领域 → 直接 spawn - 🟡 关联专家:需求可能间接影响该专家领域 → 直接 spawn - ⚪ 旁听专家:需求与该专家领域基本无关 → 超过 5 个则跳过(节省资源) **讨论控制:** - 核心专家的意见篇幅应占总意见的 40%+ - 关联专家的意见篇幅应占 30% - 旁听专家简短表态即可(1-2 点),不超过 30% #### Step 2.2: 并行 — 专家团讨论 + code-analysis 主 Session 同时 spawn 以下 subagent: ##### 专家团(每个专家一个 subagent) ```python sessions_spawn( task=""" 你是 ArkWeb 领域的{角色名}专家。请分析以下需求,从你的专业角度给出意见。 1. 读取你的 skill 文件:{skill_path} 2. 按 skill 定义的输出格式给出意见 ## 用户需求 {user_requirement} ## 约束条件 - 目标设备:{device_scope} - OHOS 版本:{ohos_versions} ## 知识库证据包(主 Session 已检索完成) 以下是通过知识库降级策略检索到的证据,你必须在意见中引用相关证据。 {kb_evidence_package} **证据包持久化文件(上下文丢失时可从此文件恢复)**: {DOCS_REPO}/tmp/arkweb_kb_evidence_{timestamp}_{feature}.md 直接输出你的专家意见,不需要保存文件。 """, mode="run", label="expert-{expert_id}" ) ``` **专家 spawn 列表:** | # | Expert ID | 角色 | Skill 路径 |
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る