rbin-task-flow 1.19.1 → 1.19.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.
@@ -12,19 +12,19 @@ alwaysApply: true
12
12
  - **READ**: `.task-flow/.internal/tasks.json` to get task details
13
13
  - **CALCULATE**: Time estimate based on number of subtasks and developer experience level
14
14
  - **DISPLAY**: Show time estimate with intervals for 3 experience levels (junior, mid, senior)
15
- - **FORMAT**: Show estimates in hours with ranges (e.g., "10-14 hours" for mid-level)
15
+ - **FORMAT**: Show estimates in hours with ranges (e.g., "10-14 hours" for intermediate)
16
16
 
17
17
  - **Estimation Rules:**
18
18
  1. **Base Calculation**: Count total number of subtasks in the task
19
- 2. **Experience Levels**:
19
+ 2. **Experience Levels** (use internally; display "Intermediate" not "Mid-level" to user):
20
20
  - **Junior** (0-2 years): Base time × 1.5 multiplier
21
- - **Mid-level** (3-5 years): Base time × 1.0 multiplier (baseline)
21
+ - **Intermediate** (3-5 years): Base time × 1.0 multiplier (baseline)
22
22
  - **Senior** (6+ years): Base time × 0.7 multiplier
23
23
  3. **Time per Subtask**:
24
- - Simple subtask: 1-2 hours (mid-level baseline)
25
- - Medium subtask: 2-4 hours (mid-level baseline)
26
- - Complex subtask: 4-6 hours (mid-level baseline)
27
- 4. **Default Assumption**: Average 2-3 hours per subtask for mid-level (baseline)
24
+ - Simple subtask: 1-2 hours (intermediate baseline)
25
+ - Medium subtask: 2-4 hours (intermediate baseline)
26
+ - Complex subtask: 4-6 hours (intermediate baseline)
27
+ 4. **Default Assumption**: Average 2-3 hours per subtask for intermediate (baseline)
28
28
  5. **Range Calculation**:
29
29
  - Lower bound: (subtasks × 2) × multiplier
30
30
  - Upper bound: (subtasks × 3) × multiplier
@@ -32,13 +32,13 @@ alwaysApply: true
32
32
 
33
33
  - **Estimation Formula:**
34
34
  ```
35
- Base hours per subtask: 2-3 hours (mid-level)
35
+ Base hours per subtask: 2-3 hours (intermediate)
36
36
 
37
37
  Junior (0-2 years):
38
38
  Lower: (subtasks × 2) × 1.5
39
39
  Upper: (subtasks × 3) × 1.5
40
40
 
41
- Mid-level (3-5 years):
41
+ Intermediate (3-5 years):
42
42
  Lower: subtasks × 2
43
43
  Upper: subtasks × 3
44
44
 
@@ -53,9 +53,9 @@ alwaysApply: true
53
53
 
54
54
  Based on [N] subtasks:
55
55
 
56
- 👶 Junior (0-2 years): [X-Y] hours
57
- 👨‍💼 Mid-level (3-5 years): [X-Y] hours
58
- 👴 Senior (6+ years): [X-Y] hours
56
+ 👶 Junior (0-2 years): [X-Y] hours
57
+ 👨‍💼 Intermediate (3-5 years): [X-Y] hours
58
+ 👴 Senior (6+ years): [X-Y] hours
59
59
  ```
60
60
 
61
61
  - **Natural Language Phrases:**
@@ -78,9 +78,9 @@ alwaysApply: true
78
78
 
79
79
  Based on 5 subtasks:
80
80
 
81
- 👶 Junior (0-2 years): 15-23 hours
82
- 👨‍💼 Mid-level (3-5 years): 10-15 hours
83
- 👴 Senior (6+ years): 7-11 hours
81
+ 👶 Junior (0-2 years): 15-23 hours
82
+ 👨‍💼 Intermediate (3-5 years): 10-15 hours
83
+ 👴 Senior (6+ years): 7-11 hours
84
84
  ```
85
85
 
86
86
  - **Integration:**
@@ -37,7 +37,7 @@ alwaysApply: true
37
37
  - `task-flow: report X` - Generate implementation report for task X (simplified - no "task" needed)
38
38
  - `task-flow: report X,Y` - Generate reports for multiple tasks (comma-separated)
39
39
  - `task-flow: report all` - Generate reports for all tasks
40
- - `task-flow: generate flow` - Populate tasks.flow.md with dependencies, estimated hours (mid-level dev, billing), and AI model recommendations
40
+ - `task-flow: generate flow` - Populate tasks.flow.md with dependencies, estimated hours, and AI model recommendations
41
41
 
42
42
  - **Workflow Example:**
43
43
  ```markdown
