ln-914-community-responder について
未回答の GitHub Discussions と Issues を分析し、リポジトリを検索して、確認済みの返信案を作成する独立したスキルです。公開前にユーザーが確認でき、単件と最大10件の一括処理に対応します。
主な機能
- 01単件・一括処理
- 02リポジトリから回答を検索
- 03返信スタイルの分類
- 04内容とリンクの確認
- 05公開前の承認を必須化
活用シーン
- 01未回答のGitHubの質問への返信
- 02最大10件の未回答項目の確認
- 03関連するコードやドキュメントの検索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-914-community-responderインストール後、Claude Code で/ln-914-community-responderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/community_discussion_formatting.mdcommunity_github_discovery.mdcommunity_strategy_template.mdhumanizer_checklist.mdresponse_styles.md詳細
パス: ファイルパス(
references/、../ln-*)は、このスキルディレクトリからの相対パスです。
ln-914-community-responder
タイプ: L3 ワーカー(スタンドアロン) カテゴリ: 9XX コミュニティエンゲージメント 質問を分析し、コードベースを検索して回答を見つけ、役立つ返信を作成することで、未回答の GitHub Discussions と Issues に対応します。単一アイテムモードと一括モードに対応しています。
概要
| 項目 | 詳細 |
|---|---|
| 入力 | $ARGUMENTS:ディスカッション/Issue 番号(#42)、batch(未回答の P1 全件)、または空(対話形式) |
| 出力 | GitHub に投稿された返信コメント |
| パターン | 質問を読む → コードベースを検索 → 返信を作成 → 事実確認 → 公開 |
フェーズ 0:GitHub の調査
必須の読み込み: references/community_github_discovery.md を読み込みます。
調査プロトコルを実行します。以下を抽出します。
- URL と API 呼び出しに使用する
{owner}/{repo} - GraphQL ミューテーションに使用する
repo.id maintainerのログイン名(認証済みユーザー)- ディスカッションのカテゴリ ID
戦略の読み込み:対象プロジェクトの docs/community_engagement_strategy.md を確認し、なければ references/community_strategy_template.md を使用します。セクション 5(エンゲージメント指標)とセクション 6(トーンガイド)を抽出します。
必須の読み込み: references/community_discussion_formatting.md を読み込みます。
必須の読み込み: response_styles.md を読み込みます。
必須の読み込み: references/humanizer_checklist.md を読み込みます。
フェーズ 1:アイテムの読み込み
単一アイテムモード
$ARGUMENTS に番号(例:42、#42)が含まれている場合:
# For discussions
gh api graphql -f query='query($owner: String!, $name: String!) {
repository(owner: $owner, name: $name) {
discussion(number: {N}) {
id number title body
category { name }
author { login }
createdAt
answerChosenAt
comments(first: 20) {
totalCount
nodes { author { login } body createdAt }
}
}
}
}' -f owner="{owner}" -f name="{repo}"
# For issues (if discussion not found)
gh issue view {N} --repo {owner}/{repo} --json number,title,body,author,createdAt,comments,labels
一括モード
$ARGUMENTS が batch の場合:
- GraphQL 経由で最近のディスカッションと Issue を取得します(過去 30 日間、オープン、作成日時の降順でソート)。
- P1 アイテムに絞り込みます:投稿者がメンテナーではなく、メンテナーからのコメントが 0 件。
- 各アイテムの完全なコンテキストを取得します(一括処理あたり最大 10 件)。
対話モード
$ARGUMENTS が空の場合、最近の未回答アイテムを一覧表示し、どれに返信するかユーザーに尋ねます。
フェーズ 2:コンテキストの分析
各アイテムについて:
2a. 質問を理解する
- ディスカッション/Issue の本文を読み、中心となる質問や問題を特定します。
- 既存のコメントを読み、部分的に回答済みか、追加のやり取りによって範囲が変わっているかを確認します。
- アイテムの種類を判定します:Q&A の質問、バグ報告、機能リクエスト、設定に関するヘルプ、一般的なフィードバック。
2b. コードベースで回答を検索する
質問の種類に応じて、関連情報を検索します。
| 質問の種類 | 検索方法 |
|---|---|
| 「どうすれば…」 | SKILL.md ファイル、README.md、docs/ 内でキーワードを Grep します。 |
| バグ報告 | 言及された関数/ファイルを Grep し、最近の修正がないか git log を確認します。 |
| 設定 | .hex-skills/environment_state.json、CLAUDE.md、関連する SKILL.md を読みます。 |
| 機能リクエスト | 機能がすでに存在するか確認し、関連するパターンを Grep します。 |
| インストール | README.md のインストールセクションと plugin.json を読みます。 |
FOR each item:
1. Extract keywords from question (function names, skill names, error messages)
2. Grep codebase for keywords (max 5 searches)
3. Read relevant files (max 3 files, prioritize SKILL.md and docs/)
4. Check git log for recent changes related to the topic
5. If answer found → proceed to Phase 3
6. If not found → mark as "needs-manual" and suggest the user respond directly
2c. 初回投稿者を検出する
gh api graphql -f query='query($owner: String!, $name: String!) {
repository(owner: $owner, name: $name) {
discussions(first: 100) {
nodes { author { login } }
}
}
}' -f owner="{owner}" -f name="{repo}"
投稿者が作成したディスカッションの数を数えます。過去の投稿が 0 件(今回が初めて)の場合は、ウェルカムスタイルの対象としてフラグを付けます。
フェーズ 3:返信の種類を分類する
必須の読み込み: response_styles.md を読み込み、分類マトリックスを使用します。
| アイテムの種類 | 返信スタイル |
|---|---|
| 回答が見つかった Q&A の質問 | 技術的な回答 |
| バグ報告 | バグの確認 |
| 機能リクエスト/アイデア | 機能リクエストの確認 |
| ほかの場所ですでに回答済みの質問 | 誘導 |
| 初回投稿者(種類を問わない) | ウェルカム + 適切な内容スタイル |
| 進捗報告が必要な古いアイテム | 状況の更新 |
| コードベースで回答が見つからない | needs-manual とマークし、文章の作成をスキップ |
フェーズ 4:返信の作成
response_styles.md から選択したスタイルのテンプレートを使用します。
必須要素(すべてのスタイル)
- 投稿者に感謝する — 可能であれば名前を挙げ、貢献に謝意を伝えます
- 質問に回答する — 直接的かつ明確に答え、ソースコードやドキュメントへのリンクを添えます
- 追加の質問を歓迎する — 「参考になりましたらお知らせください」などの一言を添えます
- 専門用語は説明を添える — 説明なしに専門用語を使わないでください
- コードへのリンクを含める — リポジトリ内の関連ファイルへのリンクを少なくとも1つ含めます
バッチモードでの作成
バッチモードでは、すべての回答を先に作成し、公開する前にすべてをユーザーに提示して確認してもらいます。
フェーズ5:事実確認
ユーザーに提示する前に、すべての主張を確認します。
-
ファイルパスとリンク — リンク先の各ファイルが存在することを確認します:
ls {path} -
コード参照 — 言及した関数やクラスが存在することを確認します:
grep -r "{name}" -
機能の説明 — ソースファイルを再確認し、説明が正確であることを確認します
-
インストール/使用コマンド —
README.mdに照らして確認します -
Humanizer 監査 —
humanizer_checklist.mdに記載された監査手順を実行します。AI らしいパターンが3つ以上見つかった場合は、該当箇所を書き直します。
ゲート: 確認項目に不備がある場合は、先に回答を修正してください。
フェーズ6:レビューと公開
単一アイテムモード
作成した回答をユーザーに提示します。公開する前に、明示的な承認を待ってください。
バッチモード
すべての回答を次の要約テーブルにまとめて提示します。
### Batch Responses — {N} items
| # | Type | Title | Style | Status |
|---|------|-------|-------|--------|
| {number} | {Discussion/Issue} | {title} | {Technical/Bug/Welcome/...} | Ready |
| {number} | ... | ... | ... | needs-manual |
続けて、各回答の本文を表示します。ユーザーは、すべてを承認する、一部を選んで承認する、または個別の回答を編集することができます。
ディスカッションコメントを公開する
gh api graphql -f query='
mutation($discussionId: ID!, $body: String!) {
addDiscussionComment(input: {
discussionId: $discussionId,
body: $body
}) {
comment { url }
}
}
' -f discussionId="{discussion.id}" -f body="{response body}"
Issue コメントを公開する
gh issue comment {number} --repo {owner}/{repo} --body "{response body}"
コメントの URL をユーザーに報告します。
ルール
- 回答を公開する前に、必ずユーザーの承認を得てください
- ディスカッションや Issue を閉じないでください — 回答のみを行います
- 回答済みとしてマークしないでください — Q&A ディスカッションでは、投稿者に任せます
- バッチの上限: 1バッチあたり最大10件(コンテキストの過負荷を防ぐため)
- needs-manual アイテム: GitHub URL と理由を添えてユーザーに報告し、回答は試みないでください
- トーン: strategy の Section 6 に従い、敬意を払い、役立つ情報を提供し、コードへのリンクを含めます
完了の定義
- アイテムを読み込んだ(単一、バッチ、または対話形式で選択)
- 質問の背景を分析し、回答を求めてコードベースを検索した
- response_styles.md に従って回答の種類を分類した
- 初めて投稿したユーザーを確認し、歓迎した
- 関連するコードやドキュメントへのリンクを含む回答を作成した
- 事実確認を行った(ファイルパス、コード参照、コマンドを確認済み)
- ユーザーが回答を承認した
- GraphQL/CLI を使って公開し、コメントの URL を報告した
- needs-manual アイテムを URL とともにユーザーに報告した
バージョン: 1.0.0 最終更新日: 2026-03-14