Interactive issue management with menu-driven CRUD operations. Use when managing issues, viewing issue status, editing issue fields, performing bulk operations, or viewing issue history...
Interactive menu-driven interface for issue CRUD operations via ccw issue CLI.
Ask me:
# 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
Filter and browse issues:
ββ Filter by Status ββββββββββββββββββ
β β‘ All β‘ Registered β
β β‘ Planned β‘ Queued β
β β‘ Executing β‘ Completed β
ββββββββββββββββββββββββββββββββββββββ
Flow:
ccw issue list --jsonDetailed issue inspection:
ββ Issue: GH-123 ββββββββββββββββββββββ
β Title: Fix authentication bug β
β Status: planned | Priority: P2 β
β Solutions: 2 (1 bound) β
β Tasks: 5 pending β
βββββββββββββββββββββββββββββββββββββββ
Flow:
ccw issue status <id> --jsonModify issue fields:
| Field | Options |
|---|---|
| Title | Free text |
| Priority | P1-P5 |
| Status | registered β completed |
| Context | Problem description |
| Labels | Comma-separated |
Flow:
.workflow/issues/issues.jsonlRemove with confirmation:
β οΈ Delete issue GH-123?
This will also remove:
- Associated solutions
- Queued tasks
[Delete] [Cancel]
Flow:
issues.jsonlsolutions/<id>.jsonlqueue.jsonView and manage completed issues:
ββ Issue History ββββββββββββββββββββββ
β ID Completed Title β
β ISS-001 2025-12-28 12:00 Fix bug β
β ISS-002 2025-12-27 15:30 Feature β
ββββββββββββββββββββββββββββββββββββββββ
Flow:
ccw issue history --jsonAuto-Archive: When issue status β completed:
issues.jsonl β issue-history.jsonlsolutions/<id>.jsonlBatch operations:
| Operation | Description |
|---|---|
| Update Status | Change multiple issues |
| Update Priority | Batch priority change |
| Add Labels | Tag multiple issues |
| Delete Multiple | Bulk removal |
| Queue All Planned | Add all planned to queue |
| Retry All Failed | Reset failed tasks |
| Sync from Queue | Update statuses from active queue |
ββββββββββββββββββββββββββββββββββββββββββββββββββ
β Main Menu β
β ββββββ ββββββ ββββββ βββββββ ββββββ β
β βListβ βViewβ βEditβ βHist.β βBulkβ β
β ββββ¬ββ ββββ¬ββ ββββ¬ββ ββββ¬βββ ββββ¬ββ β
βββββββΌβββββββΌβββββββΌβββββββΌββββββββΌββββββββββββββ
β β β β β
βΌ βΌ βΌ βΌ βΌ
Filter Detail Fields History Multi
Select Actions Update Browse Select
β β β β β
ββββββββ΄βββββββ΄βββββββ΄ββββββββ
β
βΌ
Back to Menu
Issue Lifecycle:
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
| File | Purpose |
|---|---|
.workflow/issues/issues.jsonl |
Active issue records |
.workflow/issues/issue-history.jsonl |
Completed issues (archived) |
.workflow/issues/solutions/<id>.jsonl |
Solutions per issue |
.workflow/issues/queues/index.json |
Queue index (multi-queue) |
.workflow/issues/queues/<queue-id>.json |
Individual queue files |
| Error | Resolution |
|---|---|
| No issues found | Suggest /issue:new to create |
| Issue not found | Show available issues, re-prompt |
| Write failure | Check file permissions |
| Queue error | Display ccw error message |
/issue:new - Create structured issue/issue:plan - Generate solution/issue:queue - Form execution queue/issue:execute - Execute tasks