rbin-task-flow 1.2.0 → 1.4.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.
package/CLAUDE.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Claude Code Instructions
2
2
 
3
+ ## Models
4
+
5
+ Claude and Cursor use the **default model** of each environment. No specific model is set in this project; do not specify or require a particular model.
6
+
3
7
  ## Development Rules
4
8
 
5
9
  All development rules are automatically loaded from `.cursor/rules/` directory. These rules include:
@@ -16,14 +20,20 @@ This project uses RBIN Task Flow for task management:
16
20
  - **Task Definition**: Edit `.task-flow/tasks.input.txt` using simple format: `- Task description`
17
21
  - **AI Commands**: Use AI-powered commands for task management:
18
22
  - `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
23
  - `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
24
+ - `task-flow: status` - View current task status
25
+ - `task-flow: run next X` - Work on next X subtasks
26
+ - `task-flow: run X` - Execute all pending subtasks of task X (simplified - no "task" needed)
27
+ - `task-flow: run X,Y` - Execute multiple tasks (comma-separated)
28
+ - `task-flow: run all` - Execute all tasks
29
+ - `task-flow: review X` - Review specific task(s) (comma-separated or "all")
30
+ - `task-flow: refactor X` - Refactor specific task(s) (comma-separated or "all")
31
+ - `task-flow: estimate X` - Estimate time for task X (simplified - no "task" needed)
32
+ - `task-flow: estimate X,Y` - Estimate multiple tasks (comma-separated)
33
+ - `task-flow: estimate all` - Estimate all tasks
34
+ - `task-flow: report X` - Generate implementation report for task X (simplified - no "task" needed)
35
+ - `task-flow: report X,Y` - Generate reports for multiple tasks (comma-separated)
36
+ - `task-flow: report all` - Generate reports for all tasks
27
37
  - **Files**:
28
38
  - `.task-flow/tasks.input.txt` - Define your tasks here
29
39
  - `.task-flow/tasks.status.md` - Auto-generated status (DO NOT EDIT manually)
package/README.md CHANGED
@@ -3,13 +3,12 @@
3
3
  <div align="center">
4
4
 
