|
| 1 | +--- |
| 2 | +name: tw |
| 3 | +description: Manage tasks using Taskwarrior (task CLI) - create, list, update, complete, annotate, and manage dependencies between tasks. |
| 4 | +triggers: |
| 5 | + - /tw |
| 6 | + - "create task" |
| 7 | + - "create issue" |
| 8 | + - "add task" |
| 9 | + - "list tasks" |
| 10 | + - "show task" |
| 11 | + - "close task" |
| 12 | + - "complete task" |
| 13 | + - "what tasks" |
| 14 | + - "what's ready" |
| 15 | + - "task status" |
| 16 | + - "update task" |
| 17 | + - "blocked tasks" |
| 18 | + - "blocking tasks" |
| 19 | +--- |
| 20 | + |
| 21 | +# Taskwarrior Issue Management |
| 22 | + |
| 23 | +Use the `task` CLI to manage issues with dependency tracking. |
| 24 | + |
| 25 | +## When to Use |
| 26 | + |
| 27 | +- The user mentions a task ID or wants to manage work items |
| 28 | +- The user asks to create, view, update, close, or search tasks |
| 29 | +- The user wants to see what work is ready or blocked |
| 30 | +- The user wants to manage dependencies between tasks |
| 31 | +- The user asks about project status |
| 32 | + |
| 33 | +## Instructions |
| 34 | + |
| 35 | +### Phase 1: Identify the Request |
| 36 | + |
| 37 | +**IMPORTANT**: Always use UUID (short prefix is fine) instead of numeric IDs when referencing tasks. Numeric IDs are unstable and shift when tasks are completed or deleted — **never use numeric IDs in commands**, even if they appear in the output. IDs are shown in reports for the user's convenience only. After creating a task, note its UUID from the output and use that for all subsequent operations. |
| 38 | + |
| 39 | +| Intent | Operation | |
| 40 | +|--------|-----------| |
| 41 | +| View task details | `task <uuid> information` | |
| 42 | +| List/filter tasks | `task list`, `task project:<name> list` | |
| 43 | +| See available work | `task ready` | |
| 44 | +| Create a new task | `task add` | |
| 45 | +| Update task fields | `task <uuid> modify` | |
| 46 | +| Complete a task | `task <uuid> done` | |
| 47 | +| Delete a task | `task <uuid> delete` | |
| 48 | +| Add a comment/annotation | `task <uuid> annotate "text"` | |
| 49 | +| Remove annotation | `task <uuid> denotate "text"` | |
| 50 | +| Manage dependencies | `task <uuid> modify depends:<other_uuid>` | |
| 51 | +| See blocked tasks | `task blocked` | |
| 52 | +| See blocking tasks | `task blocking` | |
| 53 | +| Project summary | `task summary` or `task projects` | |
| 54 | +| Start working | `task <uuid> start` | |
| 55 | +| Stop working | `task <uuid> stop` | |
| 56 | +| Active tasks | `task active` | |
| 57 | + |
| 58 | +### Phase 2A: Creating Tasks |
| 59 | + |
| 60 | +```bash |
| 61 | +# Basic task with project |
| 62 | +task add "Task description" project:cpb |
| 63 | + |
| 64 | +# With priority (H=high, M=medium, L=low) |
| 65 | +task add "Fix bug" project:cpb priority:H |
| 66 | + |
| 67 | +# With due date |
| 68 | +task add "Deploy" project:cpb due:friday |
| 69 | + |
| 70 | +# With tags |
| 71 | +task add "Review" project:cpb +urgent +review |
| 72 | + |
| 73 | +# With dependencies (use UUID of the dependency) |
| 74 | +task add "Deploy to prod" project:cpb depends:a1b2c3d4 |
| 75 | + |
| 76 | +# Sub-projects using dots |
| 77 | +task add "Fix API" project:cpb.earn |
| 78 | +``` |
| 79 | + |
| 80 | +After creating a task, note the UUID from `task list` output for future reference. |
| 81 | + |
| 82 | +### Phase 2B: Annotations (Comments) |
| 83 | + |
| 84 | +```bash |
| 85 | +# Add annotation (use UUID) |
| 86 | +task a1b2c3d4 annotate "Spoke with Ryan, needs API change first" |
| 87 | +task a1b2c3d4 annotate "See PR #1234 for context" |
| 88 | + |
| 89 | +# Remove annotation |
| 90 | +task a1b2c3d4 denotate "Spoke with Ryan" |
| 91 | +``` |
| 92 | + |
| 93 | +### Phase 2C: Dependencies |
| 94 | + |
| 95 | +```bash |
| 96 | +# Add dependency using UUIDs (task abc depends on tasks def and ghi) |
| 97 | +task a1b2c3d4 modify depends:d5e6f7a8,b9c0d1e2 |
| 98 | + |
| 99 | +# Remove dependency |
| 100 | +task a1b2c3d4 modify depends:-d5e6f7a8 |
| 101 | + |
| 102 | +# View blocked/blocking |
| 103 | +task blocked |
| 104 | +task blocking |
| 105 | +``` |
| 106 | + |
| 107 | +### Phase 2D: Filtering |
| 108 | + |
| 109 | +```bash |
| 110 | +# By project |
| 111 | +task project:cpb list |
| 112 | + |
| 113 | +# By priority |
| 114 | +task priority:H list |
| 115 | + |
| 116 | +# By tag |
| 117 | +task +urgent list |
| 118 | + |
| 119 | +# By status |
| 120 | +task +BLOCKED list |
| 121 | +task +OVERDUE list |
| 122 | +task +ACTIVE list |
| 123 | + |
| 124 | +# Text search |
| 125 | +task /deploy/ list |
| 126 | + |
| 127 | +# Combined filters |
| 128 | +task project:cpb priority:H due.before:eow list |
| 129 | +``` |
| 130 | + |
| 131 | +### Phase 2E: Modifying Tasks |
| 132 | + |
| 133 | +```bash |
| 134 | +task a1b2c3d4 modify priority:H |
| 135 | +task a1b2c3d4 modify project:cpb.earn |
| 136 | +task a1b2c3d4 modify due:eow |
| 137 | +task a1b2c3d4 modify +urgent # add tag |
| 138 | +task a1b2c3d4 modify -urgent # remove tag |
| 139 | +task a1b2c3d4 modify depends:d5e6f7a8 # add dependency |
| 140 | +``` |
| 141 | + |
| 142 | +### Phase 2F: Completing and Deleting |
| 143 | + |
| 144 | +```bash |
| 145 | +task a1b2c3d4 done # mark complete |
| 146 | +task a1b2c3d4 delete # mark deleted |
| 147 | +task undo # revert most recent change |
| 148 | +``` |
| 149 | + |
| 150 | +### Phase 2G: Reports and Views |
| 151 | + |
| 152 | +```bash |
| 153 | +task list # pending tasks |
| 154 | +task next # most urgent |
| 155 | +task ready # actionable (not blocked/waiting) |
| 156 | +task all # everything |
| 157 | +task completed # done tasks |
| 158 | +task summary # project summary |
| 159 | +task projects # project list with counts |
| 160 | +``` |
| 161 | + |
| 162 | +### Phase 2H: Export/Import |
| 163 | + |
| 164 | +```bash |
| 165 | +task export # all as JSON |
| 166 | +task project:cpb export # filtered |
| 167 | +task import tasks.json # import |
| 168 | +``` |
| 169 | + |
| 170 | +### Phase 3: Present Results |
| 171 | + |
| 172 | +For **read operations**, summarize clearly: |
| 173 | +- **UUID and Description**: Task identifier (UUID) and description |
| 174 | +- **Status**: pending, completed, deleted, waiting |
| 175 | +- **Priority**: H/M/L |
| 176 | +- **Project**: Project hierarchy |
| 177 | +- **Dependencies**: What blocks/is blocked by |
| 178 | +- **Annotations**: Comments/notes |
| 179 | +- **Due**: Due date if set |
| 180 | + |
| 181 | +For **write operations**, confirm what was done: |
| 182 | +- State the action taken and the task UUID |
| 183 | +- Show the new state if relevant |
| 184 | + |
| 185 | +## Guidelines |
| 186 | + |
| 187 | +- Use `project:cpb` as the default project for control-plane-backend work |
| 188 | +- Use sub-projects with dots for specificity (e.g., `project:cpb.earn`) |
| 189 | +- Priority levels: H (high/critical), M (medium), L (low/backlog) |
| 190 | +- Use annotations for context, links, and notes — but NOT for dependency info (use `depends:` instead) |
| 191 | +- Always use taskwarrior's native `depends:` for dependency chains, never annotations |
| 192 | +- When creating multi-environment rollouts (dev -> stage -> prod), create separate tasks and chain them with `depends:` |
| 193 | +- Use `task ready` to find unblocked work (excludes blocked tasks) |
| 194 | +- Use `task next` when the user asks "what should I work on" |
| 195 | +- Use `task blocked` / `task blocking` to inspect dependency state |
| 196 | +- Reference tasks in backlog using backtick format: `tw:<uuid>` |
| 197 | +- Date shorthands: today, tomorrow, monday, eod, eow, eom, eoq, eoy, som, sow |
| 198 | +- The default `list` report shows dependencies in the Deps column |
| 199 | + |
| 200 | +ARGUMENTS: $ARGUMENTS |
0 commit comments