managing-task-lifecycle
Use when starting, pausing, completing, or transitioning task status in the development workflow.
$ 설치
git clone https://github.com/BPSAI/paircoder /tmp/paircoder && cp -r /tmp/paircoder/tools/cli/bpsai_pair/data/cookiecutter-paircoder/%7B%7Bcookiecutter.project_slug%7D%7D/.claude/skills/managing-task-lifecycle ~/.claude/skills/paircoder// tip: Run this command in your terminal to install the skill
name: managing-task-lifecycle description: Use when starting, pausing, completing, or transitioning task status in the development workflow.
PairCoder Task Lifecycle
Decision Tree: Which Command to Use?
Is Trello connected? (check: bpsai-pair trello status)
│
├── YES → Use `ttask` commands (primary)
│ ├── Start: bpsai-pair ttask start TRELLO-XX
│ ├── Complete: bpsai-pair ttask done TRELLO-XX --summary "..." --list "Deployed/Done"
│ └── Block: bpsai-pair ttask block TRELLO-XX --reason "..."
│
└── NO → Use `task update` commands
├── Start: bpsai-pair task update TASK-XXX --status in_progress
├── Complete: bpsai-pair task update TASK-XXX --status done
└── Block: bpsai-pair task update TASK-XXX --status blocked
Rule of thumb: If you see TRELLO-XX IDs, use ttask. If you only have TASK-XXX IDs, use task update.
CRITICAL: Always Use CLI Commands
Task state changes MUST go through the CLI to trigger hooks (Trello sync, timers, state updates).
Never just edit task files or say "marking as done" - run the command.
Automatic Hooks
When you change task status via CLI, these hooks fire automatically:
On task update --status in_progress:
start_timer- Begins time trackingsync_trello- Moves card to "In Progress"update_state- Updates state.md current focus
On task update --status done:
stop_timer- Stops timer, records durationrecord_metrics- Records token usage and costsrecord_velocity- Tracks sprint velocitysync_trello- Moves card to "Deployed/Done"update_state- Updates state.mdcheck_unblocked- Identifies newly unblocked tasks
On task update --status blocked:
sync_trello- Moves card to "Issues/Tech Debt"update_state- Updates state.md
You don't need to manually update Trello, start/stop timers, or refresh state.md - hooks handle it.
Starting a Task
bpsai-pair task update TASK-XXX --status in_progress
This will:
- Update task file status
- Move Trello card to "In Progress" list
- Start timer (when implemented)
- Update state.md current focus
During Work (Progress Updates)
bpsai-pair ttask comment TASK-XXX "Completed API endpoints, starting tests"
This adds a comment to the Trello card without changing status. Use for:
- Milestone updates
- Noting decisions
- Progress visibility for team
Completing a Task
For Trello Projects (Recommended)
Use ttask done - it handles everything in one command:
bpsai-pair ttask done TRELLO-XX --summary "What was accomplished" --list "Deployed/Done"
This single command will:
- ✓ Move Trello card to "Deployed/Done" list
- ✓ Auto-check ALL acceptance criteria items
- ✓ Add completion summary to card
- ✓ Update local task file status
- ✓ Trigger all completion hooks (timer, metrics, state.md)
You do NOT need to also run task update --status done - ttask done handles it.
For Non-Trello Projects
Use task update:
bpsai-pair task update TASK-XXX --status done
This will:
- Update task file status
- Trigger completion hooks (timer, metrics, state.md)
Common Mistakes
| Mistake | Why It's Wrong | Correct Approach |
|---|---|---|
Using only task update on Trello projects | Doesn't check AC on Trello card | Use ttask done instead |
| Using both commands on Trello projects | Unnecessary duplication | Just use ttask done |
Using ttask on non-Trello projects | Commands won't work | Use task update |
Quick Reference
Local Task Commands (task)
Use these for status changes - they trigger all hooks.
| Action | Command |
|---|---|
| Start task | bpsai-pair task update TASK-XXX --status in_progress |
| Complete task | bpsai-pair task update TASK-XXX --status done |
| Block task | bpsai-pair task update TASK-XXX --status blocked |
| Show next task | bpsai-pair task next |
| Auto-assign next | bpsai-pair task auto-next |
| List all tasks | bpsai-pair task list |
| Show task details | bpsai-pair task show TASK-XXX |
Trello Card Commands (ttask)
Use these for direct Trello operations.
| Action | Command |
|---|---|
| List Trello cards | bpsai-pair ttask list |
| Show card details | bpsai-pair ttask show TRELLO-XX |
| Start card | bpsai-pair ttask start TRELLO-XX |
| Complete card | bpsai-pair ttask done TRELLO-XX --summary "..." --list "Deployed/Done" |
| Check acceptance item | bpsai-pair ttask check TRELLO-XX "item text" |
| Add progress comment | bpsai-pair ttask comment TRELLO-XX "message" |
| Block card | bpsai-pair ttask block TRELLO-XX --reason "why" |
| Move card to list | bpsai-pair ttask move TRELLO-XX "List Name" |
When to Use task vs ttask
For Trello-connected projects (preferred):
| Scenario | Command |
|---|---|
| Starting a task | ttask start TRELLO-XX |
| Progress updates | ttask comment TRELLO-XX "message" |
| Completing a task | ttask done TRELLO-XX --summary "..." --list "Deployed/Done" |
| Blocking a task | ttask block TRELLO-XX --reason "..." |
For non-Trello projects:
| Scenario | Command |
|---|---|
| Starting a task | task update TASK-XXX --status in_progress |
| Completing a task | task update TASK-XXX --status done |
| Blocking a task | task update TASK-XXX --status blocked |
Key insight: ttask commands handle both Trello AND local state. You don't need to run task update after ttask done - it handles everything.
Task Status Values
| Status | Meaning | Trello List |
|---|---|---|
pending | Not started | Backlog / Planned |
in_progress | Currently working | In Progress |
blocked | Waiting on something | Issues / Blocked |
review | Ready for review | Review |
done | Completed | Deployed / Done |
Workflow Checklist
When Starting a Task
- Run:
bpsai-pair task update TASK-XXX --status in_progress - Verify Trello card moved
- Read the task file for implementation plan
- Begin work
During Work
- Add progress comments:
bpsai-pair ttask comment TASK-XXX "status update" - Commit frequently with task ID in message
When Completing a Task
For Trello projects:
- Ensure tests pass:
pytest -v - Find card ID:
bpsai-pair ttask list - Complete:
bpsai-pair ttask done TRELLO-XX --summary "..." --list "Deployed/Done" - Update state.md with what was done
- Commit changes with task ID in message
For non-Trello projects:
- Ensure tests pass:
pytest -v - Complete:
bpsai-pair task update TASK-XXX --status done - Update state.md with what was done
- Commit changes with task ID in message
Validation Scripts
Use these scripts to validate before completion:
Validate Task File Format
python .claude/skills/managing-task-lifecycle/scripts/validate_task_status.py TASK-XXX
Checks: frontmatter, required fields, valid status, acceptance criteria section.
Check Completion Readiness
python .claude/skills/managing-task-lifecycle/scripts/check_completion.py TASK-XXX
Runs: task file validation, tests, linting, git status.
Validation loop: Run → fix issues → re-run until all checks pass.
Trello Sync Commands
# Check Trello connection status
bpsai-pair trello status
# Sync plan to Trello (creates/updates cards)
bpsai-pair plan sync-trello PLAN-ID
# Force refresh from Trello
bpsai-pair trello refresh
Full CLI Reference
See reference/all-cli-commands.md for complete command documentation.
Repository
