デザイン&モーション · nexu-io/html-anything

deck-xhs-post

9ページの3:4縦型カルーセル画像、暖色パステル+破線ステッカーカード

L1 基本 · ソース登録のみV1 コミット固定Dual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(仓库根 LICENSE = Apache License 2.0;GitHub API license.spdx_id = Apache-2.0;next/package.json 亦声明 Apache-2.0)Commit 553ed98c28
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

このskillは実行可能プログラムではなく、「1ディレクトリ=1テンプレート」の構成をとっています。SKILL.mdのfrontmatterはセレクター表示用であり、本文(body)はモデルに送信されるプロンプトそのものです。テンプレートの追加はディレクトリの追加を意味し、TypeScriptの変更は不要です。

next/src/lib/templates/loader.ts
routes rescan disk and the client refetches `/api/templates`.
同一ファイルのヘッダーコメントにディレクトリ規約が明記されています:SKILL.md(frontmatter+プロンプト本文)/ example.md(任意の入力サンプル)/ example.html(任意のプレビュー)。本skillディレクトリはまさにこの構成に準拠しています。

実際に発行されるプロンプトは、プラットフォーム共有設計指示(SHARED_DESIGN_DIRECTIVES)+本skillのSKILL.md本文+ユーザーコンテンツを、assemblePromptによって1つのプロンプトに結合したものです。

next/src/lib/templates/shared.ts
Wrap a per-template instruction body with the shared design directives and
そのため、本skillの本文は「レイアウト/スタイル/コンポーネントライブラリ」のセクションのみを担当します。出力規律(単一ファイルHTML、ユーザーの実データ使用必須、コンテンツ主導のページ数)は共有指示から提供されるため、テンプレート作者が重複して宣言する必要はありません。

成果物はファイルシステムを経由しません。共有指示によりWrite/Edit/Bashなどのファイルツールの使用が明示的に禁止されており、モデルはHTML全体を応答本文として直接ストリーミング出力します(stdoutはフロントエンドによってキャプチャされ保存されます)。

