@jaimevalasek/aioson 1.4.0 → 1.5.1
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/CHANGELOG.md +31 -1
- package/LICENSE +661 -21
- package/README.md +3 -1
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/agentes.md +124 -10
- package/docs/pt/cenarios.md +46 -2
- package/docs/pt/comandos-cli.md +60 -1
- package/docs/pt/inicio-rapido.md +18 -2
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +9 -9
- package/package.json +2 -2
- package/src/backup-local.js +74 -0
- package/src/cli.js +98 -0
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/runtime.js +242 -0
- package/src/commands/setup-context.js +7 -2
- package/src/commands/squad-daemon.js +209 -0
- package/src/commands/squad-dashboard.js +39 -0
- package/src/commands/squad-deploy.js +64 -0
- package/src/commands/squad-doctor.js +52 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-processes.js +56 -0
- package/src/commands/squad-recovery.js +42 -0
- package/src/commands/squad-roi.js +291 -0
- package/src/commands/squad-score.js +250 -0
- package/src/commands/squad-status.js +37 -1
- package/src/commands/squad-validate.js +62 -1
- package/src/commands/squad-webhook.js +160 -0
- package/src/commands/squad-worker.js +191 -0
- package/src/commands/squad-worktrees.js +75 -0
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/constants.js +8 -0
- package/src/context-writer.js +45 -1
- package/src/i18n/messages/en.js +127 -1
- package/src/i18n/messages/es.js +117 -0
- package/src/i18n/messages/fr.js +117 -0
- package/src/i18n/messages/pt-BR.js +126 -1
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/runtime-store.js +259 -2
- package/src/squad/external-session.js +180 -0
- package/src/squad/inter-squad.js +74 -0
- package/src/squad/recovery-context.js +201 -0
- package/src/squad/worktree-manager.js +114 -0
- package/src/squad-daemon.js +490 -0
- package/src/squad-dashboard/api.js +223 -0
- package/src/squad-dashboard/attachment-handler.js +93 -0
- package/src/squad-dashboard/context-monitor.js +157 -0
- package/src/squad-dashboard/execution-logs.js +115 -0
- package/src/squad-dashboard/hunk-review.js +209 -0
- package/src/squad-dashboard/metrics.js +133 -0
- package/src/squad-dashboard/process-monitor.js +125 -0
- package/src/squad-dashboard/renderer.js +858 -0
- package/src/squad-dashboard/server.js +232 -0
- package/src/squad-dashboard/styles.js +525 -0
- package/src/squad-dashboard/token-tracker.js +99 -0
- package/src/web.js +284 -0
- package/src/worker-runner.js +339 -0
- package/template/.aioson/agents/analyst.md +4 -0
- package/template/.aioson/agents/architect.md +4 -0
- package/template/.aioson/agents/dev.md +120 -11
- package/template/.aioson/agents/deyvin.md +8 -0
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +17 -0
- package/template/.aioson/agents/orchestrator.md +26 -0
- package/template/.aioson/agents/product.md +60 -12
- package/template/.aioson/agents/qa.md +1 -0
- package/template/.aioson/agents/setup.md +63 -19
- package/template/.aioson/agents/sheldon.md +603 -0
- package/template/.aioson/agents/squad.md +191 -0
- package/template/.aioson/agents/tester.md +254 -0
- package/template/.aioson/agents/ux-ui.md +12 -0
- package/template/.aioson/config.md +6 -0
- package/template/.aioson/locales/en/agents/analyst.md +8 -0
- package/template/.aioson/locales/en/agents/architect.md +8 -0
- package/template/.aioson/locales/en/agents/dev.md +66 -7
- package/template/.aioson/locales/en/agents/deyvin.md +8 -0
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/en/agents/qa.md +49 -0
- package/template/.aioson/locales/en/agents/setup.md +2 -1
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/es/agents/analyst.md +8 -0
- package/template/.aioson/locales/es/agents/architect.md +8 -0
- package/template/.aioson/locales/es/agents/dev.md +66 -7
- package/template/.aioson/locales/es/agents/deyvin.md +8 -0
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/qa.md +26 -0
- package/template/.aioson/locales/es/agents/setup.md +2 -1
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +63 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/fr/agents/analyst.md +8 -0
- package/template/.aioson/locales/fr/agents/architect.md +8 -0
- package/template/.aioson/locales/fr/agents/dev.md +66 -7
- package/template/.aioson/locales/fr/agents/deyvin.md +8 -0
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/qa.md +26 -0
- package/template/.aioson/locales/fr/agents/setup.md +2 -1
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +63 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/architect.md +19 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +75 -12
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +8 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +8 -3
- package/template/.aioson/locales/pt-BR/agents/qa.md +60 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +2 -1
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +105 -0
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +8 -0
- package/template/.aioson/schemas/squad-blueprint.schema.json +21 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +178 -1
- package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
- package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
- package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
- package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +55 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +100 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +43 -9
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +40 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +1 -1
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +99 -12
- package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
- package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
- package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
- package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
- package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
- package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
- package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
- package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
- package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
- package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
- package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
- package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
- package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
- package/template/.aioson/skills/squad/formats/catalog.json +15 -0
- package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
- package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
- package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
- package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
- package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
- package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
- package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
- package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
- package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
- package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
- package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
- package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
- package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
- package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
- package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
- package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
- package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
- package/template/.aioson/skills/static/debugging-protocol.md +42 -0
- package/template/.aioson/skills/static/git-worktrees.md +36 -0
- package/template/.aioson/tasks/implementation-plan.md +19 -0
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-profile.md +48 -0
- package/template/.aioson/tasks/squad-review.md +61 -0
- package/template/.aioson/tasks/squad-task-decompose.md +66 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +1 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +3 -0
- package/template/CLAUDE.md +5 -2
- package/template/OPENCODE.md +2 -0
package/docs/pt/agentes.md
CHANGED
|
@@ -90,6 +90,7 @@ Regras do fluxo:
|
|
|
90
90
|
**Quando usar:** Depois do `@setup` em projetos novos. Em features novas de projeto existente, pode entrar direto sem repetir `@setup`.
|
|
91
91
|
|
|
92
92
|
**O que faz:**
|
|
93
|
+
- varre a raiz do projeto em busca de documentos de entrada (`plans/*.md`, `prds/*.md`) antes de iniciar a conversa
|
|
93
94
|
- conduz a conversa de produto e gera o `PRD base`
|
|
94
95
|
- registra visão, problema, usuários, escopo inicial e perguntas em aberto
|
|
95
96
|
- detecta sinais visuais cedo e preserva a intenção no PRD
|
|
@@ -97,6 +98,21 @@ Regras do fluxo:
|
|
|
97
98
|
- aponta o próximo agente do fluxo
|
|
98
99
|
- em brownfield, usa `discovery.md` quando já existir e trata os artefatos locais do scan apenas como orientação estrutural, nunca como substituto do `@analyst`
|
|
99
100
|
|
|
101
|
+
**Documentos de kickoff (plans/ e prds/ na raiz):**
|
|
102
|
+
|
|
103
|
+
Você pode criar arquivos de entrada na raiz do projeto antes de ativar o `@product`:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
plans/minha-ideia.md ← notas, esboços, planos escritos por você
|
|
107
|
+
prds/visao-produto.md ← rascunhos de requisitos, referências
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
O `@product` detecta esses arquivos automaticamente e pergunta se deve usá-los como fonte. Se sim, ele sintetiza o conteúdo e gera o PRD formal em `.aioson/context/`. Os arquivos originais nunca são modificados — você pode deletá-los depois que o PRD estiver gerado.
|
|
111
|
+
|
|
112
|
+
**Sinal de greenfield vs feature:**
|
|
113
|
+
- `plans/*.md` ou `prds/*.md` existem + `prd.md` ainda não existe → kickoff de projeto novo
|
|
114
|
+
- `plans/*.md` ou `prds/*.md` existem + `prd.md` já existe → nova feature ou refinamento
|
|
115
|
+
|
|
100
116
|
**Como ativar:**
|
|
101
117
|
```
|
|
102
118
|
/product
|
|
@@ -481,12 +497,25 @@ Depois disso, ela passa a ser parte real do pacote local da squad e deve ser con
|
|
|
481
497
|
- Seguir as convenções nativas do framework do projeto
|
|
482
498
|
- Verificar skills disponíveis em `.aioson/skills/static/` antes de implementar
|
|
483
499
|
|
|
500
|
+
**TDD Gate** — Antes de qualquer implementação de lógica de negócio, o `@dev` verifica o test runner configurado em `project.context.md`. Se não houver nenhum configurado, escaneia a raiz em busca de arquivos de configuração conhecidos (`pest.xml`, `vitest.config.*`, `pytest.ini`, `.rspec`, `foundry.toml`) e pergunta ao usuário se deseja configurar um antes de começar.
|
|
501
|
+
|
|
502
|
+
| Classificação | Mandato |
|
|
503
|
+
|---|---|
|
|
504
|
+
| MICRO | Escrever o teste junto com a implementação — obrigatório antes do commit |
|
|
505
|
+
| SMALL | Escrever o teste com falha (RED) **antes** de qualquer código de implementação |
|
|
506
|
+
| MEDIUM | Igual ao SMALL. Anotar o teste no checkpoint do plano de implementação |
|
|
507
|
+
|
|
508
|
+
**Exceções ao TDD** (nenhum teste exigido): arquivos de configuração, migrations sem regras de negócio, conteúdo estático, scaffolding de UI sem lógica de estado.
|
|
509
|
+
|
|
510
|
+
Se o usuário pedir para pular o teste, o `@dev` resiste, explica, e só cede após insistência — nunca implementa lógica de negócio sem teste existindo primeiro.
|
|
511
|
+
|
|
484
512
|
**Execução atômica** — O @dev trabalha em passos pequenos e validados, nunca implementa uma feature inteira de uma vez:
|
|
485
513
|
1. Declara o próximo passo antes de escrever código
|
|
486
|
-
2.
|
|
487
|
-
3.
|
|
488
|
-
4.
|
|
489
|
-
5.
|
|
514
|
+
2. Escreve o teste com falha (RED) — o teste deve falhar antes de qualquer implementação
|
|
515
|
+
3. Implementa apenas o suficiente para o teste passar (GREEN)
|
|
516
|
+
4. Verifica que o teste passa — lê o output completo, não um resumo
|
|
517
|
+
5. Faz commit com mensagem semântica
|
|
518
|
+
6. Repete para o próximo passo
|
|
490
519
|
|
|
491
520
|
**Em projetos com Laravel especificamente:**
|
|
492
521
|
- Form Requests para validação (nunca inline no controller)
|
|
@@ -505,7 +534,7 @@ Depois disso, ela passa a ser parte real do pacote local da squad e deve ser con
|
|
|
505
534
|
|
|
506
535
|
**O que faz:**
|
|
507
536
|
- Revisa o código implementado
|
|
508
|
-
- Escreve testes
|
|
537
|
+
- Escreve testes para achados Critical e High
|
|
509
538
|
- Identifica casos de borda não cobertos
|
|
510
539
|
- Valida se os critérios de aceite foram atendidos
|
|
511
540
|
- usa `discovery.md` como fonte de regras e relacionamentos; se só existirem artefatos de scan, o fluxo correto ainda passa por `@analyst`
|
|
@@ -516,10 +545,92 @@ Depois disso, ela passa a ser parte real do pacote local da squad e deve ser con
|
|
|
516
545
|
```
|
|
517
546
|
|
|
518
547
|
**Entrega:**
|
|
519
|
-
-
|
|
520
|
-
-
|
|
548
|
+
- Lista de problemas encontrados por severidade
|
|
549
|
+
- Testes para achados críticos
|
|
521
550
|
- Relatório de cobertura
|
|
522
551
|
|
|
552
|
+
> **@qa vs @tester** — O `@qa` é um revisor: lê o que foi implementado, aponta riscos e escreve testes pontuais para achados críticos. O `@tester` é um engenheiro de testes: parte de cobertura zero e constrói uma estratégia sistemática (inventário, mapa de risco, estratégia por camada). Use `@tester` quando a aplicação foi implementada sem testes adequados ou quando `@qa` identificar lacunas em 3+ módulos.
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## @tester
|
|
557
|
+
|
|
558
|
+
**Quando usar:** Após `@dev`, quando a aplicação foi implementada sem testes adequados. Também em projetos legados ou quando `@qa` identificar cobertura insuficiente em múltiplos módulos.
|
|
559
|
+
|
|
560
|
+
**O que faz:**
|
|
561
|
+
- Produz um inventário completo de cobertura (`test-inventory.md`)
|
|
562
|
+
- Mapeia regras de negócio descobertas vs testes existentes, priorizando por risco
|
|
563
|
+
- Escolhe e documenta a estratégia de teste antes de escrever qualquer linha
|
|
564
|
+
- Escreve testes por módulo em ordem de prioridade, com commit atômico por módulo
|
|
565
|
+
- Gera relatório de cobertura antes vs depois
|
|
566
|
+
|
|
567
|
+
**Estratégias disponíveis:**
|
|
568
|
+
|
|
569
|
+
| Cenário | Estratégia |
|
|
570
|
+
|---|---|
|
|
571
|
+
| Código legado sem testes, precisa refatorar | Characterization Testing |
|
|
572
|
+
| App implementada, cobertura zero | Test Pyramid Bottom-up |
|
|
573
|
+
| Cobertura razoável, regras descobertas | Risk-first Gap Filling |
|
|
574
|
+
| Código crítico com edge cases complexos | Property-based Testing |
|
|
575
|
+
| APIs entre times | Contract Testing |
|
|
576
|
+
| Suspeita de testes fracos que sempre passam | Mutation Testing |
|
|
577
|
+
|
|
578
|
+
**Frameworks detectados automaticamente por stack:**
|
|
579
|
+
|
|
580
|
+
| Stack | Test Runner | Unit | Integration | E2E |
|
|
581
|
+
|---|---|---|---|---|
|
|
582
|
+
| Laravel | Pest PHP | Pest unit | Pest feature (HTTP) | Dusk/Playwright |
|
|
583
|
+
| Next.js | Vitest | Vitest + RTL | MSW + Vitest | Playwright |
|
|
584
|
+
| Django | pytest-django | pytest | pytest + client | Playwright |
|
|
585
|
+
| FastAPI | pytest + httpx | pytest | AsyncClient | — |
|
|
586
|
+
| Rails | RSpec | RSpec unit | Request specs | Capybara |
|
|
587
|
+
| Solidity | Foundry | forge unit | forge integration | — |
|
|
588
|
+
|
|
589
|
+
**Como ativar:**
|
|
590
|
+
```
|
|
591
|
+
/tester
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
**Entrega:**
|
|
595
|
+
- `.aioson/context/test-inventory.md` — mapa de cobertura por arquivo
|
|
596
|
+
- `.aioson/context/test-plan.md` — estratégia escolhida + cobertura antes/depois
|
|
597
|
+
- Testes escritos por módulo, commitados incrementalmente
|
|
598
|
+
|
|
599
|
+
**Restrições:**
|
|
600
|
+
- Nunca modifica código de produção
|
|
601
|
+
- Se encontrar um bug real: documenta em `test-plan.md` e para — não corrige silenciosamente
|
|
602
|
+
- Testes sem assertions são proibidos
|
|
603
|
+
|
|
604
|
+
---
|
|
605
|
+
|
|
606
|
+
## @sheldon
|
|
607
|
+
|
|
608
|
+
**Quando usar:** Após `@product`, antes de iniciar a cadeia de execução — para garantir que o PRD está completo, sem lacunas e pronto para gerar código correto.
|
|
609
|
+
|
|
610
|
+
**O que faz:**
|
|
611
|
+
- Detecta documentos de entrada na raiz (`plans/*.md`, `prds/*.md`) e oferece incorporá-los ao enriquecimento do PRD
|
|
612
|
+
- Analisa o PRD por prioridade de melhorias
|
|
613
|
+
- Decide entre enriquecimento in-place ou plano de fases externo
|
|
614
|
+
- Valida se o PRD está legível e implementável antes de ativar `@dev`
|
|
615
|
+
|
|
616
|
+
**Modos de operação:**
|
|
617
|
+
|
|
618
|
+
| Modo | Como ativar | O que faz |
|
|
619
|
+
|---|---|---|
|
|
620
|
+
| A — Enriquecimento (padrão) | `/sheldon` | Analisa o PRD alvo e sugere melhorias prioritárias |
|
|
621
|
+
| B — Revisão Global | `/sheldon` + "revisão geral" | Escaneia todos os PRDs e planos ativos |
|
|
622
|
+
| C — Validação Completa | `/sheldon` + "validar" ou "preparar para dev" | Auditoria completa + checklist final antes de codar |
|
|
623
|
+
|
|
624
|
+
**Como ativar:**
|
|
625
|
+
```
|
|
626
|
+
/sheldon
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
**Entrega:**
|
|
630
|
+
- PRD enriquecido in-place (Modo A)
|
|
631
|
+
- Relatório de status de todos os PRDs (Modo B)
|
|
632
|
+
- Checklist de validação + decisão go/no-go para implementação (Modo C)
|
|
633
|
+
|
|
523
634
|
---
|
|
524
635
|
|
|
525
636
|
## Resumo: fluxo por tamanho
|
|
@@ -532,15 +643,18 @@ Duração típica: minutos a horas. Sem análise, sem arquitetura formal.
|
|
|
532
643
|
|
|
533
644
|
### SMALL
|
|
534
645
|
```
|
|
535
|
-
@setup → @product → @analyst → @architect → @
|
|
646
|
+
@setup → @product → [@sheldon] → @analyst → @architect → @dev → @qa → [@tester]
|
|
536
647
|
```
|
|
537
648
|
Duração típica: horas a dias. Análise leve, estrutura clara.
|
|
538
649
|
|
|
539
650
|
### MEDIUM
|
|
540
651
|
```
|
|
541
|
-
@setup → @product → @analyst → @architect → @ux-ui → @pm → @orchestrator → @dev → @qa
|
|
652
|
+
@setup → @product → [@sheldon] → @analyst → @architect → @ux-ui → @pm → @orchestrator → @dev → @qa → [@tester]
|
|
542
653
|
```
|
|
543
|
-
Duração típica: dias a semanas. Análise completa,
|
|
654
|
+
Duração típica: dias a semanas. Análise completa, paralelismo, backlog formal.
|
|
655
|
+
|
|
656
|
+
`[@sheldon]` — opcional, recomendado antes de iniciar a cadeia de execução para validar o PRD.
|
|
657
|
+
`[@tester]` — opcional, recomendado quando a cobertura de testes for insuficiente após `@dev`.
|
|
544
658
|
|
|
545
659
|
---
|
|
546
660
|
|
package/docs/pt/cenarios.md
CHANGED
|
@@ -124,6 +124,22 @@ Objetivo: gerar o PRD base antes de mapear pacientes, médicos, agendamentos e r
|
|
|
124
124
|
|
|
125
125
|
### Passo 4: @product — PRD base
|
|
126
126
|
|
|
127
|
+
**Atalho com documento de kickoff (opcional):**
|
|
128
|
+
|
|
129
|
+
Se você já tiver uma ideia esboçada, crie um arquivo de entrada antes de ativar o `@product`:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Crie plans/agendamentos.md com suas notas brutas:
|
|
133
|
+
# - quero que pacientes agendem consultas online
|
|
134
|
+
# - médico pode bloquear horários
|
|
135
|
+
# - notificação por email na confirmação
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Ao ativar `/product`, o agente detecta `plans/agendamentos.md` e pergunta:
|
|
139
|
+
> "Encontrei `plans/agendamentos.md`. Quer que eu use como fonte para o PRD?"
|
|
140
|
+
|
|
141
|
+
Se sim, ele sintetiza o conteúdo e gera o PRD formal. Você pode deletar o arquivo original depois.
|
|
142
|
+
|
|
127
143
|
```
|
|
128
144
|
/product
|
|
129
145
|
```
|
|
@@ -260,7 +276,7 @@ tests/Feature/AppointmentTest.php
|
|
|
260
276
|
- N+1: Eager loading em todos os índices (with('doctor.user', 'patient.user'))
|
|
261
277
|
- Timezone: UTC no banco, conversão na camada de apresentação
|
|
262
278
|
|
|
263
|
-
### Passo 6: @dev — Implementação
|
|
279
|
+
### Passo 6: @dev — Implementação com TDD Gate
|
|
264
280
|
|
|
265
281
|
```
|
|
266
282
|
/dev
|
|
@@ -269,8 +285,32 @@ Implemente a feature de agendamentos primeiro.
|
|
|
269
285
|
Comece pela migration, model, action e controller.
|
|
270
286
|
```
|
|
271
287
|
|
|
272
|
-
|
|
288
|
+
O `@dev` detecta o test runner (`pest.xml` encontrado → Pest PHP) e aplica o TDD Gate antes de implementar qualquer lógica de negócio:
|
|
273
289
|
|
|
290
|
+
**1. Escreve o teste com falha (RED):**
|
|
291
|
+
```php
|
|
292
|
+
// tests/Feature/CreateAppointmentTest.php
|
|
293
|
+
it('throws exception on doctor schedule conflict', function () {
|
|
294
|
+
$doctor = Doctor::factory()->create();
|
|
295
|
+
$slot = now()->addDay()->setHour(10)->setMinute(0);
|
|
296
|
+
|
|
297
|
+
Appointment::factory()->create([
|
|
298
|
+
'doctor_id' => $doctor->id,
|
|
299
|
+
'date' => $slot,
|
|
300
|
+
'status' => 'confirmed',
|
|
301
|
+
]);
|
|
302
|
+
|
|
303
|
+
expect(fn () => (new CreateAppointmentAction)->execute([
|
|
304
|
+
'doctor_id' => $doctor->id,
|
|
305
|
+
'patient_id' => Patient::factory()->create()->id,
|
|
306
|
+
'date' => $slot,
|
|
307
|
+
]))->toThrow(AppointmentConflictException::class);
|
|
308
|
+
});
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Roda o teste → **falha** (RED confirmado). Só então implementa:
|
|
312
|
+
|
|
313
|
+
**2. Implementa o suficiente para passar (GREEN):**
|
|
274
314
|
```php
|
|
275
315
|
// app/Actions/CreateAppointmentAction.php
|
|
276
316
|
class CreateAppointmentAction
|
|
@@ -304,6 +344,8 @@ class CreateAppointmentAction
|
|
|
304
344
|
}
|
|
305
345
|
```
|
|
306
346
|
|
|
347
|
+
Roda o teste → **passa** (GREEN). Commit. Próximo passo.
|
|
348
|
+
|
|
307
349
|
### Passo 7: @qa — Testes
|
|
308
350
|
|
|
309
351
|
```
|
|
@@ -318,6 +360,8 @@ Revise a CreateAppointmentAction e escreva os testes para:
|
|
|
318
360
|
|
|
319
361
|
**O @qa entrega** `tests/Feature/AppointmentTest.php` com todos os casos.
|
|
320
362
|
|
|
363
|
+
> **Quando usar @tester em vez de @qa:** Se após o `@dev` a cobertura estiver em zero ou muito baixa, ative `/tester` em vez de `/qa`. O `@tester` começa por um inventário completo (`test-inventory.md`), mapeia os riscos, escolhe a estratégia e escreve testes em ordem de prioridade — Auth/Authorization > Business rules > Data integrity > UI. O `@qa` é um revisor pontual; o `@tester` é um engenheiro de testes que parte do zero.
|
|
364
|
+
|
|
321
365
|
---
|
|
322
366
|
|
|
323
367
|
## Cenário 3 — SaaS multi-tenant (MEDIUM)
|
package/docs/pt/comandos-cli.md
CHANGED
|
@@ -77,6 +77,13 @@
|
|
|
77
77
|
| `qa:scan` | Faz crawl automático do app e procura riscos | Quando quer inspeção ampla de rotas |
|
|
78
78
|
| `qa:report` | Reexibe ou exporta o último relatório | Quando quer consultar ou regenerar o relatório |
|
|
79
79
|
|
|
80
|
+
### Web nativa
|
|
81
|
+
|
|
82
|
+
| Comando | O que faz | Quando usar |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| `web:map` | Descobre URLs internas de um site por crawl simples | Quando quer mapear docs, páginas públicas ou áreas navegáveis sem serviço externo |
|
|
85
|
+
| `web:scrape` | Extrai conteúdo principal de uma página em markdown, text, html ou links | Quando quer transformar HTML em contexto utilizável para agentes |
|
|
86
|
+
|
|
80
87
|
### Genomes e squads
|
|
81
88
|
|
|
82
89
|
| Comando | O que faz | Quando usar |
|
|
@@ -90,6 +97,13 @@
|
|
|
90
97
|
| `squad:export` | Exporta uma squad local para snapshot/entrega | Quando quer empacotar a squad |
|
|
91
98
|
| `squad:pipeline` | Lista, inspeciona ou acompanha pipelines declarados na squad | Quando a squad define pipelines reutilizáveis |
|
|
92
99
|
| `squad:agent-create` | Cria agente customizado em `.aioson/my-agents/` ou dentro de uma squad | Quando quer criar agente personalizado. Veja [Agentes Customizados](./agentes-customizados.md) |
|
|
100
|
+
| `squad:dashboard` | Painel web local para monitorar squads em tempo real | Quando quer ver agentes rodando, contexto, tokens e métricas. Veja [Squad Dashboard](./squad-dashboard.md) |
|
|
101
|
+
| `squad:worker` | Executa, lista e testa workers não-LLM de uma squad | Quando quer rodar workers determinísticos manualmente |
|
|
102
|
+
| `squad:daemon` | Inicia/para/monitora daemon de workers automáticos | Quando quer execução 24/7 com cron e webhooks |
|
|
103
|
+
| `squad:mcp` | Configura e testa conectores MCP (WhatsApp, Telegram, etc.) | Quando quer integrar canais reais à squad |
|
|
104
|
+
| `squad:roi` | Define modelo de precificação e registra métricas de resultado | Quando quer calcular e reportar ROI da squad |
|
|
105
|
+
| `squad:processes` | Lista e encerra processos ativos de uma squad | Quando quer inspecionar ou parar agentes sem usar o dashboard |
|
|
106
|
+
| `squad:recovery` | Gera contexto de recovery para reinjecting após compact | Quando um agente perdeu contexto após compactação |
|
|
93
107
|
| `output-strategy:export` | Exporta a estratégia de output (webhooks, delivery) de uma squad | Quando quer copiar configuração para outra squad ou documentar |
|
|
94
108
|
| `output-strategy:import` | Importa estratégia de output de um arquivo ou outra squad | Quando quer replicar webhooks/delivery entre squads |
|
|
95
109
|
| `deliver` | Dispara delivery manual de conteúdo para webhooks configurados | Quando quer reenviar conteúdo ou testar webhooks |
|
|
@@ -519,7 +533,52 @@ Use:
|
|
|
519
533
|
- `squad:export` para empacotar a squad
|
|
520
534
|
- `squad:pipeline` para inspecionar pipelines definidos dentro da squad
|
|
521
535
|
|
|
522
|
-
### 18.
|
|
536
|
+
### 18. Monitorar squads com o Squad Dashboard
|
|
537
|
+
|
|
538
|
+
```bash
|
|
539
|
+
# Levantar o dashboard na raiz do projeto
|
|
540
|
+
aioson squad:dashboard
|
|
541
|
+
|
|
542
|
+
# Porta customizada
|
|
543
|
+
aioson squad:dashboard --port=4200
|
|
544
|
+
|
|
545
|
+
# Abrir direto em um squad específico
|
|
546
|
+
aioson squad:dashboard --squad=marketing-odonto
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
Acesse `http://localhost:4180` no browser. O dashboard mostra todos os squads do projeto com agentes rodando, uso de contexto, tokens, logs de execução e métricas em tempo real.
|
|
550
|
+
|
|
551
|
+
Para documentação completa: [Squad Dashboard](./squad-dashboard.md)
|
|
552
|
+
|
|
553
|
+
### 19. Workers, Daemon e Integrações
|
|
554
|
+
|
|
555
|
+
```bash
|
|
556
|
+
# Listar workers de uma squad
|
|
557
|
+
aioson squad:worker . --sub=list --squad=clinica
|
|
558
|
+
|
|
559
|
+
# Executar um worker manualmente
|
|
560
|
+
aioson squad:worker . --sub=run --squad=clinica --worker=confirma-consulta --input='{"phone":"5511999999999"}'
|
|
561
|
+
|
|
562
|
+
# Iniciar daemon (workers automáticos 24/7)
|
|
563
|
+
aioson squad:daemon . --sub=start --squad=clinica
|
|
564
|
+
|
|
565
|
+
# Ver status do daemon
|
|
566
|
+
aioson squad:daemon . --sub=status
|
|
567
|
+
|
|
568
|
+
# Configurar integração WhatsApp
|
|
569
|
+
aioson squad:mcp . --sub=configure --squad=clinica --mcp=whatsapp --connector=whatsapp-business
|
|
570
|
+
|
|
571
|
+
# Testar conexão
|
|
572
|
+
aioson squad:mcp . --sub=test --squad=clinica --mcp=whatsapp
|
|
573
|
+
|
|
574
|
+
# Registrar métrica de ROI
|
|
575
|
+
aioson squad:roi . --sub=metric --squad=clinica --key=no_show_rate --value=8 --unit=% --baseline=20 --target=5
|
|
576
|
+
|
|
577
|
+
# Ver relatório de ROI
|
|
578
|
+
aioson squad:roi . --sub=report --squad=clinica
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
### 20. Reparar bindings de genome em squads
|
|
523
582
|
|
|
524
583
|
```bash
|
|
525
584
|
aioson squad:repair-genomes .aioson/squads/marketing/squad.manifest.json --write
|
package/docs/pt/inicio-rapido.md
CHANGED
|
@@ -129,8 +129,24 @@ Se voce estiver entrando num projeto ja existente e quiser um companheiro tecnic
|
|
|
129
129
|
| Tamanho do projeto | Sequência de agentes |
|
|
130
130
|
|---|---|
|
|
131
131
|
| **MICRO** — 0–1 ponto | `@setup → @dev` |
|
|
132
|
-
| **SMALL** — 2–3 pontos | `@setup → @product → @analyst → @architect → @
|
|
133
|
-
| **MEDIUM** — 4–6 pontos | `@setup → @product → @analyst → @architect → @ux-ui → @pm → @orchestrator → @dev → @qa` |
|
|
132
|
+
| **SMALL** — 2–3 pontos | `@setup → @product → [@sheldon] → @analyst → @architect → @dev → @qa → [@tester]` |
|
|
133
|
+
| **MEDIUM** — 4–6 pontos | `@setup → @product → [@sheldon] → @analyst → @architect → @ux-ui → @pm → @orchestrator → @dev → @qa → [@tester]` |
|
|
134
|
+
|
|
135
|
+
`[@sheldon]` — opcional, recomendado para validar e enriquecer o PRD antes de codar.
|
|
136
|
+
`[@tester]` — opcional, para cobertura sistemática quando o `@dev` implementou sem testes adequados.
|
|
137
|
+
|
|
138
|
+
### Estratégia de documentos de kickoff
|
|
139
|
+
|
|
140
|
+
Antes de ativar `@product`, você pode criar arquivos de entrada na raiz do projeto:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
plans/minha-ideia.md ← suas notas brutas, esboços, referências
|
|
144
|
+
prds/visao-produto.md ← rascunhos de requisitos, inspirações
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
O `@product` e o `@sheldon` detectam esses arquivos automaticamente e perguntam se devem usá-los como fonte para gerar os artefatos formais em `.aioson/context/`. Os arquivos originais nunca são modificados — você decide quando deletá-los.
|
|
148
|
+
|
|
149
|
+
Esses arquivos de kickoff **não são versionados por padrão** (estão no `.gitignore`). Eles são documentos de trabalho do desenvolvedor, não artefatos do projeto.
|
|
134
150
|
|
|
135
151
|
### Atalho recomendado quando o escopo ainda está nebuloso
|
|
136
152
|
|