jpskill.com
🛠️ 開発・MCP コミュニティ

issue-triage

GitHub Issue 处理协作流程。当用户收到 issue 需要分析和回复时使用。通过"诊断 → 定性 → 决策 → 回复"四步法,从一个 issue 产出准确的根因分析和得体的用户回复,避免误判问题类型或回复不专业。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o issue-triage.zip https://jpskill.com/download/21211.zip && unzip -o issue-triage.zip && rm issue-triage.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21211.zip -OutFile "$d\issue-triage.zip"; Expand-Archive "$d\issue-triage.zip" -DestinationPath $d -Force; ri "$d\issue-triage.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して issue-triage.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → issue-triage フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[スキル名] issue-triage ユーザーが GitHub Issue(バグ報告、質問、機能リクエスト)を受け取った際、AI が問題分析、実施要否の判断、返信文の作成を支援します。AI がプロセス全体を主導し、ユーザーは重要な局面でのみ判断を行います。

核となる原則

  • 診断してから発言する — コードを読み終えるまで結論を出さず、根本原因を特定するまで断定しません。
  • ユーザーに正直である — バグであれば認め、アーキテクチャ上の制限であれば明確に説明し、責任転嫁や過度な期待を抱かせるようなことはしません。
  • コストを定量化する — 「コストが高い」だけでは結論ではありません。変更するファイルの数、関連するモジュール、テスト条件の有無など、何が高いのかを明確に説明します。
  • 代替案を提示する — 実施しないからといって放置するわけではありません。ユーザーに現在の回避策を伝えます。

作業フロー

ステップ 1:Issue 内容の取得

目標: Issue の完全な情報を取得します。

方法:

  1. ユーザーが issue リンクまたはリポジトリのアドレスを提供します。
  2. gh issue view または WebFetch を介して issue の詳細を取得します。
  3. 重要な情報(ユーザー環境、再現手順、期待される動作、実際の動作、ユーザーの推測)を抽出します。

出力: ユーザーに issue の内容を簡潔に要約し、理解に誤りがないことを確認します。

禁止事項: タイトルだけを見て分析を開始すること。Issue の全文を必ず読みます。

ステップ 2:コード診断

目標: コード内で根本原因を特定します。

方法:

  1. Issue の説明からキーワード(機能名、エラーメッセージ、ページ名など)を抽出します。
  2. コード内の関連する経路を特定します。フロントエンドの入り口 → IPC 呼び出し → バックエンド処理 → 低レベルの実装。
  3. 完全な呼び出しチェーンを図示し、各段階のファイルと行番号をマークします。
  4. 根本原因を確認します。コードのどこに問題があるのか、またはコードがユーザーのシナリオをサポートしない理由は何なのか。

出力: ユーザーに以下を表示します。

  • 完全な呼び出しチェーン(ファイル + 行番号)
  • 根本原因の要約(一文)
  • 必要に応じて、主要なコードスニペットを添付します。

禁止事項:

  • コードを読まずに原因を推測すること。
  • 1つのファイルだけを見て結論を出すこと(完全なチェーンを追跡する必要があります)。

ステップ 3:定性判断

目標: この Issue がどのタイプに属するかを判断します。

タイプ 判断基準 対応戦略
Bug 製品設計の範囲内で、動作が期待と異なる 修正をスケジュールする
アーキテクチャ上の制限 ユーザーのシナリオが製品の設計前提を超えている 現状を説明し、拡張する価値があるかを評価する
Feature Request 製品自体に問題はなく、ユーザーが新しい機能を求めている コストと優先度を評価する
使用上の問題 ユーザーの操作方法が間違っているが、製品をより使いやすくできる ガイダンスを返信し、ユーザーエクスペリエンスの最適化を検討する

重要な判断: 「やるべきだが間違っている」(バグ)と「やるつもりがない」(アーキテクチャ上の制限/機能)を区別します。

出力: ユーザーに定性的な結論とその理由を説明し、ユーザーが確認してから次に進みます。

ステップ 4:意思決定(実施するかしないか)

目標: 根本原因と定性判断に基づき、実施するかしないかの提案を行います。

4つの側面を評価する

  1. 変更範囲 — 数行の変更 / 1つのモジュールの変更 / 新しいモジュールの追加
  2. 影響範囲 — 1つのファイルのみの変更 / 複数のファイルの呼び出しチェーンの変更 / リファクタリングが必要
  3. テスト条件 — 再現および検証できる環境があるか(環境がない = 高リスク)
  4. ユーザーの回避コスト — ユーザーが他の方法で解決できるか

