ln-912-community-announcer について
GitHub Discussions にプロジェクトのお知らせを作成・公開するスタンドアロンのスキルです。プロジェクトの情報確認、文体選択、草稿の検証を経て、承認後に公開します。
主な機能
- 01リポジトリと告知カテゴリの確認
- 02方針、変更履歴、コミット、変更内容の確認
- 03告知の分類と文体選択
- 04草稿の記述とリンクの検証
- 05明示的な承認後の公開
活用シーン
- 01プロジェクトのリリース告知作成
- 02コミュニティへの破壊的変更の説明
- 03Discussions でのプロジェクト更新共有
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-912-community-announcerインストール後、Claude Code で/ln-912-community-announcerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/announcement_styles.mdcommunity_discussion_formatting.mdcommunity_github_discovery.mdcommunity_strategy_template.mdhumanizer_checklist.md詳細
パス: ファイルパス(
references/、../ln-*)は、このスキルディレクトリからの相対パスです。
ln-912-community-announcer
タイプ: L3 ワーカー(スタンドアロン) カテゴリ: 9XX コミュニティエンゲージメント GitHub Discussions(Announcements カテゴリ)向けに、構成化された告知を作成して公開します。
フェーズ 0:GitHub の確認
必ず読む: references/community_github_discovery.md を読み込みます。
確認プロトコルを実行します。次の情報を抽出します。
- URL と git コマンドで使用する
{owner}/{repo} - GraphQL ミューテーションで使用する
repo.id - 公開先となる
categories["Announcements"]のカテゴリ ID - Announcements カテゴリが存在することを確認します
読み込み方法:対象プロジェクトの docs/community_engagement_strategy.md を確認し、なければ references/community_strategy_template.md を使用します。セクション 2(Announcement Triggers)とセクション 6(Tone Guide)を抽出します。
必ず読む: references/community_discussion_formatting.md を読み込みます。
必ず読む: announcement_styles.md を読み込みます。
必ず読む: references/humanizer_checklist.md を読み込みます。
フェーズ 1:コンテキストの収集
- 戦略のセクション 2 を読み、これが告知に該当することを確認します
CHANGELOG.mdを読み、最新のエントリ(または$ARGUMENTSで日付が指定されている場合は該当するエントリ)を抽出しますREADME.mdを読み、現在のバージョンバッジと WARNING/IMPORTANT の注意書きを確認します- 実行:
git log --oneline -20-- 最近のコミットを確認します $ARGUMENTSにトピックのキーワード(日付以外)が含まれている場合は、告知のテーマとして使用します- 実行:
git diff --name-only(未コミットの変更)またはgit diff --name-only HEAD~1..HEAD(直近のコミット)-- 変更されたファイルの一覧を作成します - 差分に含まれる主要なソースファイルを読みます(最大 5 ファイル。
$ARGUMENTSのトピックとの関連性が高いものを優先します)。- 差分に含まれるプロトコル/ガイドファイル -> 全文を読みます(内容を把握します)
- 差分に含まれる SKILL.md ファイル ->
git diff -- {file}で変更されたセクションのみを読みます - リファレンスファイル -> 大幅に変更されている場合に読みます
- 目的:CHANGELOG に記載されていない変更の「理由」を把握します
フェーズ 2:分類とスタイルの選択
2a. 告知の種類を分類する
| 種類 | トリガー | 絵文字 |
|---|---|---|
| リリース | CHANGELOG に新しいバージョンがある | :rocket: |
| 破壊的変更 | README に WARNING の注意書きがある、または CHANGELOG に「breaking」と記載されている | :warning: |
| 新機能 | CHANGELOG に新機能のエントリがある | :sparkles: |
| アーキテクチャ | 構造的な変更(新しいカテゴリ、プラグインの分割) | :building_construction: |
| コミュニティ | 技術以外の更新(イベント、マイルストーン) | :people_holding_hands: |
2b. スタイルを選択する
announcement_styles.md の Style Selection Matrix を使い、告知の種類に基づいて基本スタイルを選択します。Discussions の直近 3 件の告知を確認し、すべて同じスタイルが使われている場合は、バリエーションを持たせるために別のスタイルを選びます。
任意でスタイルを組み合わせることもできます。あるスタイルのフックと別のスタイルの本文を組み合わせます(announcement_styles.md のスタイルの組み合わせ表を参照)。
フェーズ 3:告知の作成
announcement_styles.md で選択したスタイルのテンプレートを構成の基礎として使用し、GitHub の Markdown 構文には discussion_formatting.md を使用します。
必須要素(すべてのスタイル):
### What's Nextの後に### Contributorsセクションを追加し、該当する場合は @メンションで貢献者に感謝します(個人作業の場合は省略)- フッターを追加します:
*Full changelog: [CHANGELOG.md](https://github.com/{owner}/{repo}/blob/{default_branch}/CHANGELOG.md)* - 破壊的変更の場合は、明確な変更前/変更後を示す移行手順を
> [!IMPORTANT]アラートに含めます - エンゲージメントを促す質問で締めくくります(
announcement_styles.mdの Writing Quality チェックリストに従います)
フェーズ 4:事実確認
ユーザーに提示する前に、草案に含まれる検証可能な主張をすべて確認します。
-
コマンドとコードブロック -- 草案内の各コマンド/スニペットを
README.mdで grep します。コマンドが見つからない場合は、実際のコマンドに置き換えます。インストール/更新コマンドを決して捏造してはいけません。 -
ファイルパスとリンク -- リンク先の各ファイルが存在することを確認します:
ls {path}。リンク切れがあれば削除するか、修正します。 -
数値 -- 記載された件数を実際のデータと照合します:
git diff --name-only | grep -c SKILL.mdまたはls -d ln-*/SKILL.md | wc -l。 -
機能の説明 -- Phase 1 のステップ 7 で確認した主要なソースファイルを読み直し、草案が変更内容を正確に説明していることを確認します。実際にはない機能を作り上げてはいけません。
-
名前 -- 名前がリポジトリ内の実際のディレクトリ名/ファイル名と一致していることを確認します。
-
人間らしさの監査 --
humanizer_checklist.mdの監査手順を実施します。AI らしいパターンが 3 つ以上見つかった場合は、該当箇所を書き直します。
完了条件: 確認項目に不合格があれば、先に草案を修正します。
フェーズ 5:レビューと公開
作成した告知のタイトルと本文をユーザーに提示します。公開する前に、明示的な承認を待ちます。
承認後、ディスカバリーコンテキストを使用して GraphQL 経由で公開します。
gh api graphql -f query='
mutation($title: String!, $body: String!, $repoId: ID!, $catId: ID!) {
createDiscussion(input: {
repositoryId: $repoId,
categoryId: $catId,
title: $title,
body: $body
}) {
discussion { url }
}
}
' -f title="TITLE_HERE" -f body="BODY_HERE" -f repoId="{repo.id}" -f catId="{categories.Announcements}"
ディスカッションの URL をユーザーに知らせます。
注: API ではピン留めできません。告知が重要な場合は、GitHub UI で手動でピン留めするようユーザーに伝えます。
フェーズ 6:クロスポスト(任意)
告知がリリースまたは破壊的変更に関するものであれば、次のことを提案します。
- バージョンタグがある場合は、対応する GitHub Release を作成します:
gh release create vX.Y.Z --notes "See discussion: URL" - 告知によってプロジェクトの対象範囲が変わる場合は、リポジトリの説明を更新します。
完了の定義
- コンテキストを収集した(CHANGELOG、README、git log、主要なソースファイル)
- 告知の種類を分類し、スタイルを選択した(直近 3 回とは異なるもの)
- 選択したスタイルのテンプレートと書式ルールを使って草案を作成した
- 文章の品質チェックリストに合格した(announcement_styles.md)
- 事実確認を完了した(コマンド、パス、数値、説明、名前を検証済み)
- ユーザーが最終稿を承認した
- GraphQL mutation 経由で公開し、URL を報告した
バージョン: 1.0.0 最終更新日: 2026-03-13