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.
Files changed (86) hide show
  1. package/bin/index.js +210 -0
  2. package/package.json +39 -0
  3. package/template/.claude/CLAUDE.md +215 -0
  4. package/template/.claude/agent-memory/analyst/MEMORY.md +20 -0
  5. package/template/.claude/agent-memory/architect/MEMORY.md +20 -0
  6. package/template/.claude/agent-memory/dev/MEMORY.md +20 -0
  7. package/template/.claude/agent-memory/devops/MEMORY.md +20 -0
  8. package/template/.claude/agent-memory/pm/MEMORY.md +20 -0
  9. package/template/.claude/agent-memory/po/MEMORY.md +20 -0
  10. package/template/.claude/agent-memory/qa/MEMORY.md +20 -0
  11. package/template/.claude/agent-memory/reviewer/MEMORY.md +20 -0
  12. package/template/.claude/agent-memory/sm/MEMORY.md +20 -0
  13. package/template/.claude/hooks/enforce-git-push-authority.py +70 -0
  14. package/template/.claude/hooks/precompact-session-digest.cjs +87 -0
  15. package/template/.claude/hooks/sql-governance.py +65 -0
  16. package/template/.claude/hooks/synapse-engine.cjs +122 -0
  17. package/template/.claude/hooks/write-path-validation.py +59 -0
  18. package/template/.claude/rules/agent-authority.md +39 -0
  19. package/template/.claude/rules/agent-handoff.md +71 -0
  20. package/template/.claude/rules/agent-memory.md +61 -0
  21. package/template/.claude/rules/ids-principles.md +52 -0
  22. package/template/.claude/rules/mcp-usage.md +49 -0
  23. package/template/.claude/rules/story-lifecycle.md +87 -0
  24. package/template/.claude/rules/workflow-execution.md +68 -0
  25. package/template/.claude/settings.json +58 -0
  26. package/template/.claude/settings.local.json +14 -0
  27. package/template/.genia/CONSTITUTION.md +129 -0
  28. package/template/.genia/contexts/api-patterns.md +134 -0
  29. package/template/.genia/contexts/nextjs-react.md +210 -0
  30. package/template/.genia/contexts/projeto.md +18 -0
  31. package/template/.genia/contexts/supabase.md +152 -0
  32. package/template/.genia/contexts/whatsapp-cloud.md +176 -0
  33. package/template/.genia/core-config.yaml +192 -0
  34. package/template/.genia/development/agents/analyst.md +138 -0
  35. package/template/.genia/development/agents/architect.md +171 -0
  36. package/template/.genia/development/agents/dev.md +160 -0
  37. package/template/.genia/development/agents/devops.md +200 -0
  38. package/template/.genia/development/agents/pm.md +142 -0
  39. package/template/.genia/development/agents/po.md +165 -0
  40. package/template/.genia/development/agents/qa.md +183 -0
  41. package/template/.genia/development/agents/reviewer.md +198 -0
  42. package/template/.genia/development/agents/sm.md +230 -0
  43. package/template/.genia/development/checklists/architecture-review.md +189 -0
  44. package/template/.genia/development/checklists/pre-commit.md +205 -0
  45. package/template/.genia/development/checklists/pre-deploy.md +230 -0
  46. package/template/.genia/development/checklists/qa-gate.md +216 -0
  47. package/template/.genia/development/checklists/story-dod.md +155 -0
  48. package/template/.genia/development/tasks/code-review.md +197 -0
  49. package/template/.genia/development/tasks/criar-prd.md +170 -0
  50. package/template/.genia/development/tasks/criar-spec.md +188 -0
  51. package/template/.genia/development/tasks/criar-story.md +185 -0
  52. package/template/.genia/development/tasks/debug-sistematico.md +230 -0
  53. package/template/.genia/development/tasks/dev-implement.md +199 -0
  54. package/template/.genia/development/tasks/qa-review.md +224 -0
  55. package/template/.genia/development/workflows/brownfield.md +178 -0
  56. package/template/.genia/development/workflows/delivery.md +208 -0
  57. package/template/.genia/development/workflows/development.md +189 -0
  58. package/template/.genia/development/workflows/greenfield.md +166 -0
  59. package/template/.genia/development/workflows/planning.md +167 -0
  60. package/template/.genia/development/workflows/qa-loop.md +179 -0
  61. package/template/.genia/development/workflows/spec-pipeline.md +192 -0
  62. package/template/.genia/development/workflows/story-development-cycle.md +252 -0
  63. package/template/.genia/guidelines/clean-code.md +98 -0
  64. package/template/.genia/guidelines/testing.md +176 -0
  65. package/template/.genia/skills/design/canvas-design.md +109 -0
  66. package/template/.genia/skills/design/frontend-design.md +140 -0
  67. package/template/.genia/skills/dev/mcp-builder.md +172 -0
  68. package/template/.genia/skills/dev/webapp-testing.md +150 -0
  69. package/template/.genia/skills/documents/docx.md +153 -0
  70. package/template/.genia/skills/documents/pdf.md +134 -0
  71. package/template/.genia/skills/documents/pptx.md +118 -0
  72. package/template/.genia/skills/documents/xlsx.md +140 -0
  73. package/template/.synapse/agent-analyst +8 -0
  74. package/template/.synapse/agent-architect +8 -0
  75. package/template/.synapse/agent-dev +8 -0
  76. package/template/.synapse/agent-devops +8 -0
  77. package/template/.synapse/agent-pm +8 -0
  78. package/template/.synapse/agent-po +7 -0
  79. package/template/.synapse/agent-qa +8 -0
  80. package/template/.synapse/agent-reviewer +7 -0
  81. package/template/.synapse/agent-sm +7 -0
  82. package/template/.synapse/constitution +7 -0
  83. package/template/.synapse/context +8 -0
  84. package/template/.synapse/global +8 -0
  85. package/template/.synapse/manifest +14 -0
  86. package/template/README.md +53 -0
