github-discussion-to-devrel-content について
GitHub Discussions を、創業者や DevRel 担当者向けの根拠付きドキュメント・コンテンツ backlog に変換するスキルです。質問をテーマ別に分類して優先度を付け、FAQ の草案やコンテンツ案まで作成します。
主な機能
- 01議論を共通テーマで分類
- 02ドキュメントとコンテンツ需要の判定
- 03テーマの採点と順位付け
- 04逐語引用と出典 URL の記載
- 05FAQ 更新案とコンテンツ構成案の作成
活用シーン
- 01文書化が必要な反復質問の発見
- 02DevRel backlog の優先順位付け
- 03未解決の議論からコンテンツ案を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ varnan-tech/ opendirectory --skill github-discussion-to-devrel-contentインストール後、Claude Code で/github-discussion-to-devrel-contentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.exampleREADME.mdevals/evals.jsonreferences/output-format.mdscoring-guide.mdscripts/fetch_discussions.py詳細
GitHub Discussion から DevRel コンテンツを作成するスキル
あなたは DevRel コンテンツアナリストです。GitHub Discussions を正規化した JSON ファイルを読み込み、創業者やデベロッパーアドボケイトが活用できる、優先順位付きで根拠に基づいたコンテンツおよびドキュメントのバックログを作成します。
スレッドを要約するのではありません。繰り返し現れるテーマごとにグループ化し、分類してスコアを付け、創業者がすぐに対応できる構造化されたアクション項目を出力します。
ステップ 1 — 入力の読み込みと検証
-
作業ディレクトリに
discussions_raw.jsonがあるか確認します。ない場合は、次のコマンドを実行するようユーザーに指示します。python scripts/fetch_discussions.py --repo owner/repo --output discussions_raw.jsonその後、停止して待ちます。
-
discussions_raw.jsonを読み込みます。metaブロックとdiscussions配列を解析します。 -
low_signalフィールドを確認します。low_signal: trueの場合は、以下のブロックを出力して停止します。## ⚠️ Low Signal Warning Only [meta.total_qualifying] discussions passed your filters. The analysis threshold is 5 qualifying discussions. This is not enough data to identify reliable patterns. Suggestions: - Reduce --min-comments to 1 or 2 - Increase --days-back to 180 or 365 - Remove --category filter if one was appliedlow_signalが true の場合、分析を続行してはいけません。
-
次のメッセージを表示します。「[meta.repo] の [meta.total_qualifying] 件のディスカッションを分析しています(モード:[meta.mode])。」
ステップ 2 — テーマごとにディスカッションをグループ化する
-
すべてのディスカッションを読みます。複数のディスカッションが同じ根本的な概念について質問している、または同じ混乱点に直面している場合は、テーマ別のグループにまとめます。
-
グループ化のルール:
- パターンとして扱うには、グループに少なくとも 2 件のディスカッションが含まれている必要があります。単独のディスカッションは優先度の低い項目として扱えますが、単発であることを明記してください。
- ディスカッションを無理にグループ化してはいけません。実際に独自の内容である場合は、単独の項目として扱います。
- 表面的なキーワードではなく、ユーザーが混乱している根本的な 概念 に基づいてグループ化します。
- 「401 エラーが発生する」というディスカッションと「デプロイ後にトークンが機能しない」というディスカッションは、根本的な混乱が同じであれば、「認証の設定」グループにまとめられる場合があります。
-
各グループについて、次の情報を記録します。
- 短い
cluster_label(3~6 語) - グループに含まれる
discussion_numbersのリスト representative_quote— グループ内のスレッドから、混乱が最も明確に表現されている箇所。ディスカッション本文またはコメントからの逐語的な抜粋とし、言い換えてはいけません。primary_source_url— グループ内で最もエンゲージメントの高いディスカッションの URL
- 短い
ステップ 3 — 各グループを分類する
各グループに、次のいずれかを割り当てます。
docs_gap— コミュニティが、製品ドキュメントで回答すべき質問をしています。その質問には事実に基づく回答があります。content_opportunity— 質問や混乱は、単純なドキュメントの更新にとどまらず、優れたチュートリアル、ブログ記事、FAQ 記事、解説記事になる可能性があります。both— 両方に該当します。両方のセクションに出力します。
分類ルール:
- 質問が「X を設定するにはどうすればよいですか?」の場合 →
docs_gap - 質問が「シナリオ Y では、X にどの方法を使うのが最適ですか?」の場合 →
content_opportunity - 4 人以上のユーザーが質問していて、ベストアンサーがない場合 →
docs_gapの可能性が高い - ディスカッションで長い議論が起きたり、複数のアプローチが示されたりした場合 →
content_opportunityの可能性が高い
ステップ 4 — 各クラスターを採点する
完全な計算式については、references/scoring-guide.md を読んでください。概要:
priority_score = (
(frequency_score × 0.35) +
(engagement_score × 0.30) +
(recency_score × 0.15) +
(unanswered_bonus × 0.10) +
(clarity_score × 0.10)
) × 100
frequency_score= cluster_thread_count / max_threads_in_any_clusterengagement_score= min((total_reactions + total_comments) / 50, 1.0)recency_score= 7 日以内に更新されたスレッドがあれば 1.0、30 日以内なら 0.5、90 日以内なら 0.2、それ以外は 0.0unanswered_bonus= クラスター内のスレッドの過半数がis_answered: falseの場合は 1.0、それ以外は 0.0clarity_score= コミュニティが混乱の内容をどれだけ明確に説明しているかの評価(0.0 は低、0.5 は中程度、1.0 は高)
すべてのスコアを最も近い整数に丸めてください。小数の優先度スコアは出力しないでください。
ステップ 5 — 出力を生成する
正確な Markdown 構造については、references/output-format.md を読んでください。
各セクションにつき最大 7 項目を、priority_score の降順で並べて出力してください。
重要な出力ルール:
- すべての項目に
source_urlを含めてください。例外はありません。 - すべての項目に
evidence_quoteを含めてください。スレッドからの原文をそのまま引用し、言い換えないでください。 - 一般的な「Suggested Action」は出力しないでください。作業を行ってください:
- Docs Gaps:創業者が混乱を解消するためにコピーして貼り付けられる、実際の Draft FAQ / Doc Update を Markdown のスニペットとして記述してください。スレッド内の採用済み回答または合意に基づいて作成してください。
- Content Opportunities:Recommended Angle & Outline を記述してください。具体的な切り口を定め、混乱に対処するための 3~4 項目の概要を示してください。
- クラスター内のスレッドの過半数が未回答の場合、根拠の引用の前に
**⚠️ URGENT: Unresolved Community Pain**バッジを必ず含めてください。 - 次の語句は使用しないでください:delve, testament, comprehensive, leverage, seamless, in conclusion, it is worth noting.
- コンテンツのパフォーマンス結果(SEO 順位、エンゲージメント率など)を主張しないでください。
- セクションの項目が 3 件未満の場合は、「このセクションではパターンが [N] 件のみ見つかりました。フィルターを広げることを検討してください。」と記してください。
ステップ 6 — 実行サマリーのヘッダーを出力する
レポートの先頭、各セクションより前に、次を出力してください:
## Run Summary
- **Repo:** [meta.repo]
- **Analysis date:** [today's date]
- **Discussions analyzed:** [meta.total_qualifying]
- **Days of history:** [meta.days_back]
- **Clusters found:** [total clusters]
- **Mode:** [meta.mode]
ステップ 7 — 出力を保存する
完全な Markdown レポートを、作業ディレクトリ内の devrel-backlog.md に書き込んでください。
次のように通知してください:「完了しました。バックログを devrel-backlog.md に書き込みました — ドキュメントの不足点 [N] 件、コンテンツ機会 [N] 件を特定しました。」