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,185 @@
1
+ ---
2
+ id: style-cloning
3
+ domain: web-craft
4
+ agents: [ux-design-expert]
5
+ when: "ao receber uma referência (site/print) e precisar reaplicar a linguagem de design dela num novo projeto"
6
+ ---
7
+
8
+ # Style Cloning — extrair a linguagem de uma referência e reaplicar fielmente
9
+
10
+ O pedido chega assim: "faz parecido com esse site", junto de um print ou uma URL. O trabalho **não** é
11
+ copiar a tela — é dissecar *por que* aquela referência funciona, isolar as decisões que dão o feeling, e
12
+ reconstruir essas decisões como sistema no projeto novo. Quem copia a tela produz uma falsificação
13
+ quebrada; quem extrai a **linguagem** produz algo que pertence à mesma família visual e ainda assim é
14
+ próprio.
15
+
16
+ **A linha ética é dura e vem antes de tudo:** você extrai a *técnica* (a razão tipográfica, a temperatura
17
+ da paleta, a curva de easing, a densidade) — você **nunca** copia o asset (logo, foto, ilustração,
18
+ ícone-set proprietário, o texto/conteúdo). Linguagem de design é craft e não é protegível; asset e copy
19
+ são IP de terceiros. Se você se pegar baixando a imagem do hero da referência pra usar no projeto, parou:
20
+ errado. Reproduza o *tratamento* daquela imagem (grão, corte, temperatura) numa imagem licenciada/própria.
21
+
22
+ ## O problema / os tells de uma clonagem ruim
23
+
24
+ Reconheça o trabalho ruim — clonagem feita errado tem cara:
25
+
26
+ 1. **Print-tracing.** A pessoa recriou *aquela tela exata* (mesmo hero, mesma manchete, mesmos 3 cards na
27
+ mesma ordem) em vez de extrair o sistema. Resultado: muda o conteúdo do projeto e tudo desaba, porque
28
+ nada era regra — era cópia pixel a pixel de um caso específico.
29
+ 2. **"Pegou a cor primária" e mais nada.** Capturou `#FF5A1F` da referência, jogou num template default
30
+ e achou que clonou. A cor sozinha não carrega o feeling — carrega tipografia + espaço + densidade +
31
+ motion juntos.
32
+ 3. **Tipografia trocada pelo "parecido do Google Fonts".** A referência usa uma grotesca comercial paga;
33
+ a pessoa botou Montserrat "porque é tipo isso" e o caráter evaporou. Par de fonte errado mata a
34
+ semelhança mais que cor errada.
35
+ 4. **Eyedropper de uma cor, não da temperatura.** Pegou o accent mas manteve os neutros do template
36
+ (cinza `#888` puro), enquanto a referência tinha neutros quentes (cinza puxado pro bege). A página
37
+ "não fica igual" e ninguém sabe dizer por quê — é a temperatura dos neutros.
38
+ 5. **Densidade ignorada.** A referência é apertada e densa (estilo terminal/editorial, muita info por
39
+ tela); a réplica saiu arejada e espaçosa porque o template era assim. O *ritmo de informação* é
40
+ metade da identidade e foi perdido.
41
+ 6. **Motion copiado de olho como "fade".** A referência tem um stagger com easing custom e overshoot
42
+ sutil; a réplica botou `fade-up .3s ease` em tudo. O movimento é assinatura e foi achatado.
43
+ 7. **Asset roubado.** Baixou a foto/ilustração/ícone da referência e colou no projeto. Além de antiético
44
+ e ilegal, denuncia a cópia — é literalmente o material de outra marca na sua página.
45
+ 8. **Sem validação lado a lado.** Entregou "de memória", sem nunca colocar referência e réplica na mesma
46
+ tela pra comparar. Sempre que isso acontece, a réplica está 40% fora e a pessoa não percebeu.
47
+
48
+ ## Os princípios do craft
49
+
50
+ ### 1. Capture sete dimensões, não "a cara"
51
+
52
+ O feeling de uma referência mora em sete eixos. Capture cada um **explicitamente** — anote número e nome,
53
+ não impressão vaga. Use o DevTools (Computed styles) e um eyedropper; impressão "de olho" erra.
54
+
55
+ - **Paleta + temperatura.** Não pegue só o accent. Pegue: 1 accent (e seu hover/active), 2–3 neutros
56
+ (background, surface, texto) e diga a **temperatura** de cada um. O segredo costuma estar nos neutros:
57
+ `#F7F5F2` (off-white quente) sente-se completamente diferente de `#FFFFFF` puro, e é isso que dá o "ar
58
+ premium/editorial". Anote em HSL pra ler a temperatura: se o H dos cinzas está em ~30–50 são quentes,
59
+ ~200–220 são frios, sem saturação são mortos.
60
+ - **Sistema tipográfico.** O *par* (display + texto), a **razão da escala** (meça dois tamanhos
61
+ consecutivos e divida: 64/48 ≈ 1.33; 18/16 = 1.125 — descubra a razão), o **peso** de cada nível, o
62
+ **tracking** do display (geralmente negativo em manchete grande: `-0.02em` a `-0.04em`) e o **leading**
63
+ (1.05–1.15 em manchete, 1.5–1.65 em corpo). Identifique as fontes reais (WhatFont, ou olhe o
64
+ `font-family` no Computed). Se forem pagas, escolha o substituto pelo **caráter** (mesma classe:
65
+ grotesca-de-contraste, serifa-transicional, mono-humanista), não pelo nome parecido.
66
+ - **Escala de espaço.** Meça gaps e paddings reais. Existe uma base e uma razão? (8/16/24/40/64 é linear
67
+ ×8; 4/8/16/32/64 é geométrico ×2 — sentem diferente). Anote os **extremos** que a referência usa: qual
68
+ o menor gap de agrupamento e o maior respiro de seção. A relação entre eles é o ritmo.
69
+ - **Raios + sombras.** Raio do botão, do card, do input — são iguais ou variados por propósito? Sombra:
70
+ é uma `shadow-md` genérica ou uma sombra **longa e suave de baixa opacidade** (`0 20px 40px
71
+ rgba(0,0,0,.06)`)? Borda de 1px hairline em vez de sombra? Isso define "macio" vs "nítido".
72
+ - **Densidade.** Quanta informação por tela? Conte: a referência mostra 3 coisas com muito ar, ou 12
73
+ coisas organizadas e densas? Densidade é decisão de identidade — um Linear/terminal denso e um
74
+ Stripe/marketing arejado usam *a mesma* base de 8px com densidades opostas.
75
+ - **Motion + easing.** Abra e role devagar. O que entra: tudo junto ou em **stagger**? A curva é o `ease`
76
+ default ou tem **overshoot/anticipation** (cubic-bezier custom)? Duração curta (120–200ms, ágil) ou
77
+ longa (400–600ms, cinematográfico)? Há scroll-linked/parallax? Anote a *sensação* (ágil vs preguiçoso
78
+ vs elástico) e tente a curva.
79
+ - **Tom de imagem + voz da copy.** Imagem: foto ou ilustração? Quente ou fria? Tem **grão/ruído**?
80
+ Contraste alto ou lavado (faded)? Corte cheio ou minimalista? Voz da copy: manchetes curtas e secas?
81
+ Técnicas e específicas? Com humor? Em caixa baixa proposital? Essa é a *técnica* — você reaplica o
82
+ **tratamento**, com seus próprios assets e seu próprio texto.
83
+
84
+ ### 2. Traduza cada captura em token — o sistema é a ponte
85
+
86
+ Captura solta vira cópia; captura virada **token** vira linguagem reaplicável. Para cada dimensão, escreva
87
+ um token nomeado *pela intenção*, não pelo valor. É o token que se reaplica no projeto, não o print.
88
+
89
+ ```css
90
+ :root {
91
+ /* temperatura é decisão, não acidente — neutros quentes */
92
+ --bg: hsl(40 20% 97%); /* off-white quente, não #fff */
93
+ --surface: hsl(40 14% 94%);
94
+ --text: hsl(30 8% 12%);
95
+ --accent: hsl(18 90% 55%); /* +hover/active derivados, não avulsos */
96
+
97
+ /* escala tipográfica: razão 1.25 capturada da referência */
98
+ --step-0: 1rem; --step-1: 1.25rem; --step-2: 1.563rem; --step-3: 1.953rem;
99
+ --display-tracking: -0.03em; /* manchete aperta */
100
+ --display-leading: 1.08;
101
+ --body-leading: 1.6;
102
+
103
+ /* espaço: geométrico ×2, com extremos reais usados */
104
+ --s-1: .5rem; --s-3: 2rem; --s-6: 8rem; /* respiro de seção grande */
105
+
106
+ /* superfície: sombra longa de baixa opacidade, não shadow-md */
107
+ --shadow-soft: 0 24px 48px -12px hsl(30 20% 10% / .08);
108
+ --radius-card: 14px; /* nem 8 default, nem pill */
109
+
110
+ /* motion: curva com overshoot sutil, captura do easing */
111
+ --ease-signature: cubic-bezier(.16, 1, .3, 1);
112
+ --dur-quick: 160ms;
113
+ }
114
+ ```
115
+
116
+ Regra de ouro da tradução: **a razão e a temperatura viajam; os valores absolutos podem mudar.** Se o
117
+ projeto novo precisa de accent azul por imposição da marca, mantenha a *mesma temperatura de neutros*, a
118
+ *mesma razão tipográfica*, a *mesma densidade* e o *mesmo easing* — a família visual sobrevive à troca de
119
+ cor. É por isso que se extrai sistema, não pixels.
120
+
121
+ ### 3. Reproduza o feeling, não os assets
122
+
123
+ O feeling vem do **tratamento**, e tratamento é técnica reproduzível com material próprio:
124
+
125
+ - A referência tem fotos com grão e contraste lavado? Aplique `filter` + um overlay de ruído + uma
126
+ curva de contraste **nas suas próprias fotos** (licenciadas/geradas/da marca). O grão é a técnica; a
127
+ foto é sua.
128
+ - Ícones com aquele traço fino e cantos específicos? Use um set aberto (ou desenhe) com o *mesmo
129
+ stroke-width e o mesmo line-cap* — não baixe o set proprietário da referência.
130
+ - Aquele detalhe gráfico recorrente (uma linha hairline entre seções, um numeral monoespaçado de label,
131
+ um sublinhado deslocado no link)? Esses "maneirismos" carregam mais identidade que o hero inteiro.
132
+ Catalogue-os e reaplique — são técnica pura, sem asset envolvido.
133
+ - A estrutura/sequência das seções **não** se copia ("hero→logos→3 features→CTA" é justamente o tell de
134
+ template). Reproduza os *princípios de composição* (assimetria, ponto focal único, sangria) sobre o
135
+ *seu* conteúdo, na *sua* ordem.
136
+
137
+ ### 4. Valide fidelidade lado a lado, com checagem objetiva
138
+
139
+ Nunca confie na memória. Coloque **referência e réplica na mesma viewport** (duas janelas, ou print da
140
+ ref ao lado do localhost) e cheque eixo por eixo, não "no geral":
141
+
142
+ - **Squint test** (aperte os olhos / desfoque 8px ambas): os blocos de peso e o ritmo claro-escuro batem?
143
+ Se a mancha geral diverge, é densidade ou hierarquia — não cor.
144
+ - **Overlay de cor:** eyedropper no mesmo tipo de elemento (bg, texto, accent) nas duas. Bate o H/S/L?
145
+ - **Régua na tipografia:** meça a razão entre H1 e corpo nas duas. Mesma razão? Mesmo tracking de
146
+ manchete?
147
+ - **Cronômetro no motion:** role as duas devagar. Mesma sensação (ágil/elástico/lento)? Entra junto ou em
148
+ stagger nas duas?
149
+
150
+ Se três dos quatro batem e o projeto ainda parece "seu" (assets e copy próprios), a clonagem da
151
+ *linguagem* foi um sucesso e a do *conteúdo* não aconteceu — exatamente o objetivo.
152
+
153
+ ## Checklist
154
+
155
+ Antes de entregar uma reaplicação de estilo, responda — qualquer "sim" da seção ÉTICA é bloqueio:
156
+
157
+ **Ética (bloqueante):**
158
+ - [ ] Algum asset da referência (foto, logo, ilustração, ícone-set, vídeo) foi baixado e usado?
159
+ - [ ] Algum texto/copy da referência foi colado em vez de reescrito com voz própria?
160
+ - [ ] A estrutura é uma cópia 1:1 da página da referência em vez de princípios reaplicados?
161
+
162
+ **Captura (todas devem ter resposta concreta, com número/nome):**
163
+ - [ ] Capturei accent **e** a temperatura dos neutros (em HSL), não só uma cor?
164
+ - [ ] Identifiquei o par de fontes real e a **razão** da escala tipográfica (não chutei "Montserrat")?
165
+ - [ ] Medi a escala de espaço e anotei os **extremos** (densidade) que a referência usa?
166
+ - [ ] Capturei raio, tipo de sombra e o **easing/duração** do motion?
167
+
168
+ **Tradução + fidelidade:**
169
+ - [ ] Cada captura virou **token nomeado por intenção**, reaplicável no conteúdo do projeto?
170
+ - [ ] Reproduzi o **tratamento** de imagem (grão/contraste/corte) em assets próprios?
171
+ - [ ] Fiz o teste **lado a lado** com squint + overlay de cor + régua tipográfica + cronômetro de motion?
172
+ - [ ] A réplica pertence à mesma família visual **e** usa conteúdo/assets inteiramente próprios?
173
+
174
+ ## Antes → depois
175
+
176
+ | Clonagem ruim (o tell) | Clonagem de craft (a linguagem) |
177
+ |---|---|
178
+ | Recriou a tela exata da referência (mesmo hero, mesmos 3 cards, mesma ordem) | Extraiu razão tipográfica, temperatura, densidade e easing como tokens e reaplicou no conteúdo do projeto |
179
+ | Pegou só o accent `#FF5A1F` e jogou no template default | Capturou accent **+** neutros quentes em HSL **+** sombra longa **+** razão 1.25 — o conjunto que dá o feeling |
180
+ | Trocou a grotesca paga por "Montserrat porque é parecido" | Escolheu substituto pela **classe e caráter** (grotesca-de-contraste), com mesmo tracking negativo na manchete |
181
+ | Manteve neutros `#888` do template sobre o accent da ref | Reproduziu a temperatura: `hsl(40 14% 94%)` de surface, off-white quente como a referência |
182
+ | Página arejada porque o template era; ref era densa | Reproduziu a **densidade** real — mesma base de 8px, mesmo ritmo de informação por tela |
183
+ | `fade-up .3s ease` em tudo de olho | Stagger com `cubic-bezier(.16,1,.3,1)` e 160ms — a curva e o tempo capturados da referência |
184
+ | Baixou a foto do hero da referência e colou | Aplicou o **tratamento** (grão + contraste lavado + corte) numa foto própria/licenciada |
185
+ | Entregou "de memória", 40% fora sem perceber | Validou lado a lado com squint + overlay + régua + cronômetro antes de entregar |
@@ -0,0 +1,183 @@
1
+ ---
2
+ id: visual-polish-review
3
+ domain: web-craft
4
+ agents: [ux-design-expert, dev]
5
+ when: "ao revisar o acabamento visual de uma UI antes de entregar"
6
+ ---
7
+
8
+ # Visual Polish Review — auditar o acabamento antes de entregar
9
+
10
+ ## O problema
11
+
12
+ Uma UI "funciona" e ainda assim parece amadora. Não é por falta de feature — é falta de
13
+ **acabamento**: hierarquia construída só com tamanho de fonte, cinza puro em tudo, sombras
14
+ opacas e chapadas, espaçamento linear sem ritmo, botão sem estado de hover, tela vazia que
15
+ parece bug. Cada um desses é um **tell** que um olho treinado reconhece em meio segundo.
16
+
17
+ Este pack é a régua que Adam Wathan e Steve Schoger (*Refactoring UI*) usam: ~10 lentes de
18
+ auditoria, cada uma com **o tell** (o que denuncia o amador) e **a correção concreta** (o valor,
19
+ a regra, o CSS). Não é "melhore a tipografia" — é "trave em 2 pesos: 400-500 pra corpo, 600-700
20
+ pra ênfase; nunca abaixo de 400 em texto pequeno". A regra-mãe: **acabamento é um sistema de
21
+ escolhas pré-definidas, não tweak avulso por elemento.**
22
+
23
+ ## O conhecimento
24
+
25
+ ### Lente 1 — Hierarquia por peso e cor, não só por tamanho
26
+
27
+ **O tell:** todo destaque é "fonte maior". Títulos `font-size: 32px`, subtítulos `24px`, e a
28
+ hierarquia inteira mora no eixo do tamanho. Resultado: telas que incham e ainda assim parecem
29
+ planas.
30
+
31
+ **A correção:** distribua a hierarquia em **três eixos** — tamanho, **peso** e **cor**.
32
+ - Para texto, dois pesos bastam: **400–500** (corpo) e **600–700** (ênfase). Evite peso
33
+ **abaixo de 400** em texto de UI — só funciona em título grande, é ilegível em corpo.
34
+ - Cor cria hierarquia **sem encolher a fonte**: escuro pro conteúdo primário, cinza pro
35
+ secundário (data, metadado), cinza mais claro pro terciário (rodapé, copyright).
36
+ - **Emphasize by de-emphasizing:** às vezes o jeito de destacar um elemento é **apagar os
37
+ vizinhos**, não empilhar mais peso no elemento. Reduza o ruído ao redor primeiro.
38
+
39
+ ### Lente 2 — Tipografia: escala, line-height inverso, baseline
40
+
41
+ **O tell:** `line-height: 1.5` em título grande (frouxo demais), tamanhos avulsos sem escala,
42
+ textos de tamanhos diferentes alinhados pelo **centro**.
43
+
44
+ **A correção:**
45
+ - **line-height e font-size são inversamente proporcionais:** ~1.5 em corpo pequeno, e
46
+ **apertado** (1.1–1.2) em display grande. Título com line-height de corpo é tell.
47
+ - Use uma **escala fixa** de tamanhos (escolha de uma lista, não digite valores arbitrários).
48
+ Defina `font-size` em **px ou rem**, não em `em` (em compõe e vira imprevisível aninhado).
49
+ - Alinhe tamanhos mistos pela **baseline** (a linha onde as letras pousam), nunca pelo centro.
50
+ - **Letter-spacing:** confie no designer da fonte na maioria dos casos; **aperte** títulos em
51
+ fontes de texto usadas grandes, e **solte** texto em ALL-CAPS.
52
+
53
+ ### Lente 3 — Medida (line length) controlada
54
+
55
+ **O tell:** parágrafo que atravessa a tela inteira; texto longo **centralizado**.
56
+
57
+ **A correção:** **45–75 caracteres por linha** (~`max-width: 20–35em` para o bloco de texto, ou
58
+ uma `measure` ~`65ch`). Centralize só headline ou bloco curto independente — **texto corrido é
59
+ left-align**, sempre.
60
+
61
+ ### Lente 4 — Cor em HSL, com cinzas que têm temperatura
62
+
63
+ **O tell:** `#808080` e amigos — cinza puro, dessaturado, frio-morto. Cor escolhida em HEX no
64
+ chute.
65
+
66
+ **A correção:** pense em **HSL** (Hue 0–360°, Saturation 0–100%, Lightness 0–100%) — é como o
67
+ olho enxerga.
68
+ - **Cinza não precisa ser cinza:** sature com **azul** pra paleta fria, com **amarelo/laranja**
69
+ pra paleta quente. Cinza com 0% de saturação é o tell.
70
+ - **Quanto mais longe de 50% de lightness, mais saturação** o tom precisa — aumente saturation
71
+ nos tons claros E escuros pra manter a temperatura constante ao longo da rampa.
72
+ - **Nunca cinza sobre fundo colorido.** O efeito "cinza sobre branco" é só **contraste
73
+ reduzido**; sobre cor, escolha um tom de **mesmo hue** e ajuste S/L até aproximar do fundo.
74
+
75
+ ### Lente 5 — Paleta como sistema, não 3 cores soltas
76
+
77
+ **O tell:** uma cor de marca, um cinza, preto e branco. Sem rampas — então todo hover/borda/
78
+ disabled é inventado na hora.
79
+
80
+ **A correção:** monte rampas com **~9 shades** (sweet spot) por cor:
81
+ - **8–10 tons de cinza** (do quase-branco ao quase-preto).
82
+ - **1–2 cores primárias**, 5–10 shades cada.
83
+ - **Accent colors** (sucesso, erro, aviso, info), 5–10 shades cada.
84
+ - Gradiente, quando usar: dois hues **a até 30° um do outro** (mais que isso fica "lama").
85
+
86
+ ### Lente 6 — Espaçamento NÃO-linear, com ritmo
87
+
88
+ **O tell:** tudo em múltiplos de 8 sem variação — `gap-8`, `py-16` em toda seção. Espaço linear
89
+ é monótono e robótico.
90
+
91
+ **A correção:** escala **não-linear** onde **nenhum par de valores fica a menos de ~25%** um do
92
+ outro. Exemplo de rampa: **4, 8, 12, 16, 24, 32, 48, 64, 96, 128**. Use os **extremos** — seção
93
+ densa (prova social) ao lado de seção arejada (manifesto) cria ritmo. Heurística de processo:
94
+ **comece com espaço demais e remova até gostar** — quase sempre falta whitespace, não sobra.
95
+
96
+ ### Lente 7 — Elevação em camadas (sombra de luz, não cinza opaco)
97
+
98
+ **O tell:** `box-shadow: 0 2px 4px #ccc` chapado em tudo; mesma sombra no botão e no modal.
99
+
100
+ **A correção:** uma **escala de ~5 sombras** mapeando elevação:
101
+ - pequena → botão/elemento levemente elevado;
102
+ - média → dropdown;
103
+ - grande → modal (precisa puxar atenção).
104
+ - Cada sombra combina **duas camadas**: luz **ambiente** (offset pequeno, blur menor, mais
105
+ escura) + luz **direta** (offset vertical maior, blur grande, difusa). Spread **negativo** dá
106
+ o efeito sutil quanto mais o objeto sobe. Ex.: `box-shadow: 0 25px 50px -12px rgba(0,0,0,.25)`.
107
+ - Cor da sombra: **preto transparente** (rgba), não cinza opaco; idealmente um tom **escuro do
108
+ próprio hue** do fundo (sombra azul-escura sob botão azul), nunca `#888` chapado.
109
+
110
+ ### Lente 8 — Separação sem borda
111
+
112
+ **O tell:** `border: 1px solid #ddd` em cada card, linha divisória em cada item. A tela vira
113
+ uma grade de gaiolas.
114
+
115
+ **A correção:** separe com **sombra, espaçamento ou cor de fundo** antes de recorrer a borda.
116
+ Dois fundos levemente diferentes, ou só mais respiro entre os blocos, separam melhor e mais
117
+ limpo que um traço. Borda fica pro caso em que sombra/espaço não bastam.
118
+
119
+ ### Lente 9 — Estados de botão completos
120
+
121
+ **O tell:** botão tem só o estado **default**. Sem hover, sem active, sem focus visível (ou o
122
+ anel azul do browser), sem disabled. Foco azul nativo é tell de "esqueci do detalhe".
123
+
124
+ **A correção:** desenhe **todos os estados**:
125
+ - **hover** — sobe de elevação (sombra um degrau acima) ou escurece/clareia um shade da rampa;
126
+ - **active/pressed** — **reduz a sombra** pra sensação de "sendo pressionado";
127
+ - **focus** — anel **desenhado** (`outline`/ring de marca), nunca o azul default;
128
+ - **disabled** — contraste reduzido e cursor coerente.
129
+ - **Hierarquia de ações na mesma tela:** primária óbvia; secundária clara mas não dominante
130
+ (fundo suave derivado da cor do texto); terciária descobrível mas discreta (link). Chevron no
131
+ link de texto reforça que é clicável.
132
+
133
+ ### Lente 10 — Empty states desenhados
134
+
135
+ **O tell:** tela vazia = página em branco, ou um texto que parece **erro** ("Nenhum dado.").
136
+ É a **primeira** interação do usuário com a feature e parece bug.
137
+
138
+ **A correção:** trate empty state como **boas-vindas**: ilustração ou imagem + uma frase com voz
139
+ + **um CTA claro** que ensina o próximo passo. Mesma régua pra 404 e estados de erro — microcopy
140
+ com personalidade é assinatura barata e forte.
141
+
142
+ ### Bônus — Imagem que não vaza
143
+
144
+ **O tell:** foto esticada (upscale), imagem de usuário com proporção quebrada, foto clara com
145
+ texto branco ilegível por cima.
146
+
147
+ **A correção:** só **reduza** imagem, nunca amplie. Controle dimensões de upload com
148
+ `background-size: cover`. Sombra sutil na imagem evita que o fundo "sangre" na borda. Texto sobre
149
+ foto: overlay (escurecer/colorir) pra garantir contraste.
150
+
151
+ ## Checklist — "isto está acabado?"
152
+
153
+ Qualquer "sim" é um item a corrigir antes de entregar:
154
+
155
+ - [ ] A hierarquia mora **só** no tamanho da fonte (sem variar peso e cor)?
156
+ - [ ] Tem peso **abaixo de 400** em texto pequeno, ou `line-height ~1.5` em título grande?
157
+ - [ ] Texto corrido passa de **75 caracteres** por linha, ou está centralizado?
158
+ - [ ] Tem **cinza puro** (`#808080`/0% saturação) ou cinza sobre fundo colorido?
159
+ - [ ] As cores são valores soltos, **sem rampas** de ~9 shades pra hover/borda/disabled?
160
+ - [ ] O espaçamento é **linear/uniforme**, sem usar os extremos da escala?
161
+ - [ ] A sombra é **cinza opaco chapado**, igual no botão e no modal?
162
+ - [ ] A separação é feita com **borda** onde sombra/espaço/fundo bastariam?
163
+ - [ ] Algum botão tem **só default** (sem hover/active/focus desenhado/disabled)?
164
+ - [ ] O foco é o **anel azul do browser** em vez de um foco de marca?
165
+ - [ ] O **empty state / 404** é página em branco ou parece mensagem de erro?
166
+
167
+ ## Tabela de decisão
168
+
169
+ | Lente | O tell | A correção concreta |
170
+ |---|---|---|
171
+ | Hierarquia | Destaque só por tamanho | 3 eixos: tamanho + peso (400-500 / 600-700) + cor; de-emphasize o entorno |
172
+ | Tipografia | line-height 1.5 em título; alinhar pelo centro | line-height inverso ao tamanho; escala fixa em px/rem; alinhar pela baseline |
173
+ | Medida | Linha atravessa a tela; texto centralizado | 45–75 caracteres (~20–35em / ~65ch); corrido é left-align |
174
+ | Cor (HSL) | `#808080`, cinza sobre fundo colorido | Sature o cinza (azul=frio, amarelo=quente); mesmo hue, ajusta S/L |
175
+ | Paleta | 3 cores soltas, sem rampa | ~9 shades por cor; 8-10 cinzas; gradiente com hues a ≤30° |
176
+ | Espaçamento | Tudo em múltiplos de 8 | Escala não-linear (≥25% entre valores: 4/8/12/16/24/32/48/64/96/128), usar extremos |
177
+ | Elevação | Sombra chapada igual em tudo | Escala de ~5; 2 camadas (ambiente+direta); rgba escuro do hue, não cinza opaco |
178
+ | Separação | Borda em todo card | Sombra, espaço ou dois fundos antes de borda |
179
+ | Botão | Só estado default | hover (sobe sombra) / active (baixa sombra) / focus de marca / disabled |
180
+ | Empty state | Página em branco ou texto de erro | Ilustração + voz + 1 CTA; mesma régua pro 404 |
181
+ | Imagem | Upscale, proporção quebrada, texto ilegível | Só reduzir; `cover`; sombra anti-bleed; overlay pro contraste |
182
+
183
+ > Fonte: *Refactoring UI* (Adam Wathan & Steve Schoger) e a palestra de Schoger no CSS Day 2019.
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "nexus-core-v3",
3
+ "version": "3.0.0",
4
+ "type": "module",
5
+ "description": "Nexus Core v3 — orquestrador de agentes de IA CLI-first (greenfield)",
6
+ "license": "MIT",
7
+ "engines": {
8
+ "node": ">=22"
9
+ },
10
+ "workspaces": [
11
+ "packages/*"
12
+ ],
13
+ "nexus": {
14
+ "packageName": "@nexus/core",
15
+ "slashPrefix": "nexus",
16
+ "agentNamespace": "nexus"
17
+ },
18
+ "scripts": {
19
+ "gen:version": "node scripts/gen-version.mjs",
20
+ "typecheck": "tsc --noEmit -p tsconfig.json",
21
+ "test": "node --import tsx --test packages/contracts/test/*.test.ts packages/config/test/*.test.ts packages/registry/test/*.test.ts packages/governance/test/*.test.ts packages/declarative/test/*.test.ts packages/runtime/test/*.test.ts packages/learning/test/*.test.ts packages/synapse/test/*.test.ts packages/hooks/test/*.test.ts packages/compose/test/*.test.ts packages/validators/test/*.test.ts packages/dist/test/*.test.ts packages/cli/test/*.test.ts packages/orchestration/test/*.test.ts packages/deliberation/test/*.test.ts packages/team/test/*.test.ts packages/squads/test/*.test.ts packages/gateway/test/*.test.ts",
22
+ "coverage": "node scripts/coverage-summary.mjs",
23
+ "validate": "node --import tsx packages/cli/src/bin.ts validate",
24
+ "ratchet": "node --import tsx scripts/ratchet-tighten.ts",
25
+ "check": "npm run gen:version && npm run typecheck && npm run test && npm run coverage && npm run validate && npm run ratchet",
26
+ "release:sign": "node --import tsx scripts/release-sign.ts",
27
+ "build:bundle": "node scripts/build-bundle.mjs",
28
+ "prepublishOnly": "npm run build:bundle"
29
+ },
30
+ "devDependencies": {
31
+ "@types/js-yaml": "^4.0.9",
32
+ "@types/node": "^22.10.0",
33
+ "esbuild": "^0.28.1",
34
+ "js-yaml": "^4.1.0",
35
+ "tsx": "^4.19.2",
36
+ "typescript": "^5.7.2",
37
+ "zod": "^3.23.8"
38
+ },
39
+ "dependencies": {},
40
+ "bin": {
41
+ "nexus": "bin/nexus.mjs"
42
+ },
43
+ "files": [
44
+ "bin",
45
+ "dist",
46
+ "agents",
47
+ "tasks",
48
+ "templates",
49
+ "checklists",
50
+ "knowledge",
51
+ "squads",
52
+ "runbooks",
53
+ "artifact-manifest.json"
54
+ ]
55
+ }
@@ -0,0 +1,36 @@
1
+ ---
2
+ id: campanha-de-conteudo
3
+ title: Campanha de conteúdo
4
+ when: produzir uma campanha de conteúdo coordenada com pesquisa, criação e revisão
5
+ ---
6
+
7
+ # Runbook — Campanha de conteúdo
8
+
9
+ **Cenário (3 linhas):** você precisa de uma campanha de conteúdo (posts, artigos, peças) coordenada,
10
+ não de textos soltos. A pesquisa guia a mensagem, a criação executa e a revisão garante que cada peça
11
+ sustenta a promessa. O squad de conteúdo (Onda 5) é a unidade natural aqui.
12
+
13
+ ## Roster (em camadas)
14
+
15
+ - **Core (sempre):** analyst (pesquisa/ângulo), pm (direção da campanha)
16
+ - **Squad de conteúdo (Onda 5):** `nexus run --squad conteudo "<missão da campanha>"` — o chief coordena
17
+ redator, growth, social e analista. Sob demanda: ux-design-expert (peças visuais).
18
+
19
+ ## Execução
20
+
21
+ 1. **Descobrir o ângulo** — `nexus run --mode micro "pesquise dores e linguagem do público <X> sobre <tema>"`
22
+ → Alex. **Gate:** `discovery-checklist` (público nomeado, dor com evidência). A mensagem parte da dor real.
23
+ 2. **Estrategizar a campanha** — `nexus run "defina a mensagem central, os canais e o calendário para <tema>"`
24
+ → Morgan. **Gate:** `pm-checklist`. Escopo e não-escopo explícitos (o que NÃO entra nesta campanha).
25
+ 3. **Produzir** — `nexus run --squad conteudo "produza as peças da campanha <tema> para os canais <lista>"`
26
+ → o squad executa. Cada peça rastreia à mensagem central (No Invention: nada fora da estratégia).
27
+ 4. **Endurecer** — revise cada peça: promessa sustentada, tom coerente, sem alegação sem base. **Gate:**
28
+ uma reality-check adaptada — evidência da mensagem, não achismo de "ficou bom".
29
+ 5. **Lançar** — publique conforme o calendário; instrumente para medir (o que não se mede não se aprende).
30
+ 6. **Operar** — `nexus metrics`/analytics do canal → o que engajou vira insumo da próxima Descoberta.
31
+
32
+ ## Sinais de que está no caminho
33
+
34
+ - Cada peça rastreia à mensagem central — nada publicado "porque ficou bonito".
35
+ - O calendário e os canais foram escolhidos, não improvisados.
36
+ - A campanha é medida; o aprendizado alimenta a próxima.
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: feature-em-projeto-existente
3
+ title: Feature em projeto existente (brownfield)
4
+ when: adicionar uma capacidade a um código que já existe e não pode quebrar
5
+ ---
6
+
7
+ # Runbook — Feature em projeto existente
8
+
9
+ **Cenário (3 linhas):** o código já roda em produção e uma feature nova precisa entrar sem regressão.
10
+ O risco aqui não é construir — é NÃO quebrar o que funciona. O time entende o terreno antes de mexer,
11
+ e o gate de qualidade guarda a porta contra regressão.
12
+
13
+ ## Roster (em camadas)
14
+
15
+ - **Core (sempre):** architect, dev, qa, devops
16
+ - **Sob demanda:** analyst (mapear o legado), data-engineer (migração), ux-design-expert (UI nova)
17
+
18
+ ## Execução
19
+
20
+ 1. **Entender o terreno** — `nexus run "mapeie a arquitetura e os pontos de integração afetados por
21
+ <feature>"` → Aria. Sem entender o que existe, "adicionar" vira "quebrar".
22
+ 2. **Estrategizar o encaixe** — `nexus run "escreva a story de <feature> apontando riscos de regressão
23
+ e ACs de não-quebra"` → Morgan/Pax. **Gate:** `story-draft-checklist`.
24
+ 3. **Estruturar a mudança** — decida migração e compatibilidade. **Gate:** `foundation-checklist`
25
+ (dados modelados, reversível). Handoff architect → dev com o spec + as fronteiras a respeitar.
26
+ 4. **Construir com rede** — `nexus run --mode sprint "implemente <feature>; NÃO altere contrato
27
+ público sem teste de compat"` → Dex. **Gate:** `story-dod-checklist` + testes de regressão.
28
+ 5. **Endurecer contra regressão** — `nexus run "revise <feature>: prove que o comportamento antigo
29
+ segue intacto (teste de regressão) e o novo funciona"` → Quinn. **Gate:** `reality-check-checklist`.
30
+ 6. **Lançar gradual** — devops sobe atrás de flag/canário, rollback ensaiado. **Gate:** `launch-checklist`.
31
+ 7. **Operar** — observe o caminho novo E o antigo; alerta configurado antes do tráfego.
32
+
33
+ ## Sinais de que está no caminho
34
+
35
+ - Todo bug "corrigido" e todo comportamento antigo têm teste de regressão guardando a porta.
36
+ - A mudança sobe reversível e gradual — nunca 100% de uma vez.
37
+ - Contratos públicos só mudam com teste de compatibilidade.
@@ -0,0 +1,38 @@
1
+ ---
2
+ id: mvp-startup
3
+ title: MVP de startup do zero
4
+ when: uma ideia nova virando o primeiro produto mínimo viável
5
+ ---
6
+
7
+ # Runbook — MVP de startup do zero
8
+
9
+ **Cenário (3 linhas):** você tem uma ideia e quer o menor produto que prova valor. O time core conduz
10
+ do problema ao lançamento, cortando escopo sem cortar qualidade. O gate de cada fase impede pular
11
+ etapa que volta a cobrar caro depois.
12
+
13
+ ## Roster (em camadas)
14
+
15
+ - **Core (sempre):** analyst, pm, po, architect, dev, qa, devops
16
+ - **Sob demanda:** ux-design-expert (se tem interface), data-engineer (se tem dados/schema)
17
+
18
+ ## Execução (fases comprimidas → comandos reais)
19
+
20
+ 1. **Descobrir** — `nexus run --mode micro "pesquise o problema X para o público Y e resuma a dor"`
21
+ → Alex entrega o brief. **Gate:** `discovery-checklist` (problema real + usuário + evidência).
22
+ 2. **Estrategizar** — `nexus run "escreva o PRD do MVP para <brief>, escopo mínimo, épicos priorizados"`
23
+ → Morgan entrega o PRD; Pax valida. **Gate:** `pm-checklist`. Handoff pm → architect.
24
+ 3. **Estruturar** — `nexus run "desenhe a arquitetura e o schema mínimos para <PRD>"`
25
+ → Aria + Dara. **Gate:** `foundation-checklist`. Handoff architect → dev (spec como contrato).
26
+ 4. **Construir** — por story: `nexus run --mode sprint "implemente a story <n> seguindo o spec"`
27
+ → Dex (Uma se houver UI). **Gate:** `story-dod-checklist` (suíte verde, ACs cobertos).
28
+ 5. **Endurecer** — `nexus run "revise a story <n>: execute, colete evidência, emita o veredito"`
29
+ → Quinn. **Gate:** `reality-check-checklist`. Reprovar 2–3× é saudável; FAIL → volta ao Dex.
30
+ 6. **Lançar** — delegue ao devops: rollback ensaiado, assinatura verificada, observabilidade de pé.
31
+ **Gate:** `launch-checklist` (só o Gage faz push/PR/release).
32
+ 7. **Operar** — acompanhe métricas (`nexus metrics`) e capture aprendizado para a próxima Descoberta.
33
+
34
+ ## Sinais de que está no caminho
35
+
36
+ - Cada AC tem teste verde e evidência (sem isso, não é MVP, é demo).
37
+ - Nenhum agente começa frio: os handoffs carregam o contexto entre fases.
38
+ - O escopo cortado está REGISTRADO como "não agora", não esquecido.
@@ -0,0 +1,37 @@
1
+ ---
2
+ id: resposta-a-incidente
3
+ title: Resposta a incidente em produção
4
+ when: algo quebrou em produção e precisa de contenção, correção e aprendizado
5
+ ---
6
+
7
+ # Runbook — Resposta a incidente
8
+
9
+ **Cenário (3 linhas):** produção quebrou. A ordem é conter primeiro, consertar a causa depois,
10
+ aprender por último — nessa sequência. Pressa que pula a evidência conserta o sintoma e deixa a causa
11
+ viva. O gate aqui é a honestidade: só declara resolvido quem PROVA que resolveu.
12
+
13
+ ## Roster (em camadas)
14
+
15
+ - **Core (sempre):** devops (comanda), qa, dev
16
+ - **Sob demanda:** architect (causa-raiz sistêmica), data-engineer (corrupção/migração de dados)
17
+
18
+ ## Execução (fases comprimidas — velocidade com método)
19
+
20
+ 1. **Conter** — devops estabiliza (rollback do último release, feature flag off, isolar o blast radius).
21
+ Rollback ensaiado do `launch-checklist` paga aqui. Contenção NÃO é correção — é parar o sangramento.
22
+ 2. **Diagnosticar** — `nexus run --mode micro "investigue a causa-raiz do incidente <descrição> a partir
23
+ de <logs/sintomas>"` → Dex/Aria. Causa-raiz, não sintoma; hipótese sem evidência não fecha.
24
+ 3. **Corrigir** — `nexus run "implemente a correção da causa-raiz + o teste que reproduzia o incidente"`
25
+ → Dex. **Regra:** o teste que reproduz o bug vem ANTES do fix (red → green).
26
+ 4. **Endurecer** — `nexus run "prove que o incidente não se repete: teste de regressão + fluxo exercitado"`
27
+ → Quinn. **Gate:** `reality-check-checklist`. "Corrigido" sem regressão é hipótese.
28
+ 5. **Lançar a correção** — devops sobe com observabilidade reforçada no ponto que falhou. **Gate:**
29
+ `launch-checklist`.
30
+ 6. **Aprender (post-mortem sem culpa)** — registre causa, linha do tempo e a ação que evita a reincidência;
31
+ alimente a próxima Descoberta. Incidente sem aprendizado capturado volta.
32
+
33
+ ## Sinais de que está no caminho
34
+
35
+ - A contenção veio antes da correção; ninguém "consertou" com produção ainda sangrando.
36
+ - A correção tem o teste que reproduzia o incidente (red-first), não só o "ajuste".
37
+ - O post-mortem foca no sistema, não em culpados — e vira ação concreta.
@@ -0,0 +1,48 @@
1
+ ---
2
+ id: editor-chefe
3
+ name: Élio
4
+ title: Editor-Chefe de Conteúdo Técnico
5
+ icon: 🗞️
6
+ archetype: Orchestrator
7
+ lens: coerência editorial — a pauta certa, na profundidade certa, para o leitor certo
8
+ whenToUse: orquestrar a produção de um artigo técnico (pauta → pesquisa → rascunho → revisão → publicação)
9
+ authority: editor-chefe
10
+ model: opus
11
+ owns:
12
+ - planejar-pauta
13
+ - revisar-artigo
14
+ delegatesTo:
15
+ - { agent: pesquisador, when: "levantar fontes, dados e estado da arte do tema" }
16
+ - { agent: redator, when: "transformar pesquisa + pauta em rascunho de artigo" }
17
+ - { agent: devops, when: "git push do artigo aprovado — SEMPRE via devops, sem exceção" }
18
+ ---
19
+
20
+ # Élio — Editor-Chefe de Conteúdo Técnico
21
+
22
+ ## Identidade
23
+
24
+ Eu sou o Élio, o chefe deste squad de conteúdo. Eu não escrevo o artigo — eu garanto que o artigo
25
+ certo seja escrito. Defino a pauta com ângulo e leitor-alvo explícitos, despacho a pesquisa para o
26
+ Pio, o rascunho para a Rita, e reviso o resultado contra a pauta original antes de qualquer
27
+ publicação. Artigo sem tese não sai da minha mesa.
28
+
29
+ ## Princípios inegociáveis
30
+
31
+ - **Pauta antes de prosa.** Nenhuma palavra é escrita antes de a pauta declarar tese, leitor-alvo
32
+ e o que o leitor sai sabendo. Texto sem pauta é divagação com formatação.
33
+ - **Cada afirmação tem fonte.** O que a pesquisa não sustenta, o artigo não afirma. Eu devolvo o
34
+ rascunho em vez de publicar achismo.
35
+ - **Eu orquestro, não executo.** Pesquisa é do Pio, prosa é da Rita, push é do devops do time core.
36
+ Meu trabalho é a decisão editorial e o veredito final.
37
+
38
+ ## Como eu trabalho (método)
39
+
40
+ 1. **Defino a pauta** — tese, leitor-alvo e o que o leitor sai sabendo, explícitos antes de tudo.
41
+ 2. **Despacho** a pesquisa ao Pio e, com o dossiê pronto, o rascunho à Rita.
42
+ 3. **Reviso contra a pauta** — o artigo entregou a tese para o leitor certo, com cada afirmação sustentada?
43
+ 4. **Decido a publicação** — aprovo e encaminho o push ao devops, ou devolvo com o que falta.
44
+
45
+ ## Voz
46
+
47
+ - **greeting:** `🗞️ Élio — editor-chefe. Qual é a tese e para quem?`
48
+ - **closing:** `— Élio, editor-chefe de conteúdo 🗞️`