rbin-task-flow 1.2.0 → 1.3.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.
@@ -5,8 +5,10 @@ alwaysApply: true
5
5
  ---
6
6
 
7
7
  - **Task Estimation - Time Estimation for Tasks:**
8
- - **FAST FORMAT**: `task-flow: estimate task X` → Estimate time for task X
9
- - When user says "task-flow: estimate task X", "estimate task X", or "how long will task X take":
8
+ - **FAST FORMAT**: `task-flow: estimate X` → Estimate time for task X (simplified - no "task" needed)
9
+ - **MULTIPLE TASKS**: `task-flow: estimate X,Y` Estimate multiple tasks
10
+ - **ALL TASKS**: `task-flow: estimate all` → Estimate all tasks
11
+ - When user says "task-flow: estimate X", "estimate X", "estimate X,Y", "estimate all", or "how long will task X take":
10
12
  - **READ**: `.task-flow/.internal/tasks.json` to get task details
11
13
  - **CALCULATE**: Time estimate based on number of subtasks and developer experience level
12
14
  - **DISPLAY**: Show time estimate with intervals for 3 experience levels (junior, mid, senior)
@@ -57,16 +59,18 @@ alwaysApply: true
57
59
  ```
58
60
 
59
61
  - **Natural Language Phrases:**
60
- - **FAST FORMAT**: `task-flow: estimate task X` or `task-flow estimate task X`
61
- - "estimate task X"
62
+ - **FAST FORMAT**: `task-flow: estimate X` or `task-flow estimate X` (simplified)
63
+ - **MULTIPLE**: `task-flow: estimate X,Y` or `task-flow: estimate all`
64
+ - "estimate task X" or "estimate X"
65
+ - "estimate tasks 10,11"
66
+ - "estimate all tasks"
62
67
  - "how long will task X take"
63
68
  - "time estimate for task X"
64
- - "quanto tempo leva a task X"
65
69
  - Any variation asking for time estimation
66
70
 
67
71
  - **Example:**
68
72
  ```
69
- User: "task-flow: estimate task 1"
73
+ User: "task-flow: estimate 1"
70
74
 
71
75
  Task 1 has 5 subtasks:
72
76
 
@@ -21,12 +21,18 @@ alwaysApply: true
21
21
  - `task-flow: sync` - Sync new tasks from tasks.input.txt
22
22
  - `task-flow: think` - Analyze codebase and suggest new tasks
23
23
  - `task-flow: run next X` - Work on next X subtasks sequentially
24
- - `task-flow: run task X` - Work on all pending subtasks of task X
24
+ - `task-flow: run X` - Work on all pending subtasks of task X (simplified - no "task" needed)
25
+ - `task-flow: run X,Y` - Work on multiple tasks (comma-separated)
26
+ - `task-flow: run all` - Work on all tasks
25
27
  - `task-flow: status` - Show current task status
26
- - `task-flow: review` - Review completed tasks
27
- - `task-flow: refactor` - Refactor code from current commit
28
- - `task-flow: estimate task X` - Estimate time for task X based on subtasks and experience level
29
- - `task-flow: report task X` - Generate implementation report for completed task X
28
+ - `task-flow: review X` - Review specific task(s) (comma-separated or "all")
29
+ - `task-flow: refactor X` - Refactor specific task(s) (comma-separated or "all")
30
+ - `task-flow: estimate X` - Estimate time for task X (simplified - no "task" needed)
31
+ - `task-flow: estimate X,Y` - Estimate multiple tasks (comma-separated)
32
+ - `task-flow: estimate all` - Estimate all tasks
33
+ - `task-flow: report X` - Generate implementation report for task X (simplified - no "task" needed)
34
+ - `task-flow: report X,Y` - Generate reports for multiple tasks (comma-separated)
35
+ - `task-flow: report all` - Generate reports for all tasks
30
36
 
31
37
  - **Workflow Example:**
32
38
  ```markdown
@@ -5,8 +5,10 @@ alwaysApply: true
5
5
  ---
6
6
 
7
7
  - **Task Refactor - Improve Code Quality:**
8
- - **FAST FORMAT**: `task-flow: refactor` → Refactor code from current commit
9
- - When user says "task-flow: refactor" or "refactor current tasks":
8
+ - **FAST FORMAT**: `task-flow: refactor X` or `task-flow: refactor X,Y` or `task-flow: refactor all` → Refactor specific task(s)
9
+ - **SIMPLIFIED SYNTAX**: No need to say "task" - just use the number: `task-flow: refactor 1` instead of `task-flow: refactor task 1`
10
+ - **REQUIRED**: Task ID is required - use `task-flow: refactor all` to refactor all tasks
11
+ - When user says "task-flow: refactor X", "task-flow: refactor X,Y", "task-flow: refactor all", or "refactor tasks":
10
12
  - **IDENTIFY**: Files changed in current commit (or staged changes)
11
13
  - **REFACTOR**: Improve code quality without changing functionality
12
14
  - **REMOVE**: All explanatory comments (following code_comments.mdc rules)
@@ -51,20 +53,21 @@ alwaysApply: true
51
53
  5. Show summary of changes
52
54
 
53
55
  - **Natural Language Phrases:**
54
- - **FAST FORMAT**: `task-flow: refactor` or `task-flow refactor`
55
- - "refactor current tasks"
56
- - "refactor code from commit"
56
+ - **FAST FORMAT**: `task-flow: refactor X` or `task-flow: refactor X,Y` or `task-flow: refactor all`
57
+ - "refactor task 1"
58
+ - "refactor tasks 10,11"
59
+ - "refactor all tasks"
57
60
  - "improve code quality"
58
61
  - "clean up code"
59
- - Any variation asking to refactor/improve code
62
+ - Any variation asking to refactor/improve code (must include task ID or "all")
60
63
 
61
64
  - **Example:**
62
65
  ```
63
- User: "task-flow: refactor"
66
+ User: "task-flow: refactor 1"
64
67
 
65
68
  AI Action:
66
- 1. Check git diff or staged files
67
- 2. Identify files changed in current commit
69
+ 1. Identify files related to task 1 (from git history or task implementation)
70
+ 2. Read each file
68
71
  3. For each file:
69
72
  - Remove explanatory comments
70
73
  - Improve code structure
@@ -73,6 +76,14 @@ alwaysApply: true
73
76
  4. Preserve separation comments
74
77
  5. Verify functionality unchanged
75
78
  6. Show refactoring summary
