1仕組みと動作原理
この skill は実行可能プログラムではなく、「1ディレクトリ=1テンプレート」の構成です。SKILL.md の frontmatter はセレクター表示用であり、本文(body)はモデルに送信されるプロンプトそのものです。テンプレートの追加はディレクトリの追加を意味し、TypeScript の改修は不要です。
routes rescan disk and the client refetches `/api/templates`.
実際に発行されるプロンプト = プラットフォーム共有デザイン指示(SHARED_DESIGN_DIRECTIVES)+ 本 skill の SKILL.md 本文 + ユーザーコンテンツであり、assemblePrompt によって1つのプロンプトに組み立てられます。
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 文本, 文件落盘由前端负责。
目標は「メールクライアントでレンダリング可能な HTML」です。SKILL.md では、600px のシングルカラム、フォールバックレイアウトとしての <table role='presentation'> の使用、および class ではなくインラインスタイルによるカラー指定が規定されています。
- 使用 `<table role='presentation'>` 做布局兜底
プラットフォーム側の出力パイプラインは、「なぜインラインスタイルが必須なのか」を的確に説明しています。WeChat やメール向けのエクスポート時、対象クライアントがインラインスタイルしか認識しないため、フロントエンドは juice を使用して <style> 内の CSS を各要素にインライン化します。
Take a full HTML document, extract <body> content, inline all CSS via juice,
メールの構造は発表メールの標準的な形式に準拠しています:Masthead(ワードマーク+ナビゲーション)→ Hero 画像ブロック → ヘッドラインロックアップ(斜めアクセント付き)→ 本文 → メイン CTA ボタン → スペックグリッド → フッター(ソーシャル+配信停止)。
<div class="frame" data-od-id="email">
Hero はインライン SVG で描画された製品画像(ランニングシューズ)であり、外部リンク画像に依存しません。複数の path と2つの linearGradient で着色されています。
<svg class="shoe" viewBox="0 0 600 280" aria-hidden="true">
ブランドトーンの核となるのは「斜め(skew)の要素」です。ワードマークのアクセント正方形には transform: skew(-12deg) が適用され、見出しの強調ワードには skew(-8deg) のイタリック体が使用され、スポーツブランドらしい躍動感あふれるデザイン表現を形成しています。
h1.lockup .axis { color: var(--accent); display: inline-block; transform: skew(-8deg); }
コンバージョンの導線はフッターで完結します:コンプライアンス要件を満たす Unsubscribe(配信停止)+ View in browser(ブラウザで表示)の2つのリンクおよび著作権表示行が含まれています。
<div><a href="#">Unsubscribe</a> · <a href="#">View in browser</a></div>
サーバーサイドの /api/convert が行うのは3つの処理のみです:templateId に基づいてディスクから skill を読み込み、プロンプトを組み立て、ローカルのエージェント CLI を spawn して出力を SSE でストリーミング転送します。
prompt = assemblePrompt({ body: skill.body, content, format });
2コア機能
4推奨統制措置と判定根拠
- SKILL.md: 純粋なプロンプト指示およびルールテキストのみで構成され、スクリプト実行や外部への影響は一切ありません
5二重目の独立検証
- [discrepancy] 「600px 单栏」 — 样例 .frame { max-width: 680px; },为 680px(frontmatter aspect_hint 也写「600 邮件宽」);单栏成立,宽度不符。
- [discrepancy] 「使用 <table role='presentation'> 做布局兜底」 — 样例全文无 <table>、无 role="presentation",改用 <div class="frame"> + grid/flex;邮件客户端(Outlook)对 grid 支持差,规范与样例的兼容性结论相反。
- [discrepancy] 「颜色用 inline style (不要依赖 class)」 — 样例把配色写在 <style> 的 :root 变量与 class 里,仅个别元素用 inline style;与规范相悖(宿主可用 juice 内联补救,但那是导出期行为)。
- [discrepancy] 「Specifications grid (3 列)」 — 样例 .specs-grid 为 repeat(2, 1fr),且实际 4 个 .spec(2 列 × 2 行)。
- [discrepancy] 「Masthead (wordmark 居中)」 — 样例 masthead 为 display:flex; justify-content: space-between,左侧 wordmark + 右侧 SHOP/JOURNAL/MEMBERS 导航,非居中。
- [ok] Hero 为 SVG 占位而非外链图 — <svg class="shoe" viewBox="0 0 600 280"> 含两条 linearGradient 与多段 path,无 <img>。
- [ok] 目录内零脚本/零端点 — 无 <script>、无 CDN、无字体外链;字体族名属本地/系统栈。
6結論
ed93a7856ba23d50…