@jamesaphoenix/tx-cli 0.4.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 (138) hide show
  1. package/dist/cli-exit.d.ts +15 -0
  2. package/dist/cli-exit.d.ts.map +1 -0
  3. package/dist/cli-exit.js +18 -0
  4. package/dist/cli-exit.js.map +1 -0
  5. package/dist/cli.d.ts +8 -0
  6. package/dist/cli.d.ts.map +1 -0
  7. package/dist/cli.js +349 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/commands/attempt.d.ts +9 -0
  10. package/dist/commands/attempt.d.ts.map +1 -0
  11. package/dist/commands/attempt.js +93 -0
  12. package/dist/commands/attempt.js.map +1 -0
  13. package/dist/commands/bulk.d.ts +8 -0
  14. package/dist/commands/bulk.d.ts.map +1 -0
  15. package/dist/commands/bulk.js +168 -0
  16. package/dist/commands/bulk.js.map +1 -0
  17. package/dist/commands/claim.d.ts +39 -0
  18. package/dist/commands/claim.d.ts.map +1 -0
  19. package/dist/commands/claim.js +96 -0
  20. package/dist/commands/claim.js.map +1 -0
  21. package/dist/commands/compact.d.ts +17 -0
  22. package/dist/commands/compact.d.ts.map +1 -0
  23. package/dist/commands/compact.js +167 -0
  24. package/dist/commands/compact.js.map +1 -0
  25. package/dist/commands/coordinator.d.ts +12 -0
  26. package/dist/commands/coordinator.d.ts.map +1 -0
  27. package/dist/commands/coordinator.js +124 -0
  28. package/dist/commands/coordinator.js.map +1 -0
  29. package/dist/commands/cycle.d.ts +12 -0
  30. package/dist/commands/cycle.d.ts.map +1 -0
  31. package/dist/commands/cycle.js +109 -0
  32. package/dist/commands/cycle.js.map +1 -0
  33. package/dist/commands/daemon.d.ts +16 -0
  34. package/dist/commands/daemon.d.ts.map +1 -0
  35. package/dist/commands/daemon.js +635 -0
  36. package/dist/commands/daemon.js.map +1 -0
  37. package/dist/commands/dashboard.d.ts +12 -0
  38. package/dist/commands/dashboard.d.ts.map +1 -0
  39. package/dist/commands/dashboard.js +105 -0
  40. package/dist/commands/dashboard.js.map +1 -0
  41. package/dist/commands/dashboard.test.d.ts +2 -0
  42. package/dist/commands/dashboard.test.d.ts.map +1 -0
  43. package/dist/commands/dashboard.test.js +99 -0
  44. package/dist/commands/dashboard.test.js.map +1 -0
  45. package/dist/commands/dep.d.ts +9 -0
  46. package/dist/commands/dep.d.ts.map +1 -0
  47. package/dist/commands/dep.js +50 -0
  48. package/dist/commands/dep.js.map +1 -0
  49. package/dist/commands/doc.d.ts +10 -0
  50. package/dist/commands/doc.d.ts.map +1 -0
  51. package/dist/commands/doc.js +397 -0
  52. package/dist/commands/doc.js.map +1 -0
  53. package/dist/commands/doctor.d.ts +9 -0
  54. package/dist/commands/doctor.d.ts.map +1 -0
  55. package/dist/commands/doctor.js +168 -0
  56. package/dist/commands/doctor.js.map +1 -0
  57. package/dist/commands/graph.d.ts +58 -0
  58. package/dist/commands/graph.d.ts.map +1 -0
  59. package/dist/commands/graph.js +441 -0
  60. package/dist/commands/graph.js.map +1 -0
  61. package/dist/commands/hierarchy.d.ts +9 -0
  62. package/dist/commands/hierarchy.d.ts.map +1 -0
  63. package/dist/commands/hierarchy.js +68 -0
  64. package/dist/commands/hierarchy.js.map +1 -0
  65. package/dist/commands/hooks.d.ts +56 -0
  66. package/dist/commands/hooks.d.ts.map +1 -0
  67. package/dist/commands/hooks.js +365 -0
  68. package/dist/commands/hooks.js.map +1 -0
  69. package/dist/commands/invariant.d.ts +9 -0
  70. package/dist/commands/invariant.d.ts.map +1 -0
  71. package/dist/commands/invariant.js +126 -0
  72. package/dist/commands/invariant.js.map +1 -0
  73. package/dist/commands/learning.d.ts +16 -0
  74. package/dist/commands/learning.d.ts.map +1 -0
  75. package/dist/commands/learning.js +362 -0
  76. package/dist/commands/learning.js.map +1 -0
  77. package/dist/commands/migrate.d.ts +9 -0
  78. package/dist/commands/migrate.d.ts.map +1 -0
  79. package/dist/commands/migrate.js +56 -0
  80. package/dist/commands/migrate.js.map +1 -0
  81. package/dist/commands/orchestrator.d.ts +11 -0
  82. package/dist/commands/orchestrator.d.ts.map +1 -0
  83. package/dist/commands/orchestrator.js +129 -0
  84. package/dist/commands/orchestrator.js.map +1 -0
  85. package/dist/commands/stats.d.ts +8 -0
  86. package/dist/commands/stats.d.ts.map +1 -0
  87. package/dist/commands/stats.js +128 -0
  88. package/dist/commands/stats.js.map +1 -0
  89. package/dist/commands/sync-platform.d.ts +12 -0
  90. package/dist/commands/sync-platform.d.ts.map +1 -0
  91. package/dist/commands/sync-platform.js +74 -0
  92. package/dist/commands/sync-platform.js.map +1 -0
  93. package/dist/commands/sync.d.ts +8 -0
  94. package/dist/commands/sync.d.ts.map +1 -0
  95. package/dist/commands/sync.js +128 -0
  96. package/dist/commands/sync.js.map +1 -0
  97. package/dist/commands/task.d.ts +15 -0
  98. package/dist/commands/task.d.ts.map +1 -0
  99. package/dist/commands/task.js +233 -0
  100. package/dist/commands/task.js.map +1 -0
  101. package/dist/commands/test.d.ts +16 -0
  102. package/dist/commands/test.d.ts.map +1 -0
  103. package/dist/commands/test.js +112 -0
  104. package/dist/commands/test.js.map +1 -0
  105. package/dist/commands/trace.d.ts +39 -0
  106. package/dist/commands/trace.d.ts.map +1 -0
  107. package/dist/commands/trace.js +620 -0
  108. package/dist/commands/trace.js.map +1 -0
  109. package/dist/commands/validate.d.ts +9 -0
  110. package/dist/commands/validate.d.ts.map +1 -0
  111. package/dist/commands/validate.js +94 -0
  112. package/dist/commands/validate.js.map +1 -0
  113. package/dist/commands/worker.d.ts +10 -0
  114. package/dist/commands/worker.d.ts.map +1 -0
  115. package/dist/commands/worker.js +204 -0
  116. package/dist/commands/worker.js.map +1 -0
  117. package/dist/help.d.ts +3 -0
  118. package/dist/help.d.ts.map +1 -0
  119. package/dist/help.js +1366 -0
  120. package/dist/help.js.map +1 -0
  121. package/dist/output.d.ts +12 -0
  122. package/dist/output.d.ts.map +1 -0
  123. package/dist/output.js +76 -0
  124. package/dist/output.js.map +1 -0
  125. package/dist/tx +0 -0
  126. package/dist/utils/parse.d.ts +45 -0
  127. package/dist/utils/parse.d.ts.map +1 -0
  128. package/dist/utils/parse.js +79 -0
  129. package/dist/utils/parse.js.map +1 -0
  130. package/dist/utils/parse.test.d.ts +2 -0
  131. package/dist/utils/parse.test.d.ts.map +1 -0
  132. package/dist/utils/parse.test.js +140 -0
  133. package/dist/utils/parse.test.js.map +1 -0
  134. package/dist/version.d.ts +2 -0
  135. package/dist/version.d.ts.map +1 -0
  136. package/dist/version.js +10 -0
  137. package/dist/version.js.map +1 -0
  138. package/package.json +58 -0
