nexus-core-v3 3.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 (232) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/agents/README.md +133 -0
  4. package/agents/_protocol.md +107 -0
  5. package/agents/analyst.md +138 -0
  6. package/agents/architect.md +146 -0
  7. package/agents/data-engineer.md +170 -0
  8. package/agents/dev.md +134 -0
  9. package/agents/devops.md +141 -0
  10. package/agents/nexus-master.md +147 -0
  11. package/agents/pm.md +133 -0
  12. package/agents/po.md +138 -0
  13. package/agents/qa.md +192 -0
  14. package/agents/sm.md +122 -0
  15. package/agents/squad-creator.md +121 -0
  16. package/agents/ux-design-expert.md +165 -0
  17. package/artifact-manifest.json +903 -0
  18. package/bin/nexus.mjs +37 -0
  19. package/checklists/README.md +49 -0
  20. package/checklists/architect-checklist.md +47 -0
  21. package/checklists/change-checklist.md +61 -0
  22. package/checklists/db-predeploy-checklist.md +57 -0
  23. package/checklists/design-quality-checklist.md +57 -0
  24. package/checklists/discovery-checklist.md +36 -0
  25. package/checklists/foundation-checklist.md +39 -0
  26. package/checklists/launch-checklist.md +39 -0
  27. package/checklists/pm-checklist.md +48 -0
  28. package/checklists/po-master-checklist.md +64 -0
  29. package/checklists/reality-check-checklist.md +49 -0
  30. package/checklists/story-dod-checklist.md +52 -0
  31. package/checklists/story-draft-checklist.md +36 -0
  32. package/dist/bin/dashboard.html +279 -0
  33. package/dist/bin/nexus.mjs +20008 -0
  34. package/dist/constitution.yaml +76 -0
  35. package/knowledge/README.md +57 -0
  36. package/knowledge/architecture/architectural-styles-map.md +182 -0
  37. package/knowledge/architecture/design-patterns-gof.md +192 -0
  38. package/knowledge/architecture/distributed-patterns-cheatsheet.md +201 -0
  39. package/knowledge/architecture/saas-subscription-blueprint.md +355 -0
  40. package/knowledge/architecture/system-design-tradeoffs.md +231 -0
  41. package/knowledge/architecture/t3-fullstack-typesafe-stack.md +273 -0
  42. package/knowledge/copy/landing-copy-that-converts.md +168 -0
  43. package/knowledge/data/postgres-indexing-and-tuning.md +263 -0
  44. package/knowledge/data/schema-modeling-decisions.md +273 -0
  45. package/knowledge/data/supabase-rls-patterns.md +316 -0
  46. package/knowledge/data/zero-downtime-migrations.md +308 -0
  47. package/knowledge/devops/cicd-pipeline-best-practices.md +318 -0
  48. package/knowledge/devops/production-dockerfile.md +283 -0
  49. package/knowledge/devops/twelve-factor-app.md +398 -0
  50. package/knowledge/engineering/clean-code-principles.md +429 -0
  51. package/knowledge/engineering/effective-code-review.md +204 -0
  52. package/knowledge/engineering/testing-strategy-beyond-unit.md +307 -0
  53. package/knowledge/governance/risk-matrix.md +56 -0
  54. package/knowledge/integration/mcp-server-selection-matrix.md +235 -0
  55. package/knowledge/marketing/copy-que-converte.md +43 -0
  56. package/knowledge/marketing/funil-e-jornada.md +36 -0
  57. package/knowledge/negocios/proposta-vencedora.md +38 -0
  58. package/knowledge/negocios/roi-e-unit-economics.md +46 -0
  59. package/knowledge/pipeline/1-descobrir.md +26 -0
  60. package/knowledge/pipeline/2-estrategizar.md +26 -0
  61. package/knowledge/pipeline/3-estruturar.md +27 -0
  62. package/knowledge/pipeline/4-construir.md +27 -0
  63. package/knowledge/pipeline/5-endurecer.md +28 -0
  64. package/knowledge/pipeline/6-lancar.md +27 -0
  65. package/knowledge/pipeline/7-operar.md +27 -0
  66. package/knowledge/security/lgpd-conformidade-basica.md +35 -0
  67. package/knowledge/security/owasp-secure-coding-gates.md +220 -0
  68. package/knowledge/security/owasp-top10-threat-assessment.md +287 -0
  69. package/knowledge/security/threat-modeling-stride.md +34 -0
  70. package/knowledge/web-craft/a11y-audit-checklist.md +251 -0
  71. package/knowledge/web-craft/accessible-component-patterns.md +383 -0
  72. package/knowledge/web-craft/anti-ai-look.md +114 -0
  73. package/knowledge/web-craft/design-system-from-code.md +195 -0
  74. package/knowledge/web-craft/intrinsic-css-layout.md +420 -0
  75. package/knowledge/web-craft/style-cloning.md +185 -0
  76. package/knowledge/web-craft/visual-polish-review.md +183 -0
  77. package/package.json +55 -0
  78. package/runbooks/campanha-de-conteudo.md +36 -0
  79. package/runbooks/feature-em-projeto-existente.md +37 -0
  80. package/runbooks/mvp-startup.md +38 -0
  81. package/runbooks/resposta-a-incidente.md +37 -0
  82. package/squads/exemplo-conteudo/agents/editor-chefe.md +48 -0
  83. package/squads/exemplo-conteudo/agents/pesquisador.md +44 -0
  84. package/squads/exemplo-conteudo/agents/redator.md +45 -0
  85. package/squads/exemplo-conteudo/knowledge/estilo-editorial.md +21 -0
  86. package/squads/exemplo-conteudo/squad.yaml +19 -0
  87. package/squads/exemplo-conteudo/tasks/pesquisar-fontes.md +26 -0
  88. package/squads/exemplo-conteudo/tasks/planejar-pauta.md +27 -0
  89. package/squads/exemplo-conteudo/tasks/redigir-artigo.md +26 -0
  90. package/squads/exemplo-conteudo/tasks/revisar-artigo.md +27 -0
  91. package/squads/marketing/agents/analista.md +56 -0
  92. package/squads/marketing/agents/chefe-marketing.md +65 -0
  93. package/squads/marketing/agents/conteudo.md +55 -0
  94. package/squads/marketing/agents/copy.md +55 -0
  95. package/squads/marketing/agents/growth.md +56 -0
  96. package/squads/marketing/agents/social.md +55 -0
  97. package/squads/marketing/squad.yaml +17 -0
  98. package/squads/marketing/tasks/aprovar-campanha.md +43 -0
  99. package/squads/negocios/agents/chefe-negocios.md +65 -0
  100. package/squads/negocios/agents/financas-roi.md +55 -0
  101. package/squads/negocios/agents/suporte.md +55 -0
  102. package/squads/negocios/agents/vendas-proposta.md +56 -0
  103. package/squads/negocios/squad.yaml +17 -0
  104. package/squads/negocios/tasks/aprovar-proposta.md +40 -0
  105. package/squads/security/agents/appsec-reviewer.md +59 -0
  106. package/squads/security/agents/chefe-seguranca.md +65 -0
  107. package/squads/security/agents/compliance-auditor.md +60 -0
  108. package/squads/security/agents/threat-modeler.md +60 -0
  109. package/squads/security/squad.yaml +20 -0
  110. package/squads/security/tasks/aprovar-gate-seguranca.md +42 -0
  111. package/squads/security/tasks/emitir-parecer-conformidade.md +42 -0
  112. package/tasks/README.md +72 -0
  113. package/tasks/accessibility-wcag-checklist.md +69 -0
  114. package/tasks/advanced-elicitation.md +42 -0
  115. package/tasks/analyze-performance.md +54 -0
  116. package/tasks/analyze-project-structure.md +59 -0
  117. package/tasks/apply-qa-fixes.md +57 -0
  118. package/tasks/architect-analyze-impact.md +62 -0
  119. package/tasks/archive-squad.md +52 -0
  120. package/tasks/audit-codebase.md +53 -0
  121. package/tasks/build-component.md +61 -0
  122. package/tasks/calculate-roi.md +63 -0
  123. package/tasks/ci-cd-configuration.md +51 -0
  124. package/tasks/collect-visual-evidence.md +62 -0
  125. package/tasks/compose-molecule.md +57 -0
  126. package/tasks/consolidate-patterns.md +54 -0
  127. package/tasks/create-brownfield-prd.md +54 -0
  128. package/tasks/create-competitor-analysis.md +42 -0
  129. package/tasks/create-deep-research-prompt.md +62 -0
  130. package/tasks/create-doc.md +62 -0
  131. package/tasks/create-epic.md +49 -0
  132. package/tasks/create-front-end-spec.md +56 -0
  133. package/tasks/create-migration-plan.md +57 -0
  134. package/tasks/create-next-story.md +66 -0
  135. package/tasks/create-prd.md +53 -0
  136. package/tasks/create-project-brief.md +47 -0
  137. package/tasks/create-rls-policies.md +59 -0
  138. package/tasks/create-schema.md +57 -0
  139. package/tasks/create-service.md +55 -0
  140. package/tasks/create-squad.md +100 -0
  141. package/tasks/create-suite.md +62 -0
  142. package/tasks/db-apply-migration.md +56 -0
  143. package/tasks/db-domain-modeling.md +57 -0
  144. package/tasks/db-dry-run.md +50 -0
  145. package/tasks/db-env-check.md +57 -0
  146. package/tasks/db-load-csv.md +54 -0
  147. package/tasks/db-policy-apply.md +58 -0
  148. package/tasks/db-rollback.md +51 -0
  149. package/tasks/db-run-sql.md +61 -0
  150. package/tasks/db-seed.md +52 -0
  151. package/tasks/db-smoke-test.md +51 -0
  152. package/tasks/db-snapshot.md +48 -0
  153. package/tasks/db-verify-order.md +49 -0
  154. package/tasks/deliberate.md +46 -0
  155. package/tasks/design-indexes.md +59 -0
  156. package/tasks/dev-develop-story.md +61 -0
  157. package/tasks/document-project.md +59 -0
  158. package/tasks/execute-checklist.md +57 -0
  159. package/tasks/execute-epic-plan.md +52 -0
  160. package/tasks/execute-subtask.md +51 -0
  161. package/tasks/extend-pattern.md +63 -0
  162. package/tasks/extend-squad.md +60 -0
  163. package/tasks/extract-patterns.md +64 -0
  164. package/tasks/extract-tokens.md +59 -0
  165. package/tasks/facilitate-brainstorming-session.md +42 -0
  166. package/tasks/generate-ai-frontend-prompt.md +57 -0
  167. package/tasks/generate-documentation.md +60 -0
  168. package/tasks/generate-migration-strategy.md +57 -0
  169. package/tasks/generate-shock-report.md +56 -0
  170. package/tasks/mcp-management.md +66 -0
  171. package/tasks/orchestrate.md +50 -0
  172. package/tasks/perform-market-research.md +42 -0
  173. package/tasks/plan-create-context.md +57 -0
  174. package/tasks/plan-create-implementation.md +58 -0
  175. package/tasks/po-close-story.md +60 -0
  176. package/tasks/po-manage-story-backlog.md +59 -0
  177. package/tasks/po-pull-story.md +60 -0
  178. package/tasks/po-sync-story.md +59 -0
  179. package/tasks/pr-automation.md +50 -0
  180. package/tasks/pre-push-quality-gate.md +54 -0
  181. package/tasks/push.md +53 -0
  182. package/tasks/qa-browser-console-check.md +52 -0
  183. package/tasks/qa-create-fix-request.md +58 -0
  184. package/tasks/qa-evidence-requirements.md +55 -0
  185. package/tasks/qa-false-positive-detection.md +55 -0
  186. package/tasks/qa-fix-issues.md +55 -0
  187. package/tasks/qa-gate.md +53 -0
  188. package/tasks/qa-migration-validation.md +58 -0
  189. package/tasks/qa-nfr-assess.md +45 -0
  190. package/tasks/qa-review-story.md +56 -0
  191. package/tasks/qa-risk-profile.md +45 -0
  192. package/tasks/qa-security-checklist.md +64 -0
  193. package/tasks/qa-test-design.md +47 -0
  194. package/tasks/qa-trace-requirements.md +48 -0
  195. package/tasks/release-management.md +53 -0
  196. package/tasks/repository-cleanup.md +61 -0
  197. package/tasks/route.md +44 -0
  198. package/tasks/run-tests.md +50 -0
  199. package/tasks/security-audit.md +54 -0
  200. package/tasks/setup-database.md +60 -0
  201. package/tasks/setup-design-system.md +60 -0
  202. package/tasks/shard-doc.md +60 -0
  203. package/tasks/spec-assess-complexity.md +55 -0
  204. package/tasks/spec-critique.md +64 -0
  205. package/tasks/spec-gather-requirements.md +48 -0
  206. package/tasks/spec-research-dependencies.md +42 -0
  207. package/tasks/spec-write-spec.md +50 -0
  208. package/tasks/test-as-user.md +52 -0
  209. package/tasks/ux-create-wireframe.md +54 -0
  210. package/tasks/ux-user-research.md +55 -0
  211. package/tasks/validate-next-story.md +61 -0
  212. package/tasks/validate-squad.md +55 -0
  213. package/tasks/verify-subtask.md +52 -0
  214. package/tasks/version-management.md +45 -0
  215. package/templates/README.md +47 -0
  216. package/templates/architecture-tmpl.md +115 -0
  217. package/templates/competitor-analysis-tmpl.md +87 -0
  218. package/templates/epic-tmpl.md +83 -0
  219. package/templates/front-end-spec-tmpl.md +110 -0
  220. package/templates/market-research-tmpl.md +98 -0
  221. package/templates/migration-plan-tmpl.md +92 -0
  222. package/templates/prd-tmpl.md +95 -0
  223. package/templates/project-brief-tmpl.md +100 -0
  224. package/templates/qa-verdict-tmpl.md +73 -0
  225. package/templates/rls-policies-tmpl.md +93 -0
  226. package/templates/schema-design-tmpl.md +107 -0
  227. package/templates/spec-tmpl.md +88 -0
  228. package/templates/squad/agent-dna-tmpl.md +72 -0
  229. package/templates/squad/chief-dna-tmpl.md +98 -0
  230. package/templates/squad/squad-task-tmpl.md +50 -0
  231. package/templates/squad/squad-yaml-tmpl.md +47 -0
  232. package/templates/story-tmpl.md +63 -0
