WeChat Publish Pipeline について
WeChat Publish Pipeline は、技術系のWeChat記事を作成する自動化スキルです。話題選び、調査、執筆、画像作成、整形から下書きの登録までを順に行い、各工程の後に進捗を報告します。
主な機能
- 01最近の技術トピックを選定
- 02資料を調査して中国語記事を執筆
- 03記事画像とカバーを計画・生成
- 04MarkdownをHTMLに変換して下書きを登録
- 05各工程の進捗を報告
活用シーン
- 01最近のAIや開発トピックをWeChat記事にする
- 02技術記事の挿絵とカバーを作成
- 03Markdown記事を整形してWeChatの下書きに登録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ casperliu7/ small-company-agent --skill wechat-publish-pipelineインストール後、Claude Code で/wechat-publish-pipelineを入力して読み込まれたか確認します。
同梱ファイルREADME.md
詳細
WeChat 全自動公開パイプライン
全自動モード:トピック選定から下書きボックスへの保存まで、中断なく実行します。指示を受けたら、以下の手順を順番に実行し、途中でユーザーに確認を求めません。
⚡ 進捗報告の規則(必ず実行)
各 Step の完了後、次の Step のツール呼び出しを開始する前に、まず報告メッセージを1行出力します。 メッセージと次のツール呼び出しは、同じ応答内で次の順序で行います。
[文字:✅ Step N 完成:...]
[工具调用:Step N+1 的第一个工具]
これは、ユーザーがリアルタイムで進捗を確認できる唯一の方法です。ユーザーの返信を待ったり、「このターンを終了して待機」したりせず、メッセージとツール呼び出しをまとめて送信します。
報告フォーマット:
✅ Step 0 完成:选题「{标题}」(HN {N} points)
✅ Step 1 完成:文章写好,{字数}字
✅ Step 2 完成:5张插图全部生成
✅ Step 3 完成:封面图生成
✅ Step 4 完成:排版完成
✅ Step 5 完成:已发布草稿箱,media_id: {id}
パイプラインの手順
Step 0: Topic Selection (web-search + judgment)
Step 1: Research & Write (url-to-markdown + translate + write)
Step 2: Article Illustrations (baoyu-article-illustrator)
Step 3: Cover Image (baoyu-imagine)
Step 4: Markdown → HTML (baoyu-markdown-to-html)
Step 5: Publish to Draft Box (baoyu-post-to-wechat API)
各手順の完了後、直ちにユーザーに進捗メッセージを送信します(上記の進捗報告の規則を参照)。
Step 0: トピック選定(自律的に選定)
完全に自律的に実行し、ユーザーには質問しません。
0.1 トレンド情報の収集
以下のソースを同時に検索し、直近24~48時間の内容を取得します。
- Hacker News 热榜 Top 20(https://news.ycombinator.com/best)
- GitHub Trending(https://github.com/trending)
- 如有必要:Twitter/X AI/tech 话题
0.2 選定基準
以下の条件を満たすトピックを優先します。
| 基準 | 説明 |
|---|---|
| 関連性 | AI、開発ツール、技術トレンド、セキュリティインシデント、エンジニアリングの実践 |
| 速報性 | 48時間以内に発生した出来事で、一次資料を確認できる |
| 深掘りの可能性 | 掘り下げられる技術的な詳細があり、単なるニュースの紹介ではない |
| 読者との適合性 | 技術系の公式アカウントの読者(エンジニア、AI 業界関係者)に適している |
| 未執筆 | /agent/articles/ を確認し、トピックの重複を避ける |
0.3 自律的な決定
候補の中から最も高得点のトピックを選び、選定理由を記録したら、候補一覧を提示したりフィードバックを待ったりせず、そのまま Step 1 に進みます。
📢
✅ Step 0 完了:トピック「{タイトル}」(HN {N} points、ソース:{URL})と出力し、同じ応答内ですぐに Step 1 のツール呼び出し(原文の取得)を開始します。
Step 1: 調査と執筆
1.1 一次資料の取得
baoyu-url-to-markdown を使って主要なソースページを取得します。
SKILL_DIR="/agent/wechat-agent-skills/skills/baoyu-url-to-markdown"
npx -y bun "$SKILL_DIR/scripts/main.ts" --url "{source_url}" --output /tmp/source.md
複数の重要なソース(原文とディスカッション投稿など)がある場合は、すべて取得します。
1.2 翻訳が必要な場合
原文が英語の場合は、baoyu-translate を使って内容の要点を丁寧に翻訳し、参考資料として使用します(翻訳文をそのまま公開しません)。
SKILL_DIR="/agent/wechat-agent-skills/skills/baoyu-translate"
npx -y bun "$SKILL_DIR/scripts/main.ts" /tmp/source.md --mode normal --to zh
1.3 オリジナル記事の執筆
記事のスタイル要件:
- 一人称の視点(「あの日……」「まずは……から見ていきましょう」など)、または三人称の語り口で書く
- 冒頭は具体的な場面や出来事で読者の関心を引き、「背景」から始めない
- 構成を設ける:冒頭のフック → 中心となる出来事や概念 → 技術的な詳細 → 影響や意義 → 結び
- 独自の見解を盛り込み、ニュースの単なる紹介にしない
- コード例、データ、引用は正確にし、一次資料に基づくものにする
- 長さ:2000~4000字
- 言語:中国語
ファイル名と保存先:
/agent/articles/drafts/{slug}-{YYYY-MM-DD}.md
slug:記事のテーマをもとにした英語の kebab-case で、2~4語
Frontmatter:
---
title: 文章标题
date: YYYY-MM-DD
source: 原文URL
tags: [tag1, tag2]
digest: 文章摘要(≤15字,发布时传给微信)
---
概要の要件:
- 15字以内
- タイトルの言い換えではなく、中心となる出来事や結論を示す
- 例:「AIサプライチェーンが侵害され、数千のアプリがひそかに影響を受ける」
📢
✅ Step 1 完了:記事を執筆し、約 {字数} 字で {パス} に保存しましたと出力し、同じ応答内ですぐに Step 2 のツール呼び出し(イラスト用プロンプトの作成)を開始します。
Step 2: 記事のイラスト
スキル:baoyu-article-illustrator
2.1 記事を分析し、イラストを計画
記事を読み、以下を判断します。
- コンテンツの種類 → プリセットを選択
- 技術/セキュリティ/AI →
tech-explainer(infographic + blueprint) - 物語と技術の混在 →
tech-explainer、重要な出来事にはtimelineタイプを使用 - 方法論/フレームワーク →
system-design
- 技術/セキュリティ/AI →
- 密度:
per-section(主要な各セクションに最低1枚) {article-dir}/imgs/outline.mdを作成
イラストに適した位置:
- 記事の冒頭より前(タイムラインや全体概要)
- 重要な技術的メカニズムの説明の後(フロー図/フレームワーク図)
- データや比較のセクション(infographic/comparison)
- 結論前のまとめ図
2.2 すべてのプロンプトファイルを作成(BLOCKING、生成前に必ずすべて作成)
{article-dir}/imgs/prompts/NN-{type}-{slug}.md に保存します。
プロンプトの品質要件:
Layout:全体の構図を説明するZONES:各領域の具体的な内容を記載し、曖昧な表現を避けるLABELS:記事内の実際の数値/用語/引用を使用するCOLORS:16進数のカラーコードと意味を記載するSTYLE:技術/セキュリティ系には blueprint/dark/digital スタイルを使用するASPECT: 16:9
コンテンツ審査に関する安全規則(OpenAI のコンテンツポリシーへの抵触を避ける):
- ❌ 「fork bomb」、「malware install」、「exploit」、「hack」、「kill process」
- ✅ 行為や結果を説明する表現に変更します:「process multiplication」、「malicious payload」、「vulnerability abuse mechanism」
- 画像が
moderation_blockedによって拒否された場合は、技術用語ではなく行為を説明するようにプロンプトを書き換え、個別に再試行します。
2.3 一括生成
{article-dir}/imgs/batch.json を作成します。
{
"jobs": 3,
"tasks": [
{
"id": "01-slug",
"promptFiles": ["prompts/01-type-slug.md"],
"image": "01-type-slug.png",
"provider": "openai",
"model": "gpt-image-1",
"ar": "16:9",
"quality": "2k"
}
]
}
cd {article-dir}/imgs
SKILL_DIR="/agent/wechat-agent-skills/skills/baoyu-imagine"
npx -y bun "$SKILL_DIR/scripts/main.ts" --batchfile batch.json --jobs 3
2.4 記事への挿入
各画像を対応する段落の後に挿入します。

📢
✅ Step 2 完了:5枚のイラストをすべて生成し、記事に挿入しましたと出力し、同じ応答内ですぐに Step 3 のツール呼び出し(カバー画像の生成)を開始します。
Step 3: カバー画像
カバー画像は {article-dir}/imgs/cover.png に保存します(wechat-api.ts はデフォルトでこのパスを読み込みます)。
3.1 カバー画像用プロンプトの作成
{article-dir}/imgs/prompts/cover.md に保存します。
技術/AI 系の記事に適したカバー画像の設定:
type: conceptualpalette: darkrendering: digital- 雰囲気:大胆で、コントラストが高い
- 配色:濃いネイビーブルー/黒の背景に、電光のような赤橙色(脅威感)または青緑色(テクノロジー感)を組み合わせる
- 文字を含めない(タイトルは WeChat 側に別途表示されます)
- メインのビジュアル要素を記事のテーマに強く関連させる(汎用的なテクノロジー画像は避ける)
3.2 カバー画像の生成
cd {article-dir}/imgs
SKILL_DIR="/agent/wechat-agent-skills/skills/baoyu-imagine"
npx -y bun "$SKILL_DIR/scripts/main.ts" \
--promptfiles "prompts/cover.md" \
--image "cover.png" \
--provider openai \
--model gpt-image-1 \
--ar 16:9 \
--quality 2k
📢
✅ Step 3 完了:カバー画像を生成しましたと出力し、同じ応答内ですぐに Step 4 のツール呼び出し(レイアウト調整)を開始します。
Step 4: Markdown → HTML(レイアウト調整)
cd {article-dir}
SKILL_DIR="/agent/wechat-agent-skills/skills/baoyu-markdown-to-html"
npx -y bun "$SKILL_DIR/scripts/main.ts" {article-file} --theme grace --cite
デフォルト設定:
- Theme:
grace(上品で、技術系コンテンツに適しています) --cite:外部リンクを末尾の参考文献に変換(WeChat に適しています)
出力 JSON の contentImages にすべてのイラストが含まれていることを確認してから、次に進みます。
📢
✅ Step 4 完了:レイアウト調整が完了しましたと出力し、同じ応答内ですぐに Step 5 のツール呼び出し(WeChat への公開)を開始します。
Step 5: WeChat の下書きボックスへの公開
cd {article-dir}
SKILL_DIR="/agent/wechat-agent-skills/skills/baoyu-post-to-wechat"
npx -y bun "$SKILL_DIR/scripts/wechat-api.ts" \
{article-file} \
--theme grace \
--color blue \
--cover imgs/cover.png
重要な注意事項:
.htmlではなく.mdファイルを渡します(変換と画像のアップロードはスクリプト内で処理されます)- 画像は自動的に1MB未満の JPEG に圧縮してからアップロードされます
- 成功すると
media_idが返されます
📢 最終報告:
✅ Step 5 完了:下書きボックスに公開しました。media_id: {media_id}を送信し、パイプラインを終了します。
初回実行時の環境確認
EXTEND.md の確認と自動作成
test -f "$HOME/.baoyu-skills/baoyu-article-illustrator/EXTEND.md" || mkdir -p "$HOME/.baoyu-skills/baoyu-article-illustrator" && cat > "$HOME/.baoyu-skills/baoyu-article-illustrator/EXTEND.md" << 'EOF'
---
version: 1
watermark:
enabled: false
content: ""
position: bottom-right
opacity: 0.7
preferred_style:
name: null
description: ""
default_output_dir: imgs-subdir
language: zh
custom_styles: []
---
EOF
test -f "$HOME/.baoyu-skills/baoyu-imagine/EXTEND.md" || mkdir -p "$HOME/.baoyu-skills/baoyu-imagine" && cat > "$HOME/.baoyu-skills/baoyu-imagine/EXTEND.md" << 'EOF'
---
version: 1
default_provider: openai
default_quality: 2k
default_aspect_ratio: null
default_image_size: null
default_model:
google: null
openai: gpt-image-1
azure: null
openrouter: null
dashscope: null
minimax: null
replicate: null
---
EOF
test -f "$HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md" || mkdir -p "$HOME/.baoyu-skills/baoyu-cover-image" && cat > "$HOME/.baoyu-skills/baoyu-cover-image/EXTEND.md" << 'EOF'
---
version: 1
watermark:
enabled: false
content: ""
position: bottom-right
opacity: 0.7
preferred_type: null
preferred_palette: null
preferred_rendering: null
preferred_text: title-only
preferred_mood: balanced
preferred_font: clean
default_aspect: 16:9
default_output_dir: imgs-subdir
quick_mode: false
language: zh
custom_palettes: []
---
EOF
test -f "$HOME/.baoyu-skills/baoyu-post-to-wechat/EXTEND.md" || mkdir -p "$HOME/.baoyu-skills/baoyu-post-to-wechat" && cat > "$HOME/.baoyu-skills/baoyu-post-to-wechat/EXTEND.md" << 'EOF'
default_theme: grace
default_color: blue
default_publish_method: api
default_author: 宝玉
need_open_comment: 1
only_fans_can_comment: 0
EOF
npm 依存関係の確認
ls /agent/skills/baoyu-skills/node_modules/jimp 2>/dev/null || \
(cd /agent/skills/baoyu-skills && npm install jimp @jsquash/webp)
完了レポート
WeChat Full Pipeline Complete!
选题: [topic]
来源: [source URL]
文章: [article path]
插图: X 张
封面: imgs/cover.png
主题: grace + blue
✓ 已发布至公众号草稿箱
• media_id: [media_id]
→ 草稿箱: https://mp.weixin.qq.com(内容管理 → 草稿箱)