@@ -0,0 +1,192 @@
1
+ # Workflow: Spec Pipeline
2
+
3
+ > Transforma requisitos brutos em especificações técnicas executáveis.
4
+ > Ordem de execução: @analyst → @pm → @architect → @qa → @po
5
+
6
+ ---
7
+
8
+ ## Visão Geral
9
+
10
+ O Spec Pipeline é o processo obrigatório que antecede qualquer desenvolvimento. Ele garante que o time nunca implementa com base em requisitos vagos, PRDs incompletos ou especificações técnicas ausentes. Projetos que pulam este pipeline invariavelmente sofrem com retrabalho, scope creep e dívida técnica.
11
+
12
+ **Duração estimada:** 2-5 dias úteis (dependendo da complexidade)
13
+ **Ativador:** `@analyst iniciar spec-pipeline [nome-do-projeto]`
14
+
15
+ ---
16
+
17
+ ## Fase 1 — Briefing (@analyst)
18
+
19
+ **Responsável:** Ana (@analyst)
20
+ **Input:** Requisitos brutos do cliente/stakeholder (pode ser uma conversa, email, documento informal)
21
+ **Output:** `docs/[projeto]/BRIEFING.md`
22
+
23
+ ### O que acontece:
24
+ 1. @analyst conduz sessão de discovery com stakeholders
25
+ 2. Coleta requisitos, regras de negócio, restrições e objetivos
26
+ 3. Identifica personas de usuário
27
+ 4. Documenta o não-escopo explicitamente
28
+ 5. Mapeia integrações necessárias
29
+ 6. Identifica riscos de negócio
30
+
31
+ ### Critérios de saída:
32
+ - [ ] BRIEFING.md criado e completo
33
+ - [ ] Todas as ambiguidades identificadas e resolvidas
34
+ - [ ] Requisitos validados com pelo menos um stakeholder
35
+ - [ ] Não-escopo documentado
36
+ - [ ] Riscos de negócio identificados
37
+
38
+ **→ Passa para @pm**
39
+
40
+ ---
41
+
42
+ ## Fase 2 — PRD (@pm)
43
+
44
+ **Responsável:** Marina (@pm)
45
+ **Input:** `docs/[projeto]/BRIEFING.md`
46
+ **Output:** `docs/[projeto]/PRD.md`
47
+
48
+ ### O que acontece:
49
+ 1. @pm revisa o briefing e levanta dúvidas com @analyst
50
+ 2. Define visão de produto e proposta de valor
51
+ 3. Organiza funcionalidades em Épicos
52
+ 4. Prioriza usando framework MoSCoW
53
+ 5. Define métricas de sucesso do produto
54
+ 6. Documenta roadmap e milestones
55
+
56
+ ### Critérios de saída:
57
+ - [ ] PRD.md criado com todos os Épicos
58
+ - [ ] Priorização MoSCoW aplicada
59
+ - [ ] Métricas de sucesso definidas
60
+ - [ ] Não-escopo atualizado
61
+ - [ ] Stakeholders consultados
62
+
63
+ **→ Passa para @architect**
64
+
65
+ ---
66
+
67
+ ## Fase 3 — Avaliação Técnica (@architect)
68
+
69
+ **Responsável:** Arqui (@architect)
70
+ **Input:** `docs/[projeto]/PRD.md`
71
+ **Output:** Avaliação formal com riscos, viabilidade e recomendações de stack
72
+
73
+ ### O que acontece:
74
+ 1. @architect lê o PRD e identifica implicações técnicas
75
+ 2. Avalia viabilidade de cada épico
76
+ 3. Identifica riscos técnicos e dependências
77
+ 4. Propõe stack tecnológica inicial
78
+ 5. Sinaliza itens que precisam de mais esclarecimento
79
+ 6. Pode exercer veto técnico sobre funcionalidades inviáveis
80
+
81
+ ### Critérios de saída:
82
+ - [ ] Avaliação de viabilidade documentada
83
+ - [ ] Riscos técnicos mapeados
84
+ - [ ] Stack proposta com justificativas
85
+ - [ ] Vetos (se houver) formalizados com alternativas
86
+ - [ ] @pm alinhado sobre qualquer mudança de escopo
87
+
88
+ **→ Passa para criação do SPEC-TECNICO**
89
+
90
+ ---
91
+
92
+ ## Fase 4 — Especificação Técnica (@architect)
93
+
94
+ **Responsável:** Arqui (@architect)
95
+ **Input:** `docs/[projeto]/PRD.md` + avaliação técnica
96
+ **Output:** `docs/[projeto]/SPEC-TECNICO.md` + ADRs iniciais
97
+
98
+ ### O que acontece:
99
+ 1. @architect cria o SPEC-TECNICO.md completo
100
+ 2. Define arquitetura de alto nível
101
+ 3. Documenta modelagem de dados
102
+ 4. Especifica APIs e contratos de integração
103
+ 5. Define estratégia de testes
104
+ 6. Registra decisões arquiteturais como ADRs
105
+ 7. Define padrões de código e estrutura de pastas
106
+
107
+ ### Critérios de saída:
108
+ - [ ] SPEC-TECNICO.md completo
109
+ - [ ] Arquitetura documentada com diagrama
110
+ - [ ] Modelagem de dados definida
111
+ - [ ] APIs e integrações especificadas
112
+ - [ ] Estratégia de testes definida
113
+ - [ ] ADRs iniciais registrados
114
+
115
+ **→ Passa para @qa**
116
+
117
+ ---
118
+
119
+ ## Fase 5 — Revisão Crítica (@qa)
120
+
121
+ **Responsável:** Quinn (@qa)
122
+ **Input:** `docs/[projeto]/PRD.md` + `docs/[projeto]/SPEC-TECNICO.md`
123
+ **Output:** Relatório crítico de revisão
124
+
125
+ ### O que acontece:
126
+ 1. @qa lê o PRD e o SPEC-TECNICO em busca de inconsistências
127
+ 2. Identifica requisitos não-testáveis
128
+ 3. Verifica se os acceptance criteria futuros serão verificáveis
129
+ 4. Questiona pontos de falha não cobertos
130
+ 5. Propõe estratégia de testes de alto nível
131
+
132
+ ### Critérios de saída:
133
+ - [ ] Inconsistências entre PRD e SPEC-TECNICO identificadas
134
+ - [ ] Requisitos não-testáveis sinalizado
135
+ - [ ] Estratégia de testes de alto nível documentada
136
+ - [ ] @architect respondeu a todos os pontos críticos
137
+
138
+ **→ Passa para @po**
139
+
140
+ ---
141
+
142
+ ## Fase 6 — Aprovação Final (@po)
143
+
144
+ **Responsável:** Pax (@po)
145
+ **Input:** PRD.md + SPEC-TECNICO.md revisados
146
+ **Output:** Aprovação formal para início do desenvolvimento
147
+
148
+ ### O que acontece:
149
+ 1. @po revisa o backlog de épicos e funcionalidades
150
+ 2. Confirma que é possível criar stories claras para cada item
151
+ 3. Alinha priorização com @pm
152
+ 4. Emite aprovação formal para start do desenvolvimento
153
+ 5. Solicita @sm para iniciar criação de stories do primeiro épico
154
+
155
+ ### Critérios de saída:
156
+ - [ ] PRD.md aprovado por @po e @pm
157
+ - [ ] SPEC-TECNICO.md aprovado por @architect
158
+ - [ ] Zero ambiguidades pendentes
159
+ - [ ] @sm acionado para criar stories do Sprint 1
160
+
161
+ ---
162
+
163
+ ## Critérios Globais de Saída do Spec Pipeline
164
+
165
+ Para que o Spec Pipeline seja considerado concluído:
166
+
167
+ - [ ] `docs/[projeto]/BRIEFING.md` — completo e validado
168
+ - [ ] `docs/[projeto]/PRD.md` — aprovado por @pm e @po
169
+ - [ ] `docs/[projeto]/SPEC-TECNICO.md` — aprovado por @architect
170
+ - [ ] ADRs iniciais registrados em `docs/adr/`
171
+ - [ ] Zero ambiguidades de negócio pendentes
172
+ - [ ] Zero riscos técnicos não-mitigados documentados
173
+ - [ ] Stack tecnológica definida e aprovada
174
+ - [ ] Time alinhado sobre o que será construído
175
+
176
+ ---
177
+
178
+ ## Como Ativar
179
+
180
+ ```
181
+ @analyst iniciar spec-pipeline [nome-do-projeto]
182
+ ```
183
+
184
+ Ou retomar de uma fase específica:
185
+ ```
186
+ @pm criar-prd a partir do briefing em docs/[projeto]/BRIEFING.md
187
+ @architect criar spec-técnico a partir do PRD em docs/[projeto]/PRD.md
188
+ ```
189
+
190
+ ---
191
+
192
+ *GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
@@ -0,0 +1,252 @@
1
+ # Workflow: Story Development Cycle (SDC)
2
+
3
+ > Ciclo completo de desenvolvimento de uma story, da criação ao merge.
4
+ > Ordem: @sm → @po → @dev → @qa → @reviewer → @devops
5
+
6
+ ---
7
+
8
+ ## Visão Geral
9
+
10
+ O Story Development Cycle (SDC) é o coração do GEN.IA OS. Cada story percorre um ciclo rigoroso de criação, validação, desenvolvimento, revisão e entrega. Nenhuma etapa pode ser pulada. O SDC garante rastreabilidade completa de cada funcionalidade entregue.
11
+
12
+ **Duração típica:** 1-5 dias por story (dependendo do tamanho)
13
+ **Pré-requisito:** Spec Pipeline concluído (PRD.md + SPEC-TECNICO.md aprovados)
14
+
15
+ ---
16
+
17
+ ## Estados da Story
18
+
19
+ ```
20
+ Draft → Ready → InProgress → InQA → InReview → InPR → Done
21
+ ```
22
+
23
+ | Estado | Responsável | Significado |
24
+ |--------|-------------|-------------|
25
+ | Draft | @sm | Story criada, aguardando validação |
26
+ | Ready | @po | Story validada, pronta para sprint |
27
+ | InProgress | @dev | Em desenvolvimento |
28
+ | InQA | @qa | Em revisão de qualidade |
29
+ | InReview | @reviewer | Em code review |
30
+ | InPR | @devops | PR criado, aguardando merge |
31
+ | Done | @po | Story aceita e entregue |
32
+
33
+ ---
34
+
35
+ ## Fase 1 — Draft (@sm)
36
+
37
+ **Responsável:** Sami (@sm)
38
+ **Input:** Épico do PRD + SPEC-TECNICO para contexto técnico
39
+ **Output:** `docs/stories/STORY-XXX.md` em status Draft
40
+
41
+ ### O que acontece:
42
+ 1. @sm identifica próxima story a ser criada com base no backlog priorizado por @po
43
+ 2. Cria o arquivo STORY-XXX.md seguindo o template padrão
44
+ 3. Escreve a User Story no formato correto
45
+ 4. Define mínimo 3 Acceptance Criteria mensuráveis e testáveis
46
+ 5. Documenta o não-escopo explicitamente
47
+ 6. Adiciona notas técnicas relevantes do SPEC-TECNICO
48
+ 7. Estima esforço (P/M/G/XG)
49
+
50
+ ### Critérios de saída:
51
+ - [ ] STORY-XXX.md criado com template completo
52
+ - [ ] User Story no formato "Como... quero... para..."
53
+ - [ ] Mínimo 3 ACs mensuráveis
54
+ - [ ] Não-escopo documentado
55
+ - [ ] Épico pai referenciado
56
+ - [ ] Status: Draft
57
+
58
+ **→ Passa para @po**
59
+
60
+ ---
61
+
62
+ ## Fase 2 — Validate (@po)
63
+
64
+ **Responsável:** Pax (@po)
65
+ **Input:** `docs/stories/STORY-XXX.md` em Draft
66
+ **Output:** Story aprovada (Ready) ou devolvida para revisão
67
+
68
+ ### O que acontece:
69
+ 1. @po executa checklist de validação 10-point
70
+ 2. Se aprovada: altera status para Ready e define prioridade no sprint
71
+ 3. Se reprovada: devolve para @sm com feedback específico e items a corrigir
72
+ 4. @sm ajusta e resubmete (sem limite de tentativas nesta fase)
73
+
74
+ ### Critérios de aprovação (10-point checklist):
75
+ - [ ] Formato correto: "Como [persona], quero [ação], para [benefício]"
76
+ - [ ] Persona identificada e definida no PRD
77
+ - [ ] Valor explícito e mensurável
78
+ - [ ] Mínimo 3 ACs, todos testáveis
79
+ - [ ] Independente ou dependências mapeadas
80
+ - [ ] Tamanho adequado para uma sprint
81
+ - [ ] Estimável com as informações disponíveis
82
+ - [ ] Não-escopo explícito
83
+ - [ ] Épico pai identificado
84
+ - [ ] DoD aplicável à story
85
+
86
+ **Score mínimo: 9/10**
87
+
88
+ **→ Status muda para Ready**
89
+
90
+ ---
91
+
92
+ ## Fase 3 — Ready (@po + @sm)
93
+
94
+ **Responsável:** @po (prioridade) + @sm (sprint)
95
+ **Status:** Ready
96
+
97
+ A story está validada e entra no sprint backlog. @sm inclui na sprint planning e atribui ao @dev. Nenhum desenvolvimento começa sem story em Ready.
98
+
99
+ ---
100
+
101
+ ## Fase 4 — Develop (@dev)
102
+
103
+ **Responsável:** Dev (@dev)
104
+ **Input:** `docs/stories/STORY-XXX.md` em Ready + SPEC-TECNICO.md
105
+ **Output:** Código implementado, testes escritos, commits locais
106
+
107
+ ### O que acontece:
108
+ 1. @dev lê completamente a story e o SPEC-TECNICO
109
+ 2. Cria o branch: `git checkout -b feat/STORY-XXX-descricao`
110
+ 3. Implementa o código seguindo os padrões arquiteturais
111
+ 4. Escreve testes unitários (coverage >= 80%)
112
+ 5. Executa lint, typecheck e testes localmente
113
+ 6. Comita com mensagem formatada (nunca faz push — exclusivo de @devops)
114
+ 7. Atualiza status da story para InProgress
115
+ 8. Ao concluir, notifica @qa
116
+
117
+ ### Critérios de saída:
118
+ - [ ] Todos os ACs implementados
119
+ - [ ] Testes unitários escritos (coverage >= 80%)
120
+ - [ ] Lint passando sem warnings
121
+ - [ ] Typecheck passando
122
+ - [ ] Commits atômicos e bem descritos
123
+ - [ ] Status: InQA
124
+
125
+ **→ Passa para @qa**
126
+
127
+ ---
128
+
129
+ ## Fase 5 — QA Review (@qa)
130
+
131
+ **Responsável:** Quinn (@qa)
132
+ **Input:** Branch com código implementado
133
+ **Output:** Relatório QA — APROVADO ou REPROVADO com bugs
134
+
135
+ ### O que acontece:
136
+ 1. @qa verifica cada Acceptance Criterion da story
137
+ 2. Executa testes (unitários, integração se houver)
138
+ 3. Verifica casos de borda e cenários negativos
139
+ 4. Documenta bugs encontrados com severidade
140
+ 5. Emite veredicto: APROVADO ou REPROVADO
141
+
142
+ **QA Loop (máximo 5 iterações):**
143
+ ```
144
+ @qa revisa → REPROVADO → @dev corrige → @qa re-revisa → ...
145
+ ```
146
+
147
+ Se após 5 iterações ainda reprovado: escalar para @architect + @pm
148
+
149
+ ### Critérios de aprovação:
150
+ - [ ] Todos os ACs verificados e passando
151
+ - [ ] Zero bugs CRÍTICOS
152
+ - [ ] Máximo 2 bugs ALTOS (documentados para correção futura)
153
+ - [ ] Testes passando (>= 80% coverage)
154
+ - [ ] Lint sem warnings
155
+ - [ ] Status: InReview
156
+
157
+ **→ Passa para @reviewer**
158
+
159
+ ---
160
+
161
+ ## Fase 6 — Code Review (@reviewer)
162
+
163
+ **Responsável:** Rev (@reviewer)
164
+ **Input:** Branch aprovado pelo @qa
165
+ **Output:** LGTM (aprovado) ou mudanças solicitadas
166
+
167
+ ### O que acontece:
168
+ 1. @reviewer lê o diff completo da story
169
+ 2. Verifica corretude, arquitetura, segurança, legibilidade
170
+ 3. Emite aprovação (LGTM) ou lista de mudanças bloqueantes
171
+ 4. @dev corrige mudanças bloqueantes e notifica @reviewer
172
+ 5. @reviewer re-aprova
173
+
174
+ ### Critérios de aprovação:
175
+ - [ ] Sem issues de segurança
176
+ - [ ] Arquitetura consistente com SPEC-TECNICO
177
+ - [ ] Imports absolutos usados
178
+ - [ ] Código legível e manutenível
179
+ - [ ] Testes de qualidade (testam comportamento, não implementação)
180
+ - [ ] Status: InPR
181
+
182
+ **→ Passa para @devops**
183
+
184
+ ---
185
+
186
+ ## Fase 7 — Push e PR (@devops)
187
+
188
+ **Responsável:** Gate (@devops)
189
+ **Input:** Branch aprovado por @qa e @reviewer
190
+ **Output:** PR criado no repositório remoto
191
+
192
+ ### O que acontece:
193
+ 1. @devops verifica checklist pré-push
194
+ 2. Faz `git push -u origin feat/STORY-XXX-descricao`
195
+ 3. Cria Pull Request com template completo
196
+ 4. Atribui reviewers para merge
197
+ 5. Monitora CI/CD pipeline
198
+ 6. Faz merge após aprovação do PR e CI verde
199
+
200
+ ### Critérios de saída:
201
+ - [ ] Push realizado sem erros
202
+ - [ ] PR criado com descrição completa
203
+ - [ ] CI/CD pipeline verde
204
+ - [ ] PR mergeado para main
205
+ - [ ] Status: Done
206
+
207
+ ---
208
+
209
+ ## Fase 8 — Done (@po)
210
+
211
+ **Responsável:** Pax (@po)
212
+ **Output:** Story marcada como Done, backlog atualizado
213
+
214
+ ### O que acontece:
215
+ 1. @po verifica que todos os ACs foram entregues conforme especificado
216
+ 2. Aceita a story formalmente (marca como Done)
217
+ 3. Atualiza o backlog
218
+ 4. Informa @pm sobre o progresso do épico
219
+
220
+ ---
221
+
222
+ ## Diagrama do Fluxo
223
+
224
+ ```
225
+ @sm cria story (Draft)
226
+
227
+ @po valida (Ready) ←── @sm corrige ──← REPROVADO
228
+
229
+ @dev implementa (InProgress)
230
+
231
+ @qa revisa (InQA) ←── @dev corrige ──← REPROVADO (max 5x)
232
+
233
+ @reviewer revisa (InReview) ←── @dev corrige ──← CHANGES
234
+
235
+ @devops push + PR (InPR)
236
+
237
+ @po aceita (Done)
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Regras Invioláveis do SDC
243
+
244
+ 1. Nunca pular a validação de @po — story não-validada não pode ser desenvolvida
245
+ 2. @dev nunca faz push — exclusivo de @devops
246
+ 3. QA Loop tem máximo 5 iterações — após isso, escalar
247
+ 4. Code review é obrigatório antes do push — sem exceção
248
+ 5. Story só vai para Done quando @po aceitar formalmente
249
+
250
+ ---
251
+
252
+ *GEN.IA OS v1.0 — {{TEAM_NAME}} — {{CREATOR_NAME}}*
@@ -0,0 +1,98 @@
1
+ # Guideline: Clean Code
2
+
3
+ > Padroes de codigo pragmaticos - conciso, direto, sem over-engineering.
4
+
5
+ ## Principios Core
6
+
7
+ | Principio | Regra |
8
+ |-----------|-------|
9
+ | **SRP** | Single Responsibility - cada funcao/classe faz UMA coisa |
10
+ | **DRY** | Don't Repeat Yourself - extrair duplicatas, reusar |
11
+ | **KISS** | Keep It Simple - solucao mais simples que funciona |
12
+ | **YAGNI** | You Aren't Gonna Need It - nao construir features nao usadas |
13
+ | **Boy Scout** | Deixar codigo mais limpo do que encontrou |
14
+
15
+ ## Regras de Naming
16
+
17
+ | Elemento | Convencao |
18
+ |----------|-----------|
19
+ | **Variaveis** | Revelar intencao: `userCount` nao `n` |
20
+ | **Funcoes** | Verbo + substantivo: `getUserById()` nao `user()` |
21
+ | **Booleans** | Forma de pergunta: `isActive`, `hasPermission`, `canEdit` |
22
+ | **Constantes** | SCREAMING_SNAKE: `MAX_RETRY_COUNT` |
23
+
24
+ > **Regra:** Se voce precisa de um comentario para explicar o nome, renomeie.
25
+
26
+ ## Regras de Funcao
27
+
28
+ | Regra | Descricao |
29
+ |-------|-----------|
30
+ | **Pequena** | Max 20 linhas, idealmente 5-10 |
31
+ | **Uma Coisa** | Faz uma coisa, faz bem |
32
+ | **Um Nivel** | Um nivel de abstracao por funcao |
33
+ | **Poucos Args** | Max 3 argumentos, preferir 0-2 |
34
+ | **Sem Side Effects** | Nao mutar inputs inesperadamente |
35
+
36
+ ## Estrutura de Codigo
37
+
38
+ | Padrao | Aplicar |
39
+ |--------|---------|
40
+ | **Guard Clauses** | Early returns para edge cases |
41
+ | **Flat > Nested** | Evitar nesting profundo (max 2 niveis) |
42
+ | **Composicao** | Funcoes pequenas compostas |
43
+ | **Colocacao** | Manter codigo relacionado proximo |
44
+
45
+ ## Estilo de Codigo AI
46
+
47
+ | Situacao | Acao |
48
+ |----------|------|
49
+ | Usuario pede feature | Escrever diretamente |
50
+ | Usuario reporta bug | Corrigir, nao explicar |
51
+ | Requisito nao claro | Perguntar, nao assumir |
52
+
53
+ ## Anti-Patterns
54
+
55
+ | NAO Fazer | Fazer |
56
+ |-----------|-------|
57
+ | Comentar cada linha | Deletar comentarios obvios |
58
+ | Helper para one-liner | Inline o codigo |
59
+ | Factory para 2 objetos | Instanciacao direta |
60
+ | utils.ts com 1 funcao | Colocar onde usado |
61
+ | "First we import..." | Apenas escrever codigo |
62
+ | Deep nesting | Guard clauses |
63
+ | Magic numbers | Named constants |
64
+ | God functions | Dividir por responsabilidade |
65
+
66
+ ## Antes de Editar Qualquer Arquivo
67
+
68
+ | Pergunta | Por que |
69
+ |----------|---------|
70
+ | **O que importa este arquivo?** | Pode quebrar |
71
+ | **O que este arquivo importa?** | Mudanca de interface |
72
+ | **Quais testes cobrem isso?** | Testes podem falhar |
73
+ | **E um componente compartilhado?** | Multiplos lugares afetados |
74
+
75
+ > **Regra:** Editar arquivo + todos dependentes na MESMA tarefa.
76
+
77
+ ## Self-Check Antes de Completar
78
+
79
+ | Check | Pergunta |
80
+ |-------|----------|
81
+ | **Objetivo alcancado?** | Fiz exatamente o que usuario pediu? |
82
+ | **Arquivos editados?** | Modifiquei todos arquivos necessarios? |
83
+ | **Codigo funciona?** | Testei/verifiquei a mudanca? |
84
+ | **Sem erros?** | Lint e TypeScript passam? |
85
+ | **Nada esquecido?** | Algum edge case perdido? |
86
+
87
+ ## Resumo
88
+
89
+ | Fazer | Nao Fazer |
90
+ |-------|-----------|
91
+ | Escrever codigo direto | Escrever tutoriais |
92
+ | Deixar codigo se auto-documentar | Adicionar comentarios obvios |
93
+ | Corrigir bugs imediatamente | Explicar o fix primeiro |
94
+ | Inline coisas pequenas | Criar arquivos desnecessarios |
95
+ | Nomear coisas claramente | Usar abreviacoes |
96
+ | Manter funcoes pequenas | Escrever funcoes 100+ linhas |
97
+
98
+ > **Lembrar: O usuario quer codigo funcionando, nao uma aula de programacao.**
@@ -0,0 +1,176 @@
1
+ # Guideline: Testing Patterns
2
+
3
+ > Principios para suites de teste confiaveis.
4
+
5
+ ## Piramide de Testes
6
+
7
+ ```
8
+ /\ E2E (Poucos)
9
+ / \ Fluxos criticos
10
+ /----\
11
+ / \ Integration (Alguns)
12
+ /--------\ API, DB queries
13
+ / \
14
+ /------------\ Unit (Muitos)
15
+ Funcoes, classes
16
+ ```
17
+
18
+ ## Padrao AAA
19
+
20
+ | Etapa | Proposito |
21
+ |-------|-----------|
22
+ | **Arrange** | Configurar dados de teste |
23
+ | **Act** | Executar codigo sob teste |
24
+ | **Assert** | Verificar resultado |
25
+
26
+ ## Selecao de Tipo de Teste
27
+
28
+ | Tipo | Melhor Para | Velocidade |
29
+ |------|-------------|------------|
30
+ | **Unit** | Funcoes puras, logica | Rapido (<50ms) |
31
+ | **Integration** | API, DB, servicos | Medio |
32
+ | **E2E** | Fluxos criticos do usuario | Lento |
33
+
34
+ ## Principios de Unit Test
35
+
36
+ ### Bons Unit Tests (FIRST)
37
+
38
+ | Principio | Significado |
39
+ |-----------|-------------|
40
+ | Fast | < 100ms cada |
41
+ | Isolated | Sem deps externos |
42
+ | Repeatable | Mesmo resultado sempre |
43
+ | Self-checking | Sem verificacao manual |
44
+ | Timely | Escritos com o codigo |
45
+
46
+ ### O Que Testar
47
+
48
+ | Testar | Nao Testar |
49
+ |--------|------------|
50
+ | Business logic | Codigo do framework |
51
+ | Edge cases | Libs de terceiros |
52
+ | Error handling | Getters simples |
53
+
54
+ ## Principios de Integration Test
55
+
56
+ ### O Que Testar
57
+
58
+ | Area | Foco |
59
+ |------|------|
60
+ | API endpoints | Request/response |
61
+ | Database | Queries, transactions |
62
+ | External services | Contratos |
63
+
64
+ ### Setup/Teardown
65
+
66
+ | Fase | Acao |
67
+ |------|------|
68
+ | Before All | Conectar recursos |
69
+ | Before Each | Resetar estado |
70
+ | After Each | Limpar |
71
+ | After All | Desconectar |
72
+
73
+ ## Principios de Mocking
74
+
75
+ ### Quando Fazer Mock
76
+
77
+ | Mock | Nao Mock |
78
+ |------|----------|
79
+ | External APIs | Codigo sob teste |
80
+ | Database (unit) | Dependencias simples |
81
+ | Time/random | Funcoes puras |
82
+ | Network | Stores in-memory |
83
+
84
+ ### Tipos de Mock
85
+
86
+ | Tipo | Uso |
87
+ |------|-----|
88
+ | Stub | Retornar valores fixos |
89
+ | Spy | Rastrear chamadas |
90
+ | Mock | Definir expectativas |
91
+ | Fake | Implementacao simplificada |
92
+
93
+ ## Organizacao de Testes
94
+
95
+ ### Naming
96
+
97
+ | Padrao | Exemplo |
98
+ |--------|---------|
99
+ | Should behavior | "should return error when..." |
100
+ | When condition | "when user not found..." |
101
+ | Given-when-then | "given X, when Y, then Z" |
102
+
103
+ ### Agrupamento
104
+
105
+ | Nivel | Uso |
106
+ |-------|-----|
107
+ | describe | Agrupar testes relacionados |
108
+ | it/test | Caso individual |
109
+ | beforeEach | Setup comum |
110
+
111
+ ## Dados de Teste
112
+
113
+ ### Estrategias
114
+
115
+ | Abordagem | Uso |
116
+ |-----------|-----|
117
+ | Factories | Gerar dados de teste |
118
+ | Fixtures | Datasets predefinidos |
119
+ | Builders | Criacao fluente de objetos |
120
+
121
+ ### Principios
122
+ - Usar dados realistas
123
+ - Randomizar valores nao essenciais (faker)
124
+ - Compartilhar fixtures comuns
125
+ - Manter dados minimos
126
+
127
+ ## Best Practices
128
+
129
+ | Pratica | Por que |
130
+ |---------|---------|
131
+ | Um assert por teste | Razao clara de falha |
132
+ | Testes independentes | Sem dependencia de ordem |
133
+ | Testes rapidos | Rodar frequentemente |
134
+ | Nomes descritivos | Auto-documentacao |
135
+ | Limpar | Evitar side effects |
136
+
137
+ ## Anti-Patterns
138
+
139
+ | NAO Fazer | Fazer |
140
+ |-----------|-------|
141
+ | Testar implementacao | Testar comportamento |
142
+ | Duplicar codigo de teste | Usar factories |
143
+ | Setup complexo | Simplificar ou dividir |
144
+ | Ignorar testes flaky | Corrigir causa raiz |
145
+ | Pular cleanup | Resetar estado |
146
+
147
+ ## Exemplo de Teste
148
+
149
+ ```typescript
150
+ describe('UserService', () => {
151
+ describe('createUser', () => {
152
+ it('should create user with valid data', async () => {
153
+ // Arrange
154
+ const userData = { name: 'John', email: 'john@test.com' };
155
+
156
+ // Act
157
+ const user = await userService.createUser(userData);
158
+
159
+ // Assert
160
+ expect(user.id).toBeDefined();
161
+ expect(user.name).toBe('John');
162
+ });
163
+
164
+ it('should throw error when email is invalid', async () => {
165
+ // Arrange
166
+ const userData = { name: 'John', email: 'invalid' };
167
+
168
+ // Act & Assert
169
+ await expect(userService.createUser(userData))
170
+ .rejects.toThrow('Invalid email');
171
+ });
172
+ });
173
+ });
174
+ ```
175
+
176
+ > **Lembrar:** Testes sao documentacao. Se alguem nao consegue entender o que o codigo faz pelos testes, reescreva-os.