Agent Skills by ALSEL
汎用EC・マーケティング⭐ リポ 1,900品質スコア 95/100

wewrite

WeChat公众号(ウェチャット公式アカウント)の記事制作を支援するアシスタントです。トレンド抽出→選題→構成立案→コンテンツ強化→執筆→SEO最適化→ビジュアルAI→フォーマット調整・下書き保存まで、全工程をサポートします。 公众号、推文、微信記事、微信投稿、下書き箱、WeChat編集、選題、トレンド検索、トレンド抽出、カバー画像、挿入画像、公众号記事作成などのキーワードで起動します。 Markdown形式のWeChat変換、ユーザーの編集スタイル学習、記事データ分析、スタイル設定、テーマプレビュー・切り替え、:::dialogue/:::timeline/:::callout などのコンテナ構文にも対応しています。 「記事を書く」「ブログ」「メール」「PowerPoint」「TikTok・ショート動画」「ウェブサイトSEO」など、公众号やWeChat以外の文脈では起動しません。WeChat公式アカウント関連の明確な文脈が必要です。

description の原文を見る

微信公众号内容全流程助手:热点抓取 → 选题 → 框架 → 内容增强 → 写作 → SEO → 视觉AI → 排版推送草稿箱。 触发关键词:公众号、推文、微信文章、微信推文、草稿箱、微信排版、选题、热搜、 热点抓取、封面图、配图、写公众号、写一篇、主题画廊、排版主题、容器语法。 也覆盖:markdown 转微信格式、学习用户改稿风格、文章数据复盘、风格设置、 主题预览/切换、:::dialogue/:::timeline/:::callout 容器语法。 不应被通用的"写文章"、blog、邮件、PPT、抖音/短视频、网站 SEO 触发—— 需要有公众号/微信等明确上下文。

SKILL.md 本文

WeWrite — 公众号文章全流程

行動宣言

役割:ユーザーのWeChat公式アカウントコンテンツ編集エージェント。

モード

  • デフォルト完全自動——ステップ1~8を一気に実行し、途中で停止しない。エラー時のみ停止。
  • インタラクティブモード——ユーザーが「インタラクティブモード」/「自分で選びたい」と言った場合、選題・フレームワーク・配図の部分で一時停止。

ダウングレード原則:各ステップにダウングレード方案があります。ステップ1で検出されたダウングレードマーク(skip_publishskip_image_gen)は、後続のステップで自動的に有効になり、重複してエラーを報告しません。

進捗追跡:メインパイプライン起動時、8つのステップのタスクを作成します。各ステップ開始時にステータスをin_progressにマーク、完了後はcompletedにマークします。ユーザーはいつでも現在の進捗を確認できます。

完了プロトコル

  • DONE — 全流程完了、記事が保存/配信された
  • DONE_WITH_CONCERNS — 完了但部分ステップがダウングレード、ダウングレード項目を記載
  • BLOCKED — 重要なステップが継続不可(例:Python依存関係がなく、ユーザーがインストール拒否)
  • NEEDS_CONTEXT — ユーザー情報が必要(例:初回設定で公式アカウント名が必要)

パス約定:本文書で {skill_dir} は本SKILL.mdが存在するディレクトリ(WeWriteのルートディレクトリ)を指します。

オンボード例外:オンボードはインタラクティブです(ユーザーに質問する必要があります)。「完全自動」制約の対象外です。オンボード完了後、完全自動パイプラインに戻ります。

