trak_flow 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.envrc +3 -0
- data/CHANGELOG.md +69 -0
- data/COMMITS.md +196 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +281 -0
- data/README.md +479 -0
- data/Rakefile +16 -0
- data/bin/tf +6 -0
- data/bin/tf_mcp +81 -0
- data/docs/.keep +0 -0
- data/docs/api/database.md +434 -0
- data/docs/api/ruby-library.md +349 -0
- data/docs/api/task-model.md +341 -0
- data/docs/assets/stylesheets/extra.css +53 -0
- data/docs/assets/trak_flow.jpg +0 -0
- data/docs/cli/admin-commands.md +369 -0
- data/docs/cli/dependency-commands.md +321 -0
- data/docs/cli/label-commands.md +222 -0
- data/docs/cli/overview.md +163 -0
- data/docs/cli/plan-commands.md +344 -0
- data/docs/cli/task-commands.md +333 -0
- data/docs/core-concepts/dependencies.md +232 -0
- data/docs/core-concepts/labels.md +217 -0
- data/docs/core-concepts/overview.md +178 -0
- data/docs/core-concepts/plans-workflows.md +264 -0
- data/docs/core-concepts/tasks.md +205 -0
- data/docs/getting-started/configuration.md +120 -0
- data/docs/getting-started/installation.md +79 -0
- data/docs/getting-started/quick-start.md +245 -0
- data/docs/index.md +169 -0
- data/docs/mcp/integration.md +302 -0
- data/docs/mcp/overview.md +206 -0
- data/docs/mcp/resources.md +284 -0
- data/docs/mcp/tools.md +457 -0
- data/examples/basic_usage.rb +365 -0
- data/examples/cli_demo.sh +314 -0
- data/examples/mcp/Gemfile +9 -0
- data/examples/mcp/Gemfile.lock +226 -0
- data/examples/mcp/http_demo.rb +232 -0
- data/examples/mcp/stdio_demo.rb +146 -0
- data/lib/trak_flow/cli/admin_commands.rb +136 -0
- data/lib/trak_flow/cli/config_commands.rb +260 -0
- data/lib/trak_flow/cli/dep_commands.rb +71 -0
- data/lib/trak_flow/cli/label_commands.rb +76 -0
- data/lib/trak_flow/cli/main_commands.rb +386 -0
- data/lib/trak_flow/cli/plan_commands.rb +185 -0
- data/lib/trak_flow/cli/workflow_commands.rb +133 -0
- data/lib/trak_flow/cli.rb +110 -0
- data/lib/trak_flow/config/defaults.yml +114 -0
- data/lib/trak_flow/config/section.rb +74 -0
- data/lib/trak_flow/config.rb +276 -0
- data/lib/trak_flow/graph/dependency_graph.rb +288 -0
- data/lib/trak_flow/id_generator.rb +52 -0
- data/lib/trak_flow/mcp/resources/base_resource.rb +25 -0
- data/lib/trak_flow/mcp/resources/dependency_graph.rb +31 -0
- data/lib/trak_flow/mcp/resources/label_list.rb +21 -0
- data/lib/trak_flow/mcp/resources/plan_by_id.rb +27 -0
- data/lib/trak_flow/mcp/resources/plan_list.rb +21 -0
- data/lib/trak_flow/mcp/resources/task_by_id.rb +31 -0
- data/lib/trak_flow/mcp/resources/task_list.rb +21 -0
- data/lib/trak_flow/mcp/resources/task_next.rb +30 -0
- data/lib/trak_flow/mcp/resources/workflow_by_id.rb +27 -0
- data/lib/trak_flow/mcp/resources/workflow_list.rb +21 -0
- data/lib/trak_flow/mcp/server.rb +140 -0
- data/lib/trak_flow/mcp/tools/base_tool.rb +29 -0
- data/lib/trak_flow/mcp/tools/comment_add.rb +33 -0
- data/lib/trak_flow/mcp/tools/dep_add.rb +34 -0
- data/lib/trak_flow/mcp/tools/dep_remove.rb +25 -0
- data/lib/trak_flow/mcp/tools/label_add.rb +28 -0
- data/lib/trak_flow/mcp/tools/label_remove.rb +25 -0
- data/lib/trak_flow/mcp/tools/plan_add_step.rb +35 -0
- data/lib/trak_flow/mcp/tools/plan_create.rb +33 -0
- data/lib/trak_flow/mcp/tools/plan_run.rb +58 -0
- data/lib/trak_flow/mcp/tools/plan_start.rb +58 -0
- data/lib/trak_flow/mcp/tools/task_block.rb +27 -0
- data/lib/trak_flow/mcp/tools/task_close.rb +26 -0
- data/lib/trak_flow/mcp/tools/task_create.rb +51 -0
- data/lib/trak_flow/mcp/tools/task_defer.rb +27 -0
- data/lib/trak_flow/mcp/tools/task_start.rb +25 -0
- data/lib/trak_flow/mcp/tools/task_update.rb +36 -0
- data/lib/trak_flow/mcp/tools/workflow_discard.rb +28 -0
- data/lib/trak_flow/mcp/tools/workflow_summarize.rb +34 -0
- data/lib/trak_flow/mcp.rb +38 -0
- data/lib/trak_flow/models/comment.rb +71 -0
- data/lib/trak_flow/models/dependency.rb +96 -0
- data/lib/trak_flow/models/label.rb +90 -0
- data/lib/trak_flow/models/task.rb +188 -0
- data/lib/trak_flow/storage/database.rb +638 -0
- data/lib/trak_flow/storage/jsonl.rb +259 -0
- data/lib/trak_flow/time_parser.rb +15 -0
- data/lib/trak_flow/version.rb +5 -0
- data/lib/trak_flow.rb +100 -0
- data/mkdocs.yml +143 -0
- metadata +392 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Tasks
|
|
2
|
+
|
|
3
|
+
Tasks are the fundamental unit in TrakFlow. This page covers task properties and behavior in detail.
|
|
4
|
+
|
|
5
|
+
## Task Properties
|
|
6
|
+
|
|
7
|
+
| Property | Type | Required | Description |
|
|
8
|
+
|----------|------|----------|-------------|
|
|
9
|
+
| `id` | string | Auto | Unique identifier (e.g., `tf-abc123`) |
|
|
10
|
+
| `title` | string | Yes | Short description of the task |
|
|
11
|
+
| `description` | string | No | Detailed description |
|
|
12
|
+
| `status` | string | No | Current status (default: `open`) |
|
|
13
|
+
| `priority` | integer | No | Priority level 0-4 (default: `2`) |
|
|
14
|
+
| `type` | string | No | Task type (default: `task`) |
|
|
15
|
+
| `assignee` | string | No | Assigned user/agent |
|
|
16
|
+
| `parent_id` | string | No | Parent task for hierarchy |
|
|
17
|
+
| `created_at` | datetime | Auto | Creation timestamp |
|
|
18
|
+
| `updated_at` | datetime | Auto | Last update timestamp |
|
|
19
|
+
| `closed_at` | datetime | Auto | When task was closed |
|
|
20
|
+
| `notes` | string | No | Free-form notes and trace log |
|
|
21
|
+
|
|
22
|
+
### Plan/Workflow Properties
|
|
23
|
+
|
|
24
|
+
| Property | Type | Description |
|
|
25
|
+
|----------|------|-------------|
|
|
26
|
+
| `plan` | boolean | True if this is a Plan blueprint |
|
|
27
|
+
| `source_plan_id` | string | ID of Plan this Workflow was created from |
|
|
28
|
+
| `ephemeral` | boolean | True if this is a one-shot workflow |
|
|
29
|
+
|
|
30
|
+
## Task Types
|
|
31
|
+
|
|
32
|
+
| Type | Description | Use Case |
|
|
33
|
+
|------|-------------|----------|
|
|
34
|
+
| `task` | General task | Default for most work items |
|
|
35
|
+
| `bug` | Bug fix | Defect tracking |
|
|
36
|
+
| `feature` | New feature | Feature development |
|
|
37
|
+
| `epic` | Large initiative | Container for related tasks |
|
|
38
|
+
| `chore` | Maintenance | Technical debt, cleanup |
|
|
39
|
+
|
|
40
|
+
### Creating Different Types
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
tf create "Fix null pointer exception" -t bug
|
|
44
|
+
tf create "Add OAuth support" -t feature
|
|
45
|
+
tf create "User Management" -t epic
|
|
46
|
+
tf create "Update dependencies" -t chore
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Priority Levels
|
|
50
|
+
|
|
51
|
+
| Level | Name | Color | Description |
|
|
52
|
+
|-------|------|-------|-------------|
|
|
53
|
+
| 0 | Critical | Red Bold | Urgent, drop everything |
|
|
54
|
+
| 1 | High | Red | Important, do soon |
|
|
55
|
+
| 2 | Medium | Yellow | Normal priority (default) |
|
|
56
|
+
| 3 | Low | Blue | Do when time permits |
|
|
57
|
+
| 4 | Backlog | Gray | Future consideration |
|
|
58
|
+
|
|
59
|
+
### Setting Priority
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
tf create "Security vulnerability" -p 0
|
|
63
|
+
tf create "Nice to have feature" -p 4
|
|
64
|
+
tf update tf-abc123 --priority 1
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Task Statuses
|
|
68
|
+
|
|
69
|
+
### Status Flow
|
|
70
|
+
|
|
71
|
+
```mermaid
|
|
72
|
+
stateDiagram-v2
|
|
73
|
+
[*] --> open
|
|
74
|
+
open --> in_progress: tf start
|
|
75
|
+
open --> blocked: tf block
|
|
76
|
+
open --> deferred: tf defer
|
|
77
|
+
in_progress --> closed: tf close
|
|
78
|
+
in_progress --> blocked: tf block
|
|
79
|
+
blocked --> open: tf unblock
|
|
80
|
+
blocked --> in_progress: tf start
|
|
81
|
+
deferred --> open: tf reopen
|
|
82
|
+
closed --> open: tf reopen
|
|
83
|
+
closed --> tombstone: tf admin archive
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Status Commands
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
tf start tf-abc123 # open → in_progress
|
|
90
|
+
tf block tf-abc123 # → blocked
|
|
91
|
+
tf defer tf-abc123 # → deferred
|
|
92
|
+
tf close tf-abc123 # → closed
|
|
93
|
+
tf reopen tf-abc123 # → open
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Hierarchical Tasks
|
|
97
|
+
|
|
98
|
+
Tasks can have parent-child relationships for organization.
|
|
99
|
+
|
|
100
|
+
### Creating Child Tasks
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Create parent
|
|
104
|
+
tf create "User Authentication" -t epic
|
|
105
|
+
|
|
106
|
+
# Create children
|
|
107
|
+
tf create "Login page" --parent tf-auth1
|
|
108
|
+
tf create "Logout functionality" --parent tf-auth1
|
|
109
|
+
tf create "Password reset" --parent tf-auth1
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Viewing Hierarchy
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
tf show tf-auth1 --tree
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Output:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
[tf-auth1] User Authentication (epic)
|
|
122
|
+
├── [tf-login] Login page (task)
|
|
123
|
+
├── [tf-logout] Logout functionality (task)
|
|
124
|
+
└── [tf-reset] Password reset (task)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Content Hash
|
|
128
|
+
|
|
129
|
+
Each task has a `content_hash` that:
|
|
130
|
+
|
|
131
|
+
1. **Detects changes** - Know when content was modified
|
|
132
|
+
2. **Enables deduplication** - Identify identical tasks
|
|
133
|
+
3. **Supports sync** - Merge changes from multiple sources
|
|
134
|
+
|
|
135
|
+
The hash is computed from all properties except `updated_at` and `content_hash` itself.
|
|
136
|
+
|
|
137
|
+
## Notes and Trace Log
|
|
138
|
+
|
|
139
|
+
The `notes` field stores free-form text and automatic trace entries:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
tf update tf-abc123 --notes "Waiting for design review"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Automatic trace entries are added for state changes:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
[2024-01-15T10:30:00Z] [CLOSED] Implemented in PR #42
|
|
149
|
+
[2024-01-14T09:00:00Z] [STARTED] Beginning implementation
|
|
150
|
+
[2024-01-13T14:00:00Z] [CREATED] Initial task creation
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Validation Rules
|
|
154
|
+
|
|
155
|
+
Tasks are validated on creation and update:
|
|
156
|
+
|
|
157
|
+
| Rule | Error |
|
|
158
|
+
|------|-------|
|
|
159
|
+
| Title required | "Title is required" |
|
|
160
|
+
| Valid status | "Invalid status: {status}" |
|
|
161
|
+
| Valid priority | "Invalid priority: {priority}" |
|
|
162
|
+
| Valid type | "Invalid type: {type}" |
|
|
163
|
+
| Plans can't be ephemeral | "Plans cannot be ephemeral" |
|
|
164
|
+
| Plans stay open | "Plans cannot change status" |
|
|
165
|
+
| Plans can't derive from Plans | "Plans cannot be derived from other Plans" |
|
|
166
|
+
|
|
167
|
+
## JSON Representation
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"id": "tf-abc123",
|
|
172
|
+
"title": "Implement feature X",
|
|
173
|
+
"description": "Detailed description here",
|
|
174
|
+
"status": "in_progress",
|
|
175
|
+
"priority": 1,
|
|
176
|
+
"type": "feature",
|
|
177
|
+
"assignee": "claude",
|
|
178
|
+
"parent_id": null,
|
|
179
|
+
"created_at": "2024-01-15T10:00:00Z",
|
|
180
|
+
"updated_at": "2024-01-15T14:30:00Z",
|
|
181
|
+
"closed_at": null,
|
|
182
|
+
"content_hash": "a1b2c3d4",
|
|
183
|
+
"plan": false,
|
|
184
|
+
"source_plan_id": null,
|
|
185
|
+
"ephemeral": false,
|
|
186
|
+
"notes": ""
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Task Predicates
|
|
191
|
+
|
|
192
|
+
In Ruby code, tasks expose these predicate methods:
|
|
193
|
+
|
|
194
|
+
```ruby
|
|
195
|
+
task.open? # status == "open"
|
|
196
|
+
task.closed? # status == "closed" or "tombstone"
|
|
197
|
+
task.in_progress? # status == "in_progress"
|
|
198
|
+
task.blocked? # status == "blocked"
|
|
199
|
+
task.epic? # type == "epic"
|
|
200
|
+
task.plan? # plan == true
|
|
201
|
+
task.workflow? # source_plan_id present and not a plan
|
|
202
|
+
task.ephemeral? # ephemeral == true
|
|
203
|
+
task.executable? # not a plan (can be executed)
|
|
204
|
+
task.discardable? # ephemeral (can be discarded)
|
|
205
|
+
```
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
TrakFlow stores configuration in `.trak_flow/config.json`.
|
|
4
|
+
|
|
5
|
+
## View Current Configuration
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
tf config list
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Get a Value
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
tf config get actor
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Set a Value
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
tf config set actor "username"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Configuration Options
|
|
24
|
+
|
|
25
|
+
### General Settings
|
|
26
|
+
|
|
27
|
+
| Key | Type | Default | Description |
|
|
28
|
+
|-----|------|---------|-------------|
|
|
29
|
+
| `actor` | string | `""` | Current user/agent identifier |
|
|
30
|
+
| `stealth` | boolean | `false` | Suppress status messages |
|
|
31
|
+
| `no_push` | boolean | `false` | Disable auto-push to git |
|
|
32
|
+
|
|
33
|
+
### Import Settings
|
|
34
|
+
|
|
35
|
+
| Key | Type | Default | Description |
|
|
36
|
+
|-----|------|---------|-------------|
|
|
37
|
+
| `import.orphan_handling` | string | `"allow"` | How to handle orphaned parent references |
|
|
38
|
+
|
|
39
|
+
### Validation Settings
|
|
40
|
+
|
|
41
|
+
| Key | Type | Default | Description |
|
|
42
|
+
|-----|------|---------|-------------|
|
|
43
|
+
| `validation.strict` | boolean | `false` | Enable strict validation |
|
|
44
|
+
|
|
45
|
+
### ID Generation Settings
|
|
46
|
+
|
|
47
|
+
| Key | Type | Default | Description |
|
|
48
|
+
|-----|------|---------|-------------|
|
|
49
|
+
| `id_generator.min_hash_length` | integer | `8` | Minimum length for generated IDs |
|
|
50
|
+
|
|
51
|
+
### MCP Server Settings
|
|
52
|
+
|
|
53
|
+
| Key | Type | Default | Description |
|
|
54
|
+
|-----|------|---------|-------------|
|
|
55
|
+
| `mcp.port` | integer | `3333` | Default HTTP port for MCP server |
|
|
56
|
+
|
|
57
|
+
## Example Configuration
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"actor": "claude-agent",
|
|
62
|
+
"stealth": false,
|
|
63
|
+
"no_push": true,
|
|
64
|
+
"import": {
|
|
65
|
+
"orphan_handling": "allow"
|
|
66
|
+
},
|
|
67
|
+
"validation": {
|
|
68
|
+
"strict": true
|
|
69
|
+
},
|
|
70
|
+
"id_generator": {
|
|
71
|
+
"min_hash_length": 8
|
|
72
|
+
},
|
|
73
|
+
"mcp": {
|
|
74
|
+
"port": 3333
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Nested Configuration
|
|
80
|
+
|
|
81
|
+
Access nested values with dot notation:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Get nested value
|
|
85
|
+
tf config get import.orphan_handling
|
|
86
|
+
|
|
87
|
+
# Set nested value
|
|
88
|
+
tf config set mcp.port 4000
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Environment Variables
|
|
92
|
+
|
|
93
|
+
Some settings can be overridden via environment variables:
|
|
94
|
+
|
|
95
|
+
| Variable | Description |
|
|
96
|
+
|----------|-------------|
|
|
97
|
+
| `TRAK_FLOW_ACTOR` | Override the actor setting |
|
|
98
|
+
| `TRAK_FLOW_STEALTH` | Set to "1" for stealth mode |
|
|
99
|
+
|
|
100
|
+
## Reset to Defaults
|
|
101
|
+
|
|
102
|
+
Delete the config file to reset:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
rm .trak_flow/config.json
|
|
106
|
+
tf init # Recreates with defaults
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Git Integration
|
|
110
|
+
|
|
111
|
+
The configuration file is git-tracked by default, allowing team members to share settings. The SQLite database is gitignored.
|
|
112
|
+
|
|
113
|
+
### Recommended .gitignore
|
|
114
|
+
|
|
115
|
+
```gitignore
|
|
116
|
+
.trak_flow/trak_flow.db
|
|
117
|
+
.trak_flow/trak_flow.db-*
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
This is created automatically by `tf init`.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
## Requirements
|
|
4
|
+
|
|
5
|
+
- Ruby 3.2 or later
|
|
6
|
+
- Git (for version-controlled persistence)
|
|
7
|
+
|
|
8
|
+
## Install from RubyGems
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
gem install trak_flow
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Add to Your Gemfile
|
|
15
|
+
|
|
16
|
+
```ruby
|
|
17
|
+
gem 'trak_flow'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Then run:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
bundle install
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Install from Source
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
git clone https://github.com/MadBomber/trak_flow.git
|
|
30
|
+
cd trak_flow
|
|
31
|
+
bundle install
|
|
32
|
+
bundle exec rake install
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Verify Installation
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
tf --version
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
You should see:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
TrakFlow version 0.0.1
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Initialize a Project
|
|
48
|
+
|
|
49
|
+
Navigate to your project directory and run:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
tf init
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This creates a `.trak_flow/` directory with:
|
|
56
|
+
|
|
57
|
+
- `issues.jsonl` - Git-tracked task storage
|
|
58
|
+
- `trak_flow.db` - SQLite cache (gitignored)
|
|
59
|
+
- `config.json` - Project configuration
|
|
60
|
+
- `.gitignore` - Ignores the database file
|
|
61
|
+
|
|
62
|
+
## Dependencies
|
|
63
|
+
|
|
64
|
+
TrakFlow depends on these gems (installed automatically):
|
|
65
|
+
|
|
66
|
+
| Gem | Purpose |
|
|
67
|
+
|-----|---------|
|
|
68
|
+
| `thor` | CLI framework |
|
|
69
|
+
| `sqlite3` | Local database |
|
|
70
|
+
| `oj` | Fast JSON parsing |
|
|
71
|
+
| `pastel` | Terminal colors |
|
|
72
|
+
| `tty-table` | Table formatting |
|
|
73
|
+
| `fast_mcp` | MCP server support |
|
|
74
|
+
| `puma` | HTTP server for MCP |
|
|
75
|
+
|
|
76
|
+
## Next Steps
|
|
77
|
+
|
|
78
|
+
- [Quick Start](quick-start.md) - Create your first tasks
|
|
79
|
+
- [Configuration](configuration.md) - Customize TrakFlow settings
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
# Quick Start
|
|
2
|
+
|
|
3
|
+
This guide walks you through basic TrakFlow usage.
|
|
4
|
+
|
|
5
|
+
## Initialize Your Project
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
cd your-project
|
|
9
|
+
tf init
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Create Tasks
|
|
13
|
+
|
|
14
|
+
### Basic Task
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
tf create "Update documentation"
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
### Task with Options
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
tf create "Implement OAuth login" \
|
|
24
|
+
--type feature \
|
|
25
|
+
--priority 1 \
|
|
26
|
+
--description "Add Google and GitHub OAuth providers"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Shorthand Flags
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
tf create "Fix memory leak" -t bug -p 0 -d "Memory grows unbounded in worker"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## View Tasks
|
|
36
|
+
|
|
37
|
+
### List All Open Tasks
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
tf list
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Filter by Status
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
tf list --status in_progress
|
|
47
|
+
tf list -s blocked
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Filter by Type
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
tf list --type bug
|
|
54
|
+
tf list -T feature
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Show Task Details
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
tf show tf-abc123
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Update Tasks
|
|
64
|
+
|
|
65
|
+
### Start Working
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
tf start tf-abc123
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Mark as Blocked
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
tf block tf-abc123
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Close a Task
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
tf close tf-abc123 --reason "Implemented in PR #42"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Work with Dependencies
|
|
84
|
+
|
|
85
|
+
### Add a Dependency
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# Task A blocks Task B (B cannot start until A is done)
|
|
89
|
+
tf dep add tf-taskA tf-taskB
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### View Dependencies
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
tf dep tree tf-abc123
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Find Ready Work
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
tf ready
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
This shows tasks with no open blockers.
|
|
105
|
+
|
|
106
|
+
## Create a Plan (Workflow Blueprint)
|
|
107
|
+
|
|
108
|
+
Plans are reusable templates for common workflows.
|
|
109
|
+
|
|
110
|
+
### Create a Plan
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
tf plan create "Release Checklist"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Add Steps
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
tf plan add tf-plan1 "Run test suite"
|
|
120
|
+
tf plan add tf-plan1 "Update changelog"
|
|
121
|
+
tf plan add tf-plan1 "Bump version"
|
|
122
|
+
tf plan add tf-plan1 "Create release tag"
|
|
123
|
+
tf plan add tf-plan1 "Deploy to production"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### View Plan
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
tf plan show tf-plan1
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Execute a Workflow
|
|
133
|
+
|
|
134
|
+
### Persistent Workflow
|
|
135
|
+
|
|
136
|
+
Creates a workflow that persists in history:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
tf plan start tf-plan1
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Ephemeral Workflow
|
|
143
|
+
|
|
144
|
+
Creates a one-shot workflow (auto-cleaned):
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
tf plan execute tf-plan1
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Monitor Workflow
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
tf workflow show tf-wf1
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Complete Workflow
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
tf workflow summarize tf-wf1 --summary "Released v1.2.0 successfully"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Use Labels
|
|
163
|
+
|
|
164
|
+
### Add Labels
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
tf label add tf-abc123 "frontend"
|
|
168
|
+
tf label add tf-abc123 "urgent"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Filter by Label
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
tf list --label frontend
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Remove Labels
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
tf label remove tf-abc123 "urgent"
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## JSON Output
|
|
184
|
+
|
|
185
|
+
All commands support JSON output for scripting:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
tf list --json
|
|
189
|
+
tf show tf-abc123 -j
|
|
190
|
+
tf ready -j
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Common Workflows
|
|
194
|
+
|
|
195
|
+
### Bug Triage
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Create bug
|
|
199
|
+
tf create "App crashes on startup" -t bug -p 0
|
|
200
|
+
|
|
201
|
+
# Start investigating
|
|
202
|
+
tf start tf-abc123
|
|
203
|
+
|
|
204
|
+
# Mark blocked if waiting on info
|
|
205
|
+
tf block tf-abc123
|
|
206
|
+
|
|
207
|
+
# Close when fixed
|
|
208
|
+
tf close tf-abc123 -r "Fixed null pointer in init"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Feature Development
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# Create feature
|
|
215
|
+
tf create "Add dark mode" -t feature -p 2
|
|
216
|
+
|
|
217
|
+
# Create subtasks
|
|
218
|
+
tf create "Design dark theme colors" --parent tf-feature1
|
|
219
|
+
tf create "Implement CSS variables" --parent tf-feature1
|
|
220
|
+
tf create "Add theme toggle" --parent tf-feature1
|
|
221
|
+
|
|
222
|
+
# Track dependencies
|
|
223
|
+
tf dep add tf-design tf-implement
|
|
224
|
+
tf dep add tf-implement tf-toggle
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Sprint Planning
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Create Plan for sprint workflow
|
|
231
|
+
tf plan create "Sprint Workflow"
|
|
232
|
+
tf plan add tf-plan1 "Sprint planning meeting"
|
|
233
|
+
tf plan add tf-plan1 "Daily standups"
|
|
234
|
+
tf plan add tf-plan1 "Sprint review"
|
|
235
|
+
tf plan add tf-plan1 "Retrospective"
|
|
236
|
+
|
|
237
|
+
# Start each sprint
|
|
238
|
+
tf plan start tf-plan1
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Next Steps
|
|
242
|
+
|
|
243
|
+
- [Configuration](configuration.md) - Customize settings
|
|
244
|
+
- [Core Concepts](../core-concepts/overview.md) - Understand the data model
|
|
245
|
+
- [CLI Reference](../cli/overview.md) - Complete command reference
|