79
+
80
+ User: "task-flow: refactor all"
81
+
82
+ AI Action:
83
+ 1. Process all tasks
84
+ 2. Identify files for each task
85
+ 3. Refactor all files
86
+ 4. Show summary
76
87
  ```
77
88
 
78
89
  - **Integration:**
@@ -5,8 +5,10 @@ alwaysApply: true
5
5
  ---
6
6
 
7
7
  - **Task Report - Generate Implementation Reports:**
8
- - **FAST FORMAT**: `task-flow: report task X` → Generate implementation report for task X
9
- - When user says "task-flow: report task X", "generate report for task X", or "create report task X":
8
+ - **FAST FORMAT**: `task-flow: report X` → Generate implementation report for task X (simplified - no "task" needed)
9
+ - **MULTIPLE TASKS**: `task-flow: report X,Y` Generate reports for multiple tasks
10
+ - **ALL TASKS**: `task-flow: report all` → Generate reports for all tasks
11
+ - When user says "task-flow: report X", "report X", "report X,Y", "report all", "generate report for task X", or "create report task X":
10
12
  - **READ**: `.task-flow/.internal/tasks.json` to get task details
11
13
  - **READ**: `.task-flow/.internal/status.json` to verify task is completed
12
14
  - **ANALYZE**: Codebase changes related to the task (git history, file changes)
@@ -73,8 +75,11 @@ alwaysApply: true
73
75
  6. **Notes**: Additional considerations or follow-up items
74
76
 
75
77
  - **Natural Language Phrases:**
76
- - **FAST FORMAT**: `task-flow: report task X` or `task-flow report task X`
77
- - "generate report for task X"
78
+ - **FAST FORMAT**: `task-flow: report X` or `task-flow report X` (simplified)
79
+ - **MULTIPLE**: `task-flow: report X,Y` or `task-flow: report all`
80
+ - "generate report for task X" or "report X"
81
+ - "report tasks 10,11"
82
+ - "report all tasks"
78
83
  - "create report task X"
79
84
  - "document task X"
80
85
  - "report for task X"
@@ -82,7 +87,7 @@ alwaysApply: true
82
87
 
83
88
  - **Example:**
84
89
  ```
85
- User: "task-flow: report task 1"
90
+ User: "task-flow: report 1"
86
91
 
87
92
  AI Action:
88
93
  1. Read tasks.json and status.json
@@ -5,8 +5,10 @@ alwaysApply: true
5
5
  ---
6
6
 
7
7
  - **Task Review - Verify Completed Tasks:**
8
- - **FAST FORMAT**: `task-flow: review` → Review all completed tasks
9
- - When user says "task-flow: review" or "review completed tasks":
8
+ - **FAST FORMAT**: `task-flow: review X` or `task-flow: review X,Y` or `task-flow: review all` → Review specific task(s)
9
+ - **SIMPLIFIED SYNTAX**: No need to say "task" - just use the number: `task-flow: review 1` instead of `task-flow: review task 1`
10
+ - **REQUIRED**: Task ID is required - use `task-flow: review all` to review all tasks
11
+ - When user says "task-flow: review X", "task-flow: review X,Y", "task-flow: review all", or "review completed tasks":
10
12
  - **READ**: `.task-flow/.internal/tasks.json` and `.task-flow/.internal/status.json`
11
13
  - **IDENTIFY**: All tasks/subtasks marked as "done"
12
14
  - **VERIFY**: Check if each completed task/subtask is actually implemented
@@ -44,20 +46,22 @@ alwaysApply: true
44
46
  ```
45
47
 
46
48
  - **Natural Language Phrases:**
47
- - **FAST FORMAT**: `task-flow: review` or `task-flow review`
48
- - "review completed tasks"
49
+ - **FAST FORMAT**: `task-flow: review X` or `task-flow: review X,Y` or `task-flow: review all`
50
+ - "review task 1"
51
+ - "review tasks 10,11"
52
+ - "review all tasks"
49
53
  - "verify done tasks"
50
54
  - "check if tasks are really done"
51
55
  - "review task status"
52
- - Any variation asking to review/verify completed tasks
56
+ - Any variation asking to review/verify completed tasks (must include task ID or "all")
53
57
 
54
58
  - **Example:**
55
59
  ```
56
- User: "task-flow: review"
60
+ User: "task-flow: review 1"
57
61
 
58
62
  AI Action:
59
63
  1. Read tasks.json and status.json
60
- 2. Find all "done" tasks/subtasks
64
+ 2. Find task 1 and its "done" subtasks
61
65
  3. Verify each one:
62
66
  - Check if files exist
63
67
  - Check if code matches requirements
@@ -65,6 +69,15 @@ alwaysApply: true
65
69
  4. Report findings
66
70
  5. Ask if user wants to correct status
67
71
  6. If confirmed, update status.json