@@ -0,0 +1,92 @@
1
+ ---
2
+ id: migration-plan-tmpl
3
+ kind: template
4
+ agent: data-engineer
5
+ produces: docs/data-models/{versao}-migration-plan.md
6
+ ---
7
+
8
+ # Migration Plan: {versão / descrição curta}
9
+
10
+ **Status:** Draft
11
+ **Banco-alvo:** {PostgreSQL / Supabase — ambiente}
12
+ **Schema-fonte:** {docs/data-models/{dominio}-schema.md — o design que esta migration materializa}
13
+ **Snapshot baseline:** {label do snapshot pré-migração — ponto de rollback}
14
+
15
+ ## Objetivo
16
+
17
+ > O que esta migração muda e por quê. Cada mudança rastreia a uma story/spec/design (No Invention).
18
+
19
+ - {mudança 1 — rastro: story/spec/schema}
20
+ - {mudança 2 — rastro}
21
+
22
+ ## Pré-condições
23
+
24
+ > O que precisa estar verdadeiro antes de aplicar. Reversibilidade é pré-condição.
25
+
26
+ - [ ] Snapshot `{label}` criado (`*snapshot {label}`)
27
+ - [ ] Rollback script pronto e testado (ver `## Rollback`)
28
+ - [ ] Ordem do DDL validada — dependências primeiro (`*verify-order {path}`)
29
+ - [ ] Dry-run executado sem erro (`*dry-run {path}`)
30
+ - [ ] Variáveis de ambiente do banco validadas (`*env-check`)
31
+ - [ ] {pré-condição específica desta migração}
32
+
33
+ ## Mudanças (DDL, em ordem de dependência)
34
+
35
+ > Tabelas-pai antes de filhas; tipos/enums antes de colunas que os usam. Tudo idempotente (`IF NOT EXISTS` / `IF EXISTS`) — rodar de novo é seguro.
36
+
37
+ ### Passo {n}: {descrição}
38
+
39
+ ```sql
40
+ -- forward
41
+ {DDL idempotente}
42
+ ```
43
+
44
+ **Impacto:** {tabelas afetadas, lock esperado, downtime?}
45
+ **Dados:** {migração/backfill de dados envolvido? volume?}
46
+
47
+ ## Estratégia de Aplicação
48
+
49
+ | Item | Decisão |
50
+ |---|---|
51
+ | Transação | {tudo em uma transação? ou por passo?} |
52
+ | Janela | {online / janela de manutenção — por quê} |
53
+ | Lock esperado | {ACCESS EXCLUSIVE em {tabela}? duração estimada} |
54
+ | Backfill | {síncrono no DDL / batch separado / N/A} |
55
+ | Idempotência | {como rodar duas vezes não quebra} |
56
+
57
+ ## Rollback
58
+
59
+ > Se eu não sei como desfazer, eu não aplico. Cada passo forward tem o seu reverso.
60
+
61
+ ```sql
62
+ -- rollback (ordem inversa)
63
+ {DDL de reversão idempotente}
64
+ ```
65
+
66
+ **Restauração de snapshot:** `*rollback {label}` — quando o rollback script não basta.
67
+ **Ponto de não-retorno:** {se houver — ex.: DROP de coluna com dados; o que se perde}
68
+
69
+ ## Validação Pós-Migração
70
+
71
+ > Smoke-test antes de declarar pronto.
72
+
73
+ - [ ] Schema aplicado bate com o design (`*smoke-test {versao}`)
74
+ - [ ] Contagens de linha preservadas onde esperado
75
+ - [ ] Constraints/FKs ativas e válidas
76
+ - [ ] RLS aplicada nas tabelas que exigem (`*test-as-user`)
77
+ - [ ] Queries quentes sem regressão de performance (`*analyze-performance`)
78
+ - [ ] {validação específica desta migração}
79
+
80
+ ## Riscos
81
+
82
+ | Risco | Severidade | Mitigação |
83
+ |---|---|---|
84
+ | {risco} | {CRÍTICO/ALTO/MÉDIO/BAIXO} | {como mitigo / rollback} |
85
+
86
+ > CRÍTICO bloqueia a aplicação; ALTO exige mitigação ou rollback script comprovado.
87
+
88
+ ## Change Log
89
+
90
+ | Data | Mudança | Autor |
91
+ |---|---|---|
92
+ | {data} | {o quê} | @data-engineer |
@@ -0,0 +1,95 @@
1
+ ---
2
+ id: prd-tmpl
3
+ kind: template
4
+ agent: pm
5
+ produces: docs/prd/{slug}-prd.md
6
+ ---
7
+
8
+ # PRD: {nome do produto/iniciativa}
9
+
10
+ **Status:** Draft
11
+ **Tipo:** {greenfield | brownfield}
12
+ **Autor:** @pm (Morgan)
13
+ **Data:** {data}
14
+
15
+ ## Visão e Problema
16
+
17
+ > O "por quê" na raiz. Que dor real do usuário isto resolve? Sem dor rastreada, não vira PRD.
18
+
19
+ - **Problema:** {a dor concreta do usuário, não a solução}
20
+ - **Usuário-alvo:** {quem sente a dor — persona/segmento}
21
+ - **Por que agora:** {gatilho/oportunidade que justifica o timing}
22
+ - **Hipótese de valor:** {se entregarmos X, esperamos resultado Y}
23
+
24
+ ## Objetivos e Métricas de Sucesso
25
+
26
+ > Cada objetivo tem uma métrica mensurável. Número informa a decisão — sem métrica, é desejo, não objetivo.
27
+
28
+ | ID | Objetivo | Métrica | Baseline | Alvo |
29
+ |---|---|---|---|---|
30
+ | OBJ-1 | {resultado de negócio/usuário} | {como se mede} | {valor atual} | {valor desejado} |
31
+
32
+ ## Escopo do MVP
33
+
34
+ > Tudo começa fora do MVP e precisa *provar* que entra. Recorte com MoSCoW/RICE.
35
+
36
+ ### Dentro (Must)
37
+ - {capacidade mínima que prova a hipótese}
38
+
39
+ ### Fora deste recorte (vira roadmap)
40
+ - {feature adiada e por quê — Should/Could/Won't}
41
+
42
+ ## Requisitos Funcionais (FR)
43
+
44
+ > Cada FR rastreia a um objetivo e a uma dor. Sem rastro = não entra (No Invention, Art. IV).
45
+
46
+ | ID | Requisito | Rastreia a | Critério de aceite (verificável) |
47
+ |---|---|---|---|
48
+ | FR-1 | {o que o sistema deve fazer} | OBJ-{n} | {dado/quando/então — testável sim/não} |
49
+
50
+ ## Requisitos Não-Funcionais (NFR)
51
+
52
+ > Performance, segurança, escala, acessibilidade, compliance. Cada um com critério mensurável.
53
+
54
+ | ID | Categoria | Requisito | Critério mensurável |
55
+ |---|---|---|---|
56
+ | NFR-1 | {performance/segurança/...} | {restrição de qualidade} | {limite numérico/verificável} |
57
+
58
+ ## Restrições e Premissas
59
+
60
+ > Limites externos (CON) e suposições que, se falsas, mudam o plano.
61
+
62
+ - **CON-{n}:** {restrição técnica/legal/de negócio imposta de fora}
63
+ - **Premissa:** {suposição assumida — risco se for falsa}
64
+
65
+ ## Personas e Jornadas
66
+
67
+ > Quem usa e como atravessa o produto. Só personas que tocam o MVP.
68
+
69
+ - **{Persona}:** {objetivo, contexto, dor principal}
70
+ - Jornada: {passos do gatilho ao resultado}
71
+
72
+ ## Dependências e Riscos
73
+
74
+ | Tipo | Item | Impacto | Mitigação |
75
+ |---|---|---|---|
76
+ | Dependência | {serviço/dado/equipe externa} | {o que trava se faltar} | {plano} |
77
+ | Risco | {o que pode dar errado} | {severidade} | {como reduzir} |
78
+
79
+ ## Fora de Escopo (explícito)
80
+
81
+ > O que este PRD deliberadamente NÃO cobre — para alinhar expectativa e proteger o recorte.
82
+
83
+ - {item fora de escopo}
84
+
85
+ ## Marco de Quality Gates
86
+
87
+ > Qualidade entra no plano, não depois. Quais gates esta entrega atravessa.
88
+
89
+ - {gate previsto — ex.: validação @po, QA gate @qa, NFRs verificados}
90
+
91
+ ## Próximos Passos
92
+
93
+ - Estruturar epics a partir deste PRD → `*create-epic` (@pm)
94
+ - Arquitetura e seleção de tecnologia → delegar a @architect
95
+ - Pesquisa pendente (se houver) → delegar a @analyst
@@ -0,0 +1,100 @@
1
+ ---
2
+ id: project-brief-tmpl
3
+ kind: template
4
+ agent: analyst
5
+ produces: docs/research/{slug}-project-brief.md
6
+ ---
7
+
8
+ # Project Brief: {nome do projeto}
9
+
10
+ **Status:** Draft
11
+ **Autor:** @analyst (Alex)
12
+ **Data:** {data}
13
+ **Decisão que este brief destrava:** {qual decisão de produto/escopo este documento serve}
14
+
15
+ ## Resumo Executivo
16
+
17
+ > Uma síntese de 3-5 frases que qualquer leitor entende sem o resto do doc. O "portanto" no topo.
18
+
19
+ {problema central + público + solução proposta em alto nível + valor esperado}
20
+
21
+ ## Problema
22
+
23
+ > O que dói, para quem, e por que importa agora. Cada afirmação rastreia a evidência ou vira hipótese marcada.
24
+
25
+ - **Dor:** {qual é o problema concreto}
26
+ - **Quem sofre:** {persona/segmento afetado}
27
+ - **Magnitude:** {frequência/custo/impacto — com fonte ou marcado [hipótese]}
28
+ - **Por que agora:** {gatilho temporal — mudança de mercado, regulação, tecnologia}
29
+
30
+ ## Por que as soluções atuais falham
31
+
32
+ > O gap que justifica este projeto existir. Liga ao competitor-analysis quando houver.
33
+
34
+ - {alternativa atual} → {por que não resolve}
35
+ - {fonte: docs/research/{slug}-competitor-analysis.md ou marcado [hipótese]}
36
+
37
+ ## Público-Alvo
38
+
39
+ > Quem usa e quem compra. Sem persona inventada — cada uma vem de pesquisa de usuário ou marcada como suposição.
40
+
41
+ ### Segmento primário
42
+ - **Perfil:** {quem são}
43
+ - **Necessidade:** {o que precisam resolver}
44
+ - **Comportamento atual:** {como lidam hoje}
45
+
46
+ ### Segmento secundário (se houver)
47
+ - {perfil e necessidade}
48
+
49
+ ## Proposta de Valor
50
+
51
+ > Por que este público escolheria isto. Uma frase de posicionamento + diferenciais.
52
+
53
+ - **Posicionamento:** Para {público} que {necessidade}, {produto} é {categoria} que {benefício-chave}.
54
+ - **Diferenciais:** {1-3 pontos que tornam a solução distinta}
55
+
56
+ ## Objetivos e Métricas de Sucesso
57
+
58
+ > O que "deu certo" significa, em números. Cada métrica é mensurável.
59
+
60
+ | Objetivo | Métrica | Alvo | Como medir |
61
+ |---|---|---|---|
62
+ | {objetivo de negócio} | {KPI} | {valor-alvo} | {fonte do dado} |
63
+
64
+ ## Escopo
65
+
66
+ > A fronteira do projeto. Tão importante o que fica de fora quanto o que entra.
67
+
68
+ ### Dentro do escopo (MVP)
69
+ - {capacidade incluída}
70
+
71
+ ### Fora do escopo (por ora)
72
+ - {o que NÃO entra — e por quê}
73
+
74
+ ## Restrições e Premissas
75
+
76
+ > Constraints reais (CON-*) e premissas que, se falsas, mudam tudo.
77
+
78
+ - **Restrições:** {orçamento, prazo, tecnologia, regulação — rotular CON-{n} se vira spec}
79
+ - **Premissas:** {o que assumimos verdadeiro — marcar para validar}
80
+
81
+ ## Riscos
82
+
83
+ > O que pode dar errado. Cada risco com impacto e mitigação possível.
84
+
85
+ | Risco | Impacto | Probabilidade | Mitigação possível |
86
+ |---|---|---|---|
87
+ | {risco} | {alto/médio/baixo} | {alta/média/baixa} | {ação} |
88
+
89
+ ## Perguntas em Aberto
90
+
91
+ > O que ainda não sabemos e precisa de pesquisa antes de avançar.
92
+
93
+ - {pergunta} → {como respondê-la: @analyst *research-prompt / @analyst *perform-market-research}
94
+
95
+ ## Portanto — Próximos Passos
96
+
97
+ > O handoff acionável. Quem pega isto daqui e faz o quê.
98
+
99
+ 1. {ação} → {@pm para PRD / @architect para viabilidade técnica / @analyst para pesquisa complementar}
100
+ 2. {...}
@@ -0,0 +1,73 @@
1
+ ---
2
+ id: qa-verdict-tmpl
3
+ kind: template
4
+ agent: qa
5
+ produces: bloco <verdict> no output do @qa (persistido em .nexus/verdicts/<runId>-<taskId>.json)
6
+ ---
7
+
8
+ # Veredito de QA — bloco `<verdict>`
9
+
10
+ O gate da Quinn tem duas faces. A **prosa** vai na seção "QA Results" da story (para humanos). O
11
+ **veredito estruturado** vai num bloco `<verdict>` no fim do output — o motor o parseia, valida contra
12
+ o contrato `QaVerdict` e persiste. Emita **exatamente um** bloco; dois é ambíguo e o motor descarta.
13
+
14
+ ```
15
+ <verdict>
16
+ {
17
+ "verdict": "PASS | FAIL | BLOCKED",
18
+ "attempt": 1,
19
+ "issues": [
20
+ {
21
+ "categoria": "{ex.: layout, segurança, rastreabilidade, regressão}",
22
+ "severidade": "P0 | P1 | P2 | P3",
23
+ "expected": "{o que a AC/spec exige}",
24
+ "actual": "{o que de fato acontece — observado, não suposto}",
25
+ "evidence": "{prova: arquivo:linha, teste que falha, a.png == b.png, log}"
26
+ }
27
+ ],
28
+ "fixInstructions": ["{passo objetivo para o @dev consertar}"],
29
+ "filesToModify": [{ "path": "{arquivo}", "oQueMudar": "{o defeito preciso}" }],
30
+ "evidenceRefs": ["{captura/artefato: .nexus/evidence/<story>/home-1440.png}"]
31
+ }
32
+ </verdict>
33
+ ```
34
+
35
+ ## Regras do contrato (o motor força)
36
+
37
+ - **`verdict: FAIL` exige ao menos 1 `issue`.** Reprovar sem apontar o defeito com evidência não existe
38
+ no Nexus — o boundary Zod recusa. Se você não consegue nomear a issue, você não tem um FAIL: tem uma
39
+ dúvida (investigue) ou um PASS.
40
+ - **`evidence` é obrigatória e não-vazia em toda issue.** "Parece errado" não é evidência. `arquivo:linha`,
41
+ o teste que falha, o diff de duas capturas, o log — isso é.
42
+ - **`attempt` vai de 1 a 3.** Reprovar 2–3 vezes é o processo funcionando, não falhando. Na 3ª sem
43
+ convergir, o veredito tende a `BLOCKED` (escala), não a um PASS por cansaço.
44
+ - **`PASS` sem `evidenceRefs`** é permitido pelo contrato, mas o gate `--reality` avisa: nota perfeita
45
+ sem prova é suspeita. Anexe o que você viu rodar.
46
+
47
+ ## Exemplos
48
+
49
+ **PASS com evidência:**
50
+ ```
51
+ <verdict>
52
+ { "verdict": "PASS", "attempt": 1, "evidenceRefs": [".nexus/evidence/1.4/checkout-1440.png"] }
53
+ </verdict>
54
+ ```
55
+
56
+ **FAIL rastreável (o @dev consegue consertar sem adivinhar):**
57
+ ```
58
+ <verdict>
59
+ {
60
+ "verdict": "FAIL",
61
+ "attempt": 2,
62
+ "issues": [{
63
+ "categoria": "regressão",
64
+ "severidade": "P1",
65
+ "expected": "acordeão expande ao clicar (AC-3)",
66
+ "actual": "não expande — o handler não é registrado",
67
+ "evidence": "accordion-0-before.png == accordion-0-after.png (idênticos); Accordion.tsx:42"
68
+ }],
69
+ "fixInstructions": ["registrar onClick no item; adicionar teste que reproduz o não-expandir"],
70
+ "filesToModify": [{ "path": "src/Accordion.tsx", "oQueMudar": "bind do onClick ausente na linha 42" }]
71
+ }
72
+ </verdict>
73
+ ```
@@ -0,0 +1,93 @@
1
+ ---
2
+ id: rls-policies-tmpl
3
+ kind: template
4
+ agent: data-engineer
5
+ produces: docs/data-models/{dominio}-rls-policies.md
6
+ ---
7
+
8
+ # RLS Policies: {nome do domínio/módulo}
9
+
10
+ **Status:** Draft
11
+ **Banco-alvo:** {Supabase / PostgreSQL}
12
+ **Schema-fonte:** {docs/data-models/{dominio}-schema.md — as tabelas que estas políticas protegem}
13
+
14
+ ## Contexto de Segurança
15
+
16
+ > RLS é projetada junto com o schema, não depois. Defesa em profundidade: RLS + FKs + CHECK + NOT NULL.
17
+
18
+ - **Modelo de tenancy:** {single-tenant / multi-tenant por org_id / por user_id}
19
+ - **Função de identidade:** {ex.: `auth.uid()` no Supabase — o que retorna}
20
+ - **Camada de auth presente?** {SIM/NÃO — se NÃO, `auth.uid()` retorna NULL e RLS não protege ainda}
21
+ - **service_role:** {bypassa RLS — onde e por que é usado, com justificativa}
22
+
23
+ ## Tabelas e Cobertura
24
+
25
+ > Toda tabela pública exige RLS habilitada. Sem isso, a tabela não está pronta.
26
+
27
+ | Tabela | RLS habilitada | Chave de tenancy | Modo (KISS/granular) |
28
+ |---|---|---|---|
29
+ | {tabela} | {SIM/NÃO} | {user_id / org_id} | {KISS / granular} |
30
+
31
+ ## Políticas por Tabela
32
+
33
+ ### Tabela `{nome_tabela}`
34
+
35
+ **Habilitar RLS:**
36
+
37
+ ```sql
38
+ ALTER TABLE {schema}.{nome_tabela} ENABLE ROW LEVEL SECURITY;
39
+ ALTER TABLE {schema}.{nome_tabela} FORCE ROW LEVEL SECURITY; -- se aplicável
40
+ ```
41
+
42
+ **Políticas (por operação):**
43
+
44
+ | Operação | Nome da política | Roles | Regra (USING / WITH CHECK) |
45
+ |---|---|---|---|
46
+ | SELECT | {nome} | {authenticated/...} | {condição} |
47
+ | INSERT | {nome} | {...} | {WITH CHECK} |
48
+ | UPDATE | {nome} | {...} | {USING + WITH CHECK} |
49
+ | DELETE | {nome} | {...} | {USING} |
50
+
51
+ ```sql
52
+ -- SELECT
53
+ CREATE POLICY {nome_select} ON {schema}.{nome_tabela}
54
+ FOR SELECT TO {role}
55
+ USING ({condição — ex.: user_id = auth.uid()});
56
+
57
+ -- INSERT
58
+ CREATE POLICY {nome_insert} ON {schema}.{nome_tabela}
59
+ FOR INSERT TO {role}
60
+ WITH CHECK ({condição});
61
+
62
+ -- UPDATE
63
+ CREATE POLICY {nome_update} ON {schema}.{nome_tabela}
64
+ FOR UPDATE TO {role}
65
+ USING ({condição}) WITH CHECK ({condição});
66
+
67
+ -- DELETE
68
+ CREATE POLICY {nome_delete} ON {schema}.{nome_tabela}
69
+ FOR DELETE TO {role}
70
+ USING ({condição});
71
+ ```
72
+
73
+ **Justificativa:** {por que esta política — qual acesso ela libera e qual ela barra}
74
+
75
+ ## Casos de Teste (positivos E negativos)
76
+
77
+ > Toda política tem teste positivo (quem PODE acessa) e negativo (quem NÃO PODE é barrado). Emular via `*test-as-user {user_id}`.
78
+
79
+ | # | Tabela | Operação | Usuário emulado | Esperado (ACEITA/NEGA) | Justificativa |
80
+ |---|---|---|---|---|---|
81
+ | 1 | {tabela} | {SELECT/...} | {dono do dado} | ACEITA | {acesso legítimo} |
82
+ | 2 | {tabela} | {SELECT/...} | {outro tenant} | NEGA | {isolamento de tenant} |
83
+ | 3 | {tabela} | {INSERT/...} | {anônimo} | NEGA | {sem auth} |
84
+
85
+ ## Riscos e Decisões Abertas
86
+
87
+ - {ex.: tabela sem chave de tenancy clara; uso de service_role que precisa de revisão; FK que cruza tenants}
88
+
89
+ ## Change Log
90
+
91
+ | Data | Mudança | Autor |
92
+ |---|---|---|
93
+ | {data} | {o quê} | @data-engineer |
@@ -0,0 +1,107 @@
1
+ ---
2
+ id: schema-design-tmpl
3
+ kind: template
4
+ agent: data-engineer
5
+ produces: docs/data-models/{dominio}-schema.md
6
+ ---
7
+
8
+ # Schema Design: {nome do domínio/módulo}
9
+
10
+ **Status:** Draft
11
+ **Banco-alvo:** {PostgreSQL / Supabase / MySQL — versão}
12
+ **Fonte da arquitetura:** {docs/architecture/... — de onde vêm as entidades e o contexto}
13
+
14
+ ## Contexto de Domínio
15
+
16
+ > O quadro completo antes do DDL. Sem isto, o schema vira palpite.
17
+
18
+ - **Entidades reais:** {as coisas do mundo do negócio que viram tabelas}
19
+ - **Relações principais:** {quem pertence a quem, cardinalidades}
20
+ - **Padrões de acesso:** {como os dados vão ser lidos e escritos — as queries quentes}
21
+ - **Escala esperada:** {volume por tabela, taxa de crescimento, hotpaths}
22
+ - **Restrições de segurança:** {multi-tenant? auth.uid()? dados sensíveis?}
23
+
24
+ ## Modelo de Dados (visão lógica)
25
+
26
+ > Diagrama/lista de entidades e relações. Cada entidade rastreia a um requisito ou padrão de acesso documentado (No Invention).
27
+
28
+ | Entidade | Descrição | Relações | Fonte (FR/NFR/entidade) |
29
+ |---|---|---|---|
30
+ | {entidade} | {o que representa} | {FK → tabela} | {rastro} |
31
+
32
+ ## Tabelas (DDL)
33
+
34
+ > Cada tabela com baseline obrigatório (`id`, `created_at`, `updated_at`), FKs explícitas e constraints que o banco faz cumprir. Soft delete (`deleted_at`) quando há trilha de auditoria.
35
+
36
+ ### Tabela `{nome_tabela}`
37
+
38
+ **Propósito:** {por que esta tabela existe — o requisito que ela atende}
39
+
40
+ ```sql
41
+ CREATE TABLE IF NOT EXISTS {schema}.{nome_tabela} (
42
+ id {uuid/bigint} PRIMARY KEY DEFAULT {gen_random_uuid()/...},
43
+ {coluna} {tipo} {NOT NULL/...} {DEFAULT ...},
44
+ -- FKs explícitas
45
+ {fk_coluna} {tipo} REFERENCES {schema}.{tabela_pai}(id) ON DELETE {RESTRICT/CASCADE/SET NULL},
46
+ -- baseline
47
+ created_at timestamptz NOT NULL DEFAULT now(),
48
+ updated_at timestamptz NOT NULL DEFAULT now(),
49
+ deleted_at timestamptz, -- soft delete, se aplicável
50
+ -- constraints de integridade
51
+ CONSTRAINT {nome_check} CHECK ({condição})
52
+ );
53
+ ```
54
+
55
+ **Colunas:**
56
+
57
+ | Coluna | Tipo | Nullable | Default | Regra / Constraint |
58
+ |---|---|---|---|---|
59
+ | id | {tipo} | NO | {default} | PK |
60
+ | {coluna} | {tipo} | {SIM/NÃO} | {default} | {CHECK/UNIQUE/...} |
61
+
62
+ **Justificativa de normalização/desnormalização:** {por que normalizado ou onde desnormalizei e qual padrão de acesso justifica}
63
+
64
+ ## Integridade Referencial
65
+
66
+ > Defesa em profundidade, no banco — não delegada à aplicação.
67
+
68
+ | FK | Tabela origem → destino | ON DELETE | Índice na FK? | Justificativa |
69
+ |---|---|---|---|---|
70
+ | {fk} | {origem} → {destino} | {ação} | {SIM/NÃO} | {por quê} |
71
+
72
+ ## Constraints de Negócio
73
+
74
+ > Regras que o banco faz cumprir mesmo com bug na aplicação.
75
+
76
+ - **CHECK:** {constraint} — {regra de negócio que garante}
77
+ - **UNIQUE:** {coluna(s)} — {invariante que protege}
78
+ - **NOT NULL:** {colunas obrigatórias} — {por quê}
79
+ - **Triggers:** {nome} — {comportamento, ex.: `updated_at` automático}
80
+
81
+ ## Estratégia de Índices
82
+
83
+ > Cada índice serve a uma query real de `## Contexto de Domínio`. Índice sem query que o justifique é peso morto.
84
+
85
+ | Índice | Tabela(s)/coluna(s) | Tipo | Query/padrão de acesso que justifica |
86
+ |---|---|---|---|
87
+ | {nome_idx} | {tabela(coluna)} | {btree/gin/...} | {query quente} |
88
+
89
+ ## Segurança (RLS — visão de schema)
90
+
91
+ > Quais tabelas exigem Row Level Security. O detalhamento das políticas vai em `rls-policies-tmpl`.
92
+
93
+ | Tabela | RLS obrigatório? | Chave de tenancy | Observação |
94
+ |---|---|---|---|
95
+ | {tabela} | {SIM/NÃO} | {ex.: user_id / org_id} | {ex.: service_role bypassa} |
96
+
97
+ > Se não há camada de auth, registrar: `auth.uid()` retorna NULL — RLS não protege ainda.
98
+
99
+ ## Riscos e Decisões Abertas
100
+
101
+ - {risco de modelagem, dívida registrada, decisão que depende do @architect}
102
+
103
+ ## Change Log
104
+
105
+ | Data | Mudança | Autor |
106
+ |---|---|---|
107
+ | {data} | {o quê} | @data-engineer |
@@ -0,0 +1,88 @@
1
+ ---
2
+ id: spec-tmpl
3
+ kind: template
4
+ agent: pm
5
+ produces: docs/specs/{slug}-spec.md
6
+ ---
7
+
8
+ # Spec: {nome da feature}
9
+
10
+ **Status:** Draft
11
+ **Classe de complexidade:** {SIMPLE | STANDARD | COMPLEX}
12
+ **Requisitos de origem:** {docs/specs/{slug}-requirements.json}
13
+ **Autor:** @pm (Morgan)
14
+ **Data:** {data}
15
+
16
+ ## Contexto e Problema
17
+
18
+ > O "por quê" elicitado no gather. Toda afirmação aqui rastreia a um requisito ou achado — No Invention.
19
+
20
+ - **Problema:** {a dor que motiva a spec}
21
+ - **Usuário/stakeholder:** {quem pediu e quem usa}
22
+ - **Resultado esperado:** {o que muda quando isto existir}
23
+
24
+ ## Requisitos Formalizados
25
+
26
+ > Cada item carrega seu ID de origem (FR/NFR/CON ou achado de pesquisa). Sem origem = não entra.
27
+
28
+ ### Funcionais
29
+ | ID | Requisito | Origem | Critério de aceite (verificável) |
30
+ |---|---|---|---|
31
+ | FR-1 | {comportamento esperado} | {req-id / achado} | {testável sim/não} |
32
+
33
+ ### Não-Funcionais
34
+ | ID | Categoria | Requisito | Critério mensurável |
35
+ |---|---|---|---|
36
+ | NFR-1 | {performance/segurança/...} | {restrição} | {limite verificável} |
37
+
38
+ ### Restrições
39
+ | ID | Restrição | Origem |
40
+ |---|---|---|
41
+ | CON-1 | {limite externo} | {req-id / decisão} |
42
+
43
+ ## Comportamento Esperado
44
+
45
+ > Cenários no formato dado/quando/então. Cada cenário mapeia a um FR.
46
+
47
+ - **Cenário {n}** (FR-{x}): dado {contexto}, quando {ação}, então {resultado observável}.
48
+
49
+ ## Interfaces e Contratos
50
+
51
+ > Entradas, saídas e contratos que a feature expõe ou consome. Estrutura, não implementação.
52
+
53
+ - **Entradas:** {dados/parâmetros}
54
+ - **Saídas:** {retorno/efeito}
55
+ - **Contrato/Interface:** {assinatura/forma do payload}
56
+
57
+ ## Fora de Escopo
58
+
59
+ > O que esta spec deliberadamente NÃO cobre — protege o recorte e a crítica.
60
+
61
+ - {item excluído}
62
+
63
+ ## Critérios de Aceite Globais
64
+
65
+ > Como a feature inteira é considerada concluída. Verificável.
66
+
67
+ 1. {critério global testável}
68
+
69
+ ## Riscos e Dependências
70
+
71
+ | Tipo | Item | Impacto | Mitigação |
72
+ |---|---|---|---|
73
+ | Dependência | {serviço/dado/spec} | {o que trava} | {plano} |
74
+ | Risco | {o que pode falhar} | {severidade} | {redução} |
75
+
76
+ ## Gate de Rastreabilidade (No Invention, Art. IV)
77
+
78
+ > Cada FR/NFR/CON acima aponta para uma origem. Esta tabela prova o rastro — entrada para a crítica @qa.
79
+
80
+ | Item da spec | Origem rastreada |
81
+ |---|---|
82
+ | FR-{n} | {req-id / NFR / CON / achado de pesquisa} |
83
+
84
+ ## Próximos Passos (Spec Pipeline)
85
+
86
+ - Crítica da spec → @qa (`critique.json`)
87
+ - Plano de implementação → @architect (`implementation.yaml`)
88
+ - Arquitetura/tecnologia → @architect