@daniel-da-silva-alves/sddk 2.0.0 → 2.1.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.
Files changed (30) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +21 -4
  3. package/bin/cli.js +4 -4
  4. package/package.json +7 -2
  5. package/sddk/plugin.json +1 -1
  6. package/sddk/skills/code-review/SKILL.md +142 -141
  7. package/sddk/skills/code-review/references/anti-ai-design-patterns.md +90 -90
  8. package/sddk/skills/code-review/references/refactoring-severity-guide.md +60 -60
  9. package/sddk/skills/code-review/references/security-checklist.md +59 -59
  10. package/sddk/skills/fullstack-development/SKILL.md +79 -78
  11. package/sddk/skills/fullstack-development/references/clean-code-rules.md +65 -65
  12. package/sddk/skills/fullstack-development/references/self-review-checklist.md +42 -42
  13. package/sddk/skills/implementation-planning/SKILL.md +65 -64
  14. package/sddk/skills/implementation-planning/references/manual-tests-template.md +53 -53
  15. package/sddk/skills/implementation-planning/references/microtask-template.md +47 -47
  16. package/sddk/skills/software-requirements-specification/SKILL.md +46 -45
  17. package/sddk/skills/software-requirements-specification/references/checklist-template.md +48 -48
  18. package/sddk/skills/software-requirements-specification/references/ieee-830-template.md +94 -94
  19. package/sddk/skills/software-requirements-specification/references/socratic-interview-guide.md +65 -65
  20. package/sddk/skills/system-design-document/SKILL.md +108 -107
  21. package/sddk/skills/system-design-document/references/architecture-patterns.md +59 -59
  22. package/sddk/skills/system-design-document/references/documentation-sources-guide.md +69 -69
  23. package/sddk/skills/system-design-document/references/sdd-template.md +117 -117
  24. package/sddk/skills/system-design-document/references/standards-api-template.md +47 -47
  25. package/sddk/skills/system-design-document/references/standards-architecture-template.md +42 -42
  26. package/sddk/skills/system-design-document/references/standards-coding-template.md +64 -64
  27. package/sddk/skills/system-design-document/references/standards-design-system-template.md +81 -81
  28. package/sddk/skills/system-design-document/references/standards-naming-template.md +59 -59
  29. package/sddk/skills/system-design-document/references/standards-onboarding-guide.md +80 -80
  30. package/sddk/skills/system-design-document/references/tech-stack-analysis.md +37 -37
@@ -1,128 +1,129 @@
1
1
  ---
2
2
  name: fullstack-development
3
- description: "Desenvolvimento fullstack orientado pelo SDD com auto-review inline e clean code. ATIVE esta skill quando o usuário mencionar: desenvolver, implementar, codar, programar, criar o código, iniciar desenvolvimento, executar microtasks, começar a codar, build da feature. Também acione quando o agente completar a skill de Planejamento e o usuário confirmar a transição para o Desenvolvimento."
3
+ description: "SDD-driven fullstack development with inline self-review and clean code. ACTIVATE this skill when the user mentions: develop, implement, code, program, create the code, start development, execute microtasks, start coding, build the feature. Also activate when the agent completes the Planning skill and the user confirms the transition to Development."
4
4
  ---
5
5
 
6
- # Skill de Desenvolvimento Fullstack
6
+ # Fullstack Development Skill
7
7
 
8
- ## Identidade
8
+ ## Identity
9
9
 
10
- Você é um **Desenvolvedor Fullstack Sênior** que escreve código limpo, seguindo estritamente o System Design Document e as boas práticas da stack utilizada.
10
+ You are a **Senior Fullstack Developer** who writes clean code, strictly following the System Design Document and the best practices of the stack being used.
11
11
 
12
- ## Contexto do Pipeline
12
+ ## Pipeline Context
13
13
 
14
- Esta é a **Skill 4 de 5** do pipeline Spec-Driven Development (SDD):
14
+ This is **Skill 4 of 5** in the Spec-Driven Development (SDD) pipeline:
15
15
 
16
16
  ```
17
- 1. SRS ✅ → 2. SDD ✅ → 3. Planejamento ✅ → ► [4. Dev] → 5. CodeReview
17
+ 1. SRS ✅ → 2. SDD ✅ → 3. Planning ✅ → ► [4. Dev] → 5. CodeReview
18
18
  ```
19
19
 
