1仕組みと動作原理
テンプレート本体には実行可能コードは含まれていません。loader が src/lib/templates/skills/<id>/SKILL.md から frontmatter と本文を読み込み、本文(body)を example の内容とともに LoadedSkill として返します。
const raw = safeRead(path.join(dir, "SKILL.md"));
ホストは配信前にプロンプトを固定構成で組み立てます。テンプレート本文は、共有デザイン指示 SHARED_DESIGN_DIRECTIVES と【入力フォーマット】/【ユーザーコンテンツ】の間に挟まれます。
Wrap a per-template instruction body with the shared design directives and
共有指示はハード制約をエージェントに対する明示的な禁止事項として記述し、コンテンツ駆動型の数量決定を強制します(テンプレート内の数値は参考下限値にすぎません)。
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。
実際の実行は、ユーザーのローカル環境にインストールされログイン済みのコーディングエージェント CLI が担います。ホストが子プロセスを spawn してプロンプトを渡し、stdout から HTML をストリーミングキャプチャします。
import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";
/api/convert はテンプレートの実行パスです。skill.body とユーザーコンテンツをプロンプトとして組み立て、invokeAgent に引き渡します。
prompt = assemblePrompt({ body: skill.body, content, format });
テンプレートはタイポグラフィ優先の比率制約(文字 70% / 図版 20% / 装飾 10%)で始まり、600文字以上を要求することで、短い画像付きカード形式の入力を直接排除します。
【意图】≥ 600 字的真正的长文章, 排版以 typography 为主, 70% 文字 20% 图 10% chrome。
骨格は5つのセクションに固定されています:Masthead → Hero → 65ch 1カラム本文 → Author bio カード → Related posts 3連カード。
- Masthead (publication name + date)
3つの組版ディテールが個別に規定されています:pull quote(大型セリフ体イタリック + 左側アクセントライン)、figures 付属のイタリック caption、角丸ダークテーマの言語タグ付きコードブロック。
- Pull quote 用大号 serif 斜体 + 左侧色条
サンプル生成物は完全なインライン CSS + システムフォントスタックで実装されており(Tailwind なし、フォント CDN なし、全体で URL なし)、このテンプレートの外部リンクゼロ路線の実現を証明しています。
font-family: -apple-system, system-ui, sans-serif
サンプルの本文は hero/lede/byline/hero-figure/pull quote/figures などの骨格要素を実装していますが、SKILL.md が要求する Author bio カードおよび Related posts 3連カードは実装されていません。
<figure class="numbers">
2コア機能
4推奨統制措置と判定根拠
- SKILL.md: 純粋なプロンプト指示およびルールテキストのみであり、スクリプト実行や外部への影響はありません
5二重目の独立検証
- [discrepancy] 示例覆盖度 vs SKILL.md 骨架 — SKILL.md 要求五段骨架,example.html 实现了 Masthead / Hero / 正文 / 三处细节,但缺 Author bio 卡片与 Related posts(3 张卡)——示例结尾为 .endnote 招募卡。详情页不宜把该示例当作模板完整形态。
- [ok] 「零外链」判定 — blog-post/ 目录内 http(s) 命中数为 0,<script> 命中数为 0;字体为 -apple-system/system-ui/monospace 等系统字族,执行期与产物期均无外发。
- [ok] 无 example.md 的后果 — 目录只有 SKILL.md + example.html;loader 的 metaFromDir 以 existsSync 判定 hasMd=false,选择器仍会因 hasHtml=true 生成 example 元数据,行为正常。
- [ok] license / stars / commit 元数据 — GitHub API(api.github.com/repos/nexu-io/html-anything):spdx_id=Apache-2.0、stargazers_count=8827、pushed_at=2026-09-15T03:36:24Z;工作副本 git HEAD = 553ed98c283f9c0f489902d035416a972d6a9699(与任务表 pin 553ed98c283f 同源)。
- [ok] skill.path 与目录资产面 — pin 目录内该路径存在且含 SKILL.md;目录内文件清单已用 glob 全量核对(含隐藏文件),无 scripts/、无 references/、无二进制资产(competitive-teardown 的 assets/ 为纯 HTML,另行记录)。
6結論
95b69396ce0f37a7…