create-genia-os 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/bin/index.js +210 -0
- package/package.json +39 -0
- 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
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Task: Criar Story
|
|
2
|
+
|
|
3
|
+
> Tarefa executada por @sm. Somente @sm cria stories formais.
|
|
4
|
+
> Output: `docs/stories/STORY-XXX.md`
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Criar uma story bem definida, no formato INVEST, com acceptance criteria mensuráveis, pronta para ser validada por @po e desenvolvida por @dev. Uma story mal escrita é a causa mais comum de retrabalho e confusão durante o desenvolvimento.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Pré-requisitos
|
|
15
|
+
|
|
16
|
+
Antes de iniciar, confirme:
|
|
17
|
+
|
|
18
|
+
- [ ] PRD.md aprovado existe (`docs/[projeto]/PRD.md`)
|
|
19
|
+
- [ ] SPEC-TECNICO.md aprovado existe (`docs/[projeto]/SPEC-TECNICO.md`)
|
|
20
|
+
- [ ] O épico pai da story está definido no PRD
|
|
21
|
+
- [ ] Há backlog room para esta story (capacity do sprint permite)
|
|
22
|
+
- [ ] @sm tem clareza sobre o que a story deve entregar
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Como Determinar o Próximo Story ID
|
|
27
|
+
|
|
28
|
+
1. Liste os arquivos em `docs/stories/`
|
|
29
|
+
2. Identifique o maior número existente (ex: STORY-007)
|
|
30
|
+
3. A próxima story será STORY-008
|
|
31
|
+
4. Se não há stories existentes, começar em STORY-001
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Passos de Execução
|
|
36
|
+
|
|
37
|
+
### Passo 1 — Contexto
|
|
38
|
+
1. Leia o épico pai no PRD para entender o contexto de valor
|
|
39
|
+
2. Leia as seções relevantes do SPEC-TECNICO para entender implicações técnicas
|
|
40
|
+
3. Verifique se há stories anteriores relacionadas que estabelecem contexto
|
|
41
|
+
|
|
42
|
+
### Passo 2 — Definição da User Story
|
|
43
|
+
1. Identifique a persona correta (do PRD)
|
|
44
|
+
2. Defina a ação/funcionalidade específica (o mais granular possível)
|
|
45
|
+
3. Defina o benefício de negócio (mensurável quando possível)
|
|
46
|
+
4. Escreva no formato: "Como [persona], quero [ação], para [benefício]"
|
|
47
|
+
|
|
48
|
+
**Teste de qualidade da User Story:**
|
|
49
|
+
- A persona é real e definida no PRD? (não "como usuário genérico")
|
|
50
|
+
- A ação é específica o suficiente para implementar? (não "melhorar a experiência")
|
|
51
|
+
- O benefício é de negócio real? (não "para ter acesso a isso")
|
|
52
|
+
|
|
53
|
+
### Passo 3 — Acceptance Criteria
|
|
54
|
+
1. Para cada AC, pense: "Como @qa vai verificar isso?"
|
|
55
|
+
2. Use o formato: "[Dado X], quando [ação Y], então [resultado Z]"
|
|
56
|
+
- Ou: "[Funcionalidade] deve [comportamento mensurável]"
|
|
57
|
+
3. Cubra:
|
|
58
|
+
- Happy path (fluxo principal de sucesso)
|
|
59
|
+
- Edge cases relevantes (dados inválidos, estados vazios)
|
|
60
|
+
- Cenários negativos (o que deve ser impedido)
|
|
61
|
+
4. Mínimo 3 ACs, máximo 8
|
|
62
|
+
|
|
63
|
+
**Teste de qualidade dos ACs:**
|
|
64
|
+
- @qa consegue verificar este AC sem ambiguidade?
|
|
65
|
+
- O AC descreve o comportamento, não a implementação?
|
|
66
|
+
- O AC é específico o suficiente? ("rápido" não é mensurável)
|
|
67
|
+
|
|
68
|
+
### Passo 4 — Não-Escopo
|
|
69
|
+
1. Liste explicitamente o que esta story NÃO inclui
|
|
70
|
+
2. Seja específico sobre funcionalidades adjacentes que podem causar confusão
|
|
71
|
+
3. Exemplo: "Esta story NÃO inclui a tela de edição — apenas criação"
|
|
72
|
+
|
|
73
|
+
### Passo 5 — Dependências
|
|
74
|
+
1. Identifique se esta story depende de outra estar concluída
|
|
75
|
+
2. Se há dependências: referenciar os IDs das stories
|
|
76
|
+
3. Se há bloqueadores técnicos: documentar e escalar para @architect
|
|
77
|
+
|
|
78
|
+
### Passo 6 — Notas Técnicas
|
|
79
|
+
1. Do SPEC-TECNICO, extraia informações relevantes para o @dev:
|
|
80
|
+
- Arquivos/módulos que devem ser criados ou modificados
|
|
81
|
+
- Padrões a seguir
|
|
82
|
+
- APIs externas envolvidas
|
|
83
|
+
- Considerações de segurança específicas
|
|
84
|
+
2. Não tente especificar o "como" em detalhes — isso é papel do @dev e @architect
|
|
85
|
+
|
|
86
|
+
### Passo 7 — Estimativa
|
|
87
|
+
1. Estime o esforço em pontos usando a escala Fibonacci simplificada:
|
|
88
|
+
- **P (1-3 pts):** Story pequena, sem ambiguidade, menos de 1 dia
|
|
89
|
+
- **M (5 pts):** Story média, algumas decisões, 1-2 dias
|
|
90
|
+
- **G (8 pts):** Story grande, complexidade moderada, 2-3 dias
|
|
91
|
+
- **XG (13 pts):** Story muito grande — considere quebrar em 2 stories
|
|
92
|
+
2. Se estimativa é XG ou maior: quebrar antes de validar com @po
|
|
93
|
+
|
|
94
|
+
### Passo 8 — Self-Review
|
|
95
|
+
Antes de enviar para @po, aplique o checklist INVEST:
|
|
96
|
+
- [ ] **I**ndependente: pode ser desenvolvida sem dependência não-mapeada?
|
|
97
|
+
- [ ] **N**egociável: os detalhes podem ser ajustados se necessário?
|
|
98
|
+
- [ ] **V**aliosa: tem valor claro de negócio?
|
|
99
|
+
- [ ] **E**stimável: conseguimos estimar o esforço?
|
|
100
|
+
- [ ] **S**mall (pequena): cabe em uma sprint?
|
|
101
|
+
- [ ] **T**estável: @qa consegue verificar todos os ACs?
|
|
102
|
+
|
|
103
|
+
### Passo 9 — Criação do Arquivo
|
|
104
|
+
1. Crie o arquivo em `docs/stories/STORY-XXX.md` seguindo o template
|
|
105
|
+
2. Defina status inicial como `Draft`
|
|
106
|
+
3. Envie para @po para validação
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Template Completo
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
---
|
|
114
|
+
id: STORY-XXX
|
|
115
|
+
título: [Título descritivo em até 60 caracteres]
|
|
116
|
+
épico: E-XX — [Nome do Épico]
|
|
117
|
+
sprint: Sprint-XX
|
|
118
|
+
estimativa: P | M | G | XG
|
|
119
|
+
assignee: null
|
|
120
|
+
status: Draft
|
|
121
|
+
prioridade: CRÍTICO | ALTO | MÉDIO | BAIXO
|
|
122
|
+
criada_por: "@sm"
|
|
123
|
+
criada_em: YYYY-MM-DD
|
|
124
|
+
aprovada_por: null
|
|
125
|
+
aprovada_em: null
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
# STORY-XXX — [Título]
|
|
129
|
+
|
|
130
|
+
## User Story
|
|
131
|
+
Como [persona definida no PRD],
|
|
132
|
+
quero [ação/funcionalidade específica],
|
|
133
|
+
para [benefício de negócio mensurável].
|
|
134
|
+
|
|
135
|
+
## Contexto
|
|
136
|
+
[1-3 parágrafos de contexto para @dev entender o porquê e o entorno da story]
|
|
137
|
+
|
|
138
|
+
## Acceptance Criteria
|
|
139
|
+
|
|
140
|
+
- [ ] AC-01: Dado [contexto], quando [ação], então [resultado esperado]
|
|
141
|
+
- [ ] AC-02: Dado [contexto], quando [ação], então [resultado esperado]
|
|
142
|
+
- [ ] AC-03: Dado [contexto], quando [ação], então [resultado esperado]
|
|
143
|
+
|
|
144
|
+
## Não-Escopo (Explícito)
|
|
145
|
+
Esta story NÃO inclui:
|
|
146
|
+
- [Item 1 fora do escopo]
|
|
147
|
+
- [Item 2 fora do escopo]
|
|
148
|
+
|
|
149
|
+
## Dependências
|
|
150
|
+
- Depende de: [STORY-XXX se houver | "nenhuma"]
|
|
151
|
+
- Bloqueada por: ["nenhum bloqueador" | descrição]
|
|
152
|
+
|
|
153
|
+
## Notas Técnicas
|
|
154
|
+
[Extraídas do SPEC-TECNICO — orientações de implementação relevantes]
|
|
155
|
+
- Arquivos/módulos afetados: [lista]
|
|
156
|
+
- Padrões a seguir: [referência ao SPEC-TECNICO]
|
|
157
|
+
- APIs envolvidas: [se houver]
|
|
158
|
+
|
|
159
|
+
## Definition of Done
|
|
160
|
+
- [ ] Código implementado e funcionando localmente
|
|
161
|
+
- [ ] Testes unitários escritos (coverage >= 80%)
|
|
162
|
+
- [ ] Lint e typecheck passando sem erros
|
|
163
|
+
- [ ] QA aprovado por @qa (todos os ACs verificados)
|
|
164
|
+
- [ ] Code review aprovado por @reviewer
|
|
165
|
+
- [ ] PR criado por @devops
|
|
166
|
+
- [ ] @po confirmou que a story atende aos critérios de negócio
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Critérios de Saída
|
|
172
|
+
|
|
173
|
+
A task criar-story está concluída quando:
|
|
174
|
+
|
|
175
|
+
- [ ] Arquivo `docs/stories/STORY-XXX.md` criado com template completo
|
|
176
|
+
- [ ] User Story no formato correto
|
|
177
|
+
- [ ] Mínimo 3 ACs mensuráveis e testáveis
|
|
178
|
+
- [ ] Não-escopo documentado
|
|
179
|
+
- [ ] Estimativa definida (P/M/G/XG)
|
|
180
|
+
- [ ] Status: Draft
|
|
181
|
+
- [ ] @po acionado para validação
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
*GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# Task: Debug Sistemático
|
|
2
|
+
|
|
3
|
+
> Processo estruturado para investigar e resolver bugs complexos.
|
|
4
|
+
> Aplicável por @dev (com suporte de @architect quando necessário).
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Resolver bugs de forma sistemática e documentada, evitando soluções por tentativa e erro que geram mais problemas do que resolvem. Um bug resolvido sem ser compreendido é um bug que vai voltar.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Quando Usar Esta Task
|
|
15
|
+
|
|
16
|
+
- Bug reportado por @qa com severidade CRÍTICO ou ALTO
|
|
17
|
+
- Bug intermitente que não reproduz de forma consistente
|
|
18
|
+
- Bug de performance ou memory leak
|
|
19
|
+
- Erro em produção que precisa de investigação rápida
|
|
20
|
+
- Bug cuja causa raiz não é óbvia na primeira análise
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Passos de Execução
|
|
25
|
+
|
|
26
|
+
### Passo 1 — Leitura do Bug Report
|
|
27
|
+
|
|
28
|
+
Antes de tocar no código:
|
|
29
|
+
|
|
30
|
+
1. Leia o bug report completo de @qa
|
|
31
|
+
2. Confirme que você consegue reproduzir o bug com os passos fornecidos
|
|
32
|
+
3. Se não conseguir reproduzir: notifique @qa imediatamente com evidência (screenshot, log)
|
|
33
|
+
4. **Reprodução é obrigatória antes de começar a debugar**
|
|
34
|
+
|
|
35
|
+
### Passo 2 — Hipótese Antes de Código
|
|
36
|
+
|
|
37
|
+
Antes de abrir qualquer arquivo:
|
|
38
|
+
|
|
39
|
+
1. Baseado na descrição do bug, qual é a sua hipótese inicial sobre a causa?
|
|
40
|
+
2. Anote a hipótese (não pule este passo — ajuda a manter o foco)
|
|
41
|
+
3. Liste os locais do código mais prováveis onde o problema pode estar
|
|
42
|
+
4. Estime: este bug é de lógica, de dados, de timing, de estado, de integração?
|
|
43
|
+
|
|
44
|
+
**Tipos comuns de bug:**
|
|
45
|
+
- **Lógica:** condição incorreta, comparação errada, operação matemática errada
|
|
46
|
+
- **Estado:** estado React não atualizado, variável mutada incorretamente
|
|
47
|
+
- **Assincronismo:** race condition, Promise não awaited, callback timing
|
|
48
|
+
- **Integração:** API retornando formato inesperado, erro de rede não tratado
|
|
49
|
+
- **Dados:** null/undefined não tratado, tipo de dado incorreto
|
|
50
|
+
- **Ambiente:** variável de ambiente não configurada, versão de dependência diferente
|
|
51
|
+
|
|
52
|
+
### Passo 3 — Isolamento
|
|
53
|
+
|
|
54
|
+
1. **Reduza o problema ao mínimo reproduzível:**
|
|
55
|
+
- Existe um teste unitário que reproduz o bug? (crie um se não houver)
|
|
56
|
+
- Você consegue remover partes do código e ainda reproduzir?
|
|
57
|
+
- O bug ocorre com dados específicos? Quais?
|
|
58
|
+
|
|
59
|
+
2. **Delimite a área suspeita:**
|
|
60
|
+
- Adicione logs estratégicos para entender o fluxo de execução
|
|
61
|
+
- Verifique os valores das variáveis no momento do bug
|
|
62
|
+
- Use o debugger (breakpoints) se disponível
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Exemplo de log estratégico (temporário, remover após debug)
|
|
66
|
+
console.log('[DEBUG STORY-XXX]', { variavel, estado, resultado })
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Passo 4 — Investigação com Ferramentas
|
|
70
|
+
|
|
71
|
+
**Para bugs de runtime:**
|
|
72
|
+
```bash
|
|
73
|
+
# Execute com mais verbosidade
|
|
74
|
+
NODE_DEBUG=http npm run dev
|
|
75
|
+
|
|
76
|
+
# Verifique os logs do servidor
|
|
77
|
+
npm run dev 2>&1 | grep ERROR
|
|
78
|
+
|
|
79
|
+
# Execute testes específicos em modo verbose
|
|
80
|
+
npm run test -- --verbose NomeDoTeste
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Para bugs de TypeScript:**
|
|
84
|
+
```bash
|
|
85
|
+
npm run typecheck -- --listFiles
|
|
86
|
+
npm run typecheck 2>&1 | grep -A5 "error TS"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Para bugs de performance:**
|
|
90
|
+
- React DevTools Profiler para re-renders desnecessários
|
|
91
|
+
- Network tab para requests lentos
|
|
92
|
+
- Memory tab para memory leaks
|
|
93
|
+
|
|
94
|
+
**Para bugs de integração:**
|
|
95
|
+
- Verifique o contrato da API com a documentação
|
|
96
|
+
- Log do request e response completos (sem dados sensíveis nos logs de prod)
|
|
97
|
+
- Verifique se o ambiente correto está sendo usado
|
|
98
|
+
|
|
99
|
+
### Passo 5 — Causa Raiz
|
|
100
|
+
|
|
101
|
+
Após a investigação:
|
|
102
|
+
|
|
103
|
+
1. Documente a causa raiz identificada:
|
|
104
|
+
```
|
|
105
|
+
Causa raiz: [descrição técnica precisa]
|
|
106
|
+
Arquivo: src/[caminho]/arquivo.ts linha XX
|
|
107
|
+
Por que ocorre: [explicação do mecanismo do bug]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
2. Valide a causa raiz:
|
|
111
|
+
- Se você corrigir isso, o bug vai sumir?
|
|
112
|
+
- Há outros lugares no código com o mesmo problema?
|
|
113
|
+
- Esta causa raiz explica todos os sintomas relatados?
|
|
114
|
+
|
|
115
|
+
### Passo 6 — Solução Planejada
|
|
116
|
+
|
|
117
|
+
Antes de escrever qualquer código de correção:
|
|
118
|
+
|
|
119
|
+
1. Defina a solução:
|
|
120
|
+
- O que exatamente vai ser mudado?
|
|
121
|
+
- A mudança tem efeitos colaterais em outros lugares?
|
|
122
|
+
- Há uma solução mais simples que resolve o problema?
|
|
123
|
+
|
|
124
|
+
2. Verifique se a solução está dentro do escopo:
|
|
125
|
+
- Esta correção está dentro do que foi especificado no SPEC-TECNICO?
|
|
126
|
+
- Se for uma solução arquitetural maior: consultar @architect ANTES
|
|
127
|
+
- Se mudança de comportamento esperado: consultar @po ANTES
|
|
128
|
+
|
|
129
|
+
### Passo 7 — Implementação da Correção
|
|
130
|
+
|
|
131
|
+
1. Crie ou use o branch da story associada
|
|
132
|
+
2. Implemente a correção mínima necessária (não aproveite para "melhorar outras coisas")
|
|
133
|
+
3. Remova todos os logs de debug temporários
|
|
134
|
+
4. Escreva ou atualize o teste que reproduzia o bug (agora deve passar)
|
|
135
|
+
5. Execute a suite completa de testes:
|
|
136
|
+
```bash
|
|
137
|
+
npm run lint && npm run typecheck && npm run test
|
|
138
|
+
```
|
|
139
|
+
6. Verifique que o bug original não reproduz mais
|
|
140
|
+
|
|
141
|
+
### Passo 8 — Commit da Correção
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
git add [arquivos modificados]
|
|
145
|
+
git commit -m "fix(escopo): corrigir [descrição do bug]
|
|
146
|
+
|
|
147
|
+
Causa raiz: [breve descrição]
|
|
148
|
+
Solução: [breve descrição da correção]
|
|
149
|
+
|
|
150
|
+
Bug: BUG-QA-XXX
|
|
151
|
+
Story: STORY-XXX
|
|
152
|
+
Co-Authored-By: GEN.IA OS <genia@bedata.com.br>"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Passo 9 — Documentação e Comunicação
|
|
156
|
+
|
|
157
|
+
1. Atualize o bug report com:
|
|
158
|
+
- Causa raiz identificada
|
|
159
|
+
- Solução implementada
|
|
160
|
+
- Arquivos modificados
|
|
161
|
+
- Status: Resolvido
|
|
162
|
+
|
|
163
|
+
2. Notifique @qa para re-verificar:
|
|
164
|
+
- Bug resolvido
|
|
165
|
+
- Como verificar que a correção funciona
|
|
166
|
+
- Se há outros cenários relacionados para testar
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Quando Escalar para @architect
|
|
171
|
+
|
|
172
|
+
Escale imediatamente se:
|
|
173
|
+
|
|
174
|
+
- A causa raiz é um problema de arquitetura (não pode ser corrigido localmente)
|
|
175
|
+
- A correção requer mudança significativa na estrutura do sistema
|
|
176
|
+
- O bug está relacionado a segurança ou corrupção de dados
|
|
177
|
+
- Não há clareza sobre qual é a solução correta após 1h de investigação
|
|
178
|
+
- O bug afeta múltiplos módulos e a correção impacta contratos de API
|
|
179
|
+
|
|
180
|
+
**Ao escalar:**
|
|
181
|
+
```
|
|
182
|
+
@architect — encontrei bug complexo em STORY-XXX
|
|
183
|
+
|
|
184
|
+
Descrição do bug: [...]
|
|
185
|
+
Causa raiz suspeita: [...]
|
|
186
|
+
O que já investiguei: [...]
|
|
187
|
+
Por que estou escalando: [...]
|
|
188
|
+
Qual decisão preciso de você: [...]
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Registro de Bug Para Aprendizado
|
|
194
|
+
|
|
195
|
+
Bugs complexos devem ser documentados para o time:
|
|
196
|
+
|
|
197
|
+
```markdown
|
|
198
|
+
## Post-Mortem — BUG-XXX — [Título]
|
|
199
|
+
Data: YYYY-MM-DD | Investigado por: @dev
|
|
200
|
+
|
|
201
|
+
### Sintoma
|
|
202
|
+
[Como o bug se manifestava]
|
|
203
|
+
|
|
204
|
+
### Causa Raiz
|
|
205
|
+
[O que causava o bug]
|
|
206
|
+
|
|
207
|
+
### Solução Implementada
|
|
208
|
+
[Como foi corrigido]
|
|
209
|
+
|
|
210
|
+
### Como Prevenir No Futuro
|
|
211
|
+
[Mudança de processo, teste adicional, ou documentação]
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Critérios de Saída
|
|
217
|
+
|
|
218
|
+
O debug sistemático está concluído quando:
|
|
219
|
+
|
|
220
|
+
- [ ] Bug reproduzido e documentado
|
|
221
|
+
- [ ] Causa raiz identificada e documentada
|
|
222
|
+
- [ ] Correção implementada e commitada
|
|
223
|
+
- [ ] Testes passando (incluindo teste do cenário do bug)
|
|
224
|
+
- [ ] Logs de debug removidos
|
|
225
|
+
- [ ] @qa notificado para re-verificar
|
|
226
|
+
- [ ] Bug report atualizado com causa raiz e solução
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
*GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Task: Dev — Implementar Story
|
|
2
|
+
|
|
3
|
+
> Tarefa executada por @dev. Transforma uma story validada em código funcional.
|
|
4
|
+
> Pré-requisito: story com status Ready (aprovada por @po).
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Implementar o código necessário para satisfazer todos os Acceptance Criteria da story, seguindo os padrões arquiteturais definidos no SPEC-TECNICO.md. Entregar código limpo, testado e commitado localmente, pronto para revisão de @qa.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Pré-requisitos
|
|
15
|
+
|
|
16
|
+
Antes de iniciar, confirme:
|
|
17
|
+
|
|
18
|
+
- [ ] Story tem status `Ready` (aprovada por @po)
|
|
19
|
+
- [ ] SPEC-TECNICO.md lido e compreendido
|
|
20
|
+
- [ ] Branch `main` local está atualizado (`git pull`)
|
|
21
|
+
- [ ] Ambiente de desenvolvimento funcionando (dependências instaladas, env vars configuradas)
|
|
22
|
+
- [ ] Clareza sobre todos os Acceptance Criteria (se houver dúvida, consultar @po ANTES de começar)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Passos de Execução
|
|
27
|
+
|
|
28
|
+
### Passo 1 — Leitura e Preparação
|
|
29
|
+
1. Leia a story completa: User Story, contexto, todos os ACs, não-escopo
|
|
30
|
+
2. Leia as seções relevantes do SPEC-TECNICO.md
|
|
31
|
+
3. Identifique todos os arquivos que precisarão ser criados ou modificados
|
|
32
|
+
4. Se houver qualquer dúvida sobre o comportamento esperado: perguntar para @po AGORA (não depois de implementar errado)
|
|
33
|
+
5. Estime internamente o tempo necessário e comunique para @sm se houver risco de não entregar no sprint
|
|
34
|
+
|
|
35
|
+
### Passo 2 — Criar Branch
|
|
36
|
+
```bash
|
|
37
|
+
git checkout main
|
|
38
|
+
git pull origin main
|
|
39
|
+
git checkout -b feat/STORY-XXX-descricao-kebab-case
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Exemplos de nomes de branch:
|
|
43
|
+
- `feat/STORY-001-tela-de-login`
|
|
44
|
+
- `fix/STORY-015-corrigir-validacao-email`
|
|
45
|
+
- `refactor/STORY-022-extrair-servico-autenticacao`
|
|
46
|
+
|
|
47
|
+
### Passo 3 — Planejamento da Implementação
|
|
48
|
+
Antes de escrever código, faça um planejamento mental ou escrito:
|
|
49
|
+
1. Quais componentes/funções precisam ser criados?
|
|
50
|
+
2. Quais precisam ser modificados?
|
|
51
|
+
3. Há alguma dependência técnica (biblioteca nova, configuração)?
|
|
52
|
+
4. Qual a ordem lógica de implementação?
|
|
53
|
+
|
|
54
|
+
### Passo 4 — Implementação (TDD quando possível)
|
|
55
|
+
**Abordagem preferida (TDD):**
|
|
56
|
+
1. Escreva o teste primeiro (descreve o comportamento esperado)
|
|
57
|
+
2. Execute o teste — deve falhar (red)
|
|
58
|
+
3. Implemente o código mínimo para o teste passar (green)
|
|
59
|
+
4. Refatore o código mantendo os testes passando (refactor)
|
|
60
|
+
|
|
61
|
+
**Abordagem alternativa (test-after):**
|
|
62
|
+
1. Implemente a funcionalidade
|
|
63
|
+
2. Escreva os testes cobrindo os cenários
|
|
64
|
+
3. Garanta que os testes passam
|
|
65
|
+
|
|
66
|
+
**Regras de implementação:**
|
|
67
|
+
- Imports sempre absolutos com `@/` (nunca `../../../`)
|
|
68
|
+
- Tipagem TypeScript estrita (sem `any` sem justificativa)
|
|
69
|
+
- Funções com responsabilidade única (max 30 linhas como guia)
|
|
70
|
+
- Nomes descritivos (variáveis, funções, componentes)
|
|
71
|
+
- Comentários explicam o "por quê", não o "o quê"
|
|
72
|
+
- Nunca hardcodar values que deveriam ser variáveis de ambiente
|
|
73
|
+
|
|
74
|
+
### Passo 5 — Testes
|
|
75
|
+
|
|
76
|
+
Execute após cada unidade coesa de código:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Lint (zero tolerância a erros)
|
|
80
|
+
npm run lint
|
|
81
|
+
|
|
82
|
+
# TypeScript (zero erros)
|
|
83
|
+
npm run typecheck
|
|
84
|
+
|
|
85
|
+
# Testes unitários
|
|
86
|
+
npm run test
|
|
87
|
+
|
|
88
|
+
# Cobertura
|
|
89
|
+
npm run coverage
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Meta de cobertura:** >= 80% nas linhas modificadas/criadas
|
|
93
|
+
|
|
94
|
+
O que testar:
|
|
95
|
+
- Happy path de cada AC
|
|
96
|
+
- Edge cases (valores nulos, strings vazias, arrays vazios)
|
|
97
|
+
- Cenários de erro (exceções esperadas)
|
|
98
|
+
- Comportamento com dados inválidos
|
|
99
|
+
|
|
100
|
+
O que NÃO testar (não agrega valor):
|
|
101
|
+
- Implementações de terceiros (não testa o que o React faz)
|
|
102
|
+
- Trivialidades óbvias (getters/setters simples sem lógica)
|
|
103
|
+
|
|
104
|
+
### Passo 6 — Self-Review (Antes do Commit Final)
|
|
105
|
+
|
|
106
|
+
Leia seu próprio código como se fosse o @reviewer:
|
|
107
|
+
|
|
108
|
+
- [ ] O código implementa EXATAMENTE os ACs? (nem mais, nem menos)
|
|
109
|
+
- [ ] Imports absolutos com `@/` em todos os arquivos novos?
|
|
110
|
+
- [ ] Sem `any` sem justificativa no TypeScript?
|
|
111
|
+
- [ ] Sem `console.log` de debug esquecidos?
|
|
112
|
+
- [ ] Sem `.env` ou secrets hardcodados?
|
|
113
|
+
- [ ] Sem código comentado desnecessário?
|
|
114
|
+
- [ ] Funções com responsabilidade única?
|
|
115
|
+
- [ ] Testes com cobertura >= 80%?
|
|
116
|
+
- [ ] Lint sem warnings?
|
|
117
|
+
|
|
118
|
+
### Passo 7 — Commits Atômicos
|
|
119
|
+
|
|
120
|
+
Commite em unidades coesas — cada commit deve descrever uma mudança em uma frase:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git add src/components/Auth/LoginForm.tsx
|
|
124
|
+
git add src/components/Auth/LoginForm.test.tsx
|
|
125
|
+
git commit -m "feat(auth): implementar formulário de login com validação
|
|
126
|
+
|
|
127
|
+
Implementa o formulário de login da STORY-001 com:
|
|
128
|
+
- Campos de email e senha com validação client-side
|
|
129
|
+
- Estado de loading durante autenticação
|
|
130
|
+
- Exibição de erros da API
|
|
131
|
+
|
|
132
|
+
Story: STORY-001
|
|
133
|
+
Co-Authored-By: GEN.IA OS <genia@bedata.com.br>"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Tipos de commit:
|
|
137
|
+
- `feat` — nova funcionalidade
|
|
138
|
+
- `fix` — correção de bug
|
|
139
|
+
- `refactor` — refatoração sem mudança de comportamento
|
|
140
|
+
- `test` — adição ou correção de testes
|
|
141
|
+
- `docs` — documentação inline
|
|
142
|
+
|
|
143
|
+
**NUNCA** fazer `git push` — exclusivo de @devops.
|
|
144
|
+
|
|
145
|
+
### Passo 8 — Verificação Final
|
|
146
|
+
|
|
147
|
+
Antes de declarar pronto para @qa:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Garanta que tudo ainda passa com o conjunto completo
|
|
151
|
+
npm run lint && npm run typecheck && npm run test
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
- [ ] Todos os ACs foram implementados?
|
|
155
|
+
- [ ] Todos os testes passando?
|
|
156
|
+
- [ ] Cobertura >= 80%?
|
|
157
|
+
- [ ] Lint e typecheck limpos?
|
|
158
|
+
- [ ] Não-escopo da story foi respeitado? (não implementou nada além do escopo)
|
|
159
|
+
|
|
160
|
+
### Passo 9 — Comunicar para @qa
|
|
161
|
+
|
|
162
|
+
1. Atualize o status da story para `InQA` no arquivo `docs/stories/STORY-XXX.md`
|
|
163
|
+
2. Notifique @qa que o código está pronto para revisão
|
|
164
|
+
3. Informe:
|
|
165
|
+
- Story ID e branch name
|
|
166
|
+
- Quais ACs foram implementados
|
|
167
|
+
- Qualquer ponto de atenção que @qa deve saber
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Gestão de Blockers
|
|
172
|
+
|
|
173
|
+
Se encontrar um blocker durante a implementação:
|
|
174
|
+
|
|
175
|
+
1. **Blocker técnico de arquitetura** → consultar @architect
|
|
176
|
+
2. **Dúvida sobre requisito/AC** → consultar @po
|
|
177
|
+
3. **Dependência de outra story** → comunicar @sm
|
|
178
|
+
4. **Blocker de ambiente/ferramenta** → comunicar @devops
|
|
179
|
+
|
|
180
|
+
Nunca inventar uma solução para um blocker sem validação — isso é violação do Artigo IV.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Critérios de Saída
|
|
185
|
+
|
|
186
|
+
A implementação está pronta para @qa quando:
|
|
187
|
+
|
|
188
|
+
- [ ] Todos os ACs da story implementados
|
|
189
|
+
- [ ] Testes unitários com coverage >= 80%
|
|
190
|
+
- [ ] `npm run lint` — zero erros ou warnings
|
|
191
|
+
- [ ] `npm run typecheck` — zero erros
|
|
192
|
+
- [ ] `npm run test` — todos passando
|
|
193
|
+
- [ ] Código commitado localmente no branch correto
|
|
194
|
+
- [ ] Status da story atualizado para InQA
|
|
195
|
+
- [ ] @qa notificado com contexto
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
*GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
|