補助機能(必要に応じてロード、メインパイプライン外):

  • ユーザーが「スタイル再設定」と言った場合 → 読取: {skill_dir}/references/onboard.md

  • ユーザーが「自分の修正を学習」と言った場合 → 読取: {skill_dir}/references/learn-edits.md。2つのソースをサポート:

    • ローカル修正(デフォルト):ユーザーが output/ のmarkdownファイルで修正
    • WeChat下書きボックス同期python3 {skill_dir}/scripts/learn_edits.py --from-wechatで、自動的に下書きボックスから最新コンテンツを取得し、ローカル原文とプレーンテキスト差分を行う
  • ユーザーが「レイアウト学習」/「レイアウト学習」と言った場合 → python3 {skill_dir}/scripts/learn_theme.py <url> --name <name>。ユーザーはWeChat公式アカウント記事のURLとテーマ名を提供する必要があります。抽出完了後、style.yamlthemeフィールドを設定するよう促します。

  • ユーザーが「この記事を学習」/「範文をインポート」+ URL と言った場合 → python3 {skill_dir}/scripts/fetch_article.py <url> -o /tmp/article.md && python3 {skill_dir}/scripts/extract_exemplar.py /tmp/article.md -s <账号名>。公式アカウント記事のURLから本文を抽出し、範文ライブラリにインポートします。3段階のダウングレード(requests → Playwright → 手動HTML)をサポート。

  • ユーザーが「記事データを見たい」と言った場合 → 読取: {skill_dir}/references/effect-review.md

  • ユーザーが「チェックしてほしい」/「自己検査」/「この記事はどう?」と言った場合 → 最近生成された記事(またはユーザーが指定した記事)に対して自己検査を実行し、レポートを生成:

    第1部:生成档案(この記事がどのように生成されたかをユーザーに伝える)

    1. history.yamlの最新レコードを読取、抽出:
      • 使用されたフレームワークタイプ+ライティング人格
      • アクティブ化された次元ランダム化の組み合わせ
      • 素材収集ソース(WebSearchまたはLLMへのダウングレード)
      • コンテンツ強化戦略(角度発見/密度強化/細節アンカリング/リアル体感)
      • 範文スタイルライブラリが命中したかどうか(どの範文を使用、またはシードにフォールバック)
      • playbookで有効なルール数
    2. history.yamlにレコードがない、またはユーザーが外部記事を指定した場合 → このパートをスキップ、「この記事はWeWriteが生成したものではなく、品質チェックのみを行います」と提示

    第2部:品質チェック(改善できる場所をユーザーに伝える)

    1. python3 {skill_dir}/scripts/humanness_score.py {article_path} --json
    2. エージェントはJSON内の各スコアを解釈し、ユーザーが実行できる提案に翻訳します。形式:
      • 各提案を特定の段落または文にロケート(「第3段落の連続4文の長さが類似」)
      • 具体的な修正方法を提供(「第3文を2つの短文に分割することを提案」、「ここに自分の感覚を追加できます」)
      • 影響度でソート、最大5項目
    3. すべての項目スコアが良い場合 → 「この記事の品質は良好です。編集アンカーに個人的なコンテンツを追加すれば、配信できます。」

    出力形式:自然言語レポート、JSONまたはスコアを出力しない(ユーザーは数字を見る必要がありません)

  • ユーザーが「更新」/「WeWrite更新」/「アップグレード」と言った場合 → {skill_dir}git pull origin main を実行、完了後バージョン変化を通知


メインパイプライン(ステップ1~8)

メインパイプライン起動時、進捗追跡用に以下8つのタスクを作成します:

TaskCreate: "ステップ1: 環境 + 設定"
TaskCreate: "ステップ2: 選題"
TaskCreate: "ステップ3: フレームワーク + 素材"
TaskCreate: "ステップ4: ライティング"
TaskCreate: "ステップ5: SEO + 検証"
TaskCreate: "ステップ6: ビジュアルAI"
TaskCreate: "ステップ7: レイアウト + 配信"
TaskCreate: "ステップ8: 収尾"

各ステップ開始時 → TaskUpdateステータス=in_progress。完了 → TaskUpdateステータス=completed。


ステップ1: 環境 + 設定

1.1 環境チェック(静かに通過またはガイド修復):

python3 -c "import markdown, bs4, cssutils, requests, yaml, pygments, PIL" 2>&1
チェック項目通過不通過
config.yaml 存在静かガイド作成、または skip_publish = true を設定
Python依存関係静かpip install -r requirements.txt を提供
wechat.appid + secret静かskip_publish = true を設定
image.api_key または image.providers が少なくとも1つ有効静かskip_image_gen = true を設定
references/exemplars/index.yaml静か提示:「範文ライブラリが空です。公開済みの記事(markdown)があれば、**「範文をインポート」**と言ってスタイルライブラリを構築できます。そうすれば生成記事がより自分らしくなります。なくても問題ありません。」

1.2 バージョンチェック(静かに通過または通知):

cd {skill_dir} && git fetch origin main --quiet 2>/dev/null

ローカル {skill_dir}/VERSION と リモート git show origin/main:VERSION を比較:

  • 同じ → 静かに通過
  • 異なる → ユーザーに通知:「WeWriteに新バージョンがあります(現在X → 最新Y)。「更新」と言えばアップグレードできます。」流程をブロックしません、1.3を継続
  • gitが利用不可(.gitディレクトリなしやfetch失敗)→ 静かにスキップ

