ガイドのまとめ
CHANGELOG.md のエントリからソーシャルメディア向けコンテンツを生成します。デフォルトで8つの出力(4形式 × 2言語)を生成します。
使用タイミング
/releaseを実行した後に、ソーシャルアナウンスを作成する場合- 複数のリリースをまとめるために毎週
- LinkedIn、Twitter/X、ニュースレター、Slack に投稿する前
使用方法
/guide-recap latest # 最新のリリースバージョン
/guide-recap v3.20.5 # 特定のバージョン
/guide-recap week # 今週(月曜日から今日まで)
/guide-recap week 2026-01-27 # 特定の週(月曜日から日曜日まで)
フラグ
| フラグ | 効果 | デフォルト |
|---|---|---|
--interactive | ガイドモード:角度、対象読者、ハイライトを選択 | オフ(自動ドラフト) |
--format=X | 単一フォーマット:linkedin、twitter、newsletter、slack | 全4形式 |
--lang=X | 単一言語:fr、en | 両方(FR + EN) |
--save | 出力を claudedocs/social-posts/ に保存 | 表示のみ |
--force | メンテナンスエントリのみでも生成 | 低スコアはスキップ |
ワークフロー(7ステップ)
ステップ1:入力の解析
$ARGUMENTS を解析してモードを決定します:
| 入力 | モード | ターゲット |
|---|---|---|
latest | 単一バージョン | [Unreleased] の後の最初の ## [X.Y.Z] |
vX.Y.Z または X.Y.Z | 単一バージョン | 正確なバージョンに一致 |
week | 週範囲 | 今週の月曜日 → 今日 |
week YYYY-MM-DD | 週範囲 | その月曜日 → 次の日曜日 |
引数がない場合、または無効な引数の場合は、使用方法を表示して終了します。
ステップ2:CHANGELOG エントリの抽出
プロジェクトルートから CHANGELOG.md を読み取ります。
単一バージョン:
## [{version}]に一致する行を見つける- 次の
## [行まですべてのコンテンツを抽出する ### Added、### Changed、### Fixedのセクションを解析する
週範囲:
- 日付が範囲内にあるすべての
## [X.Y.Z] - YYYY-MM-DDエントリを収集する - 一致するすべてのバージョンからすべてのセクションを解析する
エラー:バージョンが見つからない → 最新の5バージョンをリストし、latest を提案する。
エラー:週にエントリがない → 最後のリリースの日付を表示し、そのバージョンを提案する。
ステップ3:エントリのカテゴリ分類
各トップレベルのエントリ(### の下の1レベルの箇条書き)に対して、カテゴリを割り当てます:
| カテゴリ | 重み | 検出方法 |
|---|---|---|
NEW_CONTENT | 3 | 新しいファイル、新しいセクション、新しい図、新しいクイズ問題 |
GROWTH_METRIC | 2 | 行数の増加、項目数の変更 |
RESEARCH | 1 | リソース評価、外部ソース統合 |
FIX | 1 | ### Fixed の下、修正 |
MAINTENANCE | 0 | README の更新、バッジの同期、ランディングページの同期、カウントの更新 |
詳細な分類ルールについては references/changelog-parsing-rules.md を参照してください。
ステップ4:ユーザー価値への変換
references/content-transformation.md のマッピングを適用します:
- 技術用語 → ユーザーメリット
- 具体的な数値の抽出
- 名前付きソースのクレジット
- 関連エントリのクラスタリング
references/tone-guidelines.md の DO/DON'T チェックリストで検証します。
ステップ4b:インタラクティブモード(--interactive のみ)
--interactive フラグが設定されている場合、ステップ4と5の間に挿入します:
-
スコア付きの候補ハイライトを表示:
ハイライト(スコア順): [14] 4つの新しいASCII図(16 → 20) [NEW_CONTENT] [ 9] 30の新しいクイズ問題(227 → 257) [NEW_CONTENT] [ 6] Docker サンドボックス分離ガイド [NEW_CONTENT] [ 1] README 更新 [MAINTENANCE] -
角度を尋ねる:
- 自動(最高スコア = フック)
- ユーザーが特定のエントリをフックとして選択
- カスタム角度(ユーザーがテーマを指定)
-
対象読者を尋ねる:
devs(技術的な深さ)tech-leads(インパクト重視)general(わかりやすい言葉)all(デフォルト、バランス)
-
プライマリハイライトを尋ねる:
- 自動(トップスコア)
- ユーザーがリストから選択
-
選択を確認し、ステップ5に進む。
ステップ5:スコアリングと選択
各エントリのスコアを計算します:
score = (category_weight * 3)
+ (has_number * 2)
+ (named_source * 1)
+ (new_file * 1)
+ (min(impact_files, 3))
+ (breaking * 2)
スコア順に上位3〜4件のエントリを選択します。最高スコア = フック行。
すべてのスコアが < 3 の場合: 「このバージョンにはソーシャルコンテンツは推奨されません。強制的に生成するには --force を使用してください。」と出力して終了します(--force がない場合)。
ステップ6:コンテンツ生成
要求された各形式(デフォルト:全4形式)と言語(デフォルト:両方)に対して:
assets/から対応するテンプレートを読み取る- スコアリングされ変換されたエントリを使用してテンプレートフィールドを埋める
- tone-guidelines.md の品質チェックリストを適用する
リンク:
| 形式 | リンク先 |
|---|---|
| ランディングサイトURL | |
| GitHub リポジトリURL | |
| ニュースレター | 両方(ランディング + GitHub) |
| Slack | GitHub リポジトリURL |
URL:
- ランディング:
https://florianbruniaux.github.io/Codex-ultimate-guide-landing/ - GitHub:
https://github.com/FlorianBruniaux/Codex-ultimate-guide
ステップ7:出力
各生成された投稿を、形式と言語でラベル付けされたフェンスコードブロックで表示します:
## LinkedIn (FR)
```text
[コンテンツ]
LinkedIn (EN)
[コンテンツ]
Twitter/X (FR)
[コンテンツ]
...
`--save` フラグが設定されている場合:すべての出力を `claudedocs/social-posts/YYYY-MM-DD-vX.Y.Z.md`(バージョン用)または `claudedocs/social-posts/YYYY-MM-DD-week.md`(週用)に書き込みます。`claudedocs/social-posts/` ディレクトリが存在しない場合は作成します。
## エラーハンドリング
| エラー | 応答 |
|-------|--------|
| 引数なし | 使用方法ブロックを表示 |
| 無効な引数 | 例を含む使用方法ブロックを表示 |
| バージョンが見つからない | 最新の5バージョンをリストし、`latest` を提案 |
| 週にエントリがない | 最後のリリースの日付を表示し、バージョンを提案 |
| すべてのエントリが MAINTENANCE(スコア0) | 「ソーシャルコンテンツは推奨されません。上書きするには `--force` を使用してください。」 |
| CHANGELOG.md が見つからない | 「プロジェクトルートに CHANGELOG.md が見つかりません。」 |
## 参考ファイル
- `references/tone-guidelines.md` - DO/DON'T ルール、絵文字予算、言語レジスタ
- `references/changelog-parsing-rules.md` - CHANGELOG 形式、抽出、スコアリングアルゴリズム
- `references/content-transformation.md` - 技術 → ユーザー価値マッピング(30以上)
- `assets/linkedin-template.md` - 約1300文字、フック + 箇条書き + CTA + ハッシュタグ
- `assets/twitter-template.md` - 280文字の単一ツイートまたは2〜3ツイートのスレッド
- `assets/newsletter-template.md` - 約500語、構造化セクション
- `assets/slack-template.md` - コンパクト、絵文字豊富、Slack 書式
- `examples/version-output.md` - v3.20.5 の完全な出力例
- `examples/week-output.md` - 週2026-01-27の完全な出力例
## ヒント
- `/release` の直後に `/guide-recap latest` を実行してソーシャル投稿を準備する
- 最初の数回は `--interactive` を使用してスコアリングを理解する
- 特定の出力のみが必要な場合は `--format=linkedin --lang=fr` を使用する
- `--save` 出力は `claudedocs/` の慣例により `.gitignore` される
- 投稿前に確認してパーソナライズすること(これらはドラフトであり、最終コピーではありません)