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,61 @@
1
+ ---
2
+ id: dev-develop-story
3
+ agent: dev
4
+ title: Implementar uma story
5
+ inputs: [story]
6
+ outputs: [código, testes, File List atualizada, status InProgress→Ready for Review]
7
+ elicit: false
8
+ modes: [interactive, yolo, preflight]
9
+ ---
10
+
11
+ # Implementar uma story
12
+
13
+ **Objetivo:** transformar uma story aprovada em código testado e rastreável, atualizando só as
14
+ seções do Dev Record — sem inventar escopo e sem tocar no que não é meu.
15
+
16
+ **Pré-condições:**
17
+ - A story existe e NÃO está em `Draft` (foi validada pelo @po). Se estiver em Draft, **pare** e
18
+ reporte: implementar uma story não-validada é retrabalho garantido.
19
+ - A story tem critérios de aceite (ACs) e a seção de Testing. Se faltar, **pare** e devolva ao @sm.
20
+
21
+ ## Passos
22
+
23
+ 1. **Leia a story COMPLETA antes de tocar em código** — ACs, notas de dev, seção de Testing. A story
24
+ tem tudo que você precisa; não carregue PRD/arquitetura a menos que a story mande explicitamente.
25
+ 2. **Procure padrão existente antes de criar** (REUSE > ADAPT > CREATE). Se já existe um utilitário/
26
+ componente que resolve, use; se quase resolve, adapte sem quebrar quem consome; só crie do zero
27
+ quando nada serve — e registre o porquê.
28
+ 3. **Implemente um AC por vez.** Para cada critério de aceite:
29
+ a. escreva o código mínimo que satisfaz o AC, seguindo os padrões do projeto;
30
+ b. escreva o teste que prova o AC (não marque o AC sem teste verde);
31
+ c. rode `lint` + `typecheck` + os testes da área;
32
+ d. **checkpoint de autocrítica** (a cada ~30 linhas): isto quebra algum consumidor? cobre o caso
33
+ de erro? é o caminho feliz só?
34
+ 4. **Atualize a File List** da story a cada arquivo criado/modificado. É o rastro do que você mexeu.
35
+ 5. **Rode a verificação completa** antes de declarar pronto: lint limpo, typecheck 0, toda a suíte
36
+ verde. Vermelho não vira "Ready for Review".
37
+ 6. **Revisão de qualidade pré-commit** (`nexus run` review ou ferramenta configurada): rode na
38
+ mudança não-commitada. CRITICAL → corrijo agora (máx. 2 iterações). HIGH → corrijo se der na 2ª
39
+ iteração, senão registro como dívida. MEDIUM/LOW → registro, não bloqueio.
40
+ 7. **Commit local** (`git add`/`git commit`, conventional commit com o id da story). **Nunca** `git
41
+ push` — isso é do @devops; eu deixo pronto e delego a subida.
42
+ 8. **Marque a story** `Ready for Review` e preencha Completion Notes + Change Log. Roteio para o @qa.
43
+
44
+ ## Critério de pronto (DoD)
45
+
46
+ - [ ] Todos os ACs implementados, cada um com teste verde
47
+ - [ ] lint limpo, typecheck 0, suíte completa verde
48
+ - [ ] File List, Completion Notes e Change Log atualizados
49
+ - [ ] Revisão pré-commit sem CRITICAL aberto
50
+ - [ ] Commit local feito; nada de `git push` (delegado ao @devops)
51
+ - [ ] Só toquei nas seções do Dev Record da story — não em ACs, escopo ou título
52
+
53
+ ## Falha / recuperação
54
+
55
+ - **Teste não passa após 3 tentativas no mesmo ponto** → HALT, registro no Debug Log e reporto o
56
+ bloqueio em vez de empurrar com gambiarra.
57
+ - **CRITICAL da revisão persiste após 2 iterações** → HALT, não marco Ready for Review; reporto.
58
+ - **Descobri que a story está incompleta/ambígua no meio** → paro, registro a lacuna e devolvo ao
59
+ @sm/@po. Não invento o requisito que falta.
60
+ - **A mudança exige tocar fora do meu escopo** (schema, infra, UI) → delego ao dono (@data-engineer,
61
+ @devops, @ux-design-expert) em vez de invadir a lane.
@@ -0,0 +1,59 @@
1
+ ---
2
+ id: document-project
3
+ agent: architect
4
+ title: Gerar a documentação de arquitetura do projeto
5
+ inputs: [codebase]
6
+ outputs: [documentação de arquitetura, mapa de dependências, riscos estruturais]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Gerar a documentação de arquitetura do projeto
12
+
13
+ **Objetivo:** produzir uma documentação de arquitetura fiel ao que o codebase **realmente é** — não
14
+ ao que deveria ser — para que qualquer agente ou humano entenda o sistema, suas fronteiras e onde ele
15
+ racha, sem ter que reler o repositório inteiro.
16
+
17
+ **Pré-condições:**
18
+ - O repositório está acessível e legível. Se estiver vazio ou inacessível, **pare** e reporte.
19
+ - Há um destino de documentação (`docs/architecture/`). Se já existir doc, eu atualizo o que mudou em
20
+ vez de reescrever do zero.
21
+
22
+ ## Passos
23
+
24
+ 1. **Reconheça o terreno.** Identifico stack, linguagens, gerenciador de pacotes, entrypoints e a
25
+ convenção de organização (por camada / feature / domínio). Documento o que existe, sem julgar.
26
+ 2. **Mapeie as camadas e fronteiras.** Frontend, backend, dados, infra: o que cada camada faz, onde
27
+ ela termina e onde fala com a próxima. Cada fronteira de serviço e contrato de API vira uma seção.
28
+ 3. **Levante o mapa de dependências** (`Grep`/`Glob`, code-intel se disponível). Módulos internos,
29
+ dependências externas e — crucial — qualquer ciclo de dependência. Anoto acoplamentos que viram
30
+ gargalo.
31
+ 4. **Documente o fluxo de dados** das entradas às saídas: como um request atravessa as camadas, onde
32
+ os dados persistem, onde há cache/fila. Para a camada de dados, registro a tecnologia e o contrato;
33
+ o schema detalhado é território da @data-engineer.
34
+ 5. **Anote os riscos estruturais (teste do 10×).** Para cada fronteira crítica, o que quebra ao
35
+ escalar: N+1, hot path, ponto único de falha, acoplamento perigoso. Registro o failure mode
36
+ observado — documentação honesta inclui as rachaduras.
37
+ 6. **Escreva no template e salve.** Preencho a documentação a partir do template de arquitetura, salvo
38
+ em `docs/architecture/` e entrego como base para `analyze-project-structure`,
39
+ `architect-analyze-impact` ou um assessment brownfield. Subida do doc → @devops.
40
+
41
+ ## Critério de pronto (DoD)
42
+
43
+ - [ ] Stack, entrypoints e convenção de organização documentados como realmente são
44
+ - [ ] Cada camada e fronteira de serviço descrita, com seus contratos de API
45
+ - [ ] Mapa de dependências completo, com ciclos identificados
46
+ - [ ] Fluxo de dados ponta a ponta documentado
47
+ - [ ] Riscos estruturais anotados com failure mode ao escalar (teste do 10×)
48
+ - [ ] Documentação salva em `docs/architecture/`, sem invenção (reflete o codebase, não o desejo)
49
+
50
+ ## Falha / recuperação
51
+
52
+ - **O codebase é grande demais para documentar de uma vez** → priorizo as camadas e fronteiras
53
+ críticas primeiro, marco o resto como pendente explícito; não invento o que não inspecionei.
54
+ - **Não consigo determinar o comportamento real de um módulo** → registro a incerteza como tal, em
55
+ vez de afirmar uma arquitetura que estou supondo (No Invention vale para documentação também).
56
+ - **A camada de dados exige detalhamento de schema/DDL** → documento a tecnologia e o contrato e
57
+ delego o aprofundamento de schema à @data-engineer.
58
+ - **A documentação precisa ser commitada e subida** → faço o registro local; a subida ao remoto é
59
+ exclusiva do @devops.
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: execute-checklist
3
+ agent: architect
4
+ title: Rodar um checklist de arquitetura
5
+ inputs: [checklist, artefato a validar]
6
+ outputs: [veredito por item, lista de correções, decisão GO/NO-GO]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Rodar um checklist de arquitetura
12
+
13
+ **Objetivo:** validar um artefato de arquitetura (documento, plano, design) contra um checklist item
14
+ a item, emitindo um veredito objetivo por item e uma decisão final — para que "feito" e "feito
15
+ direito" não sejam a mesma palavra na base da fé.
16
+
17
+ **Pré-condições:**
18
+ - Existe um checklist alvo em `checklists/` e um artefato a validar. Se faltar qualquer um, **pare**
19
+ e reporte — não há gate sem critério e sem objeto.
20
+ - O artefato está num estado avaliável (não um rascunho pela metade). Se estiver, devolvo para
21
+ completar antes.
22
+
23
+ ## Passos
24
+
25
+ 1. **Carregue o checklist completo** e o artefato a validar. Leio todos os itens antes de começar
26
+ para entender o que cada um exige — um checklist mal lido aprova o que deveria barrar.
27
+ 2. **Avalie item a item, em ordem.** Para cada item, confronto o artefato com o critério e emito um
28
+ veredito: **PASS** (atende), **FAIL** (não atende) ou **PARTIAL** (atende em parte). Registro a
29
+ evidência concreta — qual seção/decisão sustenta o veredito. Sem evidência, não é PASS.
30
+ 3. **No modo interativo, pare em pontos de confirmação** quando o item exigir julgamento do usuário;
31
+ no modo yolo, avalio autonomamente e marco os itens que precisariam de confirmação humana.
32
+ 4. **Para cada FAIL/PARTIAL, especifique a correção.** O que exatamente falta e onde — não "melhorar
33
+ a seção X", mas a lacuna concreta e acionável. Correção vaga não conserta nada.
34
+ 5. **Compute a decisão final.** GO (todos os itens críticos PASS) ou NO-GO (há FAIL crítico) com a
35
+ lista de correções obrigatórias. A severidade de cada item vem do próprio checklist.
36
+ 6. **Roteie o resultado.** GO → o artefato segue (implementação → @dev, schema → @data-engineer,
37
+ subida → @devops). NO-GO → devolvo ao autor do artefato com a lista de correções; não passo
38
+ adiante o que não passou.
39
+
40
+ ## Critério de pronto (DoD)
41
+
42
+ - [ ] Todos os itens do checklist avaliados, cada um com veredito (PASS/FAIL/PARTIAL) e evidência
43
+ - [ ] Cada FAIL/PARTIAL tem a correção concreta e acionável especificada
44
+ - [ ] Pontos de confirmação interativa respeitados (não pulados "por eficiência")
45
+ - [ ] Decisão final GO/NO-GO computada pela severidade dos itens do checklist
46
+ - [ ] Resultado roteado: GO segue ao próximo dono; NO-GO volta ao autor com correções
47
+
48
+ ## Falha / recuperação
49
+
50
+ - **Um item do checklist é ambíguo demais para avaliar** → registro como inconclusivo, não como PASS;
51
+ escalo a interpretação em vez de inventar o critério.
52
+ - **O artefato está incompleto demais para validar** → paro o gate e devolvo para completar; não
53
+ avalio um rascunho pela metade como se fosse final.
54
+ - **Há FAIL crítico** → emito NO-GO e devolvo; não há override informal de um item crítico — quem
55
+ decide waiver é a autoridade do processo, não eu sozinha no meio da validação.
56
+ - **O checklist alvo não existe ou está corrompido** → reporto e não improviso critérios; uma
57
+ validação sem checklist válido é teatro, não gate.
@@ -0,0 +1,52 @@
1
+ ---
2
+ id: execute-epic-plan
3
+ agent: pm
4
+ title: Executar o epic em waves paralelas
5
+ inputs: ['docs/epics/{epicNum}.epic.md', stories criadas pelo @sm]
6
+ outputs: [árvore de execução por waves, stories implementadas e roteadas ao gate]
7
+ elicit: false
8
+ modes: [yolo]
9
+ ---
10
+
11
+ # Executar o epic em waves paralelas
12
+
13
+ **Objetivo:** orquestrar a execução de um epic estruturado em ondas paralelas — disparando o motor
14
+ (`nexus run`), respeitando dependências e budget, e roteando cada entrega ao quality gate.
15
+
16
+ **Pré-condições:**
17
+ - O epic existe em `docs/epics/` com fronteiras, dependências e quality gates (saída de `create-epic`).
18
+ Se o epic não está estruturado, **pare** e rode `create-epic` antes.
19
+ - As stories do epic foram criadas pelo @sm e validadas pelo @po. Story em `Draft` não entra em
20
+ execução — eu não crio nem valido story (Gate 1); se faltam, delego ao @sm/@po.
21
+
22
+ ## Passos
23
+
24
+ 1. **Leia o epic completo** e monte o grafo de dependências entre as stories. Identifique o que é
25
+ paralelizável (baixo acoplamento) e o que precisa ser sequenciado.
26
+ 2. **Agrupe as stories em waves.** Cada wave: um conjunto de stories independentes que correm em
27
+ paralelo. Stories acopladas vão em waves seguintes, respeitando as deps.
28
+ 3. **Dispare o motor por wave** (`nexus run "{objetivo da wave}"`): o coordenador decompõe e o
29
+ orquestrador spawna os sub-agentes (cada story → @dev/@data-engineer/@ux conforme a frente).
30
+ 4. **Respeite os freios.** `maxFanout`, `maxDepth`, `maxTotalRuns` e budget têm teto. Se uma wave estoura
31
+ a decomposição, **recuso a wave inteira** e reformulo em frentes maiores/menos acopladas — sem
32
+ sub-agentes órfãos.
33
+ 5. **Costure as entregas da wave.** Recolha o resultado de cada story, verifique contra o critério de
34
+ aceite do epic, e só então libere a próxima wave (as que dependiam dela).
35
+ 6. **Roteie cada entrega ao gate.** Implementado → @qa (quality gate previsto no epic). Aprovado e pronto
36
+ pra subir → **@devops** (`git push`/PR/release são exclusivos dele — eu delego, sempre).
37
+
38
+ ## Critério de pronto (DoD)
39
+
40
+ - [ ] Stories agrupadas em waves respeitando o grafo de dependências
41
+ - [ ] Cada wave disparada via `nexus run`, dentro dos freios (sem órfãos, sem estouro de budget)
42
+ - [ ] Entregas costuradas e verificadas contra o critério de aceite do epic
43
+ - [ ] Cada entrega roteada ao @qa; subida delegada ao @devops
44
+ - [ ] Eu não criei nem validei story (Gate 1 respeitado)
45
+
46
+ ## Falha / recuperação
47
+
48
+ - **Uma story da wave falha** → o motor bloqueia os dependentes; reporto a frente travada e decido
49
+ re-delegar ou escalar, sem dar a wave por entregue.
50
+ - **A wave estoura os freios/budget** → recuso e reformulo em frentes maiores/menos acopladas.
51
+ - **Faltam stories validadas** → delego criação ao @sm e validação ao @po; não furo o Gate 1.
52
+ - **Pediram que eu suba o código** → recuso e delego ao @devops; `git push`/PR/release não são meus.
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: execute-subtask
3
+ agent: dev
4
+ title: Executar uma subtask do implementation.yaml
5
+ inputs: [subtask-id, implementation.yaml]
6
+ outputs: [código da subtask, File List atualizada, status da subtask: done]
7
+ elicit: false
8
+ modes: [yolo, interactive]
9
+ ---
10
+
11
+ # Executar uma subtask do implementation.yaml
12
+
13
+ **Objetivo:** implementar uma única subtask atômica do plano de execução pelo menor caminho,
14
+ deixando-a pronta para verificação — sem tocar em nada além do que a subtask delimita.
15
+
16
+ **Pré-condições:**
17
+ - Existe um `implementation.yaml` (plano de execução) com a subtask referenciada pelo `subtask-id`.
18
+ Se o id não existe no plano, **pare** e reporte — não invento subtask.
19
+ - As dependências (`depends_on`) da subtask já estão `done`. Se uma dependência está aberta, **pare**:
20
+ executar fora de ordem gera retrabalho.
21
+
22
+ ## Passos
23
+
24
+ 1. **Carrego a subtask** do `implementation.yaml`: seu objetivo, os arquivos que ela toca
25
+ (`files`), o critério de aceite local e a verificação configurada (`verify`). Leio só essa
26
+ subtask e o contexto que ela mesma referencia — não o plano inteiro.
27
+ 2. **Confirmo o escopo.** A subtask define quais arquivos posso tocar. Se o trabalho exige mexer
28
+ fora dessa lista, **paro** e reporto a fronteira estourada — não invado escopo de outra subtask.
29
+ 3. **Procuro padrão existente antes de criar** (REUSE > ADAPT > CREATE). Reuso utilitário/componente
30
+ que já resolve; adapto se quase resolve; só crio do zero quando nada serve.
31
+ 4. **Implemento pelo menor caminho** que satisfaz o critério local da subtask, seguindo os padrões
32
+ do projeto. Sem super-construção: resolvo o que a subtask pede, nada além.
33
+ 5. **Atualizo a File List** com cada arquivo criado/modificado/deletado nesta subtask.
34
+ 6. **Marco a subtask como `done`** no `implementation.yaml` (campo de status) e a roteio para a
35
+ verificação (`verify-subtask`). Não declaro pronto sem passar pela verificação.
36
+
37
+ ## Critério de pronto (DoD)
38
+
39
+ - [ ] A subtask foi implementada dentro da sua lista de arquivos (`files`) — sem extravasar escopo
40
+ - [ ] Reúso foi avaliado antes de criar estrutura nova
41
+ - [ ] File List atualizada com tudo que foi tocado
42
+ - [ ] Subtask marcada `done` no `implementation.yaml` e roteada para `verify-subtask`
43
+
44
+ ## Falha / recuperação
45
+
46
+ - **A subtask exige tocar arquivos fora da sua lista** → HALT e reporto; o escopo da subtask precisa
47
+ ser corrigido no plano, não burlado.
48
+ - **Uma dependência (`depends_on`) não está pronta** → paro e reporto a ordem quebrada.
49
+ - **3 tentativas falhas no mesmo ponto** → HALT, registro o bloqueio e reporto; não empilho hipótese.
50
+ - **A subtask está ambígua mesmo com o contexto do plano** → devolvo ao @architect (dono do
51
+ `implementation.yaml`) para esclarecer — não invento o requisito que falta.
@@ -0,0 +1,63 @@
1
+ ---
2
+ id: extend-pattern
3
+ agent: ux-design-expert
4
+ title: Adicionar variante a um componente existente
5
+ inputs: [componente-base, variante-pedida, story]
6
+ outputs: [variante implementada, testes, tokens, doc atualizada, File List atualizada]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Adicionar variante a um componente existente
12
+
13
+ **Objetivo:** estender um componente atômico já existente com uma nova variante (tamanho, estado,
14
+ intent) sem fork e sem quebrar quem já consome — variante nasce com a11y e tokens embutidos.
15
+
16
+ **Pré-condições:**
17
+ - O componente-base existe no design system e está em produção. Se não existe, **pare** — isto é um
18
+ `*build`, não um `*extend`.
19
+ - A variante pedida rastreia a uma story/spec/FR-NFR ou achado de pesquisa. Sem rastro, **pare** e
20
+ sinalizo: não invento variante por gosto.
21
+ - Os design tokens já cobrem (ou comportam) os valores da nova variante. Se faltar token, rodo
22
+ `*tokenize` antes — nada de hex solto.
23
+
24
+ ## Passos
25
+
26
+ 1. **Leio o componente-base inteiro** — props, variantes existentes, contrato público, testes. Mapeio
27
+ quem consome (busca de usos) para saber o que NÃO posso quebrar.
28
+ 2. **Confirmo a rastreabilidade da variante** à story/spec. Identifico o eixo da variante (ex.: novo
29
+ `intent="danger"`, novo `size="xs"`) e checo que não duplica uma variante já existente.
30
+ 3. **Estendo via prop/variante, nunca por fork.** Adiciono o valor ao tipo/enum da prop, sem mudar a
31
+ assinatura existente. Defaults e variantes atuais permanecem idênticos (mudança aditiva, não breaking).
32
+ 4. **Puxo todos os valores de design token.** Cor, espaçamento, tipografia e raio da nova variante vêm
33
+ dos tokens consolidados — zero hardcoded.
34
+ 5. **Escrevo o teste da variante** (render + estados) e **rodo a auditoria de a11y** (`*a11y-check`):
35
+ contraste, foco visível, navegação por teclado e semântica da nova variante.
36
+ 6. **Rodo a suíte completa** do componente para provar que nenhum consumidor quebrou (regressão das
37
+ variantes antigas + a nova verde).
38
+ 7. **Atualizo a documentação** da pattern library (`*document`) com a nova variante: exemplo, quando
39
+ usar, quando não usar.
40
+ 8. **Atualizo a File List** da story e faço **commit local** (conventional commit com o id da story).
41
+ **Nunca** `git push` — entrego pronto e delego a subida ao @devops.
42
+
43
+ ## Critério de pronto (DoD)
44
+
45
+ - [ ] Variante rastreia a uma story/spec/FR-NFR — sem invenção
46
+ - [ ] Mudança é aditiva: nenhuma variante/consumidor existente quebrou (regressão verde)
47
+ - [ ] Zero valor hardcoded — tudo via design token
48
+ - [ ] a11y WCAG AA aprovada para a nova variante (contraste, foco, teclado, semântica)
49
+ - [ ] Teste da variante verde + suíte completa verde
50
+ - [ ] Doc da pattern library atualizada (uso / não-uso)
51
+ - [ ] File List atualizada e commit local feito (sem `git push`)
52
+
53
+ ## Falha / recuperação
54
+
55
+ - **A variante quebraria um consumidor existente** → não é `*extend`, é refatoração de contrato. HALT,
56
+ escalo para @architect/@dev decidir a migração antes de prosseguir.
57
+ - **a11y reprova na nova variante** → bloqueio a entrega, não marco pronto. Acessibilidade é piso, não
58
+ melhoria futura.
59
+ - **Falta token para a variante** → paro, rodo `*tokenize` para criar o token, e só então estendo —
60
+ nunca hardcode como atalho.
61
+ - **A variante não rastreia a nenhuma story/spec** → paro e sinalizo como hipótese; busco a evidência
62
+ antes de implementar.
63
+ - **A mudança exige integrar na app além do design system** → delego ao @dev em vez de invadir a lane.
@@ -0,0 +1,60 @@
1
+ ---
2
+ id: extend-squad
3
+ agent: squad-creator
4
+ title: Estender um squad existente sem quebrar o que já roda
5
+ inputs: ['id do squad', 'necessidade nova (membro, task ou knowledge)']
6
+ outputs: ['blueprint incremental <squad>{json}</squad> validado', 'squads/{id}/ estendido pelo motor']
7
+ elicit: true
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Estender um squad existente sem quebrar o que já roda
12
+
13
+ **Objetivo:** adicionar membros, tasks ou knowledge a um squad já materializado — mudança ADITIVA,
14
+ validada pelo motor, que preserva os membros e contratos existentes.
15
+
16
+ **Pré-condições:**
17
+ - `squads/{id}/` existe e passa em `validate-squad`. Estender squad quebrado é empilhar dívida:
18
+ primeiro o FAIL é sanado, depois se estende.
19
+ - A necessidade nova rastreia à missão do squad (ou a uma extensão explícita dela, com novo
20
+ `traceRef`). Sem rastro, não entra.
21
+
22
+ ## Passos
23
+
24
+ 1. **Leia o squad REAL** (`squad.yaml` + `agents/` + `tasks/` do squad) antes de propor qualquer
25
+ adição (Lei 2). Rode `validate-squad {id}` — FAIL bloqueia a extensão até ser sanado.
26
+ 2. **Elicite a necessidade** (ponto de elicitação em modo interativo): que gap apareceu? É lente
27
+ nova (membro), procedimento novo (task) ou craft novo (knowledge)? Em yolo, derive dos inputs e
28
+ declare as suposições.
29
+ 3. **Cheque REUSE antes de CREATE — duas vezes:** o gap é coberto (a) por um membro atual do squad?
30
+ (b) pelo time core? Se sim em qualquer um, a extensão é **delegação/referência**, não membro
31
+ novo. Só o gap real vira adição.
32
+ 4. **Verifique os limites da composição:** a adição mantém o time em chief+2..chief+7, lentes
33
+ distintas, chief único e `Orchestrator`, zero colisão de autoridade com o core. Estourou a
34
+ faixa → renegocie (fatiar a missão) em vez de inchar o time.
35
+ 5. **Preencha os templates** (`agent-dna-tmpl` / `squad-task-tmpl`) para as adições e **emita UM
36
+ bloco `<squad>{json}</squad>` incremental**: mesmo shape do `create-squad`, com o `manifest`
37
+ atualizado (version bump) e SOMENTE os agents/tasks/knowledge novos ou alterados. Membro
38
+ existente não é reescrito de carona (Lei 5 — diff mínimo).
39
+ 6. **Dispare o motor** (`nexus squad extend`): ele valida o blueprint incremental contra o squad
40
+ existente e materializa. Conflito (id duplicado, autoridade colidente) → o motor recusa; corrija
41
+ e re-emita.
42
+ 7. **Prove:** rode `validate-squad {id}` no squad estendido e reporte o resultado real.
43
+
44
+ ## Critério de pronto (DoD)
45
+
46
+ - [ ] Squad de partida validado (PASS) antes da extensão
47
+ - [ ] Necessidade rastreada à missão (ou extensão dela com `traceRef` novo)
48
+ - [ ] REUSE checado contra o squad E contra o core antes de criar qualquer coisa
49
+ - [ ] Blueprint incremental emitido num único bloco `<squad>{json}</squad>`, com version bump e sem reescrever membros intactos
50
+ - [ ] Motor validou e materializou; conflito zero
51
+ - [ ] `validate-squad` pós-extensão PASS, reportado
52
+
53
+ ## Falha / recuperação
54
+
55
+ - **O squad de partida está FAIL** → HALT da extensão; reporte os issues e conserte-os primeiro
56
+ (issue aditivo → esta task; estrutural → `create-squad` re-emite).
57
+ - **A adição colide com membro/task existente** → o motor recusa; renomeie ou funda com o
58
+ existente — nunca sobrescreva por cima.
59
+ - **A necessidade não rastreia à missão** → não é extensão, é squad novo ou escopo do core:
60
+ devolva a decisão ao usuário com as duas opções.
@@ -0,0 +1,64 @@
1
+ ---
2
+ id: extract-patterns
3
+ agent: analyst
4
+ title: Extrair e documentar padrões de código do codebase
5
+ inputs: [codebase, objetivo (story/spec/área-alvo)]
6
+ outputs: [catálogo de padrões rastreáveis (docs/research/patterns.md)]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Extrair e documentar padrões de código do codebase
12
+
13
+ **Objetivo:** mapear os padrões recorrentes de um codebase existente (convenções, estruturas,
14
+ abordagens de erro, camadas) e documentá-los como catálogo acionável — cada padrão rastreando a
15
+ ocorrências reais no código, nunca a um palpite.
16
+
17
+ **Pré-condições:**
18
+ - Há um codebase acessível e um objetivo que define o recorte: a área/story/spec para a qual os
19
+ padrões importam. Sem recorte, eu **paro e elícito** (`*elicit`) — varrer o repositório inteiro
20
+ sem pergunta é tempo queimado.
21
+ - Existe um destino de saída em `docs/research/`. Se não existir, eu crio o diretório antes de
22
+ escrever.
23
+
24
+ ## Passos
25
+
26
+ 1. **Aperto o recorte até doer.** Qual decisão estes padrões precisam destravar? (ex.: o @dev vai
27
+ implementar uma story e precisa seguir a convenção da casa; o @architect vai decidir reuso). Se o
28
+ recorte não estiver claro, paro e elícito — não invento o escopo.
29
+ 2. **Divirjo: coleto largo.** Uso `Grep`/`Glob` para varrer a área-alvo e levanto candidatos a padrão
30
+ sem julgar ainda — nomenclatura, estrutura de pastas, tratamento de erro, camadas (controller/
31
+ service/repo), imports, formato de teste, validação, logging. Nesta fase só coleto e mapeio onde
32
+ cada candidato aparece.
33
+ 3. **Convirjo: filtro por evidência.** Um padrão só entra no catálogo se aparece em **2+ ocorrências
34
+ reais** no código. Ocorrência única é exceção, não padrão — registro como nota, não como regra.
35
+ Cada padrão sobrevivente carrega os arquivos:linha onde foi observado.
36
+ 4. **Classifico cada padrão** em: convenção forte (consistente em toda a área), convenção parcial
37
+ (coexiste com variações — sinalizo o conflito) ou anti-padrão recorrente (aparece, mas viola boa
38
+ prática — marco explicitamente). Não maquio inconsistência como consistência.
39
+ 5. **Sintetizo o "portanto".** Para cada padrão documento: nome, descrição, exemplo mínimo do próprio
40
+ código, ocorrências rastreáveis e a ação acionável — "ao implementar nesta área, siga X / evite Y".
41
+ 6. **Escrevo o catálogo** em `docs/research/patterns.md` com fonte ao lado de cada item. O que é
42
+ suposição minha (sem ocorrência verificável) vai marcado como hipótese, nunca como fato.
43
+ 7. **Faço o handoff limpo.** Roteio o catálogo a quem consome: implementação → @dev (para seguir a
44
+ convenção da casa), decisão de reuso/arquitetura → @architect. Eu municio; eles decidem.
45
+
46
+ ## Critério de pronto (DoD)
47
+
48
+ - [ ] O recorte (área/story/spec) está explícito no topo do catálogo
49
+ - [ ] Todo padrão documentado tem 2+ ocorrências reais rastreadas (arquivo:linha)
50
+ - [ ] Cada padrão tem exemplo do próprio código + ação acionável ("portanto")
51
+ - [ ] Conflitos e anti-padrões estão sinalizados, não maquiados
52
+ - [ ] Suposições sem fonte estão marcadas como hipótese, não como fato
53
+ - [ ] Catálogo salvo em `docs/research/patterns.md` e roteado ao consumidor (@dev/@architect)
54
+
55
+ ## Falha / recuperação
56
+
57
+ - **O recorte não está claro / objetivo ausente** → paro e elícito (`*elicit`); não varro o repo
58
+ inteiro nem invento o escopo.
59
+ - **Nenhum padrão atinge 2+ ocorrências** → reporto que a área não tem convenção estabelecida (achado
60
+ válido por si) em vez de promover ruído a regra.
61
+ - **Padrões conflitam entre si** → documento ambos os lados com suas ocorrências e sinalizo o conflito
62
+ ao consumidor; não escolho o "certo" — isso é decisão do @architect.
63
+ - **A extração exige rodar/mover código ou subir algo** → não é meu papel; delego ao @dev (mudança) ou
64
+ ao @devops (subida/MCP). Eu observo e documento, não administro.
@@ -0,0 +1,59 @@
1
+ ---
2
+ id: extract-tokens
3
+ agent: ux-design-expert
4
+ title: Extrair design tokens dos padrões consolidados
5
+ inputs: [padrões consolidados, story/spec de design system]
6
+ outputs: [design tokens (cor, espaçamento, tipografia, raio, sombra), docs/design-system/tokens/]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Extrair design tokens dos padrões consolidados
12
+
13
+ **Objetivo:** transformar os padrões visuais consolidados num conjunto de design tokens nomeados e
14
+ versionados — a fonte única de verdade para cor, espaçamento, tipografia, raio e sombra. Daqui pra
15
+ frente, nada é hardcoded.
16
+
17
+ **Pré-condições:**
18
+ - A consolidação (`consolidate-patterns`) já reduziu a redundância e existe o conjunto de variantes
19
+ vencedoras. Sem isso, **pare**: tokenizar o caos só normaliza o caos.
20
+ - Há uma story/spec pedindo o design system (ou a migração que o exige). Sem rastro, elicito — não
21
+ invento paleta nem escala.
22
+
23
+ ## Passos
24
+
25
+ 1. **Leio os padrões consolidados** e extraio os valores brutos recorrentes: cores usadas,
26
+ espaçamentos, tamanhos/pesos de fonte, raios de borda, sombras.
27
+ 2. **Agrupo cada dimensão numa escala semântica**, não numa lista de hex solto:
28
+ - **cor:** primária/secundária/neutra + estados (success/warning/danger/info), com nomes de
29
+ intenção (ex.: `color.action.primary`), não de aparência (`color.blue-500` só como referência).
30
+ - **espaçamento:** escala consistente (ex.: 4/8/12/16/24/32) com nomes (`space.xs…space.2xl`).
31
+ - **tipografia:** família, escala de tamanho, pesos e line-heights nomeados.
32
+ - **raio e sombra:** níveis nomeados (`radius.sm/md/lg`, `shadow.1/2/3`).
33
+ 3. **Valido contraste WCAG AA** em cada par texto/fundo dos tokens de cor — contraste reprovado não
34
+ vira token: ajusto o valor ou marco o par como proibido. Acessibilidade é piso, não enfeite.
35
+ 4. **Escrevo os tokens** em formato consumível (ex.: JSON/CSS custom properties) em
36
+ `docs/design-system/tokens/`, organizados por dimensão, com versão e referência aos padrões de
37
+ origem (rastro — cada token sabe de onde veio).
38
+ 5. **Registro divergências resolvidas:** quando dois valores quase iguais viraram um só token,
39
+ anoto o mapeamento (valor antigo → token) para a migração depois consumir.
40
+ 6. **Atualizo a File List** da story com os arquivos de token criados.
41
+ 7. **Roteio.** Tokens prontos alimentam `setup-design-system` e `build-component`. Decisão de stack
42
+ de tokens (ex.: ferramenta de build/transform) é da Aria (@architect) — eu trago a lente de UX e
43
+ delego. Subida é do @devops.
44
+
45
+ ## Critério de pronto (DoD)
46
+
47
+ - [ ] Cada dimensão (cor, espaçamento, tipografia, raio, sombra) tem escala semântica nomeada
48
+ - [ ] Todo par texto/fundo de cor passou em contraste WCAG AA (ou está marcado como proibido)
49
+ - [ ] Tokens escritos em `docs/design-system/tokens/`, versionados e com rastro à origem
50
+ - [ ] Mapeamento valor antigo → token registrado para a migração
51
+ - [ ] Zero valor hardcoded sobrando como decisão final; File List atualizada
52
+
53
+ ## Falha / recuperação
54
+
55
+ - **Padrões não consolidados** → HALT; volto à `consolidate-patterns`, não tokenizo redundância.
56
+ - **Cor reprova contraste e não há ajuste óbvio** → não publico o token; sinalizo o conflito e busco
57
+ o valor acessível antes de fechar a paleta.
58
+ - **A escala fica ambígua (muitos valores próximos sem critério)** → elicito a decisão de design em
59
+ vez de inventar a regra de arredondamento.
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: facilitate-brainstorming-session
3
+ agent: analyst
4
+ title: Facilitar uma sessão de brainstorming
5
+ inputs: [tópico]
6
+ outputs: ['docs/research/brainstorm-{slug}.md (ideias divergidas, convergidas e priorizadas)']
7
+ elicit: true
8
+ modes: [interactive]
9
+ ---
10
+
11
+ # Facilitar uma sessão de brainstorming
12
+
13
+ **Objetivo:** conduzir uma ideação estruturada que primeiro abre o leque (divergir) e depois corta com critério (convergir), entregando um conjunto priorizado e acionável de ideias rastreáveis ao tópico.
14
+
15
+ **Pré-condições:**
16
+ - Existe um tópico/objetivo de ideação definido. Se for vago ("preciso de ideias"), **pare** e elícito (`*elicit`) o foco real — brainstorm sem alvo é ruído.
17
+ - A decisão que esta sessão precisa destravar está clara. Se não, aperto o objetivo antes de gerar uma ideia sequer.
18
+
19
+ ## Passos
20
+
21
+ 1. **Enquadro o tópico com o usuário.** Confirmo a pergunta central e o que conta como "boa ideia" aqui (critério de sucesso). Registro isso no topo do documento. **(ponto de elicitação — exige a resposta real do usuário, não pode ser pulado)**
22
+ 2. **Escolho técnicas nomeadas** adequadas ao tópico (ex.: SCAMPER, What-If, First Principles, Crazy 8s, Mind Mapping, Reverse Brainstorming). Anuncio qual técnica estou aplicando — método sobre achismo.
23
+ 3. **DIVIRJO primeiro.** Gero amplitude deliberada de ideias — mais do que parece confortável. Nesta fase **não julgo**: só coleto e mapeio. Convido o usuário a contribuir a cada rodada de técnica.
24
+ 4. **Marco a transição.** Anuncio explicitamente "fechando o leque, começando a tesoura" — nunca convirjo antes de ter divergido de verdade.
25
+ 5. **CONVIRJO com critério.** Agrupo ideias por tema, removo duplicatas e filtro pelo critério de sucesso definido no passo 1. Cada ideia que sobrevive carrega o porquê.
26
+ 6. **Priorizo.** Classifico as ideias sobreviventes (ex.: impacto × esforço, ou "agora / próximo / depois"). Entrego como lista numerada para escolha.
27
+ 7. **Sintetizo em "portanto".** Para as ideias top, escrevo o próximo passo acionável e o dono sugerido (PRD → @pm, arquitetura → @architect, story → @sm).
28
+ 8. **Salvo o documento** em `docs/research/brainstorm-{slug}.md` com: tópico, técnicas usadas, ideias divergidas, agrupamento, priorização e os "portanto".
29
+
30
+ ## Critério de pronto (DoD)
31
+
32
+ - [ ] Tópico e critério de sucesso confirmados com o usuário (elicitação cumprida)
33
+ - [ ] Pelo menos uma técnica nomeada aplicada e registrada
34
+ - [ ] Fase de divergência ocorreu antes da convergência (rastro no documento)
35
+ - [ ] Ideias priorizadas em lista numerada, cada top item com "portanto" acionável e dono sugerido
36
+ - [ ] Documento salvo em `docs/research/brainstorm-{slug}.md`
37
+
38
+ ## Falha / recuperação
39
+
40
+ - **Usuário não consegue definir o critério de sucesso** → paro na elicitação e ofereço 2-3 enquadramentos para escolha; não improviso o alvo.
41
+ - **A sessão converge cedo demais** (usuário quer fechar na 1ª ideia) → registro a ideia, mas insisto em ao menos uma rodada de divergência antes de priorizar.
42
+ - **Nenhuma ideia sobrevive ao filtro** → reporto que o critério pode estar estreito demais; reabro a divergência com técnica diferente em vez de forçar um resultado fraco.
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: generate-ai-frontend-prompt
3
+ agent: ux-design-expert
4
+ title: Gerar prompt para ferramentas de UI por IA
5
+ inputs: [wireframes, front-end spec, design tokens disponíveis]
6
+ outputs: [prompt estruturado para v0/Lovable/similar]
7
+ elicit: false
8
+ modes: [interactive, yolo]
9
+ ---
10
+
11
+ # Gerar prompt para ferramentas de UI por IA
12
+
13
+ **Objetivo:** traduzir wireframes e spec de frontend num prompt estruturado e rastreável que uma
14
+ ferramenta de geração de UI por IA (v0, Lovable, etc.) consiga executar fielmente — sem inventar
15
+ requisito fora da spec.
16
+
17
+ **Pré-condições:**
18
+ - Existem wireframes (`ux-create-wireframe`) e/ou uma front-end spec que descrevem as telas e o
19
+ comportamento. Sem fonte, **pare** — o prompt não pode inventar a UI.
20
+ - Os design tokens (cor, espaçamento, tipografia, raio) estão disponíveis ou referenciáveis. Sem
21
+ tokens, sinalizo que o output virá com valores genéricos a corrigir depois.
22
+
23
+ ## Passos
24
+
25
+ 1. **Reúna os insumos:** wireframes, spec de frontend, design tokens e os ACs da story. O prompt só
26
+ pode afirmar o que esses insumos sustentam.
27
+ 2. **Estruture o prompt em blocos claros:** (a) contexto e objetivo da tela; (b) layout e hierarquia;
28
+ (c) componentes e estados (vazio/carregando/erro/sucesso); (d) tokens a usar (não hex solto);
29
+ (e) requisitos de acessibilidade (foco visível, semântica, contraste WCAG AA); (f) stack/framework
30
+ alvo da ferramenta.
31
+ 3. **Ancore cada requisito do prompt** a um wireframe, item da spec ou AC. Frase do prompt que não
32
+ rastreia a um insumo é invenção — corto.
33
+ 4. **Inclua as restrições de acessibilidade como obrigatórias**, não como "se possível": contraste
34
+ AA, navegação por teclado, alt text, ordem de foco. O output gerado nasce com a11y ou volta.
35
+ 5. **Adicione as guardas de tokens:** instruo a ferramenta a consumir os design tokens nomeados em
36
+ vez de valores hardcoded, para o resultado já nascer consistente com o design system.
37
+ 6. **Registre o prompt** em `docs/stories/{epic}/ai-prompts/` (ou na seção de UX da story) com a
38
+ indicação da ferramenta-alvo e dos insumos que o originaram.
39
+ 7. **Marque o output como rascunho a auditar:** o que a IA gerar passa pela minha auditoria de a11y e
40
+ de tokens antes de virar componente de produção — não entra direto.
41
+
42
+ ## Critério de pronto (DoD)
43
+
44
+ - [ ] Prompt estruturado em blocos (contexto, layout, componentes/estados, tokens, a11y, stack)
45
+ - [ ] Cada requisito do prompt rastreia a um wireframe, spec ou AC
46
+ - [ ] Acessibilidade WCAG AA escrita como obrigatória no prompt
47
+ - [ ] Guarda de tokens presente (sem hardcoded no output esperado)
48
+ - [ ] Prompt registrado com ferramenta-alvo e insumos de origem
49
+
50
+ ## Falha / recuperação
51
+
52
+ - **Faltam wireframes ou spec** → não escrevo prompt no escuro; volto para `ux-create-wireframe` ou
53
+ `create-front-end-spec` primeiro.
54
+ - **Não há design tokens** → gero o prompt com aviso explícito de que o output exigirá tokenização
55
+ posterior (`extract-tokens`) antes de produção.
56
+ - **O output da IA viola a11y ou usa hardcoded** → reprovo na auditoria e refino o prompt; não
57
+ promovo a componente de produção.