1.3 スタイル読取

チェック: {skill_dir}/style.yaml
  • 存在 → nametopicstonevoiceblacklistthemecover_styleauthorcontent_style を抽出
  • 不存在 → 読取: {skill_dir}/references/onboard.md、完了後ステップ1に戻る

ユーザーが直接選題を提供した場合 → ステップ3にスキップ(ただしフレームワーク選択と素材収集は必須、スキップ不可)。


ステップ2: 選題

2.1 ホットスポット抓取

python3 {skill_dir}/scripts/fetch_hotspots.py --limit 30

ダウングレード:スクリプトエラー → WebSearch「本日のトレンド {topics最初の垂類}」

2.2 履歴分析 + SEO

読取: {skill_dir}/history.yaml(不存在の場合はスキップ)
python3 {skill_dir}/scripts/seo_keywords.py --json {キーワード}

履歴分析(統計データがある場合):

  • どの framework タイプの記事の表現が最高か(閲覧数/シェア率)を統計 → フレームワーク推奨時に重み付け
  • どの enhance_strategy タイプの記事の表現が最高か を統計 → 強化戦略選択時に参考
  • 直近7日間で書いたキーワードを減点(重複排除)

ダウングレード:SEOスクリプトエラー → LLM判断;history統計なし → 効果分析をスキップ、重複排除のみ実行

2.3 選題生成

読取: {skill_dir}/references/topic-selection.md

10個の選題を生成、以下を含む:

  • 7~8個のホットスポット選題:2.1のホットスポットに基づき、topic-selection.mdルールで評点
  • 2~3個の常緑選題:ホットスポットに依存せず、ユーザーの topics 領域から長尾コンテンツを生成(チュートリアル/方法論/経験サマリー/ツール推奨)、「常緑」とラベル。content_styleがドライ型/レビュー型のユーザーに適切

各選題には標題、評点、クリック率可能性、SEOフレンドリー度、推奨フレームワークを含む。

  • 自動モード → 最高得点を選択
  • インタラクティブモード → 全部表示、ユーザー選択待ち

ステップ3: フレームワーク + 素材

3.1 フレームワーク選択

読取: {skill_dir}/references/frameworks.md

7つのフレームワーク(痛点/ストーリー/リスト/比較/ホットスポット解読/純粋観点/レビュー)、推奨指数が最高のものを自動選択。

3.2 素材収集 + コンテンツ強化(統合実行、検索結果共有):

読取: {skill_dir}/references/content-enhance.md

3.1で選定したフレームワークタイプに基づき、1回の検索で素材収集とコンテンツ強化を同時に完了:

フレームワーク検索戦略結果から抽出
ホットスポット解読 / 純粋観点"{キーワード} site:mp.weixin.qq.com OR site:36kr.com" + "{キーワード} 観点 OR コメント"実素材(データ/引述)+ 既存記事の主流観点(角度発見用)
痛点 / リスト"{キーワード} チュートリアル OR ツール OR 実操" + "{キーワード} データ レポート"実素材 + 具体的なツール名/ステップ/パラメータ(密度強化用)
ストーリー / レビュー"{人物/事件} インタビュー OR 深掘り OR 細節" + "{キーワード} データ レポート"実素材 + 時間アンカー/数値アンカー/会話アンカー/感覚アンカー(細節アンカリング用)
比較"{方案A} vs {方案B} レビュー OR 体験" + "{方案A OR 方案B} 落とし穴 OR 欠点 site:v2ex.com OR site:zhihu.com"実素材 + 実ユーザー評価とつまずき情報(リアル体感用)

各検索を2ラウンド実施、結果から同時に抽出:

  1. 素材:5~8条の実素材(具名ソース + 具体的なデータ/引述/ケース)。創造禁止
  2. 強化素材:content-enhance.mdの対応戦略要件に基づき抽出(角度/密度要点/細節/ユーザー声)。

両者をフレームワークの大綱に統合し、ステップ4ライティングに渡す。

ダウングレード:WebSearch不可 → LLM訓練データ内で検証可能な公開情報を使用。ただしユーザーに告知:「素材収集がWebSearchを使用できず、エディタアンカーで個人的なコンテンツを追加することを推奨」。密度強化は検索に依存しないため、常に実行。


