claude-code-workflow 6.3.7 → 6.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,16 +9,39 @@ allowed-tools: TodoWrite(*), Task(*), Bash(*), Read(*), Write(*)
9
9
 
10
10
  ## Overview
11
11
 
12
- Queue formation command using **issue-queue-agent** that analyzes all bound solutions, resolves conflicts, determines dependencies, and creates an ordered execution queue. The queue is global across all issues.
12
+ Queue formation command using **issue-queue-agent** that analyzes all bound solutions, resolves conflicts, and creates an ordered execution queue.
13
+
14
+ ## Output Requirements
15
+
16
+ **Generate Files:**
17
+ 1. `.workflow/issues/queues/{queue-id}.json` - Full queue with tasks, conflicts, groups
18
+ 2. `.workflow/issues/queues/index.json` - Update with new queue entry
19
+
20
+ **Return Summary:**
21
+ ```json
22
+ {
23
+ "queue_id": "QUE-20251227-143000",
24
+ "total_tasks": N,
25
+ "execution_groups": [{ "id": "P1", "type": "parallel", "count": N }],
26
+ "conflicts_resolved": N,
27
+ "issues_queued": ["GH-123", "GH-124"]
28
+ }
29
+ ```
30
+
31
+ **Completion Criteria:**
32
+ - [ ] Queue JSON generated with valid DAG (no cycles)
33
+ - [ ] All file conflicts resolved with rationale
34
+ - [ ] Semantic priority calculated for all tasks
35
+ - [ ] Execution groups assigned (parallel P* / sequential S*)
36
+ - [ ] Issue statuses updated to `queued` via `ccw issue update`
37
+
38
+ ## Core Capabilities
13
39
 
14
- **Core capabilities:**
15
40
  - **Agent-driven**: issue-queue-agent handles all ordering logic
16
- - ACE semantic search for relationship discovery
17
41
  - Dependency DAG construction and cycle detection
18
42
  - File conflict detection and resolution
19
43
  - Semantic priority calculation (0.0-1.0)
20
44
  - Parallel/Sequential group assignment
21
- - Output global queue.json
22
45
 
23
46
  ## Storage Structure (Queue History)
24
47
 
@@ -77,10 +100,12 @@ Queue formation command using **issue-queue-agent** that analyzes all bound solu
77
100
  # Flags
78
101
  --issue <id> Form queue for specific issue only