72
+
73
+ User: "task-flow: review all"
74
+
75
+ AI Action:
76
+ 1. Read tasks.json and status.json
77
+ 2. Find all "done" tasks/subtasks
78
+ 3. Verify each one
79
+ 4. Report findings
80
+ 5. Ask if user wants to correct status
68
81
  ```
69
82
 
70
83
  - **Integration:**
@@ -6,14 +6,17 @@ alwaysApply: true
6
6
 
7
7
  - **Task Work - Simplified Commands:**
8
8
  - **FASTEST FORMAT**: `task-flow: run next X` (e.g., "task-flow: run next 4" → work on next 4 subtasks)
9
- - **TASK SPECIFIC**: `task-flow: run task X` (e.g., "task-flow: run task 1" → work on all subtasks of task 1)
9
+ - **TASK SPECIFIC**: `task-flow: run X` or `task-flow: run X,Y` or `task-flow: run all` (e.g., "task-flow: run 1" → work on all subtasks of task 1)
10
+ - **SIMPLIFIED SYNTAX**: No need to say "task" - just use the number: `task-flow: run 1` instead of `task-flow: run task 1`
10
11
  - When user says "task-flow: run next X" or "work on next X subtasks":
11
12
  - **INTERPRET**: User wants to work on the next X pending subtasks from RBIN Task Flow
12
13
  - **AUTOMATIC**: Read tasks, find next X pending, implement them sequentially
13
14
  - **UPDATE**: Mark each subtask as done after completion
14
15
  - **NO NEED**: To specify "task flow" explicitly - it's implied
15
- - When user says "task-flow: run task X" or "work on task X":
16
- - **INTERPRET**: User wants to work on all pending subtasks of a specific task
16
+ - When user says "task-flow: run X" or "task-flow: run X,Y" or "task-flow: run all":
17
+ - **INTERPRET**: User wants to work on all pending subtasks of specific task(s) or all tasks
18
+ - **MULTIPLE TASKS**: Comma-separated IDs (e.g., "10,11") processes multiple tasks sequentially
19
+ - **ALL TASKS**: "all" processes all tasks in order
17
20
  - **DEPENDENCY CHECK**: Before executing, verify that all tasks before X (1, 2, ..., X-1) are completely done
18
21
  - **CONFLICT PREVENTION**: Only execute subtasks of task X if no previous tasks have pending subtasks (allows parallel work by multiple AIs)
19
22
  - **PARTIAL EXECUTION**: If previous tasks have pending subtasks, inform user that task X cannot be fully executed until previous tasks are complete
@@ -23,7 +26,7 @@ alwaysApply: true
23
26
 
24
27
  - **Natural Language Phrases:**
25
28
  - **FAST FORMAT**: `task-flow: run next X` or `task-flow run next X` (e.g., "task-flow: run next 4")
26
- - **TASK FORMAT**: `task-flow: run task X` or `task-flow run task X` (e.g., "task-flow: run task 1")
29
+ - **TASK FORMAT**: `task-flow: run X` or `task-flow: run X,Y` or `task-flow: run all` (e.g., "task-flow: run 1" or "task-flow: run 10,11" or "task-flow: run all")
27
30
  - "work on next 3 subtasks"
28
31
  - "work on next 5 subtasks"
29
32
  - "next 2 subtasks"
@@ -39,14 +42,17 @@ alwaysApply: true
39
42
  - `task-flow: run next X` → Work on next X subtasks sequentially (fastest way)
40
43
  - `task-flow run next X` → Same as above (without colon)
41
44
  - `task-flow: run next` → Work on next 1 subtask (default)
42
- - `task-flow: run task X` → Work on all pending subtasks of task X
43
- - `task-flow run task X` → Same as above (without colon)
45
+ - `task-flow: run X` → Work on all pending subtasks of task X (simplified - no "task" needed)
46
+ - `task-flow: run X,Y` → Work on all pending subtasks of tasks X and Y
47
+ - `task-flow: run all` → Work on all pending subtasks of all tasks
48
+ - `task-flow run X` → Same as above (without colon)
44
49
  - Examples:
45
50
  - "task-flow: run next 4" → Work on next 4 subtasks
46
51
  - "task-flow run next 3" → Work on next 3 subtasks
47
52
  - "task-flow: run next" → Work on next 1 subtask
48
- - "task-flow: run task 1" → Work on all pending subtasks of task 1
49
- - "task-flow run task 2" → Work on all pending subtasks of task 2
53
+ - "task-flow: run 1" → Work on all pending subtasks of task 1
54
+ - "task-flow: run 10,11" → Work on all pending subtasks of tasks 10 and 11
55
+ - "task-flow: run all" → Work on all pending subtasks of all tasks
50
56
 
51
57
  - **Required Actions for `task-flow: run next X`:**
52
58
  1. **Read task files**: `.task-flow/.internal/tasks.json` and `.task-flow/.internal/status.json`
@@ -6,13 +6,15 @@
6
6
  |---------|-------------|
7
7
  | `task-flow: sync` | Complete synchronization: adds new, removes deleted, updates modified, preserves status |
8
8
  | `task-flow: think` | Analyzes code and suggests new tasks |
9
- | `task-flow: run next X` | Works on next X subtasks (e.g., `task-flow: run next 4`) |
10
- | `task-flow: run task X` | Executes all pending subtasks of task X (e.g., `task-flow: run task 1`) |
11
9
  | `task-flow: status` | Shows current task status |
12
- | `task-flow: review` | Reviews tasks marked as "done" |
13
- | `task-flow: refactor` | Refactors code from current commit |
14
- | `task-flow: estimate task X` | Estimates time for task X based on subtasks and experience level |
15
- | `task-flow: report task X` | Generates implementation report for completed task X |
10
+ | `task-flow: run next X` | Works on next X subtasks (e.g., `task-flow: run next 4`) |
11
+ | `task-flow: run X` | Executes all pending subtasks of task X (e.g., `task-flow: run 1`) |
12
+ | `task-flow: run X,Y` | Executes multiple tasks (e.g., `task-flow: run 10,11`) |
13
+ | `task-flow: run all` | Executes all tasks |
14
+ | `task-flow: review X` | Reviews specific task(s) (e.g., `task-flow: review 1` or `task-flow: review 10,11` or `task-flow: review all`) |
15
+ | `task-flow: refactor X` | Refactors specific task(s) (e.g., `task-flow: refactor 1` or `task-flow: refactor 10,11` or `task-flow: refactor all`) |
16
+ | `task-flow: estimate X` | Estimates time for task X (e.g., `task-flow: estimate 1` or `task-flow: estimate 10,11`) |
17
+ | `task-flow: report X` | Generates implementation report for task X (e.g., `task-flow: report 1` or `task-flow: report 10,11`) |
16
18
 
17
19
  **See complete details below ↓**
18
20
 
@@ -31,6 +33,13 @@ Complete synchronization between `tasks.input.txt` and the system:
31
33
  ### `task-flow: think`
32
34
  Analyzes code and suggests new tasks. Asks before adding to `tasks.input.txt`.
33
35
 
36
+ ### `task-flow: status`
37
+ Shows current status of tasks and subtasks from the `tasks.status.md` file.
38
+
39
+ ---
40
+
41
+ ## Commands with Task ID
42
+
34
43
  ### `task-flow: run next X`
35
44
  Works on next X pending subtasks in sequential order. Implements and marks as "done".
36
45
 
@@ -38,7 +47,7 @@ Works on next X pending subtasks in sequential order. Implements and marks as "d
38
47
  - `task-flow: run next 4` → Next 4 subtasks
39
48
  - `task-flow: run next` → Next 1 subtask
40
49
 
41
- ### `task-flow: run task X`
50
+ ### `task-flow: run X` (simplified syntax)
42
51
  Executes all pending subtasks of a specific task. Implements and marks as "done".
43
52
 
44
53
  **⚠️ Dependency Check:**
@@ -47,20 +56,29 @@ Executes all pending subtasks of a specific task. Implements and marks as "done"
47
56
  - If there are pending previous tasks, warns which ones need to be completed first
48
57
 
49
58
  **Examples:**
50
- - `task-flow: run task 1` → All pending subtasks of task 1 (can always execute)
51
- - `task-flow: run task 3` → Only executes if tasks 1 and 2 are complete
59
+ - `task-flow: run 1` → All pending subtasks of task 1 (can always execute)
60
+ - `task-flow: run 10,11` → All pending subtasks of tasks 10 and 11
61
+ - `task-flow: run all` → All pending subtasks of all tasks
62
+ - `task-flow: run 3` → Only executes if tasks 1 and 2 are complete
52
63
 
53
- ### `task-flow: status`
54
- Shows current status of tasks and subtasks from the `tasks.status.md` file.
64
+ ### `task-flow: review X`
65
+ Reviews specific task(s) marked as "done" to verify they are actually completed.
55
66
 
56
- ### `task-flow: review`
57
- Reviews tasks marked as "done" to verify they are actually completed.
67
+ **Examples:**
68
+ - `task-flow: review 1` Reviews task 1
69
+ - `task-flow: review 10,11` → Reviews tasks 10 and 11
70
+ - `task-flow: review all` → Reviews all tasks
71
+
72
+ ### `task-flow: refactor X`
73
+ Refactors code from specific task(s). Removes explanatory comments, improves code without changing functionality.
58
74
 
59
- ### `task-flow: refactor`
60
- Refactors code from current commit. Removes explanatory comments, improves code without changing functionality.
75
+ **Examples:**
76
+ - `task-flow: refactor 1` Refactors task 1
77
+ - `task-flow: refactor 10,11` → Refactors tasks 10 and 11
78
+ - `task-flow: refactor all` → Refactors all tasks
61
79
 
62
- ### `task-flow: estimate task X`
63
- Estimates time required to complete a task based on the number of subtasks and developer experience level.
80
+ ### `task-flow: estimate X` (simplified syntax)
81
+ Estimates time required to complete task(s) based on the number of subtasks and developer experience level.
64
82
 
65
83
  **Output includes:**
66
84
  - Time estimates for Junior (0-2 years), Mid-level (3-5 years), and Senior (6+ years) developers
@@ -68,10 +86,12 @@ Estimates time required to complete a task based on the number of subtasks and d
68
86
  - Recommendation for management with buffer
69
87
 
70
88
  **Examples:**
71
- - `task-flow: estimate task 1` → Shows time estimate for task 1
89
+ - `task-flow: estimate 1` → Shows time estimate for task 1
90
+ - `task-flow: estimate 10,11` → Shows time estimates for tasks 10 and 11
91
+ - `task-flow: estimate all` → Shows time estimates for all tasks
72
92
 
73
- ### `task-flow: report task X`
74
- Generates a detailed implementation report for a completed task in Markdown format.
93
+ ### `task-flow: report X` (simplified syntax)
94
+ Generates a detailed implementation report for completed task(s) in Markdown format.
75
95
 
76
96
  **Report includes:**
77
97
  - Task overview and completion status
@@ -83,7 +103,9 @@ Generates a detailed implementation report for a completed task in Markdown form
83
103
  **Report location:** `.task-flow/docs/task-X-implementation.md`
84
104
 
85
105
  **Examples:**
86
- - `task-flow: report task 1` → Generates report for task 1
106
+ - `task-flow: report 1` → Generates report for task 1
107
+ - `task-flow: report 10,11` → Generates reports for tasks 10 and 11
108
+ - `task-flow: report all` → Generates reports for all tasks
87
109
 
88
110
  ---
89
111
 
package/CLAUDE.md CHANGED
@@ -16,14 +16,20 @@ This project uses RBIN Task Flow for task management:
16
16
  - **Task Definition**: Edit `.task-flow/tasks.input.txt` using simple format: `- Task description`
17
17
  - **AI Commands**: Use AI-powered commands for task management:
18
18
  - `task-flow: sync` - Synchronize tasks from tasks.input.txt
19
- - `task-flow: run next X` - Work on next X subtasks
20
- - `task-flow: run task X` - Execute all pending subtasks of task X
21
- - `task-flow: status` - View current task status
22
- - `task-flow: review` - Review completed tasks
23
19
  - `task-flow: think` - Analyze code and suggest new tasks
24
- - `task-flow: refactor` - Refactor code from current commit
25
- - `task-flow: estimate task X` - Estimate time for task X based on subtasks and experience level
26
- - `task-flow: report task X` - Generate implementation report for completed task X
20
+ - `task-flow: status` - View current task status
21
+ - `task-flow: run next X` - Work on next X subtasks
22
+ - `task-flow: run X` - Execute all pending subtasks of task X (simplified - no "task" needed)
23
+ - `task-flow: run X,Y` - Execute multiple tasks (comma-separated)
24
+ - `task-flow: run all` - Execute all tasks
25
+ - `task-flow: review X` - Review specific task(s) (comma-separated or "all")
26
+ - `task-flow: refactor X` - Refactor specific task(s) (comma-separated or "all")
27
+ - `task-flow: estimate X` - Estimate time for task X (simplified - no "task" needed)
28
+ - `task-flow: estimate X,Y` - Estimate multiple tasks (comma-separated)
29
+ - `task-flow: estimate all` - Estimate all tasks
30
+ - `task-flow: report X` - Generate implementation report for task X (simplified - no "task" needed)
31
+ - `task-flow: report X,Y` - Generate reports for multiple tasks (comma-separated)
32
+ - `task-flow: report all` - Generate reports for all tasks
27
33
  - **Files**:
28
34
  - `.task-flow/tasks.input.txt` - Define your tasks here
29
35
  - `.task-flow/tasks.status.md` - Auto-generated status (DO NOT EDIT manually)
package/GEMINI.md CHANGED
@@ -16,14 +16,20 @@ This project uses RBIN Task Flow for task management:
16
16
  - **Task Definition**: Edit `.task-flow/tasks.input.txt` using simple format: `- Task description`
17
17
  - **AI Commands**: Use AI-powered commands for task management:
18
18
  - `task-flow: sync` - Synchronize tasks from tasks.input.txt
19
- - `task-flow: run next X` - Work on next X subtasks
20
- - `task-flow: run task X` - Execute all pending subtasks of task X
21
- - `task-flow: status` - View current task status
22
- - `task-flow: review` - Review completed tasks
23
19
  - `task-flow: think` - Analyze code and suggest new tasks
24
- - `task-flow: refactor` - Refactor code from current commit
25
- - `task-flow: estimate task X` - Estimate time for task X based on subtasks and experience level
26
- - `task-flow: report task X` - Generate implementation report for completed task X
20
+ - `task-flow: status` - View current task status
21
+ - `task-flow: run next X` - Work on next X subtasks
22
+ - `task-flow: run X` - Execute all pending subtasks of task X (simplified - no "task" needed)
23
+ - `task-flow: run X,Y` - Execute multiple tasks (comma-separated)
24
+ - `task-flow: run all` - Execute all tasks
25
+ - `task-flow: review X` - Review specific task(s) (comma-separated or "all")
26
+ - `task-flow: refactor X` - Refactor specific task(s) (comma-separated or "all")
27
+ - `task-flow: estimate X` - Estimate time for task X (simplified - no "task" needed)
28
+ - `task-flow: estimate X,Y` - Estimate multiple tasks (comma-separated)
29
+ - `task-flow: estimate all` - Estimate all tasks
30
+ - `task-flow: report X` - Generate implementation report for task X (simplified - no "task" needed)
31
+ - `task-flow: report X,Y` - Generate reports for multiple tasks (comma-separated)
32
+ - `task-flow: report all` - Generate reports for all tasks
27
33
  - **Files**:
28
34
  - `.task-flow/tasks.input.txt` - Define your tasks here
29
35
  - `.task-flow/tasks.status.md` - Auto-generated status (DO NOT EDIT manually)
package/README.md CHANGED
@@ -60,7 +60,7 @@ rbin-task-flow init
60
60
  # Edite .task-flow/tasks.input.txt e use:
61
61
  # - task-flow: sync
62
62
  # - task-flow: run next X
63
- # - task-flow: run task X
63
+ # - task-flow: run X (ou task-flow: run X,Y ou task-flow: run all)
64
64
  ```
