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

card-xiaohongshu

小紅書(RED)スタイルのナレッジカード。複数枚を連続配置しスワイプ閲覧が可能

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

1仕組みと動作原理

テンプレート本体に実行可能コードは含まれません:loaderがsrc/lib/templates/skills/<id>/SKILL.mdからfrontmatterと本文を読み込み、本文(body)とexampleの内容をまとめてLoadedSkillとして返します。

next/src/lib/templates/loader.ts
const raw = safeRead(path.join(dir, "SKILL.md"));
ここで行われていること:SKILL.mdが唯一の動作定義元です。frontmatterはセレクターのレンダリング用(zh_name/emoji/aspect_hint/tags/example_*等)であり、本文全体がプロンプトとなります。loaderはセマンティックな検証を行わず、テンプレートに書かれた内容をそのまま渡します。

ホストは配信前にプロンプトを固定順で組み立てます:テンプレート本文は共通デザイン指示(SHARED_DESIGN_DIRECTIVES)と【入力形式】/【ユーザーコンテンツ】の間に挟まれます。

next/src/lib/templates/shared.ts
Wrap a per-template instruction body with the shared design directives and
ここで行われていること:テンプレートは「この成果物がどのような外観を持つか」(レイアウト/リズム/コンポーネント)のみを定義し、共通指示がテンプレート横断のハード制約(単一ファイルHTML、ファイル操作ツールの禁止、TailwindおよびGoogle FontsのCDN利用、コンテンツの信憑性、中日欧文間のスペース空け)を担保します。

共通指示はハード制約をエージェントへの明示的な禁止事項として記述し、コンテンツ主導の枚数決定を強制します(テンプレート内の数値は参考下限値に過ぎません)。

next/src/lib/templates/shared.ts
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。
同ファイルの続きに次のルールもあります:出力されるslide / frame / card / sectionの枚数は【ユーザーコンテンツ】の実際の長さと情報構造によって完全に決定されます。これにより、長文になってもこの種のテンプレートが破綻しない理由が説明されます。各段落に最低1枚のカード/セクションが割り当てられ、テンプレートはレイアウトプールを提供するのみです。

実際に実行するのはユーザーのローカル環境にインストール・ログイン済みのコーディングエージェントCLIです:ホストが子プロセスをspawnしてプロンプトを渡し、HTMLをstdoutからストリーミングでキャプチャします。

next/src/lib/agents/invoke.ts
import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";
ここで行われていること:テンプレートskillはプロンプトを提供するのみで、能力(コード生成やツール実行を含む)はホストCLIの既存権限に依存します。skillディレクトリ自体にはスクリプトのエントリポイントが存在しないため、判定はディレクトリ内アセットのみを対象とします(ホスト側の動作は評価対象外)。

/api/convertはテンプレートの実行パスです:skill.bodyとユーザーコンテンツをプロンプトに組み立てた後、invokeAgentに渡します。

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
編集モードは別途buildEditPromptを経由します(差分最小限の編集、ファイルツールの禁止、完全なHTMLの直接ストリーミング出力を要求)。そのため、本テンプレートの成果物形式は極めて安定しています:単一ファイルHTML、インラインCSS/SVG、外部参照はフォントおよび一部テンプレートが明示的に要求するグラフライブラリのみに限定されます。

出力は同一サイズのN枚のカードからなる垂直flexカラムであり、1枚あたり1080×1440(3:4)で、全体のスクロールキャプチャと単票ごとのスクリーンショットの双方に対応します。

next/src/lib/templates/skills/card-xiaohongshu/SKILL.md
- 输出 N 张连续卡片, 每张 `w-[1080px] h-[1440px]`, 用 flex 纵向排列方便整体截图也方便单张截图。
ここで行われていること:縦方向の配置により2つのユースケース(一度の長尺スクリーンショットによる連結画像、または個別スクリーンショットの投稿)を同時に満たします。サンプルの.deckはdisplay:flex + flex-direction:column + align-items:centerで構成されています。

枚数はコンテンツの情報量に応じて決定され、プラットフォーム側の上限と目安の範囲が提示されます(最大18枚、通常は9枚以内が最適、短いコンテンツは3〜6枚から開始、1枚につき1つのコアメッセージ)。

