mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-06 01:54:11 +08:00
9.3 KiB
9.3 KiB
title, sidebar_label, sidebar_position, description
| title | sidebar_label | sidebar_position | description |
|---|---|---|---|
| issue:execute | issue:execute | 5 | Execute issue queue with DAG-based parallel orchestration |
issue:execute
Minimal orchestrator that dispatches solution IDs to executors. Each executor receives a complete solution with all tasks and commits once per solution.
Description
The issue:execute command executes queued solutions using DAG-based parallel orchestration. Each executor receives a complete solution with all tasks, executes tasks sequentially, and commits once per solution. Supports optional git worktree isolation for clean workspace management.
Key Features
- DAG-based parallelism: Automatic parallel execution of independent solutions
- Solution-level execution: Each executor handles all tasks in a solution
- Single commit per solution: Clean git history with formatted summaries
- Worktree isolation: Optional isolated workspace for queue execution
- Multiple executors: Codex, Gemini, or Agent support
- Resume capability: Recover from interruptions with existing worktree
Usage
# Execute specific queue (REQUIRED)
/issue:execute --queue QUE-xxx
# Execute in isolated worktree
/issue:execute --queue QUE-xxx --worktree
# Resume in existing worktree
/issue:execute --queue QUE-xxx --worktree /path/to/worktree
# Dry-run (show DAG without executing)
/issue:execute --queue QUE-xxx
# Select: Dry-run mode
Arguments
| Argument | Required | Description |
|---|---|---|
--queue <id> |
Yes | Queue ID to execute (required) |
--worktree |
No | Create isolated worktree for execution |
--worktree <path> |
No | Resume in existing worktree |
Executor Selection
Interactive prompt selects:
- Codex (Recommended): Autonomous coding with 2hr timeout
- Gemini: Large context analysis and implementation
- Agent: Claude Code sub-agent for complex tasks
Examples
Execute Queue (Interactive)
/issue:execute --queue QUE-20251227-143000
# Output:
# ## Executing Queue: QUE-20251227-143000
# ## Queue DAG (Solution-Level)
# - Total Solutions: 5
# - Ready: 2
# - Completed: 0
# - Parallel in batch 1: 2
#
# Select executor:
# [1] Codex (Recommended)
# [2] Gemini
# [3] Agent
# Select mode:
# [1] Execute (Recommended)
# [2] Dry-run
# Use git worktree?
# [1] Yes (Recommended)
# [2] No
Queue ID Not Provided
/issue:execute
# Output:
# Available Queues:
# ID Status Progress Issues
# -----------------------------------------------------------
# → QUE-20251215-001 active 3/10 ISS-001, ISS-002
# QUE-20251210-002 active 0/5 ISS-003
# QUE-20251205-003 completed 8/8 ISS-004
#
# Which queue would you like to execute?
# [1] QUE-20251215-001 - 3/10 completed, Issues: ISS-001, ISS-002
# [2] QUE-20251210-002 - 0/5 completed, Issues: ISS-003
Execute with Worktree
/issue:execute --queue QUE-xxx --worktree
# Output:
# Created queue worktree: /repo/.ccw/worktrees/queue-exec-QUE-xxx
# Branch: queue-exec-QUE-xxx
# ### Executing Solutions (DAG batch 1): S-1, S-2
# [S-1] Executor launched (codex, 2hr timeout)
# [S-2] Executor launched (codex, 2hr timeout)
# ✓ S-1 completed: 3 tasks, 1 commit
# ✓ S-2 completed: 2 tasks, 1 commit
Resume Existing Worktree
# Find existing worktrees
git worktree list
# /repo/.ccw/worktrees/queue-exec-QUE-123
# Resume execution
/issue:execute --queue QUE-123 --worktree /repo/.ccw/worktrees/queue-exec-QUE-123
# Output:
# Resuming in existing worktree: /repo/.ccw/worktrees/queue-exec-QUE-123
# Branch: queue-exec-QUE-123
# ### Executing Solutions (DAG batch 2): S-3
Issue Lifecycle Flow
graph TB
A[Start] --> B{Queue ID
Provided?}
B -->|No| C[List Queues]
B -->|Yes| D[Validate Queue]
C --> E[User Selects]
E --> D
D --> F{Use
Worktree?}
F -->|Yes| G[Create/Resume
Worktree]
F -->|No| H[Main Workspace]
G --> I[Get DAG]
H --> I
I --> J[Parallel Batches]
J --> K[Dispatch Batch 1]
K --> L1[Executor 1:
S-1 Detail]
K --> L2[Executor 2:
S-2 Detail]
K --> L3[Executor N:
S-N Detail]
L1 --> M1[Execute All Tasks]
L2 --> M2[Execute All Tasks]
L3 --> M3[Execute All Tasks]
M1 --> N1[Commit Once]
M2 --> N2[Commit Once]
M3 --> N3[Commit Once]
N1 --> O[Mark Done]
N2 --> O
N3 --> O
O --> P{More Batches?}
P -->|Yes| I
P -->|No| Q{Worktree
Used?}
Q -->|Yes| R{All Complete?}
Q -->|No| S[Done]
R -->|Yes| T[Merge Strategy]
R -->|No| I
T --> U1[Create PR]
T --> U2[Merge Main]
T --> U3[Keep Branch]
Execution Model
DAG-Based Batching
Batch 1 (Parallel): S-1, S-2 → No file conflicts
Batch 2 (Parallel): S-3, S-4 → No conflicts, waits for Batch 1
Batch 3 (Sequential): S-5 → Depends on S-3
Solution Execution (Within Executor)
ccw issue detail S-1 → Get full solution with all tasks
↓
For each task T1, T2, T3...:
- Follow implementation steps
- Run test commands
- Verify acceptance criteria
↓
After ALL tasks pass:
git commit -m "feat(scope): summary
Solution: S-1
Tasks completed: T1, T2, T3
Changes:
- file1: what changed
- file2: what changed
Verified: all tests passed"
↓
ccw issue done S-1 --result '{summary, files, commit}'
Executor Dispatch
Codex Executor
ccw cli -p "## Execute Solution: S-1
..." --tool codex --mode write --id exec-S-1
# Timeout: 2 hours (7200000ms)
# Background: true
Gemini Executor
ccw cli -p "## Execute Solution: S-1
..." --tool gemini --mode write --id exec-S-1
# Timeout: 1 hour (3600000ms)
# Background: true
Agent Executor
Task({
subagent_type: 'code-developer',
run_in_background: false,
description: 'Execute solution S-1',
prompt: '...' // Full execution prompt
})
Worktree Management
Create New Worktree
# One worktree for entire queue execution
git worktree add .ccw/worktrees/queue-exec-QUE-xxx -b queue-exec-QUE-xxx
# All solutions execute in this isolated workspace
# Main workspace remains untouched
Resume Existing Worktree
# Find interrupted executions
git worktree list
# Output:
# /repo/.ccw/worktrees/queue-exec-QUE-123 abc1234 [queue-exec-QUE-123]
# Resume with worktree path
/issue:execute --queue QUE-123 --worktree /repo/.ccw/worktrees/queue-exec-QUE-123
Worktree Completion
After all batches complete:
# Prompt for merge strategy
Queue complete. What to do with worktree branch "queue-exec-QUE-xxx"?
[1] Create PR (Recommended)
[2] Merge to main
[3] Keep branch
# Create PR
git push -u origin queue-exec-QUE-xxx
gh pr create --title "Queue QUE-xxx" --body "Issue queue execution"
git worktree remove .ccw/worktrees/queue-exec-QUE-xxx
# OR Merge to main
git merge --no-ff queue-exec-QUE-xxx -m "Merge queue QUE-xxx"
git branch -d queue-exec-QUE-xxx
git worktree remove .ccw/worktrees/queue-exec-QUE-xxx
CLI Endpoints
Queue Operations
# List queues
ccw issue queue list --brief --json
# Get DAG
ccw issue queue dag --queue QUE-xxx
# Returns: {parallel_batches: [["S-1","S-2"], ["S-3"]]}
Solution Operations
# Get solution details (READ-ONLY)
ccw issue detail S-1
# Returns: Full solution with all tasks
# Mark solution complete
ccw issue done S-1 --result '{"summary":"...","files_modified":[...],"commit":{...},"tasks_completed":3}'
# Mark solution failed
ccw issue done S-1 --fail --reason '{"task_id":"T2","error_type":"test_failure","message":"..."}'
Commit Message Format
feat(auth): implement OAuth2 login flow
Solution: S-1
Tasks completed: T1, T2, T3
Changes:
- src/auth/oauth.ts: Implemented OAuth2 flow
- src/auth/login.ts: Integrated OAuth with existing login
- tests/auth/oauth.test.ts: Added comprehensive tests
Verified: all tests passed
Commit Types:
feat: New featurefix: Bug fixrefactor: Code refactoringdocs: Documentationtest: Test updateschore: Maintenance tasks
Related Commands
- issue:queue - Form execution queue before executing
- issue:plan - Plan solutions before queuing
- ccw issue retry - Reset failed solutions for retry
- ccw issue queue dag - View dependency graph
- ccw issue detail <id> - View solution details
Best Practices
- Use Codex executor: Best for long-running autonomous work
- Enable worktree: Keeps main workspace clean during execution
- Check DAG first: Use dry-run to see execution plan
- Monitor progress: Executors run in background, check completion
- Resume on failure: Use existing worktree path to continue
- Review commits: Each solution produces one formatted commit
Troubleshooting
| Error | Cause | Resolution |
|---|---|---|
| No queue specified | --queue argument missing | List queues and select one |
| No ready solutions | Dependencies blocked | Check DAG for blocking issues |
| Executor timeout | Solution too complex | Break into smaller solutions |
| Worktree exists | Previous incomplete execution | Resume with --worktree <path> |
| Partial task failure | Task reports failure | Check ccw issue done --fail output |
| Git conflicts | Parallel executors touched same files | DAG should prevent this |