1仕組みと動作原理
この skill は実行可能プログラムではなく、ローカルの coding-agent CLI に注入されるプロンプトです。ホストが SKILL.md 本文を取得し、先頭にサイト共通デザイン指示、末尾にユーザーコンテンツを連結して1本のプロンプトを作成し、ログイン済み agent に渡して、agent の stdout を HTML として取得します。
【输入格式】: ${opts.format} 【用户内容】: ${opts.content}
共通指示レイヤー(個別の skill には属さないが、全テンプレートに適用される)は、出力を「自己完結型単一ファイル HTML」に固定し、agent による Write/Edit/Bash などのファイルシステムツールの使用を明示的に禁止し、HTML を対話本文として直接ストリーミング出力させます。
- **禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
SKILL.md の外部には「コンテンツ駆動の数量」オーバーライドルールが存在します。テンプレートに記載されたページ数、フレーム数、カード数はすべて参考下限とみなされ、実際の数量はユーザーコンテンツによって決定されます。これにより、agent がテンプレートの数値に合わせてユーザーコンテンツを圧縮するのを防ぎます。
- 模板只定义"可用版面 / 风格 / 配色 / 字体 / 组件库", **不定义** slide / 帧 / 卡片 / section 的数量。
読み込み規約は「1 skill = 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 に渡し、1文分類を実行させます。
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"
ロゴは画像ではなく、CSS / インライン SVG で描画される 4〜8 個の幾何学ブロック(円 / 正方形 / 三角形 / ヘアライン)であることが求められます。イン時には各ブロックが画面外の異なる方向からスライドイン + scale 1.4→1.0 + opacity 0→1 となり、80ms 刻みで総時間 1.2s かけて組み立てられます。
- 入场动画: 每个块从屏幕外滑入 (±100px 不同方向) + scale 1.4→1.0 + opacity 0→1, 错峰 80ms; 总时长 1.2s。
組み立て完了後は2段階のフィニッシュアニメーションが続きます:ロゴ全体に glow bloom(drop-shadow 24px アクセント 40% 不透明度)が適用され、同時に shimmer が mask-image を使用してロゴ上をスイープ(500ms)します。
description: "Logo 分块组装入场 + glow bloom + tagline 揭示, 适合视频片尾 / 品牌闭幕"
テキストはタイムラインに従って階層的に登場します:ブランド名は 1.4s から(typewriter または fade-up)、タグラインは 1.8s でフェードイン、最下部の CTA/メタデータ行は 11px uppercase + letter-spacing 0.16em + opacity 0.4 + ヘアライン区切りを使用します。
- **品牌名**: logo 下方 6-8% 位置, 大字 (Inter Tight / SF Pro Display, 48-72px, weight 700, letter-spacing -0.02em), 入场: typewriter or fade-up after logo bloom (1.4s 开始)。
最終フレームのセマンティクスが明示的に規定されています:アニメーション全体が完了した後は freeze し、ループさせないこと——ループアニメーションではなく動画の終了フレームであるためです。
- 单文件 HTML; 整个动画完成后 freeze (不要 loop, 这是视频结尾帧)。
カラーパレットは4種から1つを選択し混用は禁止(Midnight Indigo / Solar Amber / Forest Mint / Bone & Ink)、さらにロゴに外部画像を使用することは一切禁止され、純粋な CSS/インライン SVG による幾何学描画が義務付けられています。
example_tagline: "Midnight Indigo + glow bloom"
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| network | Google Fonts(Inter Tight / Inter / Noto Sans SC,示例页实际引用) |
| network | Tailwind Play CDN(共享指令强制;示例页亦引用) |
| network | hyperframes 目录页(frontmatter 出处标注,非运行时请求) |
4推奨統制措置と判定根拠
- SKILL.md: 純粋なプロンプト指示およびルールテキストのみであり、スクリプト実行や外部への副作用はありません
5二重目の独立検証
- [ok] 装配动画/时间轴规格 — 重读 SKILL.md【布局】四段,逐字复核 ±100px、scale 1.4→1.0、80ms 错峰、1.2s、1.4s/1.8s 等数值。
- [ok] freeze 语义 — SKILL.md 原文:单文件 HTML; 整个动画完成后 freeze (不要 loop, 这是视频结尾帧)。引用逐字通过。
- [ok] recommended 定位 — frontmatter recommended: 8;README 推荐组按 recommended 排序 + 截图 docs/screenshots/skills/frame-logo-outro.png 双重印证。
- [ok] 『禁外链 logo』结论 — SKILL.md 原文:**绝不**: 用外链 logo 图片; logo 必须用纯 CSS / 内联 SVG 几何绘制。;示例页扫描无图片资源域。
- [ok] 安全面 — 目录内 3 个文件无自写脚本、无凭证、无写盘、无表单外发;示例页仅 Tailwind CDN 标签。
- [ok] meta 元数据 — GitHub API 实查 stars=8827、pushed_at=2026-09-15T03:36:24Z、license Apache-2.0。
- [unlocatable] 安装量 — 无公开安装量数据源,installs=null。
6結論
2b9a714941c3e7ad…