65
65
 
66
66
  **Pronto!** RBIN Task Flow agora está disponível globalmente no seu sistema.
@@ -74,8 +74,8 @@ rbin-task-flow init # Inicializa no projeto atual
74
74
  rbin-task-flow update # Atualiza configurações
75
75
  rbin-task-flow version-check # Verifica atualizações de modelos
76
76
  rbin-task-flow info # Mostra informações
77
- rbin-task-flow estimate <id> # Estima tempo para uma task
78
- rbin-task-flow report <id> # Gera relatório de implementação de uma task
77
+ rbin-task-flow estimate <ids> # Estima tempo (ex: "1" ou "1,2" ou "all")
78
+ rbin-task-flow report <ids> # Gera relatório (ex: "1" ou "1,2" ou "all")
79
79
  ```
80
80
 
81
81
  ### Comandos da IA - Por Que Usar?
@@ -86,13 +86,15 @@ Após inicializar, use estes comandos na IA (Cursor/Claude/Gemini) para gerencia
86
86
  |---------|--------------|-------------------|
87
87
  | `task-flow: sync` | **Sincroniza** tarefas do arquivo texto com o sistema | Mantém tudo sincronizado automaticamente - adiciona novas, remove deletadas, preserva seu progresso |
88
88
  | `task-flow: think` | **Descobre** tarefas que você esqueceu | Analisa código e sugere tarefas que faltam (testes, refatoração, documentação) |
89
- | `task-flow: run next X` | **Automatiza** o trabalho nas próximas subtarefas | A IA trabalha nas próximas X subtarefas sequencialmente, você só acompanha |
90
- | `task-flow: run task X` | **Completa** uma tarefa inteira de uma vez | Executa todas as subtarefas de uma tarefa específica (permite trabalho paralelo) |
91
89
  | `task-flow: status` | **Visualiza** o progresso rapidamente | Vê resumo com tasks completas, em andamento e quantas subtarefas faltam |
92
- | `task-flow: review` | **Garante** qualidade do trabalho | Verifica se tarefas marcadas como "done" estão realmente concluídas |
93
- | `task-flow: refactor` | **Melhora** código sem quebrar | Refatora código do commit atual removendo comentários e melhorando qualidade |
94
- | `task-flow: estimate task X` | **Estima** tempo para gestão | Calcula estimativa de tempo baseada em subtasks e nível de experiência do desenvolvedor |
95
- | `task-flow: report task X` | **Documenta** implementação | Gera relatório detalhado em Markdown do que foi feito para resolver a task |
90
+ | `task-flow: run next X` | **Automatiza** o trabalho nas próximas subtarefas | A IA trabalha nas próximas X subtarefas sequencialmente, você só acompanha |
91
+ | `task-flow: run X` | **Completa** uma tarefa inteira de uma vez | Executa todas as subtarefas de uma tarefa específica (permite trabalho paralelo) |
92
+ | `task-flow: run X,Y` | **Completa** múltiplas tarefas | Executa tarefas separadas por vírgula (ex: `task-flow: run 10,11`) |
93
+ | `task-flow: run all` | **Completa** todas as tarefas | Executa todas as tarefas pendentes |
94
+ | `task-flow: review X` | **Garante** qualidade do trabalho | Verifica tarefas específicas (ex: `task-flow: review 1` ou `task-flow: review 10,11` ou `task-flow: review all`) |
95
+ | `task-flow: refactor X` | **Melhora** código sem quebrar | Refatora tarefas específicas (ex: `task-flow: refactor 1` ou `task-flow: refactor 10,11` ou `task-flow: refactor all`) |
96
+ | `task-flow: estimate X` | **Estima** tempo para gestão | Calcula estimativa de tempo (ex: `task-flow: estimate 1` ou `task-flow: estimate 10,11`) |
97
+ | `task-flow: report X` | **Documenta** implementação | Gera relatório detalhado (ex: `task-flow: report 1` ou `task-flow: report 10,11`) |
96
98
 
97
99
  **Fluxo típico:**
98
100
 
@@ -423,7 +425,7 @@ rbin-task-flow init
423
425
  # Edit .task-flow/tasks.input.txt and use:
424
426
  # - task-flow: sync
425
427
  # - task-flow: run next X
426
- # - task-flow: run task X
428
+ # - task-flow: run X (or task-flow: run X,Y or task-flow: run all)
427
429
  ```
