team-toon-tack 2.1.0 → 2.3.2
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.
- package/.claude-plugin/marketplace.json +19 -0
- package/.claude-plugin/plugin.json +18 -0
- package/README.md +57 -8
- package/README.zh-TW.md +57 -8
- package/commands/ttt:done.md +64 -0
- package/commands/ttt:show.md +126 -0
- package/commands/ttt:status.md +65 -0
- package/commands/ttt:sync.md +51 -0
- package/commands/ttt:work-on.md +79 -0
- package/commands/ttt:write-validate.md +122 -0
- package/dist/bin/cli.js +17 -8
- package/dist/scripts/config/teams.js +1 -1
- package/dist/scripts/get-issue.d.ts +1 -0
- package/dist/scripts/get-issue.js +61 -0
- package/dist/scripts/init.js +23 -155
- package/dist/scripts/lib/config-builder.d.ts +1 -1
- package/dist/scripts/lib/sync.d.ts +8 -0
- package/dist/scripts/lib/sync.js +41 -29
- package/dist/scripts/show.d.ts +1 -0
- package/dist/scripts/show.js +319 -0
- package/dist/scripts/sync.js +7 -8
- package/dist/scripts/work-on.js +1 -1
- package/package.json +5 -3
- package/skills/linear-task-manager/SKILL.md +188 -0
- package/templates/claude-code-commands/done-job.md +0 -45
- package/templates/claude-code-commands/sync-linear.md +0 -32
- package/templates/claude-code-commands/work-on.md +0 -62
- package/templates/config.example.toon +0 -37
- package/templates/local.example.toon +0 -16
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ttt-marketplace",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "wayne930242",
|
|
5
|
+
"email": "wayne930242@gmail.com"
|
|
6
|
+
},
|
|
7
|
+
"metadata": {
|
|
8
|
+
"description": "Linear task management tools for Claude Code - efficient workflow without MCP overhead",
|
|
9
|
+
"version": "1.0.0"
|
|
10
|
+
},
|
|
11
|
+
"plugins": [
|
|
12
|
+
{
|
|
13
|
+
"name": "team-toon-tack",
|
|
14
|
+
"source": "./",
|
|
15
|
+
"description": "Linear task sync & management CLI with commands and skills",
|
|
16
|
+
"version": "2.3.2"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "team-toon-tack",
|
|
3
|
+
"description": "Linear task sync & management CLI for Claude Code - saves tokens vs MCP",
|
|
4
|
+
"version": "2.3.2",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "wayne930242",
|
|
7
|
+
"email": "wayne930242@gmail.com"
|
|
8
|
+
},
|
|
9
|
+
"repository": "https://github.com/wayne930242/team-toon-tack",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"keywords": [
|
|
12
|
+
"claude-code",
|
|
13
|
+
"linear",
|
|
14
|
+
"task-management",
|
|
15
|
+
"workflow",
|
|
16
|
+
"productivity"
|
|
17
|
+
]
|
|
18
|
+
}
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ Optimized Linear workflow for Claude Code — saves significant tokens compared
|
|
|
14
14
|
- **QA Team Support** — Auto-update parent issues in QA team to "Testing" when completing dev tasks
|
|
15
15
|
- **Attachment Download** — Auto-download Linear images and files to local `.ttt/output/` for AI vision analysis
|
|
16
16
|
- **Blocked Status** — Set tasks as blocked when waiting on external dependencies
|
|
17
|
-
- **
|
|
17
|
+
- **Claude Code Plugin** — Install plugin for `/ttt:*` commands and auto-activated skills
|
|
18
18
|
- **Cycle History** — Local `.toon` files preserve cycle data for AI context
|
|
19
19
|
- **User Filtering** — Only see issues assigned to you or unassigned
|
|
20
20
|
|
|
@@ -36,7 +36,6 @@ During init, you'll configure:
|
|
|
36
36
|
- **QA team(s)**: For cross-team parent issue updates, each with its own testing status (optional)
|
|
37
37
|
- **Completion mode**: How task completion is handled (see below)
|
|
38
38
|
- **Status source**: `remote` (update Linear immediately) or `local` (work offline, sync with `ttt sync --update`)
|
|
39
|
-
- **Claude Code commands**: Auto-install with optional prefix (e.g., `/ttt:work-on`)
|
|
40
39
|
|
|
41
40
|
### Completion Modes
|
|
42
41
|
|
|
@@ -47,17 +46,30 @@ During init, you'll configure:
|
|
|
47
46
|
| `upstream_strict` | Mark task as Done + parent to Testing. Falls back to dev testing if no parent. Default when QA team configured. |
|
|
48
47
|
| `upstream_not_strict` | Mark task as Done + parent to Testing. No fallback if no parent. |
|
|
49
48
|
|
|
50
|
-
### 2.
|
|
49
|
+
### 2. Install Claude Code Plugin (Optional)
|
|
51
50
|
|
|
52
|
-
|
|
51
|
+
```
|
|
52
|
+
/plugin marketplace add wayne930242/team-toon-tack
|
|
53
|
+
/plugin install team-toon-tack@wayne930242
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 3. Daily Workflow
|
|
57
|
+
|
|
58
|
+
In Claude Code (with plugin installed):
|
|
53
59
|
|
|
54
60
|
```
|
|
55
|
-
/sync # Fetch all Linear issues for current cycle
|
|
56
|
-
/work-on next # Pick highest priority task & start working
|
|
57
|
-
/done
|
|
61
|
+
/ttt:sync # Fetch all Linear issues for current cycle
|
|
62
|
+
/ttt:work-on next # Pick highest priority task & start working
|
|
63
|
+
/ttt:done # Complete task with AI-generated summary
|
|
58
64
|
```
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
Or using CLI directly:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ttt sync
|
|
70
|
+
ttt work-on next
|
|
71
|
+
ttt done -m "Completed the task"
|
|
72
|
+
```
|
|
61
73
|
|
|
62
74
|
---
|
|
63
75
|
|
|
@@ -116,6 +128,20 @@ ttt status MP-123 --set done # Mark as done
|
|
|
116
128
|
ttt status MP-123 --set blocked # Set as blocked (waiting on dependency)
|
|
117
129
|
```
|
|
118
130
|
|
|
131
|
+
### `ttt show`
|
|
132
|
+
|
|
133
|
+
Show issue details or search issues from local cycle data.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
ttt show # Show all issues in local cycle data
|
|
137
|
+
ttt show MP-123 # Show specific issue from local data
|
|
138
|
+
ttt show MP-123 --remote # Fetch specific issue from Linear
|
|
139
|
+
ttt show --label frontend # Filter by label
|
|
140
|
+
ttt show --status "In Progress" --user me # My in-progress issues
|
|
141
|
+
ttt show --priority 1 # Show urgent issues
|
|
142
|
+
ttt show --export # Export as markdown
|
|
143
|
+
```
|
|
144
|
+
|
|
119
145
|
### `ttt config`
|
|
120
146
|
|
|
121
147
|
Configure settings.
|
|
@@ -147,6 +173,29 @@ your-project/
|
|
|
147
173
|
| `LINEAR_API_KEY` | **Required.** Your Linear API key |
|
|
148
174
|
| `TOON_DIR` | Config directory (default: `.ttt`) |
|
|
149
175
|
|
|
176
|
+
## Claude Code Plugin
|
|
177
|
+
|
|
178
|
+
Install the plugin for Claude Code integration:
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
/plugin marketplace add wayne930242/team-toon-tack
|
|
182
|
+
/plugin install team-toon-tack@wayne930242
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Available Commands
|
|
186
|
+
|
|
187
|
+
| Command | Description |
|
|
188
|
+
|---------|-------------|
|
|
189
|
+
| `/ttt:sync` | Sync Linear issues to local cycle data |
|
|
190
|
+
| `/ttt:work-on` | Start working on a task |
|
|
191
|
+
| `/ttt:done` | Mark current task as completed |
|
|
192
|
+
| `/ttt:status` | Show or modify task status |
|
|
193
|
+
| `/ttt:show` | Show issue details or search issues |
|
|
194
|
+
|
|
195
|
+
### Auto-Activated Skill
|
|
196
|
+
|
|
197
|
+
The plugin includes a `linear-task-manager` skill that automatically activates when working with Linear tasks, providing workflow guidance and best practices.
|
|
198
|
+
|
|
150
199
|
## License
|
|
151
200
|
|
|
152
201
|
MIT
|
package/README.zh-TW.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
- **QA 團隊支援** — 完成開發任務時自動將 QA 團隊的 parent issue 更新為「Testing」
|
|
15
15
|
- **附件下載** — 自動下載 Linear 圖片和檔案到本地 `.ttt/output/`,供 AI 視覺分析
|
|
16
16
|
- **阻塞狀態** — 等待外部依賴時可設定任務為 blocked
|
|
17
|
-
-
|
|
17
|
+
- **Claude Code Plugin** — 安裝 plugin 即可使用 `/ttt:*` 指令和自動啟用的技能
|
|
18
18
|
- **Cycle 歷史保存** — 本地 `.toon` 檔案保留 cycle 資料,方便 AI 檢閱
|
|
19
19
|
- **使用者過濾** — 只顯示指派給你或未指派的工作
|
|
20
20
|
|
|
@@ -36,7 +36,6 @@ ttt init
|
|
|
36
36
|
- **QA 團隊**:跨團隊 parent issue 更新,各自設定 testing 狀態(可選)
|
|
37
37
|
- **完成模式**:任務完成時的處理方式(見下方說明)
|
|
38
38
|
- **狀態來源**:`remote`(即時更新 Linear)或 `local`(離線工作,用 `ttt sync --update` 同步)
|
|
39
|
-
- **Claude Code commands**:自動安裝,可選前綴(如 `/ttt:work-on`)
|
|
40
39
|
|
|
41
40
|
### 完成模式
|
|
42
41
|
|
|
@@ -47,17 +46,30 @@ ttt init
|
|
|
47
46
|
| `upstream_strict` | 任務標記為 Done,parent 移動到 Testing。若無 parent,fallback 到開發團隊的 testing 狀態。設定 QA 團隊時的預設值。 |
|
|
48
47
|
| `upstream_not_strict` | 任務標記為 Done,parent 移動到 Testing。若無 parent 不做 fallback。 |
|
|
49
48
|
|
|
50
|
-
### 2.
|
|
49
|
+
### 2. 安裝 Claude Code Plugin(選擇性)
|
|
51
50
|
|
|
52
|
-
|
|
51
|
+
```
|
|
52
|
+
/plugin marketplace add wayne930242/team-toon-tack
|
|
53
|
+
/plugin install team-toon-tack@wayne930242
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 3. 每日工作流
|
|
57
|
+
|
|
58
|
+
在 Claude Code 中(安裝 plugin 後):
|
|
53
59
|
|
|
54
60
|
```
|
|
55
|
-
/sync # 從 Linear 取得當前 cycle 所有 issue
|
|
56
|
-
/work-on next # 挑選最高優先級任務並開始工作
|
|
57
|
-
/done
|
|
61
|
+
/ttt:sync # 從 Linear 取得當前 cycle 所有 issue
|
|
62
|
+
/ttt:work-on next # 挑選最高優先級任務並開始工作
|
|
63
|
+
/ttt:done # 完成任務,附上 AI 生成的摘要
|
|
58
64
|
```
|
|
59
65
|
|
|
60
|
-
|
|
66
|
+
或直接使用 CLI:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ttt sync
|
|
70
|
+
ttt work-on next
|
|
71
|
+
ttt done -m "完成任務"
|
|
72
|
+
```
|
|
61
73
|
|
|
62
74
|
---
|
|
63
75
|
|
|
@@ -116,6 +128,20 @@ ttt status MP-123 --set done # 標記為完成
|
|
|
116
128
|
ttt status MP-123 --set blocked # 設為阻塞(等待外部依賴)
|
|
117
129
|
```
|
|
118
130
|
|
|
131
|
+
### `ttt show`
|
|
132
|
+
|
|
133
|
+
顯示 issue 詳情或搜尋 issue。
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
ttt show # 顯示本地 cycle 資料中的所有 issue
|
|
137
|
+
ttt show MP-123 # 顯示特定 issue(從本地資料)
|
|
138
|
+
ttt show MP-123 --remote # 從 Linear 取得特定 issue
|
|
139
|
+
ttt show --label frontend # 依標籤過濾
|
|
140
|
+
ttt show --status "In Progress" --user me # 我進行中的 issue
|
|
141
|
+
ttt show --priority 1 # 顯示緊急 issue
|
|
142
|
+
ttt show --export # 輸出為 markdown 格式
|
|
143
|
+
```
|
|
144
|
+
|
|
119
145
|
### `ttt config`
|
|
120
146
|
|
|
121
147
|
配置設定。
|
|
@@ -147,6 +173,29 @@ your-project/
|
|
|
147
173
|
| `LINEAR_API_KEY` | **必填**。你的 Linear API 金鑰 |
|
|
148
174
|
| `TOON_DIR` | 配置目錄(預設:`.ttt`) |
|
|
149
175
|
|
|
176
|
+
## Claude Code Plugin
|
|
177
|
+
|
|
178
|
+
安裝 plugin 以整合 Claude Code:
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
/plugin marketplace add wayne930242/team-toon-tack
|
|
182
|
+
/plugin install team-toon-tack@wayne930242
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 可用指令
|
|
186
|
+
|
|
187
|
+
| 指令 | 說明 |
|
|
188
|
+
|------|------|
|
|
189
|
+
| `/ttt:sync` | 同步 Linear issue 到本地 |
|
|
190
|
+
| `/ttt:work-on` | 開始處理任務 |
|
|
191
|
+
| `/ttt:done` | 標記當前任務完成 |
|
|
192
|
+
| `/ttt:status` | 顯示或修改任務狀態 |
|
|
193
|
+
| `/ttt:show` | 顯示 issue 詳情或搜尋 issue |
|
|
194
|
+
|
|
195
|
+
### 自動啟用技能
|
|
196
|
+
|
|
197
|
+
Plugin 包含 `linear-task-manager` 技能,在處理 Linear 任務時會自動啟用,提供工作流程指導和最佳實踐。
|
|
198
|
+
|
|
150
199
|
## 授權
|
|
151
200
|
|
|
152
201
|
MIT
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ttt:done
|
|
3
|
+
description: Mark current task as completed
|
|
4
|
+
arguments:
|
|
5
|
+
- name: issue-id
|
|
6
|
+
description: Optional issue ID if multiple tasks in progress
|
|
7
|
+
required: false
|
|
8
|
+
- name: message
|
|
9
|
+
description: Completion message (use -m flag)
|
|
10
|
+
required: false
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# TTT Done Command
|
|
14
|
+
|
|
15
|
+
Mark the current in-progress task as completed.
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
### Auto-Select (single in-progress task)
|
|
20
|
+
```bash
|
|
21
|
+
ttt done
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Specific Issue
|
|
25
|
+
If `issue-id` is provided:
|
|
26
|
+
```bash
|
|
27
|
+
ttt done {{ issue-id }}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### With Completion Message
|
|
31
|
+
If `message` is provided:
|
|
32
|
+
```bash
|
|
33
|
+
ttt done -m "{{ message }}"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Combined
|
|
37
|
+
```bash
|
|
38
|
+
ttt done {{ issue-id }} -m "{{ message }}"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## What This Does
|
|
42
|
+
|
|
43
|
+
Based on configured completion mode:
|
|
44
|
+
|
|
45
|
+
| Mode | Behavior |
|
|
46
|
+
|------|----------|
|
|
47
|
+
| `simple` | Task → Done, Parent → Done |
|
|
48
|
+
| `strict_review` | Task → Testing, Parent → QA Testing |
|
|
49
|
+
| `upstream_strict` | Task → Done, Parent → Testing |
|
|
50
|
+
| `upstream_not_strict` | Task → Done, Parent → Testing (no fallback) |
|
|
51
|
+
|
|
52
|
+
Also:
|
|
53
|
+
1. Gets latest git commit info
|
|
54
|
+
2. Adds completion comment to Linear with commit details
|
|
55
|
+
3. Syncs task back from Linear to update local status
|
|
56
|
+
|
|
57
|
+
## Before Running
|
|
58
|
+
|
|
59
|
+
Ensure you have:
|
|
60
|
+
1. **Run project validation** - Use `/validate` command or validation skill if available
|
|
61
|
+
2. Committed your changes with a meaningful message
|
|
62
|
+
3. Pushed to remote branch (if applicable)
|
|
63
|
+
|
|
64
|
+
**Important**: If validation fails, fix issues before marking as done.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ttt:show
|
|
3
|
+
description: Show issue details or search issues from local cycle data
|
|
4
|
+
arguments:
|
|
5
|
+
- name: issue-id
|
|
6
|
+
description: Issue ID to show (e.g., MP-624)
|
|
7
|
+
required: false
|
|
8
|
+
- name: label
|
|
9
|
+
description: Filter by label (--label <label>)
|
|
10
|
+
required: false
|
|
11
|
+
- name: status
|
|
12
|
+
description: Filter by status (--status <status>)
|
|
13
|
+
required: false
|
|
14
|
+
- name: user
|
|
15
|
+
description: Filter by assignee (--user <email|me|unassigned>)
|
|
16
|
+
required: false
|
|
17
|
+
- name: priority
|
|
18
|
+
description: Filter by priority (--priority <0-4>)
|
|
19
|
+
required: false
|
|
20
|
+
- name: remote
|
|
21
|
+
description: Fetch from Linear instead of local data (--remote)
|
|
22
|
+
required: false
|
|
23
|
+
- name: export
|
|
24
|
+
description: Output as markdown format (--export)
|
|
25
|
+
required: false
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# TTT Show Command
|
|
29
|
+
|
|
30
|
+
Show issue details or search issues from local cycle data.
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
### Show All Issues
|
|
35
|
+
```bash
|
|
36
|
+
ttt show
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Show Specific Issue
|
|
40
|
+
```bash
|
|
41
|
+
ttt show {{ issue-id }}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Search by Filters
|
|
45
|
+
```bash
|
|
46
|
+
ttt show --label {{ label }}
|
|
47
|
+
ttt show --status "{{ status }}"
|
|
48
|
+
ttt show --user {{ user }}
|
|
49
|
+
ttt show --priority {{ priority }}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Fetch from Linear (Remote)
|
|
53
|
+
```bash
|
|
54
|
+
ttt show {{ issue-id }} --remote
|
|
55
|
+
ttt show --remote --status todo
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## What This Does
|
|
59
|
+
|
|
60
|
+
1. By default, reads from local cycle.toon data (no API calls)
|
|
61
|
+
2. Supports filtering by label, status, user, priority
|
|
62
|
+
3. Use --remote to fetch fresh data from Linear API
|
|
63
|
+
4. Displays comprehensive information:
|
|
64
|
+
- Title and description
|
|
65
|
+
- Status (both Linear and local)
|
|
66
|
+
- Priority level
|
|
67
|
+
- Labels
|
|
68
|
+
- Assignee
|
|
69
|
+
- Branch name
|
|
70
|
+
- Parent issue (if subtask)
|
|
71
|
+
- Attachments with local paths
|
|
72
|
+
- Comments with timestamps
|
|
73
|
+
|
|
74
|
+
## Filter Options
|
|
75
|
+
|
|
76
|
+
| Option | Description | Example |
|
|
77
|
+
|--------|-------------|---------|
|
|
78
|
+
| `--label` | Filter by label name | `--label frontend` |
|
|
79
|
+
| `--status` | Filter by Linear status | `--status "In Progress"` |
|
|
80
|
+
| `--user` | Filter by assignee | `--user me`, `--user unassigned` |
|
|
81
|
+
| `--priority` | Filter by priority (0-4) | `--priority 1` (Urgent) |
|
|
82
|
+
| `--remote` | Fetch from Linear API | `--remote` |
|
|
83
|
+
| `--export` | Output as markdown | `--export` |
|
|
84
|
+
|
|
85
|
+
## Priority Values
|
|
86
|
+
|
|
87
|
+
- 0: None
|
|
88
|
+
- 1: Urgent
|
|
89
|
+
- 2: High
|
|
90
|
+
- 3: Medium
|
|
91
|
+
- 4: Low
|
|
92
|
+
|
|
93
|
+
## Use Cases
|
|
94
|
+
|
|
95
|
+
- List all issues in current cycle
|
|
96
|
+
- Search issues by label or status
|
|
97
|
+
- Review issue details before starting work
|
|
98
|
+
- Check requirements and acceptance criteria
|
|
99
|
+
- View attachments and mockups
|
|
100
|
+
- Read comment history and discussions
|
|
101
|
+
|
|
102
|
+
## Examples
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Show all local issues
|
|
106
|
+
ttt show
|
|
107
|
+
|
|
108
|
+
# Show specific issue
|
|
109
|
+
ttt show MP-624
|
|
110
|
+
|
|
111
|
+
# My in-progress issues
|
|
112
|
+
ttt show --status "In Progress" --user me
|
|
113
|
+
|
|
114
|
+
# All urgent issues
|
|
115
|
+
ttt show --priority 1
|
|
116
|
+
|
|
117
|
+
# Frontend issues
|
|
118
|
+
ttt show --label frontend
|
|
119
|
+
|
|
120
|
+
# Fetch fresh data from Linear
|
|
121
|
+
ttt show MP-624 --remote
|
|
122
|
+
|
|
123
|
+
# Export as markdown
|
|
124
|
+
ttt show --export
|
|
125
|
+
ttt show MP-624 --export
|
|
126
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ttt:status
|
|
3
|
+
description: Show or modify task status
|
|
4
|
+
arguments:
|
|
5
|
+
- name: issue-id
|
|
6
|
+
description: Issue ID to check/modify (omit for current in-progress task)
|
|
7
|
+
required: false
|
|
8
|
+
- name: set
|
|
9
|
+
description: New status to set (+1, -1, pending, in-progress, completed, blocked, done)
|
|
10
|
+
required: false
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# TTT Status Command
|
|
14
|
+
|
|
15
|
+
Show or modify the status of a task.
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
### Show Current In-Progress Task
|
|
20
|
+
```bash
|
|
21
|
+
ttt status
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Show Specific Issue
|
|
25
|
+
If `issue-id` is provided:
|
|
26
|
+
```bash
|
|
27
|
+
ttt status {{ issue-id }}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Set Status
|
|
31
|
+
If `set` is provided:
|
|
32
|
+
```bash
|
|
33
|
+
ttt status {{ issue-id }} --set {{ set }}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Status Values
|
|
37
|
+
|
|
38
|
+
| Value | Description |
|
|
39
|
+
|-------|-------------|
|
|
40
|
+
| `+1` | Move to next status (pending → in-progress → completed) |
|
|
41
|
+
| `-1` | Move to previous status |
|
|
42
|
+
| `+2` | Skip two statuses forward |
|
|
43
|
+
| `-2` | Skip two statuses backward |
|
|
44
|
+
| `pending` | Set to pending |
|
|
45
|
+
| `in-progress` | Set to in-progress |
|
|
46
|
+
| `completed` | Set to completed |
|
|
47
|
+
| `blocked` | Set to blocked (waiting on dependency) |
|
|
48
|
+
| `todo` | Set Linear to Todo status |
|
|
49
|
+
| `done` | Set Linear to Done status |
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
ttt status MP-624 --set +1 # Move to next status
|
|
55
|
+
ttt status MP-624 --set blocked # Mark as blocked
|
|
56
|
+
ttt status --set pending # Reset current task
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Output
|
|
60
|
+
|
|
61
|
+
Displays:
|
|
62
|
+
- Task ID and title
|
|
63
|
+
- Local status vs Linear status
|
|
64
|
+
- Priority and labels
|
|
65
|
+
- Assignee information
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ttt:sync
|
|
3
|
+
description: Sync Linear issues to local cycle data
|
|
4
|
+
arguments:
|
|
5
|
+
- name: issue-id
|
|
6
|
+
description: Optional specific issue ID to sync (e.g., MP-624)
|
|
7
|
+
required: false
|
|
8
|
+
- name: update
|
|
9
|
+
description: Push local status changes to Linear (add --update flag)
|
|
10
|
+
required: false
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# TTT Sync Command
|
|
14
|
+
|
|
15
|
+
Sync issues from Linear to local `.ttt/cycle.toon` file.
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
Run the sync command based on arguments provided:
|
|
20
|
+
|
|
21
|
+
### Default Sync (all matching issues)
|
|
22
|
+
```bash
|
|
23
|
+
ttt sync
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Sync Specific Issue
|
|
27
|
+
If `issue-id` is provided:
|
|
28
|
+
```bash
|
|
29
|
+
ttt sync {{ issue-id }}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Push Local Changes
|
|
33
|
+
If `update` is "true" or "--update":
|
|
34
|
+
```bash
|
|
35
|
+
ttt sync --update
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## What This Does
|
|
39
|
+
|
|
40
|
+
1. Fetches active cycle from Linear
|
|
41
|
+
2. Downloads all issues matching configured filters (team, status, labels)
|
|
42
|
+
3. Preserves local status for existing tasks
|
|
43
|
+
4. Downloads Linear images to `.ttt/output/`
|
|
44
|
+
5. Updates `cycle.toon` with fresh data
|
|
45
|
+
|
|
46
|
+
## Output
|
|
47
|
+
|
|
48
|
+
After running, report:
|
|
49
|
+
- Number of tasks synced
|
|
50
|
+
- Current cycle name
|
|
51
|
+
- Any status updates pushed to Linear (if --update used)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ttt:work-on
|
|
3
|
+
description: Start working on a Linear task
|
|
4
|
+
arguments:
|
|
5
|
+
- name: issue-id
|
|
6
|
+
description: Issue ID (e.g., MP-624), 'next' for auto-select, or omit for interactive
|
|
7
|
+
required: false
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# TTT Work-On Command
|
|
11
|
+
|
|
12
|
+
Start working on a task from the current cycle.
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
### Interactive Selection
|
|
17
|
+
```bash
|
|
18
|
+
ttt work-on
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Specific Issue
|
|
22
|
+
If `issue-id` is provided (e.g., MP-624):
|
|
23
|
+
```bash
|
|
24
|
+
ttt work-on {{ issue-id }}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Auto-Select Highest Priority
|
|
28
|
+
If `issue-id` is "next":
|
|
29
|
+
```bash
|
|
30
|
+
ttt work-on next
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## What This Does
|
|
34
|
+
|
|
35
|
+
1. Marks the task as `in-progress` locally
|
|
36
|
+
2. Updates Linear status to "In Progress" (if status_source is remote)
|
|
37
|
+
3. Displays full task details including:
|
|
38
|
+
- Title and description
|
|
39
|
+
- Priority and labels
|
|
40
|
+
- Attachments and comments
|
|
41
|
+
- Branch name for checkout
|
|
42
|
+
|
|
43
|
+
## After Running
|
|
44
|
+
|
|
45
|
+
1. Read the task description and requirements
|
|
46
|
+
2. Check out the suggested branch: `git checkout -b <branch-name>`
|
|
47
|
+
3. **Run project validation** (see below)
|
|
48
|
+
4. Begin implementation
|
|
49
|
+
|
|
50
|
+
## Project Validation
|
|
51
|
+
|
|
52
|
+
Before starting work, check for validation tools:
|
|
53
|
+
|
|
54
|
+
### 1. Check for Existing Validation
|
|
55
|
+
|
|
56
|
+
Look for:
|
|
57
|
+
- **Commands**: `/validate`, `/check`, `/lint` in available commands
|
|
58
|
+
- **Skills**: `validate`, `check`, `verify` in available skills
|
|
59
|
+
- **Scripts**: `lint`, `type-check`, `test` in `package.json` or `Makefile`
|
|
60
|
+
|
|
61
|
+
### 2. If No Validation Found
|
|
62
|
+
|
|
63
|
+
Ask user:
|
|
64
|
+
```
|
|
65
|
+
No validation command or skill found for this project.
|
|
66
|
+
Would you like to create one? (y/n)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If yes, run:
|
|
70
|
+
```
|
|
71
|
+
/ttt:write-validate
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 3. Run Validation
|
|
75
|
+
|
|
76
|
+
Once validation is available:
|
|
77
|
+
- Use `/validate` command if exists
|
|
78
|
+
- Or use validation skill if available
|
|
79
|
+
- Or run detected scripts directly
|