mcpField
J
jira-ticket-prioritizer

jira-ticket-prioritizer

github.com/delexw開発243 回インストール31 週間前に更新
リポジトリ

jira-ticket-prioritizer について

Jira チケットを分析し、依存関係を考慮した優先順位付きの実行レイヤーを作成するスキルです。開発作業の計画や、実装前のチケット整理に使えます。

主な機能

  1. 01チケットキーまたは JQL の解析
  2. 02チケット状態の取得と分類
  3. 03依存関係と循環の分析
  4. 04チケット範囲の重複検出
  5. 05スコア付けとレイヤー分け

活用シーン

  1. 01Jira バックログの実装順序を計画
  2. 02未完了の依存関係によるブロックを特定
  3. 03実装前に関連作業をグループ化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/delexw/claude-code-misc --skill jira-ticket-prioritizer

インストール後、Claude Code で/jira-ticket-prioritizerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
dependency-analysis.md
output-format.md
priority-weights.md
redundancy-analysis.md
repo-assignment.md
scripts/
build-dependency-graph.js

詳細

JIRA チケット優先順位付け

JIRA チケットのセットを分析し、依存関係、優先度、グループ分けに基づいて最適な実行順序を決定します。単独で使用することも、implement/forge の前段階として使用することもできる、グループ化されたレイヤーを生成します。

入力

生の引数:$ARGUMENTS

引数から次の情報を推測します:

  • TICKET_INPUT:カンマ区切りのチケットキー、または JQL クエリ(=、AND、OR の有無で判定)
  • EXTRA_CONTEXT:(任意)優先順位付けに関する追加コンテキスト