@@ -1,73 +1,79 @@
1
1
  ---
2
- description: Generate task flow with dependencies, estimated hours (billing), and AI model recommendations
2
+ description: Generate task flow with dependencies, estimated hours, and AI model recommendations
3
3
  globs: **/*
4
4
  alwaysApply: true
5
5
  ---
6
6
 
7
7
  - **Task Flow Generation - Dependencies, Hours & Model Recommendations:**
8
- - **FAST FORMAT**: `task-flow: generate flow` → Populate tasks.flow.md with dependencies, estimated hours, and model recommendations
8
+ - **FAST FORMAT**: `task-flow: generate flow` → Populate tasks.flow.md
9
9
  - When user says "task-flow: generate flow", "generate flow", "gerar flow", or "flow":
10
- - **READ**: `.task-flow/.internal/tasks.json` to get all tasks
11
- - **READ**: `.task-flow/.internal/status.json` (optional, for context)
12
- - **ANALYZE**: For each task, determine dependencies, estimated hours, and model recommendations
10
+ - **READ**: `.task-flow/.internal/tasks.json` and optionally `status.json`
11
+ - **SEARCH**: Current versions of Codex, Composer, Claude (Haiku, Sonnet) via web search
13
12
  - **WRITE**: Populate `.task-flow/tasks.flow.md` with the generated flow
14
- - **DO NOT**: Populate tasks.flow.md when running `task-flow: sync` — only when `task-flow: generate flow`
13
+ - **DO NOT**: Populate tasks.flow.md when running `task-flow: sync`
15
14
 
16
15
  - **Generation Process:**
17
- 1. **Search for current model versions** (quick web search): Codex, Composer (Cursor), Claude (Haiku, Sonnet, Opus). Use the latest available versions in recommendations.
18
- 2. Read all tasks from tasks.json (id, title, description, subtasks)
16
+ 1. **Search for current model versions** (web search): Codex, Composer (Cursor), Claude Haiku, Claude Sonnet. Include version next to each model (e.g. "Claude Sonnet 4.6").
17
+ 2. Read tasks from tasks.json
19
18
  3. For each task, determine:
20
- - **Estimated hours** (dev mediano, cobrança ao cliente): Range in hours for mid-level developer (3-5 years). Formula: subtasks × 2 to subtasks × 3 hours (same as [task_estimate.mdc](mdc:.cursor/rules/task_estimate.mdc)). Round to nearest hour. Purpose: developer billing.
21
- - **Dependencies**: Which tasks (if any) must be completed first
22
- - Infer from task order, descriptions, subtask content
23
- - Task 1 typically has no dependencies
24
- - Task N may depend on 1..N-1 if it builds on their output
25
- - Use "none" or "nenhuma" when no dependencies
26
- - **Model recommendations** (in order, most to least indicated):
27
- - **Codex** (variants): include current version from web search
28
- - **Composer** (Cursor): include current version from web search
29
- - **Claude**: Haiku, Sonnet, Opus — include current version from web search
30
- - **Effort**: low, medium, or high (based on subtask count, complexity)
31
- 4. Output format per task (simple, one line):
32
- - `task X - depende da task Y - X-Yh (dev mediano, cobrança) - model1 effort E, model2, model3 effort E`
33
- - Or: `task X - nenhuma dependência - X-Yh (dev mediano, cobrança) - model1 effort E, model2, model3 effort E`
19
+ - **Dependencies**: Which tasks must be completed first (or "—" if none)
20
+ - **Estimated hours** (for billing): subtasks × 2 to subtasks × 3 hours. Do NOT show "dev mediano" or "mid-level".
21
+ - **3 model options** (in order of priority): one Codex, one Composer, one Claude — always these 3. Include version and effort for each.
22
+ - **Effort** per model: low (1-3 subtasks), medium (4-6), high (7+ or complex)
23
+ 4. **Claude**: Use only Haiku or Sonnet **never Opus**
34
24
 
35
- - **Output Format for tasks.flow.md:**
25
+ - **Output Format (direct blocks per task):**
36
26
  ```markdown
37
27
  # Task Flow — Dependencies, Hours & Model Recommendations
38
28
 
39
29
  <!-- Populated by task-flow: generate flow. Do not edit manually. -->
40
- <!-- Horas: dev mediano (3-5 anos), uso para cobrança ao cliente -->
30
+ <!-- Horas: uso para cobrança ao cliente -->
41
31
 
42
- ## Tasks
32
+ ## Legenda
43
33
 
44
- task 1 - nenhuma dependência - 6-9h (dev mediano, cobrança) - codex effort medium, composer, claude sonnet effort medium
45
- task 2 - depende da task 1 - 8-12h (dev mediano, cobrança) - codex effort medium, composer, claude sonnet effort medium
46
- task 3 - depende da task 2 - 14-21h (dev mediano, cobrança) - codex effort high, composer, claude opus effort high
47
- ```
34
+ | Símbolo | Significado |
35
+ |---------|-------------|
36
+ | | Task concluída |
37
+ | ⚡ | Pode iniciar agora (deps satisfeitas) |
38
+ | 🔒 | Bloqueada por dependências |
39
+
40
+ **Esforço (Effort):** low (1-3 subtasks), medium (4-6), high (7+)
41
+ **Claude:** Haiku ou Sonnet — **não use Opus**
42
+
43
+ ## Tasks (blocos diretos por task)
48
44
 
49
- - **Model Recommendation Rules:**
50
- - **MUST list multiple models** in order (most to least indicated), not just one
51
- - **Order**: Codex first, then Composer, then Claude (unless task clearly favors another order)
52
- - **Consider**: Subtask count, description complexity, integration needs
53
- - **Effort**: low (1-3 subtasks), medium (4-6), high (7+ or complex)
54
- - **VERSIONS**: Do a quick web search for current Codex, Composer, Claude model versions before generating; include them in the output. If search fails or is unclear, use model names only.
45
+ ### Task 1 — [Título]
46
+ - **Depende de:**
47
+ - **Horas cobrança:** 10-15h
48
+ - **Modelos sugeridos** (ordem de prioridade):
49
+ 1. Codex [versão] effort medium
50
+ 2. Composer [versão] effort medium
51
+ 3. Claude Sonnet [versão] — effort medium
55
52
 
56
- - **Dependency Inference Rules:**
57
- - Sequential order: Task 2 often depends on 1, Task 3 on 2, etc.
58
- - Semantic analysis: If task mentions "using X from task Y" or similar, add dependency
59
- - Independent tasks: Can mark as "nenhuma dependência" or "none" to enable parallelization
53
+ ### Task 2 — [Título]
54
+ - **Depende de:** Task 1
55
+ - **Horas cobrança:** 10-15h
56
+ - **Modelos sugeridos** (ordem de prioridade):
57
+ 1. Codex [versão] — effort medium
58
+ 2. Composer [versão] — effort medium
59
+ 3. Claude Sonnet [versão] — effort medium
60
+
61
+ ### 🔒 Task 3 — [Título]
62
+ - **Depende de:** Task 2
63
+ - **Horas cobrança:** 8-12h
64
+ - **Modelos sugeridos** (ordem de prioridade):
65
+ 1. Claude Haiku [versão] — effort low
66
+ 2. Codex [versão] — effort low
67
+ 3. Composer [versão] — effort low
68
+ ```
60
69
 
61
- - **Natural Language Phrases:**
62
- - **FAST FORMAT**: `task-flow: generate flow` or `task-flow generate flow`
63
- - "generate flow", "gerar flow", "flow", "gerar tasks.flow"
64
- - Any variation asking to generate/populate the task flow
70
+ - **Model Rules:**
71
+ - **3 models per task**: One Codex, one Composer, one Claude — always in order of priority
72
+ - **Version required**: Include current version next to each model name (from web search)
73
+ - **Effort required**: low, medium, or high for each model
74
+ - **No Opus**: Claude = Haiku or Sonnet only
65
75
 
66
- - **Integration:**
67
- - Uses data from `.task-flow/.internal/tasks.json`
68
- - Writes to `.task-flow/tasks.flow.md` (created by `rbin-task-flow init`)
69
- - Does NOT run on `task-flow: sync` — only when user explicitly requests `task-flow: generate flow`
70
- - Works with [task_execution.mdc](mdc:.cursor/rules/task_execution.mdc) workflow
76
+ - **Natural Language:** "generate flow", "gerar flow", "flow"
71
77
 
72
78
  - **Principle:**
73
- > **Populate tasks.flow.md with dependencies (for parallelization), estimated hours for billing (dev mediano), and AI model recommendations in order. Enable users to decide which tasks can run in parallel, how many hours to charge the client, and which model/effort to use for each.**
79
+ > **Populate tasks.flow.md with direct blocks per task. Dependencies, hours, and 3 model options (Codex, Composer, Claude) with version and effort. Never use Opus.**
@@ -98,7 +98,7 @@ Refactors code from specific task(s). Removes explanatory comments, improves cod
98
98
  Estimates time required to complete task(s) based on the number of subtasks and developer experience level.
99
99
 
100
100
  **Output includes:**
101
- - Time estimates for Junior (0-2 years), Mid-level (3-5 years), and Senior (6+ years) developers
101
+ - Time estimates for Junior (0-2 years), Intermediate (3-5 years), and Senior (6+ years) developers
102
102
  - Estimates in hours and business days
103
103
  - Recommendation for management with buffer
104
104
 
package/CLAUDE.md CHANGED
@@ -37,11 +37,11 @@ This project uses RBIN Task Flow for task management:
37
37
  - `task-flow: report X` - Generate implementation report for task X (simplified - no "task" needed)
38
38
  - `task-flow: report X,Y` - Generate reports for multiple tasks (comma-separated)
39
39
  - `task-flow: report all` - Generate reports for all tasks
40
- - `task-flow: generate flow` - Populate tasks.flow.md with dependencies, estimated hours (mid-level dev, billing), and AI model recommendations
40
+ - `task-flow: generate flow` - Populate tasks.flow.md with dependencies, estimated hours, and AI model recommendations
41
41
  - **Files**:
42
42
  - `.task-flow/tasks.input.txt` - Define your tasks here
43
43
  - `.task-flow/tasks.status.md` - Auto-generated status (DO NOT EDIT manually)
44
- - `.task-flow/tasks.flow.md` - Dependencies, estimated hours (mid-level dev, billing), and model recommendations (populated by `task-flow: generate flow`)
44
+ - `.task-flow/tasks.flow.md` - Dependencies, estimated hours, and model recommendations (populated by `task-flow: generate flow`)
45
45
  - `.task-flow/.internal/` - Internal system files (ignore)
46
46
 
47
47
  Follow all rules defined in `.cursor/rules/` for consistent development practices.
package/lib/estimate.js CHANGED
@@ -65,7 +65,7 @@ async function estimateTask(taskIdsInput, targetPath = process.cwd()) {
65
65
  console.log(chalk.white(' Days: '), chalk.yellow(`~${juniorDays} business day(s)`));
66
66
  console.log('');
67
67
 
68
- console.log(chalk.gray('👨‍💼 Mid-level Developer (3-5 years):'));
68
+ console.log(chalk.gray('👨‍💼 Intermediate (3-5 years):'));
69
69
  console.log(chalk.white(' Hours:'), chalk.yellow(`${estimates.mid.lower}-${estimates.mid.upper} hours`));
70
70
  console.log(chalk.white(' Days: '), chalk.yellow(`~${midDays} business day(s)`));
71
71
  console.log('');
@@ -77,7 +77,7 @@ async function estimateTask(taskIdsInput, targetPath = process.cwd()) {
77
77
 
78
78
  console.log(chalk.cyan('─'.repeat(70)));
79
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)'));
80
+ console.log(chalk.white(' Recommended estimate:'), chalk.yellow(`${estimates.mid.lower}-${estimates.mid.upper} hours`), chalk.gray('(3-5 years baseline)'));
81
81
  console.log(chalk.white(' Buffer recommended:'), chalk.yellow(`+20%`), chalk.gray('for unexpected issues'));
82
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
83
  console.log('');
package/lib/install.js CHANGED
@@ -148,7 +148,7 @@ async function copyTaskFlow(targetPath) {
148
148
  '# Task Flow — Dependencies, Hours & Model Recommendations',
149
149
  '',
150
150
  '<!-- Populated by task-flow: generate flow. Do not edit manually. -->',
151
- '<!-- Horas: dev mediano (3-5 anos), uso para cobrança ao cliente -->',
151
+ '<!-- Horas: uso para cobrança ao cliente -->',
152
152
  '',
153
153
  ].join('\n');
154
154
  await fs.writeFile(flowPath, flowStub);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rbin-task-flow",
3
- "version": "1.19.1",
3
+ "version": "1.19.2",
4
4
  "description": "AI-powered task management for Claude and Cursor",
5
5
  "main": "index.js",
6
6
  "bin": {