What This Skill Does
This skill enforces mandatory Taskwarrior integration for ALL coding activities. It ensures every piece of work is:
- Decomposed into trackable Taskwarrior tasks BEFORE code is written
- Tracked with proper attributes (project, priority, due date, tags)
- Time-accounted via automatic Timewarrior integration
- Dependency-managed for complex multi-step projects
- Completed with proper task lifecycle (add → start → done)
CRITICAL: NO CODE IS WRITTEN until Taskwarrior tasks are created and started.
When This Skill Activates
Trigger this skill when you mention:
- "taskwarrior"
- "task warrior"
- "tw" (as abbreviation)
- "create a task for this"
- "track this work"
- "add to taskwarrior"
- "start a task"
- "task management"
- "time tracking"
Complete Taskwarrior Integration Protocol
Phase 1: Task Decomposition (MANDATORY FIRST STEP)
Before writing ANY code, decompose the request into Taskwarrior tasks:
For Simple Requests (1 task):
task add "Brief description of work" project:ProjectName priority:H/M/L due:today/tomorrow/YYYY-MM-DD +tag1 +tag2
For Complex Requests (multiple tasks with dependencies):
# Parent task
task add "Main project goal" project:ProjectName priority:H due:3days +architecture +planning
# Subtasks with dependencies
task add "Subtask 1" project:ProjectName depends:1 priority:M +implementation
task add "Subtask 2" project:ProjectName depends:2 priority:M +testing
task add "Subtask 3" project:ProjectName depends:3 priority:L +documentation
Required Task Attributes:
- project: Categorize the work (e.g., project:DevOps, project:WebDev)
- priority: H (high), M (medium), or L (low) based on urgency
- due: Realistic deadline (today, tomorrow, YYYY-MM-DD, or relative like 3days)
- tags: At least 2 relevant tags (+feature, +bugfix, +refactor, +testing, +deployment, +security, etc.)
Phase 2: Task Activation & Time Tracking
After creating tasks, activate them to start time tracking:
# Start the first task in the dependency chain
task <ID> start
# Verify task is active
task active
# Timewarrior should automatically begin tracking
timew
What happens:
- Taskwarrior marks task as started
- Timewarrior begins tracking time spent
- Task appears in
task activelist - Urgency score increases for started tasks
Phase 3: Code Implementation
Now and ONLY now proceed with writing code:
- Implement the solution following best practices
- Annotate task with key decisions or blockers:
task <ID> annotate "Decision: Using FastAPI over Flask for async support"
task <ID> annotate "Blocker: Waiting for API credentials"
- If blocked, stop the task temporarily:
task <ID> stop
task <ID> modify +blocked
- If scope changes mid-implementation:
task <ID> modify +additional_tag description:"Updated description"
Phase 4: Task Completion
After code is delivered and verified, complete the task:
# Complete the task
task <ID> done
# Timewarrior automatically stops tracking
# View time summary for this task
timew summary :ids
# Check if dependent tasks are now unblocked
task next
Completion Checklist:
- ✅ Code is written and tested
- ✅ Documentation is updated (if applicable)
- ✅ Task annotations reflect final state
- ✅ Any blockers are resolved or escalated
- ✅ Time tracking is accurate
Phase 5: Verification & Reporting
After completing tasks, provide summary:
# Show completed task details
task <ID> info
# Show time spent
timew summary :ids
# Show remaining work
task next
Task Decomposition Examples
Example 1: Simple Single-File Script
User Request: "Create a Bash script that backs up my home directory"
Task Decomposition:
task add "Create home directory backup script" project:DevOps priority:M due:today +scripting +automation +backup
Lifecycle:
task 42 start
[Write backup.sh script]
task 42 done
timew summary :ids
Example 2: Complex Multi-Component Feature
User Request: "Build a REST API with authentication, user management, and PostgreSQL"
Task Decomposition:
# Parent task
task add "Build FastAPI REST API with auth" project:WebDev priority:H due:5days +api +backend
# Dependent subtasks
task add "Design PostgreSQL schema" project:WebDev depends:43 priority:H due:1day +database +design
task add "Implement JWT authentication" project:WebDev depends:44 priority:H due:2days +auth +security
task add "Create user management endpoints" project:WebDev depends:45 priority:M due:3days +crud +endpoints
task add "Write API documentation" project:WebDev depends:46 priority:L due:5days +documentation +openapi
task add "Deploy to staging environment" project:WebDev depends:47 priority:M due:5days +deployment +staging
Lifecycle:
task 44 start # Start with database schema
[Design and implement schema]
task 44 done
task 45 start # Next: authentication
[Implement JWT auth]
task 45 done
# Continue through dependency chain...
Example 3: Debugging Investigation
User Request: "My Node.js app crashes with ECONNREFUSED"
Task Decomposition:
task add "Debug ECONNREFUSED error in Node.js app" project:Debugging priority:H due:today +debugging +nodejs +urgent +investigation
Lifecycle with Annotations:
task 50 start
task 50 annotate "Error occurs during PostgreSQL connection"
task 50 annotate "Root cause: PostgreSQL service not running"
task 50 annotate "Solution: systemctl start postgresql"
[Provide debugging steps and code fixes]
task 50 done
Example 4: Recurring Maintenance Task
User Request: "Create a script I need to run weekly to clean Docker images"
Task Decomposition:
task add "Weekly Docker cleanup script" project:Maintenance recur:weekly due:friday priority:M +automation +docker +cleanup
Lifecycle:
task 55 start
[Write docker-cleanup.sh script]
task 55 done
# Future instances auto-generate every Friday
task next # Will show next week's instance
Task Priority Guidelines
Use this urgency matrix to assign priority:
priority:H (High) - Use when:
- Blocking other work
- Production outage or critical bug
- Security vulnerability
- Hard deadline within 24-48 hours
- Explicitly marked as urgent by user
priority:M (Medium) - Use when:
- Normal feature development
- Non-blocking improvements
- Deadline within 3-7 days
- Standard maintenance work
- Default for most tasks
priority:L (Low) - Use when:
- Nice-to-have enhancements
- Documentation updates
- Refactoring for cleanliness (not performance)
- No specific deadline
- Can be deferred without impact
Tag Taxonomy
Common Project Tags:
+feature- New functionality+bugfix- Fixing existing issues+refactor- Code restructuring+testing- Test creation/execution+documentation- Docs and comments+deployment- Release and infrastructure+security- Security-related work+performance- Optimization work+debugging- Investigation and diagnosis+maintenance- Routine upkeep+automation- Scripting and tooling+infrastructure- DevOps and systems
Technology Tags:
+python,+javascript,+bash,+typescript+docker,+kubernetes,+cicd+postgresql,+redis,+mongodb+fastapi,+react,+nextjs
Status Tags:
+blocked- Cannot proceed (annotate reason)+urgent- Needs immediate attention+waiting- Awaiting external input+review- Ready for review
Handling Special Scenarios
Scenario 1: Mid-Task Scope Change
If requirements change while working:
# Modify existing task
task <ID> modify +new_tag description:"Updated description"
# Or create dependent subtask for additional work
task add "Additional scope: Email notifications" depends:<ID> project:SameProject +feature
Scenario 2: Blocked Work
If encountering blockers (missing credentials, API limits, permissions):
# Stop the task
task <ID> stop
# Annotate the blocker
task <ID> annotate "Blocked: Need AWS credentials from ops team"
# Mark as blocked
task <ID> modify +blocked
# Explain to user what's needed to unblock
Scenario 3: Multi-Session Work
For work spanning multiple conversations:
Session 1:
task add "Build e-commerce platform - product catalog" project:Ecommerce priority:H +feature
task 60 start
[Implement product catalog]
task 60 done
Session 2 (later):
# Check existing project tasks
task project:Ecommerce status:pending
# Create related task
task add "Build e-commerce platform - shopping cart" project:Ecommerce depends:60 priority:H +feature
task 61 start
[Implement shopping cart]
task 61 done
Scenario 4: Working with User's Existing Tasks
If user references an existing Taskwarrior task:
User: "Help me complete task 42: 'Optimize database queries'"
Response:
# Start user's existing task
task 42 start
[Provide optimization recommendations and code]
# Complete user's task
task 42 done
# Show results
task 42 info
timew summary :ids
Integration with Timewarrior
Taskwarrior automatically integrates with Timewarrior when configured. Here's what happens:
When you start a task:
task <ID> start
# Timewarrior begins tracking with tags from the task
Check current tracking:
timew # Shows what's currently being tracked
task active # Shows active Taskwarrior tasks
Stop tracking (when you stop or complete a task):
task <ID> stop # Pauses tracking
task <ID> done # Stops tracking and completes task
View time reports:
timew summary :ids # Total time per task
timew report :ids :week # This week's breakdown
timew tags # Most-used tags
timew day # Today's time usage
Workflow Enforcement Rules
MANDATORY RULES:
- NO CODE BEFORE TASKS - Always run
task addBEFORE writing any code - ALWAYS START TASKS - Run
task <ID> startto activate time tracking - ALWAYS COMPLETE TASKS - Run
task <ID> donewhen work is delivered - USE PROPER ATTRIBUTES - Every task needs project:, priority:, due:, and tags:
- RESPECT DEPENDENCIES - Work tasks in order defined by
depends:relationships - ANNOTATE DECISIONS - Use
task <ID> annotateto document key choices - HANDLE BLOCKERS EXPLICITLY - Stop tasks and mark as +blocked when stuck
VERIFICATION CHECKLIST:
Before delivering code, confirm:
- ✅ Task was created with proper attributes
- ✅ Task was started (appears in
task active) - ✅ Time tracking is running (verify with
timew) - ✅ Code is implemented and tested
- ✅ Task is completed with
task done - ✅ Time summary is shown
Refusing Non-Compliant Requests
If user asks for code without mentioning Taskwarrior, proactively enforce the protocol:
User: "Write me a Python script to parse CSV files"
Your Response:
Before I write the code, I need to create a Taskwarrior task to track this work properly.
I'll decompose this as:
task add "Create CSV parser Python script" project:DataProcessing priority:M due:today +python +scripting +parsing
Then I'll start the task and implement the solution.
[Proceed with task creation → task start → code implementation → task done]
Success Metrics
After completing work, provide these metrics:
# Task details
task <ID> info
# Time spent
timew summary :ids
# Project progress
task project:<ProjectName> completed
task project:<ProjectName> status:pending
# Personal productivity
task completed count
task active count
Quick Reference Commands
| Operation | Command |
|-----------|---------|
| Create task | task add "description" project:Name priority:M due:today +tag1 +tag2 |
| Start task | task <ID> start |
| Stop task | task <ID> stop |
| Complete task | task <ID> done |
| View active tasks | task active |
| View next tasks | task next |
| Modify task | task <ID> modify priority:H +new_tag |
| Annotate task | task <ID> annotate "note" |
| View task details | task <ID> info |
| List by project | task project:ProjectName list |
| Show time tracking | timew |
| Time summary | timew summary :ids |
| Weekly report | timew report :ids :week |
Expected User Workflow
Typical Interaction:
User: "I need help with taskwarrior - create a FastAPI authentication system"
Your Response:
I'll enforce the Taskwarrior integration protocol for this work.
## Phase 1: Task Decomposition
Creating tasks for FastAPI authentication system:
task add "Build FastAPI authentication system" project:WebDev priority:H due:2days +fastapi +auth +security +backend
task add "Implement JWT token generation" project:WebDev depends:1 priority:H +jwt +auth
task add "Create login/logout endpoints" project:WebDev depends:2 priority:M +endpoints +api
task add "Add password hashing with bcrypt" project:WebDev depends:3 priority:M +security +passwords
task add "Write authentication tests" project:WebDev depends:4 priority:M +testing +pytest
## Phase 2: Task Activation
task 1 start
timew # Verify tracking started
## Phase 3: Implementation
[Now I'll implement the authentication system...]
[Provide complete FastAPI auth code]
## Phase 4: Completion
task 1 done
timew summary :ids
Total time: 45 minutes
Next task: Implement JWT token generation (task 2)
Best Practices
✅ DO:
- Create tasks for EVERY coding activity, no matter how small
- Use descriptive task names that explain the "what" and "why"
- Set realistic due dates based on complexity
- Add multiple relevant tags for better filtering
- Annotate tasks with important decisions or blockers
- Leverage the dependency system for related work
- Complete tasks when work is done (don't leave tasks hanging)
- Review
task nextregularly to prioritize work
❌ DON'T:
- Skip task creation for "quick" tasks
- Write code before creating and starting tasks
- Use generic descriptions ("Fix bug" vs. "Fix OAuth redirect loop")
- Ignore the dependency system
- Leave tasks incomplete after delivering code
- Forget to stop/complete tasks when switching contexts
- Use priority:H for everything (dilutes urgency)
Troubleshooting
Issue: "Task not tracking time"
Solution:
# Verify Timewarrior is installed
which timew
# Check if task is active
task active
# Manually start tracking if needed
timew start +tag1 +tag2
Issue: "Can't find task ID"
Solution:
# List all tasks
task list
# Show task details by description search
task /keyword/ list
# Show recently completed tasks
task completed
Issue: "Forgot to start task before coding"
Solution:
# Start the task now (retroactively)
task <ID> start
# Manually adjust Timewarrior if needed
timew track yesterday 2:00pm - 3:30pm +projecttag +featuretag
Integration with Your Workflow
This skill integrates seamlessly with:
- VS Code Taskwarrior extensions - See tasks in your editor sidebar
- CI/CD pipelines - Auto-create tasks for deployments
- Git workflows - Reference task IDs in commit messages
- Team collaboration - Shared Taskwarrior server for team visibility
- Reporting tools - Export to JSON for dashboards
Summary
This skill enforces a mandatory, comprehensive Taskwarrior integration for ALL coding activities. It ensures:
✅ Every piece of work is tracked as a task ✅ Time spent is automatically accounted via Timewarrior ✅ Complex projects are decomposed into manageable, linked subtasks ✅ Complete audit trail of all work performed ✅ Proper prioritization and deadline management ✅ Full lifecycle from creation → activation → implementation → completion
NO CODE GETS WRITTEN without following the complete Taskwarrior protocol.