specifica-br 1.2.2 → 1.5.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 (46) hide show
  1. package/README.md +114 -44
  2. package/dist/boilerplate/commands/executar-task.md +133 -0
  3. package/dist/boilerplate/commands/gerar-contexto.md +1462 -0
  4. package/dist/boilerplate/commands/gerar-prd.md +289 -0
  5. package/dist/boilerplate/commands/gerar-tasks.md +168 -0
  6. package/dist/boilerplate/commands/gerar-techspec.md +1467 -0
  7. package/dist/boilerplate/commands/gerar-visao.md +731 -0
  8. package/dist/boilerplate/commands/realizar-codereview.md +288 -0
  9. package/dist/boilerplate/opencode-commands/executar-task.md +55 -48
  10. package/dist/boilerplate/opencode-commands/gerar-contexto.md +1462 -0
  11. package/dist/boilerplate/opencode-commands/gerar-prd.md +232 -40
  12. package/dist/boilerplate/opencode-commands/gerar-tasks.md +112 -31
  13. package/dist/boilerplate/opencode-commands/gerar-techspec.md +1464 -80
  14. package/dist/boilerplate/opencode-commands/gerar-visao.md +731 -0
  15. package/dist/boilerplate/opencode-commands/realizar-codereview.md +288 -0
  16. package/dist/boilerplate/skills/product-manager/SKILL.md +32 -0
  17. package/dist/boilerplate/skills/techspec-generator/SKILL.md +489 -0
  18. package/dist/boilerplate/skills/techspec-generator/references/api-contracts.md +421 -0
  19. package/dist/boilerplate/skills/techspec-generator/references/architecture-patterns.md +316 -0
  20. package/dist/boilerplate/skills/techspec-generator/references/database-modeling.md +436 -0
  21. package/dist/boilerplate/skills/techspec-generator/references/observability-testing.md +436 -0
  22. package/dist/boilerplate/skills/techspec-generator/references/security-hardening.md +238 -0
  23. package/dist/boilerplate/skills/techspec-generator/references/ux-ui-accessibility.md +511 -0
  24. package/dist/boilerplate/specs-templates/architecture-template.md +736 -0
  25. package/dist/boilerplate/specs-templates/codereview-template.md +95 -0
  26. package/dist/boilerplate/specs-templates/prd-template.md +101 -19
  27. package/dist/boilerplate/specs-templates/product_vision-template.md +284 -0
  28. package/dist/boilerplate/specs-templates/task-template.md +64 -18
  29. package/dist/boilerplate/specs-templates/tasks-template.md +12 -4
  30. package/dist/boilerplate/specs-templates/techspec-template.md +1227 -89
  31. package/dist/boilerplate/templates/architecture-template.md +736 -0
  32. package/dist/boilerplate/templates/codereview-template.md +95 -0
  33. package/dist/boilerplate/templates/prd-template.md +167 -0
  34. package/dist/boilerplate/templates/product_vision-template.md +284 -0
  35. package/dist/boilerplate/templates/task-template.md +169 -0
  36. package/dist/boilerplate/templates/tasks-template.md +15 -0
  37. package/dist/boilerplate/templates/techspec-template.md +1306 -0
  38. package/dist/commands/help.js +33 -11
  39. package/dist/commands/init.js +39 -43
  40. package/dist/tools-mapping.json +32 -0
  41. package/dist/types/init.d.ts +14 -17
  42. package/dist/utils/file-service.d.ts +5 -3
  43. package/dist/utils/file-service.js +168 -56
  44. package/dist/utils/message-formatter.d.ts +2 -1
  45. package/dist/utils/message-formatter.js +39 -22
  46. package/package.json +1 -1
