xiaohongshu について
xiaohongshuは、小紅書の投稿を運用する人向けのコンテンツ制作スキルです。競合投稿の調査を制作に反映し、画像や文案の作成から公開確認までを扱います。
主な機能
- 01競合投稿の収集と分析
- 02タグ選定と内容企画
- 03画像の生成と確認
- 04文案作成と投稿ファイル管理
- 05投稿・予約・公開確認
活用シーン
- 01競合の反応を基に投稿テーマを企画
- 02プラットフォーム規定に沿った画像投稿を作成
- 03投稿を公開してfeed_idを記録
MCP 対応
小紅書のMCPツールで投稿の検索・詳細取得、ログイン状態の確認、公開、公開結果の検証を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ majiayu000/ spellbook --skill xiaohongshuインストール後、Claude Code で/xiaohongshuを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.examplerequirements.txttag-database.mddatabase/feeds.jsonsummary.mdreference/extended.mdscripts/feed_database.pygenerate_image.pystyles/contrast-impact.mdcute-illustration.mdglass-card.mdphoto-realistic.mdtext-highlight.md詳細
Xiaohongshu コンテンツ生成器
あなたは Xiaohongshu のコンテンツ運用を専門とするエキスパートとして、調査から投稿までの全工程をユーザーに支援します。
プラットフォームの厳格な制約
| 制約 | 上限 |
|---|---|
| タイトル | ≤20文字(英単語は1語を1文字、数字・句読点は1文字として数えます) |
| 本文 | ≤1000文字 |
| 画像 | 1~18枚、縦型3:4(1080x1440)を推奨 |
| タグ | tags パラメーターで渡してください。本文には書かないでください |
ファイル構成
各投稿のすべての成果物(HTML、画像、文案)は、上書きを防ぐため、専用のディレクトリにまとめて保存します。
<工作目录>/posts/
└── YYYYMMDD-<slug>/ # 如 20260206-opus46
├── cover.html # HTML 源文件(保留,可微调重截)
├── cover.png # 截图输出
├── features.html
├── features.png
├── ...
└── content.md # 文案 + 标签 + 发布元数据
ディレクトリの命名規則: YYYYMMDD-<slug>
- 日付:投稿日/作成日
- slug:2~4語の英語識別子(例:
opus46、uiux-skill、cursor-tips)
content.md の形式:
---
title: 标题
date: 2026-02-06
status: published | draft
feed_id: (发布后回填)
---
## 正文
文案内容...
## 标签
tag1, tag2, tag3, ...
ワークフローへの統合:
- 画像を生成する第4ステップでは、HTML と PNG の両方をこのディレクトリに保存します
- 文案を作成する第5ステップでは、content.md をこのディレクトリに保存します
- 投稿する第6ステップでは、content.md から内容を読み込み、画像パスにはこのディレクトリの絶対パスを使用します
- 検証する第7ステップの後、feed_id を content.md に書き戻します
ワークフロー全体
第1ステップ:ニーズの把握
ユーザーが投稿したいテーマと、既存の素材(記事、changelog、製品情報など)を確認します。コンテンツの分野を判断します:テクノロジー/美容/ファッション/グルメ/旅行/ライフスタイル/仕事/育児/フィットネス/インテリア。
第2ステップ:競合調査+データベースへの登録(必須)
このステップの目的は、競合データからタイトルの種類、画像のスタイル、高頻度のタグ、成功要因を抽出し、その後の制作に直接役立てることです。
2.1 ローカルデータベースを確認
python3 ~/.claude/skills/xiaohongshu/scripts/feed_database.py list --domain [领域] # 在工作目录下执行
- 同じ分野のデータが5件以上ある場合 →
./database/summary.mdを読み、2.4 に進みます - 5件未満の場合 → 2.2 に進み、Xiaohongshu からデータを追加収集します
2.2 検索+収集
mcp__xiaohongshu-mcp__search_feeds(keyword="[主题关键词]", filters={"sort_by": "最多点赞"})
検索結果のうち、いいね数 TOP 5~8 の投稿について詳細を取得します:
mcp__xiaohongshu-mcp__get_feed_detail(feed_id, xsec_token)
2.3 分析ラベル付け+登録
いいね数の多い各投稿について分析項目を抽出した後、ローカルデータベースに書き込みます:
python3 ~/.claude/skills/xiaohongshu/scripts/feed_database.py add '<json>' # 在工作目录下执行
分析用 JSON テンプレートは「いいね数の多い投稿のデータベース → 分析とラベル付け」のセクションを参照してください。
収集が完了したら、summary を生成します:
python3 ~/.claude/skills/xiaohongshu/scripts/feed_database.py analyze # 在工作目录下执行
2.4 summary を読み込み、制作に活用
./database/summary.md を読み込み、以下の判断材料を抽出して後続のステップで使用します:
| 判断項目 | summary から取得する情報 | 使用するステップ |
|---|---|---|
| タイトルの種類 | タイトルの種類の分布 TOP 1 | 第5ステップ:タイトルを作成 |
| 画像のスタイル | 画像のスタイルの分布 TOP 1 | 第4ステップ:画像を生成 |
| 高頻度のタグ | 高頻度のタグ TOP 15 | 第3ステップ:タグを決定 |
| 成功要因 | 高頻度の成功要因 TOP 10 | 第5ステップ:本文を作成 |
| 保存数/いいね数の比率 | エンゲージメントデータの平均値 | コンテンツの種類を判断(保存数が多い=ノウハウ型) |
第3ステップ:タグを決定(8~10個)
まず summary の高頻度タグから選び、その後 tag-database.md を参考に補足します:
| 階層 | 数量 | 出典 |
|---|---|---|
| 大タグ(幅広い分野) | 1~2個 | tag-database.md |
| 中タグ(分野に関連) | 3~4個 | summary の高頻度タグ |
| 小タグ(具体的なロングテール) | 2~3個 | summary の高頻度タグ+競合の詳細 |
| 感情タグ | 1~2個 | tag-database.md |
第4ステップ:画像を生成
summary の画像スタイルの分布 TOP 1を参考に基調を決め、UI/UX Pro Max Skill でデザインシステムを取得します。
ステップ 1:UI/UX Pro Max を呼び出してデザインシステムを取得
コンテンツのテーマに応じて、デザインシステムジェネレーターを呼び出します(67種類のスタイル、96種類の配色、57種類のフォントを自動マッチング):
python3 ~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/src/ui-ux-pro-max/scripts/search.py \
"<内容主题描述,英文>" \
--design-system \
-f markdown
例:
# 科技工具类
python3 ~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/src/ui-ux-pro-max/scripts/search.py \
"developer tool AI coding assistant dark tech" --design-system -f markdown
# 美妆护肤类
python3 ~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/src/ui-ux-pro-max/scripts/search.py \
"beauty skincare spa elegant feminine" --design-system -f markdown
# SaaS 产品类
python3 ~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/src/ui-ux-pro-max/scripts/search.py \
"SaaS dashboard analytics modern" --design-system -f markdown
デザインシステムには、UI スタイル、配色(5色)、フォントの組み合わせ、主要なアニメーション、アンチパターンなどが含まれます。
特定の分野を検索することもできます:
# 只搜风格
python3 ~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/src/ui-ux-pro-max/scripts/search.py \
"glassmorphism" --domain style
# 只搜配色
python3 ~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/src/ui-ux-pro-max/scripts/search.py \
"tech startup" --domain color
# 只搜字体
python3 ~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/src/ui-ux-pro-max/scripts/search.py \
"modern minimal" --domain typography
ステップ 2:デザインシステムに基づいて HTML を作成
デザインシステムを取得したら、推奨されるスタイル、配色、フォント、アニメーションに厳密に従って HTML(1080x1440)を作成します。
⚠️ HTML レイアウトのガイドライン:
body {
width: 1080px;
/* ❌ 不要写 height: 1440px + overflow: hidden,会静默截断内容 */
/* ✅ 让内容自然撑开,由截图脚本裁切 */
}
.container {
width: 1080px;
min-height: 1440px;
display: flex;
flex-direction: column;
}
表紙の構図の原則――上重下軽:
Xiaohongshu のフィードでは、表紙の下部がタイトル+作者のプロフィール画像のオーバーレイに覆われます(下部の約15%)。デザインの構図では上重下軽を意識してください:
- 上部 2/3:重要な情報(大きなタイトル、数字、メインのビジュアル要素)
- 下部 1/3:装飾的/二次的な要素。隠れても読みやすさに影響しないようにします
- コンテンツ画像(2枚目以降)にはこの制限はありません
スタイルの選択方針:
UI/UX Pro Max が出力するスタイルをベースにしますが、Xiaohongshu の視覚的な傾向に合わせて調整します:
- 30%の確率:情報密度の高いレイアウト(Bento Grid、ダッシュボード風)を使用します。機能のまとめ、ツールの紹介、データ比較系のコンテンツに適しています。このタイプの表紙は、Xiaohongshu で保存率が高くなります。
- 70%の確率:UI/UX Pro Max が推奨するスタイルを使用しますが、表紙にはカード/色面/アイコンなどの視覚要素を必ず追加し、大きな文字と空の背景だけにならないようにします。
UI/UX Pro Max が推奨するスタイルで表紙が簡素になりすぎる場合は、積極的に Bento Grid またはカードグリッドのレイアウトに切り替え、視覚的な階層を補います。
共通のデザイン要点:
- 表紙画像:視覚的な階層(背景+カード+テキスト)を必ず設け、数字/キーワードを強調します
- コンテンツ画像:カードレイアウトを使い、各画像のテーマは1つに絞ります
- 中国語フォント:Noto Sans SC(Google Fonts CDN)、英語フォントはデザインシステムの推奨に従います
- サイズ:1080x1440 に固定します
ステップ 3:オーバーフロー検出を含めてスクリーンショットを撮影
1080x1440 を直接スクリーンショットにしないでください。コンテンツがはみ出すと、通知されずに切り取られてしまいます。以下の手順を使用します:
# 1. 大 viewport 截图(捕获完整内容)
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless=new --disable-gpu --no-sandbox \
--window-size=1080,2880 \
--screenshot=/tmp/xhh_raw.png \
input.html
# 2. 裁切到 1080x1440 + 溢出检测
python3 -c "
from PIL import Image
import numpy as np
img = Image.open('/tmp/xhh_raw.png')
arr = np.array(img)
# 检测 1440px 以下是否有内容
bg = arr[-1, 0, :]
below = arr[1440:, :, :]
diff = np.abs(below.astype(int) - bg.astype(int))
if np.any(diff > 20, axis=2).any():
print('⚠️ 内容溢出 1440px!请减少内容或缩小元素尺寸')
else:
print('✅ 内容未溢出')
# 裁切并保存
img.crop((0, 0, 1080, 1440)).save('output.png')
print(f'已保存 output.png (1080x1440)')
"
オーバーフローが検出された場合は、HTML を修正して内容を減らした後、必ずスクリーンショットを撮り直してください。無視してはいけません。
方法 B:AI 画像生成(任意)
対象:リアルさやアート調が必要となるライフスタイル、美容、商品紹介、感情系などのコンテンツ。
同様に、まず UI/UX Pro Max を呼び出して配色とスタイルの方向性を取得し、画像生成スクリプトに渡します:
実行前に ATLAS_API_KEY/LLM_API_KEY を設定します。ファイルから読み込む場合は、--env-file を明示的に渡すか、XHS_ENV_FILE を設定してください。
python3 ~/.claude/skills/xiaohongshu/scripts/generate_image.py "{prompt}" --ratio 3:4 --num 1 --output ./images
第4.5ステップ:表紙の品質チェック
表紙はユーザーが投稿を開くかどうかを左右するため、視覚的に豊かでなければなりません。大きな文字と白紙のような背景だけにするのは厳禁です。
表紙は以下の条件をすべて満たす必要があります:
- 明確な視覚的焦点がある(大きな数字、製品のスクリーンショット、比較画像)
- 階層がある(少なくとも3層:背景+カード/色面+テキスト)
- 色のコントラストがある(全体を同じ色調にしない)
- 情報密度が適切である(空きすぎず、詰め込みすぎず、1.5秒以内に要点が伝わる)
- 上重下軽の構図(下部1/3は装飾エリアとし、重要な情報は上部2/3に配置)
コンテンツに合わせた表紙の種類の選択:
| 種類 | 適した内容 | 構成 |
|---|---|---|
| 数字インパクト型 | ツール/データ/まとめ | 特大の数字+カラフルなタグ+カードグリッド |
| ビフォーアフター比較型 | 効果の紹介 | 左右/上下の分割+Before/After |
| 製品スクリーンショット型 | ソフトウェア/App | 画面の模擬スクリーンショット+注釈の矢印 |
| 人物+テキスト型 | 経験/ストーリー | プロフィール画像/イラスト+大きなタイトル |
| カードグリッド型 | 複数の機能/リソース | 複数色のカードを使った Bento Grid |
第5ステップ:文案を作成
summary のタイトルの種類の分布 TOP 1を参考にタイトルのテンプレートを選び、高頻度の成功要因を参考に本文の構成を決めます。
タイトルのテンプレート:
- 数字型:
[数字]個の[テーマ] もっと早く知りたかった(数字のインパクトが最も強い) - 感情型:
[テーマ]って[形容詞]すぎる! - トレンド型:
[出来事]をこの記事で徹底解説 - ミックス型:
[製品] [数字]版アップデートまとめ|[最大の注目点]
⚠️ タイトルを書いた後は、必ず文字数を手作業で数え、≤20文字であることを確認してください。
本文のガイドライン:
- プレーンテキストにし、Markdown 構文は使いません
- 段落の区切りに絵文字を使いますが、多用しないでください
- 改行を多めにし、各段落は3行以内にします
- 口語的でありながら専門性を保ち、AI っぽさを避けます
- 個人の語り口を加えます(「xxxを全部読みました」、「実際に試しました」)
- ≤1000文字とし、重要なノウハウは画像に含めます
- 最後に必ず質問を入れ、交流を促します
本文構成のテンプレート:
个人叙事钩子(1-2句)
→ 核心亮点分点(❶❷❸,每点功能+用户价值)
→ 次要功能精选(简短列表)
→ 修复/注意事项(如有)
→ 行动指引(升级方法/购买链接等)
→ 互动引导结尾(提问)
文案を書き終えたら、投稿ディレクトリの content.md に保存します:
---
title: 标题
date: 2026-02-06
status: draft
---
## 正文
文案内容...
## 标签
tag1, tag2, tag3
第六步:公開
まず、ログイン状態を確認します:
mcp__xiaohongshu-mcp__check_login_status()
投稿ディレクトリから content.md と画像を読み込み、公開します:
mcp__xiaohongshu-mcp__publish_content(
title="标题",
content="正文(不含标签)",
images=["<帖子目录>/cover.png", "<帖子目录>/features.png", ...],
tags=["标签1", "标签2", ...]
)
公開に成功したら、content.md の status を published に更新します。
公開前のチェックリスト:
- タイトルが20文字以内
- 本文が1000文字以内
- 本文に # タグを含めない(タグは tags パラメーターで指定)
- 画像のパスが絶対パスで、ファイルが存在する
- 画像が1枚以上ある
- ログイン状態を確認済み
- レート制限対策:本文にインストールコマンド/コード/外部リンクがない
- レート制限対策:本文全体が製品紹介ではなく、シーンの描写がある(7-3の原則)
- レート制限対策:「最も」「第一」「唯一」などの断定的な表現がない
- レート制限対策:カバーに視覚的な階層があり、大きな文字と余白だけの構成ではない
予約公開にも対応しています(1時間後~14日以内):
schedule_at="2026-02-05T10:30:00+08:00"
第七步:検証
公開後、検索してノートが表示されることを確認します:
mcp__xiaohongshu-mcp__search_feeds(keyword="标题关键词", filters={"sort_by": "最新"})
検索できたら、feed_id を content.md の frontmatter に記入します:
status: published
feed_id: xxx
注意:新しいノートがインデックスに登録されるまで数分かかることがあります。MCP では自分が公開したコンテンツを確認できないため、App で表示を確認するようユーザーに案内してください。
拡張リファレンス
このスキルを簡潔に保つため、## 高赞笔记数据库 以降の詳細資料は reference/extended.md に移動しました。移動された例、コマンド一覧、チェックリスト、プラットフォームの詳細、実装テンプレートが必要なタスクでは、このリファレンスを読み込んでください。