意思決定マトリックス

変更範囲 テスト条件あり ユーザーが回避可能 提案
小(数行) あり 直接修正
中(1つのモジュール) あり スケジュールして実施
大(新モジュール/リファクタリング) あり いいえ 評価後、スケジュールして実施
大(新モジュール/リファクタリング) なし はい 要件を記録し、一時的に実施しない
任意 なし はい 回避策を伝え、要件を記録する

出力: ユーザーに提案とその理由を説明します。実施しないと提案する場合は、コストを定量化します(変更するファイルの数、関連するモジュール、テストできない理由)。

ユーザーが決定を確認した後、返信フェーズに進みます。

ステップ 5:返信文の作成

目標: プロフェッショナルで適切かつ情報量の多い Issue 返信文を作成します。

返信の構造(3層)

  1. シナリオの位置付けを説明する — この機能がどのようなシナリオのために設計されたのかを説明し、ユーザーに「なぜ現在サポートされていないのか」を理解してもらいます。
  2. 実際の影響を提示する — ユーザーにとって、この機能がないことの影響が大きいか、代替案があるか。
  3. 今後の計画を説明する — 実施する場合は方向性を示し、実施しない場合はコストと理由を正直に説明します。

口調の原則

  • フィードバックに感謝する — Issue を提出するために時間を費やしたユーザーは尊重されるべきです。
  • 責任転嫁しない — 「使い方が間違っている」とは言わず、「このシナリオはまだカバーしていません」と言います。
  • 具体的な提案をする — 「できません」と言うだけでなく、ユーザーに今どうすべきかを伝えます。
  • コストを定量化する — ユーザーに、やりたくないのではなく、客観的にコストが高いことを理解してもらいます。

返信テンプレート

Hi @{ユーザー名}、フィードバックありがとうございます!

**1. 機能の位置付け**
{この機能がどのようなシナリオのために設計されたのか、なぜ現在ユーザーのシナリオをサポートしていないのか}

**2. あなたへの実際の影響**
{ユーザーが現在回避できるか、どのように回避できるか、コア機能が影響を受けるか}

**3. {ユーザーが期待する機能}について**
{コストの説明 + 今後の計画}

出力: 返信のドラフトを作成し、ユーザーが確認した後で公開します。

禁止事項:

  • ユーザーの確認なしに直接 GitHub に公開すること。
  • 非技術系のユーザーに技術的な専門用語で返信すること。
  • 結論だけを述べ、理由を説明しないこと。

ステップ 6:公開

ユーザーが返信内容を確認した後:

  1. gh issue comment を使用してコメントを投稿します。
  2. 定性判断の結果に基づいてタグを付けます(bug / enhancement / wontfix / question)。
  3. 要件として記録する必要がある場合は、ユーザーに要件プールに追加するかどうかを尋ねます。

プロセス中のコミュニケーション規範

AI 主導のペース

  1. 各ステップ完了後、次のステップへ積極的に進めます。
  2. 重要な結論は、ユーザーが確認してから次に進めます(定性判断、意思決定、返信内容)。
  3. 技術的な詳細は AI が自己完結し、ユーザーには結論のみを表示します。

ユーザーの確認を待つ必要があるノード

ステップ 何を確認するか
ステップ 1 「Issue の内容、私の理解で合っていますか?」
ステップ 3 「この定性判断に同意しますか?」
ステップ 4 「この決定に同意しますか?」
ステップ 5 「返信内容を送信してもよろしいですか?」

ユーザーに尋ねる必要がない事項

事項 直接実行
コードの調査方法 AI が自分で経路を追跡
根本原因の分析方法 AI が自分で判断
コストの定量化方法 AI が自分で評価
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

用户收到了一个 GitHub Issue(bug 报告、疑问、feature request),需要 AI 协助分析问题、判断是否要做、起草回复。AI 全程主导推进,用户只在关键节点做判断。

核心原则

  • 先诊断后开口 — 没看完代码不下结论,没找到根因不定性
  • 对用户诚实 — 是 bug 就认,是架构限制就说清楚,不甩锅也不画饼
  • 量化成本 — "成本高"不是结论,要说清楚高在哪:改几个文件、涉及哪些模块、有没有测试条件
  • 给替代方案 — 不做不等于不管,要告诉用户现在怎么绕过

工作流程

第 1 步:获取 Issue 内容

目标: 拿到 issue 的完整信息。

方法:

  1. 用户提供 issue 链接或仓库地址
  2. 通过 gh issue view 或 WebFetch 获取 issue 详情
  3. 提取关键信息:用户环境、复现步骤、期望行为、实际行为、用户的猜测

