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