next/src/lib/templates/skills/card-xiaohongshu/SKILL.md
N 由【用户内容】信息量决定: 短内容 3-6 张起步
ここで行われていること:「何枚出力すべきか」という曖昧になりがちな点を判定ルールとして明文化し、共通指示のコンテンツ主導の枚数制約と一致させています(テンプレートの数値は下限であり上限ではありません)。

カードシーケンスは明確なナラティブ構造を持ちます:カバーカード(巨大なタイトル + 1行のサブタイトル + 目を引くバッジ)、中間カード(各1つのコアメッセージ:絵文字 + 短文 + 1〜2の具体例)、最終カード(まとめ + CTA)。

next/src/lib/templates/skills/card-xiaohongshu/SKILL.md
- 最后一张是总结 + 行动号召 (关注 / 收藏 / 评论)。
サンプルではこれに基づき7枚を生成:カバーには「⚡ 保存推奨・ノウハウ予告」バッジ、中間5枚には各1つのAI活用習慣、最終カードには「フォロー/保存」ボタンのスタイルを配置しています。

モバイルでの可読性が必須要件として指定されています:大きなフォントサイズ、広い行間、強いコントラスト。理由は小紅書がスマートフォンで閲覧されるためです。

next/src/lib/templates/skills/card-xiaohongshu/SKILL.md
- 字号大、行距宽、对比强(小红书在手机上看, 小字根本看不清)。
これが本テンプレートとcard-twitterとの決定的な違いです:キャンバスがより細長く(1080×1440 vs 1600×900)、情報密度が高いものの、極小文字は厳禁とされています。

各カードの右下にウォーターマーク(作成者名/日付)が入り、サンプルでは@HTMLAnything + ページ番号の形式で実装されています。

next/src/lib/templates/skills/card-xiaohongshu/SKILL.md
- 每张卡片右下角小水印 (作者名 / 日期)。
サンプルの全カードに<div class="watermark">が存在します:カバーは「@HTMLAnything · 5/11」、内面は「@HTMLAnything」、最終カードはサブタイトル「毎週のAIワークフロー実践」を含み、ウォーターマークがブランディング枠として機能します。

カラーパレットと要素スタイルは、柔らかなモランディ/パステルトーン、丸みを帯びた要素、十分な余白に限定されており、サンプルでは一連のグラデーション背景によって実現されています。

next/src/lib/templates/skills/card-xiaohongshu/SKILL.md
- 配色: 选择柔和的莫兰迪色或粉色系; 元素圆润, 大量留白。
サンプルの.cardにはborder-radius:32pxが設定され、各カードはlinear-gradient(160deg,…)を用いて階調を変え、同色反復ではなくシリーズとしての一体感を演出しています。

2コア機能

01マルチカード連続出力:1080×1440(3:4)の垂直flexカラム形式でN枚出力
02カバーカード構成:巨大タイトル + 1行サブタイトル + 目を引くタグ/バッジ
03本文カード構成:1カード1主張 + 絵文字 + 短文 + 1〜2件の具体例
04最終カード:まとめ + アクション喚起(CTA:フォロー/保存/コメント)
05枚数ルール:コンテンツ量に応じて決定(短いコンテンツは3〜6枚から、プラットフォーム上限18枚、通常≤9枚が最適)
06モバイル可読性の制約(大フォント、広行間、高コントラスト)
07全カードへのウォーターマーク枠配置(作成者名/日付)

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

安全運用のための推奨統制措置
Agent 向け
自動ロード可能
管理者向け
ソースとバージョンの記録
判定根拠(ファイルパスと抜粋)
  • SKILL.md: 純粋なプロンプト指示およびルール記述テキストのみであり、スクリプト実行や外部影響はありません