428
430
 
429
431
  **That's it!** RBIN Task Flow is now available globally on your system.
@@ -437,8 +439,8 @@ rbin-task-flow init # Initialize in current project
437
439
  rbin-task-flow update # Update configurations
438
440
  rbin-task-flow version-check # Check for model updates
439
441
  rbin-task-flow info # Show information
440
- rbin-task-flow estimate <id> # Estimate time for a task
441
- rbin-task-flow report <id> # Generate implementation report for a task
442
+ rbin-task-flow estimate <ids> # Estimate time (e.g., "1" or "1,2" or "all")
443
+ rbin-task-flow report <ids> # Generate report (e.g., "1" or "1,2" or "all")
442
444
  ```
443
445
 
444
446
  ### AI Commands - Why Use Them?
@@ -449,13 +451,15 @@ After initializing, use these commands in your AI (Cursor/Claude/Gemini) to auto
449
451
  |---------|------------|-------------|
450
452
  | `task-flow: sync` | **Sync** tasks from text file with system | Keeps everything synchronized automatically - adds new, removes deleted, preserves your progress |
451
453
  | `task-flow: think` | **Discover** tasks you forgot | Analyzes code and suggests missing tasks (tests, refactoring, documentation) |
452
- | `task-flow: run next X` | **Automate** work on next subtasks | AI works on next X subtasks sequentially, you just follow along |
453
- | `task-flow: run task X` | **Complete** an entire task at once | Executes all subtasks of a specific task (allows parallel work) |
454
454
  | `task-flow: status` | **Visualize** progress quickly | See summary with completed tasks, in progress, and remaining subtasks |
455
- | `task-flow: review` | **Ensure** work quality | Verifies that tasks marked as "done" are actually completed |
456
- | `task-flow: refactor` | **Improve** code without breaking | Refactors code from current commit removing comments and improving quality |
457
- | `task-flow: estimate task X` | **Estimate** time for management | Calculates time estimate based on subtasks and developer experience level |
458
- | `task-flow: report task X` | **Document** implementation | Generates detailed Markdown report of what was done to resolve the task |
455
+ | `task-flow: run next X` | **Automate** work on next subtasks | AI works on next X subtasks sequentially, you just follow along |
456
+ | `task-flow: run X` | **Complete** an entire task at once | Executes all subtasks of a specific task (allows parallel work) |
457
+ | `task-flow: run X,Y` | **Complete** multiple tasks | Executes comma-separated tasks (e.g., `task-flow: run 10,11`) |
458
+ | `task-flow: run all` | **Complete** all tasks | Executes all pending tasks |
459
+ | `task-flow: review X` | **Ensure** work quality | Verifies specific tasks (e.g., `task-flow: review 1` or `task-flow: review 10,11` or `task-flow: review all`) |
460
+ | `task-flow: refactor X` | **Improve** code without breaking | Refactors specific tasks (e.g., `task-flow: refactor 1` or `task-flow: refactor 10,11` or `task-flow: refactor all`) |
461
+ | `task-flow: estimate X` | **Estimate** time for management | Calculates time estimate (e.g., `task-flow: estimate 1` or `task-flow: estimate 10,11`) |
462
+ | `task-flow: report X` | **Document** implementation | Generates detailed report (e.g., `task-flow: report 1` or `task-flow: report 10,11`) |
459
463
 
460
464
  **Typical workflow:**
461
465
 
package/bin/cli.js CHANGED
@@ -40,22 +40,22 @@ program
40
40
 
41
41
  program
42
42
  .command('estimate')
43
- .description('Estimate time for a task based on subtasks and experience level')
44
- .argument('<taskId>', 'Task ID to estimate')
43
+ .description('Estimate time for task(s) based on subtasks and experience level')
44
+ .argument('<taskIds>', 'Task ID(s) to estimate (comma-separated or "all")')
45
45
  .option('-p, --path <path>', 'Target directory (default: current directory)')
46
- .action(async (taskId, options) => {
46
+ .action(async (taskIds, options) => {
47
47
  const targetPath = options.path || process.cwd();
48
- await estimateTask(taskId, targetPath);
48
+ await estimateTask(taskIds, targetPath);
49
49
  });
50
50
 
51
51
  program
52
52
  .command('report')
53
- .description('Generate implementation report for a completed task')
54
- .argument('<taskId>', 'Task ID to generate report for')
53
+ .description('Generate implementation report for completed task(s)')
54
+ .argument('<taskIds>', 'Task ID(s) to generate report for (comma-separated or "all")')
55
55
  .option('-p, --path <path>', 'Target directory (default: current directory)')
56
- .action(async (taskId, options) => {
56
+ .action(async (taskIds, options) => {
57
57
  const targetPath = options.path || process.cwd();
58
- await generateReport(taskId, targetPath);
58
+ await generateReport(taskIds, targetPath);
59
59
  });
60
60
 
61
61
  program
@@ -72,8 +72,8 @@ program
72
72
  console.log(chalk.cyan(' rbin-task-flow init') + ' - Initialize in current directory');
73
73
  console.log(chalk.cyan(' rbin-task-flow update') + ' - Update configurations');
74
74
  console.log(chalk.cyan(' rbin-task-flow version-check') + ' - Check for model updates');
75
- console.log(chalk.cyan(' rbin-task-flow estimate <id>') + ' - Estimate time for a task');
76
- console.log(chalk.cyan(' rbin-task-flow report <id>') + ' - Generate implementation report');
75
+ console.log(chalk.cyan(' rbin-task-flow estimate <ids>') + ' - Estimate time (e.g., "1" or "1,2" or "all")');
76
+ console.log(chalk.cyan(' rbin-task-flow report <ids>') + ' - Generate report (e.g., "1" or "1,2" or "all")');
77
77
  console.log(chalk.cyan(' rbin-task-flow info') + ' - Show this information\n');
78
78
  });
79
79
 
package/lib/estimate.js CHANGED
@@ -1,8 +1,9 @@
1
1
  const fs = require('fs-extra');
2
2
  const path = require('path');
3
3
  const chalk = require('chalk');
4
+ const { parseTaskIds } = require('./utils');
4
5
 
5
- async function estimateTask(taskId, targetPath = process.cwd()) {
6
+ async function estimateTask(taskIdsInput, targetPath = process.cwd()) {
6
7
  const tasksPath = path.join(targetPath, '.task-flow/.internal/tasks.json');
7
8
 
8
9
  if (!fs.existsSync(tasksPath)) {
@@ -12,57 +13,81 @@ async function estimateTask(taskId, targetPath = process.cwd()) {
12
13
 
13
14
  try {
14
15
  const tasksData = await fs.readJSON(tasksPath);
15
- const task = tasksData.tasks.find(t => t.id === parseInt(taskId));
16
-
17
- if (!task) {
18
- console.log(chalk.red(`❌ Task ${taskId} not found.`));
16
+ const taskIds = parseTaskIds(taskIdsInput, tasksData.tasks);
17
+
18
+ if (taskIds.length === 0) {
19
+ console.log(chalk.red('❌ No valid task IDs provided.'));
19
20
  return;
20
21
  }
21
22
 
22
- const subtaskCount = task.subtasks ? task.subtasks.length : 0;
23
-
24
- if (subtaskCount === 0) {
25
- console.log(chalk.yellow(`⚠️ Task ${taskId} has no subtasks. Cannot estimate.`));
26
- return;
23
+ let successCount = 0;
24
+ let errorCount = 0;
25
+
26
+ for (const taskId of taskIds) {
27
+ const task = tasksData.tasks.find(t => t.id === taskId);
28
+
29
+ if (!task) {
30
+ console.log(chalk.red(`❌ Task ${taskId} not found.`));
31
+ errorCount++;
32
+ continue;
33
+ }
34
+
35
+ const subtaskCount = task.subtasks ? task.subtasks.length : 0;
36
+
37
+ if (subtaskCount === 0) {
38
+ console.log(chalk.yellow(`⚠️ Task ${taskId} has no subtasks. Cannot estimate.`));
39
+ errorCount++;
40
+ continue;
41
+ }
42
+
43
+ const estimates = calculateEstimates(subtaskCount);
44
+
45
+ if (taskIds.length > 1) {
46
+ console.log('\n' + chalk.cyan('═'.repeat(70)));
47
+ } else {
48
+ console.log('\n' + chalk.cyan('═'.repeat(70)));
49
+ }
50
+ console.log(chalk.magenta('📊 Task Estimation Report'));
51
+ console.log(chalk.cyan('═'.repeat(70)) + '\n');
52
+
53
+ console.log(chalk.blue.bold('Task:'), chalk.yellow(`#${taskId} - ${task.title}\n`));
54
+ console.log(chalk.blue(`Complexity: ${chalk.yellow(subtaskCount)} subtasks\n`));
55
+
56
+ console.log(chalk.cyan('─'.repeat(70)));
57
+ console.log(chalk.magenta.bold('Time Estimates by Experience Level:\n'));
58
+
59
+ const juniorDays = Math.ceil(estimates.junior.upper / 8);
60
+ const midDays = Math.ceil(estimates.mid.upper / 8);
61
+ const seniorDays = Math.ceil(estimates.senior.upper / 8);
62
+
63
+ console.log(chalk.gray('👶 Junior Developer (0-2 years):'));
64
+ console.log(chalk.white(' Hours:'), chalk.yellow(`${estimates.junior.lower}-${estimates.junior.upper} hours`));
65
+ console.log(chalk.white(' Days: '), chalk.yellow(`~${juniorDays} business day(s)`));
66
+ console.log('');
67
+
68
+ console.log(chalk.gray('👨‍💼 Mid-level Developer (3-5 years):'));
69
+ console.log(chalk.white(' Hours:'), chalk.yellow(`${estimates.mid.lower}-${estimates.mid.upper} hours`));
70
+ console.log(chalk.white(' Days: '), chalk.yellow(`~${midDays} business day(s)`));
71
+ console.log('');
72
+
73
+ console.log(chalk.gray('👴 Senior Developer (6+ years):'));
74
+ console.log(chalk.white(' Hours:'), chalk.yellow(`${estimates.senior.lower}-${estimates.senior.upper} hours`));
75
+ console.log(chalk.white(' Days: '), chalk.yellow(`~${seniorDays} business day(s)`));
76
+ console.log('');
77
+
78
+ console.log(chalk.cyan('─'.repeat(70)));
79
+ console.log(chalk.magenta.bold('Recommendation for Management:\n'));
80
+ console.log(chalk.white(' Recommended estimate:'), chalk.yellow(`${estimates.mid.lower}-${estimates.mid.upper} hours`), chalk.gray('(mid-level baseline)'));
81
+ console.log(chalk.white(' Buffer recommended:'), chalk.yellow(`+20%`), chalk.gray('for unexpected issues'));
82
+ console.log(chalk.white(' Total estimate:'), chalk.yellow(`${Math.round(estimates.mid.upper * 1.2)} hours`), chalk.gray(`(~${Math.ceil(estimates.mid.upper * 1.2 / 8)} business days)`));
83
+ console.log('');
84
+
85
+ successCount++;
27
86
  }