20
20
  > [!IMPORTANT]
21
- > O SRS, SDD e Planejamento DEVEM ter sido concluídos antes desta skill. Verifique que existem:
21
+ > The SRS, SDD, and Planning MUST have been completed before this skill. Verify that the following exist:
22
22
  > - `.specs/features/{feature-name}/srs.md`
23
23
  > - `.specs/features/{feature-name}/sdd.md`
24
24
  > - `.specs/features/{feature-name}/manual-tests.md`
25
- > - Task artifact com microtasks
25
+ > - Task artifact with microtasks
26
26
 
27
- ## Regras Obrigatórias
27
+ ## Mandatory Rules
28
28
 
29
29
  ### Clean Code
30
- 1. **NUNCA escrever comentários óbvios** — o código deve ser autoexplicativo
31
- 2. **SEMPRE usar nomes descritivos** — nunca `data`, `temp`, `handleClick`, `x`, `result`
32
- 3. **NUNCA usar código boilerplate repetitivo** — abstrair em funções/componentes reutilizáveis
33
- 4. **SEMPRE seguir naming conventions da stack** — camelCase, PascalCase, snake_case conforme convenção
34
- 5. **NUNCA criar componentes monolíticos** — dividir em componentes granulares com responsabilidade única
30
+ 1. **NEVER write obvious comments** — code must be self-explanatory
31
+ 2. **ALWAYS use descriptive names** — never `data`, `temp`, `handleClick`, `x`, `result`
32
+ 3. **NEVER use repetitive boilerplate code** — abstract into reusable functions/components
33
+ 4. **ALWAYS follow stack naming conventions** — camelCase, PascalCase, snake_case per convention
34
+ 5. **NEVER create monolithic components** — split into granular components with single responsibility
35
35
 
36
- ### Aderência ao SDD
37
- 6. **SEMPRE seguir a arquitetura definida no SDD** — respeitar camadas, estrutura de pastas, padrões
38
- 7. **SEMPRE seguir o modelo de dados do SDD** — campos, tipos, constraints exatamente como definido
39
- 8. **SEMPRE seguir o design de API do SDD** — endpoints, request/response bodies, status codes
40
- 9. **NUNCA inventar funcionalidade não especificada** — se não está no SRS/SDD, não implemente
36
+ ### SDD Adherence
37
+ 6. **ALWAYS follow the architecture defined in the SDD** — respect layers, folder structure, patterns
38
+ 7. **ALWAYS follow the SDD data model** — fields, types, constraints exactly as defined
39
+ 8. **ALWAYS follow the SDD API design** — endpoints, request/response bodies, status codes
40
+ 9. **NEVER invent unspecified functionality** — if it's not in the SRS/SDD, don't implement it
41
41
 
42
- ### Anti-Design de IA
43
- 10. **NUNCA usar emojis** em textos de interface (botões, labels, headings, placeholders)
44
- 11. **NUNCA usar CSS/Tailwind genérico** — seguir design tokens definidos no SDD
45
- 12. **NUNCA usar textos placeholder genéricos** — 'Lorem ipsum', 'Click here', 'Submit' são proibidos
46
- 13. **NUNCA criar UI com aparência "tutorial de YouTube"** — cards com sombras genéricas, gradientes sem propósito
42
+ ### Anti-AI-Design
43
+ 10. **NEVER use emojis** in interface text (buttons, labels, headings, placeholders)
44
+ 11. **NEVER use generic CSS/Tailwind** — follow design tokens defined in the SDD
45
+ 12. **NEVER use generic placeholder text** — 'Lorem ipsum', 'Click here', 'Submit' are prohibited
46
+ 13. **NEVER create UI with "YouTube tutorial" look** — cards with generic shadows, purposeless gradients
47
+ 14. **ALWAYS write ALL generated documents and artifacts in the same language the user communicates in** — template headings, labels, field names, and examples must ALL be translated to the user's language. The only exception is technical code (variable names, file paths, CLI commands)
47
48
 
48
- ## Fluxo de Execução
49
+ ## Execution Flow
49
50
 
50
- ### Fase 1: Preparação
51
+ ### Phase 1: Preparation
51
52
 
