1实现原理 · 为什么它能做到
这个 skill 不是可执行程序,而是「一个目录 = 一个模板」:SKILL.md 的 frontmatter 供选择器展示,正文(body)就是发给模型的提示词;加模板=加目录,不需要改 TypeScript。
routes rescan disk and the client refetches `/api/templates`.
实际下发提示词 = 平台共享设计指令(SHARED_DESIGN_DIRECTIVES)+ 本 skill 的 SKILL.md 正文 + 用户内容,由 assemblePrompt 拼成一条 prompt。
Wrap a per-template instruction body with the shared design directives and
成稿不走文件系统:共享指令明令禁止 Write/Edit/Bash 等文件工具,要求模型把整份 HTML 直接作为回复正文流式输出(stdout 由前端捕获落盘)。
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
风格全部由 SKILL.md 的【布局】清单用「色值 + 字体 + 圆角 + 组件」四条钉死:奶油底 #fef8f1、三个柔光 blob、Playfair 斜体衬线标题、28px 圆角马卡龙卡片、Playfair 斜体 01-04 序号。
- 奶油 #fef8f1 底 + 三个柔光 blob
卡片的 28px 圆角与柔光 blob 在 example.html 里落成可抄的具体 CSS:卡片 28px 圆角 + 0 14px 40px 柔影,blob 是三个带径向渐变的大圆 + blur(2px)。
.tpl-xhs-pastel-card .xp-card{border-radius:28px;padding:30px 34px;background:#fff;box-shadow:0 14px 40px rgba(42,35,64,.08);position:relative;overflow:hidden}
数字图形不靠图表库:一周时间分配用一个手写 SVG donut(多段 circle + stroke-dasharray 偏移)绘制,中心用 Playfair 数字标 4h。
<text x="130" y="130" text-anchor="middle" font-family="Playfair Display" font-size="44" font-weight="900" fill="#2a2340">4h</text>
页数不由模板写死:共享指令要求「内容驱动数量」,模板只提供可复用版式池。
模板只定义"可用版面 / 风格 / 配色 / 字体 / 组件库", **不定义** slide / 帧 / 卡片 / section 的数量。
服务端 /api/convert 只做三件事:按 templateId 从磁盘读 skill、拼 prompt、spawn 本地 agent CLI 并 SSE 流转发输出。
prompt = assemblePrompt({ body: skill.body, content, format });
2核心能力
4管控建议与判定依据
- SKILL.md: 纯提示词指令与规则文本,无脚本执行与外部影响
5第二遍独立确认
- [ok] 目录只有 SKILL.md + example.html(无脚本/无资产) — find 结果 2 个文件;<script 与事件处理器零命中。
- [ok] 「奶油底 #fef8f1 底 + 三个柔光 blob」 — example.html 有 --xp-bg:#fef8f1 与 .xp-blob.b1/.b2/.b3 三条径向渐变规则。
- [ok] 「Playfair 斜体 01-04 序号」 — 卡片内 <div class="xp-num">01</div>…04 与 .xp-h1 em{font-style:italic} 均为 Playfair Display。
- [ok] 「SVG donut 图 + chip+page 顶栏」 — 第 06 页背景层含四段 stroke-dasharray 的圆环 + 中心 4h;每页 xp-topbar 内 xp-chip + xp-page。
- [discrepancy] aspect_hint 16:9 与样例的对应关系 — SKILL.md frontmatter 写 aspect_hint: "16:9",但 example.html 的 .slide 是 width:100vw/height:100vh 全屏适配(由宿主的 deck 模式播放),并没有 16:9 固定画布;选择器缩略图处才出现 aspect-ratio:16/9。结论:16:9 是宿主预览/导出的约束,不是模板文件里的画布尺寸。
- [ok] 页数口径 — 样例为 8 页(页脚 01 · 08…08 · 08),符合共享指令「模板不定义数量、由内容决定」;SKILL.md 未写死页数。
- [ok] 官方描述逐字一致 — description 原文「奶油底 + 柔光 blob + 马卡龙圆角卡片 + Playfair 斜体序号」与 SKILL.md 逐字相同。
6结论
e9e5fecb3c98880a…