package/dist/help.js ADDED
@@ -0,0 +1,1366 @@
1
+ /**
2
+ * CLI help text for all commands
3
+ */
4
+ import { CLI_VERSION } from "./version.js";
5
+ export const HELP_TEXT = `tx v${CLI_VERSION} - Task management for AI agents and humans
6
+
7
+ Usage: tx <command> [arguments] [options]
8
+
9
+ Tasks:
10
+ init Initialize task database
11
+ add <title> Create a new task
12
+ list List tasks
13
+ ready List ready tasks (no blockers)
14
+ show <id> Show task details
15
+ update <id> Update task
16
+ done <id> Mark task complete
17
+ reset <id> Reset task to ready (recover from stuck)
18
+ delete <id> Delete task
19
+ block <id> <blocker> Add blocking dependency
20
+ unblock <id> <blocker> Remove blocking dependency
21
+ children <id> List child tasks
22
+ tree <id> Show task subtree
23
+ try <id> <approach> Record an attempt on a task
24
+ attempts <id> List attempts for a task
25
+ claim Claim a task with a lease
26
+ claim:release Release a claim on a task
27
+ claim:renew Renew the lease on a claim
28
+
29
+ Context & Learnings:
30
+ learning:add Add a learning
31
+ learning:search Search learnings
32
+ learning:recent List recent learnings
33
+ learning:helpful Record learning helpfulness
34
+ learning:embed Compute embeddings for learnings
35
+ context Get contextual learnings for a task
36
+ learn Attach a learning to file/glob pattern
37
+ recall Query learnings for a path
38
+
39
+ Sync:
40
+ sync export Export tasks to JSONL file
41
+ sync import Import tasks from JSONL file
42
+ sync status Show sync status
43
+ sync claude Sync tasks to Claude Code team directory
44
+ sync codex Sync tasks to Codex (coming soon)
45
+
46
+ Traces:
47
+ trace list Show recent runs with event counts
48
+ trace show Show metrics events for a run
49
+ trace transcript Display raw transcript content
50
+ trace stderr Display stderr content
51
+ trace errors Show recent errors across all runs
52
+
53
+ Bulk Operations:
54
+ bulk done <id...> Complete multiple tasks
55
+ bulk score <n> <id...> Set score for multiple tasks
56
+ bulk reset <id...> Reset multiple tasks to ready
57
+ bulk delete <id...> Delete multiple tasks
58
+
59
+ Docs:
60
+ doc add <kind> <name> Create a doc (overview, prd, design)
61
+ doc edit <name> Open doc YAML in $EDITOR
62
+ doc show <name> Show doc details
63
+ doc list List all docs
64
+ doc render [name] Render MD files + regenerate index
65
+ doc lock <name> Lock doc (immutable)
66
+ doc version <name> Create new version from locked doc
67
+ doc link <from> <to> Link two docs
68
+ doc attach <task> <doc> Link task to doc
69
+ doc patch <design> <n> Create design patch on locked doc
70
+ doc validate Warn about unlinked tasks
71
+ doc drift <name> Detect drift between doc and tasks
72
+
73
+ Invariants:
74
+ invariant list List all invariants
75
+ invariant show <id> Show invariant details
76
+ invariant record <id> Record pass/fail check result
77
+ invariant sync Sync invariants from doc YAML to DB
78
+
79
+ Cycle Scan:
80
+ cycle Run cycle-based issue discovery scan
81
+
82
+ Utilities:
83
+ stats Show queue metrics and health overview
84
+ validate Run pre-flight database health checks
85
+ migrate status Show database migration status
86
+ doctor Run system diagnostics for troubleshooting
87
+ dashboard Start API server + dashboard and open in browser
88
+ mcp-server Start MCP server (JSON-RPC over stdio)
89
+
90
+ Global Options:
91
+ --json Output as JSON
92
+ --db <path> Database path (default: .tx/tasks.db)
93
+ --help Show help
94
+ --version Show version
95
+
96
+ Run 'tx help <command>' or 'tx <command> --help' for command-specific help.
97
+
98
+ Examples:
99
+ tx init
100
+ tx add "Implement auth" --score 800
101
+ tx add "Login page" --parent tx-a1b2c3d4 --score 600
102
+ tx list --status backlog,ready
103
+ tx ready --json
104
+ tx block <task-id> <blocker-id>
105
+ tx done <task-id>`;
106
+ export const commandHelp = {
107
+ init: `tx init - Initialize task database
108
+
109
+ Usage: tx init [--db <path>]
110
+
111
+ Initializes the tx database and required tables. Creates .tx/tasks.db
112
+ by default. Safe to run multiple times (idempotent).
113
+
114
+ Options:
115
+ --db <path> Database path (default: .tx/tasks.db)
116
+ --help Show this help
117
+
118
+ Examples:
119
+ tx init # Initialize in .tx/tasks.db
120
+ tx init --db ~/my-tasks.db # Use custom path`,
121
+ add: `tx add - Create a new task
122
+
123
+ Usage: tx add <title> [options]
124
+
125
+ Creates a new task with the given title. Tasks start with status "backlog"
126
+ and default score 500.
127
+
128
+ Arguments:
129
+ <title> Required. The task title (use quotes for multi-word titles)
130
+
131
+ Options:
132
+ --parent, -p <id> Parent task ID (for subtasks)
133
+ --score, -s <n> Priority score 0-1000 (default: 500, higher = more important)
134
+ --description, -d <text> Task description
135
+ --json Output as JSON
136
+ --help Show this help
137
+
138
+ Examples:
139
+ tx add "Implement auth"
140
+ tx add "Login page" --parent tx-a1b2c3d4 --score 600
141
+ tx add "Fix bug" -s 800 -d "Urgent fix for login"`,
142
+ list: `tx list - List tasks
143
+
144
+ Usage: tx list [options]
145
+
146
+ Lists all tasks, optionally filtered by status. Shows task ID, status,
147
+ score, title, and ready indicator (+).
148
+
149
+ Options:
150
+ --status <s> Filter by status (comma-separated: backlog,ready,active,done)
151
+ --limit, -n <n> Maximum tasks to show
152
+ --json Output as JSON
153
+ --help Show this help
154
+
155
+ Examples:
156
+ tx list # List all tasks
157
+ tx list --status backlog,ready # Only backlog and ready tasks
158
+ tx list -n 10 --json # Top 10 as JSON`,
159
+ ready: `tx ready - List ready tasks
160
+
161
+ Usage: tx ready [options]
162
+
163
+ Lists tasks that are ready to work on (status is workable and all blockers
164
+ are done). Sorted by score, highest first.
165
+
166
+ Options:
167
+ --limit, -n <n> Maximum tasks to show (default: 10)
168
+ --json Output as JSON
169
+ --help Show this help
170
+
171
+ Examples:
172
+ tx ready # Top 10 ready tasks
173
+ tx ready -n 5 # Top 5 ready tasks
174
+ tx ready --json # Output as JSON for scripting`,
175
+ show: `tx show - Show task details
176
+
177
+ Usage: tx show <id> [options]
178
+
179
+ Shows full details for a single task including title, status, score,
180
+ description, parent, blockers, blocks, children, and timestamps.
181
+
182
+ Arguments:
183
+ <id> Required. Task ID (e.g., tx-a1b2c3d4)
184
+
185
+ Options:
186
+ --json Output as JSON
187
+ --help Show this help
188
+
189
+ Examples:
190
+ tx show tx-a1b2c3d4
191
+ tx show tx-a1b2c3d4 --json`,
192
+ update: `tx update - Update a task
193
+
194
+ Usage: tx update <id> [options]
195
+
196
+ Updates one or more fields on an existing task.
197
+
198
+ Arguments:
199
+ <id> Required. Task ID (e.g., tx-a1b2c3d4)
200
+
201
+ Options:
202
+ --status <s> New status (backlog|ready|planning|active|blocked|review|human_needs_to_review|done)
203
+ --title <t> New title
204
+ --score <n> New score (0-1000)
205
+ --description, -d <text> New description
206
+ --parent, -p <id> New parent task ID
207
+ --json Output as JSON
208
+ --help Show this help
209
+
210
+ Examples:
211
+ tx update tx-a1b2c3d4 --status active
212
+ tx update tx-a1b2c3d4 --score 900 --title "High priority bug"`,
213
+ done: `tx done - Mark task complete
214
+
215
+ Usage: tx done <id> [options]
216
+
217
+ Marks a task as complete (status = done). Also reports any tasks
218
+ that become unblocked as a result.
219
+
220
+ Arguments:
221
+ <id> Required. Task ID (e.g., tx-a1b2c3d4)
222
+
223
+ Options:
224
+ --json Output as JSON (includes task and newly unblocked task IDs)
225
+ --help Show this help
226
+
227
+ Examples:
228
+ tx done tx-a1b2c3d4
229
+ tx done tx-a1b2c3d4 --json`,
230
+ reset: `tx reset - Reset task to ready status
231
+
232
+ Usage: tx reset <id> [options]
233
+
234
+ Resets a task back to ready status, regardless of current status.
235
+ Use this to recover from stuck tasks (e.g., worker killed mid-task).
236
+
237
+ Arguments:
238
+ <id> Required. Task ID (e.g., tx-a1b2c3d4)
239
+
240
+ Options:
241
+ --json Output as JSON
242
+ --help Show this help
243
+
244
+ Examples:
245
+ tx reset tx-a1b2c3d4 # Reset stuck active task
246
+ tx reset tx-a1b2c3d4 --json`,
247
+ delete: `tx delete - Delete a task
248
+
249
+ Usage: tx delete <id> [options]
250
+
251
+ Permanently deletes a task. Also removes any dependencies involving
252
+ this task.
253
+
254
+ Arguments:
255
+ <id> Required. Task ID (e.g., tx-a1b2c3d4)
256
+
257
+ Options:
258
+ --json Output as JSON
259
+ --help Show this help
260
+
261
+ Examples:
262
+ tx delete tx-a1b2c3d4`,
263
+ block: `tx block - Add blocking dependency
264
+
265
+ Usage: tx block <task-id> <blocker-id> [options]
266
+
267
+ Makes one task block another. The blocked task cannot be ready until
268
+ the blocker is marked done. Circular dependencies are not allowed.
269
+
270
+ Arguments:
271
+ <task-id> Required. The task that will be blocked
272
+ <blocker-id> Required. The task that blocks it
273
+
274
+ Options:
275
+ --json Output as JSON
276
+ --help Show this help
277
+
278
+ Examples:
279
+ tx block tx-abc123 tx-def456 # tx-def456 blocks tx-abc123`,
280
+ unblock: `tx unblock - Remove blocking dependency
281
+
282
+ Usage: tx unblock <task-id> <blocker-id> [options]
283
+
284
+ Removes a blocking dependency between two tasks.
285
+
286
+ Arguments:
287
+ <task-id> Required. The task that was blocked
288
+ <blocker-id> Required. The task that was blocking it
289
+
290
+ Options:
291
+ --json Output as JSON
292
+ --help Show this help
293
+
294
+ Examples:
295
+ tx unblock tx-abc123 tx-def456`,
296
+ children: `tx children - List child tasks
297
+
298
+ Usage: tx children <id> [options]
299
+
300
+ Lists all direct children of a task (tasks with this task as parent).
301
+ Shows task ID, status, score, title, and ready indicator (+).
302
+
303
+ Arguments:
304
+ <id> Required. Parent task ID (e.g., tx-a1b2c3d4)
305
+
306
+ Options:
307
+ --json Output as JSON
308
+ --help Show this help
309
+
310
+ Examples:
311
+ tx children tx-a1b2c3d4
312
+ tx children tx-a1b2c3d4 --json`,
313
+ tree: `tx tree - Show task subtree
314
+
315
+ Usage: tx tree <id> [options]
316
+
317
+ Shows a task and all its descendants in a tree view. Useful for
318
+ visualizing task hierarchy.
319
+
320
+ Arguments:
321
+ <id> Required. Root task ID (e.g., tx-a1b2c3d4)
322
+
323
+ Options:
324
+ --json Output as JSON (nested structure with childTasks array)
325
+ --help Show this help
326
+
327
+ Examples:
328
+ tx tree tx-a1b2c3d4
329
+ tx tree tx-a1b2c3d4 --json`,
330
+ try: `tx try - Record an attempt on a task
331
+
332
+ Usage: tx try <task-id> <approach> --failed|--succeeded [reason]
333
+
334
+ Records an attempt made on a task. Useful for tracking what approaches
335
+ have been tried and their outcomes. Helps agents avoid repeating
336
+ failed approaches.
337
+
338
+ Arguments:
339
+ <task-id> Required. Task ID (e.g., tx-a1b2c3d4)
340
+ <approach> Required. Description of the approach tried
341
+
342
+ Flags (mutually exclusive, one required):
343
+ --failed Mark the attempt as failed
344
+ --succeeded Mark the attempt as succeeded
345
+
346
+ Options:
347
+ [reason] Optional reason/explanation after the flag
348
+ --json Output as JSON
349
+ --help Show this help
350
+
351
+ Examples:
352
+ tx try tx-abc123 "Used Redux" --failed "Too complex for this use case"
353
+ tx try tx-abc123 "Used Zustand" --succeeded
354
+ tx try tx-abc123 "Direct state prop drilling" --failed --json`,
355
+ attempts: `tx attempts - List attempts for a task
356
+
357
+ Usage: tx attempts <task-id> [--json]
358
+
359
+ Lists all attempts recorded for a task, sorted by most recent first.
360
+ Shows the approach tried, outcome (success/failure), reason if any,
361
+ and timestamp.
362
+
363
+ Arguments:
364
+ <task-id> Required. Task ID (e.g., tx-a1b2c3d4)
365
+
366
+ Options:
367
+ --json Output as JSON (full attempt array)
368
+ --help Show this help
369
+
370
+ Examples:
371
+ tx attempts tx-abc123
372
+ tx attempts tx-abc123 --json`,
373
+ "mcp-server": `tx mcp-server - Start MCP server
374
+
375
+ Usage: tx mcp-server [options]
376
+
377
+ Starts the Model Context Protocol (MCP) server for integration with
378
+ AI agents. Communicates via JSON-RPC over stdio.
379
+
380
+ Options:
381
+ --db <path> Database path (default: .tx/tasks.db)
382
+ --help Show this help
383
+
384
+ Examples:
385
+ tx mcp-server
386
+ tx mcp-server --db ~/project/.tx/tasks.db`,
387
+ sync: `tx sync - Manage JSONL sync and platform integrations
388
+
389
+ Usage: tx sync <subcommand> [options]
390
+
391
+ Subcommands:
392
+ export Export all tasks and dependencies to JSONL file
393
+ import Import tasks from JSONL file (timestamp-based merge)
394
+ status Show sync status and whether database has unexported changes
395
+ auto Enable or disable automatic sync on mutations
396
+ compact Compact JSONL file by deduplicating operations
397
+ claude Write tasks to Claude Code team task directory
398
+ codex Write tasks to Codex (coming soon)
399
+
400
+ Run 'tx sync <subcommand> --help' for subcommand-specific help.
401
+
402
+ Examples:
403
+ tx sync export # Export to .tx/tasks.jsonl
404
+ tx sync import # Import from .tx/tasks.jsonl
405
+ tx sync status # Show sync status
406
+ tx sync auto --enable # Enable auto-sync
407
+ tx sync compact # Compact JSONL file
408
+ tx sync claude --team my-team # Push tasks to Claude Code team`,
409
+ "sync export": `tx sync export - Export tasks to JSONL
410
+
411
+ Usage: tx sync export [options]
412
+
413
+ Exports tasks and dependencies from the database to JSONL files.
414
+ The files can be committed to git for sharing across machines.
415
+
416
+ Options:
417
+ --path <p> Output file path for tasks (default: .tx/tasks.jsonl)
418
+ --json Output result as JSON
419
+ --help Show this help
420
+
421
+ Examples:
422
+ tx sync export # Export tasks only
423
+ tx sync export --json # Export as JSON`,
424
+ "sync import": `tx sync import - Import tasks from JSONL
425
+
426
+ Usage: tx sync import [options]
427
+
428
+ Imports tasks from JSONL files into the database. Uses timestamp-based
429
+ conflict resolution: newer records win. Safe to run multiple times.
430
+
431
+ Options:
432
+ --path <p> Input file path for tasks (default: .tx/tasks.jsonl)
433
+ --json Output result as JSON
434
+ --help Show this help
435
+
436
+ Examples:
437
+ tx sync import # Import tasks only
438
+ tx sync import --json # Import as JSON`,
439
+ "sync status": `tx sync status - Show sync status
440
+
441
+ Usage: tx sync status [--json]
442
+
443
+ Shows the current sync status including:
444
+ - Number of tasks in database
445
+ - Number of operations in JSONL file
446
+ - Whether database has unexported changes (dirty)
447
+ - Auto-sync enabled status
448
+
449
+ Options:
450
+ --json Output as JSON
451
+ --help Show this help
452
+
453
+ Examples:
454
+ tx sync status
455
+ tx sync status --json`,
456
+ "sync auto": `tx sync auto - Manage automatic sync
457
+
458
+ Usage: tx sync auto [--enable | --disable] [--json]
459
+
460
+ Controls whether mutations automatically trigger JSONL export.
461
+ When auto-sync is enabled, any task create/update/delete will
462
+ automatically export to the JSONL file.
463
+
464
+ Options:
465
+ --enable Enable auto-sync
466
+ --disable Disable auto-sync
467
+ --json Output as JSON
468
+ --help Show this help
469
+
470
+ Without flags, shows current auto-sync status.
471
+
472
+ Examples:
473
+ tx sync auto # Show current status
474
+ tx sync auto --enable # Enable auto-sync
475
+ tx sync auto --disable # Disable auto-sync`,
476
+ "sync claude": `tx sync claude - Write tasks to Claude Code team directory
477
+
478
+ Usage: tx sync claude --team <name> [options]
479
+ tx sync claude --dir <path> [options]
480
+
481
+ Writes all non-done tx tasks as individual JSON files to a Claude Code
482
+ team's task directory. Tasks appear immediately in the team's TaskList.
483
+ This is a one-way sync: tx is the source of truth.
484
+
485
+ Teammates should run 'tx done <txId>' when they complete a task to
486
+ write back to the tx database.
487
+
488
+ Options:
489
+ --team <name> Claude Code team name (resolves to ~/.claude/tasks/<name>/)
490
+ --dir <path> Direct path to task directory (alternative to --team)
491
+ --json Output result as JSON
492
+ --help Show this help
493
+
494
+ Workflow:
495
+ 1. Create team: Teammate.spawnTeam("my-team")
496
+ 2. Sync tasks: tx sync claude --team my-team
497
+ 3. Spawn agents: Task tool with team_name="my-team"
498
+ 4. Writeback: Teammates run 'tx done <txId>' on completion
499
+
500
+ Examples:
501
+ tx sync claude --team my-team # Write to ~/.claude/tasks/my-team/
502
+ tx sync claude --dir /tmp/tasks # Write to custom directory
503
+ tx sync claude --team my-team --json # JSON output with stats`,
504
+ "sync codex": `tx sync codex - Write tasks to Codex (coming soon)
505
+
506
+ Usage: tx sync codex [options]
507
+
508
+ Writes tasks to OpenAI Codex's task format. Not yet implemented.
509
+
510
+ Options:
511
+ --help Show this help`,
512
+ "sync compact": `tx sync compact - Compact JSONL file
513
+
514
+ Usage: tx sync compact [--path <path>] [--json]
515
+
516
+ Compacts the JSONL file by:
517
+ - Keeping only the latest state for each entity
518
+ - Removing deleted tasks (tombstones)
519
+ - Removing removed dependencies
520
+
521
+ This reduces file size and improves import performance.
522
+
523
+ Options:
524
+ --path <p> JSONL file path (default: .tx/tasks.jsonl)
525
+ --json Output as JSON
526
+ --help Show this help
527
+
528
+ Examples:
529
+ tx sync compact # Compact default file
530
+ tx sync compact --path ~/shared.jsonl # Compact specific file`,
531
+ migrate: `tx migrate - Manage database schema migrations
532
+
533
+ Usage: tx migrate <subcommand> [options]
534
+
535
+ Subcommands:
536
+ status Show current schema version and pending migrations
537
+
538
+ Run 'tx migrate <subcommand> --help' for subcommand-specific help.
539
+
540
+ Examples:
541
+ tx migrate status # Show migration status`,
542
+ "migrate status": `tx migrate status - Show migration status
543
+
544
+ Usage: tx migrate status [--json]
545
+
546
+ Shows the current schema version, latest available version, applied
547
+ migrations, and any pending migrations that will be applied on next
548
+ database open.
549
+
550
+ Options:
551
+ --json Output as JSON
552
+ --help Show this help
553
+
554
+ Examples:
555
+ tx migrate status
556
+ tx migrate status --json`,
557
+ "learning:add": `tx learning:add - Add a learning
558
+
559
+ Usage: tx learning:add <content> [options]
560
+
561
+ Creates a new learning entry. Learnings are pieces of knowledge that can
562
+ be retrieved based on task context.
563
+
564
+ Arguments:
565
+ <content> Required. The learning content/insight to store
566
+
567
+ Options:
568
+ -c, --category <cat> Category tag (e.g., database, auth, api)
569
+ --source-ref <ref> Reference to source (e.g., task ID, file path)
570
+ --source-type <type> Source type: manual, compaction, run, claude_md (default: manual)
571
+ --json Output as JSON
572
+ --help Show this help
573
+
574
+ Examples:
575
+ tx learning:add "Always use transactions for multi-step DB operations"
576
+ tx learning:add "Rate limit is 100 req/min" -c api
577
+ tx learning:add "Migration requires downtime" --source-ref tx-abc123`,
578
+ "learning:search": `tx learning:search - Search learnings
579
+
580
+ Usage: tx learning:search <query> [options]
581
+
582
+ Searches learnings using hybrid BM25 + vector search with RRF fusion.
583
+ Returns results ranked by relevance.
584
+
585
+ Arguments:
586
+ <query> Required. Search query (keywords or phrase)
587
+
588
+ Options:
589
+ -n, --limit <n> Maximum results (default: 10)
590
+ --min-score <n> Minimum relevance score 0-1 (default: 0.3)
591
+ --json Output as JSON
592
+ --help Show this help
593
+
594
+ Examples:
595
+ tx learning:search "database transactions"
596
+ tx learning:search "authentication" -n 5 --json`,
597
+ "learning:recent": `tx learning:recent - List recent learnings
598
+
599
+ Usage: tx learning:recent [options]
600
+
601
+ Lists the most recently created learnings.
602
+
603
+ Options:
604
+ -n, --limit <n> Maximum results (default: 10)
605
+ --json Output as JSON
606
+ --help Show this help
607
+
608
+ Examples:
609
+ tx learning:recent
610
+ tx learning:recent -n 5 --json`,
611
+ "learning:helpful": `tx learning:helpful - Record learning helpfulness
612
+
613
+ Usage: tx learning:helpful <id> [options]
614
+
615
+ Records whether a learning was helpful (outcome feedback). This improves
616
+ future retrieval by boosting helpful learnings in search results.
617
+
618
+ Arguments:
619
+ <id> Required. Learning ID (number)
620
+
621
+ Options:
622
+ --score <n> Helpfulness score 0-1 (default: 1.0)
623
+ --json Output as JSON
624
+ --help Show this help
625
+
626
+ Examples:
627
+ tx learning:helpful 42
628
+ tx learning:helpful 42 --score 0.8`,
629
+ "learning:embed": `tx learning:embed - Compute embeddings for learnings
630
+
631
+ Usage: tx learning:embed [options]
632
+
633
+ Computes vector embeddings for learnings to enable semantic search.
634
+ Requires TX_EMBEDDINGS=1 environment variable to be set.
635
+
636
+ Options:
637
+ --embedder <type> Select embedder: auto (default), openai, local, noop
638
+ Overrides TX_EMBEDDER environment variable
639
+ --all Re-embed all learnings (default: only those without embeddings)
640
+ --status Show embedding coverage status
641
+ --json Output as JSON
642
+ --help Show this help
643
+
644
+ Embedder Types:
645
+ auto Auto-detect based on available API keys and packages
646
+ openai Use OpenAI text-embedding-3-small (requires OPENAI_API_KEY)
647
+ local Use local node-llama-cpp with embeddinggemma-300M
648
+ noop Disable embeddings (for testing)
649
+
650
+ Examples:
651
+ TX_EMBEDDINGS=1 tx learning:embed # Embed with auto-detection
652
+ TX_EMBEDDINGS=1 tx learning:embed --embedder openai # Force OpenAI embedder
653
+ TX_EMBEDDINGS=1 tx learning:embed --embedder local # Force local embedder
654
+ TX_EMBEDDINGS=1 tx learning:embed --all # Re-embed all learnings
655
+ tx learning:embed --status # Show embedding coverage
656
+ tx learning:embed --status --embedder openai # Show status with embedder info`,
657
+ context: `tx context - Get contextual learnings for a task
658
+
659
+ Usage: tx context <task-id> [options]
660
+
661
+ Retrieves learnings relevant to a specific task based on its title and
662
+ description. Uses hybrid BM25 + vector search with RRF fusion, optional
663
+ re-ranking and MMR diversification.
664
+
665
+ Arguments:
666
+ <task-id> Required. Task ID (e.g., tx-a1b2c3d4)
667
+
668
+ Options:
669
+ --json Output as JSON
670
+ --inject Write to .tx/context.md for injection
671
+ --retriever <path> Use custom retriever module (exports Layer<RetrieverService>)
672
+ --help Show this help
673
+
674
+ Custom Retriever Format:
675
+ The module should export a default Layer that provides RetrieverService:
676
+
677
+ // my-retriever.ts
678
+ import { Layer, Effect } from "effect"
679
+ import { RetrieverService } from "@jamesaphoenix/tx-core"
680
+
681
+ export default Layer.succeed(RetrieverService, {
682
+ search: (query, options) => Effect.gen(function* () {
683
+ // Custom Pinecone/Weaviate/Chroma implementation
684
+ return yield* myVectorSearch(query, options)
685
+ }),
686
+ isAvailable: () => Effect.succeed(true)
687
+ })
688
+
689
+ Examples:
690
+ tx context tx-a1b2c3d4
691
+ tx context tx-a1b2c3d4 --json
692
+ tx context tx-a1b2c3d4 --inject
693
+ tx context tx-a1b2c3d4 --retriever ./my-retriever.ts`,
694
+ learn: `tx learn - Attach a learning to a file path or glob pattern
695
+
696
+ Usage: tx learn <path> <note> [options]
697
+
698
+ Stores a file-specific note that can be recalled when working on matching files.
699
+ Supports glob patterns for matching multiple files.
700
+
701
+ Arguments:
702
+ <path> Required. File path or glob pattern (e.g., src/services/*.ts)
703
+ <note> Required. The note/learning to attach
704
+
705
+ Options:
706
+ --task <id> Associate with a task ID
707
+ --json Output as JSON
708
+ --help Show this help
709
+
710
+ Examples:
711
+ tx learn "src/db.ts" "Always run migrations in a transaction"
712
+ tx learn "src/services/*.ts" "Services must use Effect-TS patterns"
713
+ tx learn "*.test.ts" "Use vitest describe/it syntax" --task tx-abc123`,
714
+ recall: `tx recall - Query file learnings by path
715
+
716
+ Usage: tx recall [path] [options]
717
+
718
+ Retrieves file-specific learnings. If a path is provided, returns learnings
719
+ matching that path (using glob patterns). Without a path, returns all learnings.
720
+
721
+ Arguments:
722
+ [path] Optional. File path to match against stored patterns
723
+
724
+ Options:
725
+ --json Output as JSON
726
+ --help Show this help
727
+
728
+ Examples:
729
+ tx recall # List all file learnings
730
+ tx recall "src/db.ts" # Learnings for specific file
731
+ tx recall "src/services/task.ts" # Matches patterns like src/services/*.ts
732
+ tx recall --json`,
733
+ help: `tx help - Show help
734
+
735
+ Usage: tx help [command]
736
+ tx --help
737
+ tx <command> --help
738
+
739
+ Shows general help or help for a specific command.
740
+
741
+ Examples:
742
+ tx help # General help
743
+ tx help add # Help for 'add' command
744
+ tx add --help # Same as above`,
745
+ trace: `tx trace - Execution tracing for debugging run failures
746
+
747
+ Usage: tx trace <subcommand> [options]
748
+
749
+ Subcommands:
750
+ list Show recent runs with event counts
751
+ show <run-id> Show metrics events for a run
752
+ transcript <run-id> Display raw transcript content
753
+ stderr <run-id> Display stderr content
754
+ errors Show recent errors across all runs
755
+
756
+ Run 'tx trace <subcommand> --help' for subcommand-specific help.
757
+
758
+ Examples:
759
+ tx trace list # Recent runs with span counts
760
+ tx trace list --hours 48 # Runs from last 48 hours
761
+ tx trace show run-abc123 # Metrics events for a run
762
+ tx trace show run-abc123 --full # Combined events + tool calls timeline
763
+ tx trace transcript run-abc123 # Raw JSONL transcript
764
+ tx trace stderr run-abc123 # Stderr output for debugging
765
+ tx trace errors # Recent errors across all runs
766
+ tx trace errors --hours 48 # Errors from last 48 hours`,
767
+ "trace list": `tx trace list - Show recent runs with event counts
768
+
769
+ Usage: tx trace list [options]
770
+
771
+ Lists recent runs from the database with their agent, task, status, span count,
772
+ and relative time. Useful for quick overview of recent execution activity.
773
+
774
+ Options:
775
+ --hours <n> Time window in hours (default: 24)
776
+ --limit, -n <n> Maximum number of results (default: 20)
777
+ --json Output as JSON
778
+ --help Show this help
779
+
780
+ Examples:
781
+ tx trace list # Recent runs (last 24h)
782
+ tx trace list --hours 48 # Last 48 hours
783
+ tx trace list --limit 10 # Top 10 only
784
+ tx trace list --json # JSON output for scripting`,
785
+ "trace show": `tx trace show - Show metrics events for a run
786
+
787
+ Usage: tx trace show <run-id> [options]
788
+
789
+ Displays operational metrics events (spans, metrics) recorded during a run.
790
+ With --full, also includes tool calls from the transcript file, interleaved
791
+ by timestamp for comprehensive debugging.
792
+
793
+ Arguments:
794
+ <run-id> Required. Run ID (e.g., run-abc12345)
795
+
796
+ Options:
797
+ --full Combine events timeline with transcript tool calls
798
+ --json Output as JSON
799
+ --help Show this help
800
+
801
+ Output (default):
802
+ Shows run metadata (agent, task, status, times) followed by metrics events
803
+ in chronological order with their duration and status.
804
+
805
+ Output (--full):
806
+ Shows a combined timeline that interleaves:
807
+ - [span] Operational spans with timing data
808
+ - [metric] Custom metrics
809
+ - [tool] Tool calls from the transcript (e.g., Bash, Read, Edit)
810
+
811
+ This is useful for understanding exactly what the agent was doing at each
812
+ point in time, correlating service operations with agent tool usage.
813
+
814
+ Examples:
815
+ tx trace show run-abc123 # Metrics events only
816
+ tx trace show run-abc123 --full # Combined timeline with tool calls
817
+ tx trace show run-abc123 --json # JSON output for scripting`,
818
+ "trace errors": `tx trace errors - Show recent errors across all runs
819
+
820
+ Usage: tx trace errors [options]
821
+
822
+ Aggregates errors from multiple sources:
823
+ - Failed runs (runs with status='failed')
824
+ - Error spans (operations that threw exceptions)
825
+ - Error events (explicit error events)
826
+
827
+ Useful for quickly identifying patterns in failures across multiple runs.
828
+
829
+ Options:
830
+ --hours <n> Time window in hours (default: 24)
831
+ --limit, -n <n> Maximum number of results (default: 20)
832
+ --json Output as JSON
833
+ --help Show this help
834
+
835
+ Examples:
836
+ tx trace errors # Recent errors (last 24h)
837
+ tx trace errors --hours 48 # Last 48 hours
838
+ tx trace errors --limit 10 # Top 10 only
839
+ tx trace errors --json # JSON output for scripting`,
840
+ claim: `tx claim - Claim a task for a worker with a lease
841
+
842
+ Usage: tx claim <task-id> <worker-id> [options]
843
+
844
+ Claims a task for a worker, preventing other workers from claiming it.
845
+ The claim has a lease duration; if the lease expires, the task becomes
846
+ claimable again. Workers should renew leases for long-running tasks.
847
+
848
+ Arguments:
849
+ <task-id> Required. Task ID (e.g., tx-a1b2c3d4)
850
+ <worker-id> Required. Worker ID (e.g., worker-abc12345)
851
+
852
+ Options:
853
+ --lease <m> Lease duration in minutes (default: 30)
854
+ --json Output as JSON
855
+ --help Show this help
856
+
857
+ Examples:
858
+ tx claim tx-abc123 worker-def456 # Claim with default 30m lease
859
+ tx claim tx-abc123 worker-def456 --lease 60 # Claim with 60m lease
860
+ tx claim tx-abc123 worker-def456 --json # JSON output`,
861
+ "claim:release": `tx claim:release - Release a claim on a task
862
+
863
+ Usage: tx claim:release <task-id> <worker-id> [options]
864
+
865
+ Releases a worker's claim on a task, allowing other workers to claim it.
866
+ Only the worker holding the claim can release it.
867
+
868
+ Arguments:
869
+ <task-id> Required. Task ID (e.g., tx-a1b2c3d4)
870
+ <worker-id> Required. Worker ID that holds the claim
871
+
872
+ Options:
873
+ --json Output as JSON
874
+ --help Show this help
875
+
876
+ Examples:
877
+ tx claim:release tx-abc123 worker-def456
878
+ tx claim:release tx-abc123 worker-def456 --json`,
879
+ "claim:renew": `tx claim:renew - Renew the lease on a claim
880
+
881
+ Usage: tx claim:renew <task-id> <worker-id> [options]
882
+
883
+ Extends the lease on an existing claim. Use this for long-running tasks
884
+ to prevent the claim from expiring. Maximum 10 renewals by default.
885
+
886
+ Arguments:
887
+ <task-id> Required. Task ID (e.g., tx-a1b2c3d4)
888
+ <worker-id> Required. Worker ID that holds the claim
889
+
890
+ Options:
891
+ --json Output as JSON
892
+ --help Show this help
893
+
894
+ Fails if:
895
+ - No active claim exists for this task and worker
896
+ - The lease has already expired
897
+ - Maximum renewals (10) have been exceeded
898
+
899
+ Examples:
900
+ tx claim:renew tx-abc123 worker-def456
901
+ tx claim:renew tx-abc123 worker-def456 --json`,
902
+ validate: `tx validate - Database health checks
903
+
904
+ Usage: tx validate [options]
905
+
906
+ Performs comprehensive pre-flight checks on the database:
907
+ - Database integrity (SQLite PRAGMA integrity_check)
908
+ - Schema version verification
909
+ - Foreign key constraint validation
910
+ - Orphaned dependency detection
911
+ - Invalid status values scan
912
+ - Missing parent references
913
+
914
+ Use before running agents or after sync import to catch corruption early.
915
+
916
+ Options:
917
+ --fix Auto-fix what's fixable (orphaned deps, invalid statuses, missing parent refs)
918
+ --json Output as JSON
919
+ --help Show this help
920
+
921
+ Exit Codes:
922
+ 0 Database is valid (no errors)
923
+ 1 Validation failed (errors found)
924
+
925
+ Examples:
926
+ tx validate # Run all checks
927
+ tx validate --fix # Auto-fix fixable issues
928
+ tx validate --json # Machine-readable output`,
929
+ stats: `tx stats - Show queue metrics and health overview
930
+
931
+ Usage: tx stats [options]
932
+
933
+ Displays aggregate statistics about the task queue including:
934
+ - Task counts by status with percentages
935
+ - Ready tasks grouped by priority (score range)
936
+ - Completion activity (last 24h, 7d, avg per day)
937
+ - Active and expired claim counts
938
+
939
+ Options:
940
+ --json Output as JSON
941
+ --help Show this help
942
+
943
+ Examples:
944
+ tx stats # Show queue metrics
945
+ tx stats --json # Machine-readable output`,
946
+ bulk: `tx bulk - Batch operations on multiple tasks
947
+
948
+ Usage: tx bulk <subcommand> <args...> [options]
949
+
950
+ Subcommands:
951
+ done <id...> Complete multiple tasks at once
952
+ score <n> <id...> Set priority score for multiple tasks
953
+ reset <id...> Reset multiple tasks to ready status
954
+ delete <id...> Delete multiple tasks
955
+
956
+ Operations are executed sequentially. Each task is processed independently;
957
+ failures on one task do not prevent processing of the remaining tasks.
958
+ A summary of successes and failures is printed at the end.
959
+
960
+ Options:
961
+ --json Output as JSON
962
+ --help Show this help
963
+
964
+ Examples:
965
+ tx bulk done tx-abc123 tx-def456 tx-ghi789
966
+ tx bulk score 900 tx-abc123 tx-def456
967
+ tx bulk reset tx-abc123 tx-def456
968
+ tx bulk delete tx-abc123 tx-def456 --json`,
969
+ doctor: `tx doctor - System diagnostics for troubleshooting
970
+
971
+ Usage: tx doctor [options]
972
+
973
+ Runs diagnostic checks to help troubleshoot issues:
974
+ - Database file exists and is readable
975
+ - WAL mode enabled
976
+ - Schema version matches expected
977
+ - Effect services are properly wired
978
+ - Stale claims and workers
979
+ - Task and learning counts
980
+ - ANTHROPIC_API_KEY availability for LLM features
981
+
982
+ Options:
983
+ --verbose, -v Include detailed output for each check
984
+ --json Output as JSON
985
+ --help Show this help
986
+
987
+ Exit Codes:
988
+ 0 All checks pass (healthy)
989
+ 1 One or more checks failed
990
+
991
+ Examples:
992
+ tx doctor # Run diagnostics
993
+ tx doctor --verbose # Include detailed output
994
+ tx doctor --json # Machine-readable output`,
995
+ dashboard: `tx dashboard - Start API server + dashboard and open in browser
996
+
997
+ Usage: tx dashboard [options]
998
+
999
+ Starts the dashboard API server (port 3001) and Vite dev server (port 5173),
1000
+ then opens the dashboard in Brave Browser (falls back to Chrome).
1001
+
1002
+ Options:
1003
+ --no-open Start servers without opening browser
1004
+ --port <n> Custom API server port (default: 3001)
1005
+
1006
+ Press Ctrl+C to stop both servers.
1007
+
1008
+ Examples:
1009
+ tx dashboard # Start and open in Brave/Chrome
1010
+ tx dashboard --no-open # Start without opening browser
1011
+ tx dashboard --port 3002 # Custom API port`,
1012
+ doc: `tx doc - Docs as primitives (DD-023)
1013
+
1014
+ Usage: tx doc <subcommand> [options]
1015
+
1016
+ Subcommands:
1017
+ add <kind> <name> Create a doc (overview, prd, design)
1018
+ edit <name> Open doc YAML in $EDITOR
1019
+ show <name> Show doc details (--md for rendered markdown)
1020
+ list List all docs (--kind, --status filters)
1021
+ render [name] Render MD files + regenerate index
1022
+ lock <name> Lock doc (immutable after locking)
1023
+ version <name> Create new version from locked doc (copies content)
1024
+ link <from> <to> Link two docs (auto-infers link type)
1025
+ attach <task> <doc> Link task to doc (--type implements|references)
1026
+ patch <design> <name> Create design patch on locked doc
1027
+ validate Warn about tasks not linked to docs
1028
+ drift <name> Detect drift between doc and linked tasks
1029
+
1030
+ Run 'tx doc <subcommand> --help' for subcommand-specific help.
1031
+
1032
+ Examples:
1033
+ tx doc add overview system-design
1034
+ tx doc add design DD-023 --title "Docs as Primitives"
1035
+ tx doc render
1036
+ tx doc lock DD-023
1037
+ tx doc version DD-023
1038
+ tx doc validate`,
1039
+ "doc add": `tx doc add - Create a new doc
1040
+
1041
+ Usage: tx doc add <kind> <name> [--title <title>]
1042
+
1043
+ Creates a new doc with template YAML content. The file is written to
1044
+ .tx/docs/<kind>/<name>.yml (overview docs go to .tx/docs/<name>.yml).
1045
+
1046
+ Arguments:
1047
+ <kind> Required. Doc kind: overview, prd, design
1048
+ <name> Required. Doc name (e.g., DD-023-docs-as-primitives)
1049
+
1050
+ Options:
1051
+ --title, -t <title> Doc title (defaults to name)
1052
+ --json Output as JSON
1053
+ --help Show this help
1054
+
1055
+ Notes:
1056
+ - Only ONE overview doc is allowed per project
1057
+ - YAML content is the source of truth; MD is generated via 'tx doc render'
1058
+
1059
+ Examples:
1060
+ tx doc add overview system-design --title "System Design & Invariants"
1061
+ tx doc add prd PRD-023 --title "Docs as Primitives"
1062
+ tx doc add design DD-023 --title "Docs as Primitives"`,
1063
+ "doc edit": `tx doc edit - Open doc YAML in editor
1064
+
1065
+ Usage: tx doc edit <name>
1066
+
1067
+ Opens the doc's YAML file in $EDITOR (defaults to vi).
1068
+
1069
+ Arguments:
1070
+ <name> Required. Doc name
1071
+
1072
+ Examples:
1073
+ tx doc edit DD-023
1074
+ EDITOR=code tx doc edit DD-023`,
1075
+ "doc show": `tx doc show - Show doc details
1076
+
1077
+ Usage: tx doc show <name> [--md] [--json]
1078
+
1079
+ Shows metadata for a doc. Use --md to display rendered markdown content.
1080
+
1081
+ Arguments:
1082
+ <name> Required. Doc name
1083
+
1084
+ Options:
1085
+ --md Show rendered markdown content instead of metadata
1086
+ --json Output as JSON
1087
+ --help Show this help
1088
+
1089
+ Examples:
1090
+ tx doc show DD-023
1091
+ tx doc show DD-023 --md
1092
+ tx doc show DD-023 --json`,
1093
+ "doc list": `tx doc list - List all docs
1094
+
1095
+ Usage: tx doc list [--kind <k>] [--status <s>] [--json]
1096
+
1097
+ Lists all docs with their kind, version, status, and title.
1098
+
1099
+ Options:
1100
+ --kind, -k <kind> Filter by kind (overview, prd, design)
1101
+ --status, -s <status> Filter by status (changing, locked)
1102
+ --json Output as JSON
1103
+ --help Show this help
1104
+
1105
+ Examples:
1106
+ tx doc list
1107
+ tx doc list --kind design
1108
+ tx doc list --status locked --json`,
1109
+ "doc render": `tx doc render - Render MD files from YAML
1110
+
1111
+ Usage: tx doc render [name] [--json]
1112
+
1113
+ Reads YAML source files and generates markdown. Always regenerates
1114
+ index.yml and index.md alongside any specific doc.
1115
+
1116
+ Arguments:
1117
+ [name] Optional. Specific doc to render (default: all)
1118
+
1119
+ Options:
1120
+ --json Output as JSON
1121
+ --help Show this help
1122
+
1123
+ Examples:
1124
+ tx doc render # Render all docs + index
1125
+ tx doc render DD-023 # Render specific doc + index`,
1126
+ "doc lock": `tx doc lock - Lock a doc
1127
+
1128
+ Usage: tx doc lock <name> [--json]
1129
+
1130
+ Locks a doc, making it immutable. Renders final MD. To make changes
1131
+ to a locked doc, create a new version (tx doc version) or a patch
1132
+ (tx doc patch).
1133
+
1134
+ Arguments:
1135
+ <name> Required. Doc name
1136
+
1137
+ Options:
1138
+ --json Output as JSON
1139
+ --help Show this help
1140
+
1141
+ Examples:
1142
+ tx doc lock DD-023`,
1143
+ "doc version": `tx doc version - Create new version from locked doc
1144
+
1145
+ Usage: tx doc version <name> [--json]
1146
+
1147
+ Creates a new version (v2, v3, etc.) by copying the locked doc's content.
1148
+ The new version starts in 'changing' status and can be edited.
1149
+
1150
+ Arguments:
1151
+ <name> Required. Doc name (must be locked)
1152
+
1153
+ Options:
1154
+ --json Output as JSON
1155
+ --help Show this help
1156
+
1157
+ Examples:
1158
+ tx doc version DD-023 # Creates DD-023 v2 from locked v1`,
1159
+ "doc link": `tx doc link - Link two docs
1160
+
1161
+ Usage: tx doc link <from-name> <to-name> [--type <link-type>]
1162
+
1163
+ Creates a link between two docs. Link type is auto-inferred from
1164
+ doc kinds (overview->prd, prd->design, etc.) unless overridden.
1165
+
1166
+ Arguments:
1167
+ <from-name> Required. Source doc name
1168
+ <to-name> Required. Target doc name
1169
+
1170
+ Options:
1171
+ --type <type> Link type (overview_to_prd, overview_to_design,
1172
+ prd_to_design, design_patch). Auto-inferred if omitted.
1173
+ --json Output as JSON
1174
+ --help Show this help
1175
+
1176
+ Examples:
1177
+ tx doc link system-design PRD-023
1178
+ tx doc link PRD-023 DD-023`,
1179
+ "doc attach": `tx doc attach - Link task to doc
1180
+
1181
+ Usage: tx doc attach <task-id> <doc-name> [--type <link-type>]
1182
+
1183
+ Links a task to a doc. Allowed even on locked docs (Class A bugs
1184
+ can reference locked designs).
1185
+
1186
+ Arguments:
1187
+ <task-id> Required. Task ID (e.g., tx-a1b2c3d4)
1188
+ <doc-name> Required. Doc name
1189
+
1190
+ Options:
1191
+ --type <type> Link type: implements (default) or references
1192
+ --json Output as JSON
1193
+ --help Show this help
1194
+
1195
+ Examples:
1196
+ tx doc attach tx-abc123 DD-023
1197
+ tx doc attach tx-abc123 DD-023 --type references`,
1198
+ "doc patch": `tx doc patch - Create design patch on locked doc
1199
+
1200
+ Usage: tx doc patch <design-name> <patch-name> [--title <title>]
1201
+
1202
+ Creates a new design doc linked as a patch to a locked design doc.
1203
+ Use for Class B bug fixes on locked designs.
1204
+
1205
+ Arguments:
1206
+ <design-name> Required. Name of locked design doc to patch
1207
+ <patch-name> Required. Name for the patch doc
1208
+
1209
+ Options:
1210
+ --title, -t <title> Patch title (defaults to patch name)
1211
+ --json Output as JSON
1212
+ --help Show this help
1213
+
1214
+ Examples:
1215
+ tx doc patch DD-023 DD-023-patch-1 --title "Fix rendering edge case"`,
1216
+ "doc validate": `tx doc validate - Warn about unlinked tasks
1217
+
1218
+ Usage: tx doc validate [--json]
1219
+
1220
+ Checks all tasks and warns about any that are not linked to a design doc.
1221
+ Does not block operations (warn-only enforcement).
1222
+
1223
+ Options:
1224
+ --json Output as JSON
1225
+ --help Show this help
1226
+
1227
+ Examples:
1228
+ tx doc validate
1229
+ tx doc validate --json`,
1230
+ "doc drift": `tx doc drift - Detect drift between doc and tasks
1231
+
1232
+ Usage: tx doc drift <name> [--json]
1233
+
1234
+ Checks for drift between a doc and its linked tasks. Reports tasks
1235
+ that are linked but may not be covered in the doc's work breakdown.
1236
+
1237
+ Arguments:
1238
+ <name> Required. Doc name
1239
+
1240
+ Options:
1241
+ --json Output as JSON
1242
+ --help Show this help
1243
+
1244
+ Examples:
1245
+ tx doc drift DD-023
1246
+ tx doc drift DD-023 --json`,
1247
+ invariant: `tx invariant - Manage structured invariants (DD-023)
1248
+
1249
+ Usage: tx invariant <subcommand> [options]
1250
+
1251
+ Subcommands:
1252
+ list List all invariants (--subsystem, --enforcement filters)
1253
+ show <id> Show invariant details
1254
+ record <id> Record pass/fail check result
1255
+ sync Sync invariants from doc YAML files to DB
1256
+
1257
+ Run 'tx invariant <subcommand> --help' for subcommand-specific help.
1258
+
1259
+ Examples:
1260
+ tx invariant list
1261
+ tx invariant list --subsystem docs
1262
+ tx invariant show INV-DOC-001
1263
+ tx invariant record INV-DOC-001 --passed
1264
+ tx invariant sync`,
1265
+ "invariant list": `tx invariant list - List all invariants
1266
+
1267
+ Usage: tx invariant list [--subsystem <s>] [--enforcement <e>] [--json]
1268
+
1269
+ Lists all invariants with their rule, enforcement type, and status.
1270
+
1271
+ Options:
1272
+ --subsystem, -s <sub> Filter by subsystem (e.g., docs, task-management)
1273
+ --enforcement, -e <type> Filter by enforcement type (integration_test, linter, llm_as_judge)
1274
+ --json Output as JSON
1275
+ --help Show this help
1276
+
1277
+ Examples:
1278
+ tx invariant list
1279
+ tx invariant list --subsystem docs
1280
+ tx invariant list --enforcement integration_test --json`,
1281
+ "invariant show": `tx invariant show - Show invariant details
1282
+
1283
+ Usage: tx invariant show <id> [--json]
1284
+
1285
+ Shows full details for an invariant including rule, enforcement type,
1286
+ subsystem, test/lint/prompt references, and status.
1287
+
1288
+ Arguments:
1289
+ <id> Required. Invariant ID (e.g., INV-001, INV-DOC-001)
1290
+
1291
+ Options:
1292
+ --json Output as JSON
1293
+ --help Show this help
1294
+
1295
+ Examples:
1296
+ tx invariant show INV-001
1297
+ tx invariant show INV-DOC-001 --json`,
1298
+ "invariant record": `tx invariant record - Record invariant check result
1299
+
1300
+ Usage: tx invariant record <id> --passed|--failed [--details <text>]
1301
+
1302
+ Manually records the result of checking an invariant. In v1, all
1303
+ checks are manual. Automated runners (test, lint, LLM) are v2.
1304
+
1305
+ Arguments:
1306
+ <id> Required. Invariant ID (e.g., INV-001)
1307
+
1308
+ Flags (one required):
1309
+ --passed Record a passing check
1310
+ --failed Record a failing check
1311
+
1312
+ Options:
1313
+ --details, -d <text> Additional details about the check
1314
+ --json Output as JSON
1315
+ --help Show this help
1316
+
1317
+ Examples:
1318
+ tx invariant record INV-001 --passed
1319
+ tx invariant record INV-DOC-001 --failed --details "Missing test coverage"
1320
+ tx invariant record INV-001 --passed --json`,
1321
+ cycle: `tx cycle - Run cycle-based issue discovery scan
1322
+
1323
+ Usage: tx cycle --task-prompt <text|file> [options]
1324
+
1325
+ Dispatches sub-agent swarms to scan for codebase issues, deduplicates
1326
+ findings against known issues using LLM-as-judge, and optionally fixes them.
1327
+ Repeats in rounds within each cycle until convergence.
1328
+
1329
+ Options:
1330
+ --task-prompt <text|file> Area/work being reviewed (required)
1331
+ --scan-prompt <text|file> What sub-agents look for (optional)
1332
+ --name <text> Cycle name (shown in dashboard)
1333
+ --description <text> Cycle description
1334
+ --cycles <N> Number of cycles (default: 1)
1335
+ --max-rounds <N> Max rounds per cycle (default: 10)
1336
+ --agents <N> Parallel scan agents per round (default: 3)
1337
+ --model <model> LLM model (default: claude-opus-4-6)
1338
+ --fix Enable fix agent between scan rounds
1339
+ --scan-only Skip fix phase (explicit default)
1340
+ --dry-run Report only, no DB writes
1341
+ --score <N> Base score for new tasks (default: 500)
1342
+ --json Output as JSON
1343
+
1344
+ Examples:
1345
+ tx cycle --task-prompt "Review core services" --scan-prompt "Find bugs"
1346
+ tx cycle --task-prompt "Auth module" --scan-only --name "Auth review"
1347
+ tx cycle --task-prompt "Review core" --agents 2 --model claude-sonnet-4-5-20250929
1348
+ tx cycle --task-prompt "Full review" --cycles 3 --fix`,
1349
+ "invariant sync": `tx invariant sync - Sync invariants from doc YAML to DB
1350
+
1351
+ Usage: tx invariant sync [--doc <name>] [--json]
1352
+
1353
+ Parses invariant definitions from doc YAML files and upserts them
1354
+ into the database. Invariants removed from YAML are deprecated.
1355
+
1356
+ Options:
1357
+ --doc <name> Only sync invariants from a specific doc
1358
+ --json Output as JSON
1359
+ --help Show this help
1360
+
1361
+ Examples:
1362
+ tx invariant sync # Sync all docs
1363
+ tx invariant sync --doc DD-023 # Sync specific doc
1364
+ tx invariant sync --json`
1365
+ };
1366
+ //# sourceMappingURL=help.js.map