next/src/lib/templates/shared.ts
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何 \`.html\` 文件里。前端直接捕获你的 stdout 文本, 文件落盘由前端负责。
これが「skill自体がディスク書き込みゼロ」である仕組みの由来です。ファイルを書き込むのはホスト側のフロントエンドであり、skillではありません。本ディレクトリ内にもスクリプトは一切存在しません。

キャンバスサイズはSKILL.mdでaspect_hint「810×1080 ×9」として定義され、example.htmlでは固定の810×1080縦型ページとして実装され、3:4のアスペクト比を宣言しています。

next/src/lib/templates/skills/deck-xhs-post/example.html
.tpl-xhs-post .deck{width:810px;height:1080px;position:relative;background:transparent}
810×1080 = 3:4であり、小紅書(RED)の投稿画像に推奨される縦型比率そのものです。次ページの.slideはposition:absolute;inset:0によって同一キャンバス上に重ねられており、スライドショーの再生ロジックではなく「1ページ1画像」のコラージュ設計ロジックに基づいていることを示しています。

ページ数構成にはプロンプト内で上限と下限が設定されています:カバー+N個のコンテンツ+結びのCTAで構成され、短尺コンテンツは7ページから、推奨合計数は≤18(プラットフォームの1投稿あたりの画像数制限による)です。

next/src/lib/templates/skills/deck-xhs-post/SKILL.md
- Cover + N 个 content 页 + 收尾 CTA (N 由【用户内容】决定, 完整覆盖每个要点; 短内容 7 页起步, 长内容应更多, 受小红书平台单帖图片数约束建议总数 ≤ 18)
本リポジトリ内では珍しく「ページ数の上限・下限を明記」したテンプレートですが、コンテンツ主導(短尺なら範囲未満も可、長尺ならより多く)として解釈されており、共有指示の「コンテンツ主導のページ数」とも整合しています。

個性的なデザイン要素は「破線ステッカー」です:白背景、2.5pxの破線ボーダー、18pxの角丸、-3度の回転とハードシャドウを備え、ピンク/黄/青/緑の4色のカラーバリエーションがあります。

next/src/lib/templates/skills/deck-xhs-post/example.html
.tpl-xhs-post .sticker{position:absolute;padding:10px 18px;background:#fff;border:2.5px dashed var(--text-1);border-radius:18px;font-weight:800;font-size:18px;color:var(--text-1);transform:rotate(-3deg);box-shadow:4px 4px 0 var(--text-1)}
サンプルではステッカーを手書きの注釈(「💤 助けて」「実践7日目」「真の転換点↓」など)として使用しており、各ページに1つずつ、異なる位置と角度で配置されています。これが「小紅書らしさ」の主要な源泉となっています。

各ページの右上にはページ番号カプセル(1 / 9 形式)が配置され、.page-dotによって個別にレンダリングされ、サンプル9ページに順次番号が振られています。

next/src/lib/templates/skills/deck-xhs-post/example.html
.tpl-xhs-post .page-dot{position:absolute;top:40px;right:48px;background:var(--text-1);color:#fff;border-radius:999px;padding:6px 14px;font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:700;z-index:2}
SKILL.mdに記載されている「下部ページネーションdots」とは差異があります。サンプルの実装は「右上ページ番号カプセル」であり、下部dotsコンポーネントは含まれていません(詳細はverification.second_passを参照)。

ストーリー構成はコンテンツマーケティングの定石に沿って構築されています:カバーフック → Hook(スクロールしないで)→ Pain(悩み・課題)→ Aha(真実・気づき)→ Step 1/2/3 → Result(成果)→ CTA(保存+フォロー+ハッシュタグ)。

next/src/lib/templates/skills/deck-xhs-post/example.html
<h1 class="h1 tc mt-s" style="color:var(--accent)">收藏 + 关注 🧡</h1>
example.htmlの9ページのコメントは`<!-- 1. Cover -->` … `<!-- 9. CTA -->`と順に記述されており、「小紅書カルーセル」のコンバージョン構造を再利用可能なページ順序として定型化しています。これが本テンプレートの同リポジトリ内の他デッキに対する最大の差別化要因です。

サーバーサイドの/api/convertが行う処理は3つのみです:templateIdに基づいてディスクからskillを読み込み、プロンプトを組み立て、ローカルのagent CLIをspawnしてSSEストリームで出力を転送します。

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
同一ファイル内でまず`const skill = loadSkill(templateId);`を実行し(該当テンプレートがなければ400)、invokeAgentに渡します。skillディレクトリ自体はプロセスを生成せず、ネットワーク通信も行いません。

2コア機能

01要点コンテンツを810×1080の縦型9枚画像(カバー/フック/課題/気づき/手順/成果/CTA)にレイアウト
02破線ステッカー注釈(4色バリエーション+回転+ハードシャドウ)によりページに手帳のような手書き感を付与
03右上のページ番号カプセルによる連番表示で、プラットフォーム上でトリミングされても順序を判別可能
04手書き風カード.hand-boxに手順やチェックリストを配置し、num-circle番号付きドットで整理
05最終ページに組み込まれたコンバージョン要素:ハッシュタグ行+作成者バッジ+エンゲージメント数値
06暖色パステルテーマのトークン(ベージュピンク背景 #fef7f3 / 薄ピンクサーフェス #fff5ef)により、縦型画像全体の低彩度な統一感を維持

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
自動ロード可能
管理者向け
ソースとバージョンの記録
判定根拠(ファイルパスと抜粋)
  • SKILL.md: 純粋なプロンプト指示およびルールテキストのみで構成され、スクリプト実行や外部影響は一切なし
監査ノート: 判定対象=skill自身のディレクトリ(SKILL.md + example.html/example.md。本ディレクトリ内にはスクリプト、認証情報の読み込み、ディスク書き込み指示、ネットワーク呼び出しコードは一切存在しません)。Batch 4の最終判定基準に基づき、html-anythingテンプレートは一律greenと判定されます。SKILL.md全文においてランタイムサービスバックエンド/APIは一切指定されておらず、ユーザー素材を外部生成バックエンドに送信することもありません(orange要件なし)。リバースエンジニアリング、なりすまし、バックエンドのバイパスもありません(red要件なし)。ディレクトリ内に実際に存在するエンドポイントは成果物サンプルの外部リンク(example.html内のGoogle Fonts @import 8件(fonts.googleapis.com))のみであり、これらは「成果物サンプル」に該当するため基準上判定対象外とし、自己証明のためにのみ記載しています。なお、ホスト側に関して知っておくべき点として、プレビューiframeはsandbox="allow-scripts allow-same-origin"を使用していること、ローカルagent CLIがspawnされること(next/src/lib/agents/invoke.ts)、共有指示が成果物でのCDN参照を要求していることが挙げられますが、これらはプラットフォーム側の挙動であり、補足説明として記載しています。

5二重目の独立検証

  • [ok] 9 页 3:4 竖版 — .deck 810×1080,.slide aspect-ratio:3/4;样例共 9 个 slide,页码 1 / 9 至 9 / 9。
  • [ok] 「虚线 sticker 卡片」 — .sticker 为 border:2.5px dashed + rotate(-3deg) + 硬阴影,样例每页 1 个、共 5 处不同颜色。
  • [discrepancy] 「底部页码 dots」 — SKILL.md 写「底部页码 dots」,但 example.html 用右上角 .page-dot 页码胶囊(top:40px;right:48px),全文无 dots 组件;属提示词与样例的表述偏差,不影响功能。
  • [ok] 「暖色 pastel 背景」 — 主题 token --bg:#fef7f3 / --bg-soft:#fff1ea / --surface-2:#fff5ef,为暖粉体系。
  • [ok] 页数区间(7 起 / ≤18)与共享指令不冲突 — SKILL.md 明确「短内容 7 页起步, 长内容应更多…建议总数 ≤ 18」,是下限+平台约束,非页数上限;与 shared.ts「模板不定义数量」的口径一致。
  • [ok] 无外部资源依赖 — 除字体 @import 外零 URL;图形全为 CSS/SVG,无图片外链。

6結論

  • 完全なコンバージョンページ順序を備えた唯一のテンプレート:Cover→Hook→Pain→Aha→Step→Result→CTAの流れで、コンテンツマーケティングの型をそのまま定型化し、即時投稿可能な出力を実現。
  • キャンバスがそのまま投稿サイズ:810×1080 3:4は小紅書の縦型仕様と一致しており、エクスポート後のトリミングが不要。
  • 手帳風のデザインシステム(破線ステッカー/手書き風ボックス/番号ドット)が揃っており、CSSのみで完結するため外部アセット依存ゼロで高い視覚的認知度を実現。
  • 規律がありながらも柔軟なページ数設定:7ページの下限と≤18のプラットフォーム制限を提示しつつ、長尺コンテンツに応じた柔軟な拡張が可能。
  • 最適な用途: 小紅書(RED)やInstagramでの商品紹介、ノウハウ解説、キャリア知見、ライフハックなど「要点形式」コンテンツの一括画像生成に最適。個人クリエイターやマーケターが1本の原稿をそのままカルーセル投稿に変換する用途、および統一された暖色系スタイルを必要とするアカウント群の運用に適しています。
    不向きな用途: 厳密なデータを要するフォーマルなレポートや表形式コンテンツ(テーブルコンポーネントやグラフライブラリなし);16:9プロジェクターでのプレゼンテーション(キャンバスが縦型のため);インタラクション(ページめくりやホバー効果)を必要とするシーン;純粋な英語・欧文の長文組版(フォントスタックが主に中国語のsans/serifを優先しているため)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload deck-xhs-post.tar.gz
    sha256: dc2bf96c0374a3ec…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.