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.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/.envrc +3 -0
  3. data/CHANGELOG.md +69 -0
  4. data/COMMITS.md +196 -0
  5. data/Gemfile +8 -0
  6. data/Gemfile.lock +281 -0
  7. data/README.md +479 -0
  8. data/Rakefile +16 -0
  9. data/bin/tf +6 -0
  10. data/bin/tf_mcp +81 -0
  11. data/docs/.keep +0 -0
  12. data/docs/api/database.md +434 -0
  13. data/docs/api/ruby-library.md +349 -0
  14. data/docs/api/task-model.md +341 -0
  15. data/docs/assets/stylesheets/extra.css +53 -0
  16. data/docs/assets/trak_flow.jpg +0 -0
  17. data/docs/cli/admin-commands.md +369 -0
  18. data/docs/cli/dependency-commands.md +321 -0
  19. data/docs/cli/label-commands.md +222 -0
  20. data/docs/cli/overview.md +163 -0
  21. data/docs/cli/plan-commands.md +344 -0
  22. data/docs/cli/task-commands.md +333 -0
  23. data/docs/core-concepts/dependencies.md +232 -0
  24. data/docs/core-concepts/labels.md +217 -0
  25. data/docs/core-concepts/overview.md +178 -0
  26. data/docs/core-concepts/plans-workflows.md +264 -0
  27. data/docs/core-concepts/tasks.md +205 -0
  28. data/docs/getting-started/configuration.md +120 -0
  29. data/docs/getting-started/installation.md +79 -0
  30. data/docs/getting-started/quick-start.md +245 -0
  31. data/docs/index.md +169 -0
  32. data/docs/mcp/integration.md +302 -0
  33. data/docs/mcp/overview.md +206 -0
  34. data/docs/mcp/resources.md +284 -0
  35. data/docs/mcp/tools.md +457 -0
  36. data/examples/basic_usage.rb +365 -0
  37. data/examples/cli_demo.sh +314 -0
  38. data/examples/mcp/Gemfile +9 -0
  39. data/examples/mcp/Gemfile.lock +226 -0
  40. data/examples/mcp/http_demo.rb +232 -0
  41. data/examples/mcp/stdio_demo.rb +146 -0
  42. data/lib/trak_flow/cli/admin_commands.rb +136 -0
  43. data/lib/trak_flow/cli/config_commands.rb +260 -0
  44. data/lib/trak_flow/cli/dep_commands.rb +71 -0
  45. data/lib/trak_flow/cli/label_commands.rb +76 -0
  46. data/lib/trak_flow/cli/main_commands.rb +386 -0
  47. data/lib/trak_flow/cli/plan_commands.rb +185 -0
  48. data/lib/trak_flow/cli/workflow_commands.rb +133 -0
  49. data/lib/trak_flow/cli.rb +110 -0
  50. data/lib/trak_flow/config/defaults.yml +114 -0
  51. data/lib/trak_flow/config/section.rb +74 -0
  52. data/lib/trak_flow/config.rb +276 -0
  53. data/lib/trak_flow/graph/dependency_graph.rb +288 -0
  54. data/lib/trak_flow/id_generator.rb +52 -0
  55. data/lib/trak_flow/mcp/resources/base_resource.rb +25 -0
  56. data/lib/trak_flow/mcp/resources/dependency_graph.rb +31 -0
  57. data/lib/trak_flow/mcp/resources/label_list.rb +21 -0
  58. data/lib/trak_flow/mcp/resources/plan_by_id.rb +27 -0
  59. data/lib/trak_flow/mcp/resources/plan_list.rb +21 -0
  60. data/lib/trak_flow/mcp/resources/task_by_id.rb +31 -0
  61. data/lib/trak_flow/mcp/resources/task_list.rb +21 -0
  62. data/lib/trak_flow/mcp/resources/task_next.rb +30 -0
  63. data/lib/trak_flow/mcp/resources/workflow_by_id.rb +27 -0
  64. data/lib/trak_flow/mcp/resources/workflow_list.rb +21 -0
  65. data/lib/trak_flow/mcp/server.rb +140 -0
  66. data/lib/trak_flow/mcp/tools/base_tool.rb +29 -0
  67. data/lib/trak_flow/mcp/tools/comment_add.rb +33 -0
  68. data/lib/trak_flow/mcp/tools/dep_add.rb +34 -0
  69. data/lib/trak_flow/mcp/tools/dep_remove.rb +25 -0
  70. data/lib/trak_flow/mcp/tools/label_add.rb +28 -0
  71. data/lib/trak_flow/mcp/tools/label_remove.rb +25 -0
  72. data/lib/trak_flow/mcp/tools/plan_add_step.rb +35 -0
  73. data/lib/trak_flow/mcp/tools/plan_create.rb +33 -0
  74. data/lib/trak_flow/mcp/tools/plan_run.rb +58 -0
  75. data/lib/trak_flow/mcp/tools/plan_start.rb +58 -0
  76. data/lib/trak_flow/mcp/tools/task_block.rb +27 -0
  77. data/lib/trak_flow/mcp/tools/task_close.rb +26 -0
  78. data/lib/trak_flow/mcp/tools/task_create.rb +51 -0
  79. data/lib/trak_flow/mcp/tools/task_defer.rb +27 -0
  80. data/lib/trak_flow/mcp/tools/task_start.rb +25 -0
  81. data/lib/trak_flow/mcp/tools/task_update.rb +36 -0
  82. data/lib/trak_flow/mcp/tools/workflow_discard.rb +28 -0
  83. data/lib/trak_flow/mcp/tools/workflow_summarize.rb +34 -0
  84. data/lib/trak_flow/mcp.rb +38 -0
  85. data/lib/trak_flow/models/comment.rb +71 -0
  86. data/lib/trak_flow/models/dependency.rb +96 -0
  87. data/lib/trak_flow/models/label.rb +90 -0
  88. data/lib/trak_flow/models/task.rb +188 -0
  89. data/lib/trak_flow/storage/database.rb +638 -0
  90. data/lib/trak_flow/storage/jsonl.rb +259 -0
  91. data/lib/trak_flow/time_parser.rb +15 -0
  92. data/lib/trak_flow/version.rb +5 -0
  93. data/lib/trak_flow.rb +100 -0
  94. data/mkdocs.yml +143 -0
  95. 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