issue-picklisted
Install: claude install-skill hirokisakabe/issuekit
# Issue Pick Skill
複数の open issue を統一観点で整理し、「次に着手すべきもの」の判断材料をユーザーに提示する read-only な advisory skill。重み付けや優先度の永続化は行わず、最終判断は人間に委ねる。
## スコープ
- **含む**: open issue の一覧取得、4 観点 (影響範囲 / 依存・blocker / 規模 / 緊急度) での構造化、推奨 1 件 + 補欠 1〜2 件の提示。
- **含まない**:
- **state 変更**: issue body / labels / assignees / Projects v2 等への書き込みは一切行わない。
- **ranking の永続化**: 出力は揮発的な advisory に留め、優先度を保存する仕組みを持たない。
- **重み付け**: 観点ごとの重み付けやスコアリングはしない。文脈依存の判断 (好み・気分・直近の関心) は人間に委ねる。
- **assigned filter**: 個人リポジトリでは無意味のため非対応。
- **自動着手**: `issuekit:issue-implement` skill との連携は user 経由のみ。APM plain-skill mode では `issue-implement` として案内する。skill 内で chain しない。
## 依存
- **`gh` CLI**: issue 一覧取得・本文取得に使用する。
## 入力
- 引数なし: デフォルトで open + `Status: Ready` の issue のみを対象とする。
- `--include-draft`: Draft の issue も対象に含める。
## 実行手順
### 1. issue 一覧の取得 (本文込み)
`gh issue list` で本文 (`body`) も含めて **すべての open issue** を一括取得する。`Status: Ready` は issue 本文の先頭にしかなく、タイトル / labels だけでは判別できないため、ここで本文を取得しておく必要がある。
```bash
gh issue list --state open --limit 1000 --json number,title,labels,body,createdAt,updatedAt
```
> **注意 1**: タイトル / labels だけで先に上位 10 件へ絞り込むと、見た目が urgent な Draft issue が残って本文を読む段階で除外され、本来対象にすべき Ready issue を一度も評価しないまま「候補なし」になる可能性がある。Status 判定は必ず候補絞り込みより **前** に行う。
>
> **注意 2**: `--limit` を小さく設定すると、古い Ready issue が `gh issue list` の段階で truncate され、Status フィルタを通過する前に消える。リポジトリの open issue 数を上回る十分大きな値 (例: `--limit 1000`) を指定する。`--limit` 上限を超えるリポジトリでは `gh issue list --search "is:open sort:created-asc"` 等で並べ替えてページング取得し、全件評価を担保する。