監査ノート: 。評価はskill自身のディレクトリのみに基づきます(SKILL.md + example.html + example.mdの3ファイルのみで構成され、scripts/なし、内蔵CLIなし、認証情報読み取りなし、ディスク書き込みなし):スクリプトのエントリポイントはなく、内蔵CLIもなく、認証情報の読み込みやディスク書き込み指示もありません。SKILL.md本文はランタイムでの外部エンドポイントの導入を要求していません(キャンバス寸法、枚数ルール、配色およびフォントサイズの指定のみ)。実行時に外部通信は一切発生しません。ディレクトリ内に実際に現れるエンドポイントはexample.html:6-7のcdn.tailwindcss.comとfonts.googleapis.comのみであり、バッチ4最終基準に基づき**成果物期参照**に分類されます(生成されたHTMLがブラウザで開かれた際にCDN/フォントを取得するもので、skill実行時にフェッチやデータ送信、素材アップロードは行われません)。したがってリスク判定の対象外とし、エンドポイントの開示のみに留めます。ホスト環境のラッパー処理(loader→assemblePrompt→ローカルagent CLIのspawn、プレビュー用iframeのsandbox)はすべてホスト側の動作に属し、verdict.risksに記録されます。

5二重目の独立検証

  • [ok] 张数一致性(输入分节 ↔ 输出卡数) — example.html 中 class="card" 出现 7 次,与 example.md 的封面 + 5 个观点卡 + 总结一致;SKILL.md 的「3-6 张起步 / 通常 9 张以内最佳」是区间指导,示例 7 张落在区间内。
  • [ok] 封面徽标与结尾 CTA 是否落实 — 封面卡含「⚡ 建议收藏 · 干货预警」标签(对应吸引人的标签),末卡含「关注」「收藏」按钮样式(对应行动号召),均可逐字定位。
  • [ok] 水印要求落地 — 7 张卡各有一个 .watermark 元素;封面带页码「@HTMLAnything · 5/11」,符合水印位(作者名 / 日期页码)设计。
  • [ok] 端点与判级 — 目录内 http(s) 仅 cdn.tailwindcss.com 与 fonts.googleapis.com(产物期引用);SKILL.md 正文无端点要求,执行期零外发,维持 green。
  • [ok] license / stars / commit 元数据 — GitHub API(api.github.com/repos/nexu-io/html-anything):spdx_id=Apache-2.0、stargazers_count=8827、pushed_at=2026-09-15T03:36:24Z;工作副本 git HEAD = 553ed98c283f9c0f489902d035416a972d6a9699(与任务表 pin 553ed98c283f 同源)。
  • [ok] skill.path 与目录资产面 — pin 目录内该路径存在且含 SKILL.md;目录内文件清单已用 glob 全量核对(含隐藏文件),无 scripts/、无 references/、无二进制资产(competitive-teardown 的 assets/ 为纯 HTML,另行记录)。

6結論

  • 「何枚投稿するか」を実行可能なルールに落とし込み(コンテンツ量依存 + プラットフォーム上限18枚 + 通常≤9枚最適 + 1カード1主張)、長文コンテンツが少数のカードに押し潰されるのを防ぎます。
  • 3段構成のストーリー設計(カバー/本文/まとめ+CTA)により、出力がプラットフォームの閲覧習慣に自然に適応し、各パートに検収可能な要素が含まれます。
  • モバイル環境での可読性が明示的に制約され(大フォント/広行間/高コントラスト)、その根拠(スマホでは小文字が読めない)も示されているため、デスクトップ向けの組版が3:4キャンバスに詰め込まれるのを回避できます。
  • サンプルはそのまま投稿可能な一連のセット(7枚:カバーバッジ、カードごとのグラデーション、ウォーターマーク、末尾CTAを含む)を提供し、入力→出力の道筋がexample.mdで固められています。
  • 最適な用途: 実践ノウハウ、チュートリアル、チェックリストを小紅書向けの画像付き投稿に変換する用途に最適:ナレッジ解説、ツール活用テクニック、まとめリスト、製品レビューなど。サンプル(5つのAI編集習慣)のような、典型的な短文+絵文字+具体例によるノウハウカードに適しています。
    不向きな用途: 1文のみの名言・金言には不向き(card-twitterの1600×900単票を使用すべき);長文の本文全体には不向き(blog-post/article-*を使用すべき);データグラフを必要とするコンテンツには不向き(グラフ描画ライブラリが組み込まれていません)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload card-xiaohongshu.tar.gz
    sha256: f54e465c136dc217…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.