220 lines
4.7 KiB
Markdown
220 lines
4.7 KiB
Markdown
# Task Move Command
|
|
|
|
Move tasks between status folders following the task management protocol.
|
|
|
|
## Usage
|
|
|
|
```
|
|
/task-move TASK-ID new-status [reason]
|
|
```
|
|
|
|
## Description
|
|
|
|
Updates task status by moving files between status folders and updating tracking information. Follows all protocol rules including validation and audit trails.
|
|
|
|
## Basic Commands
|
|
|
|
### Start Working on a Task
|
|
```
|
|
/task-move TASK-001 in_progress
|
|
```
|
|
Moves from todos → in_progress
|
|
|
|
### Complete Implementation
|
|
```
|
|
/task-move TASK-001 qa "Implementation complete, ready for testing"
|
|
```
|
|
Moves from in_progress → qa
|
|
|
|
### Task Passed QA
|
|
```
|
|
/task-move TASK-001 completed "All tests passed"
|
|
```
|
|
Moves from qa → completed
|
|
|
|
### Block a Task
|
|
```
|
|
/task-move TASK-004 on_hold "Waiting for TASK-001 API completion"
|
|
```
|
|
Moves to on_hold with reason
|
|
|
|
### Unblock a Task
|
|
```
|
|
/task-move TASK-004 todos "Dependencies resolved"
|
|
```
|
|
Moves from on_hold → todos
|
|
|
|
### Failed QA
|
|
```
|
|
/task-move TASK-001 in_progress "Failed integration test - fixing null pointer"
|
|
```
|
|
Moves from qa → in_progress
|
|
|
|
## Bulk Operations
|
|
|
|
### Move Multiple Tasks
|
|
```
|
|
/task-move TASK-001,TASK-002,TASK-003 in_progress
|
|
```
|
|
|
|
### Move by Filter
|
|
```
|
|
/task-move --filter "priority:high status:todos" in_progress
|
|
```
|
|
|
|
### Move with Pattern
|
|
```
|
|
/task-move TASK-00* qa "Batch testing ready"
|
|
```
|
|
|
|
## Validation Rules
|
|
|
|
The command enforces:
|
|
1. **Valid Transitions**: Only allowed status changes
|
|
2. **One Task Per Agent**: Warns if agent has task in_progress
|
|
3. **Dependency Check**: Warns if dependencies not met
|
|
4. **File Existence**: Verifies task exists before moving
|
|
|
|
## Status Transition Map
|
|
|
|
```
|
|
todos ──────→ in_progress ──────→ qa ──────→ completed
|
|
↓ ↓ ↓
|
|
└───────────→ on_hold ←─────────┘
|
|
↓
|
|
todos/in_progress
|
|
```
|
|
|
|
## Options
|
|
|
|
### Force Move
|
|
```
|
|
/task-move TASK-001 completed --force
|
|
```
|
|
Bypasses validation (use with caution)
|
|
|
|
### Dry Run
|
|
```
|
|
/task-move TASK-001 qa --dry-run
|
|
```
|
|
Shows what would happen without executing
|
|
|
|
### With Assignment
|
|
```
|
|
/task-move TASK-001 in_progress --assign dev-frontend
|
|
```
|
|
Assigns task to specific agent
|
|
|
|
### With Time Estimate
|
|
```
|
|
/task-move TASK-001 in_progress --estimate 4h
|
|
```
|
|
Updates time estimate when starting
|
|
|
|
## Error Handling
|
|
|
|
### Task Not Found
|
|
```
|
|
Error: TASK-999 not found in any status folder
|
|
Suggestion: Use /task-status to see available tasks
|
|
```
|
|
|
|
### Invalid Transition
|
|
```
|
|
Error: Cannot move from 'completed' to 'todos'
|
|
Valid transitions from completed: None (terminal state)
|
|
```
|
|
|
|
### Agent Conflict
|
|
```
|
|
Warning: dev-frontend already has TASK-002 in progress
|
|
Continue? (y/n)
|
|
```
|
|
|
|
### Dependency Block
|
|
```
|
|
Warning: TASK-004 depends on TASK-001 (currently in_progress)
|
|
Moving to on_hold instead? (y/n)
|
|
```
|
|
|
|
## Automation
|
|
|
|
### Auto-move on Completion
|
|
```
|
|
/task-move TASK-001 --auto-progress
|
|
```
|
|
Automatically moves to next status when conditions met
|
|
|
|
### Scheduled Moves
|
|
```
|
|
/task-move TASK-005 in_progress --at "tomorrow 9am"
|
|
```
|
|
|
|
### Conditional Moves
|
|
```
|
|
/task-move TASK-007 qa --when "TASK-006 completed"
|
|
```
|
|
|
|
## Examples
|
|
|
|
### Example 1: Developer Workflow
|
|
```
|
|
# Start work
|
|
/task-move TASK-001 in_progress
|
|
|
|
# Complete and test
|
|
/task-move TASK-001 qa "Implementation done, tests passing"
|
|
|
|
# After review
|
|
/task-move TASK-001 completed "Code review approved"
|
|
```
|
|
|
|
### Example 2: Handling Blocks
|
|
```
|
|
# Block due to dependency
|
|
/task-move TASK-004 on_hold "Waiting for auth API from TASK-001"
|
|
|
|
# Unblock when ready
|
|
/task-move TASK-004 todos "TASK-001 now in QA, API available"
|
|
```
|
|
|
|
### Example 3: QA Workflow
|
|
```
|
|
# QA picks up task
|
|
/task-move TASK-001 qa --assign qa-engineer
|
|
|
|
# Found issues
|
|
/task-move TASK-001 in_progress "Bug: handling empty responses"
|
|
|
|
# Fixed and retesting
|
|
/task-move TASK-001 qa "Bug fixed, ready for retest"
|
|
```
|
|
|
|
## Status Update Details
|
|
|
|
Each move updates:
|
|
1. **File Location**: Physical file movement
|
|
2. **Status Tracker**: TASK-STATUS-TRACKER.yaml entry
|
|
3. **Task Metadata**: Status field in task file
|
|
4. **Execution Tracker**: Overall progress metrics
|
|
|
|
## Best Practices
|
|
|
|
1. **Always Provide Reasons**: Especially for blocks and failures
|
|
2. **Check Dependencies**: Before moving to in_progress
|
|
3. **Update Estimates**: When starting work
|
|
4. **Clear Block Reasons**: Help others understand delays
|
|
|
|
## Integration
|
|
|
|
- Use after `/task-status` to see available tasks
|
|
- Updates reflected in `/task-report`
|
|
- Triggers notifications if configured
|
|
- Logs all moves for audit trail
|
|
|
|
## Notes
|
|
|
|
- Moves are atomic - either fully complete or rolled back
|
|
- Status history is permanent and cannot be edited
|
|
- Timestamp uses current time in ISO-8601 format
|
|
- Agent name is automatically detected from context |