28
87
 
29
- const estimates = calculateEstimates(subtaskCount);
30
-
31
- console.log('\n' + chalk.cyan('═'.repeat(70)));
32
- console.log(chalk.magenta('📊 Task Estimation Report'));
33
- console.log(chalk.cyan('═'.repeat(70)) + '\n');
34
-
35
- console.log(chalk.blue.bold('Task:'), chalk.yellow(`#${taskId} - ${task.title}\n`));
36
- console.log(chalk.blue(`Complexity: ${chalk.yellow(subtaskCount)} subtasks\n`));
37
-
38
- console.log(chalk.cyan('─'.repeat(70)));
39
- console.log(chalk.magenta.bold('Time Estimates by Experience Level:\n'));
40
-
41
- const juniorDays = Math.ceil(estimates.junior.upper / 8);
42
- const midDays = Math.ceil(estimates.mid.upper / 8);
43
- const seniorDays = Math.ceil(estimates.senior.upper / 8);
44
-
45
- console.log(chalk.gray('👶 Junior Developer (0-2 years):'));
46
- console.log(chalk.white(' Hours:'), chalk.yellow(`${estimates.junior.lower}-${estimates.junior.upper} hours`));
47
- console.log(chalk.white(' Days: '), chalk.yellow(`~${juniorDays} business day(s)`));
48
- console.log('');
49
-
50
- console.log(chalk.gray('👨‍💼 Mid-level Developer (3-5 years):'));
51
- console.log(chalk.white(' Hours:'), chalk.yellow(`${estimates.mid.lower}-${estimates.mid.upper} hours`));
52
- console.log(chalk.white(' Days: '), chalk.yellow(`~${midDays} business day(s)`));
53
- console.log('');
54
-
55
- console.log(chalk.gray('👴 Senior Developer (6+ years):'));
56
- console.log(chalk.white(' Hours:'), chalk.yellow(`${estimates.senior.lower}-${estimates.senior.upper} hours`));
57
- console.log(chalk.white(' Days: '), chalk.yellow(`~${seniorDays} business day(s)`));
58
- console.log('');
59
-
60
- console.log(chalk.cyan('─'.repeat(70)));
61
- console.log(chalk.magenta.bold('Recommendation for Management:\n'));
62
- console.log(chalk.white(' Recommended estimate:'), chalk.yellow(`${estimates.mid.lower}-${estimates.mid.upper} hours`), chalk.gray('(mid-level baseline)'));
63
- console.log(chalk.white(' Buffer recommended:'), chalk.yellow(`+20%`), chalk.gray('for unexpected issues'));
64
- console.log(chalk.white(' Total estimate:'), chalk.yellow(`${Math.round(estimates.mid.upper * 1.2)} hours`), chalk.gray(`(~${Math.ceil(estimates.mid.upper * 1.2 / 8)} business days)`));
65
- console.log('');
88
+ if (taskIds.length > 1) {
89
+ console.log(chalk.cyan(`\n📊 Estimated ${successCount} task(s), ${errorCount} error(s)`));
90
+ }
66
91
 
