@maestro-ai/cli 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/README.md +59 -0
- package/content/guides/Cat/303/241logo de Stacks para Cloud Moderna.md" +119 -0
- package/content/guides/Cat/303/241logo de Stacks para Hospedagem Compartilhada.md" +147 -0
- package/content/guides/Checklist Mestre de Entrega.md +68 -0
- package/content/guides/Gates de Qualidade.md +209 -0
- package/content/guides/Guia de Adi/303/247/303/243o de Novas Funcionalidades.md" +355 -0
- package/content/guides/Guia de Chaos Engineering.md +267 -0
- package/content/guides/Guia de Debugging com IA.md +135 -0
- package/content/guides/Guia de Estrat/303/251gias de Cache.md" +352 -0
- package/content/guides/Guia de Migrations Zero-Downtime.md +311 -0
- package/content/guides/Guia de Multi-tenancy.md +368 -0
- package/content/guides/Guia de Otimiza/303/247/303/243o de Custos Cloud.md" +195 -0
- package/content/guides/Guia de Refatora/303/247/303/243o de C/303/263digo Legado com IA.md" +162 -0
- package/content/guides/Guia de SLOs e Error Budgets.md +315 -0
- package/content/guides/M/303/251tricas de Efici/303/252ncia do Desenvolvimento com IA.md" +93 -0
- package/content/guides/Rules base.md +90 -0
- package/content/prompts/README.md +203 -0
- package/content/prompts/acessibilidade/analise-acessibilidade.md +257 -0
- package/content/prompts/apis/design-api-rest.md +303 -0
- package/content/prompts/apis/idempotencia.md +254 -0
- package/content/prompts/apis/versionamento.md +313 -0
- package/content/prompts/arquitetura/arquitetura-c4-completo.md +190 -0
- package/content/prompts/arquitetura/clean-architecture.md +151 -0
- package/content/prompts/arquitetura/ddd-bounded-contexts.md +183 -0
- package/content/prompts/arquitetura/ddd-cqrs.md +176 -0
- package/content/prompts/arquitetura/modelo-dominio.md +207 -0
- package/content/prompts/arquitetura/multi-tenancy.md +235 -0
- package/content/prompts/database/migrations-zero-downtime.md +192 -0
- package/content/prompts/database/otimizacao-queries.md +296 -0
- package/content/prompts/desenvolvimento/code-review.md +301 -0
- package/content/prompts/desenvolvimento/gerar-servico.md +271 -0
- package/content/prompts/devops/docker-compose.md +336 -0
- package/content/prompts/devops/feature-flags.md +374 -0
- package/content/prompts/devops/kubernetes-deploy.md +460 -0
- package/content/prompts/devops/pipeline-cicd.md +358 -0
- package/content/prompts/devops/terraform-iac.md +502 -0
- package/content/prompts/escalabilidade/analise-performance.md +240 -0
- package/content/prompts/escalabilidade/analise-performance.txt +94 -0
- package/content/prompts/escalabilidade/caching.md +255 -0
- package/content/prompts/observabilidade/chaos-testing.md +237 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.md +263 -0
- package/content/prompts/observabilidade/estrategia-observabilidade.txt +134 -0
- package/content/prompts/observabilidade/slos.md +215 -0
- package/content/prompts/produto/discovery-inicial.md +203 -0
- package/content/prompts/produto/discovery-inicial.txt +33 -0
- package/content/prompts/requisitos/refinar-requisitos.md +232 -0
- package/content/prompts/requisitos/refinar-requisitos.txt +40 -0
- package/content/prompts/seguranca/analise-seguranca.md +243 -0
- package/content/prompts/seguranca/pentest-checklist.md +333 -0
- package/content/prompts/seguranca/rate-limiting.md +356 -0
- package/content/prompts/seguranca/revisao-lgpd.md +227 -0
- package/content/prompts/seguranca/threat-modeling.md +224 -0
- package/content/prompts/testes/contract-testing.md +340 -0
- package/content/prompts/testes/gerar-testes-unitarios.md +474 -0
- package/content/prompts/testes/testes-e2e.md +460 -0
- package/content/prompts/testes/testes-integracao.md +418 -0
- package/content/prompts/testes/testes-performance.md +458 -0
- package/content/prompts/ux/gerar-ui-stitch.md +151 -0
- package/content/skills/api-patterns/SKILL.md +81 -0
- package/content/skills/api-patterns/api-style.md +42 -0
- package/content/skills/api-patterns/auth.md +24 -0
- package/content/skills/api-patterns/documentation.md +26 -0
- package/content/skills/api-patterns/graphql.md +41 -0
- package/content/skills/api-patterns/rate-limiting.md +31 -0
- package/content/skills/api-patterns/response.md +37 -0
- package/content/skills/api-patterns/rest.md +40 -0
- package/content/skills/api-patterns/scripts/api_validator.py +211 -0
- package/content/skills/api-patterns/security-testing.md +122 -0
- package/content/skills/api-patterns/trpc.md +41 -0
- package/content/skills/api-patterns/versioning.md +22 -0
- package/content/skills/app-builder/SKILL.md +75 -0
- package/content/skills/app-builder/agent-coordination.md +71 -0
- package/content/skills/app-builder/feature-building.md +53 -0
- package/content/skills/app-builder/project-detection.md +34 -0
- package/content/skills/app-builder/scaffolding.md +118 -0
- package/content/skills/app-builder/tech-stack.md +40 -0
- package/content/skills/app-builder/templates/SKILL.md +39 -0
- package/content/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/content/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/content/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/content/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/content/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
- package/content/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
- package/content/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
- package/content/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
- package/content/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/content/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
- package/content/skills/architecture/SKILL.md +55 -0
- package/content/skills/architecture/context-discovery.md +43 -0
- package/content/skills/architecture/examples.md +94 -0
- package/content/skills/architecture/pattern-selection.md +68 -0
- package/content/skills/architecture/patterns-reference.md +50 -0
- package/content/skills/architecture/trade-off-analysis.md +77 -0
- package/content/skills/bash-linux/SKILL.md +199 -0
- package/content/skills/behavioral-modes/SKILL.md +242 -0
- package/content/skills/brainstorming/SKILL.md +163 -0
- package/content/skills/brainstorming/dynamic-questioning.md +350 -0
- package/content/skills/clean-code/SKILL.md +201 -0
- package/content/skills/code-review-checklist/SKILL.md +109 -0
- package/content/skills/database-design/SKILL.md +52 -0
- package/content/skills/database-design/database-selection.md +43 -0
- package/content/skills/database-design/indexing.md +39 -0
- package/content/skills/database-design/migrations.md +48 -0
- package/content/skills/database-design/optimization.md +36 -0
- package/content/skills/database-design/orm-selection.md +30 -0
- package/content/skills/database-design/schema-design.md +56 -0
- package/content/skills/database-design/scripts/schema_validator.py +172 -0
- package/content/skills/deployment-procedures/SKILL.md +241 -0
- package/content/skills/doc.md +177 -0
- package/content/skills/documentation-templates/SKILL.md +194 -0
- package/content/skills/frontend-design/SKILL.md +396 -0
- package/content/skills/frontend-design/animation-guide.md +331 -0
- package/content/skills/frontend-design/color-system.md +311 -0
- package/content/skills/frontend-design/decision-trees.md +418 -0
- package/content/skills/frontend-design/motion-graphics.md +306 -0
- package/content/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/content/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/content/skills/frontend-design/typography-system.md +345 -0
- package/content/skills/frontend-design/ux-psychology.md +541 -0
- package/content/skills/frontend-design/visual-effects.md +383 -0
- package/content/skills/game-development/2d-games/SKILL.md +119 -0
- package/content/skills/game-development/3d-games/SKILL.md +135 -0
- package/content/skills/game-development/SKILL.md +167 -0
- package/content/skills/game-development/game-art/SKILL.md +185 -0
- package/content/skills/game-development/game-audio/SKILL.md +190 -0
- package/content/skills/game-development/game-design/SKILL.md +129 -0
- package/content/skills/game-development/mobile-games/SKILL.md +108 -0
- package/content/skills/game-development/multiplayer/SKILL.md +132 -0
- package/content/skills/game-development/pc-games/SKILL.md +144 -0
- package/content/skills/game-development/vr-ar/SKILL.md +123 -0
- package/content/skills/game-development/web-games/SKILL.md +150 -0
- package/content/skills/geo-fundamentals/SKILL.md +156 -0
- package/content/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/content/skills/i18n-localization/SKILL.md +154 -0
- package/content/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/content/skills/intelligent-routing/SKILL.md +334 -0
- package/content/skills/lint-and-validate/SKILL.md +45 -0
- package/content/skills/lint-and-validate/scripts/lint_runner.py +172 -0
- package/content/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/content/skills/mcp-builder/SKILL.md +176 -0
- package/content/skills/mobile-design/SKILL.md +394 -0
- package/content/skills/mobile-design/decision-trees.md +516 -0
- package/content/skills/mobile-design/mobile-backend.md +491 -0
- package/content/skills/mobile-design/mobile-color-system.md +420 -0
- package/content/skills/mobile-design/mobile-debugging.md +122 -0
- package/content/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/content/skills/mobile-design/mobile-navigation.md +458 -0
- package/content/skills/mobile-design/mobile-performance.md +767 -0
- package/content/skills/mobile-design/mobile-testing.md +356 -0
- package/content/skills/mobile-design/mobile-typography.md +433 -0
- package/content/skills/mobile-design/platform-android.md +666 -0
- package/content/skills/mobile-design/platform-ios.md +561 -0
- package/content/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/content/skills/mobile-design/touch-psychology.md +537 -0
- package/content/skills/nextjs-best-practices/SKILL.md +203 -0
- package/content/skills/nodejs-best-practices/SKILL.md +333 -0
- package/content/skills/parallel-agents/SKILL.md +175 -0
- package/content/skills/performance-profiling/SKILL.md +143 -0
- package/content/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/content/skills/plan-writing/SKILL.md +152 -0
- package/content/skills/powershell-windows/SKILL.md +167 -0
- package/content/skills/python-patterns/SKILL.md +441 -0
- package/content/skills/react-patterns/SKILL.md +198 -0
- package/content/skills/red-team-tactics/SKILL.md +199 -0
- package/content/skills/seo-fundamentals/SKILL.md +129 -0
- package/content/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/content/skills/server-management/SKILL.md +161 -0
- package/content/skills/systematic-debugging/SKILL.md +109 -0
- package/content/skills/tailwind-patterns/SKILL.md +269 -0
- package/content/skills/tdd-workflow/SKILL.md +149 -0
- package/content/skills/testing-patterns/SKILL.md +178 -0
- package/content/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/content/skills/vulnerability-scanner/SKILL.md +276 -0
- package/content/skills/vulnerability-scanner/checklists.md +121 -0
- package/content/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/content/skills/webapp-testing/SKILL.md +187 -0
- package/content/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/content/specialists/Especialista em Acessibilidade.md +266 -0
- package/content/specialists/Especialista em An/303/241lise de Testes.md" +434 -0
- package/content/specialists/Especialista em Arquitetura Avan/303/247ada.md" +358 -0
- package/content/specialists/Especialista em Arquitetura de Software.md +177 -0
- package/content/specialists/Especialista em Banco de Dados.md +260 -0
- package/content/specialists/Especialista em Contrato de API.md +172 -0
- package/content/specialists/Especialista em Dados e Analytics com IA.md +246 -0
- package/content/specialists/Especialista em Debugging e Troubleshooting.md +191 -0
- package/content/specialists/Especialista em Desenvolvimento Frontend.md +477 -0
- package/content/specialists/Especialista em Desenvolvimento Mobile.md +241 -0
- package/content/specialists/Especialista em Desenvolvimento e Vibe Coding Estruturado.md +417 -0
- package/content/specialists/Especialista em DevOps e Infraestrutura.md +294 -0
- package/content/specialists/Especialista em Documenta/303/247/303/243o T/303/251cnica.md" +227 -0
- package/content/specialists/Especialista em Engenharia de Requisitos com IA.md +299 -0
- package/content/specialists/Especialista em Explora/303/247/303/243o de Codebase.md" +179 -0
- package/content/specialists/Especialista em Gest/303/243o de Produto.md" +179 -0
- package/content/specialists/Especialista em Migra/303/247/303/243o e Moderniza/303/247/303/243o.md" +410 -0
- package/content/specialists/Especialista em Modelagem e Arquitetura de Dom/303/255nio com IA.md" +248 -0
- package/content/specialists/Especialista em Observabilidade.md +415 -0
- package/content/specialists/Especialista em Performance e Escalabilidade.md +373 -0
- package/content/specialists/Especialista em Plano de Execu/303/247/303/243o com IA.md" +341 -0
- package/content/specialists/Especialista em Prototipagem R/303/241pida com Google Stitch.md" +419 -0
- package/content/specialists/Especialista em Seguran/303/247a da Informa/303/247/303/243o.md" +508 -0
- package/content/specialists/Especialista em UX Design.md +453 -0
- package/content/specialists/INDEX.md +43 -0
- package/content/templates/PRD.md +165 -0
- package/content/templates/README.md +65 -0
- package/content/templates/adr.md +103 -0
- package/content/templates/arquitetura.md +279 -0
- package/content/templates/backlog.md +185 -0
- package/content/templates/checklist-seguranca.md +180 -0
- package/content/templates/contexto.md +120 -0
- package/content/templates/criterios-aceite.md +99 -0
- package/content/templates/design-banco.md +270 -0
- package/content/templates/design-doc.md +240 -0
- package/content/templates/feature.md +88 -0
- package/content/templates/historia-backend.md +84 -0
- package/content/templates/historia-frontend.md +75 -0
- package/content/templates/historia-usuario.md +125 -0
- package/content/templates/mapa-navegacao.md +133 -0
- package/content/templates/matriz-rastreabilidade.md +121 -0
- package/content/templates/modelo-dominio.md +219 -0
- package/content/templates/plano-testes.md +199 -0
- package/content/templates/prototipo-stitch.md +138 -0
- package/content/templates/requisitos.md +162 -0
- package/content/templates/slo-sli.md +197 -0
- package/content/workflows/README-MCP.md +363 -0
- package/content/workflows/brainstorm.md +113 -0
- package/content/workflows/create.md +59 -0
- package/content/workflows/debug.md +103 -0
- package/content/workflows/deploy.md +176 -0
- package/content/workflows/enhance.md +63 -0
- package/content/workflows/mcp-debug.md +506 -0
- package/content/workflows/mcp-feature.md +385 -0
- package/content/workflows/mcp-gate.md +413 -0
- package/content/workflows/mcp-next.md +388 -0
- package/content/workflows/mcp-refactor.md +600 -0
- package/content/workflows/mcp-start.md +304 -0
- package/content/workflows/mcp-status.md +400 -0
- package/content/workflows/orchestrate.md +237 -0
- package/content/workflows/plan.md +89 -0
- package/content/workflows/preview.md +81 -0
- package/content/workflows/status.md +86 -0
- package/content/workflows/test.md +144 -0
- package/content/workflows/ui-ux-pro-max.md +296 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.js +138 -0
- package/dist/commands/update.d.ts +5 -0
- package/dist/commands/update.js +50 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +21 -0
- package/package.json +48 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Métricas de Eficiência do Desenvolvimento com IA
|
|
2
|
+
|
|
3
|
+
Como medir o impacto do uso de IA no seu fluxo de desenvolvimento.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Por que Medir?
|
|
8
|
+
|
|
9
|
+
- Justificar investimento em ferramentas de IA
|
|
10
|
+
- Identificar onde IA agrega mais valor
|
|
11
|
+
- Otimizar prompts e workflows
|
|
12
|
+
- Treinar equipe em melhores práticas
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Métricas Principais
|
|
17
|
+
|
|
18
|
+
### 1. Tempo Economizado
|
|
19
|
+
|
|
20
|
+
| Atividade | Sem IA | Com IA | Economia |
|
|
21
|
+
|---|---|---|---|
|
|
22
|
+
| Escrever testes | X min | Y min | Z% |
|
|
23
|
+
| Documentar código | X min | Y min | Z% |
|
|
24
|
+
| Debug de erro | X min | Y min | Z% |
|
|
25
|
+
| Boilerplate/scaffolding | X min | Y min | Z% |
|
|
26
|
+
|
|
27
|
+
**Como medir:** Time tracking em tarefas similares com/sem IA
|
|
28
|
+
|
|
29
|
+
### 2. Taxa de Aceitação de Código
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Taxa = (Código aceito da IA) / (Total gerado pela IA) × 100
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
- **> 80%**: IA bem calibrada, prompts eficientes
|
|
36
|
+
- **50-80%**: Revisar qualidade dos prompts
|
|
37
|
+
- **< 50%**: Repensar uso ou treinar equipe
|
|
38
|
+
|
|
39
|
+
### 3. Qualidade do Código Gerado
|
|
40
|
+
|
|
41
|
+
- **Bugs encontrados** em código gerado por IA vs. escrito manualmente
|
|
42
|
+
- **Cobertura de testes** de código gerado
|
|
43
|
+
- **Complexidade ciclomática** do código gerado
|
|
44
|
+
|
|
45
|
+
### 4. Velocidade de Entrega
|
|
46
|
+
|
|
47
|
+
- **Lead time** de features (início → produção)
|
|
48
|
+
- **Cycle time** de tarefas individuais
|
|
49
|
+
- **Throughput** (features entregues por sprint)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Template de Acompanhamento
|
|
54
|
+
|
|
55
|
+
```markdown
|
|
56
|
+
## Sprint X - Métricas de IA
|
|
57
|
+
|
|
58
|
+
### Resumo
|
|
59
|
+
- Tarefas com apoio de IA: X/Y
|
|
60
|
+
- Tempo total economizado: ~X horas
|
|
61
|
+
- Taxa de aceitação média: X%
|
|
62
|
+
|
|
63
|
+
### Por Atividade
|
|
64
|
+
| Atividade | Usos | Taxa Aceitação | Tempo Economizado |
|
|
65
|
+
|---|---|---|---|
|
|
66
|
+
| Geração de testes | X | X% | X min |
|
|
67
|
+
| Debugging | X | X% | X min |
|
|
68
|
+
| Documentação | X | X% | X min |
|
|
69
|
+
|
|
70
|
+
### Observações
|
|
71
|
+
- O que funcionou bem:
|
|
72
|
+
- O que pode melhorar:
|
|
73
|
+
- Prompts a documentar:
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Ferramentas de Medição
|
|
79
|
+
|
|
80
|
+
- **Time tracking:** Toggl, Clockify, Harvest
|
|
81
|
+
- **Métricas de código:** SonarQube, Code Climate
|
|
82
|
+
- **Métricas de entrega:** Jira, Linear, GitHub Projects
|
|
83
|
+
- **Logs de uso:** Salvar prompts úteis e resultados
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Boas Práticas
|
|
88
|
+
|
|
89
|
+
1. **Meça por um período** antes de tirar conclusões (mínimo 2-4 sprints)
|
|
90
|
+
2. **Compare tarefas similares** para evitar viés
|
|
91
|
+
3. **Inclua tempo de revisão** na conta - código gerado precisa ser revisado
|
|
92
|
+
4. **Documente prompts eficientes** para reuso da equipe
|
|
93
|
+
5. **Itere** - ajuste prompts baseado em métricas
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Regras do Cursor (Template Padrão Universal)
|
|
2
|
+
|
|
3
|
+
Arquivo `.cursor-rules` para configuração do ambiente de desenvolvimento
|
|
4
|
+
quando estiver usando um assistente de código/IA como "engenheiro sênior virtual".
|
|
5
|
+
|
|
6
|
+
## 🎯 Persona
|
|
7
|
+
Engenheiro de Software Sênior/Tech Lead focado em código production-ready:
|
|
8
|
+
limpo, escalável, seguro e testado.
|
|
9
|
+
|
|
10
|
+
### Comportamento Esperado
|
|
11
|
+
- Pragmático, com foco em soluções robustas.
|
|
12
|
+
- Antecipa edge cases.
|
|
13
|
+
- Comunicação clara e direta.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 💻 Stack Técnica
|
|
18
|
+
|
|
19
|
+
Este template é **agnóstico de stack**, mas traz exemplos para
|
|
20
|
+
um cenário comum de front-end Web com TypeScript/React.
|
|
21
|
+
|
|
22
|
+
- **Linguagens/Frameworks**: definidos no Tech Spec do projeto.
|
|
23
|
+
- **Frontend (exemplo)**: React/Next.js com TypeScript.
|
|
24
|
+
- **Backend (exemplo)**: Node/Nest, Java/Spring, .NET, ou outro definido no projeto.
|
|
25
|
+
- **Banco/ORM (exemplo)**: PostgreSQL, Prisma/TypeORM/JPA, etc.
|
|
26
|
+
- **Estilo/UI**: Design System definido (ex.: Tailwind, shadcn/ui, Material UI etc.).
|
|
27
|
+
|
|
28
|
+
> Adapte estes exemplos para a stack concreta do projeto antes de iniciar.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## ✍️ Diretrizes de Código
|
|
33
|
+
|
|
34
|
+
1. **Clean Code**: legibilidade, SRP, manutenibilidade.
|
|
35
|
+
2. **SOLID**: aplicar onde fizer sentido (sem over-engineering).
|
|
36
|
+
3. **Separação de Responsabilidades** (para Web, como exemplo):
|
|
37
|
+
- Componentes: UI pura (sem lógica complexa de negócio).
|
|
38
|
+
- Hooks/Serviços: lógica de estado e de aplicação.
|
|
39
|
+
4. **Padrões gerais**:
|
|
40
|
+
- Prefira `async/await` a `.then()`
|
|
41
|
+
- Evite `any` em TypeScript; use tipagem explícita.
|
|
42
|
+
- Nomenclatura consistente:
|
|
43
|
+
- Componentes React: `MeuComponente.tsx` (PascalCase)
|
|
44
|
+
- Hooks: `useMeuHook.ts` (camelCase)
|
|
45
|
+
- Demais arquivos: `meu-arquivo.ts` (kebab-case) ou convenção local do projeto.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🧪 Estratégia de Testes
|
|
50
|
+
|
|
51
|
+
Os nomes abaixo são **exemplos**; troque pelas ferramentas da sua stack.
|
|
52
|
+
|
|
53
|
+
### 1. Componentes Visuais (Dumb)
|
|
54
|
+
- **O que testar**: variações de estado (default, hover, disabled, error).
|
|
55
|
+
- **Ferramentas típicas**: Storybook ou equivalente para documentação interativa.
|
|
56
|
+
- **Exemplo**: `Button.stories.tsx` (ou similar na sua stack).
|
|
57
|
+
|
|
58
|
+
### 2. Lógica de Estado / Domínio (Smart)
|
|
59
|
+
- **O que testar**: hooks, serviços, regras de negócio.
|
|
60
|
+
- **Ferramentas típicas**:
|
|
61
|
+
- JavaScript/TypeScript: Jest/Vitest + Testing Library.
|
|
62
|
+
- Python: pytest.
|
|
63
|
+
- Java: JUnit.
|
|
64
|
+
- **Abordagem**: TDD sempre que possível em regras críticas.
|
|
65
|
+
|
|
66
|
+
### 3. Fluxos de Usuário (E2E)
|
|
67
|
+
- **O que testar**: jornadas completas (Login, Cadastro, Checkout etc.).
|
|
68
|
+
- **Ferramentas típicas**: Playwright, Cypress, Selenium, etc.
|
|
69
|
+
- **Abordagem**: documentar cenários críticos e evitar excesso de flakiness.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 🗂️ Estrutura de Arquivos (exemplo)
|
|
74
|
+
|
|
75
|
+
Ajuste os caminhos de acordo com o framework real:
|
|
76
|
+
|
|
77
|
+
- **API**: `[caminho/para/openapi.yaml]`
|
|
78
|
+
- **Banco**: `[caminho/para/schema.prisma ou migrations/]`
|
|
79
|
+
- **UI**: `[src/components/ui/]`
|
|
80
|
+
- **Rotas**: `[src/app/api/ ou equivalente]`
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 💬 Comportamento de Resposta da IA
|
|
85
|
+
|
|
86
|
+
1. **Autonomia**: resolver em uma resposta quando possível, sem depender de múltiplas idas e vindas desnecessárias.
|
|
87
|
+
2. **Clareza**: pedir esclarecimentos em casos ambíguos ao invés de supor demais.
|
|
88
|
+
3. **Justificativa**: explicar decisões arquiteturais importantes com prós e contras.
|
|
89
|
+
4. **Contexto**: sempre considerar o Tech Spec, o Playbook de Desenvolvimento com IA
|
|
90
|
+
e os especialistas relevantes ao responder.
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Biblioteca de Prompts
|
|
2
|
+
|
|
3
|
+
Templates de prompts prontos para uso organizados por área.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Como Usar
|
|
8
|
+
|
|
9
|
+
1. Copie o prompt da área desejada
|
|
10
|
+
2. Substitua os placeholders `[...]` com seu contexto
|
|
11
|
+
3. Cole na sua IA preferida (Claude, GPT, Gemini)
|
|
12
|
+
4. Valide usando o checklist no final de cada prompt
|
|
13
|
+
|
|
14
|
+
> **Dica**: Sempre inclua o conteúdo de `docs/CONTEXTO.md` para melhor resultado.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Como Escolher o Prompt Certo
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
flowchart TD
|
|
22
|
+
START[Início] --> Q1{Qual fase do projeto?}
|
|
23
|
+
|
|
24
|
+
Q1 --> |Ideia inicial| DISC[discovery-inicial.md]
|
|
25
|
+
Q1 --> |Definindo escopo| REQ[refinar-requisitos.md]
|
|
26
|
+
Q1 --> |Modelando dados| MODEL[modelo-dominio.md]
|
|
27
|
+
Q1 --> |Prototipando UI| STITCH[gerar-ui-stitch.md]
|
|
28
|
+
|
|
29
|
+
Q1 --> |Arquitetura| Q2{Complexidade?}
|
|
30
|
+
Q2 --> |Simples/Médio| CLEAN[clean-architecture.md]
|
|
31
|
+
Q2 --> |Médio| C4[arquitetura-c4-completo.md]
|
|
32
|
+
Q2 --> |Complexo| DDD[ddd-cqrs.md ou ddd-bounded-contexts.md]
|
|
33
|
+
|
|
34
|
+
Q1 --> |Implementando| Q3{O que precisa?}
|
|
35
|
+
Q3 --> |API Design| API[design-api-rest.md]
|
|
36
|
+
Q3 --> |Serviço| SERV[gerar-servico.md]
|
|
37
|
+
Q3 --> |Testes| TEST[gerar-testes-unitarios.md]
|
|
38
|
+
Q3 --> |Review| REVIEW[code-review.md]
|
|
39
|
+
|
|
40
|
+
Q1 --> |Preparando produção| Q4{Área?}
|
|
41
|
+
Q4 --> |Performance| PERF[analise-performance.md]
|
|
42
|
+
Q4 --> |Observabilidade| OBS[estrategia-observabilidade.md]
|
|
43
|
+
Q4 --> |Segurança| SEC[analise-seguranca.md]
|
|
44
|
+
Q4 --> |CI/CD| CICD[pipeline-cicd.md]
|
|
45
|
+
Q4 --> |Banco de dados| DB[otimizacao-queries.md]
|
|
46
|
+
Q4 --> |Acessibilidade| A11Y[analise-acessibilidade.md]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Índice de Prompts
|
|
52
|
+
|
|
53
|
+
### 📋 Produto & Requisitos
|
|
54
|
+
|
|
55
|
+
| Prompt | Quando Usar | Nível |
|
|
56
|
+
|--------|-------------|-------|
|
|
57
|
+
| [discovery-inicial.md](./produto/discovery-inicial.md) | Início de projeto, ideia vaga | Simples |
|
|
58
|
+
| [refinar-requisitos.md](./requisitos/refinar-requisitos.md) | Após discovery, formalizar requisitos | Simples |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### 🎨 UX & Prototipagem
|
|
63
|
+
|
|
64
|
+
| Prompt | Quando Usar | Nível |
|
|
65
|
+
|--------|-------------|-------|
|
|
66
|
+
| [gerar-ui-stitch.md](./ux/gerar-ui-stitch.md) | Prototipar UI com Google Stitch | Simples |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### 🏗️ Arquitetura & Modelagem
|
|
71
|
+
|
|
72
|
+
| Prompt | Quando Usar | Nível |
|
|
73
|
+
|--------|-------------|-------|
|
|
74
|
+
| [modelo-dominio.md](./arquitetura/modelo-dominio.md) | Modelar entidades e relacionamentos | Simples |
|
|
75
|
+
| [arquitetura-c4-completo.md](./arquitetura/arquitetura-c4-completo.md) | Definir arquitetura com diagramas C4 | Médio |
|
|
76
|
+
| [clean-architecture.md](./arquitetura/clean-architecture.md) | Arquitetura limpa para projetos médios | Médio |
|
|
77
|
+
| [ddd-bounded-contexts.md](./arquitetura/ddd-bounded-contexts.md) | Definir contextos em DDD | Complexo |
|
|
78
|
+
| [ddd-cqrs.md](./arquitetura/ddd-cqrs.md) | DDD + CQRS para sistemas complexos | Complexo |
|
|
79
|
+
| [multi-tenancy.md](./arquitetura/multi-tenancy.md) | Arquitetura multi-tenant para SaaS | Complexo |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### 🔌 APIs
|
|
84
|
+
|
|
85
|
+
| Prompt | Quando Usar | Nível |
|
|
86
|
+
|--------|-------------|-------|
|
|
87
|
+
| [design-api-rest.md](./apis/design-api-rest.md) | Projetar API REST com OpenAPI | Médio |
|
|
88
|
+
| [idempotencia.md](./apis/idempotencia.md) | Implementar idempotência em endpoints | Médio |
|
|
89
|
+
| [versionamento.md](./apis/versionamento.md) | Estratégias de versionamento de API | Médio |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 💻 Desenvolvimento
|
|
94
|
+
|
|
95
|
+
| Prompt | Quando Usar | Nível |
|
|
96
|
+
|--------|-------------|-------|
|
|
97
|
+
| [gerar-servico.md](./desenvolvimento/gerar-servico.md) | Gerar código de serviços/use cases | Médio |
|
|
98
|
+
| [code-review.md](./desenvolvimento/code-review.md) | Revisar código de PRs | Médio |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### 🧪 Testes
|
|
103
|
+
|
|
104
|
+
| Prompt | Quando Usar | Nível |
|
|
105
|
+
|--------|-------------|-------|
|
|
106
|
+
| [gerar-testes-unitarios.md](./testes/gerar-testes-unitarios.md) | Criar testes unitários | Simples |
|
|
107
|
+
| [testes-integracao.md](./testes/testes-integracao.md) | Testes de integração com banco/APIs | Médio |
|
|
108
|
+
| [testes-e2e.md](./testes/testes-e2e.md) | Testes end-to-end com Playwright | Médio |
|
|
109
|
+
| [testes-performance.md](./testes/testes-performance.md) | Load testing com k6 | Médio |
|
|
110
|
+
| [contract-testing.md](./testes/contract-testing.md) | Contract testing com Pact | Médio |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### 🚀 Performance & Escalabilidade
|
|
115
|
+
|
|
116
|
+
| Prompt | Quando Usar | Nível |
|
|
117
|
+
|--------|-------------|-------|
|
|
118
|
+
| [analise-performance.md](./escalabilidade/analise-performance.md) | Identificar e corrigir gargalos | Médio |
|
|
119
|
+
| [caching.md](./escalabilidade/caching.md) | Estratégias de cache com Redis | Médio |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 🗄️ Database
|
|
124
|
+
|
|
125
|
+
| Prompt | Quando Usar | Nível |
|
|
126
|
+
|--------|-------------|-------|
|
|
127
|
+
| [otimizacao-queries.md](./database/otimizacao-queries.md) | Otimizar banco de dados e queries | Médio |
|
|
128
|
+
| [migrations-zero-downtime.md](./database/migrations-zero-downtime.md) | Migrations sem downtime | Médio |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### 📊 Observabilidade
|
|
133
|
+
|
|
134
|
+
| Prompt | Quando Usar | Nível |
|
|
135
|
+
|--------|-------------|-------|
|
|
136
|
+
| [estrategia-observabilidade.md](./observabilidade/estrategia-observabilidade.md) | Configurar logs, métricas, traces | Médio |
|
|
137
|
+
| [slos.md](./observabilidade/slos.md) | Definir SLOs, SLIs e Error Budgets | Médio |
|
|
138
|
+
| [chaos-testing.md](./observabilidade/chaos-testing.md) | Experimentos de chaos engineering | Complexo |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### 🔐 Segurança
|
|
143
|
+
|
|
144
|
+
| Prompt | Quando Usar | Nível |
|
|
145
|
+
|--------|-------------|-------|
|
|
146
|
+
| [analise-seguranca.md](./seguranca/analise-seguranca.md) | Análise OWASP Top 10 | Médio |
|
|
147
|
+
| [threat-modeling.md](./seguranca/threat-modeling.md) | Modelagem de ameaças STRIDE | Médio |
|
|
148
|
+
| [revisao-lgpd.md](./seguranca/revisao-lgpd.md) | Conformidade LGPD/GDPR | Médio |
|
|
149
|
+
| [pentest-checklist.md](./seguranca/pentest-checklist.md) | Checklist de pentest para devs | Médio |
|
|
150
|
+
| [rate-limiting.md](./seguranca/rate-limiting.md) | Rate limiting e throttling | Médio |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### ⚙️ DevOps
|
|
155
|
+
|
|
156
|
+
| Prompt | Quando Usar | Nível |
|
|
157
|
+
|--------|-------------|-------|
|
|
158
|
+
| [pipeline-cicd.md](./devops/pipeline-cicd.md) | Configurar CI/CD com GitHub Actions | Médio |
|
|
159
|
+
| [docker-compose.md](./devops/docker-compose.md) | Docker Compose multi-ambiente | Médio |
|
|
160
|
+
| [kubernetes-deploy.md](./devops/kubernetes-deploy.md) | Deploy Kubernetes com manifests | Complexo |
|
|
161
|
+
| [terraform-iac.md](./devops/terraform-iac.md) | Infrastructure as Code com Terraform | Complexo |
|
|
162
|
+
| [feature-flags.md](./devops/feature-flags.md) | Feature flags e rollout gradual | Médio |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### ♿ Acessibilidade
|
|
167
|
+
|
|
168
|
+
| Prompt | Quando Usar | Nível |
|
|
169
|
+
|--------|-------------|-------|
|
|
170
|
+
| [analise-acessibilidade.md](./acessibilidade/analise-acessibilidade.md) | Verificar WCAG 2.1, screen readers | Médio |
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Estrutura dos Prompts
|
|
175
|
+
|
|
176
|
+
Todos os prompts seguem a mesma estrutura:
|
|
177
|
+
|
|
178
|
+
```markdown
|
|
179
|
+
# Prompt: [Nome]
|
|
180
|
+
|
|
181
|
+
> **Quando usar**: [Contexto]
|
|
182
|
+
> **Especialista**: [Link para especialista]
|
|
183
|
+
> **Nível**: [Simples/Médio/Complexo]
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Fluxo de Contexto
|
|
188
|
+
[Documentos de entrada e saída]
|
|
189
|
+
|
|
190
|
+
## Prompt Completo
|
|
191
|
+
[Prompt para copiar]
|
|
192
|
+
|
|
193
|
+
## Exemplo de Uso
|
|
194
|
+
[Exemplo preenchido]
|
|
195
|
+
|
|
196
|
+
## Resposta Esperada
|
|
197
|
+
[Exemplo de saída]
|
|
198
|
+
|
|
199
|
+
## Checklist Pós-Geração
|
|
200
|
+
[Validações do resultado]
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# Prompt: Análise de Acessibilidade
|
|
2
|
+
|
|
3
|
+
> **Quando usar**: Durante desenvolvimento de UI ou antes de ir para produção
|
|
4
|
+
> **Especialista**: UX/UI Design
|
|
5
|
+
> **Nível**: Médio
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Fluxo de Contexto
|
|
10
|
+
|
|
11
|
+
Antes de usar este prompt, tenha em mãos:
|
|
12
|
+
- URL do site/app ou código HTML/React
|
|
13
|
+
- Tipo de aplicação (web, mobile, desktop)
|
|
14
|
+
|
|
15
|
+
Após gerar, salve o resultado em:
|
|
16
|
+
- `docs/11-acessibilidade/analise-acessibilidade.md`
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Prompt Completo
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
Atue como especialista em acessibilidade digital (WCAG).
|
|
24
|
+
|
|
25
|
+
## Contexto
|
|
26
|
+
|
|
27
|
+
Tipo de aplicação: [Web app / Mobile app / Site institucional]
|
|
28
|
+
Framework: [React/Vue/Angular/HTML puro]
|
|
29
|
+
Público-alvo: [Descreva o público, incluindo se há foco em usuários com deficiência]
|
|
30
|
+
|
|
31
|
+
## Código/URL a Analisar
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
[COLE O CÓDIGO HTML OU COMPONENTE REACT/VUE]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Ou: [URL do site para análise]
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Sua Missão
|
|
42
|
+
|
|
43
|
+
Realize uma análise de acessibilidade baseada em WCAG 2.1:
|
|
44
|
+
|
|
45
|
+
### 1. Análise por Princípio WCAG
|
|
46
|
+
|
|
47
|
+
#### 1.1 Perceivable (Perceptível)
|
|
48
|
+
- Textos alternativos para imagens
|
|
49
|
+
- Legendas para vídeos e áudios
|
|
50
|
+
- Contraste de cores (mínimo 4.5:1)
|
|
51
|
+
- Redimensionamento de texto (até 200%)
|
|
52
|
+
- Conteúdo sem depender apenas de cor
|
|
53
|
+
|
|
54
|
+
#### 1.2 Operable (Operável)
|
|
55
|
+
- Navegação por teclado
|
|
56
|
+
- Tempo suficiente para leitura
|
|
57
|
+
- Sem elementos que causem convulsões (flashing)
|
|
58
|
+
- Skip links para conteúdo principal
|
|
59
|
+
- Títulos e labels claros
|
|
60
|
+
|
|
61
|
+
#### 1.3 Understandable (Compreensível)
|
|
62
|
+
- Texto legível e compreensível
|
|
63
|
+
- Comportamento previsível
|
|
64
|
+
- Ajuda na correção de erros
|
|
65
|
+
- Labels em formulários
|
|
66
|
+
|
|
67
|
+
#### 1.4 Robust (Robusto)
|
|
68
|
+
- Compatibilidade com tecnologias assistivas
|
|
69
|
+
- HTML semântico
|
|
70
|
+
- ARIA roles quando necessário
|
|
71
|
+
|
|
72
|
+
### 2. Checklist de Problemas
|
|
73
|
+
|
|
74
|
+
Para cada problema encontrado:
|
|
75
|
+
|
|
76
|
+
| Critério WCAG | Severidade | Elemento | Problema | Solução |
|
|
77
|
+
|---------------|------------|----------|----------|---------|
|
|
78
|
+
| [Ex: 1.1.1] | [A/AA/AAA] | [Elemento] | [Descrição] | [Como corrigir] |
|
|
79
|
+
|
|
80
|
+
### 3. Navegação por Teclado
|
|
81
|
+
|
|
82
|
+
- Tab order está lógico?
|
|
83
|
+
- Focus visible em todos os elementos?
|
|
84
|
+
- Todos os controles são acessíveis?
|
|
85
|
+
- Modais capturam foco corretamente?
|
|
86
|
+
- Atalhos de teclado documentados?
|
|
87
|
+
|
|
88
|
+
### 4. Screen Reader
|
|
89
|
+
|
|
90
|
+
- Headings hierárquicos (h1 > h2 > h3)?
|
|
91
|
+
- Landmarks definidos (main, nav, aside)?
|
|
92
|
+
- Live regions para conteúdo dinâmico?
|
|
93
|
+
- Formulários com labels associados?
|
|
94
|
+
- Tabelas com headers definidos?
|
|
95
|
+
|
|
96
|
+
### 5. Contraste e Cores
|
|
97
|
+
|
|
98
|
+
- Texto normal: 4.5:1 mínimo
|
|
99
|
+
- Texto grande: 3:1 mínimo
|
|
100
|
+
- Componentes UI: 3:1 mínimo
|
|
101
|
+
- Não depende apenas de cor
|
|
102
|
+
|
|
103
|
+
### 6. Formulários
|
|
104
|
+
|
|
105
|
+
- Todos os inputs têm labels
|
|
106
|
+
- Erros claramente identificados
|
|
107
|
+
- Instruções antes do campo
|
|
108
|
+
- Campos obrigatórios indicados
|
|
109
|
+
- Mensagens de erro associadas ao campo
|
|
110
|
+
|
|
111
|
+
### 7. Código Corrigido
|
|
112
|
+
|
|
113
|
+
Forneça exemplos de código corrigido para os principais problemas:
|
|
114
|
+
|
|
115
|
+
**Antes:**
|
|
116
|
+
```html
|
|
117
|
+
[Código com problema]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Depois:**
|
|
121
|
+
```html
|
|
122
|
+
[Código corrigido com comentários]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### 8. Ferramentas de Teste
|
|
126
|
+
|
|
127
|
+
Recomende ferramentas para testar:
|
|
128
|
+
- Automatizadas (axe, WAVE, Lighthouse)
|
|
129
|
+
- Manuais (VoiceOver, NVDA, JAWS)
|
|
130
|
+
- Simuladores de daltonismo
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Exemplo de Uso
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
Atue como especialista em acessibilidade digital (WCAG).
|
|
139
|
+
|
|
140
|
+
## Contexto
|
|
141
|
+
|
|
142
|
+
Tipo de aplicação: Web app
|
|
143
|
+
Framework: React + Next.js
|
|
144
|
+
Público-alvo: Clientes de salão de beleza, incluindo idosos
|
|
145
|
+
|
|
146
|
+
## Código a Analisar
|
|
147
|
+
|
|
148
|
+
```jsx
|
|
149
|
+
function AgendamentoForm() {
|
|
150
|
+
return (
|
|
151
|
+
<div>
|
|
152
|
+
<div style={{color: '#999', background: '#fff'}}>
|
|
153
|
+
<img src="/calendar.png" />
|
|
154
|
+
<input type="text" placeholder="Seu nome" />
|
|
155
|
+
<input type="tel" placeholder="Telefone" />
|
|
156
|
+
<select>
|
|
157
|
+
<option>Selecione um serviço</option>
|
|
158
|
+
<option>Corte</option>
|
|
159
|
+
<option>Manicure</option>
|
|
160
|
+
</select>
|
|
161
|
+
<div onClick={() => submit()} style={{background: 'red', color: 'white'}}>
|
|
162
|
+
Agendar
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Resposta Esperada
|
|
174
|
+
|
|
175
|
+
### Problemas Identificados
|
|
176
|
+
|
|
177
|
+
| Critério | Severidade | Elemento | Problema | Solução |
|
|
178
|
+
|----------|------------|----------|----------|---------|
|
|
179
|
+
| 1.1.1 | A | img | Sem alt text | Adicionar alt="Ícone de calendário" |
|
|
180
|
+
| 1.4.3 | AA | texto | Contraste #999 no branco = 2.8:1 | Usar #666 ou mais escuro |
|
|
181
|
+
| 2.1.1 | A | div botão | Não acessível por teclado | Trocar por `<button>` |
|
|
182
|
+
| 1.3.1 | A | form | Inputs sem labels | Adicionar `<label>` |
|
|
183
|
+
| 4.1.2 | A | select | Sem identificação | Adicionar label/aria-label |
|
|
184
|
+
|
|
185
|
+
### Código Corrigido
|
|
186
|
+
|
|
187
|
+
```jsx
|
|
188
|
+
function AgendamentoForm() {
|
|
189
|
+
return (
|
|
190
|
+
<form
|
|
191
|
+
role="form"
|
|
192
|
+
aria-labelledby="form-title"
|
|
193
|
+
onSubmit={handleSubmit}
|
|
194
|
+
>
|
|
195
|
+
<h2 id="form-title">Agendar horário</h2>
|
|
196
|
+
|
|
197
|
+
{/* Imagem com alt text descritivo */}
|
|
198
|
+
<img src="/calendar.png" alt="Ícone de calendário" />
|
|
199
|
+
|
|
200
|
+
{/* Inputs com labels associados */}
|
|
201
|
+
<div>
|
|
202
|
+
<label htmlFor="nome">Seu nome</label>
|
|
203
|
+
<input
|
|
204
|
+
type="text"
|
|
205
|
+
id="nome"
|
|
206
|
+
name="nome"
|
|
207
|
+
required
|
|
208
|
+
aria-required="true"
|
|
209
|
+
/>
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
<div>
|
|
213
|
+
<label htmlFor="telefone">Telefone</label>
|
|
214
|
+
<input
|
|
215
|
+
type="tel"
|
|
216
|
+
id="telefone"
|
|
217
|
+
name="telefone"
|
|
218
|
+
required
|
|
219
|
+
aria-required="true"
|
|
220
|
+
/>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
<div>
|
|
224
|
+
<label htmlFor="servico">Serviço</label>
|
|
225
|
+
<select id="servico" name="servico" required>
|
|
226
|
+
<option value="">Selecione um serviço</option>
|
|
227
|
+
<option value="corte">Corte</option>
|
|
228
|
+
<option value="manicure">Manicure</option>
|
|
229
|
+
</select>
|
|
230
|
+
</div>
|
|
231
|
+
|
|
232
|
+
{/* Botão real em vez de div clicável */}
|
|
233
|
+
<button
|
|
234
|
+
type="submit"
|
|
235
|
+
style={{background: '#c00', color: 'white'}}
|
|
236
|
+
>
|
|
237
|
+
Agendar
|
|
238
|
+
</button>
|
|
239
|
+
</form>
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Checklist Pós-Geração
|
|
247
|
+
|
|
248
|
+
- [ ] Todas as imagens têm alt text
|
|
249
|
+
- [ ] Contraste mínimo 4.5:1 verificado
|
|
250
|
+
- [ ] Navegação por teclado funciona
|
|
251
|
+
- [ ] Todos os inputs têm labels
|
|
252
|
+
- [ ] Headings hierárquicos
|
|
253
|
+
- [ ] Landmarks semânticos definidos
|
|
254
|
+
- [ ] Botões usam elemento correto
|
|
255
|
+
- [ ] Focus visible em todos os elementos
|
|
256
|
+
- [ ] Testado com screen reader
|
|
257
|
+
- [ ] Salvar em `docs/11-acessibilidade/analise-acessibilidade.md`
|