rbin-task-flow 1.0.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/settings.json +3 -0
- package/.claude/settings.local.json +8 -0
- package/.cursor/rules/code_comments.mdc +138 -0
- package/.cursor/rules/commit_practices.mdc +141 -0
- package/.cursor/rules/cursor_rules.mdc +53 -0
- package/.cursor/rules/git_control.mdc +88 -0
- package/.cursor/rules/self_improve.mdc +72 -0
- package/.cursor/rules/task_analysis.mdc +190 -0
- package/.cursor/rules/task_execution.mdc +124 -0
- package/.cursor/rules/task_generation.mdc +118 -0
- package/.cursor/rules/task_refactor.mdc +84 -0
- package/.cursor/rules/task_review.mdc +75 -0
- package/.cursor/rules/task_status.mdc +45 -0
- package/.cursor/rules/task_work.mdc +205 -0
- package/.cursor/settings.json +3 -0
- package/.gemini/settings.json +5 -0
- package/.model-versions.json +17 -0
- package/.task-flow/README.md +66 -0
- package/.task-flow/tasks.input.txt +14 -0
- package/.task-flow/tasks.status.md +21 -0
- package/CLAUDE.md +30 -0
- package/GEMINI.md +30 -0
- package/README.md +381 -0
- package/bin/cli.js +56 -0
- package/lib/install.js +280 -0
- package/lib/utils.js +45 -0
- package/lib/version.js +114 -0
- package/package.json +51 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Regras sobre comentários em código - proibição de comentários explicativos, uso de dev-logs para documentação, e padrão para comentários de separação
|
|
3
|
+
globs: **/*
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
- **Proibição de Comentários Explicativos:**
|
|
8
|
+
- **❌ NUNCA adicionar** comentários que explicam o que o código faz
|
|
9
|
+
- **❌ NUNCA adicionar** comentários como "// This function does X" ou "// Check if user exists"
|
|
10
|
+
- **❌ NUNCA adicionar** comentários inline explicando lógica de negócio
|
|
11
|
+
- **✅ O código deve ser auto-explicativo** através de nomes claros de variáveis, funções e classes
|
|
12
|
+
|
|
13
|
+
- **Documentação em dev-logs:**
|
|
14
|
+
- **✅ Quando precisar explicar algo complexo**, criar um arquivo em `dev-logs/` na raiz do projeto
|
|
15
|
+
- **✅ Criar a pasta `dev-logs/`** se ela não existir
|
|
16
|
+
- **✅ Usar arquivos markdown** (`.md`) para documentação técnica
|
|
17
|
+
- **✅ Incluir contexto**, decisões de design, e explicações detalhadas nos arquivos de dev-logs
|
|
18
|
+
|
|
19
|
+
- **Estrutura de dev-logs:**
|
|
20
|
+
```
|
|
21
|
+
projeto/
|
|
22
|
+
└── dev-logs/
|
|
23
|
+
├── architecture-decisions.md
|
|
24
|
+
├── complex-algorithms.md
|
|
25
|
+
├── integration-notes.md
|
|
26
|
+
└── ...
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- **Quando Criar dev-logs:**
|
|
30
|
+
- Algoritmos complexos que precisam de explicação detalhada
|
|
31
|
+
- Decisões de arquitetura importantes
|
|
32
|
+
- Integrações com APIs externas complexas
|
|
33
|
+
- Workarounds ou hacks necessários
|
|
34
|
+
- Contexto histórico importante
|
|
35
|
+
- Padrões não óbvios do projeto
|
|
36
|
+
|
|
37
|
+
- **Formato dos Arquivos dev-logs:**
|
|
38
|
+
```markdown
|
|
39
|
+
# Título do Tópico
|
|
40
|
+
|
|
41
|
+
## Contexto
|
|
42
|
+
Explicação do contexto e por que isso é necessário...
|
|
43
|
+
|
|
44
|
+
## Implementação
|
|
45
|
+
Detalhes da implementação...
|
|
46
|
+
|
|
47
|
+
## Referências
|
|
48
|
+
- Link para documentação
|
|
49
|
+
- Issue relacionada
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- **Comentários de Separação Permitidos:**
|
|
53
|
+
- **✅ PERMITIDO**: Comentários que organizam e separam blocos de código
|
|
54
|
+
- **✅ SEMPRE usar** o padrão exato de separação:
|
|
55
|
+
```typescript
|
|
56
|
+
// ────────────────────────────────
|
|
57
|
+
// Prisma Types
|
|
58
|
+
// ────────────────────────────────
|
|
59
|
+
```
|
|
60
|
+
- **✅ Usar** para separar seções lógicas do código
|
|
61
|
+
- **✅ Usar** para organizar imports, tipos, constantes, etc.
|
|
62
|
+
|
|
63
|
+
- **Padrão de Comentário de Separação:**
|
|
64
|
+
```typescript
|
|
65
|
+
// ────────────────────────────────
|
|
66
|
+
// Seção ou Título
|
|
67
|
+
// ────────────────────────────────
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Características:**
|
|
71
|
+
- Linha de traços (`─`) com exatamente 31 caracteres
|
|
72
|
+
- Título centralizado entre as linhas de separação
|
|
73
|
+
- Sempre usar `//` para comentários de linha
|
|
74
|
+
- **Sem linhas em branco** entre as linhas de separação e o título
|
|
75
|
+
|
|
76
|
+
- **Exemplos de Uso Correto:**
|
|
77
|
+
|
|
78
|
+
**✅ DO: Comentário de separação**
|
|
79
|
+
```typescript
|
|
80
|
+
// ────────────────────────────────
|
|
81
|
+
// Type Definitions
|
|
82
|
+
// ────────────────────────────────
|
|
83
|
+
|
|
84
|
+
export type User = {
|
|
85
|
+
id: string;
|
|
86
|
+
name: string;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// ────────────────────────────────
|
|
90
|
+
// API Functions
|
|
91
|
+
// ────────────────────────────────
|
|
92
|
+
|
|
93
|
+
export async function fetchUser(id: string): Promise<User> {
|
|
94
|
+
// código aqui
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**❌ DON'T: Comentários explicativos**
|
|
99
|
+
```typescript
|
|
100
|
+
// ❌ DON'T: This function fetches a user from the database
|
|
101
|
+
export async function fetchUser(id: string): Promise<User> {
|
|
102
|
+
// ❌ DON'T: Check if user exists
|
|
103
|
+
const user = await db.user.findUnique({ where: { id } });
|
|
104
|
+
// ❌ DON'T: Return user or throw error
|
|
105
|
+
if (!user) throw new Error('User not found');
|
|
106
|
+
return user;
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**✅ DO: Código auto-explicativo + dev-logs se necessário**
|
|
111
|
+
```typescript
|
|
112
|
+
export async function fetchUserById(id: string): Promise<User> {
|
|
113
|
+
const user = await db.user.findUnique({ where: { id } });
|
|
114
|
+
if (!user) throw new UserNotFoundError(id);
|
|
115
|
+
return user;
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Se a lógica for complexa, criar `dev-logs/user-fetching.md` com explicações.
|
|
120
|
+
|
|
121
|
+
- **Criação Automática de dev-logs:**
|
|
122
|
+
- **Sempre verificar** se `dev-logs/` existe antes de criar arquivo
|
|
123
|
+
- **Criar a pasta** se não existir: `mkdir -p dev-logs`
|
|
124
|
+
- **Usar nomes descritivos** para os arquivos: `kebab-case.md`
|
|
125
|
+
- **Incluir data** no conteúdo do arquivo quando relevante
|
|
126
|
+
|
|
127
|
+
- **Exceções e Casos Especiais:**
|
|
128
|
+
- **NENHUMA EXCEÇÃO** para comentários explicativos no código
|
|
129
|
+
- Comentários de separação **sempre** seguem o padrão exato
|
|
130
|
+
- Documentação complexa **sempre** vai para `dev-logs/`
|
|
131
|
+
|
|
132
|
+
- **Integração com Outras Regras:**
|
|
133
|
+
- [cursor_rules.mdc](mdc:.cursor/rules/cursor_rules.mdc) - Formatação de regras
|
|
134
|
+
- [self_improve.mdc](mdc:.cursor/rules/self_improve.mdc) - Melhoria contínua
|
|
135
|
+
- [commit_practices.mdc](mdc:.cursor/rules/commit_practices.mdc) - Commits podem referenciar dev-logs
|
|
136
|
+
|
|
137
|
+
- **Princípio Fundamental:**
|
|
138
|
+
> **O código deve ser auto-explicativo. Se algo precisa de explicação, documente em dev-logs/, não no código. Use comentários apenas para organização visual seguindo o padrão exato.**
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Práticas de commit após conclusão de tarefas e subtarefas, incluindo sugestões automáticas de mensagens
|
|
3
|
+
globs: **/*
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
- **Notificação e Sugestão de Commit Após Tarefas:**
|
|
8
|
+
- **Sempre avisar o usuário** quando uma task ou subtask for marcada como `done`
|
|
9
|
+
- **Sugerir uma mensagem de commit** baseada nas mudanças realizadas
|
|
10
|
+
- **Incluir contexto** da task/subtask na sugestão de commit
|
|
11
|
+
- **CRÍTICO: NUNCA executar comandos git** - apenas sugerir, o usuário executa
|
|
12
|
+
|
|
13
|
+
- **Quando Aplicar:**
|
|
14
|
+
- Após `set_task_status` com status `done` para qualquer task ou subtask
|
|
15
|
+
- Após implementação completa de uma subtask
|
|
16
|
+
- Após conclusão de uma task pai (quando todas subtasks estiverem done)
|
|
17
|
+
|
|
18
|
+
- **Formato da Sugestão de Commit:**
|
|
19
|
+
```bash
|
|
20
|
+
# ✅ DO: Formato recomendado
|
|
21
|
+
git commit -m "feat(module): Descrição curta da mudança
|
|
22
|
+
|
|
23
|
+
- Detalhes da implementação
|
|
24
|
+
- Task/Subtask ID: X.Y
|
|
25
|
+
- Mudanças principais realizadas"
|
|
26
|
+
|
|
27
|
+
# Exemplo real:
|
|
28
|
+
git commit -m "feat(auth): Implement user login validation
|
|
29
|
+
|
|
30
|
+
- Add email format validation
|
|
31
|
+
- Add password strength checks
|
|
32
|
+
- Task ID: 3.2"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- **Processo de Sugestão:**
|
|
36
|
+
1. **Analisar mudanças**: Usar `git status` e `git diff` para identificar arquivos modificados (apenas leitura, nunca modificar)
|
|
37
|
+
2. **Extrair contexto da task**: Incluir ID da task/subtask e título/descrição
|
|
38
|
+
3. **Gerar mensagem**: Criar mensagem seguindo conventional commits
|
|
39
|
+
4. **Apresentar ao usuário**: Mostrar sugestão formatada e pronta para uso
|
|
40
|
+
5. **NUNCA executar**: Apenas sugerir, o usuário decide quando e como fazer o commit
|
|
41
|
+
|
|
42
|
+
- **Tipos de Commit (Conventional Commits):**
|
|
43
|
+
- `feat`: Nova funcionalidade (task completa)
|
|
44
|
+
- `fix`: Correção de bug
|
|
45
|
+
- `refactor`: Refatoração sem mudança de comportamento
|
|
46
|
+
- `docs`: Mudanças em documentação
|
|
47
|
+
- `style`: Formatação, ponto e vírgula, etc (sem mudança de código)
|
|
48
|
+
- `test`: Adição ou correção de testes
|
|
49
|
+
- `chore`: Mudanças em build, dependências, etc
|
|
50
|
+
|
|
51
|
+
- **Estrutura da Mensagem Sugerida:**
|
|
52
|
+
```bash
|
|
53
|
+
<tipo>(<escopo>): <descrição curta>
|
|
54
|
+
|
|
55
|
+
<corpo opcional com detalhes>
|
|
56
|
+
- Task/Subtask: <ID>
|
|
57
|
+
- Arquivos modificados: <lista resumida>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- **Exemplos de Sugestões:**
|
|
61
|
+
|
|
62
|
+
**Para subtask de implementação:**
|
|
63
|
+
```bash
|
|
64
|
+
git commit -m "feat(api): Add user authentication endpoint
|
|
65
|
+
|
|
66
|
+
- Implement POST /api/auth/login
|
|
67
|
+
- Add JWT token generation
|
|
68
|
+
- Add input validation middleware
|
|
69
|
+
- Subtask ID: 5.3"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Para task completa:**
|
|
73
|
+
```bash
|
|
74
|
+
git commit -m "feat(dashboard): Complete user analytics dashboard
|
|
75
|
+
|
|
76
|
+
- Add real-time metrics display
|
|
77
|
+
- Implement chart visualizations
|
|
78
|
+
- Add data export functionality
|
|
79
|
+
- Task ID: 7"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Para correção:**
|
|
83
|
+
```bash
|
|
84
|
+
git commit -m "fix(auth): Resolve token expiration issue
|
|
85
|
+
|
|
86
|
+
- Fix JWT refresh logic
|
|
87
|
+
- Update token validation
|
|
88
|
+
- Subtask ID: 8.1"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
- **Comandos Úteis para Análise:**
|
|
92
|
+
- `git status --short` - Lista arquivos modificados de forma compacta
|
|
93
|
+
- `git diff --stat` - Estatísticas de mudanças
|
|
94
|
+
- `git diff --name-only` - Apenas nomes dos arquivos modificados
|
|
95
|
+
- `git log --oneline -5` - Últimos commits para contexto
|
|
96
|
+
|
|
97
|
+
- **Quando NÃO Sugerir Commit:**
|
|
98
|
+
- ❌ DON'T: Se não houver mudanças no git (nenhum arquivo modificado)
|
|
99
|
+
- ❌ DON'T: Se o usuário já fez commit recentemente (últimos 5 minutos)
|
|
100
|
+
- ❌ DON'T: Se houver conflitos de merge não resolvidos
|
|
101
|
+
- ❌ DON'T: Se o repositório não for um git repo
|
|
102
|
+
|
|
103
|
+
- **Apresentação da Sugestão:**
|
|
104
|
+
- **Sempre notificar o usuário** quando uma task/subtask for concluída com mensagem clara e emoji ✅
|
|
105
|
+
- **Mostrar sugestão formatada** pronta para copiar/colar
|
|
106
|
+
- **Incluir estatísticas** das mudanças (arquivos modificados, linhas adicionadas/removidas)
|
|
107
|
+
|
|
108
|
+
**Exemplo de apresentação:**
|
|
109
|
+
```markdown
|
|
110
|
+
✅ Task 3.2 concluída!
|
|
111
|
+
|
|
112
|
+
📝 Sugestão de commit:
|
|
113
|
+
```bash
|
|
114
|
+
git commit -m "feat(module): Descrição da mudança
|
|
115
|
+
|
|
116
|
+
- Detalhe 1
|
|
117
|
+
- Detalhe 2
|
|
118
|
+
- Task ID: 3.2"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
📊 Mudanças detectadas:
|
|
122
|
+
- 3 arquivos modificados
|
|
123
|
+
- 45 linhas adicionadas, 12 removidas
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
- **Integração com RBIN Task Flow:**
|
|
127
|
+
- Após marcar uma task como concluída, automaticamente:
|
|
128
|
+
1. Verificar se há mudanças no git
|
|
129
|
+
2. Analisar arquivos modificados
|
|
130
|
+
3. Gerar sugestão de commit baseada na task
|
|
131
|
+
4. Apresentar ao usuário de forma clara
|
|
132
|
+
|
|
133
|
+
- **Controle Git:**
|
|
134
|
+
- **NUNCA executar comandos git** - apenas sugerir
|
|
135
|
+
- Seguir [git_control.mdc](mdc:.cursor/rules/git_control.mdc) para controle total do usuário sobre git
|
|
136
|
+
- Apresentar sugestões prontas para o usuário copiar e executar
|
|
137
|
+
|
|
138
|
+
- **Referências:**
|
|
139
|
+
- Seguir padrões de [Conventional Commits](https://www.conventionalcommits.org/)
|
|
140
|
+
- Integrar com workflow do RBIN Task Flow
|
|
141
|
+
- Controle git: [git_control.mdc](mdc:.cursor/rules/git_control.mdc)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Guidelines for creating and maintaining Cursor rules to ensure consistency and effectiveness.
|
|
3
|
+
globs: .cursor/rules/*.mdc
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
- **Required Rule Structure:**
|
|
8
|
+
```markdown
|
|
9
|
+
---
|
|
10
|
+
description: Clear, one-line description of what the rule enforces
|
|
11
|
+
globs: path/to/files/*.ext, other/path/**/*
|
|
12
|
+
alwaysApply: boolean
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
- **Main Points in Bold**
|
|
16
|
+
- Sub-points with details
|
|
17
|
+
- Examples and explanations
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
- **File References:**
|
|
21
|
+
- Use `[filename](mdc:path/to/file)` ([filename](mdc:filename)) to reference files
|
|
22
|
+
- Example: [prisma.mdc](mdc:.cursor/rules/prisma.mdc) for rule references
|
|
23
|
+
- Example: [schema.prisma](mdc:prisma/schema.prisma) for code references
|
|
24
|
+
|
|
25
|
+
- **Code Examples:**
|
|
26
|
+
- Use language-specific code blocks
|
|
27
|
+
```typescript
|
|
28
|
+
// ✅ DO: Show good examples
|
|
29
|
+
const goodExample = true;
|
|
30
|
+
|
|
31
|
+
// ❌ DON'T: Show anti-patterns
|
|
32
|
+
const badExample = false;
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- **Rule Content Guidelines:**
|
|
36
|
+
- Start with high-level overview
|
|
37
|
+
- Include specific, actionable requirements
|
|
38
|
+
- Show examples of correct implementation
|
|
39
|
+
- Reference existing code when possible
|
|
40
|
+
- Keep rules DRY by referencing other rules
|
|
41
|
+
|
|
42
|
+
- **Rule Maintenance:**
|
|
43
|
+
- Update rules when new patterns emerge
|
|
44
|
+
- Add examples from actual codebase
|
|
45
|
+
- Remove outdated patterns
|
|
46
|
+
- Cross-reference related rules
|
|
47
|
+
|
|
48
|
+
- **Best Practices:**
|
|
49
|
+
- Use bullet points for clarity
|
|
50
|
+
- Keep descriptions concise
|
|
51
|
+
- Include both DO and DON'T examples
|
|
52
|
+
- Reference actual code over theoretical examples
|
|
53
|
+
- Use consistent formatting across rules
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Controle total do usuário sobre comandos Git - o AI nunca executa comandos git, mas pode executar qualquer outro comando sem perguntar
|
|
3
|
+
globs: **/*
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
- **Permissão Geral de Comandos:**
|
|
8
|
+
- **✅ PODE executar** qualquer comando do sistema sem perguntar
|
|
9
|
+
- **✅ PODE executar** npm, yarn, pnpm, docker, etc sem confirmação
|
|
10
|
+
- **✅ PODE executar** scripts, testes, linters, formatters sem perguntar
|
|
11
|
+
- **✅ NÃO precisa perguntar** antes de executar comandos simples ou comuns
|
|
12
|
+
- **❌ ÚNICA EXCEÇÃO**: Comandos `git` que modificam o repositório
|
|
13
|
+
|
|
14
|
+
- **Comandos de Leitura - Execução Automática:**
|
|
15
|
+
- **✅ SEMPRE executar sem perguntar** comandos que apenas leem informações:
|
|
16
|
+
- `cat`, `head`, `tail`, `less`, `more` - Visualização de arquivos
|
|
17
|
+
- `grep`, `find`, `ls`, `tree` - Busca e listagem
|
|
18
|
+
- `wc`, `stat`, `file` - Informações sobre arquivos
|
|
19
|
+
- `read_file` (ferramenta) - Leitura de arquivos
|
|
20
|
+
- Qualquer comando que **não modifica** arquivos ou sistema
|
|
21
|
+
- **✅ NUNCA perguntar** antes de executar comandos de leitura
|
|
22
|
+
- **✅ Executar imediatamente** sem esperar confirmação do usuário
|
|
23
|
+
|
|
24
|
+
- **Proibição Absoluta de Executar Comandos Git:**
|
|
25
|
+
- **❌ NUNCA executar** comandos `git` automaticamente
|
|
26
|
+
- **❌ NUNCA fazer** `git add`, `git commit`, `git push`, `git pull`, `git merge`, etc
|
|
27
|
+
- **❌ NUNCA modificar** o estado do repositório git
|
|
28
|
+
- **✅ APENAS sugerir** comandos git quando apropriado
|
|
29
|
+
- **✅ APENAS ler** informações do git (git status, git diff, git log) para análise
|
|
30
|
+
|
|
31
|
+
- **Comandos Git Permitidos (Apenas Leitura):**
|
|
32
|
+
- ✅ `git status` - Para verificar estado do repositório
|
|
33
|
+
- ✅ `git diff` - Para analisar mudanças
|
|
34
|
+
- ✅ `git log` - Para ver histórico
|
|
35
|
+
- ✅ `git show` - Para ver detalhes de commits
|
|
36
|
+
- ✅ `git branch` - Para listar branches (sem criar/modificar)
|
|
37
|
+
- ✅ Qualquer comando git que **apenas lê** informações
|
|
38
|
+
|
|
39
|
+
- **Comandos Git Proibidos (Nunca Executar):**
|
|
40
|
+
- ❌ `git add` - O usuário adiciona arquivos
|
|
41
|
+
- ❌ `git commit` - O usuário faz commits
|
|
42
|
+
- ❌ `git push` - O usuário faz push
|
|
43
|
+
- ❌ `git pull` - O usuário faz pull
|
|
44
|
+
- ❌ `git merge` - O usuário faz merge
|
|
45
|
+
- ❌ `git checkout` - O usuário muda branches
|
|
46
|
+
- ❌ `git branch -d` ou `-D` - O usuário deleta branches
|
|
47
|
+
- ❌ `git reset` - O usuário faz reset
|
|
48
|
+
- ❌ `git rebase` - O usuário faz rebase
|
|
49
|
+
- ❌ `git tag` - O usuário cria tags
|
|
50
|
+
- ❌ Qualquer comando que **modifique** o repositório
|
|
51
|
+
|
|
52
|
+
- **Quando Sugerir Comandos Git:**
|
|
53
|
+
- ✅ Após conclusão de task/subtask - sugerir mensagem de commit
|
|
54
|
+
- ✅ Quando há mudanças não commitadas - sugerir commit
|
|
55
|
+
- ✅ Quando há conflitos - sugerir resolução (mas não executar)
|
|
56
|
+
- ✅ Quando precisa atualizar - sugerir pull (mas não executar)
|
|
57
|
+
- ✅ Sempre apresentar como **sugestão**, nunca executar
|
|
58
|
+
|
|
59
|
+
- **Formato de Sugestões:**
|
|
60
|
+
```markdown
|
|
61
|
+
✅ Task concluída!
|
|
62
|
+
|
|
63
|
+
📝 Sugestão de commit (você executa):
|
|
64
|
+
```bash
|
|
65
|
+
git add .
|
|
66
|
+
git commit -m "feat(module): Descrição"
|
|
67
|
+
```
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**NUNCA fazer:**
|
|
71
|
+
```bash
|
|
72
|
+
# ❌ DON'T: Executar automaticamente
|
|
73
|
+
git add .
|
|
74
|
+
git commit -m "..."
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- **Exceções e Casos Especiais:**
|
|
78
|
+
- **NENHUMA EXCEÇÃO para git**: Esta regra é absoluta para comandos git
|
|
79
|
+
- **Para comandos não-git**: Execute diretamente sem perguntar
|
|
80
|
+
- **Para comandos git**: Mesmo que o usuário peça explicitamente, **sempre sugerir** ao invés de executar
|
|
81
|
+
- Se houver dúvida sobre um comando ser git ou não, verificar se começa com `git` antes de executar
|
|
82
|
+
|
|
83
|
+
- **Integração com Outras Regras:**
|
|
84
|
+
- [commit_practices.mdc](mdc:.cursor/rules/commit_practices.mdc) - Sugerir commits, nunca executar
|
|
85
|
+
- Workflow do RBIN Task Flow não deve incluir execução automática de git
|
|
86
|
+
|
|
87
|
+
- **Princípio Fundamental:**
|
|
88
|
+
> **O usuário tem controle total sobre o repositório Git. O AI pode executar qualquer comando do sistema sem perguntar, EXCETO comandos git. Para git, apenas sugere, analisa e informa. Nunca modifica o estado do git.**
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Guidelines for continuously improving Cursor rules based on emerging code patterns and best practices.
|
|
3
|
+
globs: **/*
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
- **Rule Improvement Triggers:**
|
|
8
|
+
- New code patterns not covered by existing rules
|
|
9
|
+
- Repeated similar implementations across files
|
|
10
|
+
- Common error patterns that could be prevented
|
|
11
|
+
- New libraries or tools being used consistently
|
|
12
|
+
- Emerging best practices in the codebase
|
|
13
|
+
|
|
14
|
+
- **Analysis Process:**
|
|
15
|
+
- Compare new code with existing rules
|
|
16
|
+
- Identify patterns that should be standardized
|
|
17
|
+
- Look for references to external documentation
|
|
18
|
+
- Check for consistent error handling patterns
|
|
19
|
+
- Monitor test patterns and coverage
|
|
20
|
+
|
|
21
|
+
- **Rule Updates:**
|
|
22
|
+
- **Add New Rules When:**
|
|
23
|
+
- A new technology/pattern is used in 3+ files
|
|
24
|
+
- Common bugs could be prevented by a rule
|
|
25
|
+
- Code reviews repeatedly mention the same feedback
|
|
26
|
+
- New security or performance patterns emerge
|
|
27
|
+
|
|
28
|
+
- **Modify Existing Rules When:**
|
|
29
|
+
- Better examples exist in the codebase
|
|
30
|
+
- Additional edge cases are discovered
|
|
31
|
+
- Related rules have been updated
|
|
32
|
+
- Implementation details have changed
|
|
33
|
+
|
|
34
|
+
- **Example Pattern Recognition:**
|
|
35
|
+
```typescript
|
|
36
|
+
// If you see repeated patterns like:
|
|
37
|
+
const data = await prisma.user.findMany({
|
|
38
|
+
select: { id: true, email: true },
|
|
39
|
+
where: { status: 'ACTIVE' }
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Consider adding to [prisma.mdc](mdc:.cursor/rules/prisma.mdc):
|
|
43
|
+
// - Standard select fields
|
|
44
|
+
// - Common where conditions
|
|
45
|
+
// - Performance optimization patterns
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- **Rule Quality Checks:**
|
|
49
|
+
- Rules should be actionable and specific
|
|
50
|
+
- Examples should come from actual code
|
|
51
|
+
- References should be up to date
|
|
52
|
+
- Patterns should be consistently enforced
|
|
53
|
+
|
|
54
|
+
- **Continuous Improvement:**
|
|
55
|
+
- Monitor code review comments
|
|
56
|
+
- Track common development questions
|
|
57
|
+
- Update rules after major refactors
|
|
58
|
+
- Add links to relevant documentation
|
|
59
|
+
- Cross-reference related rules
|
|
60
|
+
|
|
61
|
+
- **Rule Deprecation:**
|
|
62
|
+
- Mark outdated patterns as deprecated
|
|
63
|
+
- Remove rules that no longer apply
|
|
64
|
+
- Update references to deprecated rules
|
|
65
|
+
- Document migration paths for old patterns
|
|
66
|
+
|
|
67
|
+
- **Documentation Updates:**
|
|
68
|
+
- Keep examples synchronized with code
|
|
69
|
+
- Update references to external docs
|
|
70
|
+
- Maintain links between related rules
|
|
71
|
+
- Document breaking changes
|
|
72
|
+
Follow [cursor_rules.mdc](mdc:.cursor/rules/cursor_rules.mdc) for proper rule formatting and structure.
|