SuperAPI AI 工具集

artifact-editor

编程与开发

查看项目

更新于 10-16 02:36

技能介绍

用途:当用户想为某种数据结构构建可操作的 UI 时使用本技能,例如分诊/规划看板、可交互调优的功能开关发布、带温度/top-p/max tokens 滑块的提示词调优面板,或可作为单文件交付的配置构建工具。静态报告和计划不使用本技能。

主要能力与输出契约:产物始终是一个 .html 文件,不是 markdown。编辑器包含真实可用的 JavaScript,可拖动、滑动、打开对话框,导出按钮把真实 JSON 复制到剪贴板。使用 templates/ 中的模板,将 artifact.css 内联进 <style>(模式 B,单文件便携)或用 <link> 引入;按 artifact-css/SKILL.md 加载 jQuery 4.0.0 + jQuery UI 1.14.2。

三个模板:triage-board.html(看板式可排序卡片、LocalStorage 持久化、JSON 导出);feature-flag-panel.html(逐开关切换、灰度滑块、队列过滤、实时 JSON 配置预览);prompt-tuner.html(提示词文本域、数值滑块、模型与格式下拉、复制到剪贴板导出)。

组件速查:sortable() 用于看板列内及跨列拖动;draggable()+droppable() 用于移入静态放置区;slider() 用于灰度与数值调节;dialog() 用于导出弹窗;autocomplete() 用于标签过滤;datepicker() 用于调度控件。

结构:按顺序使用六个区块——头部、工具栏、编辑区、实时预览、说明/约束、导出与重置。

持久化:triage-board 与 feature-flag-panel 默认持久化,prompt-tuner 默认不持久化。存储键格式为 artifact-editor.<template-name>.v1,并包含 ?reset URL 处理,例如:if (new URL(location).searchParams.has('reset')) { localStorage.removeItem(STORAGE_KEY); location.replace(location.pathname); }

导出弹窗:每个编辑器都有导出按钮,打开 dialog(),内含序列化状态的 <pre>、使用 navigator.clipboard.writeText 的复制按钮、data: 或 Blob URL 的下载链接,以及关闭按钮。不要把序列化状态直接内联在主页面。

无 JS 回退:卡片渲染为普通列表项,滑块使用原生 <input type="range">,对话框降级为 <details>/<summary>,LocalStorage 用 try/catch 包裹。

规则与限制:实时预览要始终可见;默认值必须合理;不可用控件应禁用而非隐藏;破坏性操作需 dialog() 确认;不得编造数据;仅持久化数据状态,不持久化 UI 临时状态;可排序需显示放置提示;滑块必须配对 <output>。缺少功能、收费、价格、平台、效果或使用步骤等事实暂未提供。