AgentSkillsCN

issue-refinement

掌握对 GitHub Issue 内容进行润色与更新的技能。 适用于 /issue-refine 命令。 通过 8 项细节核查,使 Issue 更加清晰、更具针对性。

SKILL.md
--- frontmatter
name: issue-refinement
description: |
  GitHub Issue の内容をブラッシュアップして更新するスキル。
  /issue-refine コマンドで使用。
  8項目の詳細確認により Issue を明確化・具体化。
allowed-tools: Bash, Read, Write, Glob, Grep, AskUserQuestion, Task

Issue Refinement

既存の GitHub Issue を明確化・具体化し、テンプレートに準拠した形式に改善するナレッジベーススキルです。

目的

このスキルは以下を提供します:

  • Issue 内容の改善: 曖昧な表現を具体的に
  • 8項目の詳細確認: ユーザーへの体系的なヒアリング
  • 受け入れ条件の測定可能化: 曖昧な条件を具体的な基準に変換
  • テンプレート準拠: 標準フォーマットへの整形

いつ使用するか

プロアクティブ使用(自動で検討)

以下の状況では、ユーザーが明示的に要求しなくても使用を検討:

  1. Issue 品質改善の議論
    • 「この Issue をもっと具体的に」
    • 「受け入れ条件を明確にしたい」
    • 曖昧な Issue の明確化

明示的な使用(ユーザー要求)

  • /issue-refine <番号> コマンドの実行時

プロセス

全体フロー

code
/issue-refine {number}
    │
    ├─ ステップ 1: Issue 情報取得
    │
    ├─ ステップ 2: 改善対象選択
    │   ├─ 本文全体
    │   ├─ 受け入れ条件のみ
    │   └─ タイトルと概要
    │
    ├─ ステップ 2.5: 8項目の詳細確認
    │   ├─ 背景・目的
    │   ├─ 実装スコープ
    │   ├─ 連携・依存関係
    │   ├─ 優先度・期限
    │   ├─ ユースケース
    │   ├─ 受け入れ条件詳細
    │   ├─ 実装時の注意点
    │   └─ 関連 Issue
    │
    ├─ ステップ 3: 改善案生成
    │   └─ 収集情報を反映
    │
    ├─ ステップ 4: 差分表示・確認
    │   ├─ 適用する
    │   ├─ 修正して適用
    │   └─ スキップ
    │
    └─ ステップ 5: Issue 更新

8項目の詳細確認

Issue の不明点・曖昧な点を明確化するため、以下の8項目を順番に確認:

  1. 背景・目的: なぜこの機能/修正が必要か
  2. 実装スコープ: 何をやる/やらないか
  3. 連携・依存関係: 他機能との関係
  4. 優先度・期限: 緊急度と時間軸
  5. ユースケース: 具体的な使用シナリオ
  6. 受け入れ条件詳細: 完了判断基準
  7. 実装時の注意点: 技術的制約
  8. 関連 Issue: 関連情報

活用ツールの使用方法

gh CLI

bash
# Issue 情報取得
gh issue view {issue_number} --json number,title,body,state,labels,url

# タイトル更新
gh issue edit {issue_number} --title "{new_title}"

# 本文更新
gh issue edit {issue_number} --body "$(cat <<'EOF'
{new_body}
EOF
)"

# 更新履歴コメント追加
gh issue comment {issue_number} --body "更新内容..."

リソース

このスキルには以下のリソースが含まれています:

./guide.md

Issue ブラッシュアップの詳細ガイド:

  • 8項目の詳細確認フロー
  • AskUserQuestion の質問設計
  • 改善案生成ガイドライン
  • 差分表示形式

./template.md

改善用テンプレート:

  • Issue テンプレート
  • 受け入れ条件の書き方
  • 改善前後の差分表示形式

使用例

例1: 単一 Issue のブラッシュアップ

状況: 曖昧な Issue を明確化したい

処理:

bash
/issue-refine 123
  1. Issue 情報取得
  2. 改善対象: 本文全体
  3. 8項目の詳細確認(AskUserQuestion)
  4. 改善案生成
  5. 差分表示・確認
  6. Issue 更新

期待される出力:

markdown
## ブラッシュアップ結果

### Issue #123
- **タイトル改善**: より具体的に変更
- **受け入れ条件**: 5項目を測定可能な形式に変換

### 改善内容
- 概要: 「処理が遅い」→「APIレスポンスが3秒以上かかる」
- 受け入れ条件: 「パフォーマンス改善」→「平均レスポンス500ms以下」

例2: 複数 Issue のブラッシュアップ

状況: project.md に紐づく全 Issue を改善

処理:

bash
/issue-refine @src/market_analysis/docs/project.md
  1. project.md から Issue 番号を抽出
  2. 各 Issue を順番に処理
  3. 「同じ設定で続行」オプションを提供

品質基準

必須(MUST)

  • Issue 情報が取得されている
  • 改善対象が選択されている
  • 8項目の詳細確認が完了している
  • 改善案が生成されている(確認情報を反映)
  • ユーザー確認が完了している

推奨(SHOULD)

  • 受け入れ条件が測定可能な形式になっている
  • 関連 Issue がリンクされている
  • テンプレートに準拠している

出力フォーマット

差分表示

markdown
## Issue #{number}: {title}

### タイトル
- **改善前**: {old_title}
- **改善後**: {new_title}

### 本文の変更

#### 概要
```diff
- 処理が遅い
+ API レスポンスが 3 秒以上かかるケースがある

受け入れ条件

diff
- [ ] パフォーマンスが改善される
- [ ] テストが通る
+ [ ] 平均レスポンスタイムが 500ms 以下になる
+ [ ] 95パーセンタイルが 1 秒以下になる
+ [ ] make test が成功する
+ [ ] make check-all が成功する
code

### 改善サマリー

```markdown
### 改善サマリー

- **タイトル改善**: より具体的な表現に変更
- **概要改善**: 問題の具体化と影響範囲の明記
- **受け入れ条件**: 4 条件を測定可能な形式に変換
  - 曖昧 → 具体的: 2 件
  - 新規追加: 2 件

エラーハンドリング

ケース対処
GitHub 認証エラーgh auth login を案内
Issue が存在しないエラーメッセージを表示、次の Issue へ
Issue 更新権限なし権限不足を通知
本文が空の Issueテンプレートを適用して新規作成
closed Issue警告を表示、続行するか確認

完了条件

このスキルは以下の条件を満たした場合に完了とする:

  • 引数が正しく解析されている
  • Issue 情報が取得されている
  • 改善対象が選択されている
  • 8項目の詳細確認が完了している
  • 改善案が生成されている(確認情報を反映)
  • ユーザー確認が完了している
  • 承認された Issue が更新されている
  • 結果が表示されている

重要な注意事項

  1. ステップ 2.5 は必須: Issue の不明点を明らかにするため、必ずユーザーに詳細を確認すること
  2. 情報の反映: 収集した情報は、改善案に漏れなく反映すること
  3. 測定可能性: 受け入れ条件は、ユーザー確認情報を元に必ず測定可能な形式にすること
  4. 関連情報: 関連 Issue、優先度、スコープなどの情報は必ず備考セクションに記載すること

関連スキル

  • issue-creation: Issue の作成
  • issue-implementation: Issue の自動実装
  • issue-sync: コメントからの同期

参考資料

  • CLAUDE.md: プロジェクト全体のガイドライン
  • .claude/commands/issue-refine.md: /issue-refine コマンド定義