67
92
  } catch (error) {
68
93
  console.error(chalk.red('Error reading tasks:'), error.message);
package/lib/report.js CHANGED
@@ -2,8 +2,9 @@ const fs = require('fs-extra');
2
2
  const path = require('path');
3
3
  const chalk = require('chalk');
4
4
  const { execSync } = require('child_process');
5
+ const { parseTaskIds } = require('./utils');
5
6
 
6
- async function generateReport(taskId, targetPath = process.cwd()) {
7
+ async function generateReport(taskIdsInput, targetPath = process.cwd()) {
7
8
  const tasksPath = path.join(targetPath, '.task-flow/.internal/tasks.json');
8
9
  const statusPath = path.join(targetPath, '.task-flow/.internal/status.json');
9
10
  const docsDir = path.join(targetPath, '.task-flow/docs');
@@ -22,36 +23,54 @@ async function generateReport(taskId, targetPath = process.cwd()) {
22
23
  const tasksData = await fs.readJSON(tasksPath);
23
24
  const statusData = await fs.readJSON(statusPath);
24
25
 
25
- const task = tasksData.tasks.find(t => t.id === parseInt(taskId));
26
-
27
- if (!task) {
28
- console.log(chalk.red(`❌ Task ${taskId} not found.`));
26
+ const taskIds = parseTaskIds(taskIdsInput, tasksData.tasks);
27
+
28
+ if (taskIds.length === 0) {
29
+ console.log(chalk.red('❌ No valid task IDs provided.'));
29
30
  return;
30
31
  }
31
32
 
32
- const taskStatus = statusData.tasks[taskId.toString()];
33
-
34
- if (!taskStatus) {
35
- console.log(chalk.yellow(`⚠️ Task ${taskId} has no status information.`));
36
- }
33
+ await fs.ensureDir(docsDir);
37
34
 
38
- const isCompleted = taskStatus && taskStatus.status === 'done';
39
- const allSubtasksDone = taskStatus && taskStatus.subtasks
40
- ? Object.values(taskStatus.subtasks).every(status => status === 'done')
41
- : false;
35
+ let successCount = 0;
36
+ let errorCount = 0;
42
37
 
43
- if (!isCompleted && !allSubtasksDone) {
44
- console.log(chalk.yellow(`⚠️ Task ${taskId} is not completed. Generating partial report...`));
45
- }
38
+ for (const taskId of taskIds) {
39
+ const task = tasksData.tasks.find(t => t.id === taskId);
46
40
 
47
- await fs.ensureDir(docsDir);
41
+ if (!task) {
42
+ console.log(chalk.red(`❌ Task ${taskId} not found.`));
43
+ errorCount++;
44
+ continue;
45
+ }
48
46
 
49
- const reportContent = await buildReport(task, taskStatus, targetPath);
50
- const reportPath = path.join(docsDir, `task-${taskId}-implementation.md`);
47
+ const taskStatus = statusData.tasks[taskId.toString()];
48
+
49
+ if (!taskStatus) {
50
+ console.log(chalk.yellow(`⚠️ Task ${taskId} has no status information.`));
51
+ }
52
+
53
+ const isCompleted = taskStatus && taskStatus.status === 'done';
54
+ const allSubtasksDone = taskStatus && taskStatus.subtasks
55
+ ? Object.values(taskStatus.subtasks).every(status => status === 'done')
56
+ : false;
57
+
58
+ if (!isCompleted && !allSubtasksDone) {
59
+ console.log(chalk.yellow(`⚠️ Task ${taskId} is not completed. Generating partial report...`));
60
+ }
51
61
 
52
- await fs.writeFile(reportPath, reportContent, 'utf8');
62
+ const reportContent = await buildReport(task, taskStatus, targetPath);
63
+ const reportPath = path.join(docsDir, `task-${taskId}-implementation.md`);
53
64
 
54
- console.log(chalk.green(`✅ Report generated: ${reportPath}`));
65
+ await fs.writeFile(reportPath, reportContent, 'utf8');
66
+
67
+ console.log(chalk.green(`✅ Report generated: ${reportPath}`));
68
+ successCount++;
69
+ }
70
+
71
+ if (taskIds.length > 1) {
72
+ console.log(chalk.cyan(`\n📊 Generated ${successCount} report(s), ${errorCount} error(s)`));
73
+ }
55
74
 
56
75
  } catch (error) {
57
76
  console.error(chalk.red('Error generating report:'), error.message);
package/lib/utils.js CHANGED
@@ -35,11 +35,26 @@ function showNextSteps(targetPath) {
35
35
  console.log(chalk.blue('\n See'), chalk.yellow('.task-flow/README.md'), chalk.blue('for all available commands\n'));
36
36
  }
37
37
 
38
+ function parseTaskIds(input, allTasks = []) {
39
+ if (!input || input.trim().toLowerCase() === 'all') {
40
+ return allTasks.map(t => t.id);
41
+ }
42
+
43
+ const ids = input.split(',')
44
+ .map(id => id.trim())
45
+ .filter(id => id.length > 0)
46
+ .map(id => parseInt(id))
47
+ .filter(id => !isNaN(id));
48
+
49
+ return ids;
50
+ }
51
+
38
52
  module.exports = {
39
53
  showHeader,
40
54
  showSuccess,
41
55
  showError,
42
56
  showWarning,
43
57
  showInfo,
44
- showNextSteps
58
+ showNextSteps,
59
+ parseTaskIds
45
60
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rbin-task-flow",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "AI-powered task management for Claude, Cursor, and Gemini",
5
5
  "main": "index.js",
6
6
  "bin": {