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 的硬指标:纯白底 + 顶部 10 色彩虹 bar、80-110px display 标题 + 紫→蓝→绿→橙→粉渐变文字、马卡龙软卡片组、黑底白字 .focus pill + 引用大块。
- 纯白背景 + 顶部 10 色彩虹 bar
彩虹 bar 在样例里是页面顶部 5px 的 10 段 linear-gradient(#6366f1→#8b5cf6→#a855f7→#ec4899→#f43f5e→#f97316→#eab308→#22c55e→#06b6d4→回到 #6366f1),每页都挂一条。
.tpl-xhs-white-editorial .xw-topline{position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#6366f1,#8b5cf6,#a855f7,#ec4899,#f43f5e,#f97316,#eab308,#22c55e,#06b6d4,#6366f1)}
标题的「渐变文字」用 background-clip:text + 透明填充实现,5 色停点与 SKILL.md 的「紫→蓝→绿→橙→粉」一一对应。
.tpl-xhs-white-editorial .xw-grad{background:linear-gradient(90deg,#7b61ff 0%,#4e8cff 25%,#17b26a 48%,#ff9d42 72%,#ff5fa2 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
「黑底白字 .focus pill」是行内重点标记:inline-block + 14px 圆角 + #111318 底 + 白字,另有蓝/粉/橙三个浅底变体。
.tpl-xhs-white-editorial .xw-focus{display:inline-block;padding:6px 14px;border-radius:14px;background:#111318;color:#fff;font-weight:700}
双用定位:SKILL.md 的 aspect_hint 写「16:9 / 3:4」,即同一套版面既按横版 PPT 播,也可按竖版图文发小红书。
【意图】可同时发小红书图文与横版 PPT 双用的白底杂志风。
服务端 /api/convert 只做三件事:按 templateId 从磁盘读 skill、拼 prompt、spawn 本地 agent CLI 并 SSE 流转发输出。
prompt = assemblePrompt({ body: skill.body, content, format });
2核心能力
4风险提醒 风险提醒:绿色 · 放心使用
- 渐变文字可读性 — 渐变标题的浅色段(#ff9d42/#ff5fa2)在白底上对比度偏低,关键词过长时会掉到 4.5 以下;建议只在短关键词上使用。
- 竖版比例未实测 — 目录内只有 16:9 样例;3:4 下内容会重排,卡片 2x2 网格可能挤压,需人工回看。
- 彩色纪律依赖提示词 — 彩虹条与五色卡片容易让模型在每个标题上都套渐变,最终页面花掉——SKILL.md 的克制意图需要靠人工 review 守住。
- 宿主侧注入面 — 用户内容逐字进 prompt;成稿若带入外链会在预览 iframe(allow-scripts allow-same-origin)里执行。
5第二遍独立确认
- [ok] 「顶部 10 色彩虹 bar」 — .xw-topline 的 linear-gradient 共 10 个色停(首尾同色 #6366f1 收口),逐字数过。
- [ok] 「80-110px display 标题」 — .xw-title 为 84px,分隔页内联 font-size:110px,落在区间内。
- [ok] 「紫→蓝→绿→橙→粉渐变文字」 — .xw-grad 停点顺序 #7b61ff→#4e8cff→#17b26a→#ff9d42→#ff5fa2,与描述顺序一致。
- [ok] 「马卡龙软卡片组 (粉 / 紫 / 蓝 / 绿 / 橙)」 — 样例 2x2 网格用 soft-pink/soft-blue/soft-green/soft-orange 四张;soft-purple 亦有 token(--xw-soft-purple:#f4efff),属版式池内备用色。
- [ok] 「黑底白字 .focus pill + 引用大块」 — .xw-focus 规则与 .xw-quote 引用块均在样例第 1 页出现。
- [discrepancy] aspect_hint 双比例与样例画布 — 样例只用 100vw×100vh 播放式布局实现 16:9,未提供 3:4 竖版实测样例;竖版可用性由「白底 + 居中内容 + 百分比宽度」的写法推断,未在文件中验证。
- [ok] 无脚本、无外部资源 — 除字体 @import 零 URL;无 <script> 与事件处理器。
6结论
cdf4726ef28078b6…553ed98c28