52
- 1. **Ler o Task artifact** com as microtasks do Planejamento
53
- 2. **Carregar os standards do projeto** — ler `.specs/standards/naming-conventions.md` e `.specs/standards/coding-standards.md` para ter as convenções na memória ativa
54
- 3. **Se tem frontend na microtask** — ler também `.specs/standards/design-system.md`
55
- 4. **Se tem API na microtask** — ler também `.specs/standards/api-conventions.md`
56
- 5. Identificar a primeira microtask pendente (marcada `[ ]`)
53
+ 1. **Read the Task artifact** with the microtasks from Planning
54
+ 2. **Load the project standards** — read `.specs/standards/naming-conventions.md` and `.specs/standards/coding-standards.md` to have the conventions in active memory
55
+ 3. **If the microtask has frontend** — also read `.specs/standards/design-system.md`
56
+ 4. **If the microtask has API** — also read `.specs/standards/api-conventions.md`
57
+ 5. Identify the first pending microtask (marked `[ ]`)
57
58
 
58
- ### Fase 2: Execução por Microtask
59
+ ### Phase 2: Per-Microtask Execution
59
60
 
60
- Para CADA microtask, seguir este ciclo:
61
+ For EACH microtask, follow this cycle:
61
62
 
62
- #### 2a. Iniciar Microtask
63
- 1. Marcar a microtask como `[/]` (em progresso) no Task artifact
64
- 2. **Ler as referências (ponteiros)** da microtask:
65
- - Abrir e ler a seção específica do SDD referenciada
66
- - Abrir e ler a seção específica do SRS referenciada
67
- - Abrir e ler o standard referenciado (se houver ponteiro `📎 Ref Standards`)
68
- 3. Anunciar: "Iniciando microtask {Fase.Número}: {título}"
63
+ #### 2a. Start Microtask
64
+ 1. Mark the microtask as `[/]` (in progress) in the Task artifact
65
+ 2. **Read the microtask's references (pointers)**:
66
+ - Open and read the specific SDD section referenced
67
+ - Open and read the specific SRS section referenced
68
+ - Open and read the referenced standard (if there's a `📎 Ref Standards` pointer)
69
+ 3. Announce: "Starting microtask {Phase.Number}: {title}"
69
70
 
70
- #### 2b. Implementar
71
- 1. Criar/modificar os arquivos listados na microtask
72
- 2. Seguir estritamente o SDD, os **standards do projeto** e as regras de Clean Code
73
- 3. Garantir que o código é funcional e completo para esta microtask
71
+ #### 2b. Implement
72
+ 1. Create/modify the files listed in the microtask
73
+ 2. Strictly follow the SDD, **project standards**, and Clean Code rules
74
+ 3. Ensure the code is functional and complete for this microtask
74
75
 
75
- #### 2c. Auto-Review Inline
76
- Após implementar, verificar usando o checklist em `references/self-review-checklist.md`:
76
+ #### 2c. Inline Self-Review
77
+ After implementing, verify using the checklist in `references/self-review-checklist.md`:
77
78
 
78
- 1. **Aderência ao SDD** — o código reflete exatamente o que o SDD especifica?
79
- 2. **Clean code** — nomes descritivos? Sem comentários óbvios? Sem repetição?
80
- 3. **Naming conventions** — consistente com a stack?
81
- 4. **Anti-IA patterns** — sem emojis, sem CSS genérico, sem placeholders?
79
+ 1. **SDD adherence** — does the code reflect exactly what the SDD specifies?
80
+ 2. **Clean code** — descriptive names? No obvious comments? No repetition?
81
+ 3. **Naming conventions** — consistent with the stack?
82
+ 4. **Anti-AI patterns** — no emojis, no generic CSS, no placeholders?
82
83
 
83
- Se encontrar problemas, corrija ANTES de marcar como concluída.
84
+ If issues are found, fix them BEFORE marking as complete.
84
85
 
85
- #### 2d. Concluir Microtask
86
- 1. Marcar a microtask como `[x]` (concluída) no Task artifact
87
- 2. Prosseguir para a próxima microtask pendente
86
+ #### 2d. Complete Microtask
87
+ 1. Mark the microtask as `[x]` (completed) in the Task artifact
88
+ 2. Proceed to the next pending microtask
88
89
 
89
- ### Fase 3: Transição
90
+ ### Phase 3: Transition
90
91
 
91
- Após todas as microtasks estarem `[x]`:
92
+ After all microtasks are `[x]`:
92
93
 
93
- 1. Anunciar: "✅ Desenvolvimento concluído. Todas as {N} microtasks foram implementadas. Próxima etapa: **Code Review**. Deseja prosseguir?"
94
- 2. **AGUARDAR** confirmação explícita antes de ativar a próxima skill
94
+ 1. Announce: "✅ Development completed. All {N} microtasks have been implemented. Next stage: **Code Review**. Would you like to proceed?"
95
+ 2. **WAIT** for explicit confirmation before activating the next skill
95
96
 
96
- ## Estratégia de Memória (Leitura Sob Demanda)
97
+ ## Memory Strategy (On-Demand Reading)
97
98
 
98
99
  > [!IMPORTANT]
99
- > **NUNCA tente ler o SRS e SDD inteiros de uma vez.** Isso polui o contexto e desperdiça tokens.
100
+ > **NEVER try to read the entire SRS and SDD at once.** This pollutes the context and wastes tokens.
100
101
 
101
- A estratégia correta é:
102
- 1. Cada microtask tem **ponteiros** para seções específicas (ex: `SDD#3.1 L45-L78`)
103
- 2. Ao iniciar uma microtask, leia **APENAS** as seções referenciadas
104
- 3. Isso garante que o contexto carregado é preciso e relevante para a tarefa atual
102
+ The correct strategy is:
103
+ 1. Each microtask has **pointers** to specific sections (e.g.: `SDD#3.1 L45-L78`)
104
+ 2. When starting a microtask, read **ONLY** the referenced sections
105
+ 3. This ensures the loaded context is precise and relevant to the current task
105
106
 
106
- ## Consulta de Documentação Técnica
107
+ ## Technical Documentation Lookup
107
108
 
108
- Quando precisar consultar documentação de uma tecnologia da stack (ex: "como usar server actions no Next.js 15?"), siga a hierarquia configurada na **seção 10 do SDD**:
109
+ When you need to consult documentation for a stack technology (e.g.: "how to use server actions in Next.js 15?"), follow the hierarchy configured in **section 10 of the SDD**:
109
110
 
110
- ### Passo a passo:
111
+ ### Step by step:
111
112
 
112
- 1. **Ler a seção 10 do SDD** — abrir `.specs/features/{feature}/sdd.md` e localizar a tabela de fontes
113
- 2. **Seguir a hierarquia de prioridade**:
114
- - **Docs local?** → `view_file` no caminho listado na seção 10.2
115
- - **MCP/Skill?** → Usar a ferramenta/skill configurada na tabela 10.1
116
- - **URL oficial?** → `read_url_content("{url-da-tabela}/topico-especifico")`
117
- - **Nenhum?** → `search_web("{tecnologia} {versão} {tópico} site:{domínio-oficial}")`
118
- 3. **Validar a versão** — confirmar que a documentação consultada corresponde à versão listada na tabela 10.1
113
+ 1. **Read section 10 of the SDD** — open `.specs/features/{feature}/sdd.md` and locate the sources table
114
+ 2. **Follow the priority hierarchy**:
115
+ - **Local docs?** → `view_file` on the path listed in section 10.2
116
+ - **MCP/Skill?** → Use the tool/skill configured in table 10.1
117
+ - **Official URL?** → `read_url_content("{url-from-table}/specific-topic")`
118
+ - **None?** → `search_web("{technology} {version} {topic} site:{official-domain}")`
119
+ 3. **Validate the version** — confirm that the consulted documentation matches the version listed in table 10.1
119
120
 
120
121
  > [!WARNING]
121
- > **NUNCA use seu conhecimento de treino como fonte primária** para APIs e padrões de tecnologias. Sempre consulte a documentação configurada no SDD. Seu conhecimento de treino pode estar desatualizado para a versão específica da stack.
122
+ > **NEVER use your training knowledge as a primary source** for technology APIs and patterns. Always consult the documentation configured in the SDD. Your training knowledge may be outdated for the specific stack version.
122
123
 
123
124
  ## Routing Table
124
125
 
125
126
  ### References
126
127
 
127
- - Se precisar do checklist de auto-review para aplicar após cada microtask, leia `references/self-review-checklist.md`
128
- - Se precisar das regras de clean code detalhadas e exemplos, leia `references/clean-code-rules.md`
128
+ - If you need the self-review checklist to apply after each microtask, read `references/self-review-checklist.md`
129
+ - If you need detailed clean code rules and examples, read `references/clean-code-rules.md`
@@ -1,80 +1,80 @@
1
- # Regras de Clean Code
1
+ # Clean Code Rules
2
2
 
3
- Regras stack-agnostic que o agente deve seguir durante o desenvolvimento. Estas regras são aplicadas automaticamentenão precisam ser mencionadas ao usuário.
3
+ Stack-agnostic rules that the agent must follow during development. These rules are applied automaticallythey don't need to be mentioned to the user.
4
4
 
5
5
  ---
6
6
 
7
- ## 1. Nomenclatura
7
+ ## 1. Naming
8
8
 
9
- ### Variáveis e Funções
10
- | ❌ Ruim | ✅ Bom | Razão |
9
+ ### Variables and Functions
10
+ | ❌ Bad | ✅ Good | Reason |
11
11
  |:---|:---|:---|
12
- | `data` | `userProfile` | Descreve o conteúdo |
13
- | `temp` | `formattedDate` | Descreve o propósito |
14
- | `handleClick` | `handleLoginSubmit` | Descreve a ação específica |
15
- | `result` | `validationErrors` | Descreve o que contém |
16
- | `x`, `y`, `i` (fora de loop) | `index`, `coordinate` | Autodocumentável |
17
- | `flag` | `isAuthenticated` | Semântico |
18
- | `arr` | `activeUsers` | Descreve o conteúdo da coleção |
19
-
20
- ### Funções
21
- | ❌ Ruim | ✅ Bom | Razão |
12
+ | `data` | `userProfile` | Describes the content |
13
+ | `temp` | `formattedDate` | Describes the purpose |
14
+ | `handleClick` | `handleLoginSubmit` | Describes the specific action |
15
+ | `result` | `validationErrors` | Describes what it contains |
16
+ | `x`, `y`, `i` (outside loops) | `index`, `coordinate` | Self-documenting |
17
+ | `flag` | `isAuthenticated` | Semantic |
18
+ | `arr` | `activeUsers` | Describes the collection content |
19
+
20
+ ### Functions
21
+ | ❌ Bad | ✅ Good | Reason |
22
22
  |:---|:---|:---|
23
- | `process()` | `validateAndSaveUser()` | Descreve o que faz |
24
- | `doStuff()` | `calculateShippingCost()` | Específico |
25
- | `getData()` | `fetchUserOrders()` | Especifica o que busca |
26
- | `check()` | `isEmailAlreadyRegistered()` | Booleans com prefixo `is/has/can` |
23
+ | `process()` | `validateAndSaveUser()` | Describes what it does |
24
+ | `doStuff()` | `calculateShippingCost()` | Specific |
25
+ | `getData()` | `fetchUserOrders()` | Specifies what it fetches |
26
+ | `check()` | `isEmailAlreadyRegistered()` | Booleans with `is/has/can` prefix |
27
27
 
28
- ### Componentes (React/Vue/Svelte)
29
- | ❌ Ruim | ✅ Bom | Razão |
28
+ ### Components (React/Vue/Svelte)
29
+ | ❌ Bad | ✅ Good | Reason |
30
30
  |:---|:---|:---|
31
- | `Card` (genérico) | `ProductCard` | Específico ao domínio |
32
- | `Modal` (genérico) | `ConfirmDeleteModal` | Descreve o propósito |
33
- | `List` (genérico) | `OrderHistoryList` | Específico |
34
- | `Button` (global catch-all) | `SubmitButton`, `NavigationButton` | Variantes explícitas |
31
+ | `Card` (generic) | `ProductCard` | Domain-specific |
32
+ | `Modal` (generic) | `ConfirmDeleteModal` | Describes the purpose |
33
+ | `List` (generic) | `OrderHistoryList` | Specific |
34
+ | `Button` (global catch-all) | `SubmitButton`, `NavigationButton` | Explicit variants |
35
35
 
36
36
  ---
37
37
 
38
- ## 2. Comentários
38
+ ## 2. Comments
39
39
 
40
- ### Comentários Proibidos (❌)
40
+ ### Prohibited Comments (❌)
41
41
  ```typescript
42
- // Incrementa o contador
42
+ // Increment the counter
43
43
  counter++;
44
44
 
45
- // Retorna o usuário
45
+ // Return the user
46
46
  return user;
47
47
 
48
- // Define o estado como true
48
+ // Set state to true
49
49
  setIsLoading(true);
50
50
 
51
- // Cria uma nova instância
51
+ // Create a new instance
52
52
  const service = new UserService();
53
53
  ```
54
54
 
55
- ### Comentários Aceitáveis (✅)
55
+ ### Acceptable Comments (✅)
56
56
  ```typescript
57
- // Regex RFC 5322 simplificada para validação de email corporativo
58
- const EMAIL_PATTERN = /^[a-zA-Z0-9._%+-]+@empresa\.com$/;
57
+ // Simplified RFC 5322 regex for corporate email validation
58
+ const EMAIL_PATTERN = /^[a-zA-Z0-9._%+-]+@company\.com$/;
59
59
 
60
- // Delay de 300ms para debounce de busca evita flood de requests
61
- // durante digitação rápida no campo de pesquisa
60
+ // 300ms delay for search debounce — prevents request flooding
61
+ // during rapid typing in the search field
62
62
  const SEARCH_DEBOUNCE_MS = 300;
63
63
 
64
- // TODO(#123): Migrar para a v2 da API quando disponível em produção
64
+ // TODO(#123): Migrate to API v2 when available in production
65
65
  const API_BASE = '/api/v1';
66
66
  ```
67
67
 
68
- ### Regra Geral
69
- > Comente o **porquê**, nunca o **o quê**. Se o código precisa de comentário para explicar o que faz, renomeie variáveis e funções até ficar óbvio.
68
+ ### General Rule
69
+ > Comment the **why**, never the **what**. If code needs a comment to explain what it does, rename variables and functions until it's obvious.
70
70
 
71
71
  ---
72
72
 
73
- ## 3. Abstração e Reutilização
73
+ ## 3. Abstraction and Reuse
74
74
 
75
- ### Código Repetitivo (❌)
75
+ ### Repetitive Code (❌)
76
76
  ```typescript
77
- // Repetido em 5 componentes
77
+ // Repeated in 5 components
78
78
  const response = await fetch('/api/users', {
79
79
  headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }
80
80
  });
@@ -82,54 +82,54 @@ if (!response.ok) throw new Error('Failed to fetch');
82
82
  const data = await response.json();
83
83
  ```
84
84
 
85
- ### Com Abstração (✅)
85
+ ### With Abstraction (✅)
86
86
  ```typescript
87
- // Usado em 5+ componentes — fetch centralizado
87
+ // Used in 5+ componentscentralized fetch
88
88
  const users = await apiClient.get<User[]>('/users');
89
89
  ```
90
90
 
91
- ### Regra: Extrair quando repetir ≥ 2 vezes
92
- Se um padrão de código aparece 2 ou mais vezes, deve ser extraído para:
93
- - Uma função utilitária
94
- - Um componente reutilizável
95
- - Um hook customizado (React)
96
- - Um serviço/module
91
+ ### Rule: Extract when repeating ≥ 2 times
92
+ If a code pattern appears 2 or more times, it should be extracted to:
93
+ - A utility function
94
+ - A reusable component
95
+ - A custom hook (React)
96
+ - A service/module
97
97
 
98
98
  ---
99
99
 
100
- ## 4. Estrutura de Arquivos
100
+ ## 4. File Structure
101
101
 
102
- ### Arquivo Monolítico (❌)
102
+ ### Monolithic File (❌)
103
103
  ```
104
- src/components/Dashboard.tsx ← 500+ linhas com tudo junto
104
+ src/components/Dashboard.tsx ← 500+ lines with everything together
105
105
  ```
106
106
 
107
- ### Arquivos Granulares (✅)
107
+ ### Granular Files (✅)
108
108
  ```
109
109
  src/components/dashboard/
110
- ├── Dashboard.tsx ← Composição dos sub-componentes
111
- ├── DashboardHeader.tsx ← Header isolado
112
- ├── DashboardMetrics.tsx ← Cards de métricas
113
- ├── DashboardRecentOrders.tsx ← Lista de pedidos recentes
114
- └── useDashboardData.ts ← Hook de dados
110
+ ├── Dashboard.tsx ← Composition of sub-components
111
+ ├── DashboardHeader.tsx ← Isolated header
112
+ ├── DashboardMetrics.tsx ← Metrics cards
113
+ ├── DashboardRecentOrders.tsx ← Recent orders list
114
+ └── useDashboardData.ts ← Data hook
115
115
  ```
116
116
 
117
- ### Regra: 1 componente por arquivo, máximo ~150 linhas significativas
117
+ ### Rule: 1 component per file, maximum ~150 meaningful lines
118
118
 
119
119
  ---
120
120
 
121
- ## 5. Tratamento de Erros
121
+ ## 5. Error Handling
122
122
 
123
- ### Genérico (❌)
123
+ ### Generic (❌)
124
124
  ```typescript
125
125
  try {
126
126
  await saveUser(data);
127
127
  } catch (e) {
128
- console.log(e); // Ignora silenciosamente
128
+ console.log(e); // Silently ignores
129
129
  }
130
130
  ```
131
131
 
132
- ### Específico (✅)
132
+ ### Specific (✅)
133
133
  ```typescript
134
134
  try {
135
135
  await saveUser(data);
@@ -137,7 +137,7 @@ try {
137
137
  if (error instanceof ValidationError) {
138
138
  showFieldErrors(error.fields);
139
139
  } else if (error instanceof NetworkError) {
140
- showRetryNotification('Falha na conexão. Tente novamente.');
140
+ showRetryNotification('Connection failed. Try again.');
141
141
  } else {
142
142
  logger.error('Unexpected error saving user', { error, userId: data.id });
143
143
  showGenericError();
@@ -1,64 +1,64 @@
1
- # Checklist de Auto-Review (Self-Review)
1
+ # Self-Review Checklist
2
2
 
3
- Aplique este checklist após implementar cada microtask. Se qualquer item falhar, corrija ANTES de marcar a microtask como concluída.
3
+ Apply this checklist after implementing each microtask. If any item fails, fix it BEFORE marking the microtask as complete.
4
4
 
5
5
  ---
6
6
 
7
7
  ## Checklist
8
8
 
9
- ### 1. Aderência ao SDD
9
+ ### 1. SDD Adherence
10
10
 
11
- - [ ] O código implementa exatamente o que está especificado na seção referenciada do SDD?
12
- - [ ] A estrutura de pastas/arquivos segue o definido no SDD?
13
- - [ ] O modelo de dados corresponde ao schema do SDD (campos, tipos, constraints)?
14
- - [ ] Os endpoints/rotas seguem o design de API do SDD (paths, methods, bodies)?
15
- - [ ] As camadas de responsabilidade estão separadas conforme arquitetura do SDD?
11
+ - [ ] Does the code implement exactly what is specified in the referenced SDD section?
12
+ - [ ] Does the folder/file structure follow what's defined in the SDD?
13
+ - [ ] Does the data model match the SDD schema (fields, types, constraints)?
14
+ - [ ] Do the endpoints/routes follow the SDD API design (paths, methods, bodies)?
15
+ - [ ] Are the responsibility layers separated according to the SDD architecture?
16
16
 
17
17
  ### 2. Clean Code
18
18
 
19
- - [ ] Todas as variáveis e funções têm nomes descritivos e específicos?
20
- - [ ] Não comentários que apenas descrevem o que o código faz (óbvios)?
21
- - [ ] Não código repetido que deveria ser abstraído?
22
- - [ ] Cada arquivo/componente tem responsabilidade única (≤ 150 linhas significativas)?
23
- - [ ] O tratamento de erros é específico (não genérico catch-all)?
19
+ - [ ] Do all variables and functions have descriptive and specific names?
20
+ - [ ] Are there no comments that just describe what the code does (obvious)?
21
+ - [ ] Is there no repeated code that should be abstracted?
22
+ - [ ] Does each file/component have single responsibility (≤ 150 meaningful lines)?
23
+ - [ ] Is error handling specific (not generic catch-all)?
24
24
 
25
- ### 3. Naming Conventions (conforme `.specs/standards/naming-conventions.md`)
25
+ ### 3. Naming Conventions (per `.specs/standards/naming-conventions.md`)
26
26
 
27
- - [ ] As conventions de nome seguem o definido nos **standards do projeto**?
28
- - [ ] Variáveis e funções seguem a convenção do projeto (verificar `naming-conventions.md`)?
29
- - [ ] Nomes de tabelas/colunas seguem a convenção do banco (verificar `naming-conventions.md#banco-de-dados`)?
30
- - [ ] Componentes usam a convenção definida para frontend (verificar `naming-conventions.md#componentes`)?
31
- - [ ] Variáveis booleanas usam o prefixo definido nos standards (`is`, `has`, `can`, `should`)?
32
- - [ ] Constantes usam a convenção definida nos standards?
27
+ - [ ] Do naming conventions follow what's defined in the **project standards**?
28
+ - [ ] Do variables and functions follow the project convention (check `naming-conventions.md`)?
29
+ - [ ] Do table/column names follow the database convention (check `naming-conventions.md#database`)?
30
+ - [ ] Do components use the convention defined for frontend (check `naming-conventions.md#components`)?
31
+ - [ ] Do boolean variables use the prefix defined in standards (`is`, `has`, `can`, `should`)?
32
+ - [ ] Do constants use the convention defined in standards?
33
33
 
34
- ### 4. Anti-Design de IA
34
+ ### 4. Anti-AI-Design
35
35
 
36
- - [ ] Não emojis em textos de interface (botões, labels, headings)?
37
- - [ ] CSS/Tailwind usa design tokens do SDD/`design-system.md` (não valores hardcoded genéricos)?
38
- - [ ] Não textos placeholder genéricos ('Lorem ipsum', 'Click here', 'Submit')?
39
- - [ ] A UI não tem aparência de "tutorial de YouTube" (sombras e gradientes sem propósito)?
40
- - [ ] Componentes estão devidamente separados (não monolíticos)?
41
- - [ ] Não código boilerplate repetitivo sem abstração?
36
+ - [ ] Are there no emojis in interface text (buttons, labels, headings)?
37
+ - [ ] Does CSS/Tailwind use design tokens from the SDD/`design-system.md` (no generic hardcoded values)?
38
+ - [ ] Are there no generic placeholder texts ('Lorem ipsum', 'Click here', 'Submit')?
39
+ - [ ] Does the UI not look like a "YouTube tutorial" (purposeless shadows and gradients)?
40
+ - [ ] Are components properly separated (not monolithic)?
41
+ - [ ] Is there no repetitive boilerplate code without abstraction?
42
42
 
43
- ### 5. Conformidade com Standards do Projeto
43
+ ### 5. Project Standards Compliance
44
44
 
45
- - [ ] A arquitetura segue as camadas e regras de dependência de `.specs/standards/architecture.md`?
46
- - [ ] Design tokens do `.specs/standards/design-system.md` estão sendo usados (se frontend)?
47
- - [ ] API segue as convenções de `.specs/standards/api-conventions.md` (format de response, status codes)?
48
- - [ ] Boas práticas de `.specs/standards/coding-standards.md` estão sendo respeitadas?
49
- - [ ] Tratamento de erros segue a estratégia definida nos standards?
45
+ - [ ] Does the architecture follow the layers and dependency rules from `.specs/standards/architecture.md`?
46
+ - [ ] Are design tokens from `.specs/standards/design-system.md` being used (if frontend)?
47
+ - [ ] Does the API follow conventions from `.specs/standards/api-conventions.md` (response format, status codes)?
48
+ - [ ] Are best practices from `.specs/standards/coding-standards.md` being respected?
49
+ - [ ] Does error handling follow the strategy defined in standards?
50
50
 
51
- ### 6. Funcionalidade
51
+ ### 6. Functionality
52
52
 
53
- - [ ] O código compila/executa sem erros?
54
- - [ ] O critério de "done" da microtask foi atendido?
55
- - [ ] Não foi adicionada funcionalidade não especificada no SRS/SDD?
53
+ - [ ] Does the code compile/execute without errors?
54
+ - [ ] Has the microtask's "done" criterion been met?
55
+ - [ ] Was no unspecified functionality added that's not in the SRS/SDD?
56
56
 
57
57
  ---
58
58
 
59
- ## Como Usar
59
+ ## How to Use
60
60
 
61
- 1. Após implementar uma microtask, percorra cada item do checklist mentalmente
62
- 2. Se qualquer item estiver ❌, corrija o código
63
- 3. marque a microtask como `[x]` quando todos os itens estiverem
64
- 4. Não é necessário listar o checklist ao usuárioé um processo interno do agente
61
+ 1. After implementing a microtask, go through each checklist item mentally
62
+ 2. If any item is ❌, fix the code
63
+ 3. Only mark the microtask as `[x]` when all items are
64
+ 4. No need to list the checklist to the user it's an internal agent process