mcpField
I
issue-manage

issue-manage

github.com/catlog22開発2.1k82 回インストール19 週間前に更新
リポジトリ

issue-manage について

issue-manageは、`ccw issue` CLIを使ってIssueを管理する対話型スキルです。Issue記録や実行キューを扱うユーザー向けに、絞り込み、編集、アーカイブ、複数件操作を提供し、削除前には確認を行います。

主な機能

  1. 01アクティブなIssueの絞り込みと一覧表示
  2. 02Issue・解決策・タスクの詳細確認
  3. 03タイトルや優先度、ステータスの編集
  4. 04完了したIssue履歴の管理
  5. 05複数件の更新・キュー登録・削除

活用シーン

  1. 01ステータスで未完了Issueを絞り込む
  2. 02Issueの優先度やステータスを変更する
  3. 03完了したIssueをアーカイブする
  4. 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           │
└────────────────────────────────────┘

手順:

  1. フィルターの設定を尋ねる → ccw issue list --json
  2. テーブルを表示:ID | ステータス | 優先度 | タイトル
  3. Issue を選択して詳細を表示
2. VIEW 🔍

Issue の詳細を確認します:

┌─ Issue: GH-123 ─────────────────────┐
│ Title: Fix authentication bug       │
│ Status: planned | Priority: P2      │
│ Solutions: 2 (1 bound)              │
│ Tasks: 5 pending                    │
└─────────────────────────────────────┘

手順:

  1. ccw issue status <id> --json を取得
  2. Issue + 解決策 + タスクを表示
  3. 操作を提示:編集 | 計画 | キュー | 削除
3. EDIT ✏️

Issue のフィールドを変更します:

フィールド選択肢
タイトル自由入力
優先度P1-P5
ステータスregistered → completed
コンテキスト問題の説明
ラベルカンマ区切り

手順:

  1. 編集するフィールドを選択
  2. 現在の値を表示
  3. AskUserQuestion で新しい値を入力
  4. .workflow/issues/issues.jsonl を更新
4. DELETE 🗑️

確認して削除します:

⚠️ Delete issue GH-123?
This will also remove:
- Associated solutions
- Queued tasks

[Delete] [Cancel]

手順:

  1. AskUserQuestion で削除を確認
  2. issues.jsonl から削除
  3. solutions/<id>.jsonl をクリーンアップ
  4. 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 │
└──────────────────────────────────────┘

手順:

  1. ccw issue history --json を取得
  2. テーブルを表示:ID | 完了日時 | タイトル
  3. オプション:日付範囲でフィルター

自動アーカイブ: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>.jsonlIssue ごとの解決策
.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 - タスクを実行

コメント