issue-manage について
issue-manageは、`ccw issue` CLIを使ってIssueを管理する対話型スキルです。Issue記録や実行キューを扱うユーザー向けに、絞り込み、編集、アーカイブ、複数件操作を提供し、削除前には確認を行います。
主な機能
- 01アクティブなIssueの絞り込みと一覧表示
- 02Issue・解決策・タスクの詳細確認
- 03タイトルや優先度、ステータスの編集
- 04完了したIssue履歴の管理
- 05複数件の更新・キュー登録・削除
活用シーン
- 01ステータスで未完了Issueを絞り込む
- 02Issueの優先度やステータスを変更する
- 03完了したIssueをアーカイブする
- 04計画済みIssueをまとめてキューに登録する
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ catlog22/ claude-code-workflow --skill issue-manageインストール後、Claude Code で/issue-manageを入力して読み込まれたか確認します。
詳細
Issue 管理スキル
ccw issue CLI を介した、Issue の CRUD 操作用インタラクティブメニューです。
クイックスタート
次のように尋ねてください:
- 「すべての Issue を表示」→ フィルターを使った一覧表示
- 「Issue GH-123 を表示」→ 詳細を確認
- 「Issue の優先度を編集」→ フィールドを変更
- 「古い Issue を削除」→ 確認して削除
- 「ステータスを一括更新」→ 一括操作
- 「完了した Issue を表示」→ Issue 履歴を表示
- 「古い Issue をアーカイブ」→ 履歴に移動
CLI エンドポイント
# Core operations
ccw issue list # List active issues
ccw issue list <id> --json # Get issue details
ccw issue history # List completed issues (from history)
ccw issue history --json # Completed issues as JSON
ccw issue status <id> # Detailed status
ccw issue init <id> --title "..." # Create issue
ccw issue task <id> --title "..." # Add task
ccw issue bind <id> <solution-id> # Bind solution
ccw issue update <id> --status completed # Complete & auto-archive
# Solution queries
ccw issue solution <id> # List solutions for a single issue
ccw issue solution <id> --brief # Brief: solution_id, files_touched, task_count
ccw issue solutions # Batch list all bound solutions
ccw issue solutions --status planned --brief # Filter by issue status
# Queue management
ccw issue queue # List current queue
ccw issue queue add <id> # Add to queue
ccw issue queue list # Queue history
ccw issue queue switch <queue-id> # Switch queue
ccw issue queue archive # Archive queue
ccw issue queue delete <queue-id> # Delete queue
ccw issue next # Get next task
ccw issue done <queue-id> # Mark completed
ccw issue update --from-queue # Sync statuses from queue
操作
1. LIST 📋
Issue をフィルターして閲覧します:
┌─ Filter by Status ─────────────────┐
│ □ All □ Registered │
│ □ Planned □ Queued │
│ □ Executing □ Completed │
└────────────────────────────────────┘
手順:
- フィルターの設定を尋ねる →
ccw issue list --json - テーブルを表示:ID | ステータス | 優先度 | タイトル
- Issue を選択して詳細を表示
2. VIEW 🔍
Issue の詳細を確認します:
┌─ Issue: GH-123 ─────────────────────┐
│ Title: Fix authentication bug │
│ Status: planned | Priority: P2 │
│ Solutions: 2 (1 bound) │
│ Tasks: 5 pending │
└─────────────────────────────────────┘
手順:
ccw issue status <id> --jsonを取得- Issue + 解決策 + タスクを表示
- 操作を提示:編集 | 計画 | キュー | 削除
3. EDIT ✏️
Issue のフィールドを変更します:
| フィールド | 選択肢 |
|---|---|
| タイトル | 自由入力 |
| 優先度 | P1-P5 |
| ステータス | registered → completed |
| コンテキスト | 問題の説明 |
| ラベル | カンマ区切り |
手順:
- 編集するフィールドを選択
- 現在の値を表示
- AskUserQuestion で新しい値を入力
.workflow/issues/issues.jsonlを更新
4. DELETE 🗑️
確認して削除します:
⚠️ Delete issue GH-123?
This will also remove:
- Associated solutions
- Queued tasks
[Delete] [Cancel]
手順:
- AskUserQuestion で削除を確認
issues.jsonlから削除solutions/<id>.jsonlをクリーンアップqueue.jsonから削除
5. HISTORY 📚
完了した Issue を表示、管理します:
┌─ Issue History ─────────────────────┐
│ ID Completed Title │
│ ISS-001 2025-12-28 12:00 Fix bug │
│ ISS-002 2025-12-27 15:30 Feature │
└──────────────────────────────────────┘
手順:
ccw issue history --jsonを取得- テーブルを表示:ID | 完了日時 | タイトル
- オプション:日付範囲でフィルター
自動アーカイブ:Issue のステータスが completed になると:
- Issue は
issues.jsonlからissue-history.jsonlに移動します - 解決策は
solutions/<id>.jsonlに残ります - キュー項目は完了としてマークされます
6. BULK 📦
一括操作:
| 操作 | 説明 |
|---|---|
| ステータスを更新 | 複数の Issue を変更 |
| 優先度を更新 | 優先度を一括変更 |
| ラベルを追加 | 複数の Issue にタグを付ける |
| 複数を削除 | 一括削除 |
| 計画済みをすべてキューに追加 | 計画済みの項目をすべてキューに追加 |
| 失敗した項目をすべて再試行 | 失敗したタスクをリセット |
| キューから同期 | アクティブなキューからステータスを更新 |
ワークフロー
┌────────────────────────────────────────────────┐
│ Main Menu │
│ ┌────┐ ┌────┐ ┌────┐ ┌─────┐ ┌────┐ │
│ │List│ │View│ │Edit│ │Hist.│ │Bulk│ │
│ └──┬─┘ └──┬─┘ └──┬─┘ └──┬──┘ └──┬─┘ │
└─────┼──────┼──────┼──────┼───────┼─────────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
Filter Detail Fields History Multi
Select Actions Update Browse Select
│ │ │ │ │
└──────┴──────┴──────┴───────┘
│
▼
Back to Menu
Issue のライフサイクル:
registered → planned → queued → executing → completed
│
▼
issue-history.jsonl
実装ガイド
エントリーポイント
// Parse input for issue ID
const issueId = input.match(/^([A-Z]+-\d+|ISS-\d+)/i)?.[1];
// Show main menu
await showMainMenu(issueId);
メインメニューのパターン
// 1. Fetch dashboard data
const issues = JSON.parse(Bash('ccw issue list --json') || '[]');
const history = JSON.parse(Bash('ccw issue history --json 2>/dev/null') || '[]');
const queue = JSON.parse(Bash('ccw issue queue --json 2>/dev/null') || '{}');
// 2. Display summary
console.log(`Active: ${issues.length} | Completed: ${history.length} | Queue: ${queue.pending_count || 0} pending`);
// 3. Ask action via AskUserQuestion
const action = AskUserQuestion({
questions: [{
question: 'What would you like to do?',
header: 'Action',
options: [
{ label: 'List Issues', description: 'Browse active issues' },
{ label: 'View Issue', description: 'Detail view (includes history)' },
{ label: 'Edit Issue', description: 'Modify fields' },
{ label: 'Bulk Operations', description: 'Batch actions' }
]
}]
});
// 4. Route to handler
フィルターパターン
const filter = AskUserQuestion({
questions: [{
question: 'Filter by status?',
header: 'Filter',
multiSelect: true,
options: [
{ label: 'All', description: 'Show all' },
{ label: 'Registered', description: 'Unplanned' },
{ label: 'Planned', description: 'Has solution' },
{ label: 'Executing', description: 'In progress' }
]
}]
});
編集パターン
// Select field
const field = AskUserQuestion({...});
// Get new value based on field type
// For Priority: show P1-P5 options
// For Status: show status options
// For Title: accept free text via "Other"
// Update file
const issuesPath = '.workflow/issues/issues.jsonl';
// Read → Parse → Update → Write
データファイル
| ファイル | 用途 |
|---|---|
.workflow/issues/issues.jsonl | アクティブな Issue の記録 |
.workflow/issues/issue-history.jsonl | 完了した Issue(アーカイブ済み) |
.workflow/issues/solutions/<id>.jsonl | Issue ごとの解決策 |
.workflow/issues/queues/index.json | キューインデックス(複数キュー) |
.workflow/issues/queues/<queue-id>.json | 個別のキューファイル |
エラー処理
| エラー | 解決方法 |
|---|---|
| Issue が見つからない | 作成するには /issue:new を提案 |
| Issue が見つからない | 利用可能な Issue を表示して、再度入力を求める |
| 書き込みに失敗 | ファイルのアクセス許可を確認 |
| キューエラー | ccw のエラーメッセージを表示 |
関連コマンド
/issue:new- 構造化された Issue を作成/issue:plan- 解決策を生成/issue:queue- 実行キューを作成/issue:execute- タスクを実行
コメント
Markdown 対応