@jaimevalasek/aioson 1.3.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 +22 -3
- package/docs/en/squad-dashboard.md +372 -0
- package/docs/openclaw-bridge.md +308 -0
- package/docs/pt/README.md +62 -2
- package/docs/pt/advisor-spec.md +5 -5
- package/docs/pt/agentes-customizados.md +670 -0
- package/docs/pt/agentes.md +235 -23
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +49 -5
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +226 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +63 -2
- package/docs/pt/memoria-contexto.md +255 -0
- package/docs/pt/output-strategy-delivery.md +655 -0
- package/docs/pt/profiler-system.md +17 -17
- package/docs/pt/runtime-observability.md +5 -1
- package/docs/pt/skills.md +175 -0
- package/docs/pt/squad-dashboard.md +373 -0
- package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-matrix.md +5 -5
- package/docs/testing/genome-2.0-rollout.md +10 -10
- package/package.json +4 -4
- package/src/agents.js +21 -5
- package/src/backup-local.js +74 -0
- package/src/backup-provider.js +303 -0
- package/src/cli.js +276 -2
- package/src/commands/agents.js +22 -4
- package/src/commands/backup-local-cmd.js +25 -0
- package/src/commands/backup.js +533 -0
- package/src/commands/cloud.js +17 -17
- package/src/commands/context-pack.js +45 -0
- package/src/commands/implementation-plan.js +340 -0
- package/src/commands/learning.js +134 -0
- package/src/commands/live.js +1583 -0
- package/src/commands/runtime.js +1075 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +30 -2
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- 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 +103 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-mcp.js +270 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -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 +38 -2
- package/src/commands/squad-validate.js +118 -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/test-agents.js +6 -1
- package/src/commands/web-map.js +70 -0
- package/src/commands/web-scrape.js +71 -0
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +88 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +47 -1
- package/src/delivery-runner.js +319 -0
- package/src/genome-files.js +1 -1
- package/src/genome-format.js +1 -1
- package/src/i18n/messages/en.js +333 -8
- package/src/i18n/messages/es.js +240 -6
- package/src/i18n/messages/fr.js +239 -5
- package/src/i18n/messages/pt-BR.js +330 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/lib/webhook-server.js +328 -0
- package/src/mcp-connectors/registry.js +602 -0
- package/src/runtime-store.js +1037 -42
- package/src/session-handoff.js +77 -0
- 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 +40 -9
- package/template/.aioson/agents/architect.md +24 -5
- package/template/.aioson/agents/dev.md +254 -25
- package/template/.aioson/agents/deyvin.md +174 -0
- package/template/.aioson/agents/discovery-design-doc.md +25 -1
- package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
- package/template/.aioson/agents/neo.md +152 -0
- package/template/.aioson/agents/orache.md +388 -0
- package/template/.aioson/agents/orchestrator.md +63 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +113 -29
- package/template/.aioson/agents/profiler-enricher.md +1 -1
- package/template/.aioson/agents/profiler-forge.md +9 -9
- package/template/.aioson/agents/profiler-researcher.md +1 -1
- package/template/.aioson/agents/qa.md +18 -5
- package/template/.aioson/agents/setup.md +138 -18
- package/template/.aioson/agents/sheldon.md +603 -0
- package/template/.aioson/agents/squad.md +866 -28
- package/template/.aioson/agents/tester.md +254 -0
- package/template/.aioson/agents/ux-ui.md +289 -34
- package/template/.aioson/config.md +181 -0
- package/template/.aioson/context/spec.md.template +17 -0
- package/template/.aioson/genomes/.gitkeep +0 -0
- package/template/.aioson/installed-skills/.gitkeep +0 -0
- package/template/.aioson/locales/en/agents/analyst.md +34 -4
- package/template/.aioson/locales/en/agents/architect.md +18 -0
- package/template/.aioson/locales/en/agents/dev.md +155 -11
- package/template/.aioson/locales/en/agents/deyvin.md +137 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/neo.md +8 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/en/agents/pair.md +5 -0
- package/template/.aioson/locales/en/agents/pm.md +7 -0
- package/template/.aioson/locales/en/agents/product.md +35 -17
- package/template/.aioson/locales/en/agents/qa.md +56 -0
- package/template/.aioson/locales/en/agents/setup.md +53 -6
- package/template/.aioson/locales/en/agents/sheldon.md +340 -0
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +383 -35
- package/template/.aioson/locales/es/agents/analyst.md +24 -4
- package/template/.aioson/locales/es/agents/architect.md +18 -0
- package/template/.aioson/locales/es/agents/dev.md +136 -9
- package/template/.aioson/locales/es/agents/deyvin.md +97 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/neo.md +48 -0
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/es/agents/pair.md +5 -0
- package/template/.aioson/locales/es/agents/pm.md +7 -0
- package/template/.aioson/locales/es/agents/product.md +13 -3
- package/template/.aioson/locales/es/agents/qa.md +33 -0
- package/template/.aioson/locales/es/agents/setup.md +30 -6
- package/template/.aioson/locales/es/agents/sheldon.md +192 -0
- package/template/.aioson/locales/es/agents/squad.md +284 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/fr/agents/analyst.md +24 -4
- package/template/.aioson/locales/fr/agents/architect.md +18 -0
- package/template/.aioson/locales/fr/agents/dev.md +136 -9
- package/template/.aioson/locales/fr/agents/deyvin.md +97 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/neo.md +48 -0
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/fr/agents/pair.md +5 -0
- package/template/.aioson/locales/fr/agents/pm.md +7 -0
- package/template/.aioson/locales/fr/agents/product.md +13 -3
- package/template/.aioson/locales/fr/agents/qa.md +33 -0
- package/template/.aioson/locales/fr/agents/setup.md +30 -6
- package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
- package/template/.aioson/locales/fr/agents/squad.md +279 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +34 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +45 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +29 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +167 -15
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +62 -2
- package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
- package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/product.md +43 -20
- package/template/.aioson/locales/pt-BR/agents/qa.md +67 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +53 -6
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
- package/template/.aioson/locales/pt-BR/agents/squad.md +591 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +369 -22
- package/template/.aioson/my-agents/.gitkeep +0 -0
- package/template/.aioson/rules/.gitkeep +0 -0
- package/template/.aioson/rules/squad/.gitkeep +0 -0
- package/template/.aioson/rules/squad/README.md +50 -0
- package/template/.aioson/schemas/genome-meta.schema.json +1 -1
- package/template/.aioson/schemas/genome.schema.json +1 -1
- package/template/.aioson/schemas/squad-blueprint.schema.json +32 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +434 -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 +203 -0
- 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 +407 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +277 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -0
- package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
- package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
- package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
- package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
- package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
- package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
- package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
- package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
- 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/design-system/SKILL.md +92 -0
- package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -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/SKILL.md +58 -0
- package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
- package/template/.aioson/skills/squad/formats/.gitkeep +0 -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/.gitkeep +0 -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/.gitkeep +0 -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 +307 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- package/template/.aioson/tasks/squad-design.md +28 -0
- package/template/.aioson/tasks/squad-execution-plan.md +279 -0
- package/template/.aioson/tasks/squad-export.md +1 -1
- package/template/.aioson/tasks/squad-investigate.md +44 -0
- package/template/.aioson/tasks/squad-learning-review.md +44 -0
- package/template/.aioson/tasks/squad-output-config.md +177 -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/.aioson/tasks/squad-validate.md +1 -1
- package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
- package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
- package/template/.claude/commands/aioson/agent/genome.md +5 -0
- package/template/.claude/commands/aioson/agent/neo.md +5 -0
- package/template/.claude/commands/aioson/agent/product.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
- package/template/.claude/commands/aioson/agent/squad.md +5 -0
- package/template/.claude/commands/aioson/agent/tester.md +5 -0
- package/template/.gemini/GEMINI.md +3 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-neo.toml +4 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/.gemini/commands/aios-tester.toml +6 -0
- package/template/AGENTS.md +37 -6
- package/template/CLAUDE.md +34 -4
- package/template/OPENCODE.md +8 -2
- package/template/squad-searches/.gitkeep +0 -0
- package/template/.aioson/skills/static/interface-design.md +0 -372
- package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
- /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
- /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
- /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
- /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
- /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
- /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
- /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
- /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
- /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
# Automação de Squads — LLM-to-Script
|
|
2
|
+
|
|
3
|
+
> Como transformar processos de squad em scripts executáveis que rodam sem LLM.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Conceito
|
|
8
|
+
|
|
9
|
+
Toda vez que uma squad executa uma tarefa, custa tokens de LLM. Mas muitos processos seguem padrões repetíveis — mesma entrada, mesma transformação, mesma estrutura de saída. Quando isso acontece, o trabalho pode virar um **script que roda sozinho**: local, em CI/CD, cron, serverless ou qualquer ambiente.
|
|
10
|
+
|
|
11
|
+
O fluxo:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Squad produz output com LLM
|
|
15
|
+
↓
|
|
16
|
+
Orquestrador analisa: "isso pode virar script?"
|
|
17
|
+
↓
|
|
18
|
+
Cria script plan em script-plans/
|
|
19
|
+
↓
|
|
20
|
+
Usuário revisa e aprova
|
|
21
|
+
↓
|
|
22
|
+
LLM gera o script em scripts/
|
|
23
|
+
↓
|
|
24
|
+
Script roda sem LLM — custo zero por execução
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Quando funciona bem
|
|
30
|
+
|
|
31
|
+
A automação faz sentido quando o processo é **determinístico** — mesma entrada sempre produz a mesma saída.
|
|
32
|
+
|
|
33
|
+
**Bons candidatos:**
|
|
34
|
+
- Formatação de dados (CSV → JSON, Markdown → HTML)
|
|
35
|
+
- Preenchimento de templates (relatórios semanais, newsletters)
|
|
36
|
+
- Extração de informações de documentos estruturados
|
|
37
|
+
- Validação contra regras fixas (checklists, conformidade)
|
|
38
|
+
- Transformações de texto com padrões claros (slugify, normalizar, limpar)
|
|
39
|
+
- Geração de relatórios a partir de dados tabulares
|
|
40
|
+
- Pipeline de preparação de conteúdo (metadata, tags, categorização por regra)
|
|
41
|
+
|
|
42
|
+
**Não automatize:**
|
|
43
|
+
- Trabalho criativo (escrever copy original, brainstorming)
|
|
44
|
+
- Tarefas que precisam de pesquisa web ou dados em tempo real
|
|
45
|
+
- Processos onde o julgamento da LLM é o valor principal (code review, análise estratégica)
|
|
46
|
+
- Tarefas únicas que nunca vão se repetir
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Como usar
|
|
51
|
+
|
|
52
|
+
### Opção 1: O orquestrador oferece
|
|
53
|
+
|
|
54
|
+
Depois de uma sessão produtiva, o orquestrador da squad automaticamente avalia se o processo pode ser automatizado. Se a viabilidade for média ou alta, ele oferece:
|
|
55
|
+
|
|
56
|
+
> "Esse processo parece automatizável. Quer que eu analise se pode virar um script standalone que roda sem LLM?"
|
|
57
|
+
|
|
58
|
+
Se você aceitar, ele cria o script plan. Se recusar, segue em frente.
|
|
59
|
+
|
|
60
|
+
### Opção 2: Você pede explicitamente
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
@squad automate youtube-creator
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Isso analisa as sessões recentes da squad e propõe automações para os processos mais repetitivos.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Fase 1: Script plan
|
|
71
|
+
|
|
72
|
+
O script plan é um documento de análise que avalia **o que** pode ser automatizado e **como**.
|
|
73
|
+
|
|
74
|
+
Fica em: `.aioson/squads/{slug}/script-plans/{plan-slug}.md`
|
|
75
|
+
|
|
76
|
+
### Exemplo real: formatador de roteiros
|
|
77
|
+
|
|
78
|
+
Imagine uma squad de YouTube onde o roteirista sempre recebe um briefing e produz um roteiro no mesmo formato: hook, desenvolvimento, CTA, descrição do vídeo.
|
|
79
|
+
|
|
80
|
+
O script plan seria:
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
# Script Plan: format-youtube-script
|
|
84
|
+
|
|
85
|
+
**Status:** proposed
|
|
86
|
+
**Squad:** youtube-creator
|
|
87
|
+
**Session:** 2026-03-20-roteiro-ingles
|
|
88
|
+
**Language:** python
|
|
89
|
+
**Feasibility:** high
|
|
90
|
+
|
|
91
|
+
## What the LLM did
|
|
92
|
+
Recebeu um briefing com tema, público-alvo e estilo.
|
|
93
|
+
Produziu um roteiro com estrutura fixa: hook (3 opções),
|
|
94
|
+
desenvolvimento (3 blocos), CTA, descrição e tags.
|
|
95
|
+
|
|
96
|
+
## Automation feasibility analysis
|
|
97
|
+
|
|
98
|
+
### Can be automated
|
|
99
|
+
- Leitura do briefing a partir de template JSON
|
|
100
|
+
- Estruturação das seções (hook, blocos, CTA)
|
|
101
|
+
- Geração da descrição a partir de template com variáveis
|
|
102
|
+
- Formatação final em Markdown com frontmatter
|
|
103
|
+
|
|
104
|
+
### Cannot be automated
|
|
105
|
+
- Escrita criativa do conteúdo dos hooks
|
|
106
|
+
- Escolha da narrativa nos blocos de desenvolvimento
|
|
107
|
+
- Adaptação do tom ao público-alvo
|
|
108
|
+
|
|
109
|
+
### Feasibility verdict
|
|
110
|
+
Medium — a estrutura e formatação podem ser automatizadas,
|
|
111
|
+
mas o conteúdo criativo ainda precisa de LLM.
|
|
112
|
+
O script pode gerar o scaffold e pré-preencher seções fixas,
|
|
113
|
+
economizando ~40% do trabalho do agente.
|
|
114
|
+
|
|
115
|
+
## Script design
|
|
116
|
+
|
|
117
|
+
### Inputs
|
|
118
|
+
| Name | Type | Source | Example |
|
|
119
|
+
|------|------|--------|---------|
|
|
120
|
+
| briefing | JSON | arquivo local | {"tema":"inglês","publico":"25-40","estilo":"direto"} |
|
|
121
|
+
| template | Markdown | squad templates | roteiro-tmpl.md |
|
|
122
|
+
|
|
123
|
+
### Process
|
|
124
|
+
1. Ler briefing JSON
|
|
125
|
+
2. Carregar template de roteiro
|
|
126
|
+
3. Preencher variáveis fixas (tema, público, data)
|
|
127
|
+
4. Gerar estrutura das seções com placeholders
|
|
128
|
+
5. Adicionar frontmatter com metadata
|
|
129
|
+
6. Escrever arquivo Markdown de saída
|
|
130
|
+
|
|
131
|
+
### Outputs
|
|
132
|
+
| Name | Format | Location |
|
|
133
|
+
|------|--------|----------|
|
|
134
|
+
| roteiro-scaffold | Markdown | output/youtube-creator/ |
|
|
135
|
+
|
|
136
|
+
### Dependencies
|
|
137
|
+
- Nenhuma (stdlib Python)
|
|
138
|
+
|
|
139
|
+
### Limitations
|
|
140
|
+
- Não gera conteúdo criativo — apenas o scaffold
|
|
141
|
+
- Não substitui o agente para roteiros que fogem do template padrão
|
|
142
|
+
|
|
143
|
+
## Estimated effort
|
|
144
|
+
Small (< 100 lines)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Status do script plan
|
|
148
|
+
|
|
149
|
+
| Status | Significado |
|
|
150
|
+
|--------|-------------|
|
|
151
|
+
| `proposed` | Análise feita, aguardando aprovação |
|
|
152
|
+
| `approved` | Usuário aprovou, pronto para gerar script |
|
|
153
|
+
| `implemented` | Script gerado e funcional |
|
|
154
|
+
| `rejected` | Usuário considerou inviável ou desnecessário |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Fase 2: Geração do script
|
|
159
|
+
|
|
160
|
+
Quando você revisa o plan e diz "ok" / "pode gerar" / "implementa":
|
|
161
|
+
|
|
162
|
+
1. O status do plan muda para `approved`
|
|
163
|
+
2. A LLM gera o script em `.aioson/squads/{slug}/scripts/{script-slug}.py` (ou `.js`)
|
|
164
|
+
3. O status muda para `implemented`
|
|
165
|
+
4. O manifesto da squad é atualizado com a automação
|
|
166
|
+
|
|
167
|
+
### Requisitos do script gerado
|
|
168
|
+
|
|
169
|
+
Todo script deve ser **self-contained e executável**:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Python
|
|
173
|
+
python .aioson/squads/youtube-creator/scripts/format-youtube-script.py --help
|
|
174
|
+
python .aioson/squads/youtube-creator/scripts/format-youtube-script.py --input=briefing.json --output=output/
|
|
175
|
+
|
|
176
|
+
# Node.js
|
|
177
|
+
node .aioson/squads/data-pipeline/scripts/csv-to-dashboard.js --input=report.csv --output=dashboard.json
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Obrigatório em todo script:**
|
|
181
|
+
- Header com nome, origem (plan), e usage
|
|
182
|
+
- Parse de argumentos CLI (`--input`, `--output`, `--help`, `--dry-run`)
|
|
183
|
+
- Leitura de input via arquivo ou stdin
|
|
184
|
+
- Escrita de output via arquivo ou stdout
|
|
185
|
+
- Tratamento de erros com mensagens claras
|
|
186
|
+
- Zero paths hardcoded — tudo via argumentos
|
|
187
|
+
- Se precisar de pacotes externos, listar no header com instrução de install
|
|
188
|
+
|
|
189
|
+
### Exemplo de script gerado
|
|
190
|
+
|
|
191
|
+
```python
|
|
192
|
+
#!/usr/bin/env python3
|
|
193
|
+
"""
|
|
194
|
+
format-youtube-script — generated from squad:youtube-creator
|
|
195
|
+
Plan: script-plans/format-youtube-script.md
|
|
196
|
+
|
|
197
|
+
Gera scaffold de roteiro de YouTube a partir de briefing JSON.
|
|
198
|
+
|
|
199
|
+
Usage:
|
|
200
|
+
python format-youtube-script.py --input=briefing.json [--output=roteiro.md] [--template=tmpl.md]
|
|
201
|
+
python format-youtube-script.py --help
|
|
202
|
+
echo '{"tema":"..."}' | python format-youtube-script.py
|
|
203
|
+
"""
|
|
204
|
+
|
|
205
|
+
import argparse
|
|
206
|
+
import json
|
|
207
|
+
import sys
|
|
208
|
+
from datetime import date
|
|
209
|
+
from pathlib import Path
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
def load_input(input_path):
|
|
213
|
+
if input_path == '-' or input_path is None:
|
|
214
|
+
return json.load(sys.stdin)
|
|
215
|
+
return json.loads(Path(input_path).read_text())
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
def generate_scaffold(briefing, template_path=None):
|
|
219
|
+
tema = briefing.get('tema', 'Sem tema')
|
|
220
|
+
publico = briefing.get('publico', 'Geral')
|
|
221
|
+
estilo = briefing.get('estilo', 'neutro')
|
|
222
|
+
today = date.today().isoformat()
|
|
223
|
+
|
|
224
|
+
sections = [
|
|
225
|
+
f'---',
|
|
226
|
+
f'tema: {tema}',
|
|
227
|
+
f'publico: {publico}',
|
|
228
|
+
f'estilo: {estilo}',
|
|
229
|
+
f'data: {today}',
|
|
230
|
+
f'status: scaffold',
|
|
231
|
+
f'---',
|
|
232
|
+
f'',
|
|
233
|
+
f'# Roteiro: {tema}',
|
|
234
|
+
f'',
|
|
235
|
+
f'## Hook (escolher 1 de 3)',
|
|
236
|
+
f'1. [Hook opção A]',
|
|
237
|
+
f'2. [Hook opção B]',
|
|
238
|
+
f'3. [Hook opção C]',
|
|
239
|
+
f'',
|
|
240
|
+
f'## Desenvolvimento',
|
|
241
|
+
f'',
|
|
242
|
+
f'### Bloco 1',
|
|
243
|
+
f'[Conteúdo do primeiro bloco]',
|
|
244
|
+
f'',
|
|
245
|
+
f'### Bloco 2',
|
|
246
|
+
f'[Conteúdo do segundo bloco]',
|
|
247
|
+
f'',
|
|
248
|
+
f'### Bloco 3',
|
|
249
|
+
f'[Conteúdo do terceiro bloco]',
|
|
250
|
+
f'',
|
|
251
|
+
f'## CTA',
|
|
252
|
+
f'[Call to action]',
|
|
253
|
+
f'',
|
|
254
|
+
f'## Descrição do vídeo',
|
|
255
|
+
f'[Descrição para o YouTube]',
|
|
256
|
+
f'',
|
|
257
|
+
f'## Tags',
|
|
258
|
+
f'[Lista de tags]',
|
|
259
|
+
]
|
|
260
|
+
return '\n'.join(sections)
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
def main():
|
|
264
|
+
parser = argparse.ArgumentParser(description='Generate YouTube script scaffold from briefing')
|
|
265
|
+
parser.add_argument('--input', '-i', help='Path to briefing JSON (or - for stdin)')
|
|
266
|
+
parser.add_argument('--output', '-o', help='Output path (default: stdout)')
|
|
267
|
+
parser.add_argument('--template', '-t', help='Optional template file')
|
|
268
|
+
parser.add_argument('--dry-run', action='store_true', help='Show what would be generated')
|
|
269
|
+
args = parser.parse_args()
|
|
270
|
+
|
|
271
|
+
briefing = load_input(args.input)
|
|
272
|
+
result = generate_scaffold(briefing, args.template)
|
|
273
|
+
|
|
274
|
+
if args.dry_run:
|
|
275
|
+
print(f'[dry-run] Would generate {len(result)} chars')
|
|
276
|
+
print(f'[dry-run] Tema: {briefing.get("tema")}')
|
|
277
|
+
return
|
|
278
|
+
|
|
279
|
+
if args.output:
|
|
280
|
+
Path(args.output).write_text(result)
|
|
281
|
+
print(f'Scaffold saved to {args.output}')
|
|
282
|
+
else:
|
|
283
|
+
print(result)
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
if __name__ == '__main__':
|
|
287
|
+
main()
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Fase 3: Iteração
|
|
293
|
+
|
|
294
|
+
Se o script não funciona perfeitamente na primeira vez:
|
|
295
|
+
|
|
296
|
+
1. Reporte o problema: "O script não trata briefings sem campo 'estilo'"
|
|
297
|
+
2. A LLM corrige o script no mesmo arquivo
|
|
298
|
+
3. O plan ganha uma seção `## Iterations` documentando as mudanças
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Registro no manifesto
|
|
303
|
+
|
|
304
|
+
Quando um script é implementado, ele aparece no `squad.manifest.json`:
|
|
305
|
+
|
|
306
|
+
```json
|
|
307
|
+
{
|
|
308
|
+
"automations": [
|
|
309
|
+
{
|
|
310
|
+
"slug": "format-youtube-script",
|
|
311
|
+
"plan": "script-plans/format-youtube-script.md",
|
|
312
|
+
"script": "scripts/format-youtube-script.py",
|
|
313
|
+
"language": "python",
|
|
314
|
+
"status": "implemented",
|
|
315
|
+
"createdFrom": "2026-03-20-roteiro-ingles",
|
|
316
|
+
"inputs": ["briefing JSON com tema, público e estilo"],
|
|
317
|
+
"outputs": ["scaffold de roteiro em Markdown"]
|
|
318
|
+
}
|
|
319
|
+
]
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Estrutura de pastas
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
.aioson/squads/{squad-slug}/
|
|
329
|
+
script-plans/
|
|
330
|
+
format-youtube-script.md ← análise de viabilidade
|
|
331
|
+
validate-seo-checklist.md ← outro plan
|
|
332
|
+
scripts/
|
|
333
|
+
format-youtube-script.py ← script aprovado e implementado
|
|
334
|
+
validate-seo-checklist.js ← outro script
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Exemplos de automação por tipo de squad
|
|
340
|
+
|
|
341
|
+
### Squad de conteúdo
|
|
342
|
+
|
|
343
|
+
| Processo | Viabilidade | Tipo de script |
|
|
344
|
+
|----------|-------------|----------------|
|
|
345
|
+
| Formatar roteiro a partir de briefing | Alta | Python — template filling |
|
|
346
|
+
| Gerar metadata de vídeo (tags, descrição) | Média | Python — regras + template |
|
|
347
|
+
| Converter roteiro Markdown → teleprompter HTML | Alta | Node.js — parser + template |
|
|
348
|
+
| Analisar retenção de vídeo | Baixa | Precisa de API do YouTube |
|
|
349
|
+
|
|
350
|
+
### Squad de dados/relatórios
|
|
351
|
+
|
|
352
|
+
| Processo | Viabilidade | Tipo de script |
|
|
353
|
+
|----------|-------------|----------------|
|
|
354
|
+
| CSV → JSON normalizado | Alta | Python — pandas ou csv stdlib |
|
|
355
|
+
| Gerar relatório semanal a partir de dados | Alta | Python — template + dados |
|
|
356
|
+
| Validar conformidade de dataset | Alta | Python — regras fixas |
|
|
357
|
+
| Dashboard estático a partir de métricas | Alta | Node.js — chart.js + template |
|
|
358
|
+
|
|
359
|
+
### Squad de desenvolvimento
|
|
360
|
+
|
|
361
|
+
| Processo | Viabilidade | Tipo de script |
|
|
362
|
+
|----------|-------------|----------------|
|
|
363
|
+
| Gerar migration a partir de spec | Média | Node.js — parser de spec |
|
|
364
|
+
| Scaffold de CRUD completo | Alta | Node.js — templates de código |
|
|
365
|
+
| Validar PR contra checklist | Alta | Python — regex + regras |
|
|
366
|
+
| Gerar changelog a partir de commits | Alta | Python — git log parser |
|
|
367
|
+
|
|
368
|
+
### Squad jurídico
|
|
369
|
+
|
|
370
|
+
| Processo | Viabilidade | Tipo de script |
|
|
371
|
+
|----------|-------------|----------------|
|
|
372
|
+
| Formatar contrato a partir de template | Alta | Python — docx/md template |
|
|
373
|
+
| Extrair cláusulas de documento | Média | Python — regex patterns |
|
|
374
|
+
| Gerar checklist de compliance | Alta | Python — regras fixas |
|
|
375
|
+
| Analisar risco de contrato | Baixa | Julgamento humano/LLM |
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## Boas práticas
|
|
380
|
+
|
|
381
|
+
1. **Comece pelo plan.** Não peça script direto — o plan força a análise de viabilidade antes de investir esforço na implementação.
|
|
382
|
+
|
|
383
|
+
2. **Seja honesto com a viabilidade.** "Medium" é uma resposta válida. Um script que faz 60% do trabalho e deixa os 40% criativos para o LLM já economiza muito.
|
|
384
|
+
|
|
385
|
+
3. **Prefira Python ou Node.js com zero dependências.** Um script que precisa de `pip install` com 10 pacotes é mais difícil de rodar em qualquer ambiente.
|
|
386
|
+
|
|
387
|
+
4. **Use `--dry-run` em tudo.** O script deve poder mostrar o que faria sem fazer de fato.
|
|
388
|
+
|
|
389
|
+
5. **Não force automação em trabalho criativo.** Se o valor da squad é a criatividade dos agentes, automação não é o caminho — e tudo bem.
|
|
390
|
+
|
|
391
|
+
6. **Itere.** O primeiro script raramente é perfeito. A vantagem é que a LLM que gerou o script também pode corrigi-lo.
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## Relação com workers
|
|
396
|
+
|
|
397
|
+
A squad já tem o conceito de `worker` (tipo de executor determinístico em `workers/`). A diferença:
|
|
398
|
+
|
|
399
|
+
| | Worker | Automation script |
|
|
400
|
+
|---|---|---|
|
|
401
|
+
| **Criado quando** | Na montagem da squad | Depois de uma sessão produtiva |
|
|
402
|
+
| **Origem** | Planejado previamente | Extraído de um processo real |
|
|
403
|
+
| **Localização** | `workers/` | `scripts/` |
|
|
404
|
+
| **Tem plan** | Não | Sim (em `script-plans/`) |
|
|
405
|
+
| **Evolução** | Editado manualmente | Iterado com ajuda da LLM |
|
|
406
|
+
|
|
407
|
+
Workers são definidos na criação da squad para tarefas que **já se sabe** serem determinísticas. Scripts de automação nascem da observação de que um processo executado por agentes LLM **pode** ser replicado sem LLM.
|
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)
|
|
@@ -354,7 +398,7 @@ Plano de execução:
|
|
|
354
398
|
1. /product → PRD base vivo
|
|
355
399
|
2. /analyst → discovery e modelagem de domínio
|
|
356
400
|
3. /architect → estrutura de pastas Next.js MEDIUM + decisões técnicas
|
|
357
|
-
4. /ux-ui → sistema de design e componentes
|
|
401
|
+
4. /ux-ui → UI/UX, sistema de design e componentes
|
|
358
402
|
5. /pm → priorização e critérios de aceite no PRD vivo
|
|
359
403
|
6. /orchestrator → lanes de desenvolvimento paralelo
|
|
360
404
|
7. /dev → implementação por lane
|
|
@@ -408,7 +452,7 @@ src/
|
|
|
408
452
|
types/
|
|
409
453
|
```
|
|
410
454
|
|
|
411
|
-
### Passo 6:
|
|
455
|
+
### Passo 6: UI/UX (`@ux-ui`)
|
|
412
456
|
|
|
413
457
|
```
|
|
414
458
|
/ux-ui
|
|
@@ -420,7 +464,7 @@ Precisamos de:
|
|
|
420
464
|
- Página de configurações de billing
|
|
421
465
|
```
|
|
422
466
|
|
|
423
|
-
**O
|
|
467
|
+
**O agente UI/UX (`@ux-ui`) entrega** `.aioson/context/ui-spec.md`:
|
|
424
468
|
- Tokens: primary=#6366F1, gray scale, radius-md=8px
|
|
425
469
|
- Componentes: ProjectCard, TaskCard, KanbanBoard, Sidebar, BillingModal
|
|
426
470
|
- Estados: loading skeleton, empty state, error state para cada componente
|
package/docs/pt/clientes-ai.md
CHANGED
|
@@ -22,6 +22,8 @@ O AIOSON funciona com **Claude Code**, **Codex CLI** e **Gemini CLI**. Cada um t
|
|
|
22
22
|
|
|
23
23
|
O Claude Code lê `CLAUDE.md` automaticamente ao iniciar. Os agentes do AIOSON ficam em `.claude/commands/aioson/` — isso cria o namespace `/aioson/*` no autocomplete.
|
|
24
24
|
|
|
25
|
+
O nome humano do agente é **UI/UX**, mas o comando continua sendo `/aioson/ux-ui`.
|
|
26
|
+
|
|
25
27
|
### Ativando agentes
|
|
26
28
|
|
|
27
29
|
Digite `/` para abrir o autocomplete e depois `aioson/`:
|
|
@@ -30,6 +32,7 @@ Digite `/` para abrir o autocomplete e depois `aioson/`:
|
|
|
30
32
|
/aioson/setup
|
|
31
33
|
/aioson/analyst
|
|
32
34
|
/aioson/architect
|
|
35
|
+
/aioson/deyvin
|
|
33
36
|
/aioson/ux-ui
|
|
34
37
|
/aioson/pm
|
|
35
38
|
/aioson/dev
|
|
@@ -49,6 +52,16 @@ Digite `/` para abrir o autocomplete e depois `aioson/`:
|
|
|
49
52
|
```
|
|
50
53
|
> O agente @dev recebe o argumento como contexto extra e começa a implementação em steps atômicos.
|
|
51
54
|
|
|
55
|
+
```
|
|
56
|
+
/aioson/deyvin veja o que fizemos ontem e vamos continuar
|
|
57
|
+
```
|
|
58
|
+
> O agente @deyvin prioriza memoria + runtime + rules/docs antes de olhar Git e segue em modo companheiro tecnico.
|
|
59
|
+
|
|
60
|
+
Alias compativel:
|
|
61
|
+
```text
|
|
62
|
+
/aioson/pair
|
|
63
|
+
```
|
|
64
|
+
|
|
52
65
|
```
|
|
53
66
|
/aioson/qa
|
|
54
67
|
```
|
|
@@ -88,6 +101,34 @@ use @architect para desenhar a estrutura de pastas do projeto
|
|
|
88
101
|
activate the @qa agent to write tests for the auth module
|
|
89
102
|
```
|
|
90
103
|
|
|
104
|
+
### Sessao rastreada no dashboard
|
|
105
|
+
|
|
106
|
+
Se voce quer que a ativacao apareca em `tasks`, `agent_runs` e no dashboard do runtime, nao dependa so da mencao natural ao agente na conversa.
|
|
107
|
+
|
|
108
|
+
Use um gateway oficial antes de continuar no Codex:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
aioson workflow:next . --tool=codex
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
ou, para handoff direto rastreado:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
aioson agent:prompt deyvin . --tool=codex
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Se quiser que o proprio AIOSON abra e supervisione uma sessao viva do cliente externo, use:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
aioson live:start . --tool=codex --agent=deyvin --no-launch
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Dentro dessa sessao viva, o agente passa a usar `runtime:emit`, `live:handoff`, `live:status` e `live:close` para manter o dashboard e os arquivos de sessao sincronizados.
|
|
127
|
+
|
|
128
|
+
Depois cole o prompt gerado no Codex e continue a sessao.
|
|
129
|
+
|
|
130
|
+
A ativacao por linguagem natural via `AGENTS.md` pode executar o contrato do agente, mas nao garante registros no dashboard porque esse caminho nao passa pelo gateway oficial.
|
|
131
|
+
|
|
91
132
|
### Exemplos completos
|
|
92
133
|
|
|
93
134
|
**Iniciar projeto novo:**
|
|
@@ -100,6 +141,11 @@ use the @setup agent to onboard this project
|
|
|
100
141
|
use @dev to implement user registration with email verification, atomic steps
|
|
101
142
|
```
|
|
102
143
|
|
|
144
|
+
**Continuar sessao anterior:**
|
|
145
|
+
```
|
|
146
|
+
use @deyvin to review the latest runtime/tasks, tell me where we stopped, and continue with me
|
|
147
|
+
```
|
|
148
|
+
|
|
103
149
|
**Revisar plano:**
|
|
104
150
|
```
|
|
105
151
|
use @analyst to analyze the requirements in prd.md and identify gaps
|
|
@@ -125,6 +171,8 @@ Quando você menciona `@setup`, o Codex lê o arquivo correspondente e segue tod
|
|
|
125
171
|
### Dicas para Codex
|
|
126
172
|
|
|
127
173
|
- **Seja explícito**: `use @dev` funciona melhor que apenas "implemente"
|
|
174
|
+
- **Para continuidade**: `use @deyvin` funciona melhor que "ve o que fizemos ontem"
|
|
175
|
+
- **Para rastreamento no dashboard**: prefira `aioson workflow:next . --tool=codex` ou `aioson agent:prompt <agente> . --tool=codex` antes de colar o prompt no Codex
|
|
128
176
|
- **Passe contexto**: `use @dev to implement X — read spec.md first`
|
|
129
177
|
- **Comece sempre com @setup** se `project.context.md` não existir
|
|
130
178
|
- O Codex também lê o contexto do agente selecionado automaticamente via `AGENTS.md`
|
|
@@ -137,6 +185,8 @@ Quando você menciona `@setup`, o Codex lê o arquivo correspondente e segue tod
|
|
|
137
185
|
|
|
138
186
|
O Gemini CLI lê `.gemini/GEMINI.md` ao iniciar e reconhece comandos definidos em `.gemini/commands/*.toml`. Os agentes do AIOSON são registrados com o prefixo `aios-`.
|
|
139
187
|
|
|
188
|
+
O nome humano do agente é **UI/UX**, mas o comando continua sendo `/aios-ux-ui`.
|
|
189
|
+
|
|
140
190
|
### Ativando agentes
|
|
141
191
|
|
|
142
192
|
Digite `/aios-` para ver os comandos disponíveis no autocomplete:
|
|
@@ -145,6 +195,7 @@ Digite `/aios-` para ver os comandos disponíveis no autocomplete:
|
|
|
145
195
|
/aios-setup
|
|
146
196
|
/aios-analyst
|
|
147
197
|
/aios-architect
|
|
198
|
+
/aios-deyvin
|
|
148
199
|
/aios-ux-ui
|
|
149
200
|
/aios-pm
|
|
150
201
|
/aios-dev
|
|
@@ -164,6 +215,16 @@ Digite `/aios-` para ver os comandos disponíveis no autocomplete:
|
|
|
164
215
|
```
|
|
165
216
|
> Ativa o agente de desenvolvimento.
|
|
166
217
|
|
|
218
|
+
```
|
|
219
|
+
/aios-deyvin
|
|
220
|
+
```
|
|
221
|
+
> Ativa o agente de continuidade e pair programming.
|
|
222
|
+
|
|
223
|
+
Alias compativel:
|
|
224
|
+
```text
|
|
225
|
+
/aios-pair
|
|
226
|
+
```
|
|
227
|
+
|
|
167
228
|
```
|
|
168
229
|
/aios-orchestrator
|
|
169
230
|
```
|
|
@@ -203,6 +264,7 @@ Independente de qual CLI você usa, todos leem os mesmos arquivos:
|
|
|
203
264
|
context/
|
|
204
265
|
project.context.md ← gerado pelo @setup, lido por todos
|
|
205
266
|
spec.md ← documento vivo, atualizado pelo @orchestrator
|
|
267
|
+
runtime/aios.sqlite ← tasks, runs e logs consultados pelo @deyvin e pelo dashboard
|
|
206
268
|
```
|
|
207
269
|
|
|
208
270
|
Você pode começar um projeto com Claude Code, continuar com Codex no dia seguinte, e o contexto persiste — todos os agentes leem o mesmo `project.context.md`.
|