Skip to content

Commit 7f89d63

Browse files
authored
Merge pull request #289 from konecty/feat/calendar
feat(list): add calendars field to List and DocumentList schema (ADR-0004)
2 parents a7ef26b + a3e19a9 commit 7f89d63

File tree

100 files changed

+19531
-67
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+19531
-67
lines changed

.cursor/skills/README.md

Lines changed: 189 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,189 @@
1+
# Skills Konecty Backend
2+
3+
Este diretório contém as skills do projeto backend para uso com o Cursor AI.
4+
5+
## Skills Disponíveis
6+
7+
### 1. Registro de Decisão de Arquitetura (RDA)
8+
**Localização**: `.cursor/skills/registro-decisao-arquitetura/`
9+
10+
Skill para documentar decisões arquiteturais importantes seguindo o formato Nygard.
11+
12+
**Quando usar**: Ao tomar decisões significativas sobre tecnologias, padrões ou arquitetura do sistema.
13+
14+
**Como usar**: Digite `@registro-decisao-arquitetura` no Cursor ou mencione "RDA" ou "decisão de arquitetura".
15+
16+
**Recursos**:
17+
- Template completo em português
18+
- Exemplos específicos do backend
19+
- Checklist de revisão
20+
- Guia de boas práticas
21+
22+
### 2. Código Limpo
23+
**Localização**: `.cursor/skills/codigo-limpo/`
24+
25+
Princípios e padrões de código limpo específicos para o backend Node.js/TypeScript do Konecty.
26+
27+
**Quando usar**: Ao escrever ou revisar código Node.js/TypeScript backend.
28+
29+
**Como usar**: Digite `@codigo-limpo` no Cursor ou mencione "código limpo", "clean code" ou princípios como "KISS", "YAGNI", "DRY", "SOLID".
30+
31+
**Princípios cobertos**:
32+
- **KISS**: Keep It Simple, Stupid
33+
- **YAGNI**: You Aren't Gonna Need It
34+
- **DRY**: Don't Repeat Yourself
35+
- **SOLID**: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion
36+
37+
**Regras específicas**:
38+
- prefer-const (sempre use `const`)
39+
- Programação funcional (map/filter/reduce)
40+
- Evitar while(true)
41+
- no-magic-numbers
42+
- ⚠️ **p-limit para controle de concorrência** (Bluebird deprecated)
43+
- Logging estruturado com Pino
44+
- Validação com Zod
45+
- Async/await sobre callbacks
46+
47+
**Padrões backend**:
48+
- Middleware pattern
49+
- Service layer separation
50+
- ⚠️ **Error handling centralizado com express-async-errors**
51+
- Database queries eficientes
52+
- Connection pooling
53+
- Graceful shutdown
54+
- **Async patterns modernos** (for-await-of, Promise.allSettled)
55+
56+
**Atualizações recentes**:
57+
- ✅ Migração de Bluebird para p-limit (ver RDA-0001)
58+
- ✅ Error handling centralizado completo (ver RDA-0002)
59+
- ✅ Hierarquia de errors customizados
60+
- ✅ Padrões async modernos (for-await-of, Promise.allSettled)
61+
62+
### 3. Testing Patterns
63+
**Localização**: `.cursor/skills/testing-patterns/`
64+
65+
Padrões de teste para Node.js/TypeScript backend com Jest e Supertest.
66+
67+
**Quando usar**: Ao escrever testes de API, services ou revisar estratégia de testes backend.
68+
69+
**Como usar**: Digite `@testing-patterns` no Cursor ou mencione "testes", "testing", "Jest", "Supertest".
70+
71+
**Stack de testes**:
72+
- **Jest**: Test runner padrão Node.js
73+
- **Supertest**: HTTP testing para Express
74+
- **MongoDB Memory Server**: Testes isolados com MongoDB real
75+
- **Testing Pyramid**: 70% unit, 20% integration, 10% E2E
76+
77+
**Recursos**:
78+
- Setup completo com Jest + Supertest
79+
- MongoDB Memory Server configuration
80+
- Exemplos de unit e integration tests
81+
- Mocking strategies
82+
- Best practices de testes backend
83+
84+
**Documentação relacionada**: RDA-0003 (Estratégia de Testes)
85+
86+
## Como Ativar Skills
87+
88+
### Opção 1: Menção Direta
89+
Digite `@` seguido do nome da skill no chat do Cursor:
90+
```
91+
@codigo-limpo ajude-me a refatorar este código backend
92+
```
93+
94+
### Opção 2: Menção Automática
95+
As skills são ativadas automaticamente quando você menciona termos relacionados:
96+
- "decisão de arquitetura", "RDA", "ADR" → ativa `registro-decisao-arquitetura`
97+
- "código limpo", "clean code", "KISS", "DRY" → ativa `codigo-limpo`
98+
- "testes", "testing", "Jest", "Supertest" → ativa `testing-patterns`
99+
100+
## Estrutura das Skills
101+
102+
Cada skill contém:
103+
104+
```
105+
skill-name/
106+
├── SKILL.md # Documentação principal (< 500 linhas)
107+
├── examples/ # Exemplos práticos
108+
│ └── exemplos-praticos.md
109+
├── templates/ # Templates (se aplicável)
110+
└── references/ # Material de referência adicional
111+
```
112+
113+
## Criar Nova Skill
114+
115+
Para criar uma nova skill:
116+
117+
1. Use a skill de criação de skills: `@create-skill`
118+
2. Ou crie manualmente seguindo a estrutura:
119+
120+
```markdown
121+
---
122+
name: nome-da-skill
123+
description: Descrição clara do que a skill faz e quando usar (max 1024 chars)
124+
---
125+
126+
# Nome da Skill
127+
128+
## Instruções
129+
[Conteúdo da skill]
130+
```
131+
132+
## Melhores Práticas
133+
134+
### Para Skills Efetivas:
135+
1. **Concise is Key**: Mantenha SKILL.md < 500 linhas
136+
2. **Description Matters**: Escreva descrições específicas com termos-gatilho
137+
3. **Third Person**: Escreva descrições em terceira pessoa
138+
4. **Progressive Disclosure**: Use arquivos separados para detalhes
139+
5. **One Level Deep**: Links para arquivos de referência apenas um nível
140+
141+
### Para Usar Skills:
142+
1. **Seja Específico**: Mencione o contexto do problema
143+
2. **Confie na Skill**: As skills contêm expertise do projeto
144+
3. **Revise Outputs**: Sempre revise código gerado
145+
4. **Feedback**: Reporte problemas para melhorar as skills
146+
147+
## Limites de Concorrência Recomendados
148+
149+
⚠️ **Nota**: Bluebird está deprecated. Use p-limit ou alternativas nativas.
150+
151+
Ao controlar concorrência, siga estes limites:
152+
153+
```typescript
154+
// Com p-limit (Recomendado)
155+
import pLimit from 'p-limit';
156+
157+
// Operações de Banco de Dados
158+
const DB_CONCURRENCY = 10;
159+
const limit = pLimit(DB_CONCURRENCY);
160+
161+
// Chamadas de API Externa
162+
const API_CONCURRENCY = 5;
163+
164+
// Operações de I/O (arquivos)
165+
const IO_CONCURRENCY = 3;
166+
167+
// Processamento Pesado (CPU-bound)
168+
const CPU_CONCURRENCY = 2;
169+
```
170+
171+
Ver RDA-0001 para detalhes da migração de Bluebird.
172+
173+
## Recursos Adicionais
174+
175+
- [Cursor Skills Documentation](https://docs.cursor.com/skills)
176+
- [p-limit](https://www.npmjs.com/package/p-limit) - Controle de concorrência
177+
- [Pino Logger](https://getpino.io)
178+
- [Zod Validation](https://zod.dev)
179+
- [express-async-errors](https://www.npmjs.com/package/express-async-errors)
180+
181+
### ADRs Relacionados
182+
- RDA-0001: Deprecação do Bluebird
183+
- RDA-0002: Error Handling Centralizado
184+
- RDA-0003: Estratégia de Testes com Jest
185+
186+
---
187+
188+
**Mantido por**: Equipe Konecty
189+
**Última atualização**: 2026-01-26

0 commit comments

Comments
 (0)