issue-management について
サポートされる `gh issue` コマンドで、GitHub issue の親子関係やブロック関係を管理するスキルです。タスクの階層や依存関係を扱うコントリビューター向けに、変更の確認手順も示します。
主な機能
- 01親 issue の設定と変更
- 02サブ issue 関係の管理
- 03ブロック関係の追加と解除
- 04関係メタデータの確認
- 05JSON 出力による変更確認
活用シーン
- 01作業を親 issue の下に整理
- 02他の作業に依存する issue の記録
- 03編集前の issue 依存関係の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill issue-managementインストール後、Claude Code で/issue-managementを入力して読み込まれたか確認します。
詳細
GitHub イシュー間の関係を作成、編集、確認、削除するときに、このスキルを使用してください。
これらのコマンドは、GitHub CLI PR cli/cli#13057 で追加された Issues 2.0 の gh issue サポートを使用します。この機能は新しいため、まずインストール済みの gh が対応していることを確認してください。
gh issue create --help | grep -E -- '--parent|--blocked-by|--blocking'
gh issue edit --help | grep -E -- '--parent|--add-sub-issue|--add-blocked-by|--add-blocking'
これらのフラグが見つからない場合は、イシュー間の関係を管理する前に gh を更新してください。古いコマンドをでっち上げてはいけません。
イシュー参照形式
関係を指定するフラグには、イシュー番号またはイシュー URL を指定できます。
現在のリポジトリのイシューには、番号を使用します。
gh issue edit 123 --parent 100
リポジトリをまたぐ関係には、完全なイシュー URL を使用します。
gh issue edit 123 --blocked-by https://github.com/remotion-dev/remotion/issues/456
関連する複数のイシューは、カンマ区切りのリストとして指定できます。
gh issue edit 123 --add-blocked-by 200,201
親イシューとサブイシューの関係
サブイシューが持てる親イシューは、必ず1つです。
親イシューの直下に新しいイシューを作成するには、次のようにします。
gh issue create \
--title 'Docs: Add issue management skill' \
--body-file /tmp/remotion-issue-body.md \
--parent 100
既存の子イシューの親を設定または変更するには、次のようにします。
gh issue edit <child-number> --parent <parent-number-or-url>
子イシューから親を削除するには、次のようにします。
gh issue edit <child-number> --remove-parent
親イシューから子イシューを管理するには、次のようにします。
gh issue edit <parent-number> --add-sub-issue <child-number-or-url>
gh issue edit <parent-number> --remove-sub-issue <child-number-or-url>
--add-sub-issue は、子イシューにすでに別の親イシューがある場合、その子イシューを新しい親イシューに移動します。1つの子イシューを複数の親イシューに曖昧な形で追加することはできないため、1つのコマンドで複数の親イシューを編集するときに --add-sub-issue を使用しないでください。
ブロックされる関係とブロックする関係
編集中のイシューが別のイシューの対応待ちの場合は、blocked-by を使用します。
# Issue 123 is blocked by issue 200.
gh issue edit 123 --add-blocked-by 200
# Remove that relationship.
gh issue edit 123 --remove-blocked-by 200
編集中のイシューが別のイシューをブロックする場合は、blocking を使用します。
# Issue 123 is blocking issues 300 and 301.
gh issue edit 123 --add-blocking 300,301
# Remove one blocking relationship.
gh issue edit 123 --remove-blocking 300
同じ関係を別の視点で表すと、次のようになります。
gh issue edit A --add-blocking B
これは、次の関係と同じです。
gh issue edit B --add-blocked-by A
現在編集しているイシューに応じて、コマンドを選んでください。
イシューを作成するときに、関係をすぐに設定します。
gh issue create \
--title 'Studio: Add timeline validation' \
--body-file /tmp/remotion-issue-body.md \
--blocked-by 200,201 \
--blocking 300
関係の確認
人が読みやすい形式の表示では、親イシュー、サブイシュー、blocked-by、blocking のメタデータがある場合に表示されます。
gh issue view <number>
TTY 以外への生の出力には、安定した関係の行が含まれます。
gh issue view <number> | grep -E '^(parent|sub-issues|sub-issues-completed|blocked-by|blocking):'
スクリプトでは、JSON フィールドを明示的に指定します。
gh issue view <number> \
--json parent,subIssues,subIssuesSummary,blockedBy,blocking
subIssues、blockedBy、blocking は、nodes と totalCount を含むコネクションオブジェクトです。subIssuesSummary には完了数が含まれます。
安全なワークフロー
- 新しいイシュー本文は、インラインの複数行シェル文字列ではなく、
--body-fileを使って作成します。 - 適切な
gh issue createまたはgh issue editフラグを使って、関係を設定します。 gh issue view <number>またはgh issue view <number> --json parent,subIssues,subIssuesSummary,blockedBy,blockingで確認します。- その後、PR または親イシューの本文を編集する場合は、曖昧なチェックリストの文言を具体的なイシュー番号に置き換えます。