Skip to main content

arkweb-architect

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

Quellinformationen

Repository
openharmonyinsight/openharmony-skills
Letzte Quellaktivität
21. Mai 2026 um 02:26
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
34
Forks
7

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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 路径 |
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen