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 文本, 文件落盘由前端负责。
交付物不是网页而是「翻开的一本书」:两页 side-by-side 横向排布,左页封面、右页内页,靠外观定位(lead magnet 风格)。
- 两页 side-by-side 横向, 像翻开的书
翻书感由两条 CSS 造出来:容器 flex 横排 + 36px 间隙,两页各 540px 宽、最小 740px 高,并各带 ±0.6deg 反向微旋转。
.page.left { transform: rotate(-0.6deg); }
页面在样例里被标成语义锚点:左页 article.page.left.cover(data-od-id="cover")、右页 article.page.right.spread(data-od-id="spread"),便于后续按块定位。
<article class="page right spread" data-od-id="spread">
内页排印走「首字下沉 + 编号步骤 + 引号开场的大引言」三件套:.columns p:first-letter 做 drop cap,.steps .row 用 28px 编号列 + 虚线分隔。
.steps .row { display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: baseline; padding: 8px 0; border-bottom: 1px dashed var(--rule); }
封面用数据行 + TOC teaser 制造「教程产品感」:3 个统计数(16 / 38 / 1)+ 6 行目录条目(名称 + 点线 + 页码)。
<h2 class="inside">What's <em>inside.</em></h2>
服务端 /api/convert 只做三件事:按 templateId 从磁盘读 skill、拼 prompt、spawn 本地 agent CLI 并 SSE 流转发输出。
prompt = assemblePrompt({ body: skill.body, content, format });
2核心能力
4管控建议与判定依据
- SKILL.md: 纯提示词指令与规则文本,无脚本执行与外部影响
5第二遍独立确认
- [ok] 「两页跨页」且不随内容扩页 — 样例恰 2 个 article.page;SKILL.md【意图】明写「一封面一内页跨页排列」。
- [ok] 「像翻开的书」的视觉手法 — flex 横排 + .page.left/.page.right 反向 0.6deg 旋转 + 两页纸面色差 + 30px/60px 柔影。
- [ok] 「pull-quote + 步骤列表」 — .pullquote(含 56px 引号字形与署名行)与 .steps .row(4 条编号步骤)均在样例内。
- [ok] 字体依赖 Google Fonts — 样例 <link> 引入 Cormorant Garamond / DM Serif Text / IBM Plex Mono 三族;离线打开时回落到 Iowan Old Style/Georgia,布局不崩。
- [ok] data-od-id 的作用 — 样例有 5 处 data-od-id(cover/toc/spread/pullquote…),但 repo 内 TS/JS 对 data-od-id 零引用(grep 无命中)→ 仅成稿语义标记,不是运行时钩子。
- [ok] 无外部图片 — 全文无 <img> 与外链图;封面的几何点/线均为 CSS 绘制。
6结论
810081d8875f1560…