web-node-preset-catalog-builder
SKILL.md
Web Node Preset Catalog Builder
此 skill 用于在当前仓库内自动构建精选互动方案配置,并提交到托管 preset 目录。
当任务进入“通过 CLI 提交/查询 preset”阶段时,不要在这里重复发明 CLI 安装与凭证排查流程;应优先切换到 branch-video-agent-cli skill,由它负责:
- 检查或安装
branch-video-agent全局 CLI - 统一处理
AIHUB_AGENT_TOKEN、BRANCH_VIDEO_AGENT_BASE_URL - 执行
preset list/preset upsert - 处理
branch-video:write、ownerUserId等权限问题
适用场景
- 用户提供
aic-view互动链接和归属主题样式 - 需要调用
https://aic-deploy.sdp.101.com/reactComponent/getById获取组件信息 - 需要把组件文档、输出状态和示例参数转换成可提交的 preset JSON
- 需要通过
branch-video-agentCLI 或后台管理页将 preset 新增到托管层,或按相同id覆盖已有方案 - 若当前环境尚未启用
branch-video-agent-cliskill,应先安装或加载该 skill
输入约定
- 互动链接:统一使用
https://aic-view.sdp.101.com/view/<id>格式 - 主题样式:支持
cat-喵星人、medieval-中世纪、retro-future-复古未来等格式 - 可选参数:
presetId、name
执行步骤
- 提取互动 id 与主题 id。不要手工拼接
catalog.ts。 - 优先运行脚本生成严格 JSON:
node .claude/skills/web-node-preset-catalog-builder/scripts/build-web-node-preset.mjs \
--url "https://aic-view.sdp.101.com/view/0Mr-Mm1923HK8k0CSjBNA5m-" \
--theme "cat-喵星人" \
--dry-run \
--json
- 如需覆盖默认生成值,可追加:
node .claude/skills/web-node-preset-catalog-builder/scripts/build-web-node-preset.mjs \
--url "<互动链接>" \
--theme "<主题样式>" \
--preset-id "judge-dialog-cat" \
--name "判断题互动工具" \
--dry-run \
--json
- 如需离线验证或复现问题,使用
--input-file <json文件路径>跳过网络请求。 - 生成完成后,检查以下字段是否符合预期:
id是否满足当前命名约定themeStyleLabel是否保留了用户提供的主题样式文案description是否只描述功能和用途,不包含主题信息messageStatuses、recommendedEventHints是否成功从文档状态表解析configTemplate.initData是否与exampleParams对齐
- 如需通过 CLI 提交或查询托管条目,先安装或启用
branch-video-agent-cliskill。
推荐交接口径:
- 当前任务已完成 preset JSON 生成,下一步改由
branch-video-agent-cliskill 接管 CLI 执行 - 优先让它检查
branch-video-agent --help、必要时全局安装 CLI - 再执行
preset upsert或preset list
- 启用
branch-video-agent-cliskill 后,优先通过已发布 CLI 提交托管条目:
branch-video-agent preset upsert < preset.json
如当前环境尚未全局安装,可回退到仓库内 CLI:
node bin/agent-cli.ts preset upsert < preset.json
- 如需先查看当前托管层,可执行:
branch-video-agent preset list
- 如当前工作流以人工校验为主,也可将生成 JSON 粘贴到后台页面
/admin/web-node-presets。
默认生成规则
presetId未传时,默认使用preset-<themeId>-<interactionId>name未传时,默认使用文档首个 H1 标题urlsByTheme固定写入view/<id>正式访问链接description默认取组件文档中的功能简介摘要,不拼入主题文案messageMapping默认保持空对象waitForPageReady默认写为true- 一旦进入 CLI 提交阶段,CLI 安装、执行方式、权限排查默认由
branch-video-agent-cliskill 接管
多主题补录
- 同一方案若存在多个主题变体,重复运行脚本时传入相同的
presetId - 提交到托管层时,相同
id表示覆盖已有条目;需要批量提交时,使用{"items": [...]}包装 - 主题输入支持
城市技能,会自动归一到urban-tech
收尾验证
生成或更新后,至少做一条窄范围校验:
branch-video-agent preset list
如果当前 Agent 还没有 CLI skill 上下文,先补充加载 branch-video-agent-cli skill,再做这一步校验。
如在仓库内联调,可补跑:
npm run test -- tests/webNodePreset.resolver.unit.test.ts tests/cli/preset.cli.test.ts
如果脚本提示无法解析状态表或主题样式,再进行最小人工修订,不要改动无关 preset。