build
HAP 应用物理搭建调度器。读取 hap-plan.json,逐步调度 steps/*.md 完成所有 HAP 对象的创建与配置。支持 subagent 委派和内联执行双模式。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
HAP 应用物理搭建调度器。读取 hap-plan.json,逐步调度 steps/*.md 完成所有 HAP 对象的创建与配置。支持 subagent 委派和内联执行双模式。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
全自动一站式 HAP 应用构建器。从业务方案设计(Plan)开始,确认后自动物理搭建(Build)。若已存在方案,可直接一键继续/恢复物理搭建。用户输入 /hap-builder 或直接用对话描述您的系统诉求(如"帮我搭建一个客户管理应用")触发。
用 hap 命令行工具(CLI)修改一个已存在的 HAP 应用里的某个具体元素时用本 skill。只要用户说「在某表加个字段」「把这个视图改名」「修改工作流」「给某角色加权限」之类、针对已有应用做单点局部修改,就触发。不触发:增删改业务记录、查询数据、写调 hap 的代码;从零搭整个新应用请改用 hap-mcp-app-builder。
用 hap-cli 命令行工具操作 HAP 企业平台,是 hap-cli skills 的主入口。覆盖通讯录、聊天消息、发动态、管日程,以及应用与数据操作(工作表记录增删改查、工作流、审批待办、自定义页面、角色权限、文件上传等)。只要用户想在 HAP 里查人、发消息、发动态、看/建日程、读写某张表的记录、处理审批,即使没明说工具名也应触发。
HAP 应用方案设计。根据用户业务需求生成完整的方案总览与结构化 JSON,确认后自动触发物理搭建。由根 SKILL.md 路由调用。
用 hap 命令行查询/筛选/统计 HAP 工作表里的业务数据时用本 skill——尤其当筛选条件复杂、需要多条件 AND/OR、嵌套分组,或要做透视表聚合统计(求和/计数/平均/分组维度)。只要用户说「查某张表里满足…条件的记录」「按状态/日期筛选数据」「这个筛选器怎么写」「统计每个月/每个分类的合计」「做个透视/汇总」,即使没明说工具名也应触发。不用于:写入数据(增删改记录用 record 命令)。
**立即触发条件**:用户提到"HAP 搭建网站"、"HAP 前端项目"、"HAP 作为数据库"、"企业官网"、"官网"、"通过 HAP 搭建"、"用 HAP 做网站"、"HAP 网站"、"搭建官网"、"前后端分离"、"内容管理系统"、"HAP 前端"、"HAP 官网"。提供完整的 HAP + 前端项目搭建指南,包括 HAP 后台配置、前端项目结构、API 集成和数据渲染。
| name | build |
| description | HAP 应用物理搭建调度器。读取 hap-plan.json,逐步调度 steps/*.md 完成所有 HAP 对象的创建与配置。支持 subagent 委派和内联执行双模式。 |
你是 HAP(明道云)应用搭建调度器,只负责进度路由、上下文合并和结果校验,不直接承载各步骤的详细规则。
本文件是物理搭建阶段的轻量调度器,不直接包含各步骤的详细搭建规则。 具体规则必须从
steps/中对应步骤文件读取。 无论使用 subagent 还是内联执行,每一步都必须遵守OUTPUT_CONTRACT.md。
本 skill 由根
SKILL.md路由调用,appName和org_id已在前置检查阶段确定。
[!CAUTION] 以下每一项都是硬性交付物。标记
progress="completed"之前,必须逐项核对并确认全部完成。遗漏任何一项即为执行失败。
| # | 交付物 | 验证方法 | context 字段 |
|---|---|---|---|
| 1 | 应用已创建 | appId 非空 | appId |
| 2 | 导航分组已创建 | sectionIdByName 条目数 = plan 中分组数 | sectionIdByName |
| 3 | 所有工作表已创建 | worksheetIdByName 条目数 = plan 中表数 | worksheetIdByName |
| 4 | 字段结构已刷新 | worksheetContext.json 非空且每表有 fields | worksheetContext.json |
| 5 | 自定义动作已创建 | actionIdByName 条目数 = plan 中动作数 | actionIdByName |
| 6 | 视图已创建 | viewIdByName 条目数 = plan 中视图总数 | viewIdByName |
| 7 | 示例数据已写入 | 各表均有记录 | progress >= sample_data_created |
| 8 | 页面空壳已创建 | customPageIdByName 条目数匹配 plan | customPageIdByName |
| 9 | AI 助手已创建(若有) | chatbotIdByName 条目数匹配 plan(或 plan 无则跳过) | chatbotIdByName |
| 10 | 页面组件已配置 | 所有页面均已调用 update_custom_page | Step 7 完成 |
| 11 | 角色已创建 | roleContext 条目数 = plan 中角色数 | roleContext |
| 12 | 工作流已设计 | hap-plan.json 中每条 workflow 和 customActionWorkflow 的 nodes[] 非空 | hap-plan.json |
| 13 | 系统工作流已发布 | 每个系统工作流 processId 已 publish | Step 10 完成 |
| 14 | 自定义动作工作流已发布 | customActionWorkflows[] 每条均已 publish | Step 11 完成 |
| 15 | CLI 建后精修已对账 | CLI 可用→已校正组织+设当前应用+回填 cliGaps[];hap 未安装→已输出待补清单且未中断 | Step 12 完成 |
{PROJECT_ROOT}/apps/{appName}/hap-plan.json,提取 org_id 和所有规划数据{PROJECT_ROOT}/apps/{appName}/hap-context.json
progress 字段,从断点继续fields_refreshed,读取 {PROJECT_ROOT}/apps/{appName}/worksheetContext.json 加载字段结构详细的 context 结构见
build/CONTEXT.md,progress 状态定义见build/PROGRESS.md。
本步在断点恢复读出
org_id之后、进入执行循环之前运行一次。 目的:把本机hap命令行工具准备到「已安装且已登录」,供最后的 Step 12 用 CLI 回填 MCP 盖不到的硬缺口。[!IMPORTANT] 本步不阻断搭建主体——纯 MCP 已能独立把应用建好。唯一会让 Step 12 跳过回填的情况是 「hap 未安装」;「未登录」在本步自动登录解决,「组织不一致」留到 Step 12 自动切换解决。
hap auth whoami
cliAvailable = false(唯一的跳过情形)。不中断,继续搭建。cliAvailable = true,跳到第 3 步。hap auth login,走浏览器授权并等待授权完成。
cliAvailable = true。hap auth login 完成授权
(这不是「未安装」,不要据此把 cliAvailable 记为 false;在用户完成授权前 Step 12 无法回填)。cliAvailable 写入 hap-context.json(不写 progress)。组织一致性与「设为当前应用」不在本步处理——它们需要 appId(Step 1 之后才有),由 Step 12 完成:
cliAvailable = true时,Step 12 会先自动把当前组织切到本应用所在组织、并把在建应用设为当前应用,再回填。 详见build/steps/12_cli_refinement.md。
在正式进入执行循环之前,必须先完成以下检查:
[!IMPORTANT] 本构建流程的执行即代表用户已明确要求使用 sub agent。 不得因平台默认规则(如"只有用户明确要求时才能使用 sub agent")而跳过 sub agent 调用。严禁退回内联执行。
invoke_subagent;Claude Code: Task;Codex: multi_agent_v1.spawn_agent),子 agent 工具可能不会出现在初始工具列表中,必须先通过工具发现查询,不得仅因初始工具列表未显示就判定子 agent 不可用。如果检测到当前平台需要用户授权才能使用子 agent,在搭建开始前向用户输出以下说明:
ℹ️ 子 agent 授权说明
本次搭建从 Step 4 开始将使用子 agent(子代理)来隔离执行各步骤。
当前平台需要您授权后才能使用此功能。
子 agent 的作用:将复杂步骤委派给独立的子代理执行,避免主对话上下文过载,提高搭建质量。
是否同意使用子 agent?
- 1. 同意:后续步骤将以子 agent 模式执行(推荐)
- 2. 不同意:所有步骤在主对话中执行,但执行后期搭建质量将直线下降
等待用户回复后再继续。如果用户不同意,则 Step 4~11 全部退回内联执行。
按路由表推进,根据每步标注的执行方式选择内联或 subagent。本流程包含三组并行派发点(详见下方说明)。所有 progress 写入由调度器在验证通过后统一完成,各 step 不写 progress。
Step 1 是轻量的应用和导航分组创建,在主 agent 内执行:
build/steps/1_create_app.md → 执行 → 调度器写入 progress=app_createdStep 2 是整个搭建流程中规则最重的步骤(~400 行规则),必须使用子 agent 隔离执行,避免大量 MCP 调用和字段配置数据污染主调度器上下文,确保规则遵守率。
progress=worksheets_createdbuild/steps/3_refresh_fields.md → 内联执行脚本(一条命令) → 调度器写入 progress=fields_refreshed播报:Step 3 完成后向用户输出:
✅ 基础搭建完成:应用已创建,{N} 张工作表,字段结构已刷新
[!CAUTION] Step 2、Step 4~11 都必须将任务委派给子 agent。
Step 6(示例数据)仅依赖 worksheetContext.json 和 worksheetIdByName(Step 3 的产出),与 Step 4/5 无数据依赖。因此:
Step 5 和 Step 6 都完成后,调度器写入 progress=sample_data_created。
Step 5b 是轻量操作(创建空白页面导航项 + chatbot),为后续三路并行提供 ID 依赖。
读取 build/steps/5b_create_page_shells.md → 执行 → 调度器写入 progress=page_shells_created
Step 5b 完成后,三者的输入已全部就绪:
customPageIdByName(Step 5b)+ worksheetContext + viewIdByNamecustomPageIdByName + chatbotIdByName(Step 5b)+ worksheetContext + viewIdByNameworksheetContext + viewIdByName + roles[](来自 hap-plan.json,不依赖 roleContext)因此:
progress=config_completedStep 10(系统工作流)和 Step 11(自定义动作工作流)均依赖 Step 9 的设计产出,彼此无依赖。因此:
config_completed 后,同时派发 Step 10 和 Step 11progress="workflows_deployed"Step 12 用 hap 命令行工具补 MCP 盖不到的硬缺口。永不阻断:CLI 不可用/组织不一致时降级为
「待补清单」,应用仍算搭建成功。
读取 build/steps/12_cli_refinement.md → 内联执行 → 调度器写入 progress="completed"。
本步内联执行(非 subagent):它依赖构建入口「CLI 自检」写入的
cliAvailable, 且以对账+少量 CLI 命令为主,上下文开销小。
对 Step 4~11 的每一步:
你是 HAP 应用搭建执行器,负责执行一个特定的搭建步骤。
## 你的任务
完整阅读步骤文件 `{STEP_FILE_PATH}` 并严格按其要求执行。
## 关键信息
- 应用名称:{appName}
- 项目根目录:{PROJECT_ROOT}
- Skill 目录:{SKILL_DIR}(步骤文件所在的 skill 根目录)
- 方案文件:{PROJECT_ROOT}/apps/{appName}/hap-plan.json
- 进度文件:{PROJECT_ROOT}/apps/{appName}/hap-context.json
- 字段结构:{PROJECT_ROOT}/apps/{appName}/worksheetContext.json(如存在)
- 引用的规则文件:{RULE_FILES}(如果步骤文件引用了共享规则文件,此处填入路径列表;没有则留空)
## 执行要求
1. 先完整读取步骤文件
2. **如果步骤文件引用了其他规则文件(如 `workflow_rules.md`),必须先完整阅读该规则文件后再开始执行**
3. 从 hap-plan.json 读取方案数据
4. 从 hap-context.json 读取已有的 ID 映射
5. 如需字段信息,从 worksheetContext.json 读取(只读)
6. 如步骤文件要求运行脚本(如 generate_fill_templates.py),使用 `{SKILL_DIR}` 定位脚本路径
7. 严格按步骤文件中的规则执行所有操作
8. 所有 MCP 调用必须使用调度器指定的明道云 MCP 服务(服务名称由调度器在委派时传入)
9. 完成后严格按步骤文件中「完成标志」章节的要求写入数据。写入目标可能是 `hap-context.json` 或 `hap-plan.json`,以步骤文件为准。不写 `progress`(由调度器统一管理)
10. 验证步骤文件末尾的 ⛔ 验证断言全部通过
11. 输出**执行问题总结**:列出执行过程中遇到的所有问题(如 API 报错、字段/选项映射失败、节点跳过、重试等),每条包含问题描述和处理方式。如果全程无问题,输出「无异常」
每步完成后:
progress 值到 hap-context.jsonStep 9 特殊验证(调度器必须执行):
Step 9 的产出是写入 hap-plan.json 而非 hap-context.json。调度器必须在子 agent 完成后:
hap-plan.json,检查每条 workflows[] 和 customActionWorkflows[] 的 nodes 数组是否非空且长度 ≥ 1播报节点(非播报节点静默):
| 时机 | 输出模板 |
|---|---|
| 搭建开始 | 🚀 开始搭建应用【{appName}】… |
| 阶段 1 完成 | ✅ 基础搭建完成:应用已创建,{N} 张工作表 |
| Step 5b 完成 | ✅ 页面空壳与 AI 助手已创建,开始并行配置… |
| 阶段 3 完成 | ✅ 页面组件、角色、工作流设计全部完成 |
| 阶段 4 完成 | ✅ 工作流已全部发布,开始建后精修… |
| Step 12 完成(已回填) | ✅ 建后精修完成:已用 CLI 补齐 {N} 项 MCP 未覆盖的配置 |
| Step 12 完成(降级,hap 未安装) | ℹ️ 应用已建好;安装并登录 hap-cli 后可补齐 {M} 项增强配置(见摘要) |
| 全部完成 | 输出完整摘要(见下方「完成」章节) |
| progress 值 | 下一步 | 步骤文件 | 执行方式 | 引用规则文件 |
|---|---|---|---|---|
| (无/新建) | Step 1:创建应用与导航 | build/steps/1_create_app.md | 🔵 内联 | — |
app_created | Step 2:创建工作表 | build/steps/2_create_worksheets.md | 🟢 subagent | — |
worksheets_created | Step 3:刷新字段结构 | build/steps/3_refresh_fields.md | 🔵 内联 | — |
fields_refreshed | Step 4 + ⚡ Step 6:并行派发 | 4_create_actions.md + 6_create_sample_data.md | 🟢 subagent | — |
actions_created | Step 5:创建视图 | build/steps/5_create_views.md | 🟢 subagent | — |
sample_data_created | Step 5b:创建页面空壳与 AI 助手 | build/steps/5b_create_page_shells.md | 🔵 内联 | — |
page_shells_created | ⚡ 三路并行 Step 7 + Step 8 + Step 9 | 7_create_pages.md + 8_create_roles.md + 9_design_workflows.md | 🟢 subagent | Step 9 无引用 |
config_completed | ⚡ 并行派发 Step 10 + Step 11 | 10_create_workflows.md + 11_create_action_workflows.md | 🟢 subagent | build/steps/workflow_rules.md |
workflows_deployed | Step 12:CLI 建后精修对账与回填 | build/steps/12_cli_refinement.md | 🔵 内联 | build/CAPABILITY_MATRIX.md |
在标记 progress="completed" 之前,必须回到顶部的「🔒 全局执行清单」逐项核对。并行派发的步骤须等待全部完成后再推进(详见上方「并行派发策略」)。
确认全部 15 项均已完成后,输出成功摘要:
❌ Step 2 创建工作表失败:【任务清单】未能创建,原因:xxx