# 页面模板 Skill 设计(Agent 可调用 + 授权勾选 + 二期购买) 日期: 2026-08-04 状态: **已实现(Phase 1 + 余额购买)** — 见 `page-template-catalog.mjs`、三个 `page-template-*` skill、Portal/Admin API。 ## 1. 背景与目标 当前 H5 页面由 Goose Agent 按 `static-page-publish` 规范**从零生成 HTML**,平台只提供约束(cover 元数据、CSP、页脚标记等),没有可复用的 HTML 骨架库。导致: - 样式与结构不稳定,同类页面差异大 - 易漏写 `mindspace-cover`、平台页脚、Page Data 脚本引用 - 用户无法选择「旅游 Hero / 商品促销 / 问卷壳」等固定视觉风格 **目标:** 1. 提供一套平台维护的 HTML 模板,Agent 通过 skill 读取并填充后落盘 `public/*.html` 2. **不影响**现有 `static-page-publish` → `write_file` → finish guard 主链路 3. 一期:管理员在 memind_adm 授权,用户在 H5 聊天勾选模板 skill 4. 二期:用户可在模板商城购买,支付成功后自动写 skill grant --- ## 2. 核心结论 | 层级 | 负责方 | 说明 | |------|--------|------| | HTML 骨架 | Memind 平台 `skills/page-template-*` | 预置合规 HTML + 占位符 | | 文案 / 章节内容 | Goose + LLM(常见 DeepSeek) | 填占位符,不发明骨架 | | 授权(谁能用) | `h5_user_skill_grants` | 与现有 skill 体系一致 | | 使用(这次用哪个) | H5 聊天 skill 芯片 / 模板选择器 | 注入 `templateId` 到 prompt | | 发布与守卫 | 不变 | finish guard、cover 检查、Page Data bind | 一句话: ```text 模板是可选 skill 资产;未授权 = 行为与今天完全一致;授权且勾选 = Agent 读模板再 write_file。 ``` --- ## 3. 对现有链路的影响(硬约束) ### 3.1 不变的部分 - `static-page-publish` 仍是默认发布 skill(creator 角色或 `static_publish` 能力) - finish guard、`mindspace-cover` 检查、Page Data finish sync、sandbox MCP 路径规则 - `syncSkillsToWorkspace` 只同步已授权 skill;未授权模板不会出现在工作区 - 意图路由:`coercePageGenerationSkill` / `page-data-collect` 优先级不变 ### 3.2 增量部分 - 新增若干 `page-template-*` platform skill(默认 **关闭**) - 可选:`page-templates` 聚合 skill(目录索引 + 共用 SKILL.md),或每个模板独立 skill 便于单独定价 - `CHAT_SKILL_DEFINITIONS` 增加模板入口(仅 `grantedSkills` 包含时可见) - Agent 工作流多一步:`read_file` 模板 → 替换占位符 → `write_file` ### 3.3 禁止事项 - 禁止把 `static-page-publish` 改为「必须选模板」 - 禁止模板 skill 绕过 `page-data-collect` 的 bind / policy 流程 - 禁止在模板 HTML 内写 `localStorage` / 外链 `