@sascha384/tic 1.6.0 → 1.8.0

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 (87) hide show
  1. package/.claude-plugin/marketplace.json +14 -0
  2. package/.claude-plugin/plugin.json +15 -0
  3. package/.mcp.json +6 -0
  4. package/README.md +15 -50
  5. package/dist/app.d.ts +3 -1
  6. package/dist/app.js +12 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/backends/ado/index.js +54 -64
  9. package/dist/backends/ado/index.js.map +1 -1
  10. package/dist/backends/cache.d.ts +11 -0
  11. package/dist/backends/cache.js +36 -0
  12. package/dist/backends/cache.js.map +1 -0
  13. package/dist/backends/factory.d.ts +1 -1
  14. package/dist/backends/factory.js +13 -1
  15. package/dist/backends/factory.js.map +1 -1
  16. package/dist/backends/github/index.d.ts +2 -2
  17. package/dist/backends/github/index.js +9 -9
  18. package/dist/backends/github/index.js.map +1 -1
  19. package/dist/backends/gitlab/index.d.ts +2 -0
  20. package/dist/backends/gitlab/index.js +9 -2
  21. package/dist/backends/gitlab/index.js.map +1 -1
  22. package/dist/backends/jira/acli.d.ts +2 -0
  23. package/dist/backends/jira/acli.js +17 -0
  24. package/dist/backends/jira/acli.js.map +1 -0
  25. package/dist/backends/jira/config.d.ts +6 -0
  26. package/dist/backends/jira/config.js +15 -0
  27. package/dist/backends/jira/config.js.map +1 -0
  28. package/dist/backends/jira/index.d.ts +29 -0
  29. package/dist/backends/jira/index.js +331 -0
  30. package/dist/backends/jira/index.js.map +1 -0
  31. package/dist/backends/jira/mappers.d.ts +62 -0
  32. package/dist/backends/jira/mappers.js +63 -0
  33. package/dist/backends/jira/mappers.js.map +1 -0
  34. package/dist/backends/local/config.d.ts +5 -0
  35. package/dist/backends/local/config.js.map +1 -1
  36. package/dist/backends/local/index.d.ts +0 -2
  37. package/dist/backends/local/index.js +13 -27
  38. package/dist/backends/local/index.js.map +1 -1
  39. package/dist/backends/types.d.ts +15 -2
  40. package/dist/backends/types.js +51 -0
  41. package/dist/backends/types.js.map +1 -1
  42. package/dist/cli/commands/item.js +3 -3
  43. package/dist/cli/commands/item.js.map +1 -1
  44. package/dist/components/BulkMenu.d.ts +10 -0
  45. package/dist/components/BulkMenu.js +49 -0
  46. package/dist/components/BulkMenu.js.map +1 -0
  47. package/dist/components/CardLayout.d.ts +2 -1
  48. package/dist/components/CardLayout.js +3 -2
  49. package/dist/components/CardLayout.js.map +1 -1
  50. package/dist/components/HelpScreen.d.ts +15 -0
  51. package/dist/components/HelpScreen.js +165 -0
  52. package/dist/components/HelpScreen.js.map +1 -0
  53. package/dist/components/IterationPicker.js +8 -3
  54. package/dist/components/IterationPicker.js.map +1 -1
  55. package/dist/components/PriorityPicker.d.ts +6 -0
  56. package/dist/components/PriorityPicker.js +18 -0
  57. package/dist/components/PriorityPicker.js.map +1 -0
  58. package/dist/components/SearchOverlay.d.ts +10 -0
  59. package/dist/components/SearchOverlay.js +63 -0
  60. package/dist/components/SearchOverlay.js.map +1 -0
  61. package/dist/components/Settings.js +113 -18
  62. package/dist/components/Settings.js.map +1 -1
  63. package/dist/components/StatusPicker.d.ts +7 -0
  64. package/dist/components/StatusPicker.js +16 -0
  65. package/dist/components/StatusPicker.js.map +1 -0
  66. package/dist/components/StatusScreen.js +6 -2
  67. package/dist/components/StatusScreen.js.map +1 -1
  68. package/dist/components/TableLayout.d.ts +2 -1
  69. package/dist/components/TableLayout.js +3 -2
  70. package/dist/components/TableLayout.js.map +1 -1
  71. package/dist/components/TypePicker.d.ts +7 -0
  72. package/dist/components/TypePicker.js +16 -0
  73. package/dist/components/TypePicker.js.map +1 -0
  74. package/dist/components/WorkItemForm.js +8 -12
  75. package/dist/components/WorkItemForm.js.map +1 -1
  76. package/dist/components/WorkItemList.d.ts +3 -0
  77. package/dist/components/WorkItemList.js +286 -53
  78. package/dist/components/WorkItemList.js.map +1 -1
  79. package/dist/components/fuzzyMatch.d.ts +6 -0
  80. package/dist/components/fuzzyMatch.js +36 -0
  81. package/dist/components/fuzzyMatch.js.map +1 -0
  82. package/dist/index.js +1 -8
  83. package/dist/index.js.map +1 -1
  84. package/package.json +22 -2
  85. package/skills/tic-config/SKILL.md +59 -0
  86. package/skills/tic-items/SKILL.md +92 -0
  87. package/skills/tic-relationships/SKILL.md +76 -0
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: tic-config
3
+ description: Use when initializing projects, checking configuration, or changing backends/iterations
4
+ ---
5
+
6
+ # tic Configuration
7
+
8
+ Use these tools to initialize and configure tic projects.
9
+
10
+ ## Tools
11
+
12
+ ### init_project
13
+
14
+ Creates a `.tic/` directory in the current project. Call this first if other tools fail with "Not a tic project".
15
+
16
+ ### get_config
17
+
18
+ Returns project configuration:
19
+ - `backend` — current backend type (local, github, gitlab, azure, jira)
20
+ - `statuses` — available status values
21
+ - `types` — available work item types
22
+ - `iterations` — configured iterations
23
+ - `currentIteration` — active iteration filter
24
+ - `capabilities` — what the backend supports
25
+
26
+ **Always call this first** to understand what types, statuses, and iterations are available before creating or updating items.
27
+
28
+ ### set_backend
29
+
30
+ Switch between backends: `local`, `github`, `gitlab`, `azure`, `jira`.
31
+
32
+ The backend is auto-detected from git remotes, but can be overridden.
33
+
34
+ ### set_iteration
35
+
36
+ Set the current iteration filter. This affects which items appear in `list_items` and `search_items` unless `all: true` is passed.
37
+
38
+ ## Capabilities
39
+
40
+ The `capabilities` object from `get_config` tells you what the backend supports:
41
+
42
+ ```json
43
+ {
44
+ "relationships": true, // parent/child, dependencies
45
+ "customTypes": true, // configurable work item types
46
+ "customStatuses": true, // configurable statuses
47
+ "iterations": true, // iteration/sprint support
48
+ "comments": true, // commenting on items
49
+ "fields": {
50
+ "priority": true,
51
+ "assignee": true,
52
+ "labels": true,
53
+ "parent": true,
54
+ "dependsOn": true
55
+ }
56
+ }
57
+ ```
58
+
59
+ Check capabilities before using optional fields — not all backends support all features.
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: tic-items
3
+ description: Use when creating, updating, listing, searching, or deleting work items
4
+ ---
5
+
6
+ # tic Work Items
7
+
8
+ Use these tools to manage work items across any backend.
9
+
10
+ ## Before You Start
11
+
12
+ Call `get_config` first to understand:
13
+ - Available `types` (e.g., epic, issue, task)
14
+ - Available `statuses` (e.g., backlog, todo, in-progress, done)
15
+ - Available `iterations`
16
+ - Backend `capabilities` (which fields are supported)
17
+
18
+ ## Tools
19
+
20
+ ### list_items
21
+
22
+ List work items with optional filters:
23
+ - `type` — filter by work item type
24
+ - `status` — filter by status
25
+ - `iteration` — filter by iteration
26
+ - `all` — show all iterations (ignores current iteration filter)
27
+
28
+ Use filters rather than fetching all and filtering locally.
29
+
30
+ ### show_item
31
+
32
+ Get full details of a work item by ID. Returns all fields including description, comments, and a `url` for opening in browser/editor.
33
+
34
+ ### search_items
35
+
36
+ Text search across title and description. Supports the same filters as `list_items`.
37
+
38
+ ### create_item
39
+
40
+ Create a new work item. Required field:
41
+ - `title` — work item title
42
+
43
+ Optional fields (check capabilities first):
44
+ - `type` — defaults to first available type
45
+ - `status` — defaults to first available status
46
+ - `priority` — low, medium, high, critical
47
+ - `assignee` — who owns this
48
+ - `labels` — comma-separated tags
49
+ - `iteration` — which sprint/milestone
50
+ - `parent` — ID of parent item
51
+ - `depends_on` — array of IDs this item depends on
52
+ - `description` — full details
53
+
54
+ ### update_item
55
+
56
+ Update an existing work item. Required field:
57
+ - `id` — work item ID
58
+
59
+ All other fields are optional — only pass what you want to change.
60
+
61
+ To clear a parent relationship, pass `parent: null`.
62
+
63
+ ### delete_item / confirm_delete
64
+
65
+ **Two-step deletion for safety:**
66
+
67
+ 1. Call `delete_item` with the ID — returns a preview showing:
68
+ - The item being deleted
69
+ - Children that will be unparented
70
+ - Dependents that will lose this dependency
71
+
72
+ 2. Call `confirm_delete` with the same ID to execute
73
+
74
+ This prevents accidental data loss. Always preview before confirming.
75
+
76
+ ### add_comment
77
+
78
+ Add a timestamped comment to a work item. Only available if backend supports comments (check `capabilities.comments`).
79
+
80
+ - `id` — work item ID
81
+ - `text` — comment content
82
+ - `author` — optional, defaults to system
83
+
84
+ ## Example Workflow
85
+
86
+ ```
87
+ 1. get_config → understand available types/statuses
88
+ 2. list_items with type: "task", status: "todo" → see open tasks
89
+ 3. create_item with title, type, priority → create new item
90
+ 4. update_item with id, status: "in-progress" → update status
91
+ 5. add_comment with id, text → add progress note
92
+ ```
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: tic-relationships
3
+ description: Use when working with parent-child hierarchies or dependencies between items
4
+ ---
5
+
6
+ # tic Relationships
7
+
8
+ Use these tools to navigate and manage work item hierarchies and dependencies.
9
+
10
+ ## Prerequisites
11
+
12
+ Check `capabilities.relationships` from `get_config` — not all backends support relationships.
13
+
14
+ ## Tools
15
+
16
+ ### get_item_tree
17
+
18
+ Get all work items as a hierarchical tree structure. Children are nested under their parents.
19
+
20
+ Best for understanding overall project structure. Supports same filters as `list_items`:
21
+ - `type`, `status`, `iteration`, `all`
22
+
23
+ ### get_children
24
+
25
+ Get direct children of a specific work item.
26
+
27
+ - `id` — parent work item ID
28
+
29
+ Returns array of child work items.
30
+
31
+ ### get_dependents
32
+
33
+ Get items that depend on (are blocked by) a specific work item.
34
+
35
+ - `id` — work item ID
36
+
37
+ Returns array of dependent work items. Useful for understanding impact before completing or deleting an item.
38
+
39
+ ## Setting Relationships
40
+
41
+ ### Parent-Child
42
+
43
+ Set during `create_item` or `update_item`:
44
+ - `parent: "123"` — set parent to item 123
45
+ - `parent: null` — clear parent (make root-level)
46
+
47
+ Children appear indented under their parent in tree views.
48
+
49
+ ### Dependencies
50
+
51
+ Set during `create_item` or `update_item`:
52
+ - `depends_on: ["123", "456"]` — this item is blocked by items 123 and 456
53
+
54
+ Dependencies indicate work that must complete before this item can proceed.
55
+
56
+ ## Validation
57
+
58
+ The backend enforces:
59
+ - **No circular parents** — item cannot be its own ancestor
60
+ - **Referential integrity** — referenced items must exist
61
+
62
+ ## Cleanup on Delete
63
+
64
+ When an item is deleted:
65
+ - Children have their `parent` cleared (become root-level)
66
+ - The item is removed from other items' `depends_on` lists
67
+
68
+ The `delete_item` preview shows these affected items before you confirm.
69
+
70
+ ## Warnings
71
+
72
+ When completing an item (`status: "done"`), tic warns if:
73
+ - Item has open children
74
+ - Item has unresolved dependencies
75
+
76
+ These are warnings, not blockers — you can proceed if appropriate.