Skip to main content

issue-check

boy-scout ラベルの open Issue を「やる価値があるか」「対応方針がポリシーに合っているか」で判定し、本文とラベルを直す。/sweep で着手する前に人間が打つ。「issue-check」「issueを検査して」と指示されたとき。

Zur Installation springen

Quellinformationen

Repository
kasiopeiya/claude-dev-template
Letzte Quellaktivität
14. September 2026 um 06:00
Erkannte Sprache von SKILL.md
Japanisch
Sterne
0
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
issue-check
description
boy-scout ラベルの open Issue を「やる価値があるか」「対応方針がポリシーに合っているか」で判定し、本文とラベルを直す。/sweep で着手する前に人間が打つ。「issue-check」「issueを検査して」と指示されたとき。
argument-hint
[件数 or #Issue番号(省略可・複数可)]
disable-model-invocation
true
allowed-tools
Task, Bash, Read, Edit, Write
boy-scout Issue を監査してください。あなたは判定本体を行わず、**Issue ごとに割って並列に走らせ、返ってきた結果を統合して Issue へ反映する**役です。 `/quick-issue` は確認なしで即起票します。速さのために削れるのは推敲だけのはずですが、実際にはポリシーに反する対応方針や、よく見ると直す必要が無い課題も混ざります。`/sweep` は本文の対応方針どおりに直す設計なので、誤った方針はそのまま実装されます。**着手前にここで潰します。** ## 前提 - **始めるタイミングは人間が握ります。** 一度に多数の Issue を書き換えるため、いつ走らせるかは人間が決めます。 - **リポジトリのファイルは変更しません。** 触るのは GitHub Issue(本文・ラベル・コメント・close)だけです。 - **判定の定義は `issue-auditor-agent` の定義が正典です。** ここに書き写しません——2箇所に持つと、判定を変えたときに片方が古いまま残ります。 - **監査した Issue には `issue:checked` を貼ります。** 意味は「一度 `/issue-check` を通した」であって、「いま妥当」ではありません。 ## Phase 1: 対象の決定 ```bash gh issue list --state open --limit 100 --search 'label:boy-scout' \ --json number,title,labels --jq 'sort_by(.number) | .[] | "\(.number)\t\([.labels[].name]|join(","))\t\(.title)"' ``` `ai-fixable` で絞りません。`issue:needs-human-decision` の Issue も、名指し例外に本当に当たるかを検査する対象です。`issue:needs-clean-session` も含めます——読むだけの判定なので、一括で直せるかどうかとは無関係です。 **`issue:checked` が付いた Issue も除外しません。** 判定のうち「前提が現物と食い違う」は、リポジトリが動けば真偽が変わります。前回の判定を貼った時点で凍結できないので、毎回すべて見直します。ラベルを検索条件に使わないことで、Issue 番号を直接指定した経路との食い違いも起きません。 取得件数がちょうど100件なら上限で切れている可能性があるので、その旨を伝えてから処理します。 引数の解釈は次のとおりです。**素の数字は常に件数**として読みます——同じ形の入力が件数にも Issue 番号にもなると、誤用を防げないからです。 - **なし**:一覧の全件 - **数字1つ**:一覧の古い順にその件数 - **`#` 付き番号(複数可)**:その Issue だけ(ラベルの有無を問わない) 対象が0件なら、その旨を伝えて終了します。決めた対象リストを表示してから Phase 2 へ進みます。 ## Phase 2: 並列監査 `issue-auditor-agent` を、**Issue 1件につき1回、1メッセージ内でまとめて** Task 起動します。逐次に投げると、割った意味(速さ)が消えます。1波は最大5件までとし、超える分は次の波へ回します。 各起動に渡すのは **Issue 番号だけ**です。本文もポリシーもエージェント自身が読みます。**この SKILL.md に書いた指示は Task 起動されたエージェントには届かない**ので、判定に要る情報をここから渡そうとしないでください。 ## Phase 3: 統合と反映 ### バッチ内の重複を検査する 並列で走ったエージェントは互いを見られません。**同じ対象箇所を指す Issue が2件以上ある場合、その検出はここでしかできません。** 各レポートの「現物確認」表に並んだ対象箇所を突き合わせ、重なっていれば**番号の大きい側を「不要(重複)」に倒します**。倒した側のコメントには、残す側の Issue 番号を書きます。 ### 判定ごとに反映する **`gh` を並列で叩かないでください。** 1件ずつ順に処理します。同じ Issue へ複数の更新が同時に飛ぶと、あとから投げたほうが前の更新を消します。 - **GO**:何もしない(`issue:checked` は下記のとおり全件に貼る) - **方針差し替え**:本文の該当セクションを差し替え、何を・なぜ変えたかをコメントで残す - **ラベル訂正**:ラベルを貼り替え、どの名指し例外に当たる/当たらないかをコメントで残す - **不要**:close する - **人間判断**:`issue:needs-human-decision` を足して `ai-fixable` と `issue:decided` を外し、本文に「人間に決めてほしいこと」を足して、論点をコメントで残す **どの操作にも必ず理由コメントを添えます。** 理由が無いと、次に Issue を開いた人は「なぜ本文が変わったのか」を追えません。 **判定が何であれ、監査した Issue には `issue:checked` を貼ります。** ```bash gh issue edit <番号> --add-label "issue:checked" ``` GO の Issue には他に何も残らないので、貼らないと「監査を通した」と「一度も見ていない」を後から区別できません。貼った日時は GitHub のタイムラインに残るので、コメントで補いません。close する Issue にも貼ります——判定した記録は、閉じたかどうかとは別に要ります。 #### 本文を差し替える エージェントが返した「差し替える本文」を、セクション単位で入れ替えます。本文全体を書き直してはいけません——監査対象でないセクションまで変わってしまいます。 ```bash gh issue view <番号> --json body --jq .body > <スクラッチパッド>/issue-<番号>.md ``` 書き出したファイルを Read し、Edit で該当セクションだけを差し替えてから反映します。 ```bash gh issue edit <番号> --body-file <スクラッチパッド>/issue-<番号>.md ``` ラベルを `ai-fixable` へ訂正したときは「対応方針」が、`issue:needs-human-decision` へ訂正したときは「人間に決めてほしいこと」が本文に要ります。`/quick-issue` はこの2セクションを排他と定めているので、**片方を足したらもう片方を消します。** #### close する **sub-issue が open な親 Issue は閉じません。** 先に sub-issue を処理するか、その Issue を飛ばします。open な子が全部ブロッカー待ちで止まっているなら、[`/issue-regroup`](../issue-regroup/SKILL.md) の対象として報告に並べます。子の付け替えは人間が起動を決める操作なので、本スキルでは行いません。 ```bash gh api graphql -f query='{repository(owner:"<owner>",name:"<repo>"){issue(number:<番号>){subIssues(first:50){nodes{number state}}}}}' ``` ```bash gh issue close <番号> --comment "<なぜ不要と判定したかを、引用またはコマンド出力を添えて>" ``` ## Phase 4: 報告 処理した Issue を表にして報告します。 | Issue | タイトル | 判定 | 根拠(1文) | 取った操作 | | ----- | -------- | ------------ | ------------------------------------------------ | ---------------------- | | #123 | … | GO | 反転条件に当たらない | なし | | #124 | … | 方針差し替え | 対応方針が documentation-policy の「〜」に反する | 本文差し替え+コメント | | #125 | … | 不要 | 対象箇所が既に存在しない | close | 末尾に **GO と判定した Issue 番号の一覧**を出します。人間はこれを見て `/sweep` を打ちます。 まだ監査していない Issue は、後からこれで引けます。 ```bash gh issue list --state open --search 'label:boy-scout -label:"issue:checked"' \ --json number,title --jq 'sort_by(.number) | .[] | "\(.number)\t\(.title)"' ``` ## エラーハンドリング - **エージェントが定型フォーマットで返さない**:その Issue は「人間判断」として扱い、本文もラベルも変更しない - **エージェントが引用の無い指摘を返した**:その指摘を落とし、判定を GO に戻す(裏が取れていない指摘で本文を書き換えない) - **`gh issue edit` が失敗する**:その Issue の処理を中断し、エラーを表示して次の Issue へ進む - **同じ Issue に別セッションの更新が入っている**:上書きせず中断し、その事実を報告する ## 使用方法 ``` /issue-check # boy-scout の open Issue を全件 /issue-check 3 # 古い順に3件だけ /issue-check #123 #124 # 指定した Issue だけ ``` 引数: $ARGUMENTS
Auf GitHub ansehen