输出: 向用户简要转述 issue 内容,确认理解无误。

禁止: 只看标题就开始分析。必须读完 issue 全文。

第 2 步:代码诊断

目标: 在代码中找到根因。

方法:

  1. 从 issue 描述中提取关键词(功能名、错误信息、页面名等)
  2. 在代码中定位相关链路:从前端入口 → IPC 调用 → 后端处理 → 底层实现
  3. 画出完整调用链,标注每个环节的文件和行号
  4. 确认根因:代码哪里出了问题,或者代码为什么不支持用户的场景

输出: 向用户展示:

  • 完整调用链(文件 + 行号)
  • 根因的一句话总结
  • 必要时附关键代码片段

禁止:

  • 没读代码就猜原因
  • 只看一个文件就下结论(要追完整条链路)

第 3 步:定性

目标: 判断这个 issue 属于哪种类型。

类型 判断标准 应对策略
Bug 在产品设计范围内,行为不符合预期 排期修复
架构限制 用户场景超出产品的设计前提 解释现状,评估是否值得扩展
Feature Request 产品本身没问题,用户想要新能力 评估成本和优先级
使用问题 用户操作方式不对,但产品可以做得更友好 回复指引,考虑优化体验

关键判断: 区分"该做但做错了"(bug)和"没打算做"(架构限制/feature)。

输出: 向用户说明定性结论和理由,等用户确认后再往下走。

第 4 步:决策(做还是不做)

目标: 基于根因和定性,给出做/不做的建议。

评估四个维度

  1. 改动范围 — 改几行 / 改一个模块 / 新增一个模块
  2. 影响面 — 只动一个文件 / 要改多个文件的调用链 / 要重构
  3. 测试条件 — 有没有环境能复现和验证(没环境 = 高风险)
  4. 用户绕过成本 — 用户自己能不能用其他方式解决

决策矩阵

改动范围 有测试条件 用户可绕过 建议
小(几行) 直接修
中(一个模块) 排期做
大(新模块/重构) 评估后排期
大(新模块/重构) 没有 记下需求,暂不做
任意 没有 告知绕过方案,需求记下

输出: 向用户说明建议和理由。如果建议不做,要量化成本(改几个文件、涉及哪些模块、为什么没法测)。

等用户确认决策后,再进入回复环节。

第 5 步:起草回复

目标: 写一条专业、得体、有信息量的 issue 回复。

回复结构(三层)

  1. 解释场景定位 — 这个功能是为什么场景设计的,让用户理解"为什么当前不支持"
  2. 给出实际影响 — 对用户来说,没有这个功能影响大不大,有没有替代方案
  3. 说明后续计划 — 如果做,给方向;如果不做,诚实说明成本和原因

语气原则

  • 感谢反馈 — 用户花时间提 issue 值得尊重
  • 不甩锅 — 不说"你用错了",说"这个场景我们还没覆盖到"
  • 给具体建议 — 不只说"不行",要告诉用户现在怎么办
  • 量化成本 — 让用户理解不是不想做,是客观上成本高

回复模板

Hi @{用户名},感谢反馈!

**1. 功能定位**
{这个功能是为什么场景设计的,为什么当前不支持用户的场景}

**2. 对你的实际影响**
{用户现在能不能绕过,怎么绕过,核心功能是否受影响}

**3. 关于{用户期望的能力}**
{成本说明 + 后续计划}

输出: 回复草稿,等用户确认后发布。

禁止:

  • 不经用户确认就直接发布到 GitHub
  • 用技术黑话回复非技术用户
  • 只说结论不解释原因

第 6 步:发布

用户确认回复内容后:

  1. 通过 gh issue comment 发布评论
  2. 根据定性结果打标签(bug / enhancement / wontfix / question)
  3. 如果需要记录为需求,提醒用户是否要加到需求池

过程中的沟通规范

AI 主导的节奏

  1. 每一步完成后主动推进到下一步
  2. 关键结论让用户确认后再往下走(定性、决策、回复内容)
  3. 技术细节 AI 自己搞定,只向用户展示结论

必须等用户确认的节点

步骤 确认什么
第 1 步 "issue 内容我理解的对吗?"
第 3 步 "这个定性你认同吗?"
第 4 步 "这个决策你同意吗?"
第 5 步 "回复内容可以发吗?"

不需要问用户的

事项 直接做
代码怎么查 AI 自己追链路
根因怎么分析 AI 自己判断
成本怎么量化 AI 自己评估