AgentSkillsCN

optimizing-issue-labels

对 GitHub Issue 进行分类整理与标签优化。判定是否需要响应,对无需处理的 Issue 进行关闭,并依据 Issue 内容,为有处理需求的 Issue 优化标签(如 `story`/`task`)。

SKILL.md
--- frontmatter
name: optimizing-issue-labels
description: GitHub Issueのトリアージとラベル最適化を行います。対応要否の判定を行い、対応不要なIssueをクローズ、対応必要なIssueのラベル(`story`/`task`)を内容に基づいて最適化します。
layer: feature
argument-hint: "<Issue番号...>"

手順

  1. 引数の確認

    • $ARGUMENTS からIssue番号を取得する(スペース区切り、# プレフィックスは除去)
    • 引数未指定時は「Issue番号を指定してください」と報告して終了
  2. 各Issueについて情報取得(可能な限り並列実行)

    • github スキル(issue-get.sh)でIssueの内容(タイトル、本文、ラベル、状態)を取得
    • github スキル(issue-sub-issues.sh)でサブIssueの有無を確認
  3. 対応要否の判定 各Issueについて、まずIssueが既にクローズされているか確認します。クローズ済みの場合、その旨を報告してこのIssueの処理を終了します。 オープンなIssueについては、以下の基準で対応の必要性を判定します。

    判定基準:

    対応必要(後続のstory/task判定へ進む):

    • 具体的な変更内容や改善要望がIssue本文に記載されている
    • バグ報告が含まれている
    • 実装すべき機能が記述されている

    対応不要(クローズ対象):

    • Issue本文に「既に実装済み」「問題が解決済み」などクローズ条件を満たす記載がある
    • 重複Issueであることが本文やコメントで明示されている
    • 対象となる機能やファイルがコードベースに存在しないことが明らか
    • Issue本文が空または意図不明で判断材料が不足している

    対応不要と判定した場合の処理:

    • github スキル(issue-add-comment.sh)で対応不要の理由を日本語でコメント追加
      • コメント例: 「このIssueは既に対応済みのため、クローズします。」
      • 理由を具体的に記載すること
    • github スキル(issue-update.sh)の --state closed --state-reason completed または --state closed --state-reason not_planned でIssueをクローズ
      • 実装済み・解決済みの場合: --state-reason completed
      • 重複・対象不在・意図不明の場合: --state-reason not_planned
    • 以降の構造的判定はスキップ

    対応必要と判定した場合:

    • 次の手順(構造的判定)へ進む
  4. 各Issueの構造的判定 以下の基準で story/task を判定する。

    ラベルの定義:

    • story ラベルは、ストーリー(親Issue)にのみ付与する
      • ユーザーの要望やユーザーに提供する価値が記載されているIssue(WHYが中心)
    • task ラベルは、タスクIssue(サブIssue)にのみ付与する
      • 作業者に依頼できるくらいに実装方法が具体化されているIssue(HOWが中心)

    構造的な判定基準:

    story候補の条件:

    • サブIssueが1つ以上存在する
    • 本文がユーザーストーリー形式(「〜として、〜したい」等)で記述されている
    • 受け入れ条件セクションがある

    task候補の条件: サブIssueを持たないIssueであり、かつ以下のいずれかの条件を満たすもの:

    • 本文に「親ストーリー」セクションまたは親Issueへの参照(#数字形式でのリンク)がある
    • 具体的な実装内容・完了条件が記述されている

    判定結果:

    • story候補のみ満たす → story ラベル付与、task ラベル削除
    • task候補のみ満たす → task ラベル付与、story ラベル削除
    • 両方満たす(矛盾) → 両ラベル削除、エラー表示
    • どちらも満たさない → ラベル変更なし、判定不能を報告
  5. ラベル操作

    • github スキル(issue-update.sh)の --add-label / --remove-label を使用
    • story/task以外のラベルは一切変更しない
    • 既に正しいラベルが付与されている場合は変更不要
  6. 結果報告 処理結果を一覧形式でユーザーに報告する:

    • Issue番号、タイトル、トリアージ結果(対応必要/対応不要)
    • 対応不要の場合: クローズ理由とstate-reason
    • 対応必要の場合: 構造的判定結果(story/task/矛盾/判定不能)と実行したラベル操作