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,60 @@
1
+ ---
2
+ id: shard-doc
3
+ agent: pm
4
+ title: Shardear um documento grande em partes consumíveis
5
+ inputs: [documento (PRD, arquitetura ou spec), destino do shard]
6
+ outputs: [pasta de shards por seção, index.md com links, documento-fonte preservado]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Shardear um documento grande em partes consumíveis
12
+
13
+ **Objetivo:** quebrar um documento grande (PRD, arquitetura, spec) em arquivos menores por seção,
14
+ com um índice navegável — para que @sm, @dev e @qa consumam só o pedaço que precisam, sem carregar
15
+ o documento inteiro.
16
+
17
+ **Pré-condições:**
18
+ - O documento-fonte existe e está em Markdown com headings de nível 2 (`##`) bem definidos. Se não
19
+ tiver estrutura de seções clara, **pare** e reporte — shardear um documento sem fronteiras gera
20
+ pedaços sem sentido.
21
+ - O destino do shard é uma pasta sob `docs/` (ex.: `docs/prd/`, `docs/architecture/`). Se não foi
22
+ dado, derivo do tipo de documento; se ambíguo, elicito — não invento o destino.
23
+
24
+ ## Passos
25
+
26
+ 1. **Leia o documento-fonte completo** e mapeie as seções de nível 2 (`##`). Cada `##` vira um shard.
27
+ Subseções (`###`) ficam dentro do shard do seu pai — não viram arquivo próprio.
28
+ 2. **Defina a pasta de destino** sob `docs/` (ex.: `docs/prd/`, `docs/architecture/`). Crie-a se não
29
+ existir. O documento-fonte original **permanece intacto** — shardear copia, não move nem apaga.
30
+ 3. **Gere um arquivo por seção.** Para cada heading `##`:
31
+ a. crie `docs/{destino}/{slug-da-seção}.md` (slug em kebab-case derivado do título);
32
+ b. copie o conteúdo da seção (incluindo subseções `###`) sem alterar o texto — fidelidade ao
33
+ fonte é a regra (No invention, Art. IV: não reescrevo o requisito ao shardear);
34
+ c. promova o heading da seção a `#` (nível 1) no topo do shard, para o arquivo ler bem isolado.
35
+ 4. **Crie o `index.md`** na pasta de destino: um sumário com link para cada shard, na ordem original
36
+ do documento, mais uma linha apontando para o documento-fonte. É o ponto de entrada da navegação.
37
+ 5. **Verifique a fidelidade:** a soma do conteúdo dos shards cobre todas as seções do fonte, sem
38
+ perda e sem duplicação. Nenhum link do `index.md` aponta para arquivo inexistente.
39
+ 6. **Reporte o resultado:** liste os shards gerados e o caminho do `index.md`. O documento-fonte segue
40
+ como a fonte da verdade; os shards são a projeção consumível.
41
+ 7. **Não subo nada.** Se os shards precisam ir pro repositório remoto, eu delego ao @devops — `git
42
+ push` / PR são EXCLUSIVOS dele. Eu deixo os arquivos prontos no working tree.
43
+
44
+ ## Critério de pronto (DoD)
45
+
46
+ - [ ] Um shard por seção de nível 2 do documento-fonte, em `docs/{destino}/`
47
+ - [ ] `index.md` criado com links na ordem original + link para o documento-fonte
48
+ - [ ] Conteúdo dos shards fiel ao fonte (sem perda, sem reescrita, sem duplicação)
49
+ - [ ] Documento-fonte preservado intacto
50
+ - [ ] Todos os links do `index.md` resolvem para arquivos existentes
51
+ - [ ] Nada de `git push` (delegado ao @devops)
52
+
53
+ ## Falha / recuperação
54
+
55
+ - **Documento sem headings `##` claros** → HALT, reporto que o fonte não tem estrutura shardeável e
56
+ devolvo para o autor estruturar antes.
57
+ - **Destino ambíguo ou inexistente** → elicito a pasta de destino em vez de adivinhar.
58
+ - **Conteúdo se perderia ou duplicaria na divisão** (seções aninhadas mal formadas) → paro, reporto a
59
+ ambiguidade estrutural e não gero shards inconsistentes.
60
+ - **Os shards precisam ir ao remoto** → delego a subida ao @devops; não rodo `git push`.
@@ -0,0 +1,55 @@
1
+ ---
2
+ id: spec-assess-complexity
3
+ agent: architect
4
+ title: Avaliar complexidade de uma story nas 5 dimensões
5
+ inputs: [story]
6
+ outputs: [complexity.json, classe (SIMPLE/STANDARD/COMPLEX), estimativa de esforço]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Avaliar complexidade de uma story nas 5 dimensões
12
+
13
+ **Objetivo:** classificar uma story em SIMPLE / STANDARD / COMPLEX pontuando 5 dimensões objetivas,
14
+ para que a profundidade do plano e do contexto seja ganha — não presumida.
15
+
16
+ **Pré-condições:**
17
+ - A story existe e tem ACs. Sem critérios de aceite não há o que dimensionar — **pare** e devolva ao @sm.
18
+ - A story rastreia a um FR/NFR/CON ou achado de pesquisa. Sem rastro, eu não pontuo o que não existe.
19
+
20
+ ## Passos
21
+
22
+ 1. **Leia a story COMPLETA** — ACs, notas técnicas, dependências declaradas. O escopo real está nos
23
+ critérios de aceite, não no título.
24
+ 2. **Pontue cada dimensão de 1 (trivial) a 5 (crítico)**, registrando o porquê de cada nota — nota sem
25
+ justificativa rastreável não entra:
26
+ - **Escopo** — quantos arquivos/módulos a story toca.
27
+ - **Integração** — APIs externas, contratos entre serviços, pontos de costura cross-stack.
28
+ - **Infraestrutura** — mudanças de infra/deploy necessárias (fila, cache, schema, env).
29
+ - **Conhecimento** — familiaridade do time com a tecnologia/padrão envolvido.
30
+ - **Risco** — criticidade: o que quebra ao escalar, blast radius de uma falha (teste do 10×).
31
+ 3. **Some as notas** e atribua a classe:
32
+ - `<= 8` → **SIMPLE** (plano enxuto, 3 fases)
33
+ - `9–15` → **STANDARD** (plano completo)
34
+ - `>= 16` → **COMPLEX** (plano completo + ciclo de revisão; considere `*research` antes)
35
+ 4. **Estime o esforço** em faixa (horas/dias) coerente com a classe — faixa, não número mágico.
36
+ 5. **Grave `complexity.json`** em `docs/specs/{storyId}/complexity.json` com: as 5 notas, a
37
+ justificativa de cada uma, o total, a classe e a estimativa.
38
+ 6. **Roteie pela classe.** SIMPLE/STANDARD → sigo direto para `*create-plan`. COMPLEX → sinalizo que
39
+ pesquisa (`*research`) e/ou ciclo de revisão são recomendados antes de planejar.
40
+
41
+ ## Critério de pronto (DoD)
42
+
43
+ - [ ] As 5 dimensões pontuadas (1–5), cada uma com justificativa rastreável à story
44
+ - [ ] Total somado e classe (SIMPLE/STANDARD/COMPLEX) atribuída
45
+ - [ ] Estimativa de esforço em faixa registrada
46
+ - [ ] `docs/specs/{storyId}/complexity.json` gravado e válido
47
+ - [ ] Roteamento pela classe explícito (planejar direto vs. pesquisar antes)
48
+
49
+ ## Falha / recuperação
50
+
51
+ - **Story sem ACs ou sem rastro a FR/NFR/CON** → HALT, devolvo ao @sm/@po. Não invento o escopo que falta.
52
+ - **Dimensão impossível de pontuar por falta de informação** (ex.: integração externa não definida) →
53
+ registro a lacuna como bloqueio e devolvo, em vez de chutar uma nota.
54
+ - **A story esconde várias stories** (escopo estoura 5 em múltiplas dimensões) → recomendo ao @sm
55
+ quebrá-la antes de planejar; uma story que não dá para dimensionar não dá para implementar.
@@ -0,0 +1,64 @@
1
+ ---
2
+ id: spec-critique
3
+ agent: qa
4
+ title: Criticar a spec quanto a completude e clareza
5
+ inputs: [spec]
6
+ outputs: [critique.json com veredito e scores, lista de gaps rastreáveis]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Criticar a spec quanto a completude e clareza
12
+
13
+ **Objetivo:** auditar uma spec antes da implementação — apontar o que está incompleto, ambíguo ou
14
+ inventado — e emitir um veredito rastreável (APPROVED / NEEDS_REVISION / BLOCKED) que decide se a spec
15
+ avança para o plano ou volta para revisão.
16
+
17
+ **Pré-condições:**
18
+ - A spec existe e referencia suas fontes (FR-*, NFR-*, CON-* ou achados de pesquisa). Sem fontes
19
+ rastreáveis, a crítica já começa em risco — toda afirmação precisa ancorar em algo.
20
+ - Tenho o contexto do objetivo que originou a spec (pedido/story). Se não tenho, elicito — eu critico
21
+ contra um contrato, não contra o ar.
22
+
23
+ ## Passos
24
+
25
+ 1. **Leio a spec inteira** e listo cada afirmação material. Defino o que "completo e claro" significa
26
+ para ESTE escopo antes de julgar.
27
+ 2. **Gate constitucional — No Invention (Art. IV).** Verifico que TODA afirmação rastreia a um FR-*,
28
+ NFR-*, CON-* ou achado de pesquisa. Qualquer feature inventada (sem fonte) é gap CRÍTICO e por si
29
+ só leva a BLOCKED. Juiz não inventa requisito; também não deixa a spec inventar.
30
+ 3. **Avalio as dimensões** (score 1-5 cada), profundidade proporcional ao risco:
31
+ - **Completude:** todos os ACs/cenários cobertos? casos de erro e borda previstos?
32
+ - **Clareza:** linguagem inequívoca? cada termo definido? nada de "etc." escondendo escopo?
33
+ - **Testabilidade:** cada requisito vira teste em Given-When-Then? há critério objetivo de pronto?
34
+ - **Rastreabilidade:** cada afirmação ancora numa fonte declarada?
35
+ - **Risco/NFR:** segurança, performance e confiabilidade endereçadas onde o caminho é crítico?
36
+ 4. **Registro cada gap** com severidade (CRITICAL/HIGH/MEDIUM/LOW) e a fonte que prova o buraco —
37
+ nunca opinião estética avulsa. Advisory, não arbitrário: bloqueio só com motivo rastreável.
38
+ 5. **Calculo o veredito** pela média dos scores:
39
+ - média **≥ 4.0** → **APPROVED** (segue para o plano).
40
+ - média **3.0–3.9** → **NEEDS_REVISION** (volto com a lista de correções obrigatórias).
41
+ - média **< 3.0** ou qualquer gap CRÍTICO de invenção → **BLOCKED** (escalo ao @architect).
42
+ 6. **Emito `critique.json`** com veredito, scores por dimensão e a lista de gaps. Esse é o artefato
43
+ que o pipeline lê para decidir o próximo passo.
44
+ 7. **Roteio.** APPROVED → @architect planeja. NEEDS_REVISION → @pm revisa a spec. BLOCKED → escalo ao
45
+ @architect. Eu critico; eu **não reescrevo** a spec — corrigir é de quem a escreveu.
46
+
47
+ ## Critério de pronto (DoD)
48
+
49
+ - [ ] Toda afirmação da spec checada contra fonte (FR/NFR/CON/pesquisa) — gate No Invention aplicado
50
+ - [ ] As 5 dimensões pontuadas (1-5) com justificativa rastreável
51
+ - [ ] Cada gap registrado com severidade e fonte (zero achado por preferência estética)
52
+ - [ ] Veredito calculado pela regra (APPROVED / NEEDS_REVISION / BLOCKED) e coerente com os scores
53
+ - [ ] `critique.json` emitido e roteado ao destino correto
54
+ - [ ] Não reescrevi a spec nem inventei critério fora do contrato
55
+
56
+ ## Falha / recuperação
57
+
58
+ - **Spec sem fontes rastreáveis** → não consigo aplicar o gate de invenção: marco BLOCKED e devolvo
59
+ ao @pm para amarrar as fontes antes de eu recriticar.
60
+ - **Veredito BLOCKED ou gap CRÍTICO** → escalo ao @architect imediatamente; não deixo a spec avançar
61
+ para implementação no escuro.
62
+ - **Falta o contexto do objetivo que originou a spec** → paro e elicito; não critico contra o ar.
63
+ - **Preciso subir o artefato (push/PR)** → delego ao @devops, sempre. Eu não faço `git push` nem abro
64
+ PR; git para mim é read-only.
@@ -0,0 +1,48 @@
1
+ ---
2
+ id: spec-gather-requirements
3
+ agent: pm
4
+ title: Elicitar e documentar requisitos (spec pipeline — fase 1)
5
+ inputs: [pedido informal do stakeholder]
6
+ outputs: ['docs/specs/{slug}/requirements.md com FR-*/NFR-*/CON-* rastreáveis']
7
+ elicit: true
8
+ modes: [interactive]
9
+ ---
10
+
11
+ # Elicitar e documentar requisitos (spec pipeline — fase 1)
12
+
13
+ **Objetivo:** transformar um pedido informal em requisitos estruturados e rastreáveis (FR-*, NFR-*,
14
+ CON-*) — a fundação da spec pipeline, antes de qualquer spec formal.
15
+
16
+ **Pré-condições:**
17
+ - Existe um pedido/intenção do stakeholder, ainda que informal. Sem isso, não há o que elicitar.
18
+ - O stakeholder está disponível para responder. A elicitação exige interação real — não se pula.
19
+
20
+ ## Passos
21
+
22
+ 1. **Leia o pedido informal e identifique as lacunas.** O que está implícito? O que falta para virar
23
+ requisito testável?
24
+ 2. **[ELICITAÇÃO] Conduza a entrevista de requisitos.** Pergunte sobre: usuário e dor, comportamento
25
+ esperado, critérios de sucesso, restrições (técnicas, de negócio, de prazo) e o que está **fora** do
26
+ escopo. Pare e espere as respostas reais — não preencha lacuna com suposição.
27
+ 3. **Estruture cada item com ID rastreável:** `FR-*` (requisitos funcionais), `NFR-*` (não-funcionais:
28
+ performance, segurança, acessibilidade), `CON-*` (restrições). Cada um com enunciado verificável e a
29
+ fonte (quem pediu / por quê).
30
+ 4. **Marque ambiguidades e premissas em aberto** explicitamente — elas viram pergunta na próxima rodada,
31
+ não viram requisito inventado (No invention, Art. IV).
32
+ 5. **Salve em `docs/specs/{slug}/requirements.md`.** Este artefato alimenta `spec-write-spec` (fase
33
+ seguinte) e a avaliação de complexidade do @architect.
34
+
35
+ ## Critério de pronto (DoD)
36
+
37
+ - [ ] Todo requisito tem ID (`FR-*`/`NFR-*`/`CON-*`), enunciado verificável e fonte rastreável
38
+ - [ ] Escopo e não-escopo explícitos
39
+ - [ ] Ambiguidades/premissas registradas como abertas, não inventadas
40
+ - [ ] Elicitação real conduzida com o stakeholder (não presumida)
41
+ - [ ] Salvo em `docs/specs/{slug}/requirements.md`
42
+
43
+ ## Falha / recuperação
44
+
45
+ - **Stakeholder indisponível para a elicitação** → seguro a task; requirements.md com lacunas inventadas
46
+ é pior que adiar. Registro o que falta e aguardo.
47
+ - **Pedido exige pesquisa de mercado/viabilidade** → delego ao @analyst antes de fechar os requisitos.
48
+ - **Requisito sem fonte clara** → não vira FR; vira pergunta aberta na lista de ambiguidades.
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: spec-research-dependencies
3
+ agent: analyst
4
+ title: Pesquisar dependências e constraints técnicos de uma spec
5
+ inputs: [story ou spec]
6
+ outputs: ['docs/research/spec-deps-{slug}.md (dependências, constraints, riscos — cada um rastreável a FR/NFR/CON ou fonte)']
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Pesquisar dependências e constraints técnicos de uma spec
12
+
13
+ **Objetivo:** levantar as dependências, restrições e riscos técnicos de uma story/spec, com cada achado rastreando a um FR/NFR/CON da spec ou a uma fonte real — munição para o @architect e o @dev, sem inventar requisito (Constituição Art. IV).
14
+
15
+ **Pré-condições:**
16
+ - Existe uma story ou spec com requisitos identificáveis (FR-*, NFR-*, CON-*). Se não houver requisitos rastreáveis, **pare** e devolva ao @pm/@sm — não pesquiso dependências de um alvo inexistente.
17
+ - Esta é pesquisa, não decisão de arquitetura. A escolha de tecnologia é do @architect; eu levanto as constraints, ele decide.
18
+
19
+ ## Passos
20
+
21
+ 1. **Leio a spec/story completa** e extraio cada FR/NFR/CON. Listo-os — todo achado desta task vai amarrar a um deles.
22
+ 2. **Mapeio as dependências** que cada requisito implica: bibliotecas, serviços externos, APIs, dados, infraestrutura, versões. Para cada uma, anoto o requisito de origem.
23
+ 3. **DIVIRJO — levanto constraints e alternativas.** Para cada dependência: versões suportadas, limites conhecidos, custos, licenças, maturidade. Crédito a fonte (docs oficiais, changelogs, advisories) ou marco como hipótese.
24
+ 4. **CONVIRJO — filtro e ranqueio riscos.** Mantenho o que tem fonte forte; classifico cada dependência por risco (bloqueante / atenção / ok) e por acoplamento.
25
+ 5. **Registro os constraints técnicos rastreáveis.** Cada constraint amarra a um NFR/CON da spec ou a uma fonte verificável — nada de palpite apresentado como fato.
26
+ 6. **Sintetizo em "portanto".** Lista numerada: dependências críticas, riscos abertos e perguntas de arquitetura — cada uma com a fonte e o requisito de origem.
27
+ 7. **Salvo** em `docs/research/spec-deps-{slug}.md` com a matriz requisito → dependência → fonte → risco, e roteio: decisões de tecnologia → @architect; impacto em DB → @data-engineer.
28
+
29
+ ## Critério de pronto (DoD)
30
+
31
+ - [ ] Todos os FR/NFR/CON da spec extraídos e listados
32
+ - [ ] Cada dependência amarra a um requisito de origem
33
+ - [ ] Cada constraint rastreia a um FR/NFR/CON ou a uma fonte verificável (sem invenção)
34
+ - [ ] Dependências ranqueadas por risco e acoplamento
35
+ - [ ] "Portanto" em lista numerada com perguntas de arquitetura roteadas ao @architect
36
+ - [ ] Documento salvo com a matriz requisito → dependência → fonte → risco
37
+
38
+ ## Falha / recuperação
39
+
40
+ - **Um achado não amarra a nenhum FR/NFR/CON** → ou é escopo invisível (devolvo ao @pm para virar requisito), ou eu o corto — não inflo a spec inventando justificativa.
41
+ - **Fonte da dependência indisponível/desatualizada** → marco como hipótese e listo em "a validar"; não cravo versão/limite sem evidência.
42
+ - **A pesquisa exige uma decisão de tecnologia** → paro na constraint, formulo a pergunta e delego ao @architect; eu municio, ele escolhe.
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: spec-write-spec
3
+ agent: pm
4
+ title: Escrever a spec formal (spec pipeline — fase 4)
5
+ inputs: ['docs/specs/{slug}/requirements.md', complexity.json e research.md (se existirem)]
6
+ outputs: ['docs/specs/{slug}/spec.md formal', cada afirmação rastreada a FR-*/NFR-*/CON-*/achado]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Escrever a spec formal (spec pipeline — fase 4)
12
+
13
+ **Objetivo:** gerar a spec formal a partir dos requisitos elicitados — um documento onde **toda
14
+ afirmação rastreia** a um FR-*/NFR-*/CON-* ou achado de pesquisa, pronto para a crítica do @qa.
15
+
16
+ **Pré-condições:**
17
+ - `requirements.md` existe e está completo (saída de `spec-gather-requirements`). Se há requisito órfão
18
+ ou ambiguidade não resolvida, **pare** e volte à fase de gather.
19
+ - Se o @architect classificou a complexidade (`complexity.json`), respeito o conjunto de fases dele
20
+ (SIMPLE pula pesquisa). Se houver `research.md`, ele é fonte válida de rastro.
21
+
22
+ ## Passos
23
+
24
+ 1. **Carregue os requisitos** (`requirements.md`) e, se existirem, a avaliação de complexidade e a
25
+ pesquisa. Estes são as **únicas** fontes válidas de conteúdo da spec.
26
+ 2. **Escreva a spec** a partir de `templates/spec-tmpl.md`: contexto/problema, comportamento esperado,
27
+ critérios de aceite, requisitos cobertos, não-escopo, riscos.
28
+ 3. **Gate Constitucional (Art. IV — No Invention):** para CADA afirmação da spec, anote o rastro ao
29
+ `FR-*`/`NFR-*`/`CON-*` ou ao achado de pesquisa que a origina. **Afirmação sem rastro não entra** —
30
+ ou viro pergunta, ou removo. Nada de feature "porque seria legal".
31
+ 4. **Verifique cobertura:** todo FR/NFR/CON do requirements.md está endereçado na spec (coberto ou
32
+ explicitamente diferido). Lacuna vira nota, não invenção.
33
+ 5. **Salve em `docs/specs/{slug}/spec.md`** e roteie para a **crítica do @qa** (fase de critique). A
34
+ crítica e o plano de implementação **não são meus** — sigo o fluxo (@qa critica, @architect planeja).
35
+
36
+ ## Critério de pronto (DoD)
37
+
38
+ - [ ] Toda afirmação da spec rastreia a um `FR-*`/`NFR-*`/`CON-*` ou achado (Gate Art. IV cumprido)
39
+ - [ ] Todo requisito do `requirements.md` está coberto ou explicitamente diferido
40
+ - [ ] Critérios de aceite verificáveis e não-escopo explícito
41
+ - [ ] Spec salva em `docs/specs/{slug}/spec.md` e roteada ao @qa para crítica
42
+
43
+ ## Falha / recuperação
44
+
45
+ - **Quero afirmar algo sem rastro** → o Gate Art. IV bloqueia; removo a afirmação ou viro pergunta ao
46
+ stakeholder/@analyst.
47
+ - **requirements.md tem ambiguidade não resolvida** → volto à fase `spec-gather-requirements`; não
48
+ resolvo a ambiguidade inventando.
49
+ - **A crítica do @qa reprova (NEEDS_REVISION)** → reviso a spec conforme o feedback e devolvo; não pulo
50
+ a crítica nem decido a aprovação por conta própria.
@@ -0,0 +1,52 @@
1
+ ---
2
+ id: test-as-user
3
+ agent: data-engineer
4
+ title: Emular usuário para validar RLS
5
+ inputs: [user_id, table, story]
6
+ outputs: [resultado positivo/negativo, veredito de cobertura RLS]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Emular usuário para validar RLS
12
+
13
+ **Objetivo:** comprovar que uma política RLS faz o que diz — assumindo a identidade de um usuário e
14
+ verificando que ele vê/altera só o que é dele (positivo) e é bloqueado no que não é (negativo).
15
+
16
+ **Pré-condições:**
17
+ - RLS está habilitada na tabela e há ao menos uma política instalada (via `db-policy-apply`). Sem
18
+ política, este teste não tem o que validar.
19
+ - Existem dados de teste de pelo menos dois donos distintos (o `user_id` alvo e um terceiro). Se não
20
+ houver, semeio com `*seed` antes — sem comparar donos não existe teste negativo.
21
+
22
+ ## Passos
23
+
24
+ 1. **Defina o cenário:** o `user_id` alvo, as linhas que ele DEVE ver e as linhas de um terceiro que
25
+ ele NÃO pode ver/alterar. O cenário rastreia à regra de acesso da story.
26
+ 2. **Assuma a identidade** numa transação, sem service role (service role bypassa RLS e invalida o
27
+ teste): `BEGIN; SET LOCAL ROLE authenticated; SET LOCAL request.jwt.claim.sub = '{user_id}';`.
28
+ 3. **Teste positivo (SELECT):** o usuário lê suas linhas. Conta esperada confere? Se não, política
29
+ restritiva demais.
30
+ 4. **Teste positivo (escrita):** o usuário faz INSERT/UPDATE/DELETE no que é dele e a operação passa.
31
+ 5. **Teste negativo (SELECT):** consulta as linhas do terceiro — resultado DEVE ser vazio.
32
+ 6. **Teste negativo (escrita):** tenta UPDATE/DELETE na linha do terceiro — DEVE afetar 0 linhas ou
33
+ ser negado. Linha de outro dono alterada = vazamento.
34
+ 7. **`ROLLBACK`** sempre ao final: este é um teste, não pode deixar rastro nem mutação no banco.
35
+ 8. **Emita o veredito:** PASS (positivos passam, negativos bloqueiam) ou FAIL (com a brecha exata).
36
+
37
+ ## Critério de pronto (DoD)
38
+
39
+ - [ ] Identidade assumida sem service role (RLS realmente em vigor no teste)
40
+ - [ ] Positivos passam: o dono lê e escreve o que é dele
41
+ - [ ] Negativos bloqueiam: terceiro não lê nem altera o que não é dele (0 linhas)
42
+ - [ ] Transação revertida ao final (sem efeito colateral no banco)
43
+ - [ ] Veredito registrado no rastro da story
44
+
45
+ ## Falha / recuperação
46
+
47
+ - **Teste negativo falha (vazamento)** → FAIL; devolvo à `db-policy-apply` com o predicado a corrigir.
48
+ Não declaro a política pronta.
49
+ - **`auth.uid()`/claim NULL** → o ambiente não tem auth ou o claim não foi setado; corrijo o `SET
50
+ LOCAL` ou sinalizo a falta de auth e suspendo o teste.
51
+ - **Faltam dados de dois donos** → semeio com `*seed` e repito; comparar um dono só não comprova RLS.
52
+ - **Esqueci o `ROLLBACK` e mutei o banco** → restauro via `*rollback` do snapshot mais recente.
@@ -0,0 +1,54 @@
1
+ ---
2
+ id: ux-create-wireframe
3
+ agent: ux-design-expert
4
+ title: Criar wireframes e fluxos de interação
5
+ inputs: [personas, mapa de necessidades, story/spec, fidelidade desejada]
6
+ outputs: [wireframes, fluxo de interação, mapeamento tela→AC]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Criar wireframes e fluxos de interação
12
+
13
+ **Objetivo:** materializar a pesquisa em estrutura e fluxo de baixa fidelidade — barato de mudar,
14
+ fácil de testar — antes de qualquer polimento visual.
15
+
16
+ **Pré-condições:**
17
+ - Existe pesquisa de usuário (personas + necessidades) da task `ux-user-research`, OU as
18
+ necessidades estão explícitas na story. Se ninguém validou o usuário, **sinalize** que o wireframe
19
+ parte de hipótese.
20
+ - A story/spec define as telas/fluxos no escopo. Sem isso, **pare** — não invento telas.
21
+
22
+ ## Passos
23
+
24
+ 1. **Liste as telas e os estados** que a story exige (vazio, carregando, erro, sucesso, sem
25
+ permissão). Estado não é detalhe — é metade da experiência.
26
+ 2. **Desenhe o fluxo de interação** ligando as telas: entrada, decisões do usuário, caminhos de erro
27
+ e de saída. Cada passo do fluxo resolve uma necessidade da persona.
28
+ 3. **Esboce cada tela na fidelidade pedida** (baixa = blocos e hierarquia; média = layout e
29
+ conteúdo real). Foque em estrutura, hierarquia e affordance — não em cor nem polimento.
30
+ 4. **Embuta a acessibilidade desde o esboço:** ordem de foco/tab, alvos de toque, hierarquia
31
+ semântica de cabeçalhos, alternativa textual para conteúdo visual. A11y não é camada posterior.
32
+ 5. **Mapeie cada tela/fluxo ao AC** da story que ele atende. Tela que não rastreia a um AC sai do
33
+ wireframe — é escopo inventado.
34
+ 6. **Registre os wireframes** em `docs/stories/{epic}/wireframes/` (ou link na seção de UX da story)
35
+ com legenda de estados e do fluxo.
36
+ 7. **Roteie para validação:** wireframe pronto vai para revisão com o usuário/stakeholder e alimenta
37
+ a `create-front-end-spec`. Itero com o feedback antes de detalhar.
38
+
39
+ ## Critério de pronto (DoD)
40
+
41
+ - [ ] Todas as telas e estados (vazio/carregando/erro/sucesso) esboçados
42
+ - [ ] Fluxo de interação completo, incluindo caminhos de erro
43
+ - [ ] Considerações de acessibilidade marcadas em cada tela (foco, semântica, alvos)
44
+ - [ ] Cada tela/fluxo mapeado a um AC da story
45
+ - [ ] Wireframes registrados e prontos para validação/iteração
46
+
47
+ ## Falha / recuperação
48
+
49
+ - **Falta pesquisa de usuário** → produzo wireframe marcado como hipótese e priorizo validação antes
50
+ de avançar para a spec.
51
+ - **A story não cobre um fluxo necessário** (ex.: estado de erro não especificado) → paro, registro a
52
+ lacuna e devolvo ao @sm/@po; não invento o requisito.
53
+ - **Decisão de stack/framework de frontend aparece** (SPA vs SSR, biblioteca) → delego à Aria
54
+ (@architect); eu trago só a lente de UX.
@@ -0,0 +1,55 @@
1
+ ---
2
+ id: ux-user-research
3
+ agent: ux-design-expert
4
+ title: Pesquisa de usuário e análise de necessidades
5
+ inputs: [story, contexto do produto, evidências de usuário disponíveis]
6
+ outputs: [personas, mapa de necessidades/dores, achados de pesquisa rastreáveis]
7
+ elicit: true
8
+ modes: [interactive]
9
+ ---
10
+
11
+ # Pesquisa de usuário e análise de necessidades
12
+
13
+ **Objetivo:** descobrir quem é o usuário real e qual é a dor concreta antes de desenhar um pixel,
14
+ produzindo personas e necessidades que toda decisão de design subsequente vai rastrear.
15
+
16
+ **Pré-condições:**
17
+ - Existe uma story/spec ou objetivo de produto que delimita o escopo. Sem isso, **pare** e elicite —
18
+ pesquisa sem alvo vira opinião com aparência de método.
19
+ - Há acesso a alguma evidência de usuário (entrevistas, analytics, suporte, tickets) OU o usuário
20
+ pode fornecê-la. Se não há nenhuma fonte real, sinalize que o resultado será **hipótese**, não
21
+ decisão validada.
22
+
23
+ ## Passos
24
+
25
+ 1. **Delimite a pergunta de pesquisa** a partir da story/spec: que usuário, que tarefa, que contexto
26
+ estou investigando? Escreva a pergunta antes de coletar dado.
27
+ 2. **Inventarie as fontes de evidência disponíveis** — entrevistas, analytics, tickets de suporte,
28
+ reviews, sessões gravadas. Liste o que existe e o que falta.
29
+ 3. **[ELICITAÇÃO] Confirme com o usuário as fontes e o público-alvo.** Apresente as fontes
30
+ encontradas e pergunte: este é o usuário certo? falta algum segmento? Não avance no escuro — esta
31
+ é a interação obrigatória.
32
+ 4. **Extraia padrões das evidências.** Agrupe dores, objetivos e contextos recorrentes. Para cada
33
+ padrão, registre a fonte (de onde veio o dado) — sem fonte, marque explicitamente como hipótese.
34
+ 5. **Construa as personas** a partir dos padrões: objetivos, dores, contexto de uso, restrições
35
+ (inclusive acessibilidade — quem navega por teclado, leitor de tela, conexão ruim).
36
+ 6. **Monte o mapa de necessidades**, cada necessidade ligada a (a) uma persona e (b) um FR/NFR/CON
37
+ da story ou um achado de pesquisa. Necessidade órfã não entra.
38
+ 7. **Registre os achados** em `docs/stories/{epic}/research/` (ou na seção de UX da story),
39
+ marcando claramente o que é evidência e o que é hipótese a validar.
40
+
41
+ ## Critério de pronto (DoD)
42
+
43
+ - [ ] Pergunta de pesquisa explícita e ligada à story/spec
44
+ - [ ] Ponto de elicitação cumprido (público-alvo e fontes confirmados com o usuário)
45
+ - [ ] Personas com objetivos, dores, contexto e restrições de acessibilidade
46
+ - [ ] Toda necessidade rastreia a uma persona e a um FR/NFR/CON ou achado
47
+ - [ ] Evidência e hipótese claramente separadas — nada apresentado como validado sem fonte
48
+
49
+ ## Falha / recuperação
50
+
51
+ - **Não há nenhuma evidência real de usuário** → não fabrique persona; declare o resultado como
52
+ hipótese e proponha o método mínimo de validação antes do design comprometer.
53
+ - **A pesquisa em profundidade excede a lente de UX** (mercado, segmentação, concorrência) → delego
54
+ ao @analyst e incorporo o retorno.
55
+ - **A story não delimita usuário nem tarefa** → paro e devolvo ao @sm/@po; não invento o público.
@@ -0,0 +1,61 @@
1
+ ---
2
+ id: validate-next-story
3
+ agent: po
4
+ title: Validar a prontidão de uma story (gate GO/NO-GO)
5
+ inputs: [story]
6
+ outputs: [veredito GO/NO-GO, lista de correções com dono, score do checklist]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Validar a prontidão de uma story (gate GO/NO-GO)
12
+
13
+ **Objetivo:** decidir se uma story se sustenta sozinha — escopo claro, ACs testáveis,
14
+ dependências mapeadas, rastreabilidade ao PRD — emitindo um veredito GO/NO-GO antes que alguém
15
+ escreva uma linha de código.
16
+
17
+ **Pré-condições:**
18
+ - A story existe em `docs/stories/` e está em status `Draft` (foi criada pelo @sm). Se já estiver
19
+ validada ou em implementação, **pare** — não revalido o que já passou do portão.
20
+ - O PRD/epic que originou a story existe e está acessível. Sem a fonte, eu não tenho contra o que
21
+ validar; **pare** e peça a referência.
22
+
23
+ ## Passos
24
+
25
+ 1. **Leia a fonte antes da story.** Abra o PRD/epic de origem em `docs/` e identifique os FR/NFR/CON
26
+ que a story deveria cumprir. Validar sem referência é chutar — a fonte é o gabarito.
27
+ 2. **Leia a story COMPLETA** — título, escopo, ACs, notas, seção de Testing, File List prevista.
28
+ 3. **Rode o checklist de 10 pontos** (`po-master-checklist`), marcando cada item PASS/FAIL:
29
+ escopo claro · ACs testáveis · dependências mapeadas · sequência lógica · rastreabilidade ao
30
+ PRD · gate de qualidade planejado (revisão/QA) · estimativa coerente · sem ambiguidade · sem
31
+ invenção (Art. IV) · File List preparada.
32
+ 4. **Teste cada AC como o @qa testaria.** Para cada critério pergunte: "que teste prova isto?". Se
33
+ você não consegue formular o teste, o AC FALHA — anote como correção obrigatória do @sm.
34
+ 5. **Verifique a cadeia de dependências.** O que esta story precisa que já exista? O que ela
35
+ destrava? Está na ordem certa no backlog? Dependência faltante é NO-GO automático.
36
+ 6. **Cheque rastreabilidade (Art. IV — No Invention).** Cada afirmação da story rastreia a um
37
+ FR/NFR/CON ou achado de pesquisa? Requisito inventado sem fonte = NO-GO até a origem aparecer.
38
+ 7. **Emita o veredito.** GO se score ≥ 7/10 **e** nenhum item crítico falhou (AC não-testável,
39
+ dependência faltante, invenção). Senão NO-GO, com a lista exata de correções e o dono de cada uma.
40
+ 8. **Roteie o próximo passo.** GO → segue para `@dev` implementar. NO-GO de story → volta ao `@sm`.
41
+ NO-GO de escopo → volta ao `@pm`. Conflito entre PRD/epic/story → escalo correção de curso ao
42
+ `@nexus-master`. **Eu não corrijo — devolvo com o mapa do conserto.**
43
+
44
+ ## Critério de pronto (DoD)
45
+
46
+ - [ ] Fonte (PRD/epic) lida e os FR/NFR/CON relevantes identificados
47
+ - [ ] Checklist de 10 pontos rodado, cada item com PASS/FAIL e score calculado
48
+ - [ ] Cada AC testado mentalmente; os não-testáveis listados como correção obrigatória
49
+ - [ ] Cadeia de dependências verificada; faltantes sinalizadas
50
+ - [ ] Veredito GO/NO-GO emitido com justificativa
51
+ - [ ] NO-GO acompanhado da lista de correções com dono explícito por item
52
+ - [ ] Próximo passo roteado (@dev / @sm / @pm / @nexus-master)
53
+
54
+ ## Falha / recuperação
55
+
56
+ - **Faltou o PRD/epic de origem** → não valido sem gabarito; sinalizo e peço a referência ao @pm.
57
+ - **Conflito de escopo entre PRD, epic e story** → não escolho um lado em silêncio; sinalizo o
58
+ conflito e escalo a correção de curso ao @nexus-master.
59
+ - **A story muda no meio da validação** (alguém editou) → reinicio do passo 2 sobre a versão atual.
60
+ - **Tentação de "passar e a gente vê depois"** → bloqueio cedo e em voz alta. Defeito barato é o
61
+ que se pega no portão; defeito caro é o que vaza dele. Pressa de sprint não compra exceção.
@@ -0,0 +1,55 @@
1
+ ---
2
+ id: validate-squad
3
+ agent: squad-creator
4
+ title: Validar a integridade de um squad
5
+ inputs: ['id do squad (squads/{id}/)']
6
+ outputs: [veredito PASS/FAIL com a lista de issues encontrados]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Validar a integridade de um squad
12
+
13
+ **Objetivo:** emitir um veredito verificável (PASS/FAIL) sobre a integridade de um squad
14
+ materializado — manifest, DNA dos membros, tasks e delegações — com cada issue nomeado e citável
15
+ (arquivo:campo).
16
+
17
+ **Pré-condições:**
18
+ - `squads/{id}/` existe no disco. Diretório ausente → FAIL imediato com a causa ("squad não
19
+ materializado"), não silêncio.
20
+
21
+ ## Passos
22
+
23
+ 1. **Leia o manifest** (`squads/{id}/squad.yaml`) e verifique os campos obrigatórios: `id` (casa
24
+ com o nome do diretório), `name`, `mission`, `version`, `chief`, `origin`, `traceRef`, `guards`,
25
+ `authorities`. `traceRef` vazio ou não rastreável = issue (Art. IV).
26
+ 2. **Valide o DNA de cada membro** (`squads/{id}/agents/*.md`) contra o contrato `Agent`
27
+ (frontmatter parseia; archetype/model dentro dos enums). Verifique o formato canônico do corpo
28
+ (Identidade/Princípios/Método/Comandos/Guardas/Voz presentes).
29
+ 3. **Cheque a composição:** o `chief` do manifest existe em `agents/` e tem archetype
30
+ `Orchestrator`; o time tem entre chief+2 e chief+7 membros; ids únicos; nenhum membro duplica
31
+ um papel do time core (mesma lente/whenToUse de um agente de `agents/` do core = issue REUSE).
32
+ 4. **Cheque declarado = real na camada procedural:** todo slug em `owns:` de cada membro tem
33
+ `squads/{id}/tasks/{slug}.md` OU é referência explícita a uma task core existente em `tasks/`.
34
+ Task copiada do core para dentro do squad (mesmo id de uma task core) = issue.
35
+ 5. **Cheque as delegações:** todo `delegatesTo.agent` resolve para um membro do squad OU para um
36
+ agente do core. Verifique que nenhuma `authority` do manifest colide com operação exclusiva do
37
+ core (git push/PR/release/MCP → @devops).
38
+ 6. **Cheque o knowledge:** toda ref em `knowledge:` dos membros existe em
39
+ `squads/{id}/knowledge/` ou em `knowledge/` do core.
40
+ 7. **Emita o veredito:** PASS (zero issues) ou FAIL com a lista completa — cada issue com
41
+ arquivo:campo e o motivo. Veredito sem evidência citável não é veredito (Lei 2).
42
+
43
+ ## Critério de pronto (DoD)
44
+
45
+ - [ ] Manifest, DNA, composição, tasks, delegações e knowledge verificados — nenhum check pulado
46
+ - [ ] Cada issue reportado com arquivo:campo e motivo (evidência citável)
47
+ - [ ] Veredito único e explícito: PASS ou FAIL — sem "quase passou"
48
+
49
+ ## Falha / recuperação
50
+
51
+ - **O squad não existe no disco** → FAIL com causa "não materializado"; sugira `create-squad`.
52
+ - **Um arquivo não parseia** (YAML/frontmatter quebrado) → o arquivo é issue, a validação CONTINUA
53
+ nos demais — o relatório é completo, não interrompido no primeiro erro.
54
+ - **FAIL** → o conserto é do dono do blueprint: `extend-squad` corrige aditivamente; issue
55
+ estrutural (chief errado, duplicação do core) volta para `create-squad` re-emitir o blueprint.