5
5
  ![Claude](https://img.shields.io/badge/Claude-Sonnet%204.5-8A2BE2?style=for-the-badge&logo=anthropic&logoColor=white)
6
- ![Gemini](https://img.shields.io/badge/Gemini-3%20Flash-4285F4?style=for-the-badge&logo=google&logoColor=white)
7
6
  ![Cursor](https://img.shields.io/badge/Cursor-IDE-blue?style=for-the-badge&logo=visual-studio-code&logoColor=white)
8
7
  ![Task Flow](https://img.shields.io/badge/Task%20Flow-AI%20Powered-green?style=for-the-badge)
9
8
  ![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)
10
9
  ![npm](https://img.shields.io/npm/v/rbin-task-flow?style=for-the-badge)
11
10
 
12
- **Configuração com um comando para Claude Code, Gemini, Cursor e RBIN Task Flow em qualquer projeto**
11
+ **Configuração com um comando para Claude Code, Cursor e RBIN Task Flow em qualquer projeto**
13
12
 
14
13
  <div style="margin-top: 20px; margin-bottom: 20px;">
15
14
  <a href="#português">🇧🇷 Português</a> | <a href="#english">🇬🇧 English</a>
@@ -36,13 +35,13 @@
36
35
 
37
36
  ## O Que É Este Projeto?
38
37
 
39
- RBIN Task Flow é um sistema de gerenciamento de tarefas alimentado por IA que configura automaticamente Claude Code, Gemini e Cursor IDE em qualquer projeto. Você define tarefas em texto simples e a IA gera subtarefas detalhadas e acionáveis automaticamente.
38
+ RBIN Task Flow é um sistema de gerenciamento de tarefas alimentado por IA que configura automaticamente Claude Code e Cursor IDE em qualquer projeto. Você define tarefas em texto simples e a IA gera subtarefas detalhadas e acionáveis automaticamente.
40
39
 
41
40
  **Principais benefícios:**
42
41
  - ✅ Instalação global NPM - instale uma vez, use em qualquer projeto
43
42
  - ✅ Zero configuração - pronto para usar imediatamente
44
43
  - ✅ Gerenciamento simples - escreva tarefas em texto, a IA faz o resto
45
- - ✅ Múltiplos modelos de IA - Claude, Gemini e Cursor configurados
44
+ - ✅ Múltiplos modelos de IA - Claude e Cursor configurados
46
45
 
47
46
  ## Instalação
48
47
 
@@ -60,7 +59,7 @@ rbin-task-flow init
60
59
  # Edite .task-flow/tasks.input.txt e use:
61
60
  # - task-flow: sync
62
61
  # - task-flow: run next X
63
- # - task-flow: run task X
62
+ # - task-flow: run X (ou task-flow: run X,Y ou task-flow: run all)
64
63
  ```
65
64
 
66
65
  **Pronto!** RBIN Task Flow agora está disponível globalmente no seu sistema.
@@ -74,25 +73,27 @@ rbin-task-flow init # Inicializa no projeto atual
74
73
  rbin-task-flow update # Atualiza configurações
75
74
  rbin-task-flow version-check # Verifica atualizações de modelos
76
75
  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
76
+ rbin-task-flow estimate <ids> # Estima tempo (ex: "1" ou "1,2" ou "all")
77
+ rbin-task-flow report <ids> # Gera relatório (ex: "1" ou "1,2" ou "all")
79
78
  ```
80
79
 
81
80
  ### Comandos da IA - Por Que Usar?
82
81
 
83
- Após inicializar, use estes comandos na IA (Cursor/Claude/Gemini) para gerenciar tarefas automaticamente:
82
+ Após inicializar, use estes comandos na IA (Cursor/Claude) para gerenciar tarefas automaticamente:
84
83
 
85
84
  | Comando | Por Que Usar | Feature Principal |
86
85
  |---------|--------------|-------------------|
87
86
  | `task-flow: sync` | **Sincroniza** tarefas do arquivo texto com o sistema | Mantém tudo sincronizado automaticamente - adiciona novas, remove deletadas, preserva seu progresso |
88
87
  | `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
88
  | `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 |
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 X` | **Completa** uma tarefa inteira de uma vez | Executa todas as subtarefas de uma tarefa específica (permite trabalho paralelo) |
91
+ | `task-flow: run X,Y` | **Completa** múltiplas tarefas | Executa tarefas separadas por vírgula (ex: `task-flow: run 10,11`) |
92
+ | `task-flow: run all` | **Completa** todas as tarefas | Executa todas as tarefas pendentes |
93
+ | `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`) |
94
+ | `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`) |
95
+ | `task-flow: estimate X` | **Estima** tempo para gestão | Calcula estimativa de tempo (ex: `task-flow: estimate 1` ou `task-flow: estimate 10,11`) |
96
+ | `task-flow: report X` | **Documenta** implementação | Gera relatório detalhado (ex: `task-flow: report 1` ou `task-flow: report 10,11`) |
96
97
 
97
98
  **Fluxo típico:**
98
99
 
@@ -114,13 +115,13 @@ cd meu-projeto && rbin-task-flow init
114
115
 
115
116
  ## Visão Geral
116
117
 
117
- Repositório centralizado de configurações e regras de desenvolvimento que podem ser instaladas instantaneamente em qualquer projeto. Fornece configuração completa para Claude Code, Gemini, Cursor IDE e RBIN Task Flow - um sistema simples de gerenciamento de tarefas alimentado por IA.
118
+ Repositório centralizado de configurações e regras de desenvolvimento que podem ser instaladas instantaneamente em qualquer projeto. Fornece configuração completa para Claude Code, Cursor IDE e RBIN Task Flow - um sistema simples de gerenciamento de tarefas alimentado por IA.
118
119
 
119
120
  ### Principais Recursos
120
121
 
121
122
  - **Instalação Global NPM** - Instale uma vez, use em qualquer lugar com `npm install -g rbin-task-flow`
122
123
  - **Gerenciamento Simples de Tarefas** - Defina tarefas em texto simples, a IA gera subtarefas detalhadas
123
- - **Múltiplos Modelos de IA** - Claude Code Sonnet e Gemini 3 Flash configurados e prontos para uso
124
+ - **Múltiplos Modelos de IA** - Claude Code Sonnet configurado e pronto para uso
124
125
  - **.gitignore Discreto** - Configurações de IA ocultas com comentários genéricos
125
126
  - **Zero Configuração** - Pronto para usar imediatamente
126
127
  - **RBIN Task Flow** - Gerenciamento de tarefas alimentado por IA com interface de texto simples
@@ -129,7 +130,7 @@ Repositório centralizado de configurações e regras de desenvolvimento que pod
129
130
 
130
131
  - **Sistema Operacional:** macOS, Linux ou Windows (WSL)
131
132
  - **Ferramentas:** Git, Bash, Node.js
132
- - **Necessário:** Claude Code CLI, acesso à API Gemini ou Cursor IDE (com assinatura Pro)
133
+ - **Necessário:** Claude Code CLI ou Cursor IDE (com assinatura Pro)
133
134
 
134
135
  ### Alternativa: Instalação Legacy (Sem NPM)
135
136
 
@@ -163,9 +164,6 @@ seu-projeto/
163
164
  ├── .claude/
164
165
  │ └── settings.json # Configurações do Claude Code
165
166
 
166
- ├── .gemini/
167
- │ └── settings.json # Configurações do Gemini
168
-
169
167
  ├── .task-flow/ # RBIN Task Flow
170
168
  │ ├── tasks.input.txt # Definições de tarefas em texto simples (edite isso!)
171
169
  │ ├── tasks.status.md # ⚠️ Status das tarefas (atualizado automaticamente, NÃO EDITE)
@@ -180,7 +178,6 @@ seu-projeto/
180
178
 
181
179
  Nenhuma configuração adicional necessária! Apenas certifique-se de ter:
182
180
  - Claude Code CLI instalado, OU
183
- - Acesso à API Gemini configurado, OU
184
181
  - Cursor IDE com assinatura Pro ativa
185
182
 
186
183
  **Você está pronto!**
@@ -205,13 +202,6 @@ O Claude Code vem pré-configurado com:
205
202
  - Integração com RBIN Task Flow
206
203
  - Melhores práticas de desenvolvimento
207
204
 
208
- ### Integração com Gemini
209
-
210
- O Gemini vem pré-configurado com:
211
- - Configurações personalizadas
212
- - Integração com RBIN Task Flow
213
- - Melhores práticas de desenvolvimento
214
-
215
205
  ## O Que Está Configurado
216
206
 
217
207
  ### Regras de Desenvolvimento
@@ -239,11 +229,9 @@ O instalador adiciona estas entradas ao `.gitignore`:
239
229
 
240
230
  ```gitignore
241
231
  .claude/
242
- .gemini/
243
232
  .cursor/
244
233
  .task-flow/
245
234
  CLAUDE.md
246
- GEMINI.md
247
235
  ```
248
236
 
249
237
  **Por que discreto?**
@@ -288,9 +276,6 @@ rbin-task-flow/
288
276
  ├── .claude/
289
277
  │ └── settings.json # Configurações do Claude Code
290
278
 
291
- ├── .gemini/
292
- │ └── settings.json # Configurações do Gemini
293
-
294
279
  ├── .task-flow/
295
280
  │ ├── README.md # Referência rápida de comandos
296
281
  │ ├── tasks.input.txt # Template de definições de tarefas
@@ -302,7 +287,6 @@ rbin-task-flow/
302
287
  ├── .gitignore # Template gitignore
303
288
  ├── .model-versions.json # Referência de versão do modelo (atualize quando novos modelos forem lançados)
304
289
  ├── CLAUDE.md # Instruções principais do Claude
305
- ├── GEMINI.md # Instruções principais do Gemini
306
290
  ├── install.sh # Script de instalação
307
291
  └── README.md # Este arquivo
308
292
  ```
@@ -313,11 +297,11 @@ rbin-task-flow/
313
297
  - ✅ Use RBIN Task Flow em **projetos que recebem** as configurações via instalação
314
298
  - 🔄 O instalador **sempre sobrescreve** configurações existentes
315
299
  - 🤫 As entradas do .gitignore são **discretas** (sem menções a IA)
316
- - 🎯 Funciona com **Claude Code CLI**, **API Gemini** ou **Cursor Pro**
300
+ - 🎯 Funciona com **Claude Code CLI** ou **Cursor Pro**
317
301
  - 📦 O diretório Task Flow (`.task-flow/`) é **automaticamente gitignored**
318
302
  - 📝 Defina tarefas em `.task-flow/tasks.input.txt` usando formato simples: `- Descrição da tarefa`
319
303
  - 🚀 **Instalação Global NPM**: `npm install -g rbin-task-flow`, depois use `rbin-task-flow init` em qualquer projeto
320
- - 🔒 **Chaves de API podem ser necessárias** - depende do seu provedor de IA (Claude Code, API Gemini ou Cursor Pro)
304
+ - 🔒 **Chaves de API podem ser necessárias** - depende do seu provedor de IA (Claude Code ou Cursor Pro)
321
305
  - 🔔 **Verificação de versão do modelo** - Use `rbin-task-flow version-check` para verificar versões mais recentes dos modelos (verificação rápida e local)
322
306
 
323
307
  ## Atualizando Versões dos Modelos
@@ -335,16 +319,11 @@ Quando novas versões de modelos forem lançadas, atualize `.model-versions.json
335
319
  "current": "claude-sonnet-4-5-20250929",
336
320
  "latest": "NOVA_VERSÃO_AQUI",
337
321
  "checkUrl": "https://docs.cursor.com/models"
338
- },
339
- "gemini": {
340
- "current": "gemini-3-flash",
341
- "latest": "NOVA_VERSÃO_AQUI",
342
- "checkUrl": "https://ai.google.dev/models/gemini"
343
322
  }
344
323
  }
345
324
  ```
346
325
 
347
- O instalador verificará automaticamente versões mais recentes dos modelos e **perguntará individualmente** se você deseja atualizar cada um (Claude, Cursor, Gemini). Esta verificação é **rápida e local** - sem chamadas de API, sem solicitações de rede, apenas uma simples comparação de strings.
326
+ O instalador verificará automaticamente versões mais recentes dos modelos e **perguntará individualmente** se você deseja atualizar cada um (Claude, Cursor). Esta verificação é **rápida e local** - sem chamadas de API, sem solicitações de rede, apenas uma simples comparação de strings.
348
327
 
349
328
  **Atualizações Interativas:** Quando uma versão mais recente estiver disponível, o instalador irá:
350
329
  - Mostrar versões atuais e mais recentes
@@ -399,13 +378,13 @@ Para problemas ou perguntas:
399
378
 
400
379
  ## What Is This Project?
401
380
 
402
- RBIN Task Flow is an AI-powered task management system that automatically configures Claude Code, Gemini, and Cursor IDE in any project. You define tasks in plain text and the AI automatically generates detailed, actionable subtasks.
381
+ RBIN Task Flow is an AI-powered task management system that automatically configures Claude Code and Cursor IDE in any project. You define tasks in plain text and the AI automatically generates detailed, actionable subtasks.
403
382
 
404
383
  **Key benefits:**
405
384
  - ✅ Global NPM installation - install once, use in any project
406
385
  - ✅ Zero configuration - ready to use immediately
407
386
  - ✅ Simple management - write tasks in text, AI does the rest
408
- - ✅ Multiple AI models - Claude, Gemini, and Cursor configured
387
+ - ✅ Multiple AI models - Claude and Cursor configured
409
388
 
410
389
  ## Installation
411
390
 
@@ -423,7 +402,7 @@ rbin-task-flow init
423
402
  # Edit .task-flow/tasks.input.txt and use:
424
403
  # - task-flow: sync
425
404
  # - task-flow: run next X
426
- # - task-flow: run task X
405
+ # - task-flow: run X (or task-flow: run X,Y or task-flow: run all)
427
406
  ```
428
407
 
429
408
  **That's it!** RBIN Task Flow is now available globally on your system.
@@ -437,25 +416,27 @@ rbin-task-flow init # Initialize in current project
437
416
  rbin-task-flow update # Update configurations
438
417
  rbin-task-flow version-check # Check for model updates
439
418
  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
419
+ rbin-task-flow estimate <ids> # Estimate time (e.g., "1" or "1,2" or "all")
420
+ rbin-task-flow report <ids> # Generate report (e.g., "1" or "1,2" or "all")
442
421
  ```
443
422
 
444
423
  ### AI Commands - Why Use Them?
445
424
 
446
- After initializing, use these commands in your AI (Cursor/Claude/Gemini) to automatically manage tasks:
425
+ After initializing, use these commands in your AI (Cursor/Claude) to automatically manage tasks:
447
426
 
448
427
  | Command | Why Use It | Key Feature |
449
428
  |---------|------------|-------------|
450
429
  | `task-flow: sync` | **Sync** tasks from text file with system | Keeps everything synchronized automatically - adds new, removes deleted, preserves your progress |
451
430
  | `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
431
  | `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 |
432
+ | `task-flow: run next X` | **Automate** work on next subtasks | AI works on next X subtasks sequentially, you just follow along |
433
+ | `task-flow: run X` | **Complete** an entire task at once | Executes all subtasks of a specific task (allows parallel work) |
434
+ | `task-flow: run X,Y` | **Complete** multiple tasks | Executes comma-separated tasks (e.g., `task-flow: run 10,11`) |
435
+ | `task-flow: run all` | **Complete** all tasks | Executes all pending tasks |
436
+ | `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`) |
437
+ | `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`) |
438
+ | `task-flow: estimate X` | **Estimate** time for management | Calculates time estimate (e.g., `task-flow: estimate 1` or `task-flow: estimate 10,11`) |
439
+ | `task-flow: report X` | **Document** implementation | Generates detailed report (e.g., `task-flow: report 1` or `task-flow: report 10,11`) |
459
440
 
460
441
  **Typical workflow:**
461
442
 
@@ -477,13 +458,13 @@ cd my-project && rbin-task-flow init
477
458
 
478
459
  ## Overview
479
460
 
480
- A centralized repository of development configurations and rules that can be instantly installed in any project. Provides complete setup for Claude Code, Gemini, Cursor IDE, and RBIN Task Flow - a simple AI-powered task management system.
461
+ A centralized repository of development configurations and rules that can be instantly installed in any project. Provides complete setup for Claude Code, Cursor IDE, and RBIN Task Flow - a simple AI-powered task management system.
481
462
 
482
463
  ### Key Features
483
464
 
484
465
  - **NPM Global Installation** - Install once, use everywhere with `npm install -g rbin-task-flow`
485
466
  - **Simple Task Management** - Define tasks in plain text, AI generates detailed subtasks
486
- - **Multiple AI Models** - Claude Code Sonnet and Gemini 3 Flash configured and ready to use
467
+ - **Multiple AI Models** - Claude Code Sonnet configured and ready to use
487
468
  - **Discrete .gitignore** - AI configs hidden with generic comments
488
469
  - **Zero Configuration** - Ready to use immediately
489
470
  - **RBIN Task Flow** - AI-powered task management with simple text interface
@@ -492,7 +473,7 @@ A centralized repository of development configurations and rules that can be ins
492
473
 
493
474
  - **Operating System:** macOS, Linux, or Windows (WSL)
494
475
  - **Tools:** Git, Bash, Node.js
495
- - **Required:** Claude Code CLI, Gemini API access, or Cursor IDE (with Pro subscription)
476
+ - **Required:** Claude Code CLI or Cursor IDE (with Pro subscription)
496
477
 
497
478
  ### Alternative: Legacy Installation (Without NPM)
498
479
 
@@ -526,9 +507,6 @@ your-project/
526
507
  ├── .claude/
527
508
  │ └── settings.json # Claude Code settings
528
509
 
529
- ├── .gemini/
530
- │ └── settings.json # Gemini settings
531
-
532
510
  ├── .task-flow/ # RBIN Task Flow
533
511
  │ ├── tasks.input.txt # Plain text task definitions (edit this!)
534
512
  │ ├── tasks.status.md # ⚠️ Task status (auto-updated, DO NOT EDIT)
@@ -543,7 +521,6 @@ your-project/
543
521
 
544
522
  No additional configuration required! Just make sure you have:
545
523
  - Claude Code CLI installed, OR
546
- - Gemini API access configured, OR
547
524
  - Cursor IDE with an active Pro subscription
548
525
 
549
526
  **You're ready!**
@@ -568,13 +545,6 @@ Claude Code is pre-configured with:
568
545
  - RBIN Task Flow integration
569
546
  - Development best practices
570
547
 
571
- ### Gemini Integration
572
-
573
- Gemini is pre-configured with:
574
- - Custom settings
575
- - RBIN Task Flow integration
576
- - Development best practices
577
-
578
548
  ## What's Configured
579
549
 
580
550
  ### Development Rules
@@ -602,11 +572,9 @@ The installer adds these entries to `.gitignore`:
602
572
 
603
573
  ```gitignore
604
574
  .claude/
605
- .gemini/
606
575
  .cursor/
607
576
  .task-flow/
608
577
  CLAUDE.md
609
- GEMINI.md
610
578
  ```
611
579
 
612
580
  **Why discrete?**
@@ -651,9 +619,6 @@ rbin-task-flow/
651
619
  ├── .claude/
652
620
  │ └── settings.json # Claude Code settings
653
621
 
654
- ├── .gemini/
655
- │ └── settings.json # Gemini settings
656
-
657
622
  ├── .task-flow/
658
623
  │ ├── README.md # Quick commands reference
659
624
  │ ├── tasks.input.txt # Task definitions template
@@ -665,7 +630,6 @@ rbin-task-flow/
665
630
  ├── .gitignore # Template gitignore
666
631
  ├── .model-versions.json # Model version reference (update when new models are released)
667
632
  ├── CLAUDE.md # Main Claude instructions
668
- ├── GEMINI.md # Main Gemini instructions
669
633
  ├── install.sh # Installation script
670
634
  └── README.md # This file
671
635
  ```
@@ -676,11 +640,11 @@ rbin-task-flow/
676
640
  - ✅ Use RBIN Task Flow in **projects that receive** the configs via installation
677
641
  - 🔄 Installer **always overwrites** existing configs
678
642
  - 🤫 .gitignore entries are **discrete** (no AI mentions)
679
- - 🎯 Works with **Claude Code CLI**, **Gemini API**, or **Cursor Pro**
643
+ - 🎯 Works with **Claude Code CLI** or **Cursor Pro**
680
644
  - 📦 Task Flow directory (`.task-flow/`) is **automatically gitignored**
681
645
  - 📝 Define tasks in `.task-flow/tasks.input.txt` using simple format: `- Task description`
682
646
  - 🚀 **NPM Global Install**: `npm install -g rbin-task-flow`, then use `rbin-task-flow init` in any project
683
- - 🔒 **API keys may be required** - depends on your AI provider (Claude Code, Gemini API, or Cursor Pro)
647
+ - 🔒 **API keys may be required** - depends on your AI provider (Claude Code or Cursor Pro)
684
648
  - 🔔 **Model version checking** - Use `rbin-task-flow version-check` to check for newer model versions (fast, local check)
685
649
 
686
650
  ## Updating Model Versions
@@ -698,16 +662,11 @@ When new model versions are released, update `.model-versions.json` in this repo
698
662
  "current": "claude-sonnet-4-5-20250929",
699
663
  "latest": "NEW_VERSION_HERE",
700
664
  "checkUrl": "https://docs.cursor.com/models"
701
- },
702
- "gemini": {
703
- "current": "gemini-3-flash",
704
- "latest": "NEW_VERSION_HERE",
705
- "checkUrl": "https://ai.google.dev/models/gemini"
706
665
  }
707
666
  }
708
667
  ```
709
668
 
710
- The installer will automatically check for newer model versions and **ask you individually** if you want to update each one (Claude, Cursor, Gemini). This check is **fast and local** - no API calls, no network requests, just a simple string comparison.
669
+ The installer will automatically check for newer model versions and **ask you individually** if you want to update each one (Claude, Cursor). This check is **fast and local** - no API calls, no network requests, just a simple string comparison.
711
670
 
712
671
  **Interactive Updates:** When a newer version is available, the installer will:
713
672
  - Show current and latest versions
package/bin/cli.js CHANGED
@@ -10,7 +10,7 @@ const chalk = require('chalk');
10
10
 
11
11
  program
12
12
  .name('rbin-task-flow')
13
- .description('AI-powered task management for Claude, Cursor, and Gemini')
13
+ .description('AI-powered task management for Claude and Cursor')
14
14
  .version(require('../package.json').version);
15
15
 
16
16
  program
@@ -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
@@ -65,15 +65,15 @@ program
65
65
  console.log('\n' + chalk.cyan('╔════════════════════════════════════════════════════════════════╗'));
66
66
  console.log(chalk.cyan('║') + ' ' + chalk.magenta('✨ RBIN Task Flow ✨') + ' ' + chalk.cyan('║'));
67
67
  console.log(chalk.cyan('╚════════════════════════════════════════════════════════════════╝') + '\n');
68
- console.log(chalk.blue('AI-powered task management for Claude, Cursor, and Gemini'));
68
+ console.log(chalk.blue('AI-powered task management for Claude and Cursor'));
69
69
  console.log(chalk.yellow('\nVersion:'), require('../package.json').version);
70
70
  console.log(chalk.yellow('Repository:'), 'https://github.com/rbinoliveira/rbin-task-flow');
71
71
  console.log(chalk.yellow('\nCommands:'));
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);