@@ -0,0 +1,489 @@
1
+ ---
2
+ name: techspec-generator
3
+ description: Gerador de Especificacoes Tecnicas (Tech Specs) com expertise completa de Tech Lead, Arquiteto de Software, DBA, DevOps, Security Engineer e UI/UX Developer. Use esta skill SEMPRE quando o usuario solicitar criacao, refinamento ou analise de especificacoes tecnicas, tech specs, design de componentes, modelagem de dados, decisoes arquiteturais ou qualquer tarefa relacionada a definicao tecnica de software. Esta skill e obrigatoria para o comando /gerar-techspec e deve ser usada sempre que houver trabalho envolvendo especificacao tecnica, design de API, modelagem de banco de dados, decisao arquitetural, estrategia de testes, planejamento de infraestrutura ou revisao de viabilidade tecnica.
4
+ ---
5
+
6
+ # Skill: TechSpec Generator
7
+
8
+ Skill especializada em geracao de Especificacoes Tecnicas (Tech Specs) com a expertise completa de um time tecnico sênior.
9
+
10
+ Esta skill fornece todas as habilidades necessárias para traduzir requisitos de negócio (PRDs) em especificações técnicas de baixo nível, precisas e implementáveis, mantendo aderência total aos padrões do projeto.
11
+
12
+ ## 1. Visão Geral e Propósito
13
+
14
+ ### 1.1. Contexto no Workflow SDD (Spec Driven Development)
15
+
16
+ Esta skill é parte central do workflow de desenvolvimento orientado a especificações. Ela se integra com:
17
+ - **Comando:** `/gerar-techspec` - usa esta skill obrigatoriamente
18
+ - **Template:** `@specs/templates/techspec-template.md` - estrutura da TechSpec gerada
19
+ - **Contexto obrigatório:** `README.md`, `AGENTS.md`, código existente
20
+ - **Contexto opcional:** `specs/core/architecture.md` - arquitetura global do projeto
21
+ - **Entrada:** `./specs/features/[feature]/prd.md` - PRD aprovado
22
+ - **Saída:** `./specs/features/[feature]/techspec.md`
23
+
24
+ ### 1.2. Quando Usar Esta Skill
25
+
26
+ Esta skill DEVE ser usada quando:
27
+ - Usuário solicita "criar tech spec", "especificação técnica", "design técnico"
28
+ - Usuário pede "como implementar [feature]", "qual arquitetura usar"
29
+ - Usuário menciona "modelagem de dados", "design de API", "contratos"
30
+ - Usuário precisa decidir entre abordagens técnicas (síncrono vs assíncrono, SQL vs NoSQL)
31
+ - Qualquer tarefa envolvendo tradução de requisitos em decisões técnicas explícitas
32
+
33
+ ### 1.3. O Que Esta Skill Faz
34
+
35
+ Transforma PRDs aprovados em Tech Specs completas através de:
36
+ - **Análise de contexto** (stack, padrões, convenções do projeto)
37
+ - **Exploração de código** (validar padrões contra realidade)
38
+ - **Mapeamento de requisitos** (PRD → decisões técnicas)
39
+ - **Clarificação** (resolver lacunas com entrevista estruturada)
40
+ - **Especificação** (gerar documento implementável por dev júnior)
41
+
42
+ ### 1.4. Princípio Fundamental
43
+
44
+ O comando `gerar-techspec.md` define o **PROCESSO** (o que fazer em cada passo). Esta skill define a **EXPERTISE** (como pensar sobre cada decisão técnica). Juntos, garantem Tech Specs de alta qualidade.
45
+
46
+ ## 2. Habilidades Core (Competências Técnicas)
47
+
48
+ ### 2.1. Decisão Técnica Fundamentada (Tech Lead)
49
+
50
+ **Objetivo:** Toda decisão técnica deve ser explícita, justificada e citada.
51
+
52
+ **O que fazer:**
53
+ - Documentar trade-offs de cada decisão (prós, contras, impacto)
54
+ - Usar matriz de decisão quando houver múltiplas opções
55
+ - Justificar por que a opção escolhida é melhor que as alternativas
56
+ - Citar fonte do padrão (AGENTS.md, código existente, feature similar)
57
+ - Avaliar impacto no projeto (complexidade, curva de aprendizado, manutenibilidade)
58
+
59
+ **Framework de Decisão:**
60
+ ```
61
+ DECISÃO: [o que foi decidido]
62
+ OPÇÕES CONSIDERADAS: [A, B, C]
63
+ JUSTIFICATIVA: [por que esta opção]
64
+ TRADE-OFFS: [o que ganho vs o que perco]
65
+ FONTE: [AGENTS.md linha X / Feature Y / Convenção Z]
66
+ IMPACTO: [complexidade, manutenibilidade, performance]
67
+ ```
68
+
69
+ **Exemplo:**
70
+ - Decisão: "Usar Redis para cache de sessões"
71
+ - Justificativa: "Projeto já usa Redis (docker-compose.yml). TTL de 5min consistente com padrão existente em SessionService."
72
+ - Trade-off: "Adiciona dependência de Redis para autenticação (se Redis cai, sessões são perdidas). Mitigação: fallback para JWT stateless."
73
+
74
+ ### 2.2. Design Arquitetural (Arquiteto de Software)
75
+
76
+ **Objetivo:** Selecionar e aplicar padrões arquiteturais adequados ao contexto.
77
+
78
+ **O que fazer:**
79
+ - Identificar paradigma do projeto (Clean Arch, DDD, Hexagonal, MVC)
80
+ - Garantir que novas features respeitam o paradigma existente
81
+ - Definir separação de camadas e direção de dependências
82
+ - Aplicar padrões de design (Repository, Strategy, Factory, Observer)
83
+ - Detectar e sinalizar violações arquiteturais
84
+
85
+ **Referência detalhada:** `references/architecture-patterns.md`
86
+
87
+ **Padrões de verificação:**
88
+ | Verificação | O que validar |
89
+ |:---|:---|
90
+ | Direção de dependências | Domain não depende de ninguém? Infrastructure depende de Application? |
91
+ | Separação de responsabilidades | Controller sem lógica de negócio? Handler sem acesso a DB? |
92
+ | Consistência com projeto | Nova feature segue mesmo padrão de features existentes? |
93
+ | Princípios SOLID | Cada classe tem uma responsabilidade? Interfaces são segregadas? |
94
+
95
+ ### 2.3. Design de Componentes (Arquiteto de Software)
96
+
97
+ **Objetivo:** Definir componentes com responsabilidades claras e dependências explícitas.
98
+
99
+ **O que fazer:**
100
+ - Cada componente pertence a exatamente UMA camada arquitetural
101
+ - Responsabilidade única e específica (não "gerencia pedidos", mas "processa comando de criação de pedido")
102
+ - Dependências apenas de camadas permitidas (nunca para cima)
103
+ - Interfaces para contratos entre camadas
104
+
105
+ **Formato obrigatório:**
106
+ ```
107
+ | Nome | Camada | Tipo | Responsabilidade | Dependências Permitidas |
108
+ |:---|:---|:---|:---|:---|
109
+ | CreateOrderHandler | Application | Handler | Processa comando de criação | IOrderRepository, IEventBus |
110
+ ```
111
+
112
+ ### 2.4. Modelagem de Banco de Dados (DBA / Data Modeler)
113
+
114
+ **Objetivo:** Projetar schemas de dados precisos, eficientes e consistentes.
115
+
116
+ **O que fazer:**
117
+ - Tipos de dados específicos (VARCHAR(255), não "string"; DECIMAL(10,2), não "number")
118
+ - Constraints explícitas (PK, FK, Unique, Not Null, CHECK)
119
+ - Índices justificados (qual query este índice otimiza?)
120
+ - Relacionamentos documentados (1:1, 1:N, N:N) com cascade behavior
121
+ - Convenções de nomenclatura alinhadas ao projeto (snake_case, PascalCase, etc.)
122
+ - Estratégia de migração (qual ferramenta, qual padrão de nomenclatura)
123
+
124
+ **Referência detalhada:** `references/database-modeling.md`
125
+
126
+ **Checklist de modelagem:**
127
+ - [ ] Tipos específicos com tamanhos
128
+ - [ ] PK com estratégia definida (UUID, auto-increment, SERIAL)
129
+ - [ ] FKs com onDelete/onUpdate behavior
130
+ - [ ] Índices para queries frequentes
131
+ - [ ] Constraints de integridade (CHECK, UNIQUE)
132
+ - [ ] Campos de auditoria (created_at, updated_at)
133
+ - [ ] Soft delete vs hard delete (justificado)
134
+
135
+ ### 2.5. Design de API (Backend Sênior)
136
+
137
+ **Objetivo:** Definir contratos de API exatos, completos e não-ambíguos.
138
+
139
+ **O que fazer:**
140
+ - Endpoint completo (método, rota com versão, headers)
141
+ - Request payload com tipos e validações
142
+ - Response para TODOS os status codes (200, 201, 400, 404, 422, 500)
143
+ - Error responses com código, mensagem e details estruturados
144
+ - Idempotência onde aplicável
145
+ - Paginação, filtros e ordenação quando aplicável
146
+
147
+ **Referência detalhada:** `references/api-contracts.md`
148
+
149
+ **Anti-patterns:**
150
+ - Endpoint sem versão (`/orders` vs `/api/v1/orders`)
151
+ - Response sem error cases
152
+ - Request sem tipos específicos
153
+ - Status codes genéricos (só 200 e 500)
154
+
155
+ ### 2.6. Design de Frontend / UI/UX (UI/UX Developer)
156
+
157
+ **Objetivo:** Especificar componentes, estados e interações de frontend.
158
+
159
+ **O que fazer:**
160
+ - Mapear componentes existentes do projeto (design system, UI library)
161
+ - Especificar composição de componentes (Layout > Page > Section > Component)
162
+ - Definir estados de UI (loading, error, empty, success, skeleton)
163
+ - Especificar validação de formulários (inline, em tempo real, submit)
164
+ - Garantir acessibilidade (ARIA labels, navegação por teclado, contraste)
165
+ - Especificar responsividade (breakpoints, mobile-first)
166
+
167
+ **Referência detalhada:** `references/ux-ui-accessibility.md`
168
+
169
+ **Estados obrigatórios para cada tela:**
170
+ | Estado | O que mostrar |
171
+ |:---|:---|
172
+ | Loading | Skeleton screen ou spinner com aria-label |
173
+ | Error | Mensagem específica + ação de retry |
174
+ | Empty | Estado vazio com call-to-action |
175
+ | Success | Feedback visual + redirecionamento (se aplicável) |
176
+ | Validation | Erro inline abaixo do campo |
177
+
178
+ ### 2.7. Design de Integrações (Integration Architect)
179
+
180
+ **Objetivo:** Projetar integrações resilientes entre sistemas.
181
+
182
+ **O que fazer:**
183
+ - Definir padrão de comunicação (síncrono vs assíncrono, REST vs mensageria)
184
+ - Eventos/mensagens com payload estruturado e correlation ID
185
+ - Estratégia de retry (tentativas, backoff, circuit breaker)
186
+ - Idempotência para operações assíncronas
187
+ - Contrato de integração (timeout, SLA, formato de erro)
188
+
189
+ **Formato de evento:**
190
+ ```
191
+ Event: OrderCreated
192
+ Source: CreateOrderHandler (Application Layer)
193
+ Queue/Topic: orders.events
194
+ Payload: { orderId, customerId, totalAmount, correlationId }
195
+ ```
196
+
197
+ **Checklist de integração:**
198
+ - [ ] Timeout definido para cada chamada externa
199
+ - [ ] Retry com backoff exponencial (número de tentativas especificado)
200
+ - [ ] Fallback/compensating transaction para falhas
201
+ - [ ] Idempotência para consumers de eventos
202
+ - [ ] Correlation ID para tracing distribuído
203
+ - [ ] Dead letter queue para mensagens com falha persistente
204
+
205
+ ### 2.8. Programação Sênior (Dev Sênior)
206
+
207
+ **Objetivo:** Garantir que a especificação resulte em código limpo e idiomático.
208
+
209
+ **O que fazer:**
210
+ - Aplicar SOLID em cada decisão de design
211
+ - Especificar tratamento de erros (exception types, result patterns)
212
+ - Definir validações com regras explícitas (não "validar dados")
213
+ - Especificar logging estruturado (quais dados, qual nível, qual contexto)
214
+ - Garantir que o plano de implementação seja granular e modular
215
+
216
+ **Padrões de código para especificar:**
217
+ - Error handling: Exception types ou Result<T> pattern?
218
+ - Validação: Attributes/Decorators, FluentValidation, Zod, manual?
219
+ - DI: Constructor injection, method injection?
220
+ - Async: Task/async-await patterns, CancellationToken?
221
+
222
+ ### 2.9. DevOps / Infraestrutura (DevOps Engineer)
223
+
224
+ **Objetivo:** Especificar requisitos de infraestrutura e deployment.
225
+
226
+ **O que fazer:**
227
+ - Documentar serviços de Docker existentes e novos necessários
228
+ - Definir variáveis de ambiente necessárias
229
+ - Especificar requisitos de CI/CD (testes, lint, build, deploy)
230
+ - Estratégia de deploy (blue-green, canary, rolling)
231
+ - Configuração específica (recursos, limites, secrets)
232
+
233
+ **Referência quando aplicável:** `references/security-hardening.md`
234
+
235
+ **Checklist DevOps:**
236
+ - [ ] Novos serviços em docker-compose? (justificar)
237
+ - [ ] Variáveis de ambiente documentadas (nomes, não valores)
238
+ - [ ] Migrations incluídas no pipeline?
239
+ - [ ] Health check endpoints necessários?
240
+ - [ ] Secrets management definido?
241
+
242
+ ### 2.10. Segurança (Security Engineer)
243
+
244
+ **Objetivo:** Garantir que a especificação trate segurança de forma explícita.
245
+
246
+ **O que fazer:**
247
+ - Especificar autenticação (JWT, OAuth2, API Keys, Session)
248
+ - Definir autorização por endpoint (roles, permissions, ownership)
249
+ - Identificar dados sensíveis e estratégia de proteção (criptografia, masking)
250
+ - Input sanitization (XSS, SQL Injection, CSRF)
251
+ - Rate limiting quando aplicável
252
+
253
+ **Referência detalhada:** `references/security-hardening.md`
254
+
255
+ **Matriz de segurança por endpoint:**
256
+ | Endpoint | Auth Required | Role/Permission | Dados Sensíveis | Rate Limit |
257
+ |:---|:---|:---|:---|:---|
258
+ | POST /api/v1/orders | JWT Bearer | customer ou admin | Nenhum | 10 req/min |
259
+ | GET /api/v1/orders/{id} | JWT Bearer | owner ou admin | - | 100 req/min |
260
+
261
+ ### 2.11. Observabilidade (SRE)
262
+
263
+ **Objetivo:** Definir logging, métricas e tracing para a feature.
264
+
265
+ **O que fazer:**
266
+ - Logging estruturado (quais eventos, qual nível, quais dados incluir)
267
+ - Métricas por tipo (Counter para contagens, Histogram para distribuições, Gauge para estado atual)
268
+ - Distributed tracing com correlation ID
269
+ - Alertas quando aplicável
270
+
271
+ **Referência detalhada:** `references/observability-testing.md`
272
+
273
+ **Padrão de log:**
274
+ ```
275
+ Level: INFO | When: Pedido criado | Context: { orderId, customerId, totalAmount, correlationId }
276
+ Level: ERROR | When: Falha pagamento | Context: { orderId, errorCode, correlationId }
277
+ ```
278
+
279
+ **NUNCA logar:** senhas, tokens, dados de cartão, PII não-mascarado.
280
+
281
+ ### 2.12. Estratégia de Testes (QA Engineer)
282
+
283
+ **Objetivo:** Definir abordagem de testes por camada e criticidade.
284
+
285
+ **O que fazer:**
286
+ - Pirâmide de testes: muitos unitários, alguns integração, poucos e2e
287
+ - Testes por camada (Domain, Application, Infrastructure, Interface)
288
+ - Fixtures e factories para dados de teste
289
+ - Coverage mínimo esperado
290
+ - Cenários críticos que DEVEM ter testes
291
+
292
+ **Referência detalhada:** `references/observability-testing.md`
293
+
294
+ **Distribuição sugerida:**
295
+ | Camada | Tipo | Framework | O que testar |
296
+ |:---|:---|:---|:---|
297
+ | Domain | Unit | xUnit/Jest/Vitest | Entidades, Value Objects, regras de negócio |
298
+ | Application | Unit | Mesmo | Handlers, Commands, validação |
299
+ | Infrastructure | Integration | Mesmo + TestContainers | Repositories, external services |
300
+ | Interface | Integration/E2E | Playwright/Cypress | Endpoints, fluxos completos |
301
+
302
+ ### 2.13. Gestão de Performance (Performance Engineer)
303
+
304
+ **Objetivo:** Identificar e mitigar gargalos de performance na especificação.
305
+
306
+ **O que fazer:**
307
+ - Identificar queries N+1 potenciais e especificar eager loading
308
+ - Definir estratégia de cache (onde, quanto tempo, invalidação)
309
+ - Especificar paginação para listagens
310
+ - Identificar operações pesadas para processamento assíncrono
311
+ - Especificar índices de banco para queries frequentes
312
+
313
+ **Checklist de performance:**
314
+ - [ ] Queries com JOIN: eager loading especificado?
315
+ - [ ] Listagens: paginação definida (default, max, cursor/offset)?
316
+ - [ ] Dados frequentes: cache com TTL e estratégia de invalidação?
317
+ - [ ] Operações pesadas: background job/queue?
318
+ - [ ] Frontend: lazy loading, code splitting?
319
+
320
+ ### 2.14. Análise de Risco Técnico (Risk Analyst)
321
+
322
+ **Objetivo:** Identificar riscos técnicos e definir mitigações.
323
+
324
+ **O que fazer:**
325
+ - Listar dependências críticas (APIs externas, serviços, bibliotecas)
326
+ - Identificar pontos de falha únicos (single points of failure)
327
+ - Avaliar complexidade técnica da implementação
328
+ - Definir plano de contingência para riscos altos
329
+
330
+ **Formato:**
331
+ | Risco | Probabilidade | Impacto | Mitigação | Contingência |
332
+ |:---|:---|:---|:---|:---|
333
+ | API de pagamento indisponível | Média | Alto | Retry 3x com backoff | Fila para processamento posterior |
334
+ | Concorrência em estoque | Baixa | Alto | Optimistic locking | Notificar usuário e sugerir retry |
335
+
336
+ ### 2.15. Comunicação Técnica Específica (Tech Writer)
337
+
338
+ **Objetivo:** Garantir que a TechSpec seja implementável sem ambiguidade.
339
+
340
+ **O que fazer:**
341
+ - Usar termos específicos (não "banco SQL" mas "PostgreSQL 15+")
342
+ - Incluir exemplos concretos (JSON exato, não "payload genérico")
343
+ - Documentar anti-patterns (o que NÃO fazer)
344
+ - Referenciar código existente como exemplo ("seguir padrão de UserRepository")
345
+ - Usar tabelas e JSONs para otimizar contexto (preferir a texto corrido)
346
+
347
+ **Regra de implementabilidade:**
348
+ Se um desenvolvedor júnior não conseguir implementar a feature lendo apenas a TechSpec, ela precisa de mais detalhes.
349
+
350
+ ## 3. Integração com o Comando `gerar-techspec.md`
351
+
352
+ O comando define 6 passos obrigatórios. A skill se integra em cada passo:
353
+
354
+ | Passo do Comando | Habilidades da Skill |
355
+ |:---|:---|
356
+ | **Passo 0:** Arquitetura Global | 2.2 (Design Arquitetural) |
357
+ | **Passo 1:** Contexto e Padrões | 2.8 (Prog. Sênior), 2.15 (Comunicação) |
358
+ | **Passo 2:** Código Existente | 2.2, 2.4, 2.5, 2.6, 2.9 (todas de detecção) |
359
+ | **Passo 3:** Requisitos e Lacunas | 2.1 (Decisão Técnica), 2.14 (Risco) |
360
+ | **Passo 4:** Clarificação | 2.1, 2.14, 2.15 |
361
+ | **Passo 5:** Validação | Todas as habilidades (validação cruzada) |
362
+ | **Passo 6:** Geração | Todas as habilidades (preenchimento do template) |
363
+
364
+ **Quando consultar referências detalhadas:**
365
+ - `references/architecture-patterns.md` - ao tomar decisões arquiteturais (Passos 0, 2, 5)
366
+ - `references/database-modeling.md` - ao projetar schema (Passo 6, seção 3)
367
+ - `references/api-contracts.md` - ao definir endpoints (Passo 6, seção 4)
368
+ - `references/ux-ui-accessibility.md` - ao especificar frontend (Passo 6, seção 5)
369
+ - `references/security-hardening.md` - ao definir segurança (Passo 6, seção 7)
370
+ - `references/observability-testing.md` - ao definir logging/testes (Passo 6, seções 6, 8)
371
+
372
+ ## 4. Regras de Ouro (Golden Rules)
373
+
374
+ ### 4.1. Especificidade
375
+
376
+ Toda decisão técnica deve ser:
377
+ - **EXPLÍCITA:** "PostgreSQL 14+ com extensão UUID" | Não: "banco SQL"
378
+ - **JUSTIFICADA:** "Redis porque X" | Não: "Redis"
379
+ - **CITADA:** "Conforme padrão Y em AGENTS.md" | Não: "Seguir padrão"
380
+ - **IMPLEMENTÁVEL:** Dev júnior consegue seguir sem perguntas
381
+
382
+ ### 4.2. Zero Assunções
383
+
384
+ - Não assumir nada que não esteja no PRD, README.md, AGENTS.md ou código
385
+ - Se não encontrou evidência no código, PERGUNTE
386
+ - Se o PRD e o código conflitam, PERGUNTE
387
+ - Se não sabe qual biblioteca usar, verifique package.json/requirements.txt PRIMEIRO
388
+
389
+ ### 4.3. Aderência a Padrões
390
+
391
+ - Qualquer decisão técnica DEVE respeitar invariantes do projeto
392
+ - Novas bibliotecas só se justificadas em seção dedicada
393
+ - Quando em dúvida entre inovação e consistência: escolha consistência
394
+
395
+ ### 4.4. Human-in-the-Loop
396
+
397
+ - Perguntar antes de decidir (especialmente com conflitos)
398
+ - Apresentar 2-3 opções com trade-offs
399
+ - Máximo 8 perguntas por rodada
400
+ - Maior impacto primeiro
401
+
402
+ ### 4.5. Implementabilidade
403
+
404
+ - TechSpec = blueprint para dev júnior
405
+ - Se alguém precisa perguntar "qual biblioteca?", a spec falhou
406
+ - Se alguém precisa perguntar "onde coloco isso?", a spec falhou
407
+ - Se alguém precisa perguntar "qual tipo de dado?", a spec falhou
408
+
409
+ ## 5. Melhores Práticas para Tech Specs
410
+
411
+ ### 5.1. Anti-Patterns Comuns
412
+
413
+ | Anti-Pattern | Por que é ruim | Como evitar |
414
+ |:---|:---|:---|
415
+ | **"Usar ORM"** sem especificar qual | Ambiguidade | "Prisma ORM (padrão do projeto)" |
416
+ | **"Tabela de pedidos"** sem colunas | Incompleto | Listar todas colunas com tipos e constraints |
417
+ | **"Endpoint para criar"** sem detalhes | Vago | Método, rota, request/response, status codes |
418
+ | **"Tratar erros"** sem especificar | Genérico | Qual erro? Qual status? Qual mensagem? |
419
+ | **"Fazer testes"** sem estratégia | Inútil | Quais testes? De qual camada? Com qual framework? |
420
+ | **"Usar cache"** sem detalhes | Especulação | Qual tecnologia? TTL? Invaliação? Justificativa? |
421
+ | **Componentes sem camada** | Violação arquitetural | Todo componente tem camada e dependências explícitas |
422
+ | **Diagrama especulativo** | Desperdiça contexto | Apenas componentes mencionados no PRD |
423
+
424
+ ### 5.2. Padrões de Qualidade por Seção do Template
425
+
426
+ | Seção | Requisito Mínimo | Referência da Skill |
427
+ |:---|:---|:---|
428
+ | **1. Introdução** | Paradigma + tecnologias + padrões em 150 palavras | 2.2, 2.15 |
429
+ | **2. Arquitetura** | Context diagram + tabela de componentes | 2.2, 2.3 |
430
+ | **3. Dados** | Entidades com tipos, constraints, relacionamentos | 2.4, 2.13 |
431
+ | **4. Interfaces** | Endpoints completos com request/response | 2.5, 2.10 |
432
+ | **5. Lógica** | Fluxo principal + edge cases com decisões | 2.7, 2.8, 2.14 |
433
+ | **6. Observabilidade** | Logs + métricas + tracing | 2.11 |
434
+ | **7. Segurança** | Auth + dados sensíveis + rate limit | 2.10 |
435
+ | **8. Implementação** | Plano modular, máximo 10 passos | 2.8, 2.12 |
436
+
437
+ ### 5.3. Validação de Completude
438
+
439
+ Antes de finalizar a TechSpec, verificar:
440
+
441
+ **Dados:**
442
+ - [ ] Toda tabela tem PK definida com tipo
443
+ - [ ] Toda FK tem onDelete/onUpdate behavior
444
+ - [ ] Índices justificados para queries frequentes
445
+ - [ ] Migração necessária identificada
446
+
447
+ **APIs:**
448
+ - [ ] Todo endpoint tem método, rota e versão
449
+ - [ ] Todo endpoint tem request e response com tipos
450
+ - [ ] Status codes cobrem sucesso, erro de validação, não encontrado e erro interno
451
+ - [ ] Headers necessários documentados (auth, content-type)
452
+
453
+ **Lógica:**
454
+ - [ ] Fluxo principal com passos numerados
455
+ - [ ] Cada validação tem ação específica em caso de falha
456
+ - [ ] Edge cases mapeados com comportamento definido
457
+ - [ ] Concorrência tratada quando aplicável
458
+
459
+ **Implementação:**
460
+ - [ ] Máximo 10 passos
461
+ - [ ] Cada passo é independente (pode virar task)
462
+ - [ ] Cada passo foca em UMA camada tecnológica
463
+ - [ ] Ordem lógica com dependências claras
464
+
465
+ ## 6. Gestão de Status
466
+
467
+ **Fluxo obrigatório:** DRAFT → IN_PROGRESS → APPROVED
468
+
469
+ | De | Para | Trigger |
470
+ |:---|:---|:---|
471
+ | DRAFT | IN_PROGRESS | Primeira pergunta de clarificação feita |
472
+ | IN_PROGRESS | APPROVED | Validação completa com zero problemas de alta/média severidade |
473
+
474
+ **NUNCA** alterar status para APPROVED sem validação completa de todos os checkpoints.
475
+
476
+ ## 7. Referências Detalhadas
477
+
478
+ Para aprofundamento em cada domínio técnico, consulte:
479
+
480
+ - **Padrões arquiteturais e decisões de design:** `references/architecture-patterns.md`
481
+ - **Modelagem de banco de dados e migrations:** `references/database-modeling.md`
482
+ - **Design de APIs e contratos:** `references/api-contracts.md`
483
+ - **Usabilidade, acessibilidade e design de interfaces:** `references/ux-ui-accessibility.md`
484
+ - **Segurança e hardening:** `references/security-hardening.md`
485
+ - **Observabilidade, métricas e testes:** `references/observability-testing.md`
486
+
487
+ ---
488
+
489
+ Use esta skill sempre que trabalhar com `/gerar-techspec` ou qualquer tarefa de especificação técnica.