システム要件

  • jira CLI がインストールされ、設定済みであること(https://github.com/ankitpokhrel/jira-cli)
  • 有効な Jira API トークンが環境変数 JIRA_API_TOKEN に設定されていること。重要: この変数を確認する際は、未設定と判断する前に少なくとも 2 回確認してください。値を絶対に公開しないでください — 存在確認のみを行います。

実行

ステップ 1 — 入力を解析する
  • TICKET_INPUT に =、AND、または OR が含まれているか(大文字と小文字を区別せず)確認し、JQL かどうかを判定します
  • JQL が検出された場合:jira issue list --jql "TICKET_INPUT" --plain --columns key,status --no-headers を実行し、チケットキーとステータスを取得します
  • カンマ区切りの場合:, で分割し、前後の空白を削除します
  • 各キーが [A-Z]+-\d+ に一致することを検証します
  • 有効なチケットが 2 件未満の場合は、単一のチケットを報告して終了します
ステップ 2 — すべてのチケットを分類して取得する
  • 一時ディレクトリを作成します:mkdir -p .jira-ticket-prioritizer-tmp/tickets
  • 各チケットキーについて、jira CLI で取得します:
    jira issue view {KEY} --raw > .jira-ticket-prioritizer-tmp/tickets/{KEY}.json
    
  • jira-ticket-viewer の解析スクリプトを使って各チケットを解析します:
    node ${CLAUDE_SKILL_DIR}/../jira-ticket-viewer/scripts/parse-ticket.js < .jira-ticket-prioritizer-tmp/tickets/{KEY}.json > .jira-ticket-prioritizer-tmp/tickets/{KEY}-parsed.json
    
  • 解析した出力をすべて 1 つの JSON 配列にまとめ、.jira-ticket-prioritizer-tmp/all-tickets.json に書き込みます
  • ステータスでチケットを分類します — すべてのチケットを取得して解析した後、次の 2 グループに分けます:
    • pending = ステータスが "To Do" または "Backlog" のチケット — これらはスコア付け、グループ分けされ、出力レイヤーに配置されます
    • context = それ以外のステータス("In Progress"、"In Review"、"Done"、"Closed"、"Resolved")のチケット — レイヤーには配置されませんが、ステップ 3~5 で依存関係を解決するために使用されます
ステップ 3 — 依存関係グラフを構築する
  • 次を実行します:node ${CLAUDE_SKILL_DIR}/scripts/build-dependency-graph.js < .jira-ticket-prioritizer-tmp/all-tickets.json > .jira-ticket-prioritizer-tmp/graph.json
  • グラフの出力を確認し、循環や警告がないか調べます
  • 関係のマッピング規則については、references/dependency-analysis.md を参照してください
  • グラフにはすべてのチケット(pending と context)が含まれるため、進行中または完了済みのチケットへの依存関係も確認できます
ステップ 4 — セマンティック依存関係の分析と親チケットの評価
  • references/dependency-analysis.md に従って、親/コンテナチケットとセマンティック依存関係を評価します
  • 信頼度(high/medium/low)を付けたソフトエッジをグラフに追加します
  • 新しいエッジを追加した場合は、トポロジカルソートを再実行します:
    • 追加の softEdges で all-tickets.json を更新し、build-dependency-graph.js を再実行します
ステップ 4b — 冗長性の検出
  • 検出ルールの詳細については、references/redundancy-analysis.md を読んでください
  • 保留中のチケットをすべてペアごとに確認し、スコープの重複度を評価してください。要約、説明、コンポーネント、ラベル、チケットの種類、明示的な JIRA の重複リンクを考慮します
  • 各ペアについて、同じ作業を説明している可能性を判断し、重み(重複の度合い)と信頼度(判断の確かさ)を割り当ててください
  • 2 つのチケットが明らかに重複している場合は、どちらを主チケットにするか決めてください。スコアが高いチケットを優先し、スコアが同じ場合は番号の小さいチケットを優先します
  • 重複が対応に値するほど強い場合(信頼度が高い、または重みが相当高く信頼度が中程度)、副チケットを保留中の集合から外し、skipped に入れてください。何が見つかったのかを正確に説明する、平易な英語の理由を記述します。どのフィールドが重複していたか、テキストの類似性、片方のチケットのスコープがもう片方に含まれると判断した理由を記載してください。根拠の文字列に関するガイドラインは、references/redundancy-analysis.md を参照してください
  • 重複が弱い場合(信頼度が低い、または重みが低く信頼度が中程度)、チケットは独立しているものとして扱い、両方を各レイヤーに残し、フラグを付けないでください
  • ここで skipped に移されたチケットは、以降のスコアリングやグループ化の手順に含めてはいけません
ステップ 5 — 優先度のスコアリングとグループ化
  • pending のチケットのみをスコアリングします。context のチケットはスコアリングもレイヤーへの配置も行いません
  • 同じ依存関係レイヤー内のチケットは、references/priority-weights.md の重みを使ってスコアリングします
  • 各レイヤー内では、スコアの降順で並べ替えます
  • 同点の場合のタイブレーク、またはスコアの加算には、EXTRA_CONTEXT のコンテキストを適用します
  • 同じレイヤー内の関連チケットをグループ化します。references/dependency-analysis.md の「グループ化ルール」を参照してください。各グループで最初のチケット(スコアが最も高いもの)が主チケットです。
  • レイヤーをまたぐ依存関係を解決します:
    • context のチケットのステータスが「Done」/「Closed」/「Resolved」で、そのチケットに pending のチケットが依存している場合 → 依存関係は解決済みであり、チケットは通常どおり処理を進めます
    • context のチケットがその他のステータス(例:「In Progress」)で、そのチケットに pending のチケットが依存している場合 → 依存先のキーとステータスを含む理由を付けて、skipped とします
    • 別のレイヤーにある別の pending チケットに依存している場合 → 通常どおりレイヤー分けします(レイヤー N+1 はレイヤー N に依存します)
  • ステータスが「Done」/「Closed」/「Resolved」のチケット → excluded
  • 実装可能な作業がないコンテナー/親ストーリー → excluded
ステップ 5a — リポジトリの割り当て

ルールの詳細については、references/repo-assignment.md を読んでください。各チケットについて、ルールに従って repos、branch、complexity、hasFrontend を決定します。

ステップ 6 — 出力の生成
  • レポートのスキーマと JSON の構造については、references/output-format.md を参照してください
  • .jira-ticket-prioritizer-tmp/detailed-report.json に、スコア、根拠、依存関係グラフ、スキップしたチケット、除外したチケット、警告などの詳細をすべて書き込みます
  • .jira-ticket-prioritizer-tmp/output.json に、layers、skipped、excluded の配列を含むグループ化されたレイヤーオブジェクトを書き込みます
  • ユーザーに提示するのは output.json のみです。詳細レポートは参照用に保存しますが、表示しません。
ステップ 7 — クリーンアップ
  • 一時ディレクトリを削除します:rm -rf .jira-ticket-prioritizer-tmp

参照ファイル

名前読むタイミング
references/priority-weights.mdステップ 5 — スコアリングルールと要素の重み
references/output-format.mdステップ 6 — レポートテンプレートと JSON スキーマ
references/dependency-analysis.mdステップ 3〜5 — 依存関係の検出とグループ化ルール
references/redundancy-analysis.mdステップ 4b — 重複の検出、重み/信頼度のルール、省略エントリの形式
references/repo-assignment.mdステップ 5a — リポジトリの把握、割り当てルール、ブランチ/複雑さ/hasFrontend

コメント