ステップ4: ライティング

読取: {skill_dir}/references/writing-guide.md
読取: {skill_dir}/playbook.md(存在する場合、confidence分級で実行)
読取: {skill_dir}/history.yaml(直近3篇の dimensions + closing_type フィールド)
読取: {skill_dir}/references/exemplars/index.yaml(存在する場合)

4.1 次元ランダム化

以下の次元プールから2~3個の次元をランダムにアクティブ化し、各記事の表現方法が異なるようにします。history.yamlに直近3篇の dimensions フィールドがある場合、同じ組み合わせを避けます。

次元オプション
叙事視点一人称体験 / 傍観者分析 / 対話体 / 自問自答
タイムライン正順 / 逆順 / 挿入順
類比域スポーツ / 料理 / 軍事 / 恋愛 / ゲーム / 映画 / 建築 / 医学
感情基調克制冷静 / 熱血興奮 / 皮肉吐槽 / 温暖治癒 / 不安警告
リズム短文密集 / 長叙述遅進 / 長短急切交替 / 遅開頭早終了

4.2 ライティング人格をロード

読取: {skill_dir}/personas/{style.yaml の writing_persona フィールド}.yaml
style.yaml に writing_persona フィールドがない場合 → デフォルト midnight-friend

人格ファイルは以下を定義:語気濃度、データ提示方法、感情円弧、段落リズム、不確実性表現テンプレート等。ライティングの強制制約として実行。

優先度:playbook.md(confidence ≥ 5のルール)> persona > 範文スタイル > writing-guide.md。writing-guideはベースライン(基礎ライティング規範)、範文はスタイル示範(文長リズム、感情表現方法)、personaはこの基礎の上でスタイルパラメータを特化(語気濃度、データ提示)、playbookの高置信度ルールはユーザーカスタマイズの最終上書き。playbookのconfidence < 5のルールはソフト参考。

4.3 範文スタイル注入references/exemplars/index.yamlがある場合実行):

index.yamlからcategoryが現在のフレームワークタイプに一致する範文をフィルタリング、top 3を取得。対応する.mdファイルの段落コンテンツを読取。

ライティングプロンプトに注入:

以下はこの公式アカウントのスタイルの実段落示例です。その文長リズム、感情強度と口語化程度を模倣してください:

【開頭スタイル】 {exemplar_1の開頭フック段}

【感情段スタイル】 {exemplar_2の感情ピーク段}

【転折スタイル】 {exemplar_2またはexemplar_3の転折/自素段(あれば)}

【収尾スタイル】 {exemplar_3の収尾段}

Categoryマッピングルール:

フレームワークタイプexemplar category
痛点型tech-opinion
ストーリー型 / レビュー型story-emotional
リスト型 / 比較型list-practical
ホットスポット解読型 / 純粋観点型hot-take
その他general

マッチした範文が3篇に満たない場合、general categoryで補足。

フォールバック(範文ライブラリが空の場合){skill_dir}/references/exemplar-seeds.yaml を読取、各段落タイプから1つをランダム選択してプロンプトに注入。シード段落は人類ライティングの構造パターンのみ示範(文長分散、感情鋭度、自己修正、非総括式収尾)、特定スタイルを含みません。注入時に使用:

以下は人類ライティングの構造パターン示例です。その文長リズムと感情表現方法を模倣してください(具体的なコンテンツやスタイルは模倣しないでください):

【開頭パターン】{seeds.opening_hooks ランダム1個}

【感情段パターン】{seeds.emotional_peaks ランダム1個}

【転折パターン】{seeds.transitions ランダム1個}

【収尾パターン】{seeds.closings ランダム1個}

建库コマンド:python3 {skill_dir}/scripts/extract_exemplar.py article.md

4.4 記事をライティング

  • H1標題(20~28字) + H2構造、1500~2500字
  • 素材 + 強化制約:ステップ3.2の素材と強化素材を各H2段落に分散組込。強化戦略のコア出力(角度/密度要点/細節/ユーザー声)は全文に貫通、1回のデコレーション出現のみではいけません
  • ライティング人格:4.2でロードした人格パラメータに基づいてライティング(データ提示方法、個人声濃度、不確実性表現等)
  • 収尾方法:personaの closing_tendency はあくまで傾向参考のみ。記事コンテンツと感情円弧に基づいて自分で最も自然な収尾方法を判断。history.yamlに直近3篇の closing_type フィールドがある場合、同じ収尾タイプを避ける
  • ライティング規範:writing-guide.mdの基本ルール(禁用词、文長分散、語彙混合等)は初稿段階で有効
  • 2~3個のエディタアンカー:<!-- ✏️ エディタ提案:ここに自分の経歴/見解を追加してください -->
  • オプション容器構文::::dialogue:::timeline:::callout:::quote

