|
1 | 1 | --- |
2 | 2 | name: taskflow |
3 | | -description: Manage tasks on TaskFlow boards via the CLI. Use when asked to create, update, transition, list, or comment on tasks. |
| 3 | +description: Manage tasks on TaskFlow boards. Use the MCP server (preferred) or CLI to create, update, transition, list, and comment on tasks. |
4 | 4 | --- |
5 | 5 |
|
6 | | -You have access to the `taskflow` CLI which manages tasks on kanban boards with workflow state machines. |
| 6 | +You have access to TaskFlow, a task tracker with kanban boards and workflow state machines. Every action is attributed to your actor identity in the audit trail. |
7 | 7 |
|
8 | | -## Prerequisites |
| 8 | +## Integration Options |
9 | 9 |
|
10 | | -The CLI needs a running TaskFlow server. Configuration is resolved in this order: |
11 | | -1. Flags: `--url`, `--api-key` |
12 | | -2. Environment: `TASKFLOW_URL`, `TASKFLOW_API_KEY` |
13 | | -3. Config file: `~/.config/taskflow/config.yaml` |
14 | | -4. Default: `http://localhost:8374` |
| 10 | +**MCP server (preferred):** If TaskFlow is configured as an MCP server, use the MCP tools and resources directly. They provide typed inputs, rich descriptions, and notification piggyback. See the tools list for available operations. |
15 | 11 |
|
16 | | -Always use `--json` when you need to parse output programmatically. |
| 12 | +**CLI fallback:** If MCP is not available, use the `taskflow` CLI. Add `--json` when you need to parse output programmatically. |
17 | 13 |
|
18 | | -## Common Workflows |
| 14 | +Both use the same API key for authentication and actor identity. |
19 | 15 |
|
20 | | -### Discover what's available |
| 16 | +## Quick Reference |
21 | 17 |
|
22 | | -```bash |
23 | | -# List all boards |
24 | | -taskflow board list |
25 | | - |
26 | | -# See a board's workflow (available states and transitions) |
27 | | -taskflow workflow get <board-slug> |
28 | | - |
29 | | -# List tasks on a board |
30 | | -taskflow task list <board-slug> |
31 | | - |
32 | | -# List tasks with filters |
33 | | -taskflow task list <board-slug> --state in_progress --assignee alice |
34 | | -taskflow task list <board-slug> --priority high --include_closed |
35 | | - |
36 | | -# Search across all boards |
37 | | -taskflow task search --q "auth bug" |
38 | | - |
39 | | -# Get full board detail (tasks, comments, deps, audit) |
40 | | -taskflow board detail <board-slug> |
41 | | -``` |
42 | | - |
43 | | -### Create and manage tasks |
| 18 | +### Read data |
44 | 19 |
|
45 | 20 | ```bash |
46 | | -# Create a task (priority: critical, high, medium, low, or omit for none) |
47 | | -taskflow task create <board-slug> --title "Fix the auth bug" --priority high --tags "security,urgent" |
48 | | - |
49 | | -# Update a task |
50 | | -taskflow task update <board-slug> <num> --title "New title" --priority medium --assignee alice |
| 21 | +# Boards |
| 22 | +taskflow board list |
| 23 | +taskflow board detail <slug> # full board dump |
| 24 | +taskflow board overview <slug> # task counts by state |
51 | 25 |
|
52 | | -# Transition a task through the workflow (e.g. start, submit, approve, reject, cancel) |
53 | | -taskflow task transition <board-slug> <num> --transition start --comment "Working on this now" |
| 26 | +# Tasks |
| 27 | +taskflow task list <slug> # all tasks on a board |
| 28 | +taskflow task detail <slug> <num> # task with comments, deps, attachments, audit |
| 29 | +taskflow task search --q "auth bug" # search across all boards |
54 | 30 |
|
55 | | -# Delete a task (soft-delete) |
56 | | -taskflow task delete <board-slug> <num> |
| 31 | +# Workflow |
| 32 | +taskflow workflow get <slug> # see states and transitions |
57 | 33 | ``` |
58 | 34 |
|
59 | | -### Comments |
| 35 | +### Manage tasks |
60 | 36 |
|
61 | 37 | ```bash |
62 | | -# Add a comment |
63 | | -taskflow comment create <board-slug> <num> --body "This needs review" |
| 38 | +# Create (priority: critical, high, medium, low, or omit) |
| 39 | +taskflow task create <slug> --title "Fix auth bug" --priority high --assignee @me |
64 | 40 |
|
65 | | -# List comments on a task |
66 | | -taskflow comment list <board-slug> <num> |
67 | | -``` |
| 41 | +# Transition (use transition NAME, not state name) |
| 42 | +taskflow task transition <slug> <num> --transition start --comment "On it" |
68 | 43 |
|
69 | | -### Dependencies |
| 44 | +# Update |
| 45 | +taskflow task update <slug> <num> --priority critical --assignee alice |
70 | 46 |
|
71 | | -```bash |
72 | | -# Create a dependency (task 3 depends on task 1) |
73 | | -taskflow dependency create <board-slug> 3 --depends_on_board <board-slug> --depends_on_num 1 --dep_type depends_on |
| 47 | +# Comment |
| 48 | +taskflow comment create <slug> <num> --body "Ready for review" |
74 | 49 |
|
75 | | -# List dependencies |
76 | | -taskflow dependency list <board-slug> <num> |
| 50 | +# Delete (soft-delete) |
| 51 | +taskflow task delete <slug> <num> |
77 | 52 | ``` |
78 | 53 |
|
79 | 54 | ### Boards |
80 | 55 |
|
81 | 56 | ```bash |
82 | | -# Create a board (default workflow if --workflow omitted) |
| 57 | +# Create (omit --workflow for the default backlog→in_progress→review→done workflow) |
83 | 58 | taskflow board create --slug my-board --name "My Board" |
84 | 59 |
|
85 | | -# Create with custom workflow |
86 | | -taskflow board create --slug my-board --name "My Board" --workflow '{"states":["todo","doing","done"],"initial_state":"todo","terminal_states":["done"],"transitions":[{"from":"todo","to":"doing","name":"start"},{"from":"doing","to":"done","name":"finish"}]}' |
87 | | - |
88 | | -# Archive a board (soft-delete, comments still allowed) |
89 | | -taskflow board delete <board-slug> |
90 | | -``` |
91 | | - |
92 | | -### Audit trail |
93 | | - |
94 | | -```bash |
95 | | -# Task audit log |
96 | | -taskflow task audit <board-slug> <num> |
97 | | - |
98 | | -# Board audit log |
99 | | -taskflow board audit <board-slug> |
100 | | -``` |
101 | | - |
102 | | -### Views |
103 | | - |
104 | | -```bash |
105 | | -# Board overview (task counts by state) |
106 | | -taskflow board overview <board-slug> |
107 | | - |
108 | | -# System-wide statistics (admin only) |
109 | | -taskflow admin stats |
| 60 | +# Archive |
| 61 | +taskflow board delete <slug> |
110 | 62 | ``` |
111 | 63 |
|
112 | 64 | ## Key Concepts |
113 | 65 |
|
114 | | -- **Workflow**: Each board has a state machine. Use `taskflow workflow get <slug>` to see available states and transitions before transitioning tasks. |
115 | | -- **Archived boards**: Archived boards are read-only except for comments. Use `taskflow board list --include_deleted` to see them. |
| 66 | +- **Workflows**: each board has a state machine defining how tasks move. Always check `taskflow workflow get <slug>` before transitioning if you're unsure which transitions are valid. |
| 67 | +- **Transitions by name**: pass the transition name (e.g. `start`, `submit`, `approve`), not the target state. On failure, the error message lists available transitions. |
| 68 | +- **`@me`**: use as assignee to assign tasks to yourself. Works in create, update, and search filters. |
| 69 | +- **Task references**: tasks are identified by `<board-slug> <num>` (CLI) or `board/num` shorthand (MCP `task_ref`). |
116 | 70 | - **Priorities**: `critical`, `high`, `medium`, `low`, or omit for none. |
117 | | -- **Task IDs**: Tasks are numbered per-board. Reference as `<board-slug> <num>`. |
118 | | -- **Actor**: Your identity is determined by your API key. Use `@me` as assignee to assign to yourself. |
| 71 | +- **Audit trail**: every action is recorded with actor attribution and timestamp. |
119 | 72 |
|
120 | 73 | ## Tips |
121 | 74 |
|
122 | | -- When asked to check task status, use `taskflow task get <slug> <num> --json` and parse the JSON. |
123 | | -- When transitioning, first check available transitions with `taskflow workflow get <slug>` if unsure which transition names are valid. |
124 | | -- Use `taskflow task list <slug> --json` for programmatic processing of task lists. |
125 | | -- Comments are the primary way to communicate progress on tasks. |
| 75 | +- Use `task detail` instead of `task get` — it includes comments, dependencies, attachments, and audit in one request. |
| 76 | +- Use `task search --assignee @me` to find all your tasks across boards. |
| 77 | +- Comments are the primary way to communicate progress and context on tasks. |
| 78 | +- When transitioning fails, read the error — it tells you which transitions are available. |
0 commit comments