1仕組みと動作原理
本スキルは実行可能プログラムではなく、ローカルの coding-agent CLI に注入されるプロンプトです。ホストが SKILL.md 本文を取得し、先頭にサイト共通デザイン指示を付加、末尾にユーザーコンテンツを結合して1つのプロンプトを生成し、ログイン済み agent に渡して stdout を HTML として受け取ります。
【输入格式】: ${opts.format} 【用户内容】: ${opts.content}
共通指示レイヤー(単一のスキルに属さず、全テンプレートの上に配置)が出力を「自己完結型シングルファイル HTML」に固定し、agent による Write/Edit/Bash などのファイルシステムツールの使用を明示的に禁止して、HTML を対話本文として直接ストリーミング出力させます。
- **禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
SKILL.md の外側に「コンテンツ駆動型数量」の上書きルールが存在します。テンプレートに記載されたページ数/フレーム数/カード数はすべて下限の目安とみなされ、実際の数量はユーザーコンテンツによって決定されます。これにより、agent がテンプレートの数値に合わせてユーザーコンテンツを圧縮するのを防ぎます。
- 模板只定义"可用版面 / 风格 / 配色 / 字体 / 组件库", **不定义** slide / 帧 / 卡片 / section 的数量。
読み込み規約は「1スキル = 1フォルダ」です。SKILL.md(セレクター用 YAML frontmatter + テンプレートプロンプト本文)、任意の example.md(サンプル入力)、example.html(直接ブラウザ表示可能なプレビュー用サンプル)で構成され、TSコードを変更せずにディレクトリを追加するだけで新しいテンプレートを追加できます。
* SKILL.md — frontmatter (id, scenario, tags, …) + prompt body * example.md — (optional) sample input content * example.html — (optional) pre-rendered preview, shown inline in the picker
選択パイプライン(CLI側)は3段階のファネルです。キーワードによる強力なシグナル(1語一致ごとに2点、閾値3)→ tags/scenario によるスコアリングへフォールバック → それでも判定できない場合はユーザーコンテンツの先頭800文字をローカル agent に渡し、一言分類を実行します。
const CONFIDENCE_THRESHOLD = 3;
プレビューパイプラインは生成から独立しています。/api/templates/<id>/preview は example.html をそのまま text/html として iframe に返却し、フロントエンドの iframe には sandbox="allow-scripts allow-same-origin" が設定されています。
sandbox="allow-scripts allow-same-origin"
テンプレートは「一連のデータ → ニューヨーク・タイムズ風コラム図表1フレーム」を固定レイアウトに分解します。上部 kicker(データソース + カテゴリ)、データから導き出した結論見出し、画面の55〜65%を占めるチャート領域、下部 source + footnote で構成され、16:9 の単一フレームとして出力されます。
【画布】1920×1080, 暖白底 `#f7f5ee` 或墨黑底 `#0e0e0e` 二选一; 文字色和背景相反。 【布局】 - **顶部 kicker** (11px uppercase letterspace 0.14em, 颜色 = accent 红 `#a91d1d` 或 mint `#5fb38a`): 数据来源 + 类目, 如 "GLOBAL · WEEKLY ACTIVE USERS · 2018–2026"。 - **大字标题** (Cheltenham / Playfair / Source Serif Pro, 5.6vw, italic 副标可选): 一句结论。**结论必须从用户数据中提炼**, 不是描述图。 - **图表区** (占画布 55-65%): - 折线: 1-2 条线, 主线 ink 实心 2.5px, 次线 dashed 1.5px; 数据点用 6px 实心圆; 关键点旁标注 `2024 · 412M` 黑色 mono 小字。 - 柱状: 全部 ink 单色或加 1 道 accent 高亮柱; 柱顶大数字; 柱底类目斜体 (Cheltenham italic)。 - 范围带 (range band): 浅灰填充 `#e6e2d2` 包络 + 中线 ink。 - **底部 source + footnote** (10px mono, opacity 0.6): "Source: 用户数据 · Chart by html-anything"。
チャートの実装方式は手書き SVG に限定されています。chart.js / d3 の使用を明確に禁止し(jsdelivr CDN による読み込みを除く)、行数の上限を設けることでヘビーなチャートプロジェクトの生成を防ぎます。
- **绝不**: 使用 chart.js / d3 库 (除非 jsdelivr CDN 引入); 推荐手写 SVG, 不超过 80 行 inline。
3種類のチャートタイプに個別の仕様を規定:折れ線(1〜2本、主線 ink 2.5px 実線、副線 1.5px dashed、6px 実心円データポイント)、棒グラフ(単色またはアクセント1色ハイライト + 柱頂部に大きな数値 + イタリック表記のカテゴリ)、レンジバンド(薄グレーの包絡線 + 中央線)。
- 折线: 1-2 条线, 主线 ink 实心 2.5px, 次线 dashed 1.5px; 数据点用 6px 实心圆; 关键点旁标注 `2024 · 412M` 黑色 mono 小字。
アニメーションの原則は時差フェードインです。見出し 0s、kicker 200ms、折れ線 stroke-dashoffset 1.2s ease-out(400ms開始)、データラベルが 100ms ごとに順次表示され、prefers-reduced-motion による無効化に対応します。
description: "NYT-newsroom 排版 + 错峰揭示动画 + 编辑级图表 (折线/柱/范围带)"
データの信憑性にフォールバックルールを規定:ユーザーデータを必須とし、入力がテキストの結論のみの場合は座標の推定を許可するものの schematic 表記を必須とし、CSV/JSON の場合は直接描画します。
- 必须用用户提供的数据。如果输入是文本结论, 自动估算合理坐标 (但要标注 "schematic"); 如果是 CSV/JSON, 直接绘制。
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| network | Google Fonts(Source Serif Pro / IBM Plex Sans / IBM Plex Mono / Noto Sans SC,示例页实际引用) |
| network | Tailwind Play CDN(共享指令强制;示例页亦引用) |
| network | jsdelivr CDN(仅出现在『禁止图表库』的例外条款,条件性、非默认路径) |
| network | hyperframes 目录页(frontmatter 出处标注,非运行时请求) |
4推奨統制措置と判定根拠
- SKILL.md: 純粋なプロンプト指示およびルールテキストのみであり、スクリプト実行や外部影響はありません
5二重目の独立検証
- [ok] 图型与动画规格 — 重读 SKILL.md 折线/柱状/范围带与『错峰揭示动画』两段,引用逐字一致。
- [ok] 『不引图表库』结论 — 示例页仅一个 <script src="https://cdn.tailwindcss.com">,无 d3/chart.js 引用,与 SKILL.md 的手写 SVG 路线一致。
- [ok] jsdelivr 条目定性 — source 中该词仅出现在 `- **绝不**: 使用 chart.js / d3 库 (除非 jsdelivr CDN 引入); 推荐手写 SVG, 不超过 80 行 inline。`(SKILL.md:37);按批4 口径(非明确强制)未升档,已在 deps/reason 标注。
- [ok] 外部端点存在性 — example.html 实测命中 cdn.tailwindcss.com 与 fonts.googleapis.com;example_source_url 指向 heygen 的 hyperframes 目录页,仅作出处标注。
- [ok] 数据真实性条款 — SKILL.md『必须用用户提供的数据…自动估算合理坐标 (但要标注 "schematic")』逐字复核通过。
- [ok] 安全面 — skill 目录 3 个文件无自写脚本/凭证/写盘;示例页无 fetch、无表单外发。
- [ok] meta 元数据 — GitHub API 实查 stars=8827、pushed_at=2026-09-15T03:36:24Z、license Apache-2.0。
6結論
bb37abe4f6f66d85…