rbin-task-flow 1.18.1 → 1.19.1
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/.cursor/rules/coding_standards.mdc +23 -0
- package/.cursor/rules/task_analysis.mdc +1 -0
- package/.cursor/rules/task_execution.mdc +5 -0
- package/.cursor/rules/task_generate_flow.mdc +73 -0
- package/.task-flow/README.md +5 -0
- package/AGENTS.md +1 -1
- package/CLAUDE.md +2 -0
- package/lib/install.js +12 -1
- package/package.json +4 -2
|
@@ -85,6 +85,29 @@ In **front web** (Next.js, React) or **mobile** (Expo, React Native) projects, e
|
|
|
85
85
|
- **Validation**: Zod (not class-validator/class-transformer)
|
|
86
86
|
- **Structure**: `src/app/` (controllers), `src/features/` (use-cases, repositories), `src/shared/` (guards, pipes, gateways)
|
|
87
87
|
|
|
88
|
+
### ESLint — @rbinflow/eslint-config
|
|
89
|
+
|
|
90
|
+
When the project uses `@rbinflow/eslint-config`, **do not add any other ESLint plugins or configs** — `@rbinflow/eslint-config` already configures everything. The `.eslintrc.cjs` file must stay minimal:
|
|
91
|
+
|
|
92
|
+
**Available configurations:**
|
|
93
|
+
|
|
94
|
+
| Project type | extends |
|
|
95
|
+
|--------------|---------|
|
|
96
|
+
| Node.js (no semicolons) | `@rbinflow/eslint-config/node` |
|
|
97
|
+
| Node.js (with semicolons) | `@rbinflow/eslint-config/node-with-semi` |
|
|
98
|
+
| React | `@rbinflow/eslint-config/react` |
|
|
99
|
+
| Next.js | `@rbinflow/eslint-config/next` |
|
|
100
|
+
| Expo | `@rbinflow/eslint-config/expo` |
|
|
101
|
+
|
|
102
|
+
**Example (.eslintrc.cjs):**
|
|
103
|
+
```javascript
|
|
104
|
+
module.exports = {
|
|
105
|
+
extends: ['@rbinflow/eslint-config/next'],
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Node.js variants:** `node` uses `semi: false`; `node-with-semi` uses `semi: true`. All other settings are identical. No extra `plugins`, `rules`, or `extends` beyond this.
|
|
110
|
+
|
|
88
111
|
---
|
|
89
112
|
|
|
90
113
|
## app/ — Routes Only (Front-end & Mobile) / Controllers Only (Backend)
|
|
@@ -62,6 +62,7 @@ alwaysApply: true
|
|
|
62
62
|
- Rebuild tasks.json with all tasks in correct order (matching tasks.input.txt order)
|
|
63
63
|
- Rebuild status.json preserving all existing statuses (or updating if needed)
|
|
64
64
|
- Rebuild tasks.status.md with all tasks and correct status marks (synchronized with status.json)
|
|
65
|
+
- **DO NOT** update or populate `.task-flow/tasks.flow.md` — that file is filled only by `task-flow: generate flow`
|
|
65
66
|
- **ALWAYS regenerate summary section** at the top of tasks.status.md:
|
|
66
67
|
- Count completed tasks (all subtasks done)
|
|
67
68
|
- Count in-progress tasks (some subtasks done)
|
|
@@ -37,6 +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
41
|
|
|
41
42
|
- **Workflow Example:**
|
|
42
43
|
```markdown
|
|
@@ -102,6 +103,10 @@ alwaysApply: true
|
|
|
102
103
|
- See [task_refactor.mdc](mdc:.cursor/rules/task_refactor.mdc) for refactoring code from current commit
|
|
103
104
|
- When user says "task-flow: refactor", improve code quality without changing functionality
|
|
104
105
|
|
|
106
|
+
- **Task Flow Generation:**
|
|
107
|
+
- See [task_generate_flow.mdc](mdc:.cursor/rules/task_generate_flow.mdc) for populating tasks.flow.md
|
|
108
|
+
- When user says "task-flow: generate flow", populate dependencies and model recommendations
|
|
109
|
+
|
|
105
110
|
- **Task Flow Commands - Natural Language Interpretation:**
|
|
106
111
|
- **CRITICAL**: When user mentions **"task flow"**, they **ALWAYS** refer to **RBIN Task Flow**
|
|
107
112
|
- Common phrases that mean "work on RBIN Task Flow subtasks":
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate task flow with dependencies, estimated hours (billing), and AI model recommendations
|
|
3
|
+
globs: **/*
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
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
|
|
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
|
|
13
|
+
- **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`
|
|
15
|
+
|
|
16
|
+
- **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)
|
|
19
|
+
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`
|
|
34
|
+
|
|
35
|
+
- **Output Format for tasks.flow.md:**
|
|
36
|
+
```markdown
|
|
37
|
+
# Task Flow — Dependencies, Hours & Model Recommendations
|
|
38
|
+
|
|
39
|
+
<!-- Populated by task-flow: generate flow. Do not edit manually. -->
|
|
40
|
+
<!-- Horas: dev mediano (3-5 anos), uso para cobrança ao cliente -->
|
|
41
|
+
|
|
42
|
+
## Tasks
|
|
43
|
+
|
|
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
|
+
```
|
|
48
|
+
|
|
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.
|
|
55
|
+
|
|
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
|
|
60
|
+
|
|
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
|
|
65
|
+
|
|
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
|
|
71
|
+
|
|
72
|
+
- **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.**
|
package/.task-flow/README.md
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
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
16
|
| `task-flow: estimate X` | Estimates time for task X (e.g., `task-flow: estimate 1` or `task-flow: estimate 10,11`) |
|
|
17
17
|
| `task-flow: report X` | Generates implementation report for task X (e.g., `task-flow: report 1` or `task-flow: report 10,11`) |
|
|
18
|
+
| `task-flow: generate flow` | Populates tasks.flow.md with dependencies, estimated hours, and AI model recommendations |
|
|
18
19
|
| `task-flow: audit` | Audits codebase against coding standards and suggests incremental improvements |
|
|
19
20
|
| `task-flow: check` | Run lint fix (if available) and build; fix any warnings or errors until both pass |
|
|
20
21
|
| `task-flow: improve changes` | Audit only uncommitted files against coding standards (same as audit, restricted to current change set) |
|
|
@@ -106,6 +107,9 @@ Estimates time required to complete task(s) based on the number of subtasks and
|
|
|
106
107
|
- `task-flow: estimate 10,11` → Shows time estimates for tasks 10 and 11
|
|
107
108
|
- `task-flow: estimate all` → Shows time estimates for all tasks
|
|
108
109
|
|
|
110
|
+
### `task-flow: generate flow`
|
|
111
|
+
Populates `tasks.flow.md` with: (1) task dependencies (for parallelization), (2) estimated hours, and (3) AI model recommendations (Codex, Composer, Claude) with effort levels. Run after `task-flow: sync` when you want to know which tasks can run in parallel and which model/effort to use.
|
|
112
|
+
|
|
109
113
|
### `task-flow: report X` (simplified syntax)
|
|
110
114
|
Generates a detailed implementation report for completed task(s) in Markdown format.
|
|
111
115
|
|
|
@@ -129,4 +133,5 @@ Generates a detailed implementation report for completed task(s) in Markdown for
|
|
|
129
133
|
|
|
130
134
|
- `.task-flow/tasks.input.txt` - Edit tasks here (format: `- Task description`)
|
|
131
135
|
- `.task-flow/tasks.status.md` - ⚠️ **DO NOT EDIT** - Automatically updated by AI
|
|
136
|
+
- `.task-flow/tasks.flow.md` - Dependencies, estimated hours, and model recommendations (populated by `task-flow: generate flow`)
|
|
132
137
|
- `.task-flow/.internal/` - ⚠️ **IGNORE** - Internal system files (no need to read or edit)
|
package/AGENTS.md
CHANGED
|
@@ -29,7 +29,7 @@ This repo follows the same development norms as in `.cursor/rules/` and `CLAUDE.
|
|
|
29
29
|
- **Task flow** always means **RBIN Task Flow**.
|
|
30
30
|
- Tasks: `.task-flow/tasks.input.txt` (format: `- Task description`).
|
|
31
31
|
- Status: `.task-flow/tasks.status.md` and `.task-flow/.internal/status.json`.
|
|
32
|
-
- **Commands** to support: `task-flow: sync`, `task-flow: think`, `task-flow: audit`, `task-flow: check`, `task-flow: improve changes`, `task-flow: status`, `task-flow: run next X`, `task-flow: run X` (or `X,Y` / `all`), `task-flow: review X`, `task-flow: refactor X`, `task-flow: estimate X`, `task-flow: report X`.
|
|
32
|
+
- **Commands** to support: `task-flow: sync`, `task-flow: think`, `task-flow: audit`, `task-flow: check`, `task-flow: improve changes`, `task-flow: status`, `task-flow: run next X`, `task-flow: run X` (or `X,Y` / `all`), `task-flow: review X`, `task-flow: refactor X`, `task-flow: estimate X`, `task-flow: report X`, `task-flow: generate flow`.
|
|
33
33
|
- When running `task-flow: audit`: scan the codebase, score it against `.cursor/rules/coding_standards.mdc`, present a report, and ask the user which improvements to adopt — never impose changes.
|
|
34
34
|
- When running `task-flow: check`: run lint fix if present and fix lint warnings/errors; run build and fix until it passes.
|
|
35
35
|
- When running `task-flow: improve changes`: same as audit but only for files changed and not yet committed (obtain list via `git diff --name-only HEAD`, then audit only those paths).
|
package/CLAUDE.md
CHANGED
|
@@ -37,9 +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
41
|
- **Files**:
|
|
41
42
|
- `.task-flow/tasks.input.txt` - Define your tasks here
|
|
42
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`)
|
|
43
45
|
- `.task-flow/.internal/` - Internal system files (ignore)
|
|
44
46
|
|
|
45
47
|
Follow all rules defined in `.cursor/rules/` for consistent development practices.
|
package/lib/install.js
CHANGED
|
@@ -141,7 +141,18 @@ async function copyTaskFlow(targetPath) {
|
|
|
141
141
|
});
|
|
142
142
|
|
|
143
143
|
await fs.ensureDir(path.join(taskFlowDest, 'contexts'));
|
|
144
|
-
|
|
144
|
+
|
|
145
|
+
const flowPath = path.join(taskFlowDest, 'tasks.flow.md');
|
|
146
|
+
if (!fs.existsSync(flowPath)) {
|
|
147
|
+
const flowStub = [
|
|
148
|
+
'# Task Flow — Dependencies, Hours & Model Recommendations',
|
|
149
|
+
'',
|
|
150
|
+
'<!-- Populated by task-flow: generate flow. Do not edit manually. -->',
|
|
151
|
+
'<!-- Horas: dev mediano (3-5 anos), uso para cobrança ao cliente -->',
|
|
152
|
+
'',
|
|
153
|
+
].join('\n');
|
|
154
|
+
await fs.writeFile(flowPath, flowStub);
|
|
155
|
+
}
|
|
145
156
|
|
|
146
157
|
showSuccess('Task Flow directory (overwritten)');
|
|
147
158
|
showInfo('Protected: .internal/ (your task data is safe)');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rbin-task-flow",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.1",
|
|
4
4
|
"description": "AI-powered task management for Claude and Cursor",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
"cursor",
|
|
19
19
|
"cli",
|
|
20
20
|
"task-management",
|
|
21
|
-
"ai-powered"
|
|
21
|
+
"ai-powered",
|
|
22
|
+
"generate-flow",
|
|
23
|
+
"tasks-flow"
|
|
22
24
|
],
|
|
23
25
|
"author": "Rubens de Oliveira",
|
|
24
26
|
"license": "MIT",
|