create-genia-os 2.0.0 → 2.1.1
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 +154 -0
- package/bin/index.js +240 -0
- package/package.json +40 -42
- package/template/.claude/CLAUDE.md +215 -0
- package/template/.claude/agent-memory/analyst/MEMORY.md +20 -0
- package/template/.claude/agent-memory/architect/MEMORY.md +20 -0
- package/template/.claude/agent-memory/dev/MEMORY.md +20 -0
- package/template/.claude/agent-memory/devops/MEMORY.md +20 -0
- package/template/.claude/agent-memory/pm/MEMORY.md +20 -0
- package/template/.claude/agent-memory/po/MEMORY.md +20 -0
- package/template/.claude/agent-memory/qa/MEMORY.md +20 -0
- package/template/.claude/agent-memory/reviewer/MEMORY.md +20 -0
- package/template/.claude/agent-memory/sm/MEMORY.md +20 -0
- package/template/.claude/hooks/enforce-git-push-authority.py +70 -0
- package/template/.claude/hooks/precompact-session-digest.cjs +87 -0
- package/template/.claude/hooks/sql-governance.py +65 -0
- package/template/.claude/hooks/synapse-engine.cjs +122 -0
- package/template/.claude/hooks/write-path-validation.py +59 -0
- package/template/.claude/rules/agent-authority.md +39 -0
- package/template/.claude/rules/agent-handoff.md +71 -0
- package/template/.claude/rules/agent-memory.md +61 -0
- package/template/.claude/rules/ids-principles.md +52 -0
- package/template/.claude/rules/mcp-usage.md +49 -0
- package/template/.claude/rules/story-lifecycle.md +87 -0
- package/template/.claude/rules/workflow-execution.md +68 -0
- package/template/.claude/settings.json +58 -0
- package/template/.claude/settings.local.json +14 -0
- package/template/.genia/CONSTITUTION.md +129 -0
- package/template/.genia/contexts/api-patterns.md +134 -0
- package/template/.genia/contexts/nextjs-react.md +210 -0
- package/template/.genia/contexts/projeto.md +18 -0
- package/template/.genia/contexts/supabase.md +152 -0
- package/template/.genia/contexts/whatsapp-cloud.md +176 -0
- package/template/.genia/core-config.yaml +192 -0
- package/template/.genia/development/agents/analyst.md +138 -0
- package/template/.genia/development/agents/architect.md +171 -0
- package/template/.genia/development/agents/dev.md +160 -0
- package/template/.genia/development/agents/devops.md +200 -0
- package/template/.genia/development/agents/pm.md +142 -0
- package/template/.genia/development/agents/po.md +165 -0
- package/template/.genia/development/agents/qa.md +183 -0
- package/template/.genia/development/agents/reviewer.md +198 -0
- package/template/.genia/development/agents/sm.md +230 -0
- package/template/.genia/development/checklists/architecture-review.md +189 -0
- package/template/.genia/development/checklists/pre-commit.md +205 -0
- package/template/.genia/development/checklists/pre-deploy.md +230 -0
- package/template/.genia/development/checklists/qa-gate.md +216 -0
- package/template/.genia/development/checklists/story-dod.md +155 -0
- package/template/.genia/development/tasks/code-review.md +197 -0
- package/template/.genia/development/tasks/criar-prd.md +170 -0
- package/template/.genia/development/tasks/criar-spec.md +188 -0
- package/template/.genia/development/tasks/criar-story.md +185 -0
- package/template/.genia/development/tasks/debug-sistematico.md +230 -0
- package/template/.genia/development/tasks/dev-implement.md +199 -0
- package/template/.genia/development/tasks/qa-review.md +224 -0
- package/template/.genia/development/workflows/brownfield.md +178 -0
- package/template/.genia/development/workflows/delivery.md +208 -0
- package/template/.genia/development/workflows/development.md +189 -0
- package/template/.genia/development/workflows/greenfield.md +166 -0
- package/template/.genia/development/workflows/planning.md +167 -0
- package/template/.genia/development/workflows/qa-loop.md +179 -0
- package/template/.genia/development/workflows/spec-pipeline.md +192 -0
- package/template/.genia/development/workflows/story-development-cycle.md +252 -0
- package/template/.genia/guidelines/clean-code.md +98 -0
- package/template/.genia/guidelines/testing.md +176 -0
- package/template/.genia/skills/design/canvas-design.md +109 -0
- package/template/.genia/skills/design/frontend-design.md +140 -0
- package/template/.genia/skills/dev/mcp-builder.md +172 -0
- package/template/.genia/skills/dev/webapp-testing.md +150 -0
- package/template/.genia/skills/documents/docx.md +153 -0
- package/template/.genia/skills/documents/pdf.md +134 -0
- package/template/.genia/skills/documents/pptx.md +118 -0
- package/template/.genia/skills/documents/xlsx.md +140 -0
- package/template/.synapse/agent-analyst +8 -0
- package/template/.synapse/agent-architect +8 -0
- package/template/.synapse/agent-dev +8 -0
- package/template/.synapse/agent-devops +8 -0
- package/template/.synapse/agent-pm +8 -0
- package/template/.synapse/agent-po +7 -0
- package/template/.synapse/agent-qa +8 -0
- package/template/.synapse/agent-reviewer +7 -0
- package/template/.synapse/agent-sm +7 -0
- package/template/.synapse/constitution +7 -0
- package/template/.synapse/context +8 -0
- package/template/.synapse/global +8 -0
- package/template/.synapse/manifest +14 -0
- package/template/README.md +53 -0
- package/bin/create.js +0 -181
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Checklist: Pré-Commit
|
|
2
|
+
|
|
3
|
+
> Verificações obrigatórias antes de qualquer commit.
|
|
4
|
+
> Executado por @dev. Automatizável via git hooks.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Garantir que nenhum commit "sujo" entre no histórico do repositório. Um commit deve ser uma unidade de mudança coesa, funcional e segura. Esta checklist previne problemas que são muito mais custosos de corrigir depois do commit.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Checklist Completo
|
|
15
|
+
|
|
16
|
+
### Bloco 1 — Qualidade de Código (Obrigatório)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm run lint
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- [ ] Zero erros de lint
|
|
23
|
+
- [ ] Zero warnings de lint (warnings são erros em potencial)
|
|
24
|
+
- [ ] Nenhuma regra do ESLint desabilitada com `// eslint-disable` sem comentário explicativo
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm run typecheck
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- [ ] Zero erros TypeScript
|
|
31
|
+
- [ ] Nenhum `@ts-ignore` ou `@ts-expect-error` sem explicação no comentário
|
|
32
|
+
- [ ] Sem `any` usado como atalho — tipagem explícita ou `unknown`
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### Bloco 2 — Testes (Obrigatório)
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm run test
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- [ ] Todos os testes passando
|
|
43
|
+
- [ ] Nenhum teste em `skip` ou `xtest` que foi esquecido
|
|
44
|
+
- [ ] Nenhum `test.only` esquecido (faria outros testes serem ignorados no CI)
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm run coverage
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- [ ] Coverage >= 80% nas linhas modificadas
|
|
51
|
+
- [ ] Se coverage caiu abaixo de 80%: adicionar testes antes de commitar
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### Bloco 3 — Segurança (Obrigatório)
|
|
56
|
+
|
|
57
|
+
Antes de executar `git add`, verifique todos os arquivos no diff:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
git diff --staged
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- [ ] Sem passwords, tokens, API keys ou secrets hardcodados
|
|
64
|
+
- [ ] Sem credenciais de banco de dados no código
|
|
65
|
+
- [ ] Sem URLs de ambiente hardcodadas (usar variáveis de ambiente)
|
|
66
|
+
- [ ] Arquivo `.env` ou `.env.local` NÃO está sendo commitado
|
|
67
|
+
- [ ] Sem chaves privadas (`.pem`, `.key`) no staged
|
|
68
|
+
- [ ] Sem tokens de autenticação em nenhum arquivo
|
|
69
|
+
|
|
70
|
+
**Se encontrar qualquer desses:** remova ANTES de commitar. Secrets no histórico git são permanentes e comprometem a segurança do projeto.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### Bloco 4 — Limpeza de Código (Obrigatório)
|
|
75
|
+
|
|
76
|
+
Leia o diff uma vez como se fosse o reviewer:
|
|
77
|
+
|
|
78
|
+
- [ ] Sem `console.log`, `console.debug`, `console.warn` de debug esquecidos
|
|
79
|
+
- [ ] Sem código comentado desnecessariamente (use `git stash` se quiser salvar)
|
|
80
|
+
- [ ] Sem imports não utilizados
|
|
81
|
+
- [ ] Sem variáveis declaradas e não utilizadas
|
|
82
|
+
- [ ] Sem arquivos de teste manual esquecidos (`test.html`, `debug.js`, etc.)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### Bloco 5 — Conformidade com Padrões (Obrigatório)
|
|
87
|
+
|
|
88
|
+
- [ ] Todos os imports novos usam paths absolutos com `@/`
|
|
89
|
+
- [ ] Nenhum import relativo com `../../` em arquivos novos
|
|
90
|
+
- [ ] Nomenclatura seguindo os padrões do SPEC-TECNICO (camelCase, PascalCase)
|
|
91
|
+
- [ ] Arquivos criados nas pastas corretas conforme estrutura definida
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### Bloco 6 — Formato do Commit (Obrigatório)
|
|
96
|
+
|
|
97
|
+
A mensagem de commit deve seguir o formato:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
tipo(escopo): descrição em imperativo presente
|
|
101
|
+
|
|
102
|
+
[corpo opcional com contexto adicional]
|
|
103
|
+
|
|
104
|
+
Story: STORY-XXX
|
|
105
|
+
Co-Authored-By: GEN.IA OS <genia@bedata.com.br>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
- [ ] Tipo válido: `feat`, `fix`, `refactor`, `test`, `docs`, `style`, `chore`
|
|
109
|
+
- [ ] Escopo relevante ao módulo modificado
|
|
110
|
+
- [ ] Descrição em imperativo: "adicionar", "corrigir", "implementar" (não "adicionado", "foi corrigido")
|
|
111
|
+
- [ ] Descrição em até 72 caracteres na primeira linha
|
|
112
|
+
- [ ] Story ID incluído quando aplicável
|
|
113
|
+
- [ ] Co-authored-by incluído
|
|
114
|
+
|
|
115
|
+
**Exemplos corretos:**
|
|
116
|
+
```
|
|
117
|
+
feat(auth): implementar formulário de login com validação de email
|
|
118
|
+
fix(api): corrigir erro 500 ao criar usuário sem telefone
|
|
119
|
+
test(payment): adicionar casos de teste para falha de pagamento
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Exemplos incorretos:**
|
|
123
|
+
```
|
|
124
|
+
update stuff
|
|
125
|
+
fixing bug
|
|
126
|
+
WIP
|
|
127
|
+
feat: fiz várias coisas no componente de login e também corrigi um bug
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### Bloco 7 — Atomicidade (Boas Práticas)
|
|
133
|
+
|
|
134
|
+
- [ ] Este commit representa UMA mudança coesa e descritível em uma frase?
|
|
135
|
+
- [ ] Se o commit precisaria de "e também" na descrição, considere dividir em 2 commits
|
|
136
|
+
- [ ] Arquivos não relacionados a esta mudança NÃO estão em stage
|
|
137
|
+
- [ ] Arquivos de configuração pessoal (`.vscode/settings.json` pessoal, etc.) não incluídos
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Verificação Rápida Final
|
|
142
|
+
|
|
143
|
+
Execute a sequência completa antes de `git commit`:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
npm run lint && npm run typecheck && npm run test && echo "PRÉ-COMMIT OK ✓"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Se este comando terminar com `PRÉ-COMMIT OK ✓`, o commit pode ser feito.
|
|
150
|
+
|
|
151
|
+
Se falhar: corrija o problema identificado antes de commitar.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Automatização com Git Hooks
|
|
156
|
+
|
|
157
|
+
Para automatizar parte desta checklist, adicione o hook em `.git/hooks/pre-commit`:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
#!/bin/sh
|
|
161
|
+
echo "Executando verificações pré-commit..."
|
|
162
|
+
|
|
163
|
+
npm run lint
|
|
164
|
+
if [ $? -ne 0 ]; then
|
|
165
|
+
echo "BLOQUEADO: Lint falhou. Corrija os erros antes de commitar."
|
|
166
|
+
exit 1
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
npm run typecheck
|
|
170
|
+
if [ $? -ne 0 ]; then
|
|
171
|
+
echo "BLOQUEADO: TypeScript com erros. Corrija antes de commitar."
|
|
172
|
+
exit 1
|
|
173
|
+
fi
|
|
174
|
+
|
|
175
|
+
npm run test
|
|
176
|
+
if [ $? -ne 0 ]; then
|
|
177
|
+
echo "BLOQUEADO: Testes falhando. Corrija antes de commitar."
|
|
178
|
+
exit 1
|
|
179
|
+
fi
|
|
180
|
+
|
|
181
|
+
echo "Verificações pré-commit concluídas. ✓"
|
|
182
|
+
exit 0
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Tornar executável:
|
|
186
|
+
```bash
|
|
187
|
+
chmod +x .git/hooks/pre-commit
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Nota:** @devops é responsável por configurar hooks em nível de projeto (usando Husky ou similar) para que se apliquem a todo o time.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Exceções
|
|
195
|
+
|
|
196
|
+
Em situações excepcionais, @architect pode autorizar um commit que não passa em todas as verificações, com:
|
|
197
|
+
- Registro documentado da exceção
|
|
198
|
+
- Justificativa técnica
|
|
199
|
+
- Issue criada para resolução imediata (no mesmo sprint)
|
|
200
|
+
|
|
201
|
+
**Exceções nunca são a norma.** Se você se pega precisando de exceções frequentemente, o problema é no código ou no processo.
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
*GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# Checklist: Pré-Deploy
|
|
2
|
+
|
|
3
|
+
> Verificações obrigatórias antes de qualquer deploy em produção.
|
|
4
|
+
> Executado por @devops. Nenhum deploy acontece sem este checklist completo.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Garantir que um deploy em produção seja seguro, reversível e comunicado adequadamente. Deploys sem checklist são causa comum de incidentes. Este checklist é o contrato de @devops com a estabilidade do sistema.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Regra de Ouro
|
|
15
|
+
|
|
16
|
+
**Production nunca recebe código que não passou por staging.**
|
|
17
|
+
|
|
18
|
+
Se staging não está estável, o deploy não acontece. Sem exceção.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Checklist Completo
|
|
23
|
+
|
|
24
|
+
### Bloco 1 — Pré-Requisitos (Verificar ANTES de qualquer ação)
|
|
25
|
+
|
|
26
|
+
- [ ] @pm aprovou formalmente a release (decisão de delivery documentada)
|
|
27
|
+
- [ ] Todas as stories da release têm status `Done` (aprovadas por @po)
|
|
28
|
+
- [ ] PRs de todas as stories estão mergeados em `main`
|
|
29
|
+
- [ ] Branch `main` está sem conflitos pendentes
|
|
30
|
+
- [ ] Não há incidentes abertos em produção no momento
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### Bloco 2 — Validação de Staging
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Verificar status do pipeline de staging
|
|
38
|
+
gh run list --branch main --limit 5
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
- [ ] Pipeline CI/CD de staging: **verde** nos últimos 48h
|
|
42
|
+
- [ ] Ambiente de staging está respondendo (health check passa)
|
|
43
|
+
- [ ] Testes de integração em staging: passando
|
|
44
|
+
- [ ] Funcionalidades da release verificadas em staging por @qa
|
|
45
|
+
- [ ] Sem erros críticos nos logs de staging nas últimas 24h
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### Bloco 3 — Segurança
|
|
50
|
+
|
|
51
|
+
- [ ] Security scan executado no código da release (sem vulnerabilidades CRÍTICAS)
|
|
52
|
+
- [ ] Secrets e variáveis de ambiente de produção estão configurados
|
|
53
|
+
- [ ] Nenhum secret de staging sendo usado em produção
|
|
54
|
+
- [ ] Dependências verificadas por vulnerabilidades conhecidas (`npm audit`)
|
|
55
|
+
- [ ] Certificados SSL/TLS válidos e não próximos do vencimento
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm audit --audit-level=critical
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- [ ] Zero vulnerabilidades críticas em dependências
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Bloco 4 — Banco de Dados (se aplicável)
|
|
66
|
+
|
|
67
|
+
- [ ] Backup completo do banco de dados de produção realizado ANTES do deploy
|
|
68
|
+
- [ ] Migrações de banco testadas em staging sem erros
|
|
69
|
+
- [ ] Migrações são backward-compatible (se sistema precisa ser zero-downtime)
|
|
70
|
+
- [ ] Script de rollback de migração existe e foi testado
|
|
71
|
+
- [ ] Não há migrações destrutivas sem confirmação de @architect e @pm
|
|
72
|
+
- [ ] Tempo estimado de migração documentado (se > 5 min: avisar usuários)
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### Bloco 5 — Variáveis de Ambiente e Configuração
|
|
77
|
+
|
|
78
|
+
- [ ] Todas as variáveis de ambiente necessárias estão configuradas em produção
|
|
79
|
+
- [ ] Nenhuma variável com valor de staging sendo usada em produção
|
|
80
|
+
- [ ] Arquivo `.env.example` atualizado com novas variáveis necessárias
|
|
81
|
+
- [ ] Configurações de feature flags (se usadas) verificadas
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Verificar variáveis críticas (sem expor valores)
|
|
85
|
+
env | grep -E "(API_URL|DATABASE|AUTH)" | cut -d= -f1
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### Bloco 6 — Performance e Capacidade
|
|
91
|
+
|
|
92
|
+
- [ ] Build de produção gerado com sucesso (`npm run build`)
|
|
93
|
+
- [ ] Tamanho do bundle verificado (sem regressão de performance inesperada)
|
|
94
|
+
- [ ] Capacidade da infraestrutura verificada para o volume esperado
|
|
95
|
+
- [ ] Cache invalidado/renovado conforme necessário
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm run build
|
|
99
|
+
npm run build:analyze # se disponível
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
### Bloco 7 — Plano de Rollback
|
|
105
|
+
|
|
106
|
+
**Pré-requisito:** Plano de rollback DEVE existir ANTES de iniciar o deploy.
|
|
107
|
+
|
|
108
|
+
- [ ] Versão anterior identificada: `v[X.X.X]`
|
|
109
|
+
- [ ] Comando de rollback documentado e testado:
|
|
110
|
+
```bash
|
|
111
|
+
# Exemplo para Vercel
|
|
112
|
+
vercel rollback [deployment-id]
|
|
113
|
+
|
|
114
|
+
# Exemplo para Railway
|
|
115
|
+
railway rollback
|
|
116
|
+
```
|
|
117
|
+
- [ ] Rollback de migração de banco documentado (se houver migração)
|
|
118
|
+
- [ ] Tempo estimado para rollback: < 10 minutos
|
|
119
|
+
- [ ] @architect e @pm notificados sobre plano de rollback
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### Bloco 8 — Comunicação e Janela de Deploy
|
|
124
|
+
|
|
125
|
+
- [ ] Time notificado sobre a janela de deploy (com pelo menos 2h de antecedência)
|
|
126
|
+
- [ ] Deploy agendado em horário de baixo tráfego (evitar horário de pico)
|
|
127
|
+
- [ ] Evitar deploys em sexta-feira após 14h ou véspera de feriado
|
|
128
|
+
- [ ] Suporte de plantão identificado para primeiras 2h após deploy
|
|
129
|
+
- [ ] Canal de comunicação de incidentes configurado e verificado
|
|
130
|
+
- [ ] Stakeholders que precisam ser notificados identificados
|
|
131
|
+
|
|
132
|
+
**Janelas ideais de deploy:**
|
|
133
|
+
- Segunda a quinta: 10h-12h ou 14h-16h
|
|
134
|
+
- Evitar: sextas à tarde, vésperas de datas importantes, horário de pico de usuários
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### Bloco 9 — Monitoramento Pós-Deploy
|
|
139
|
+
|
|
140
|
+
Configure alertas ANTES de iniciar o deploy:
|
|
141
|
+
|
|
142
|
+
- [ ] Alertas de erro (5xx) configurados com threshold e notificação imediata
|
|
143
|
+
- [ ] Dashboard de métricas aberto para monitoramento em tempo real
|
|
144
|
+
- [ ] Health check endpoint identificado para verificação contínua
|
|
145
|
+
- [ ] Plano de monitoramento por pelo menos 30 minutos após o deploy
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### Bloco 10 — Release Notes e Documentação
|
|
150
|
+
|
|
151
|
+
- [ ] Release notes geradas e revisadas
|
|
152
|
+
- [ ] CHANGELOG.md atualizado com as mudanças desta release
|
|
153
|
+
- [ ] Documentação de APIs atualizada (se houve mudança de contrato)
|
|
154
|
+
- [ ] Tag de versão criada: `git tag -a v[X.X.X] -m "Release v[X.X.X]"`
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Execução do Deploy
|
|
159
|
+
|
|
160
|
+
Após checklist completo, a sequência de deploy:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# 1. Tag a versão
|
|
164
|
+
git tag -a v1.2.0 -m "Release v1.2.0: [descrição resumida]"
|
|
165
|
+
git push origin v1.2.0
|
|
166
|
+
|
|
167
|
+
# 2. Deploy (específico para cada plataforma)
|
|
168
|
+
# Vercel: vercel --prod
|
|
169
|
+
# Railway: railway up
|
|
170
|
+
# AWS: [comando específico]
|
|
171
|
+
|
|
172
|
+
# 3. Verificação imediata pós-deploy
|
|
173
|
+
curl https://[url-producao]/health
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Protocolo de Incidente Durante Deploy
|
|
179
|
+
|
|
180
|
+
Se algo der errado durante ou após o deploy:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
NÍVEL 1 (degradação leve):
|
|
184
|
+
→ Monitorar por 15 minutos
|
|
185
|
+
→ Se não melhorar: NÍVEL 2
|
|
186
|
+
|
|
187
|
+
NÍVEL 2 (funcionalidade impactada):
|
|
188
|
+
→ Notificar @architect imediatamente
|
|
189
|
+
→ Decidir: aguardar fix hotfix ou rollback
|
|
190
|
+
→ Timeout de decisão: 30 minutos
|
|
191
|
+
|
|
192
|
+
NÍVEL 3 (sistema fora do ar / dados em risco):
|
|
193
|
+
→ ROLLBACK IMEDIATO
|
|
194
|
+
→ Notificar @pm e @architect simultaneamente
|
|
195
|
+
→ Comunicar usuários via [canal definido]
|
|
196
|
+
→ Post-mortem obrigatório nas próximas 24h
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Verificação Pós-Deploy (Executar imediatamente após)
|
|
202
|
+
|
|
203
|
+
- [ ] Health check em produção: passando
|
|
204
|
+
- [ ] Testes de fumaça (smoke tests) em produção: passando
|
|
205
|
+
- [ ] Logs de produção: sem erros críticos nos primeiros 5 minutos
|
|
206
|
+
- [ ] Métricas de performance: normais (sem degradação)
|
|
207
|
+
- [ ] @qa executou smoke tests em produção e confirmou estabilidade
|
|
208
|
+
- [ ] @pm comunicado sobre sucesso do deploy
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Confirmação de Conclusão
|
|
213
|
+
|
|
214
|
+
```markdown
|
|
215
|
+
## Deploy Concluído — v[X.X.X]
|
|
216
|
+
Data/Hora: YYYY-MM-DD HH:MM
|
|
217
|
+
Ambiente: Production
|
|
218
|
+
Deploy executado por: Gate (@devops)
|
|
219
|
+
|
|
220
|
+
Checklist: ✅ Completo
|
|
221
|
+
Smoke tests: ✅ Passando
|
|
222
|
+
Monitoramento: ✅ Ativo (30 min)
|
|
223
|
+
Status: ✅ DEPLOY BEM-SUCEDIDO
|
|
224
|
+
|
|
225
|
+
Próximo passo: @pm comunica stakeholders
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
*GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# Checklist: QA Gate
|
|
2
|
+
|
|
3
|
+
> Verificações que @qa executa para emitir veredicto de qualidade.
|
|
4
|
+
> 7 verificações principais. Todas obrigatórias para aprovação.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## O que é o QA Gate?
|
|
9
|
+
|
|
10
|
+
O QA Gate é o checkpoint de qualidade que determina se o código pode avançar para code review e, posteriormente, para produção. @qa é a autoridade exclusiva para abrir ou fechar este gate. Um veredicto APROVADO pelo QA Gate é pré-requisito obrigatório para o code review por @reviewer.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Verificação 1 — Acceptance Criteria (Funcional)
|
|
15
|
+
|
|
16
|
+
**Propósito:** Garantir que o código implementa exatamente o que foi prometido na story.
|
|
17
|
+
|
|
18
|
+
Para cada AC da story:
|
|
19
|
+
|
|
20
|
+
| AC | Cenário testado | Resultado |
|
|
21
|
+
|----|----------------|---------|
|
|
22
|
+
| AC-01 | [descrever como foi testado] | ✅ / ❌ |
|
|
23
|
+
| AC-02 | [descrever como foi testado] | ✅ / ❌ |
|
|
24
|
+
| AC-03 | [descrever como foi testado] | ✅ / ❌ |
|
|
25
|
+
|
|
26
|
+
**Critério de passagem:** Todos os ACs com resultado ✅
|
|
27
|
+
|
|
28
|
+
- [ ] Todos os ACs verificados manualmente
|
|
29
|
+
- [ ] Happy path de cada AC funciona conforme descrito
|
|
30
|
+
- [ ] Nenhum AC implementado parcialmente ou com workaround oculto
|
|
31
|
+
- [ ] Comportamentos descritos nos ACs correspondem ao comportamento real
|
|
32
|
+
|
|
33
|
+
**BLOQUEANTE se falhar.**
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Verificação 2 — Testes Automáticos
|
|
38
|
+
|
|
39
|
+
**Propósito:** Garantir que a suite de testes está saudável e cobrindo o código.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm run test
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- [ ] Todos os testes passando (zero falhas)
|
|
46
|
+
- [ ] Nenhum teste em `skip` ou `xtest` sem justificativa documentada
|
|
47
|
+
- [ ] Sem `test.only` que silencia outros testes
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm run coverage
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
- [ ] Coverage >= 80% nas linhas novas/modificadas
|
|
54
|
+
- [ ] Relatório de coverage gerado e verificado
|
|
55
|
+
|
|
56
|
+
**Resultados esperados:**
|
|
57
|
+
```
|
|
58
|
+
Test Suites: X passed, X total
|
|
59
|
+
Tests: X passed, X total
|
|
60
|
+
Coverage: XX% (>= 80%)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**BLOQUEANTE se falhar.**
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Verificação 3 — Qualidade Estática
|
|
68
|
+
|
|
69
|
+
**Propósito:** Garantir que o código segue os padrões de qualidade definidos.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npm run lint
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- [ ] Zero erros de lint
|
|
76
|
+
- [ ] Zero warnings de lint
|
|
77
|
+
- [ ] Nenhuma regra desabilitada sem comentário explicativo
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm run typecheck
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- [ ] Zero erros TypeScript
|
|
84
|
+
- [ ] Sem `@ts-ignore` injustificado
|
|
85
|
+
- [ ] Sem `any` como atalho para evitar tipagem
|
|
86
|
+
|
|
87
|
+
**BLOQUEANTE se falhar.**
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Verificação 4 — Cenários de Borda (Edge Cases)
|
|
92
|
+
|
|
93
|
+
**Propósito:** Garantir que o código é robusto além dos cenários principais.
|
|
94
|
+
|
|
95
|
+
Testar:
|
|
96
|
+
|
|
97
|
+
- [ ] Campos obrigatórios vazios: o sistema se comporta corretamente?
|
|
98
|
+
- [ ] Caracteres especiais em inputs de texto: sem injeção ou quebra?
|
|
99
|
+
- [ ] Valores extremos (muito longos, muito curtos, zero, negativos): tratados?
|
|
100
|
+
- [ ] Ações repetidas rapidamente (double-click em botões): sem efeito duplo?
|
|
101
|
+
- [ ] Sem conexão ou timeout de API: mensagem de erro adequada?
|
|
102
|
+
- [ ] Dados nulos/undefined vindos da API: sem crash?
|
|
103
|
+
|
|
104
|
+
Documente cada cenário testado e o resultado.
|
|
105
|
+
|
|
106
|
+
**ALTO se falhar em cenário relevante. BLOQUEANTE se causar crash ou corrupção de dados.**
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Verificação 5 — Regressão
|
|
111
|
+
|
|
112
|
+
**Propósito:** Garantir que as mudanças desta story não quebraram funcionalidades existentes.
|
|
113
|
+
|
|
114
|
+
Testar as funcionalidades RELACIONADAS ao módulo modificado:
|
|
115
|
+
|
|
116
|
+
- [ ] Funcionalidades adjacentes ainda funcionam corretamente
|
|
117
|
+
- [ ] Navegação entre páginas relacionadas funciona
|
|
118
|
+
- [ ] Integrações com outros módulos não foram quebradas
|
|
119
|
+
- [ ] Dados persistidos anteriormente ainda são lidos corretamente
|
|
120
|
+
|
|
121
|
+
Em projetos brownfield, a verificação de regressão é expandida e inclui teste dos fluxos críticos de produção.
|
|
122
|
+
|
|
123
|
+
**CRÍTICO se houver regressão em funcionalidade existente.**
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Verificação 6 — Segurança Básica
|
|
128
|
+
|
|
129
|
+
**Propósito:** Identificar vulnerabilidades de segurança óbvias antes que cheguem ao code review.
|
|
130
|
+
|
|
131
|
+
- [ ] Sem dados sensíveis expostos em respostas de API desnecessariamente
|
|
132
|
+
- [ ] Endpoints protegidos retornam 401/403 sem autenticação válida
|
|
133
|
+
- [ ] Inputs com caracteres especiais não quebram o sistema
|
|
134
|
+
- [ ] Sem informações de stack trace expostas em respostas de erro para o usuário
|
|
135
|
+
- [ ] Sem secrets visíveis em logs ou respostas de API
|
|
136
|
+
- [ ] Rate limiting funcionando se implementado
|
|
137
|
+
|
|
138
|
+
**CRÍTICO se encontrar vulnerabilidade de segurança.**
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Verificação 7 — Experiência do Usuário Básica
|
|
143
|
+
|
|
144
|
+
**Propósito:** Garantir que a entrega é usável e não causa frustração desnecessária.
|
|
145
|
+
|
|
146
|
+
Para funcionalidades com interface:
|
|
147
|
+
|
|
148
|
+
- [ ] Estados de loading presentes durante operações assíncronas?
|
|
149
|
+
- [ ] Estado vazio (lista sem itens) tem tratamento visual adequado?
|
|
150
|
+
- [ ] Mensagens de erro são compreensíveis para o usuário (não stack traces)?
|
|
151
|
+
- [ ] Formulários fornecem feedback claro sobre campos inválidos?
|
|
152
|
+
- [ ] Interface não quebra visualmente em resoluções comuns (desktop 1280px+, mobile 375px)?
|
|
153
|
+
- [ ] Botões não ficam habilitados após ação que deveria desabilitá-los?
|
|
154
|
+
|
|
155
|
+
Para funcionalidades de API:
|
|
156
|
+
|
|
157
|
+
- [ ] Respostas de sucesso têm estrutura consistente?
|
|
158
|
+
- [ ] Respostas de erro têm mensagem clara e código HTTP correto?
|
|
159
|
+
- [ ] Documentação da API atualizada se necessário?
|
|
160
|
+
|
|
161
|
+
**MÉDIO se falhar (não bloqueia, mas deve ser documentado).**
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Sumário de Verificações
|
|
166
|
+
|
|
167
|
+
| # | Verificação | Criticidade | Resultado |
|
|
168
|
+
|---|-------------|------------|---------|
|
|
169
|
+
| 1 | Acceptance Criteria atendidos | BLOQUEANTE | ✅ / ❌ |
|
|
170
|
+
| 2 | Testes automáticos passando | BLOQUEANTE | ✅ / ❌ |
|
|
171
|
+
| 3 | Lint + TypeScript limpos | BLOQUEANTE | ✅ / ❌ |
|
|
172
|
+
| 4 | Edge cases tratados | ALTO | ✅ / ❌ |
|
|
173
|
+
| 5 | Sem regressão | CRÍTICO | ✅ / ❌ |
|
|
174
|
+
| 6 | Segurança básica | CRÍTICO | ✅ / ❌ |
|
|
175
|
+
| 7 | UX básica adequada | MÉDIO | ✅ / ❌ |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Veredicto
|
|
180
|
+
|
|
181
|
+
**APROVADO** quando:
|
|
182
|
+
- Verificações 1, 2, 3 passam (obrigatórias)
|
|
183
|
+
- Verificações 5, 6 passam (zero críticos)
|
|
184
|
+
- Verificação 4 sem bugs ALTO ou com máx 2 documentados
|
|
185
|
+
- Verificação 7 com issues documentados para backlog
|
|
186
|
+
|
|
187
|
+
**REPROVADO** quando:
|
|
188
|
+
- Qualquer verificação BLOQUEANTE falha
|
|
189
|
+
- Verificação 5 ou 6 identificam bug CRÍTICO
|
|
190
|
+
- Verificação 4 tem mais de 2 bugs ALTO
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Registro do Veredicto
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
## QA Gate — STORY-XXX — [APROVADO | REPROVADO]
|
|
198
|
+
Data: YYYY-MM-DD | QA: Quinn (@qa) | Iteração: X/5
|
|
199
|
+
|
|
200
|
+
| Verificação | Status |
|
|
201
|
+
|-------------|--------|
|
|
202
|
+
| 1. ACs | ✅ PASS |
|
|
203
|
+
| 2. Testes | ✅ PASS |
|
|
204
|
+
| 3. Estática | ✅ PASS |
|
|
205
|
+
| 4. Edge cases | ⚠️ 1 bug MÉDIO documentado |
|
|
206
|
+
| 5. Regressão | ✅ PASS |
|
|
207
|
+
| 6. Segurança | ✅ PASS |
|
|
208
|
+
| 7. UX | ✅ PASS |
|
|
209
|
+
|
|
210
|
+
Veredicto: ✅ APROVADO
|
|
211
|
+
Próximo passo: @reviewer para code review
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
*GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
|