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.
- package/LICENSE +21 -0
- package/README.md +134 -0
- package/agents/README.md +133 -0
- package/agents/_protocol.md +107 -0
- package/agents/analyst.md +138 -0
- package/agents/architect.md +146 -0
- package/agents/data-engineer.md +170 -0
- package/agents/dev.md +134 -0
- package/agents/devops.md +141 -0
- package/agents/nexus-master.md +147 -0
- package/agents/pm.md +133 -0
- package/agents/po.md +138 -0
- package/agents/qa.md +192 -0
- package/agents/sm.md +122 -0
- package/agents/squad-creator.md +121 -0
- package/agents/ux-design-expert.md +165 -0
- package/artifact-manifest.json +903 -0
- package/bin/nexus.mjs +37 -0
- package/checklists/README.md +49 -0
- package/checklists/architect-checklist.md +47 -0
- package/checklists/change-checklist.md +61 -0
- package/checklists/db-predeploy-checklist.md +57 -0
- package/checklists/design-quality-checklist.md +57 -0
- package/checklists/discovery-checklist.md +36 -0
- package/checklists/foundation-checklist.md +39 -0
- package/checklists/launch-checklist.md +39 -0
- package/checklists/pm-checklist.md +48 -0
- package/checklists/po-master-checklist.md +64 -0
- package/checklists/reality-check-checklist.md +49 -0
- package/checklists/story-dod-checklist.md +52 -0
- package/checklists/story-draft-checklist.md +36 -0
- package/dist/bin/dashboard.html +279 -0
- package/dist/bin/nexus.mjs +20008 -0
- package/dist/constitution.yaml +76 -0
- package/knowledge/README.md +57 -0
- package/knowledge/architecture/architectural-styles-map.md +182 -0
- package/knowledge/architecture/design-patterns-gof.md +192 -0
- package/knowledge/architecture/distributed-patterns-cheatsheet.md +201 -0
- package/knowledge/architecture/saas-subscription-blueprint.md +355 -0
- package/knowledge/architecture/system-design-tradeoffs.md +231 -0
- package/knowledge/architecture/t3-fullstack-typesafe-stack.md +273 -0
- package/knowledge/copy/landing-copy-that-converts.md +168 -0
- package/knowledge/data/postgres-indexing-and-tuning.md +263 -0
- package/knowledge/data/schema-modeling-decisions.md +273 -0
- package/knowledge/data/supabase-rls-patterns.md +316 -0
- package/knowledge/data/zero-downtime-migrations.md +308 -0
- package/knowledge/devops/cicd-pipeline-best-practices.md +318 -0
- package/knowledge/devops/production-dockerfile.md +283 -0
- package/knowledge/devops/twelve-factor-app.md +398 -0
- package/knowledge/engineering/clean-code-principles.md +429 -0
- package/knowledge/engineering/effective-code-review.md +204 -0
- package/knowledge/engineering/testing-strategy-beyond-unit.md +307 -0
- package/knowledge/governance/risk-matrix.md +56 -0
- package/knowledge/integration/mcp-server-selection-matrix.md +235 -0
- package/knowledge/marketing/copy-que-converte.md +43 -0
- package/knowledge/marketing/funil-e-jornada.md +36 -0
- package/knowledge/negocios/proposta-vencedora.md +38 -0
- package/knowledge/negocios/roi-e-unit-economics.md +46 -0
- package/knowledge/pipeline/1-descobrir.md +26 -0
- package/knowledge/pipeline/2-estrategizar.md +26 -0
- package/knowledge/pipeline/3-estruturar.md +27 -0
- package/knowledge/pipeline/4-construir.md +27 -0
- package/knowledge/pipeline/5-endurecer.md +28 -0
- package/knowledge/pipeline/6-lancar.md +27 -0
- package/knowledge/pipeline/7-operar.md +27 -0
- package/knowledge/security/lgpd-conformidade-basica.md +35 -0
- package/knowledge/security/owasp-secure-coding-gates.md +220 -0
- package/knowledge/security/owasp-top10-threat-assessment.md +287 -0
- package/knowledge/security/threat-modeling-stride.md +34 -0
- package/knowledge/web-craft/a11y-audit-checklist.md +251 -0
- package/knowledge/web-craft/accessible-component-patterns.md +383 -0
- package/knowledge/web-craft/anti-ai-look.md +114 -0
- package/knowledge/web-craft/design-system-from-code.md +195 -0
- package/knowledge/web-craft/intrinsic-css-layout.md +420 -0
- package/knowledge/web-craft/style-cloning.md +185 -0
- package/knowledge/web-craft/visual-polish-review.md +183 -0
- package/package.json +55 -0
- package/runbooks/campanha-de-conteudo.md +36 -0
- package/runbooks/feature-em-projeto-existente.md +37 -0
- package/runbooks/mvp-startup.md +38 -0
- package/runbooks/resposta-a-incidente.md +37 -0
- package/squads/exemplo-conteudo/agents/editor-chefe.md +48 -0
- package/squads/exemplo-conteudo/agents/pesquisador.md +44 -0
- package/squads/exemplo-conteudo/agents/redator.md +45 -0
- package/squads/exemplo-conteudo/knowledge/estilo-editorial.md +21 -0
- package/squads/exemplo-conteudo/squad.yaml +19 -0
- package/squads/exemplo-conteudo/tasks/pesquisar-fontes.md +26 -0
- package/squads/exemplo-conteudo/tasks/planejar-pauta.md +27 -0
- package/squads/exemplo-conteudo/tasks/redigir-artigo.md +26 -0
- package/squads/exemplo-conteudo/tasks/revisar-artigo.md +27 -0
- package/squads/marketing/agents/analista.md +56 -0
- package/squads/marketing/agents/chefe-marketing.md +65 -0
- package/squads/marketing/agents/conteudo.md +55 -0
- package/squads/marketing/agents/copy.md +55 -0
- package/squads/marketing/agents/growth.md +56 -0
- package/squads/marketing/agents/social.md +55 -0
- package/squads/marketing/squad.yaml +17 -0
- package/squads/marketing/tasks/aprovar-campanha.md +43 -0
- package/squads/negocios/agents/chefe-negocios.md +65 -0
- package/squads/negocios/agents/financas-roi.md +55 -0
- package/squads/negocios/agents/suporte.md +55 -0
- package/squads/negocios/agents/vendas-proposta.md +56 -0
- package/squads/negocios/squad.yaml +17 -0
- package/squads/negocios/tasks/aprovar-proposta.md +40 -0
- package/squads/security/agents/appsec-reviewer.md +59 -0
- package/squads/security/agents/chefe-seguranca.md +65 -0
- package/squads/security/agents/compliance-auditor.md +60 -0
- package/squads/security/agents/threat-modeler.md +60 -0
- package/squads/security/squad.yaml +20 -0
- package/squads/security/tasks/aprovar-gate-seguranca.md +42 -0
- package/squads/security/tasks/emitir-parecer-conformidade.md +42 -0
- package/tasks/README.md +72 -0
- package/tasks/accessibility-wcag-checklist.md +69 -0
- package/tasks/advanced-elicitation.md +42 -0
- package/tasks/analyze-performance.md +54 -0
- package/tasks/analyze-project-structure.md +59 -0
- package/tasks/apply-qa-fixes.md +57 -0
- package/tasks/architect-analyze-impact.md +62 -0
- package/tasks/archive-squad.md +52 -0
- package/tasks/audit-codebase.md +53 -0
- package/tasks/build-component.md +61 -0
- package/tasks/calculate-roi.md +63 -0
- package/tasks/ci-cd-configuration.md +51 -0
- package/tasks/collect-visual-evidence.md +62 -0
- package/tasks/compose-molecule.md +57 -0
- package/tasks/consolidate-patterns.md +54 -0
- package/tasks/create-brownfield-prd.md +54 -0
- package/tasks/create-competitor-analysis.md +42 -0
- package/tasks/create-deep-research-prompt.md +62 -0
- package/tasks/create-doc.md +62 -0
- package/tasks/create-epic.md +49 -0
- package/tasks/create-front-end-spec.md +56 -0
- package/tasks/create-migration-plan.md +57 -0
- package/tasks/create-next-story.md +66 -0
- package/tasks/create-prd.md +53 -0
- package/tasks/create-project-brief.md +47 -0
- package/tasks/create-rls-policies.md +59 -0
- package/tasks/create-schema.md +57 -0
- package/tasks/create-service.md +55 -0
- package/tasks/create-squad.md +100 -0
- package/tasks/create-suite.md +62 -0
- package/tasks/db-apply-migration.md +56 -0
- package/tasks/db-domain-modeling.md +57 -0
- package/tasks/db-dry-run.md +50 -0
- package/tasks/db-env-check.md +57 -0
- package/tasks/db-load-csv.md +54 -0
- package/tasks/db-policy-apply.md +58 -0
- package/tasks/db-rollback.md +51 -0
- package/tasks/db-run-sql.md +61 -0
- package/tasks/db-seed.md +52 -0
- package/tasks/db-smoke-test.md +51 -0
- package/tasks/db-snapshot.md +48 -0
- package/tasks/db-verify-order.md +49 -0
- package/tasks/deliberate.md +46 -0
- package/tasks/design-indexes.md +59 -0
- package/tasks/dev-develop-story.md +61 -0
- package/tasks/document-project.md +59 -0
- package/tasks/execute-checklist.md +57 -0
- package/tasks/execute-epic-plan.md +52 -0
- package/tasks/execute-subtask.md +51 -0
- package/tasks/extend-pattern.md +63 -0
- package/tasks/extend-squad.md +60 -0
- package/tasks/extract-patterns.md +64 -0
- package/tasks/extract-tokens.md +59 -0
- package/tasks/facilitate-brainstorming-session.md +42 -0
- package/tasks/generate-ai-frontend-prompt.md +57 -0
- package/tasks/generate-documentation.md +60 -0
- package/tasks/generate-migration-strategy.md +57 -0
- package/tasks/generate-shock-report.md +56 -0
- package/tasks/mcp-management.md +66 -0
- package/tasks/orchestrate.md +50 -0
- package/tasks/perform-market-research.md +42 -0
- package/tasks/plan-create-context.md +57 -0
- package/tasks/plan-create-implementation.md +58 -0
- package/tasks/po-close-story.md +60 -0
- package/tasks/po-manage-story-backlog.md +59 -0
- package/tasks/po-pull-story.md +60 -0
- package/tasks/po-sync-story.md +59 -0
- package/tasks/pr-automation.md +50 -0
- package/tasks/pre-push-quality-gate.md +54 -0
- package/tasks/push.md +53 -0
- package/tasks/qa-browser-console-check.md +52 -0
- package/tasks/qa-create-fix-request.md +58 -0
- package/tasks/qa-evidence-requirements.md +55 -0
- package/tasks/qa-false-positive-detection.md +55 -0
- package/tasks/qa-fix-issues.md +55 -0
- package/tasks/qa-gate.md +53 -0
- package/tasks/qa-migration-validation.md +58 -0
- package/tasks/qa-nfr-assess.md +45 -0
- package/tasks/qa-review-story.md +56 -0
- package/tasks/qa-risk-profile.md +45 -0
- package/tasks/qa-security-checklist.md +64 -0
- package/tasks/qa-test-design.md +47 -0
- package/tasks/qa-trace-requirements.md +48 -0
- package/tasks/release-management.md +53 -0
- package/tasks/repository-cleanup.md +61 -0
- package/tasks/route.md +44 -0
- package/tasks/run-tests.md +50 -0
- package/tasks/security-audit.md +54 -0
- package/tasks/setup-database.md +60 -0
- package/tasks/setup-design-system.md +60 -0
- package/tasks/shard-doc.md +60 -0
- package/tasks/spec-assess-complexity.md +55 -0
- package/tasks/spec-critique.md +64 -0
- package/tasks/spec-gather-requirements.md +48 -0
- package/tasks/spec-research-dependencies.md +42 -0
- package/tasks/spec-write-spec.md +50 -0
- package/tasks/test-as-user.md +52 -0
- package/tasks/ux-create-wireframe.md +54 -0
- package/tasks/ux-user-research.md +55 -0
- package/tasks/validate-next-story.md +61 -0
- package/tasks/validate-squad.md +55 -0
- package/tasks/verify-subtask.md +52 -0
- package/tasks/version-management.md +45 -0
- package/templates/README.md +47 -0
- package/templates/architecture-tmpl.md +115 -0
- package/templates/competitor-analysis-tmpl.md +87 -0
- package/templates/epic-tmpl.md +83 -0
- package/templates/front-end-spec-tmpl.md +110 -0
- package/templates/market-research-tmpl.md +98 -0
- package/templates/migration-plan-tmpl.md +92 -0
- package/templates/prd-tmpl.md +95 -0
- package/templates/project-brief-tmpl.md +100 -0
- package/templates/qa-verdict-tmpl.md +73 -0
- package/templates/rls-policies-tmpl.md +93 -0
- package/templates/schema-design-tmpl.md +107 -0
- package/templates/spec-tmpl.md +88 -0
- package/templates/squad/agent-dna-tmpl.md +72 -0
- package/templates/squad/chief-dna-tmpl.md +98 -0
- package/templates/squad/squad-task-tmpl.md +50 -0
- package/templates/squad/squad-yaml-tmpl.md +47 -0
- package/templates/story-tmpl.md +63 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: generate-documentation
|
|
3
|
+
agent: ux-design-expert
|
|
4
|
+
title: Gerar a documentação da pattern library
|
|
5
|
+
inputs: [design-system, componentes, tokens]
|
|
6
|
+
outputs: [pattern library documentada, índice navegável, File List atualizada]
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Gerar a documentação da pattern library
|
|
12
|
+
|
|
13
|
+
**Objetivo:** transformar o design system construído (tokens, átomos, moléculas, organismos) em uma
|
|
14
|
+
pattern library documentada e navegável — cada componente com uso, anatomia, variantes e regras de a11y.
|
|
15
|
+
|
|
16
|
+
**Pré-condições:**
|
|
17
|
+
- O design system existe (`*setup` rodou) e há ao menos um componente construído. Se não há nada
|
|
18
|
+
construído, **pare** — não documento o vazio.
|
|
19
|
+
- Os componentes a documentar estão em produção e passaram no checklist de qualidade (testes + a11y).
|
|
20
|
+
Documento o que está pronto, não o rascunho.
|
|
21
|
+
|
|
22
|
+
## Passos
|
|
23
|
+
|
|
24
|
+
1. **Inventario o que existe** no design system: tokens, átomos, moléculas, organismos. Cada um vira
|
|
25
|
+
uma entrada na pattern library. Cruzo com a story/spec para garantir que documento só o real.
|
|
26
|
+
2. **Documento os design tokens primeiro** — a fundação: cor, tipografia, espaçamento, raio. Mostro o
|
|
27
|
+
nome do token, o valor e onde se aplica. Tokens são o vocabulário; vêm antes dos componentes.
|
|
28
|
+
3. **Para cada componente, escrevo a ficha:**
|
|
29
|
+
a. **anatomia** — partes e props do componente;
|
|
30
|
+
b. **variantes** — cada variante com exemplo visual/código e o token que a alimenta;
|
|
31
|
+
c. **quando usar / quando não usar** — a regra que evita uso errado;
|
|
32
|
+
d. **a11y** — comportamento de foco, teclado, semântica e contraste garantido.
|
|
33
|
+
4. **Puxo os exemplos do código real**, não invento snippet. Cada exemplo reflete o componente como
|
|
34
|
+
ele existe — doc que diverge do código é pior que nenhuma doc.
|
|
35
|
+
5. **Monto o índice navegável** organizado por nível Atomic (tokens → átomos → moléculas → organismos),
|
|
36
|
+
com links cruzados (uma molécula referencia os átomos que a compõem).
|
|
37
|
+
6. **Verifico a cobertura:** todo componente em produção tem ficha; nenhuma ficha referencia componente
|
|
38
|
+
inexistente. Sinalizo lacunas em vez de inventar.
|
|
39
|
+
7. **Salvo a pattern library** no destino do design system, **atualizo a File List** da story e faço
|
|
40
|
+
**commit local** (conventional commit com o id da story). **Nunca** `git push` — delego a publicação
|
|
41
|
+
(ex.: deploy do site da pattern library) ao @devops.
|
|
42
|
+
|
|
43
|
+
## Critério de pronto (DoD)
|
|
44
|
+
|
|
45
|
+
- [ ] Todos os tokens documentados (nome, valor, aplicação)
|
|
46
|
+
- [ ] Todo componente em produção tem ficha: anatomia, variantes, uso/não-uso, a11y
|
|
47
|
+
- [ ] Exemplos puxados do código real — nenhum snippet inventado
|
|
48
|
+
- [ ] Índice navegável por nível Atomic, com links cruzados
|
|
49
|
+
- [ ] Nenhuma ficha referencia componente inexistente
|
|
50
|
+
- [ ] File List atualizada e commit local feito (sem `git push`)
|
|
51
|
+
|
|
52
|
+
## Falha / recuperação
|
|
53
|
+
|
|
54
|
+
- **Um componente não passou no checklist de qualidade (a11y/testes)** → não documento como "pronto";
|
|
55
|
+
marco como pendente e sinalizo, ou aguardo ele ficar pronto.
|
|
56
|
+
- **A doc diverge do código** (exemplo desatualizado) → corrijo a doc para refletir o código; nunca o
|
|
57
|
+
contrário sem story.
|
|
58
|
+
- **Encontro componente sem story/spec por trás** → sinalizo como dívida de rastreabilidade em vez de
|
|
59
|
+
legitimar via doc.
|
|
60
|
+
- **Publicação/deploy do site da pattern library** → delego ao @devops; eu gero a doc, ele sobe.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: generate-migration-strategy
|
|
3
|
+
agent: ux-design-expert
|
|
4
|
+
title: Gerar estratégia de migração em fases para o design system
|
|
5
|
+
inputs: [shock report, padrões consolidados, design tokens]
|
|
6
|
+
outputs: [estratégia de migração faseada, 'docs/stories/{story}/migration-strategy.md']
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Gerar estratégia de migração em fases para o design system
|
|
12
|
+
|
|
13
|
+
**Objetivo:** transformar o caos medido e os tokens extraídos num plano de migração em fases — qual
|
|
14
|
+
componente migra antes, com que risco, em que ordem — para que a app adote o design system sem
|
|
15
|
+
parar de funcionar. Comece simples, refine com feedback.
|
|
16
|
+
|
|
17
|
+
**Pré-condições:**
|
|
18
|
+
- O shock report (`generate-shock-report`) já mostrou o estrago e o ROI por cluster. Sem ele,
|
|
19
|
+
**pare**: migração sem prioridade medida é chute.
|
|
20
|
+
- Os design tokens (`extract-tokens`) e o mapeamento valor antigo → token já existem — é o que a
|
|
21
|
+
migração vai aplicar. Sem isso, falta o destino.
|
|
22
|
+
- Existe story/spec que pede a migração. Sem rastro, elicito o escopo — não invento fases.
|
|
23
|
+
|
|
24
|
+
## Passos
|
|
25
|
+
|
|
26
|
+
1. **Listo os clusters a migrar** a partir do shock report, com volume de ocorrências e impacto
|
|
27
|
+
(quantas telas/áreas cada um toca).
|
|
28
|
+
2. **Priorizo por valor × risco.** Alto volume + baixo risco primeiro (vitória rápida, prova o
|
|
29
|
+
modelo); alto risco/alta criticidade depois, com mais cuidado. Cada fase entrega valor sozinha.
|
|
30
|
+
3. **Defino as fases** — tipicamente:
|
|
31
|
+
- **Fase 0 — fundação:** tokens cabeados, design system inicializado (já feito), sem trocar telas.
|
|
32
|
+
- **Fase 1 — átomos de alto volume e baixo risco** (ex.: botão, input) com strangler: novo
|
|
33
|
+
componente convive com o antigo até substituir.
|
|
34
|
+
- **Fase N — moléculas/organismos e áreas críticas**, uma por vez, com validação.
|
|
35
|
+
4. **Para cada fase, especifico:** componentes alvo, mapeamento antigo → token/componente, critério
|
|
36
|
+
de pronto, plano de rollback (como voltar se quebrar) e o gate de validação (@qa) e a11y.
|
|
37
|
+
5. **Marco os pontos de feedback.** Após cada fase, medir uso real e acessibilidade antes de seguir
|
|
38
|
+
— a próxima fase só começa com a anterior validada.
|
|
39
|
+
6. **Defino fronteiras de autoridade no plano:** o que é design/construção do sistema (meu + build),
|
|
40
|
+
o que é integração na app (@dev), validação (@qa), e que toda subida é do @devops.
|
|
41
|
+
7. **Escrevo** `docs/stories/{story}/migration-strategy.md`, rastreando cada fase à story/spec e ao
|
|
42
|
+
cluster do shock report. Registro na File List.
|
|
43
|
+
|
|
44
|
+
## Critério de pronto (DoD)
|
|
45
|
+
|
|
46
|
+
- [ ] Clusters priorizados por valor × risco, com volume e impacto explícitos
|
|
47
|
+
- [ ] Fases definidas, cada uma entregando valor sozinha e com strangler onde aplicável
|
|
48
|
+
- [ ] Cada fase tem alvo, mapeamento antigo → token/componente, critério de pronto, rollback e gate
|
|
49
|
+
- [ ] Pontos de feedback/validação (uso + a11y) entre fases marcados
|
|
50
|
+
- [ ] Fronteiras de autoridade explícitas (dev integra, qa valida, devops sobe); rastro à story
|
|
51
|
+
|
|
52
|
+
## Falha / recuperação
|
|
53
|
+
|
|
54
|
+
- **Shock report ou tokens ausentes** → HALT; não planejo migração sem o caos medido e o destino.
|
|
55
|
+
- **Uma fase não tem rollback viável** → não a aprovo; quebro em passos menores até haver caminho de
|
|
56
|
+
volta seguro.
|
|
57
|
+
- **Escopo cresce além da story** → paro e devolvo ao @sm/@po; não invento fases fora do rastro.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: generate-shock-report
|
|
3
|
+
agent: ux-design-expert
|
|
4
|
+
title: Gerar o shock report — o caos de UI lado a lado com o ROI
|
|
5
|
+
inputs: [auditoria de codebase, padrões consolidados]
|
|
6
|
+
outputs: [relatório HTML do caos visual + ROI, 'docs/stories/{story}/shock-report.html']
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Gerar o shock report — o caos de UI lado a lado com o ROI
|
|
12
|
+
|
|
13
|
+
**Objetivo:** transformar a redundância medida na auditoria num relatório HTML que mostra o caos
|
|
14
|
+
visual lado a lado (os 47 botões diferentes), com o número que prova o estrago e o ROI da
|
|
15
|
+
consolidação — para mover a decisão com dado, não com opinião.
|
|
16
|
+
|
|
17
|
+
**Pré-condições:**
|
|
18
|
+
- A auditoria (`audit-codebase`) já rodou e existe o inventário de padrões redundantes. Sem ele,
|
|
19
|
+
**pare**: shock report sem medição é opinião disfarçada de relatório.
|
|
20
|
+
- A consolidação (`consolidate-patterns`) já agrupou os padrões similares, com a contagem de
|
|
21
|
+
ocorrências por cluster. Se faltar, rode `consolidate` antes.
|
|
22
|
+
- Existe uma story/spec que pede a consolidação. Sem rastro, eu elicito o escopo — não invento.
|
|
23
|
+
|
|
24
|
+
## Passos
|
|
25
|
+
|
|
26
|
+
1. **Carrego o inventário e os clusters** da auditoria/consolidação: total de variantes por tipo de
|
|
27
|
+
componente (botões, inputs, cards…), e quantas se reduzem a quantas após o clustering.
|
|
28
|
+
2. **Calculo a redução por tipo** — variantes antes → variantes depois, e o percentual (ex.: 47 →
|
|
29
|
+
3, 93,6% de redução). Esse é o número que abre o relatório.
|
|
30
|
+
3. **Monto o lado a lado visual.** Cada cluster vira uma faixa do HTML: as variantes redundantes
|
|
31
|
+
renderizadas juntas (o caos) e a variante consolidada proposta (o destino). O olho tem que ver a
|
|
32
|
+
divergência, não só ler o número.
|
|
33
|
+
4. **Puxo o ROI da task `calculate-roi`.** Não invento a economia: peço/uso o output de
|
|
34
|
+
`calculate-roi` (horas de manutenção evitadas, custo/ano). Se ele não existe, sinalizo que o ROI
|
|
35
|
+
é estimativa pendente — não chuto valor financeiro.
|
|
36
|
+
5. **Renderizo o HTML** auto-contido (estilos inline, sem dependência externa para abrir no
|
|
37
|
+
browser), com: headline da redução, faixas lado a lado por cluster, tabela de ROI e rastro à
|
|
38
|
+
story/spec de origem.
|
|
39
|
+
6. **Salvo em** `docs/stories/{story}/shock-report.html` e registro o arquivo na File List da story.
|
|
40
|
+
7. **Roteio.** Relatório pronto vira insumo da decisão de migração (`generate-migration-strategy`).
|
|
41
|
+
Se precisar publicar/hospedar o HTML em algum lugar, **delego ao @devops** — eu não subo nada.
|
|
42
|
+
|
|
43
|
+
## Critério de pronto (DoD)
|
|
44
|
+
|
|
45
|
+
- [ ] Cada cluster aparece com contagem antes → depois e percentual de redução
|
|
46
|
+
- [ ] O lado a lado visual renderiza o caos e o destino, abre no browser sem dependência externa
|
|
47
|
+
- [ ] O ROI vem de `calculate-roi` (ou está marcado explicitamente como estimativa pendente)
|
|
48
|
+
- [ ] O relatório rastreia à story/spec de origem; arquivo na File List
|
|
49
|
+
- [ ] Nada foi publicado por mim (subida é do @devops)
|
|
50
|
+
|
|
51
|
+
## Falha / recuperação
|
|
52
|
+
|
|
53
|
+
- **Inventário ou clusters ausentes** → HALT; rodo `audit` / `consolidate` antes, não gero relatório
|
|
54
|
+
com dado faltando.
|
|
55
|
+
- **ROI sem base** → não invento número financeiro; marco como pendente e sigo com a parte visual.
|
|
56
|
+
- **A story que justifica a consolidação não existe** → paro e devolvo ao @sm/@po para criar o rastro.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: mcp-management
|
|
3
|
+
agent: devops
|
|
4
|
+
title: Gerenciar servidores MCP — buscar, adicionar, listar, remover
|
|
5
|
+
inputs: [operação MCP, nome/servidor]
|
|
6
|
+
outputs: [catálogo MCP atualizado, lista de MCPs e tools, relatório da operação]
|
|
7
|
+
elicit: true
|
|
8
|
+
modes: [interactive]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Gerenciar servidores MCP — buscar, adicionar, listar, remover
|
|
12
|
+
|
|
13
|
+
**Objetivo:** operar a infraestrutura de MCP (buscar no catálogo, adicionar, listar e remover
|
|
14
|
+
servidores) de forma centralizada e segura — eu, @devops, sou o **único** agente autorizado a
|
|
15
|
+
configurar MCP; os demais são consumidores.
|
|
16
|
+
|
|
17
|
+
**Pré-condições:**
|
|
18
|
+
- A operação foi pedida ou delegada a mim (@devops). Se outro agente precisa de um MCP, ele **delega**
|
|
19
|
+
aqui — não configura por conta própria.
|
|
20
|
+
- O runtime de MCP (Docker MCP Toolkit) está disponível. Se não estiver, **pare** e reporte que a
|
|
21
|
+
infraestrutura precisa ser provisionada antes.
|
|
22
|
+
|
|
23
|
+
## Passos
|
|
24
|
+
|
|
25
|
+
1. **Identifico a operação** pedida: `*search-mcp`, `*add-mcp`, `*list-mcps` ou `*remove-mcp`. Cada
|
|
26
|
+
uma rastreia a uma necessidade concreta de uma story/objetivo — não adiciono MCP "por garantia".
|
|
27
|
+
2. **Buscar (`*search-mcp`):** consulto o catálogo do Docker MCP Toolkit pelo termo. Apresento os
|
|
28
|
+
candidatos (nome, propósito, tools que expõe) para o usuário escolher. Operação somente-leitura.
|
|
29
|
+
3. **Listar (`*list-mcps`):** mostro os servidores MCP habilitados e as tools de cada um, sinalizando
|
|
30
|
+
quais exigem credencial. Somente-leitura.
|
|
31
|
+
4. **Adicionar (`*add-mcp`):**
|
|
32
|
+
a. confirmo qual servidor e por quê (rastreia ao objetivo);
|
|
33
|
+
b. **PONTO DE ELICITAÇÃO** — se o servidor exige credencial (token/API key), **peço o segredo ao
|
|
34
|
+
usuário**; **nunca** invento, codifico em claro num arquivo versionado, nem deixo vazar para a
|
|
35
|
+
`main`. Segredo entra pela via de configuração segura do runtime;
|
|
36
|
+
c. habilito o servidor no Docker MCP Toolkit e **valido** com um list/health-check de que as tools
|
|
37
|
+
respondem (não ficam como "prompts" pendentes de auth).
|
|
38
|
+
5. **Remover (`*remove-mcp`):**
|
|
39
|
+
a. **PONTO DE ELICITAÇÃO** — confirmo com o usuário, pois remover MCP pode quebrar agentes que o
|
|
40
|
+
consomem;
|
|
41
|
+
b. desabilito o servidor no toolkit e verifico que saiu da lista.
|
|
42
|
+
6. **Varro segredos.** Qualquer credencial manipulada na operação não pode terminar num diff
|
|
43
|
+
versionado. Se a configuração tocou arquivo rastreado, confirmo que nenhum segredo ficou em claro
|
|
44
|
+
antes de qualquer subida — e subida de remoto, se houver, é **exclusiva minha** (@devops).
|
|
45
|
+
7. **Reporto.** Resultado da operação, MCPs ativos resultantes e, em add/remove, o caminho de
|
|
46
|
+
reversão (re-habilitar/re-remover).
|
|
47
|
+
|
|
48
|
+
## Critério de pronto (DoD)
|
|
49
|
+
|
|
50
|
+
- [ ] A operação correta foi identificada e rastreia a um objetivo real
|
|
51
|
+
- [ ] Add/remove confirmados pelo usuário no ponto de elicitação
|
|
52
|
+
- [ ] Credenciais tratadas pela via segura — nenhum segredo em claro ou em diff versionado
|
|
53
|
+
- [ ] MCP adicionado validado (tools respondem) ou removido confirmado (saiu da lista)
|
|
54
|
+
- [ ] Relatório entregue com o estado final e o caminho de rollback
|
|
55
|
+
|
|
56
|
+
## Falha / recuperação
|
|
57
|
+
|
|
58
|
+
- **Servidor MCP adicionado fica como "prompts" em vez de "tools"** → a autenticação não passou;
|
|
59
|
+
reviso a credencial pela via segura do runtime e re-valido. Não dou por concluído um MCP que não
|
|
60
|
+
responde tools.
|
|
61
|
+
- **Remoção quebra um agente consumidor** → re-habilito o servidor e reporto o impacto antes de
|
|
62
|
+
insistir na remoção.
|
|
63
|
+
- **Outro agente tentou configurar MCP** → bloqueio e assumo a operação; configuração de MCP é
|
|
64
|
+
exclusiva do @devops.
|
|
65
|
+
- **Runtime de MCP indisponível** → HALT, reporto que a infraestrutura precisa ser provisionada antes
|
|
66
|
+
de qualquer operação de MCP.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: orchestrate
|
|
3
|
+
agent: nexus-master
|
|
4
|
+
title: Orquestrar — decompor e delegar a N sub-agentes
|
|
5
|
+
inputs: [objetivo]
|
|
6
|
+
outputs: [árvore de entregas, resultado costurado]
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Orquestrar — decompor e delegar a N sub-agentes
|
|
12
|
+
|
|
13
|
+
**Objetivo:** transformar um objetivo de construção em entregas reais, delegando frentes
|
|
14
|
+
independentes a sub-agentes que executam em paralelo — via o motor (`nexus run`).
|
|
15
|
+
|
|
16
|
+
**Pré-condições:**
|
|
17
|
+
- O objetivo é **construção** (executar), não decisão. Se for uma decisão dura com trade-off real,
|
|
18
|
+
use a task `deliberate` (party-mode), não esta.
|
|
19
|
+
- O objetivo rastreia a um pedido/story/spec. Sem isso, elicito o escopo — não invento.
|
|
20
|
+
|
|
21
|
+
## Passos
|
|
22
|
+
|
|
23
|
+
1. **Entendo o objetivo completo** e o classifico: é paralelizável? quais frentes existem? quem é o
|
|
24
|
+
dono de cada uma? (copy→@analyst/@pm, design→@ux, implementação→@dev, dados→@data-engineer,
|
|
25
|
+
qualidade→@qa, subida→@devops).
|
|
26
|
+
2. **Decomponho em frentes com fronteiras limpas.** Cada frente: um dono, um input, um critério de
|
|
27
|
+
pronto. Frentes de baixo acoplamento correm em paralelo; as acopladas eu sequencio (deps).
|
|
28
|
+
3. **Disparo o motor** (`nexus run "{objetivo}"`): o coordenador emite a decomposição, e o
|
|
29
|
+
SubagentOrchestrator spawna os sub-agentes por ondas, respeitando as dependências. Cada sub-agente
|
|
30
|
+
pode re-delegar (recursão), dentro dos freios. Com `--waves`, cada onda roda com paralelismo
|
|
31
|
+
pleno (sem teto de concorrência dentro da onda).
|
|
32
|
+
4. **Respeito os freios.** `maxFanout`, `maxDepth` e `maxTotalRuns` têm teto. Se a decomposição
|
|
33
|
+
estoura, eu **recuso a decomposição inteira** e reformulo — não gero sub-agentes órfãos.
|
|
34
|
+
5. **Costuro o resultado.** Recolho as entregas das frentes, verifico contra cada critério de pronto,
|
|
35
|
+
e entrego o todo — nomeando quem fez o quê.
|
|
36
|
+
6. **Roteio o gate.** Implementado → @qa (quality gate). Aprovado e pronto pra subir → @devops.
|
|
37
|
+
|
|
38
|
+
## Critério de pronto (DoD)
|
|
39
|
+
|
|
40
|
+
- [ ] Cada frente tem dono, input e critério de pronto explícitos
|
|
41
|
+
- [ ] A decomposição respeitou os freios (sem órfãos, sem estouro de budget)
|
|
42
|
+
- [ ] Todas as frentes entregues e verificadas contra o critério
|
|
43
|
+
- [ ] Resultado costurado e roteado ao gate (@qa) / subida (@devops)
|
|
44
|
+
|
|
45
|
+
## Falha / recuperação
|
|
46
|
+
|
|
47
|
+
- **Uma frente falha** → o motor bloqueia os dependentes dela; eu reporto a frente travada e decido
|
|
48
|
+
re-delegar ou escalar, sem dar por entregue o que não saiu.
|
|
49
|
+
- **A decomposição estoura os freios** → recuso e reformulo em frentes maiores/menos acopladas.
|
|
50
|
+
- **O objetivo era decisão, não construção** → troco para a task `deliberate`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: perform-market-research
|
|
3
|
+
agent: analyst
|
|
4
|
+
title: Produzir pesquisa de mercado
|
|
5
|
+
inputs: [objetivo da pesquisa / pergunta de mercado]
|
|
6
|
+
outputs: ['docs/research/market-research-{slug}.md (achados com fontes citadas e "portanto")']
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Produzir pesquisa de mercado
|
|
12
|
+
|
|
13
|
+
**Objetivo:** entregar uma análise de mercado rigorosa — dimensionamento, segmentos, tendências e dinâmica — onde todo achado rastreia a uma fonte verificável e termina num "portanto" acionável.
|
|
14
|
+
|
|
15
|
+
**Pré-condições:**
|
|
16
|
+
- A pergunta de mercado está clara e ligada a uma decisão (entrar num segmento? dimensionar demanda? validar timing?). Se vaga, **pare** e elícito (`*elicit`) — pesquisa sem pergunta é tempo queimado.
|
|
17
|
+
- Há acesso a fontes (web search, relatórios, dados internos). Sem fonte verificável, o achado vira hipótese rotulada.
|
|
18
|
+
|
|
19
|
+
## Passos
|
|
20
|
+
|
|
21
|
+
1. **Aperto o objetivo até doer.** Defino a decisão que a pesquisa precisa destravar e o escopo (geografia, segmento, horizonte temporal). Registro no topo do documento.
|
|
22
|
+
2. **Escolho o framework** adequado (ex.: TAM/SAM/SOM para dimensionamento, Porter para dinâmica, PESTEL para macro-tendências, segmentação por persona). Anuncio qual estou usando.
|
|
23
|
+
3. **DIVIRJO — coleto largura.** Levanto mais fontes do que parece confortável: relatórios de indústria, dados públicos, notícias, players. Nesta fase não julgo, só coleto e creditos cada fonte.
|
|
24
|
+
4. **CONVIRJO — filtro por evidência.** Mantenho o que tem fonte forte e datada; descarto ruído e fonte fraca. Cada número que sobrevive carrega de onde veio e quando.
|
|
25
|
+
5. **Estruturo os achados** segundo o framework: dimensionamento, segmentos, tendências, dinâmica competitiva, barreiras. Marco explicitamente o que é dado citado vs. estimativa/hipótese minha.
|
|
26
|
+
6. **Sintetizo em "portanto".** Cada bloco de achado termina numa implicação acionável para a decisão — em lista numerada, com a fonte ao lado.
|
|
27
|
+
7. **Salvo** em `docs/research/market-research-{slug}.md` com seção de Fontes citada por completo, e roteio: estratégia/PRD → @pm.
|
|
28
|
+
|
|
29
|
+
## Critério de pronto (DoD)
|
|
30
|
+
|
|
31
|
+
- [ ] Decisão-alvo e escopo declarados no topo
|
|
32
|
+
- [ ] Framework nomeado e aplicado
|
|
33
|
+
- [ ] Divergência (coleta ampla) ocorreu antes da convergência (filtro)
|
|
34
|
+
- [ ] Todo número/afirmação rastreia a uma fonte datada OU está marcado como hipótese
|
|
35
|
+
- [ ] Cada bloco fecha com um "portanto" acionável
|
|
36
|
+
- [ ] Documento salvo com seção de Fontes completa e roteado ao @pm
|
|
37
|
+
|
|
38
|
+
## Falha / recuperação
|
|
39
|
+
|
|
40
|
+
- **Fontes conflitam sobre um número** → apresento o intervalo e as fontes em vez de cravar um valor; explicito a incerteza.
|
|
41
|
+
- **Não encontro fonte verificável para um ponto-chave** → marco como hipótese explícita e listo em "questões em aberto"; não invento dado.
|
|
42
|
+
- **A pergunta se revela ampla demais no meio** → paro, reporto, e proponho fatiar em sub-perguntas com o usuário antes de seguir.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: plan-create-context
|
|
3
|
+
agent: architect
|
|
4
|
+
title: Gerar o contexto de projeto e arquivos para a story
|
|
5
|
+
inputs: [story, implementation.yaml]
|
|
6
|
+
outputs: [context.md (arquivos relevantes, padrões, contratos, restrições)]
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Gerar o contexto de projeto e arquivos para a story
|
|
12
|
+
|
|
13
|
+
**Objetivo:** reunir num único artefato tudo que o @dev precisa para implementar a story sem garimpar
|
|
14
|
+
o codebase — arquivos relevantes, padrões a seguir, contratos a respeitar e restrições — para que a
|
|
15
|
+
story seja autossuficiente.
|
|
16
|
+
|
|
17
|
+
**Pré-condições:**
|
|
18
|
+
- A story existe e está validada (não-Draft). Se estiver em Draft, **pare**.
|
|
19
|
+
- Existe `implementation.yaml` da story (via `*create-plan`). Sem o plano, não sei quais camadas o
|
|
20
|
+
contexto precisa cobrir — rodo `*create-plan` primeiro.
|
|
21
|
+
|
|
22
|
+
## Passos
|
|
23
|
+
|
|
24
|
+
1. **Leia a story e o `implementation.yaml`.** As fases e subtasks dizem quais camadas e arquivos o
|
|
25
|
+
contexto tem que iluminar.
|
|
26
|
+
2. **Mapeie os arquivos relevantes** que cada fase vai tocar ou consumir — caminhos absolutos,
|
|
27
|
+
curtos e precisos. Apenas o que importa para esta story; contexto inchado é tão ruim quanto contexto faltando.
|
|
28
|
+
3. **Extraia os padrões existentes a seguir.** Convenções de nomenclatura, estrutura de pastas,
|
|
29
|
+
utilitários/componentes reusáveis (REUSE > ADAPT > CREATE), estilo de erro. O @dev segue o que já
|
|
30
|
+
existe, não inventa um dialeto novo.
|
|
31
|
+
4. **Documente os contratos a respeitar.** Assinaturas de API, shapes de dados, fronteiras entre
|
|
32
|
+
camadas que a story cruza. Onde o contrato é da Dara (@data-engineer) ou da Uma
|
|
33
|
+
(@ux-design-expert), aponto o dono e o contrato — não detalho a implementação da camada deles.
|
|
34
|
+
5. **Liste as restrições.** NFRs aplicáveis (latência, escala, segurança, orçamento), CONs do projeto
|
|
35
|
+
e os failure modes já anotados no plano. Cada item rastreia a um FR/NFR/CON ou ao plano — sem invenção.
|
|
36
|
+
6. **Grave `context.md`** em `docs/specs/{storyId}/context.md`: arquivos relevantes, padrões,
|
|
37
|
+
contratos, restrições e a regra de autoridade (commit local pelo @dev; `git push`/PR/release pelo @devops).
|
|
38
|
+
7. **Roteie ao @dev.** Story validada + plano + contexto = pronto para `dev-develop-story`.
|
|
39
|
+
Implementado → @qa (gate). Pronto para subir → @devops.
|
|
40
|
+
|
|
41
|
+
## Critério de pronto (DoD)
|
|
42
|
+
|
|
43
|
+
- [ ] Arquivos relevantes listados com caminho absoluto e enxutos ao que a story toca
|
|
44
|
+
- [ ] Padrões existentes a seguir documentados (REUSE > ADAPT > CREATE)
|
|
45
|
+
- [ ] Contratos entre camadas explícitos, com dono apontado onde for de especialista
|
|
46
|
+
- [ ] Restrições (NFR/CON/failure modes) listadas e rastreáveis ao plano/spec
|
|
47
|
+
- [ ] `docs/specs/{storyId}/context.md` gravado e válido
|
|
48
|
+
- [ ] Roteado ao @dev com a regra de autoridade explícita
|
|
49
|
+
|
|
50
|
+
## Falha / recuperação
|
|
51
|
+
|
|
52
|
+
- **`implementation.yaml` ausente** → HALT, rodo `*create-plan` antes de gerar o contexto.
|
|
53
|
+
- **Padrão/contrato necessário não existe no codebase** → registro a lacuna; se for decisão
|
|
54
|
+
arquitetural, decido (`*create-architecture`); se for de camada de especialista, delego (@data-engineer/@ux-design-expert).
|
|
55
|
+
- **Item de contexto não rastreia a story/plano/FR/NFR/CON** → não entra. Contexto não é lugar para
|
|
56
|
+
inventar escopo (Art. IV).
|
|
57
|
+
- **A story revelou-se ambígua ao montar o contexto** → paro, registro a lacuna e devolvo ao @sm/@po.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: plan-create-implementation
|
|
3
|
+
agent: architect
|
|
4
|
+
title: Criar plano de implementação com fases e subtasks
|
|
5
|
+
inputs: [story, complexity.json]
|
|
6
|
+
outputs: [implementation.yaml (fases, subtasks, deps, donos)]
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Criar plano de implementação com fases e subtasks
|
|
12
|
+
|
|
13
|
+
**Objetivo:** transformar uma story já dimensionada num plano de execução com fases ordenadas,
|
|
14
|
+
subtasks rastreáveis a ACs e donos por camada — o mapa que o @dev segue sem ter que reinventar a rota.
|
|
15
|
+
|
|
16
|
+
**Pré-condições:**
|
|
17
|
+
- A story existe, está validada (não-Draft) e tem ACs. Se estiver em Draft, **pare** — não planejo o que o @po ainda não aprovou.
|
|
18
|
+
- Existe `complexity.json` da story (via `*assess-complexity`). Sem a classe, não sei a profundidade
|
|
19
|
+
do plano — rodo `*assess-complexity` primeiro.
|
|
20
|
+
|
|
21
|
+
## Passos
|
|
22
|
+
|
|
23
|
+
1. **Leia a story e o `complexity.json`.** A classe (SIMPLE/STANDARD/COMPLEX) define a granularidade:
|
|
24
|
+
SIMPLE = poucas fases enxutas; COMPLEX = fases com fronteiras explícitas e ciclo de revisão.
|
|
25
|
+
2. **Desenhe a espinha de fases.** Sequencie por dependência real (ex.: dados → backend → frontend →
|
|
26
|
+
integração → testes). Cada fase tem uma fronteira limpa e um motivo de existir.
|
|
27
|
+
3. **Quebre cada fase em subtasks rastreáveis.** Toda subtask aponta para o(s) AC(s) que satisfaz. Sem
|
|
28
|
+
AC de origem, a subtask não entra — isso é invenção de escopo (Art. IV).
|
|
29
|
+
4. **Aplique REUSE > ADAPT > CREATE** ao planejar: marque onde reusar padrão/utilitário existente,
|
|
30
|
+
onde adaptar e onde criar de fato — e registre o porquê de cada CREATE.
|
|
31
|
+
5. **Atribua o dono de cada fase/subtask por camada.** Schema/DDL/RLS/query → @data-engineer.
|
|
32
|
+
UI/fluxos → @ux-design-expert. Código de aplicação → @dev. Eu costuro o contrato entre camadas;
|
|
33
|
+
não invado a lane do especialista.
|
|
34
|
+
6. **Rode o teste do 10× nas fronteiras de integração.** Para cada costura, anote o failure mode ao
|
|
35
|
+
escalar (N+1, hot path, ponto único de falha). Plano sem "o que quebra" é meio plano.
|
|
36
|
+
7. **Marque os pontos de quality gate.** Onde o @qa entra, o que ele verifica, e a regra de subida:
|
|
37
|
+
pronto para subir → delega ao @devops (`git push`/PR/release são exclusivos dele).
|
|
38
|
+
8. **Grave `implementation.yaml`** em `docs/specs/{storyId}/implementation.yaml`: fases ordenadas,
|
|
39
|
+
subtasks com AC de origem e dono, dependências, failure modes anotados e pontos de gate.
|
|
40
|
+
|
|
41
|
+
## Critério de pronto (DoD)
|
|
42
|
+
|
|
43
|
+
- [ ] Fases ordenadas por dependência real, cada uma com fronteira e motivo
|
|
44
|
+
- [ ] Toda subtask rastreia a pelo menos um AC da story
|
|
45
|
+
- [ ] Dono atribuído por camada (sem invasão de lane)
|
|
46
|
+
- [ ] Failure mode anotado em cada fronteira de integração (teste do 10×)
|
|
47
|
+
- [ ] Pontos de quality gate (@qa) e regra de subida (@devops) marcados
|
|
48
|
+
- [ ] `docs/specs/{storyId}/implementation.yaml` gravado e válido
|
|
49
|
+
|
|
50
|
+
## Falha / recuperação
|
|
51
|
+
|
|
52
|
+
- **Subtask que não rastreia a nenhum AC** → removo. Se é necessária de verdade, é um AC faltando —
|
|
53
|
+
devolvo ao @sm/@po, não invento o requisito.
|
|
54
|
+
- **`complexity.json` ausente** → HALT, rodo `*assess-complexity` antes de planejar.
|
|
55
|
+
- **Fronteira de integração sem failure mode definível** (dependência externa indefinida) → registro
|
|
56
|
+
o bloqueio e escalo, em vez de planejar sobre a versão feliz.
|
|
57
|
+
- **Plano exige decisão arquitetural não tomada** (ex.: qual banco) → paro o planejamento, tomo/decido
|
|
58
|
+
a arquitetura (`*create-architecture`) e só então sigo.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: po-close-story
|
|
3
|
+
agent: po
|
|
4
|
+
title: Fechar uma story concluída e atualizar epic/backlog
|
|
5
|
+
inputs: [story]
|
|
6
|
+
outputs: [story marcada Done, epic atualizado, backlog atualizado, próxima story sugerida]
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Fechar uma story concluída e atualizar epic/backlog
|
|
12
|
+
|
|
13
|
+
**Objetivo:** fechar o ciclo de uma story que passou pelo QA — confirmando que cada AC foi
|
|
14
|
+
cumprido, atualizando epic e backlog, e sugerindo a próxima story — com a mesma rastreabilidade
|
|
15
|
+
com que o ciclo foi aberto.
|
|
16
|
+
|
|
17
|
+
**Pré-condições:**
|
|
18
|
+
- A story está em status `InReview`/`Ready for Done` com o gate do @qa **PASS** (ou WAIVED com
|
|
19
|
+
justificativa registrada). Se o gate foi FAIL/CONCERNS sem resolução, **pare** — não fecho o que
|
|
20
|
+
o QA não liberou.
|
|
21
|
+
- O epic de origem e o backlog estão acessíveis para atualização de contexto.
|
|
22
|
+
|
|
23
|
+
## Passos
|
|
24
|
+
|
|
25
|
+
1. **Releia os ACs originais** da story e confirme, um a um, que cada critério foi cumprido com
|
|
26
|
+
evidência (teste verde, gate do @qa). AC sem evidência de cumprimento bloqueia o fechamento.
|
|
27
|
+
2. **Confirme o veredito do @qa.** O gate de qualidade está PASS (ou WAIVED com justificativa
|
|
28
|
+
registrada)? Sem isso, devolvo ao fluxo de QA em vez de fechar.
|
|
29
|
+
3. **Verifique a rastreabilidade final.** Os FR/NFR/CON que a story prometia cumprir estão de fato
|
|
30
|
+
entregues? Atualizo o mapa de rastreabilidade do epic, marcando os requisitos como atendidos.
|
|
31
|
+
4. **Marque a story `Done`** no arquivo em `docs/stories/`, registrando data de fechamento e o
|
|
32
|
+
veredito do @qa no Change Log.
|
|
33
|
+
5. **Atualize o epic.** Marque a story como concluída no índice do epic e recalcule o progresso
|
|
34
|
+
(X de N stories). Se a conclusão revelou follow-ups, registre-os via `po-manage-story-backlog`.
|
|
35
|
+
6. **Atualize o backlog.** Remova/arquive o item correspondente do "em andamento" e promova
|
|
36
|
+
dependentes que agora estão destravados.
|
|
37
|
+
7. **Sugira a próxima story.** Olhe a sequência do epic e o backlog priorizado; aponte qual story
|
|
38
|
+
está pronta para entrar (dependências satisfeitas). Roteio a criação ao `@sm *draft` se ainda
|
|
39
|
+
não existir.
|
|
40
|
+
8. **Delegue qualquer subida.** Se o fechamento envolve subir artefatos (push, PR, tag de release),
|
|
41
|
+
**eu não opero git remoto** — delego ao `@devops`. Eu fecho a story; o Gage publica.
|
|
42
|
+
|
|
43
|
+
## Critério de pronto (DoD)
|
|
44
|
+
|
|
45
|
+
- [ ] Cada AC confirmado como cumprido, com evidência
|
|
46
|
+
- [ ] Gate do @qa confirmado PASS (ou WAIVED justificado)
|
|
47
|
+
- [ ] Rastreabilidade final atualizada no epic (requisitos atendidos)
|
|
48
|
+
- [ ] Story marcada `Done` com data e veredito no Change Log
|
|
49
|
+
- [ ] Epic atualizado (progresso recalculado) e follow-ups registrados no backlog
|
|
50
|
+
- [ ] Backlog atualizado e dependentes destravados promovidos
|
|
51
|
+
- [ ] Próxima story sugerida (ou criação roteada ao @sm)
|
|
52
|
+
|
|
53
|
+
## Falha / recuperação
|
|
54
|
+
|
|
55
|
+
- **Algum AC não tem evidência de cumprimento** → não fecho; devolvo ao @dev/@qa com a lacuna
|
|
56
|
+
apontada. Fechar story incompleta vira retrabalho três fases depois.
|
|
57
|
+
- **Gate do @qa não é PASS** → devolvo ao fluxo de QA (QA Loop) em vez de fechar.
|
|
58
|
+
- **A conclusão revelou requisito inventado sem fonte** (Art. IV) → bloqueio o fechamento e exijo a
|
|
59
|
+
origem ou a remoção do escopo invadido antes de marcar Done.
|
|
60
|
+
- **O fechamento exige push/PR/release** → delego ao @devops; nunca opero git remoto, nem aqui.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: po-manage-story-backlog
|
|
3
|
+
agent: po
|
|
4
|
+
title: Gerir o backlog de stories — adicionar, priorizar, agendar, revisar
|
|
5
|
+
inputs: [ação (add|review|prioritize|schedule), item|prioridade|sprint]
|
|
6
|
+
outputs: [backlog atualizado, revisão de backlog para planejamento de sprint]
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Gerir o backlog de stories — adicionar, priorizar, agendar, revisar
|
|
12
|
+
|
|
13
|
+
**Objetivo:** manter o backlog de stories coeso, priorizado e sequenciado — equilibrando o que é
|
|
14
|
+
HIGH de verdade contra o que só parece urgente, sem nunca quebrar a ordem lógica das dependências.
|
|
15
|
+
|
|
16
|
+
**Pré-condições:**
|
|
17
|
+
- O arquivo de backlog existe (`docs/stories/backlog.md` ou índice equivalente). Se não existir e a
|
|
18
|
+
ação for `add`, eu o crio com a estrutura padrão.
|
|
19
|
+
- Todo item adicionado rastreia a uma origem (FR/NFR/CON do PRD, follow-up de QA, dívida técnica
|
|
20
|
+
registrada). Item sem origem não entra (Art. IV — No Invention).
|
|
21
|
+
|
|
22
|
+
## Passos
|
|
23
|
+
|
|
24
|
+
1. **Identifique a ação:** `add` (incluir item), `review` (gerar revisão para sprint),
|
|
25
|
+
`prioritize` (re-priorizar) ou `schedule` (agendar para um sprint).
|
|
26
|
+
2. **Para `add`:** registre o item com origem rastreável, tipo (story | follow-up | tech-debt |
|
|
27
|
+
enhancement), prioridade inicial (HIGH/MED/LOW) e dependências conhecidas. Item sem origem é
|
|
28
|
+
recusado; peço a fonte ao solicitante.
|
|
29
|
+
3. **Para `prioritize`:** ajuste a prioridade do item pesando impacto real × urgência real, não a
|
|
30
|
+
pressão de quem pediu. Reordene de forma que dependências precedam dependentes — prioridade nunca
|
|
31
|
+
reescreve a ordem lógica.
|
|
32
|
+
4. **Para `schedule`:** aloque o item a um sprint **somente se** suas dependências já estiverem
|
|
33
|
+
satisfeitas ou agendadas para sprint anterior. Story que precisa de schema inexistente não entra
|
|
34
|
+
só porque "é prioridade".
|
|
35
|
+
5. **Para `review`:** gere a revisão de backlog para planejamento — itens por prioridade, status,
|
|
36
|
+
dependências e prontidão. Sinalize bloqueios de sequência e itens sem origem.
|
|
37
|
+
6. **Persista as mudanças** no arquivo de backlog, mantendo o histórico de re-priorizações.
|
|
38
|
+
7. **Roteie quando preciso:** item que vira story precisa ser escrito → `@sm *draft`. Item que muda
|
|
39
|
+
escopo/produto → `@pm`. Conflito de prioridade que altera o plano do epic → escalo ao
|
|
40
|
+
`@nexus-master`.
|
|
41
|
+
|
|
42
|
+
## Critério de pronto (DoD)
|
|
43
|
+
|
|
44
|
+
- [ ] Ação identificada e executada (add | review | prioritize | schedule)
|
|
45
|
+
- [ ] Todo item tem origem rastreável e tipo definido
|
|
46
|
+
- [ ] Dependências mapeadas; ordem lógica preservada (deps antes de dependentes)
|
|
47
|
+
- [ ] Itens agendados têm dependências satisfeitas ou agendadas antes
|
|
48
|
+
- [ ] Backlog persistido com histórico de re-priorizações
|
|
49
|
+
- [ ] Revisão de sprint (se solicitada) lista prioridade, status, deps e bloqueios
|
|
50
|
+
|
|
51
|
+
## Falha / recuperação
|
|
52
|
+
|
|
53
|
+
- **Item sem origem rastreável** → recuso a inclusão e peço a fonte (FR/NFR/CON, follow-up, dívida).
|
|
54
|
+
- **Pediram para agendar story com dependência faltante** → bloqueio o agendamento e sinalizo a
|
|
55
|
+
dependência. Prioridade sem ordem lógica é caos agendado.
|
|
56
|
+
- **Conflito de prioridade entre stakeholders** → não decido escopo em silêncio; sinalizo e escalo
|
|
57
|
+
ao @nexus-master / @pm conforme a natureza do conflito.
|
|
58
|
+
- **Item parece exigir push/release** → não é função de backlog; qualquer operação remota é do
|
|
59
|
+
@devops.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: po-pull-story
|
|
3
|
+
agent: po
|
|
4
|
+
title: Puxar atualizações de uma story da ferramenta de PM
|
|
5
|
+
inputs: [story, ferramenta (clickup|github|jira|local)]
|
|
6
|
+
outputs: [story local atualizada com mudanças remotas, conflitos sinalizados]
|
|
7
|
+
elicit: false
|
|
8
|
+
modes: [interactive, yolo]
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Puxar atualizações de uma story da ferramenta de PM
|
|
12
|
+
|
|
13
|
+
**Objetivo:** trazer para a story local em `docs/stories/` as mudanças feitas na ferramenta de
|
|
14
|
+
gestão (ClickUp / GitHub Issues / Jira / local) — status, comentários, checklist de ACs —
|
|
15
|
+
mantendo a fonte de verdade coesa sem perder edições locais.
|
|
16
|
+
|
|
17
|
+
**Pré-condições:**
|
|
18
|
+
- A story existe em `docs/stories/` e já foi sincronizada antes (há mapa de IDs em `.nexus/`). Se
|
|
19
|
+
nunca houve sync, **pare** e oriente rodar `po-sync-story` primeiro.
|
|
20
|
+
- O provider de PM está configurado em `.nexus/`. Sem provider, **pare** e reporte.
|
|
21
|
+
|
|
22
|
+
## Passos
|
|
23
|
+
|
|
24
|
+
1. **Recupere o mapa de IDs** (story local ↔ ID externo) em `.nexus/` e identifique o provider alvo.
|
|
25
|
+
2. **Busque o estado remoto** do item na ferramenta: status, ACs/checklist, comentários relevantes,
|
|
26
|
+
prioridade, atribuições.
|
|
27
|
+
3. **Compare remoto × local.** Liste o que mudou de cada lado desde a última sincronização —
|
|
28
|
+
distinguindo o que veio do time (na ferramenta) do que foi editado localmente.
|
|
29
|
+
4. **Aplique remoto→local sem destruir a autoridade de escopo.** Status, checklist de ACs e
|
|
30
|
+
comentários podem ser refletidos na story. Mas mudança de **AC, título ou escopo** vinda da
|
|
31
|
+
ferramenta **eu não aplico em silêncio** — sinalizo, porque autoria de escopo é do @pm/@sm, não
|
|
32
|
+
minha (e nem da ferramenta).
|
|
33
|
+
5. **Sinalize conflitos.** Onde local e remoto divergem no mesmo campo, não sobrescrevo cegamente;
|
|
34
|
+
apresento o conflito e a decisão fica com o dono do campo.
|
|
35
|
+
6. **Atualize a story** em `docs/stories/` com as mudanças seguras e registre no Change Log a data e
|
|
36
|
+
a origem do pull.
|
|
37
|
+
7. **Roteie o que mudou de escopo.** Se a ferramenta trouxe novo AC/escopo, roteio ao `@sm` (story)
|
|
38
|
+
ou `@pm` (produto) para autoria formal — e, se isso conflita com PRD/epic, escalo correção de
|
|
39
|
+
curso ao `@nexus-master`. Eu reflito metadados; não reescrevo escopo.
|
|
40
|
+
|
|
41
|
+
## Critério de pronto (DoD)
|
|
42
|
+
|
|
43
|
+
- [ ] Mapa de IDs recuperado e provider identificado
|
|
44
|
+
- [ ] Estado remoto buscado (status, ACs, comentários, prioridade)
|
|
45
|
+
- [ ] Diff remoto × local computado e apresentado
|
|
46
|
+
- [ ] Mudanças seguras (status, checklist, comentários) refletidas na story
|
|
47
|
+
- [ ] Mudanças de AC/título/escopo NÃO aplicadas em silêncio — sinalizadas e roteadas
|
|
48
|
+
- [ ] Conflitos de campo sinalizados, não sobrescritos
|
|
49
|
+
- [ ] Change Log da story atualizado com data e origem do pull
|
|
50
|
+
|
|
51
|
+
## Falha / recuperação
|
|
52
|
+
|
|
53
|
+
- **Sem mapa de IDs / story nunca sincronizada** → paro e oriento rodar `po-sync-story` antes.
|
|
54
|
+
- **A ferramenta alterou AC/título/escopo** → não aplico por conta própria; sinalizo e roteio ao
|
|
55
|
+
@sm/@pm. Meu poder é GO/NO-GO e reflexo de metadados, não edição de escopo.
|
|
56
|
+
- **Conflito remoto × local no mesmo campo** → sinalizo e deixo a decisão com o dono; não
|
|
57
|
+
sobrescrevo cegamente.
|
|
58
|
+
- **Divergência cria conflito com PRD/epic** → escalo correção de curso ao @nexus-master, em voz
|
|
59
|
+
alta, sem resolver em silêncio.
|
|
60
|
+
- **Falha de autenticação / provider** → reporto com contexto; credenciais e MCP são do @devops.
|