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フロントマター + テンプレートプロンプト本文)、任意の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"
グリッチエフェクトは重ね合わせ可能なレイヤーに分解されています。中央配置の6〜9vwホワイト主タイトル層の背後に、cyan #00f0ff と magenta #ff2bd6 の2層のオフセットアーティファクトを配置し、色分散・非点収差を再現します。
- cyan `#00f0ff` translate(`-3px`, `1px`)。
「データ破損」は clip-path の水平スライス + セグメントごとの独立した @keyframes(80〜160ms、スタッガード、translateX -10px→10px)によって実現され、1.5秒ごとにタイトル全体を巻き込む horizontal smear の重度グリッチをトリガーします。
- 整层加 clip-path 切片 5-8 段, 每段 `@keyframes` 随机 translateX -10px → 10px, 持续 80-160ms, 错峰播放, 营造 "data corruption" 像散。
環境レイヤーは3点セットで構成されます。56pxグリッド(不透明度5%)+ scanlines 水平線(2px間隔)+ 全画面 noise grain(data-URI feTurbulence、不透明度6%、mix-blend-mode overlay)。
【画布】1920×1080, 背景 `#070708` 近黑或 CRT 暗灰 `#0d0e10`; 加 56px 网格 (透明 5%) + scanlines 横线 (透明 8%, 2px 间隔)。
高度なオプションとしてSVGの3チャンネルシフトフィルターを提供: <filter id="rgbShift"> は feColorMatrix + feOffset + feMerge を使用し、グリッチ発生の瞬間にレイヤー全体へ適用されます。
- 定义 `<filter id="rgbShift">` 用 `feColorMatrix` + `feOffset` + `feMerge` 把 R/G/B 三通道偏移; 整层 `filter: url(#rgbShift)` 在故障瞬间应用。
テキスト内容と表現に制約があります。タイトル/サブタイトルには必ずユーザーコンテンツを使用し(lorem ipsum は厳禁)、サブタイトルは擬似文字化けに置換可能、上部キャプションと下部タイムコードには等幅フォント小文字と低不透明度を用いて計器風の世界観を演出します。
example_name: "故障标题 · SIGNAL_LOST"
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| network | Google Fonts(Space Grotesk / JetBrains Mono,示例页实际引用) |
| network | Tailwind Play CDN(共享指令强制;示例页亦引用) |
| network | hyperframes 目录页(frontmatter 出处标注,非运行时请求) |
4推奨統制措置と判定根拠
- SKILL.md: 純粋なプロンプト指示およびルールテキストのみであり、スクリプト実行や外部への影響なし
5二重目の独立検証
- [ok] 伪影/动效/环境层规格 — 重读 SKILL.md【主标题】【附加层】【SVG 滤镜】三段,引用与 JSON 逐字一致。
- [ok] recommended 定位 — SKILL.md frontmatter recommended: 6;README『Featured / 推荐』组文案按 recommended 排序,且有截图 docs/screenshots/skills/frame-glitch-title.png 双重印证。
- [ok] 外部端点存在性 — example.html 实测命中 fonts.googleapis.com(Space Grotesk / JetBrains Mono)与 cdn.tailwindcss.com;无其它第三方域。
- [ok] 『无外部图片』结论 — 噪点用 data:image/svg+xml feTurbulence 内联,未引用外链图片;URL 扫描未命中图片资源。
- [ok] 安全面 — 目录内 3 个文件无自写脚本(仅 Tailwind CDN 标签)、无凭证、无写盘、无表单外发。
- [ok] meta 元数据 — GitHub API 实查 stars=8827、pushed_at=2026-09-15T03:36:24Z、license Apache-2.0。
6結論
5102ef969a7b9825…