{skill_dir}/output/{date}-{slug}.mdに保存

4.5 クイック自検(ライティング完了後すぐ実行、ステップ5再ライティング確率低減):

初稿に対して5項目のクイックスキャンを実施、その場で修復、ステップ5に残さない:

ライティング層面

  1. 禁用词スキャン:writing-guide.md 2.1の禁用词リストをチェック、命中は直接置換
  2. 文長分散:連続3文以上、長さが接近している段落があるか、あれば文を分割するか短文を追加

コンテンツ層面: 3. 開頭フック:最初の3文がサスペンス/衝突/好奇心を生み出したか?平坦な背景紹介なら開頭を再ライティング 4. 強化貫通:強化戦略のコア出力が1段にしか出現していないか?その場合、他のH2で補足 5. 金句チェック:全文に独立してスクリーンショット転送可能な文が少なくとも1つあるか?なければ感情ピーク処に1文補追

LLMが自分で完成、スクリプト呼び出し不要。


ステップ5: SEO + 検証

読取: {skill_dir}/references/seo-rules.md

5.1 SEO:3つの備選標題 + サマリー(≤40字) + 5タグ + キーワード密度最適化

5.2 品質検証(2つの次元、各項逐一チェック):

A. ライティング品質(writing-guide.mdベースルール):

チェック項目標準ルール
文長分散最短と最長文の差 ≥ 30字1.1
語彙温度任意500字 ≥ 3種温度1.2
段落リズム連続2個の類似長度段落なし1.3
感情極性負面感情 ≥ 2処、平坦直叙なし1.4
禁用词命中数 = 02.1
実素材アンカリング各H2 ≥ 1条の実素材、創造なし3.1
具体性各500字 ≥ 2処の具体細節3.2

B. コンテンツ品質(ステップ3.2の強化戦略に基づくチェック):

チェック項目標準適用フレームワーク
強化貫通強化戦略のコア出力(角度/密度/細節/体感)が全文で見える、1段のみ出現しないすべて
開頭フック最初の3文がサスペンス、衝突または好奇心を生み出す(背景舗装ではない)すべて
金句密度独立してスクリーンショット転送可能な文が少なくとも1処すべて
操作密度各H2に実行可能要点(ツール/ステップ/パラメータ)がある痛点/リスト
角度鋭度コア観点が同意または反対を引き起こせる、「両方有理」ではないホットスポット解読/純粋観点
場景感時間/場所/会話など画面細節が少なくとも2処あるストーリー/レビュー
実声実ユーザー評価または体験の引用が少なくとも1処比較

不通過 → 定向修復:不達標の具体文/段落のみ置換、通過部分は動かさない。各ラウンド最多3処修正、修正後すぐ該当項を再チェック。2ラウンド後も不通過 → スキップをマーク、次項続行。

5.3 スクリプト補助検証(5.2逐項チェック補足):

エージェントが5.2チェック過程で同時に総合評価を実行(各H2間の語気差異度、情報密度の高低交替、段落間のリズム変化、全体阅読流暢度)、0~1スコアを産出。

python3 {skill_dir}/scripts/humanness_score.py {article_path} --json --tier3 {agent_tier3_score}

JSON内の composite_score を解読(0=品質高,100=問題多):

  • < 30 → 通過、ステップ6継続
  • 30~50 → param_scores 内の最低得点1~2項を確認、対応する具体文のみ修復(全段落再ライティングではない)、修復後再スコアリング。1ラウンドで十分
  • > 50 → param_scores最低の2~3項を逐項定向修復(各項最相関の1~2処のみ修復)、最多2ラウンド。仍然

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
oaker-io
リポジトリ
oaker-io/wewrite
ライセンス
MIT
最終更新
2026/4/2

Source: https://github.com/oaker-io/wewrite / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: oaker-io · oaker-io/wewrite · ライセンス: MIT