# X Post Writing

> X（旧Twitter）のFor Youフィードアルゴリズム（xai-org/x-algorithm）に基づき、ポスト本文・スレッド・引用リポスト用の文案を作成・推敲する。X投稿、ツイート、ポスト文案、拡散、For You向け、x-algorithm、エンゲージメント最適化の依頼時に使用する。

- Skill: `redamoon/x-post-writing` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add redamoon/x-post-writing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/redamoon/x-post-writing/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: redamoon (https://skillmd.com/u/redamoon)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/redamoon/x-post-writing

---


# X ポスト文案作成（x-algorithm 準拠）

## When to Use

- X 向けのポスト・スレッド・引用リポストの文案を書く・推敲するとき
- ブログ記事やメモから X 用の要約投稿を作るとき
- 「For You に載りやすい」「アルゴリズムを意識した」投稿文案が欲しいとき

ポストの設計（構成、フック、CTA）は本スキルを優先する。語彙は `japanese-prose-revision` の「LLM っぽい表現の禁止」を参照し、空虚な形容（「不可欠」「核心的」）と空虚な動詞（「深掘りする」「言語化する」）を避ける。ただし文字数制約、二人称の呼びかけ、問いかけによる reply 誘導は X の要件なので、基本規範に優先する。

## 前提（アルゴリズムの要点）

[xai-org/x-algorithm](https://github.com/xai-org/x-algorithm)（2026-08-13 公開、重みは `home-mixer/params/param.rs`、最終同期 2026-08-12）によると、For You は次の流れで決まる。

1. **候補取得**: フォロー中（Thunder）＋ ML 類似検索（Phoenix Retrieval）＋ SimClusters
2. **スコアリング**: Phoenix が各アクション確率を予測し、公開された重みで加重和
3. **最終スコア**: `Final Score = Σ (weight × P(action))` のあと Author Diversity・OON 割引・新規著者ブースト
4. **フィルタ**: 48時間超・重複・ブロック/ミュート・visibility-filtering（スパム/ポリシー等）

**設計の核**: いいねやメディアを開かせるだけでは弱い。会話・持ち出し共有・フォローにつながる投稿を優先する。キーワード詰め込みより「読者が実際に反応する内容」。

詳細な重み表は [reference.md](reference.md) を参照。

## ワークフロー

### Step 1: 入力を確認

ユーザーから以下を確認（不足なら質問する）:

| 項目 | 例 |
|------|-----|
| 目的 | 記事告知 / 意見表明 / 議論開始 / 実績共有 |
| 素材 | ブログ URL、メモ、箇条書き、なし |
| 形式 | 単発 / スレッド / 引用リポスト |
| トーン | カジュアル / 専門的 / 挑発的（控えめ） |
| 文字数 | 280字以内 / 長文スレッド |

### Step 2: スコアリング観点で設計

公開デフォルト重み（大きい順）で、**深い行動**を同時に狙う。いいね量産は主目標にしない。

| 優先 | アクション | 重み | 文案での狙い方 |
|------|-----------|------|----------------|
| 最優先 | share via copy link | 20.0 | X の外へ持ち出したくなる実用性・結論・保存価値 |
| 最優先 | 相互フォローからの reply | 5.0+15.0 | 既存関係者が返信したくなる問い・余白。コミュニティ内の会話 |
| 高 | reply / quote / DM share | 各 5.0 | 質問・二択・引用しやすい1文・特定の誰かに送りたい情報 |
| 高 | follow_author | 4.0 | 「この人を今後も見たい」専門性・一貫したテーマ |
| 中 | share | 2.0 | リポストより「共有」したくなる実用性 |
| 低 | retweet（リポスト） | 1.0 | 拡散単体は reply/quote より弱い |
| 低 | favorite | 0.5 | 共感は副産物。主目標にしない |
| 低 | click / open_link | 0.4 / 0.2 | URL は減点ではない。本文だけで価値が伝わるように書く |
| ほぼ無視 | photo_expand / video_open / VQV | 0.05 | 画像・動画を開かせるだけでは弱い |
| ゼロ | profile_click / dwell イベント | 0.0 | プロフィールクリックや「止まった」だけでは加点されない。滞在は `ContDwellTimeWeight` 0.004 のみ微加点 |

**避ける（負のアクション。正の重みを簡単に打ち消す）**:

| アクション | 重み | 文案での意味 |
|-----------|------|-------------|
| report | −234.0 | 通報されうる煽り・規約際どい表現は致命的 |
| mute_author | −58.8 | ブロックより大きい。しつこい・不快な連投を避ける |
| not_interested | −43.2 | 釣り・誇大・無関係なベイト。数回のいいねでは相殺できない |
| block_author | −31.2 | 攻撃・スパム感 |
| not_dwelled | −0.02 | スクロール通過。1人通過では致命傷ではない |

炎上で reply が増えても、興味なし・ミュート・ブロック・報告が同時に起きるとネットでは不利。議論は余地を残しつつ、拒否行動を誘発しない。

### Step 3: 文案を書く

#### 単発ポストの型

```
[フック: 1行で止める]
[本体: 具体例・数字・経験]
[CTA: 質問 or 次のアクション]
```

#### スレッドの型

```
1/ 結論またはフック（単独で repost/quote できる1文）
2/ 背景・問題
3/ 具体例 or 手順
4/ 学び・反論余地
5/ まとめ + 質問（reply 誘導）
```

#### 記事告知の型

```
[読者の悩み] → [記事で得られること] → [URL]
※ URL は減点ではない（open_link は +0.2）。末尾に置き、本文だけで quote / reply / 持ち出し共有の価値が伝わるように書く
```

### Step 4: チェックリスト

出力前に確認:

- [ ] 最初の1〜2行だけで意味が通るか（タイムライン流し読み想定）
- [ ] reply または quote のフックがあるか（相互フォローが返したくなる余白）
- [ ] 「誰かに送りたい」「リンクをコピーして外へ持ち出したくなる」価値があるか
- [ ] この投稿をきっかけにフォローしたくなる専門性・一貫性があるか
- [ ] いいね集め・滞在稼ぎ・画像クリックだけが主目的になっていないか
- [ ] スパム・誇大・釣り・通報されうる表現がないか（visibility-filtering / 負の重み）
- [ ] 280字制限（単発の場合）を超えていないか
- [ ] ハッシュタグは0〜2個（本文の自然さを優先）
- [ ] 同一テーマの連投前提なら、各ポストが独立した価値を持つか
- [ ] メディア添付を推奨する場合、会話・共有・フォローにつながる理由を添えたか

### Step 5: チャットで草案を提示

ユーザー確認・修正を経て確定稿に近づける。チャット上の形式:

```markdown
## 推奨案（メイン）
[文案]

## 代替案
[文案]

## 添付メディア案（任意）
- 画像/動画の内容提案

## 設計メモ
- 狙うアクション: reply, quote, share_via_copy_link, follow_author, ...
- 根拠: （例）冒頭を quote 向けに独立させた。相互フォローが返せる問いを末尾に置いた
```

### Step 6: 成果物ファイルを出力（必須）

文案が確定したら（またはユーザーが「ファイルに保存して」と依頼したら）、**必ず Markdown ファイルに書き出す**。チャットへの表示だけで終わらせない。

#### 保存先の確認（必須・都度）

**デフォルトの保存先は設けない。** ファイルを書き出す前に、毎回ユーザーに保存先を確認する。

1. 次のように質問する: **「どこに保存しますか？保存先のディレクトリまたはファイルパスを指定してください。」**
2. ユーザーがパスを返すまで、ファイルの作成・書き込みを開始しない
3. **ディレクトリのみ**指定された場合: 下記の命名規則でファイル名を提案し、保存してよいか確認してから作成する
4. **ファイルパスまで**指定された場合: そのパスをそのまま使う。既存ファイルがあるときは、上書きか別名かを確認する
5. 同一セッションで複数回保存するときも、毎回パスを確認する（「前回と同じ場所でよいですか？」と聞いてもよいが、無言では前回のパスを使わない）

#### ファイル命名

```
x_{YYYYMMDD}_{テーマ}_{campaign}[_{形式}].md
```

| 部分 | 例 | ルール |
|------|-----|--------|
| `YYYYMMDD` | `20260606` | 投稿予定日または作成日 |
| `テーマ` | `エンジニアリング戦略` | 20字以内・記事タイトルから短縮 |
| `campaign` | `1日目` | 連投キャンペーン時のみ。なければ省略 |
| `形式` | `スレッド` / `単発` | 省略可 |

#### frontmatter

[templates/x_post.md](templates/x_post.md) に従う。

| フィールド | 必須 | 値 |
|-----------|------|-----|
| `title` | ✅ | 人間が読むタイトル |
| `type` | ✅ | `x-post` 固定 |
| `format` | ✅ | `single` / `thread` / `quote` |
| `status` | ✅ | `draft` / `ready` / `posted` |
| `source` | 推奨 | 元記事・素材のファイルパス |
| `source_url` | 任意 | note / はてな等の公開 URL |
| `campaign_day` | 任意 | 連投の何日目か（数値） |
| `scheduled_date` | 任意 | `YYYY-MM-DD` |
| `hashtags` | 任意 | YAML 配列 |
| `target_actions` | 任意 | `reply`, `quote` 等 |
| `posted_at` | 任意 | 投稿後に記入 |

#### 本文構成

ファイル内は次の順序で書く。

1. **`## コピペ用（確定稿）`** — X にそのまま貼れる本文のみ（設計メモを混ぜない）
2. **`## 文字数`** — 単発は280字チェック表。スレッドは各ポストの文字数表
3. **`## 設計メモ`** — 狙うアクション・切り口・根拠
4. **`## 添付メディア案`** — 任意
5. **`## 代替案（未使用）`** — チャットで出したが採用しなかった案
6. **`## 投稿後メモ`** — 空欄で残す（投稿後にユーザーが記入）

#### 更新 vs 新規

| 状況 | 操作 |
|------|------|
| 新規キャンペーン | 新ファイル作成 |
| 同一キャンペーンの別日 | 別ファイル作成（`2日目` 等） |
| 既存文案の推敲 | 同一ファイルを上書き更新。`status` は `draft` のまま |
| 投稿完了 | `status: posted`、`posted_at` を記入 |

#### 完了報告

ファイル保存後、チャットで次を返す。

```markdown
## 保存しました

- ファイル: `{ユーザーが指定したパス}`
- 形式: スレッド（6ポスト）
- status: draft

### 次のアクション
- [ ] 文案を X にコピペ
- [ ] 投稿後 `status: posted` に更新
```

## 執筆ルール

### やること

1. **1ポスト1メッセージ** — 情報を詰め込みすぎない
2. **会話を開始する** — reply 5.0。相互フォローからの返信はさらに +15.0。問い・余白・返したくなる具体を置く
3. **持ち出したくなる価値** — copy link 20.0、DM 5.0、share 2.0。誰かに送りたくなる結論・手順・数字
4. **引用可能な1文** — quote 5.0 はリポスト 1.0 より強い。punch line を独立させる
5. **フォローしたくなる一貫性** — follow_author 4.0。プロフィールクリック（0.0）ではなく「今後も見たい」と思わせる
6. **具体 > 抽象** — 数字・固有名詞・失敗談。単純な滞在イベント（dwell 0.0）目的の引き伸ばしはしない
7. **テーマの一貫性** — Phoenix Retrieval / SimClusters は履歴と類似検索。ニッチを維持すると OON に届きやすい（OON は 0.75 倍の割引あり）
8. **鮮度** — 48時間超は Pre-Scoring で落ちやすい。タイムリーな話題・今週の学び

### やらないこと

1. **いいね至上主義** — favorite は 0.5。明示的な「いいねください」も不可
2. **炎上狙い** — reply が増えても mute/block/report が同時に起きると大負けする
3. **URL を避ける迷信** — open_link は +0.2。減点ではない。ただしリンクだけ貼って本文が空なのは弱い
4. **メディアだけで勝とうとする** — 画像拡大・動画再生は 0.05。添付は会話・共有の補助
5. **キーワード羅列** — 手作り特徴量は廃止されている
6. **同内容の使い回し** — Dedup / Author Diversity（同一著者の2本目以降は減衰）
7. **釣り・ミスリード** — not_interested −43.2 を上げる
8. **スパム的連投** — 質より量は逆効果。通報・ミュートを誘う

## ブログ連携

ユーザーが指定したブログ記事や長文メモから X 文案を作る場合:

1. 記事の h2/h3 から **独立した切り口** を3つ抽出
2. 各切り口で別ポスト案を出す（Author Diversity 対策）
3. 長文記事はスレッド化。1ツイート目に記事の結論を置く
4. 保存時は Step 6 のとおり、都度保存先パスを確認する

## 追加リソース

- アルゴリズム詳細: [reference.md](reference.md)
- 文案例: [examples.md](examples.md)
- 成果物テンプレート: [templates/x_post.md](templates/x_post.md)