79
102
  --append <id> Append issue to active queue (don't create new)
80
- --list List all queues with status
81
- --switch <queue-id> Switch active queue
82
- --archive Archive current queue (mark completed)
83
- --clear <queue-id> Delete a queue from history
103
+
104
+ # CLI subcommands (ccw issue queue ...)
105
+ ccw issue queue list List all queues with status
106
+ ccw issue queue switch <queue-id> Switch active queue
107
+ ccw issue queue archive Archive current queue
108
+ ccw issue queue delete <queue-id> Delete queue from history
84
109
  ```
85
110
 
86
111
  ## Execution Process
@@ -166,165 +191,93 @@ console.log(`Loaded ${allTasks.length} tasks from ${plannedIssues.length} issues
166
191
  ### Phase 2-4: Agent-Driven Queue Formation
167
192
 
168
193
  ```javascript
169
- // Launch issue-queue-agent to handle all ordering logic
194
+ // Build minimal prompt - agent reads schema and handles ordering
170
195
  const agentPrompt = `
171
- ## Tasks to Order
172
-
173
- ${JSON.stringify(allTasks, null, 2)}
174
-
175
- ## Project Root
176
- ${process.cwd()}
177
-
178
- ## Requirements
179
- 1. Build dependency DAG from depends_on fields
180
- 2. Detect circular dependencies (abort if found)
181
- 3. Identify file modification conflicts
182
- 4. Resolve conflicts using ordering rules:
183
- - Create before Update/Implement
184
- - Foundation scopes (config/types) before implementation
185
- - Core logic before tests
186
- 5. Calculate semantic priority (0.0-1.0) for each task
187
- 6. Assign execution groups (parallel P* / sequential S*)
188
- 7. Output queue JSON
196
+ ## Order Tasks
197
+
198
+ **Tasks**: ${allTasks.length} from ${plannedIssues.length} issues
199
+ **Project Root**: ${process.cwd()}
200
+
201
+ ### Input
202
+ \`\`\`json
203
+ ${JSON.stringify(allTasks.map(t => ({
204
+ key: \`\${t.issue_id}:\${t.task.id}\`,
205
+ type: t.task.type,
206
+ file_context: t.task.file_context,
207
+ depends_on: t.task.depends_on
208
+ })), null, 2)}
209
+ \`\`\`
210
+
211
+ ### Steps
212
+ 1. Parse tasks: Extract task keys, types, file contexts, dependencies
213
+ 2. Build DAG: Construct dependency graph from depends_on references
214
+ 3. Detect cycles: Verify no circular dependencies exist (abort if found)
215
+ 4. Detect conflicts: Identify file modification conflicts across issues
216
+ 5. Resolve conflicts: Apply ordering rules (Create→Update→Delete, config→src→tests)
217
+ 6. Calculate priority: Compute semantic priority (0.0-1.0) for each task
218
+ 7. Assign groups: Assign parallel (P*) or sequential (S*) execution groups
219
+ 8. Generate queue: Write queue JSON with ordered tasks
220
+ 9. Update index: Update queues/index.json with new queue entry
221
+
222
+ ### Rules
223
+ - **DAG Validity**: Output must be valid DAG with no circular dependencies
224
+ - **Conflict Resolution**: All file conflicts must be resolved with rationale
225
+ - **Ordering Priority**:
226
+ 1. Create before Update (files must exist before modification)
227
+ 2. Foundation before integration (config/ → src/)
228
+ 3. Types before implementation (types/ → components/)
229
+ 4. Core before tests (src/ → __tests__/)
230
+ 5. Delete last (preserve dependencies until no longer needed)
231
+ - **Parallel Safety**: Tasks in same parallel group must have no file conflicts
232
+ - **Queue ID Format**: \`QUE-YYYYMMDD-HHMMSS\` (UTC timestamp)
233
+
234
+ ### Generate Files
235
+ 1. \`.workflow/issues/queues/\${queueId}.json\` - Full queue (schema: cat .claude/workflows/cli-templates/schemas/queue-schema.json)
236
+ 2. \`.workflow/issues/queues/index.json\` - Update with new entry
237
+
238
+ ### Return Summary
239
+ \`\`\`json
240
+ {
241
+ "queue_id": "QUE-YYYYMMDD-HHMMSS",
242
+ "total_tasks": N,
243
+ "execution_groups": [{ "id": "P1", "type": "parallel", "count": N }],
244
+ "conflicts_resolved": N,
245
+ "issues_queued": ["GH-123"]
246
+ }
247
+ \`\`\`
189
248
  `;
190
249
 
191
250
  const result = Task(
192
251
  subagent_type="issue-queue-agent",
193
252
  run_in_background=false,
194
- description=`Order ${allTasks.length} tasks from ${plannedIssues.length} issues`,
253
+ description=`Order ${allTasks.length} tasks`,
195
254
  prompt=agentPrompt
196
255
  );
197
256
 
198
- // Parse agent output
199
- const agentOutput = JSON.parse(result);
200
-
201
- if (!agentOutput.success) {
202
- console.error(`Queue formation failed: ${agentOutput.error}`);
203
- if (agentOutput.cycles) {
204
- console.error('Circular dependencies:', agentOutput.cycles.join(', '));
205
- }
206
- return;
207
- }
257
+ const summary = JSON.parse(result);
208
258
  ```
209
259
 
210
- ### Phase 5: Queue Output & Summary
260
+ ### Phase 5: Summary & Status Update
211
261
 
212
262
  ```javascript
213
- const queueOutput = agentOutput.output;
214
-
215
- // Write queue.json
216
- Write('.workflow/issues/queue.json', JSON.stringify(queueOutput, null, 2));
217
-
218
- // Update issue statuses in issues.jsonl
219
- const updatedIssues = allIssues.map(issue => {
220
- if (plannedIssues.find(p => p.id === issue.id)) {
221
- return {
222
- ...issue,
223
- status: 'queued',
224
- queued_at: new Date().toISOString(),
225
- updated_at: new Date().toISOString()
226
- };
227
- }
228
- return issue;
229
- });
230
-
231
- Write(issuesPath, updatedIssues.map(i => JSON.stringify(i)).join('\n'));
232
-
233
- // Display summary
263
+ // Agent already generated queue files, use summary
234
264
  console.log(`
235
- ## Queue Formed
265
+ ## Queue Formed: ${summary.queue_id}
236
266
 
237
- **Total Tasks**: ${queueOutput.queue.length}
238
- **Issues**: ${plannedIssues.length}
239
- **Conflicts**: ${queueOutput.conflicts?.length || 0} (${queueOutput._metadata?.resolved_conflicts || 0} resolved)
267
+ **Tasks**: ${summary.total_tasks}
268
+ **Issues**: ${summary.issues_queued.join(', ')}
269
+ **Groups**: ${summary.execution_groups.map(g => `${g.id}(${g.count})`).join(', ')}
270
+ **Conflicts Resolved**: ${summary.conflicts_resolved}
240
271
 
241
- ### Execution Groups
242
- ${(queueOutput.execution_groups || []).map(g => {
243
- const type = g.type === 'parallel' ? 'Parallel' : 'Sequential';
244
- return `- ${g.id} (${type}): ${g.task_count} tasks`;
245
- }).join('\n')}
246
-
247
- ### Next Steps
248
- 1. Review queue: \`ccw issue queue list\`
249
- 2. Execute: \`/issue:execute\`
272
+ Next: \`/issue:execute\`
250
273
  `);
251
- ```
252
274
 
253
- ## Queue Schema
254
-
255
- Output `queues/{queue-id}.json`:
256
-
257
- ```json
258
- {
259
- "id": "QUE-20251227-143000",
260
- "name": "Auth Feature Queue",
261
- "status": "active",
262
- "issue_ids": ["GH-123", "GH-124"],
263
-
264
- "queue": [
265
- {
266
- "queue_id": "Q-001",
267
- "issue_id": "GH-123",
268
- "solution_id": "SOL-001",
269
- "task_id": "T1",
270
- "status": "pending",
271
- "execution_order": 1,
272
- "execution_group": "P1",
273
- "depends_on": [],
274
- "semantic_priority": 0.7,
275
- "queued_at": "2025-12-26T10:00:00Z"
276
- }
277
- ],
278
-
279
- "conflicts": [
280
- {
281
- "type": "file_conflict",
282
- "file": "src/auth.ts",
283
- "tasks": ["GH-123:T1", "GH-124:T2"],
284
- "resolution": "sequential",
285
- "resolution_order": ["GH-123:T1", "GH-124:T2"],
286
- "rationale": "T1 creates file before T2 updates",
287
- "resolved": true
288
- }
289
- ],
290
-
291
- "execution_groups": [
292
- { "id": "P1", "type": "parallel", "task_count": 3, "tasks": ["GH-123:T1", "GH-124:T1", "GH-125:T1"] },
293
- { "id": "S2", "type": "sequential", "task_count": 2, "tasks": ["GH-123:T2", "GH-124:T2"] }
294
- ],
295
-
296
- "_metadata": {
297
- "version": "2.0",
298
- "total_tasks": 5,
299
- "pending_count": 3,
300
- "completed_count": 2,
301
- "failed_count": 0,
302
- "created_at": "2025-12-26T10:00:00Z",
303
- "updated_at": "2025-12-26T11:00:00Z",
304
- "source": "issue-queue-agent"
305
- }
275
+ // Update issue statuses via CLI
276
+ for (const issueId of summary.issues_queued) {
277
+ Bash(`ccw issue update ${issueId} --status queued`);
306
278
  }
307
279
  ```
308
280
 
309
- ### Queue ID Format
310
-
311
- ```
312
- QUE-YYYYMMDD-HHMMSS
313
- 例如: QUE-20251227-143052
314
- ```
315
-
316
- ## Semantic Priority Rules
317
-
318
- | Factor | Priority Boost |
319
- |--------|---------------|
320
- | Create action | +0.2 |
321
- | Configure action | +0.15 |
322
- | Implement action | +0.1 |
323
- | Config/Types scope | +0.1 |
324
- | Refactor action | -0.05 |
325
- | Test action | -0.1 |
326
- | Delete action | -0.15 |
327
-
328
281
  ## Error Handling
329
282
 
330
283
  | Error | Resolution |
@@ -334,19 +287,6 @@ QUE-YYYYMMDD-HHMMSS
334
287
  | Unresolved conflicts | Agent resolves using ordering rules |
335
288
  | Invalid task reference | Skip and warn |
336
289
 
337
- ## Agent Integration
338
-
339
- The command uses `issue-queue-agent` which:
340
- 1. Builds dependency DAG from task depends_on fields
341
- 2. Detects circular dependencies (aborts if found)
342
- 3. Identifies file modification conflicts across issues
343
- 4. Resolves conflicts using semantic ordering rules
344
- 5. Calculates priority (0.0-1.0) for each task
345
- 6. Assigns parallel/sequential execution groups
346
- 7. Outputs structured queue JSON
347
-
348
- See `.claude/agents/issue-queue-agent.md` for agent specification.
349
-
350
290
  ## Related Commands
351
291
 
352
292
  - `/issue:plan` - Plan issues and bind solutions
@@ -0,0 +1,244 @@
1
+ ---
2
+ name: issue-manage
3
+ description: Interactive issue management with menu-driven CRUD operations. Use when managing issues, viewing issue status, editing issue fields, or performing bulk operations on issues. Triggers on "manage issue", "list issues", "edit issue", "delete issue", "bulk update", "issue dashboard".
4
+ allowed-tools: Bash, Read, Write, AskUserQuestion, Task, Glob
5
+ ---
6
+
7
+ # Issue Management Skill
8
+
9
+ Interactive menu-driven interface for issue CRUD operations via `ccw issue` CLI.
10
+
11
+ ## Quick Start
12
+
13
+ Ask me:
14
+ - "Show all issues" → List with filters
15
+ - "View issue GH-123" → Detailed inspection
16
+ - "Edit issue priority" → Modify fields
17
+ - "Delete old issues" → Remove with confirmation
18
+ - "Bulk update status" → Batch operations
19
+
20
+ ## CLI Endpoints
21
+
22
+ ```bash
23
+ # Core operations
24
+ ccw issue list # List all issues
25
+ ccw issue list <id> --json # Get issue details
26
+ ccw issue status <id> # Detailed status
27
+ ccw issue init <id> --title "..." # Create issue
28
+ ccw issue task <id> --title "..." # Add task
29
+ ccw issue bind <id> <solution-id> # Bind solution
30
+
31
+ # Queue management
32
+ ccw issue queue # List current queue
33
+ ccw issue queue add <id> # Add to queue
34
+ ccw issue queue list # Queue history
35
+ ccw issue queue switch <queue-id> # Switch queue
36
+ ccw issue queue archive # Archive queue
37
+ ccw issue queue delete <queue-id> # Delete queue
38
+ ccw issue next # Get next task
39
+ ccw issue done <queue-id> # Mark completed
40
+ ```
41
+
42
+ ## Operations
43
+
44
+ ### 1. LIST 📋
45
+
46
+ Filter and browse issues:
47
+
48
+ ```
49
+ ┌─ Filter by Status ─────────────────┐
50
+ │ □ All □ Registered │
51
+ │ □ Planned □ Queued │
52
+ │ □ Executing □ Completed │
53
+ └────────────────────────────────────┘
54
+ ```
55
+
56
+ **Flow**:
57
+ 1. Ask filter preferences → `ccw issue list --json`
58
+ 2. Display table: ID | Status | Priority | Title
59
+ 3. Select issue for detail view
60
+
61
+ ### 2. VIEW 🔍
62
+
63
+ Detailed issue inspection:
64
+
65
+ ```
66
+ ┌─ Issue: GH-123 ─────────────────────┐
67
+ │ Title: Fix authentication bug │
68
+ │ Status: planned | Priority: P2 │
69
+ │ Solutions: 2 (1 bound) │
70
+ │ Tasks: 5 pending │
71
+ └─────────────────────────────────────┘
72
+ ```
73
+
74
+ **Flow**:
75
+ 1. Fetch `ccw issue status <id> --json`
76
+ 2. Display issue + solutions + tasks
77
+ 3. Offer actions: Edit | Plan | Queue | Delete
78
+
79
+ ### 3. EDIT ✏️
80
+
81
+ Modify issue fields:
82
+
83
+ | Field | Options |
84
+ |-------|---------|
85
+ | Title | Free text |
86
+ | Priority | P1-P5 |
87
+ | Status | registered → completed |
88
+ | Context | Problem description |
89
+ | Labels | Comma-separated |
90
+
91
+ **Flow**:
92
+ 1. Select field to edit
93
+ 2. Show current value
94
+ 3. Collect new value via AskUserQuestion
95
+ 4. Update `.workflow/issues/issues.jsonl`
96
+
97
+ ### 4. DELETE 🗑️
98
+
99
+ Remove with confirmation:
100
+
101
+ ```
102
+ ⚠️ Delete issue GH-123?
103
+ This will also remove:
104
+ - Associated solutions
105
+ - Queued tasks
106
+
107
+ [Delete] [Cancel]
108
+ ```
109
+
110
+ **Flow**:
111
+ 1. Confirm deletion via AskUserQuestion
112
+ 2. Remove from `issues.jsonl`
113
+ 3. Clean up `solutions/<id>.jsonl`
114
+ 4. Remove from `queue.json`
115
+
116
+ ### 5. BULK 📦
117
+
118
+ Batch operations:
119
+
120
+ | Operation | Description |
121
+ |-----------|-------------|
122
+ | Update Status | Change multiple issues |
123
+ | Update Priority | Batch priority change |
124
+ | Add Labels | Tag multiple issues |
125
+ | Delete Multiple | Bulk removal |
126
+ | Queue All Planned | Add all planned to queue |
127
+ | Retry All Failed | Reset failed tasks |
128
+
129
+ ## Workflow
130
+
131
+ ```
132
+ ┌──────────────────────────────────────┐
133
+ │ Main Menu │
134
+ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │
135
+ │ │List│ │View│ │Edit│ │Bulk│ │
136
+ │ └──┬─┘ └──┬─┘ └──┬─┘ └──┬─┘ │
137
+ └─────┼──────┼──────┼──────┼──────────┘
138
+ │ │ │ │
139
+ ▼ ▼ ▼ ▼
140
+ Filter Detail Fields Multi
141
+ Select Actions Update Select
142
+ │ │ │ │
143
+ └──────┴──────┴──────┘
144
+
145
+
146
+ Back to Menu
147
+ ```
148
+
149
+ ## Implementation Guide
150
+
151
+ ### Entry Point
152
+
153
+ ```javascript
154
+ // Parse input for issue ID
155
+ const issueId = input.match(/^([A-Z]+-\d+|ISS-\d+)/i)?.[1];
156
+
157
+ // Show main menu
158
+ await showMainMenu(issueId);
159
+ ```
160
+
161
+ ### Main Menu Pattern
162
+
163
+ ```javascript
164
+ // 1. Fetch dashboard data
165
+ const issues = JSON.parse(Bash('ccw issue list --json') || '[]');
166
+ const queue = JSON.parse(Bash('ccw issue queue --json 2>/dev/null') || '{}');
167
+
168
+ // 2. Display summary
169
+ console.log(`Issues: ${issues.length} | Queue: ${queue.pending_count || 0} pending`);
170
+
171
+ // 3. Ask action via AskUserQuestion
172
+ const action = AskUserQuestion({
173
+ questions: [{
174
+ question: 'What would you like to do?',
175
+ header: 'Action',
176
+ options: [
177
+ { label: 'List Issues', description: 'Browse with filters' },
178
+ { label: 'View Issue', description: 'Detail view' },
179
+ { label: 'Edit Issue', description: 'Modify fields' },
180
+ { label: 'Bulk Operations', description: 'Batch actions' }
181
+ ]
182
+ }]
183
+ });
184
+
185
+ // 4. Route to handler
186
+ ```
187
+
188
+ ### Filter Pattern
189
+
190
+ ```javascript
191
+ const filter = AskUserQuestion({
192
+ questions: [{
193
+ question: 'Filter by status?',
194
+ header: 'Filter',
195
+ multiSelect: true,
196
+ options: [
197
+ { label: 'All', description: 'Show all' },
198
+ { label: 'Registered', description: 'Unplanned' },
199
+ { label: 'Planned', description: 'Has solution' },
200
+ { label: 'Executing', description: 'In progress' }
201
+ ]
202
+ }]
203
+ });
204
+ ```
205
+
206
+ ### Edit Pattern
207
+
208
+ ```javascript
209
+ // Select field
210
+ const field = AskUserQuestion({...});
211
+
212
+ // Get new value based on field type
213
+ // For Priority: show P1-P5 options
214
+ // For Status: show status options
215
+ // For Title: accept free text via "Other"
216
+
217
+ // Update file
218
+ const issuesPath = '.workflow/issues/issues.jsonl';
219
+ // Read → Parse → Update → Write
220
+ ```
221
+
222
+ ## Data Files
223
+
224
+ | File | Purpose |
225
+ |------|---------|
226
+ | `.workflow/issues/issues.jsonl` | Issue records |
227
+ | `.workflow/issues/solutions/<id>.jsonl` | Solutions per issue |
228
+ | `.workflow/issues/queue.json` | Execution queue |
229
+
230
+ ## Error Handling
231
+
232
+ | Error | Resolution |
233
+ |-------|------------|
234
+ | No issues found | Suggest `/issue:new` to create |
235
+ | Issue not found | Show available issues, re-prompt |
236
+ | Write failure | Check file permissions |
237
+ | Queue error | Display ccw error message |
238
+
239
+ ## Related Commands
240
+
241
+ - `/issue:new` - Create structured issue
242
+ - `/issue:plan` - Generate solution
243
+ - `/issue:queue` - Form execution queue
244
+ - `/issue:execute` - Execute tasks
@@ -21,7 +21,7 @@ WHILE task exists:
21
21
  - TEST: Run task.test commands
22
22
  - VERIFY: Check task.acceptance criteria
23
23
  - COMMIT: Stage files, commit with task.commit.message_template
24
- 3. Report completion via ccw issue complete <queue_id>
24
+ 3. Report completion via ccw issue complete <item_id>
25
25
  4. Fetch next task via ccw issue next
26
26
 
27
27
  WHEN queue empty:
@@ -37,7 +37,7 @@ ccw issue next
37
37
  ```
38
38
 
39
39
  This returns JSON with the full task definition:
40
- - `queue_id`: Unique ID for queue tracking (e.g., "Q-001")
40
+ - `item_id`: Unique task identifier in queue (e.g., "T-1")
41
41
  - `issue_id`: Parent issue ID (e.g., "ISSUE-20251227-001")
42
42
  - `task`: Full task definition with implementation steps
43
43
  - `context`: Relevant files and patterns
@@ -51,7 +51,7 @@ Expected task structure:
51
51
 
52
52
  ```json
53
53
  {
54
- "queue_id": "Q-001",
54
+ "item_id": "T-1",
55
55
  "issue_id": "ISSUE-20251227-001",
56
56
  "solution_id": "SOL-001",
57
57
  "task": {
@@ -159,7 +159,7 @@ git add path/to/file1.ts path/to/file2.ts ...
159
159
  git commit -m "$(cat <<'EOF'
160
160
  [task.commit.message_template]
161
161
 
162
- Queue-ID: [queue_id]
162
+ Item-ID: [item_id]
163
163
  Issue-ID: [issue_id]
164
164
  Task-ID: [task.id]
165
165
  EOF
@@ -180,7 +180,7 @@ EOF
180
180
  After commit succeeds, report to queue system:
181
181
 
182
182
  ```bash
183
- ccw issue complete [queue_id] --result '{
183
+ ccw issue complete [item_id] --result '{
184
184
  "files_modified": ["path1", "path2"],
185
185
  "tests_passed": true,
186
186
  "acceptance_passed": true,
@@ -193,7 +193,7 @@ ccw issue complete [queue_id] --result '{
193
193
  **If task failed and cannot be fixed:**
194
194
 
195
195
  ```bash
196
- ccw issue fail [queue_id] --reason "Phase [X] failed: [details]"
196
+ ccw issue fail [item_id] --reason "Phase [X] failed: [details]"
197
197
  ```
198
198
 
199
199
  ## Step 5: Continue to Next Task
@@ -206,7 +206,7 @@ ccw issue next
206
206
 
207
207
  **Output progress:**
208
208
  ```
209
- ✓ [N/M] Completed: [queue_id] - [task.title]
209
+ ✓ [N/M] Completed: [item_id] - [task.title]
210
210
  → Fetching next task...
211
211
  ```
212
212
 
@@ -221,10 +221,10 @@ When `ccw issue next` returns `{ "status": "empty" }`:
221
221
 
222
222
  **Total Tasks Executed**: N
223
223
  **All Commits**:
224
- | # | Queue ID | Task | Commit |
225
- |---|----------|------|--------|
226
- | 1 | Q-001 | Task title | abc123 |
227
- | 2 | Q-002 | Task title | def456 |
224
+ | # | Item ID | Task | Commit |
225
+ |---|---------|------|--------|
226
+ | 1 | T-1 | Task title | abc123 |
227
+ | 2 | T-2 | Task title | def456 |
228
228
 
229
229
  **Files Modified**:
230
230
  - path/to/file1.ts
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAuEA,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAyNxC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAuEA,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CA0NxC"}
package/ccw/dist/cli.js CHANGED
@@ -250,6 +250,7 @@ export function run(argv) {
250
250
  .option('--priority <n>', 'Task priority (1-5)')
251
251
  .option('--format <fmt>', 'Output format: json, markdown')
252
252
  .option('--json', 'Output as JSON')
253
+ .option('--ids', 'List only IDs (one per line, for scripting)')
253
254
  .option('--force', 'Force operation')
254
255
  // New options for solution/queue management
255
256
  .option('--solution <path>', 'Solution JSON file path')