@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
|
@@ -18,7 +18,7 @@ Each agent has a specific role and can be invoked directly by the user (e.g., `@
|
|
|
18
18
|
`@copywriter`). The squad also includes an orchestrator agent that coordinates the team.
|
|
19
19
|
|
|
20
20
|
`@squad` is exclusive to squad creation and maintenance.
|
|
21
|
-
`@
|
|
21
|
+
`@genome` is exclusive to genome creation and application.
|
|
22
22
|
|
|
23
23
|
## Parallel squads rule
|
|
24
24
|
|
|
@@ -45,7 +45,7 @@ If the user clearly wants a new squad and the slug collides:
|
|
|
45
45
|
|
|
46
46
|
## Entry
|
|
47
47
|
|
|
48
|
-
Start squad creation directly. Do not offer a Lite/
|
|
48
|
+
Start squad creation directly. Do not offer a Lite/Genome choice.
|
|
49
49
|
|
|
50
50
|
Suggested entry message:
|
|
51
51
|
|
|
@@ -58,7 +58,7 @@ Suggested entry message:
|
|
|
58
58
|
> 4. important constraints
|
|
59
59
|
> 5. roles you want in the squad, or I can choose them
|
|
60
60
|
>
|
|
61
|
-
> If you later want to enrich this squad with genomes, use `@
|
|
61
|
+
> If you later want to enrich this squad with genomes, use `@genome` to create and apply genomes to the squad or to specific agents."
|
|
62
62
|
|
|
63
63
|
## Subcommand routing
|
|
64
64
|
|
|
@@ -73,10 +73,141 @@ If the user includes a subcommand, route to the corresponding task:
|
|
|
73
73
|
- `@squad export <slug>` → read and execute `.aioson/tasks/squad-export.md` (Fase 3)
|
|
74
74
|
- `@squad pipeline <sub> [args]` → read and execute `.aioson/tasks/squad-pipeline.md`
|
|
75
75
|
- `@squad create --from-artisan <id>` → read artisan PRD and use as blueprint source (see Artisan integration below)
|
|
76
|
+
- `@squad --config=output --squad=<slug>` → read and execute `.aioson/tasks/squad-output-config.md`
|
|
77
|
+
- `@squad automate <slug>` → analyze the last session and propose script plans (see **Automation extraction** below)
|
|
78
|
+
- `@squad investigate <domain>` → read and execute `.aioson/tasks/squad-investigate.md`
|
|
79
|
+
- `@squad design --investigate` → run investigation before design
|
|
80
|
+
- `@squad plan <slug>` → read and execute `.aioson/tasks/squad-execution-plan.md`
|
|
76
81
|
|
|
77
82
|
If no subcommand is given (just `@squad` or `@squad` with freeform text):
|
|
78
|
-
→ Run the full flow: design → create → validate in sequence.
|
|
79
|
-
→ This is the "fast path" — same behavior as today but now with a blueprint intermediary.
|
|
83
|
+
→ Run the full flow: design → create → validate → execution plan (if qualified) in sequence.
|
|
84
|
+
→ This is the "fast path" — same behavior as today but now with a blueprint intermediary and optional execution plan.
|
|
85
|
+
|
|
86
|
+
## Ephemeral squads (temporary, ad-hoc)
|
|
87
|
+
|
|
88
|
+
When the user needs a quick, one-off squad that won't persist:
|
|
89
|
+
|
|
90
|
+
- `@squad --ephemeral` or user says "quick squad", "temporary squad", "just for this session"
|
|
91
|
+
- Creates a lightweight squad with `"ephemeral": true` in the manifest
|
|
92
|
+
- Skips design-doc, readiness, and detailed skills/MCPs derivation
|
|
93
|
+
- Uses a timestamped slug: `ephemeral-{domain-hint}-{YYYYMMDD-HHmm}`
|
|
94
|
+
- Agents go to `.aioson/squads/{slug}/agents/` as normal (so they're invocable)
|
|
95
|
+
- Output goes to `output/{slug}/` as normal
|
|
96
|
+
- After the session or after TTL expires, the squad is eligible for cleanup
|
|
97
|
+
- `@squad` will NOT list ephemeral squads by default (use `--include-ephemeral` to see them)
|
|
98
|
+
|
|
99
|
+
Set in manifest:
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"ephemeral": true,
|
|
103
|
+
"ttl": "24h"
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Ephemeral squads are **not registered** in CLAUDE.md or AGENTS.md.
|
|
108
|
+
They exist only for the current session or TTL window.
|
|
109
|
+
|
|
110
|
+
## Investigation integration (optional, recommended for new domains)
|
|
111
|
+
|
|
112
|
+
Before defining executors, the squad can benefit from a domain investigation by @orache.
|
|
113
|
+
|
|
114
|
+
When to offer investigation:
|
|
115
|
+
- The domain is unfamiliar or specialized
|
|
116
|
+
- The user hasn't provided deep domain context
|
|
117
|
+
- The squad will run repeatedly (investment pays off)
|
|
118
|
+
- The user explicitly asks for richer agents
|
|
119
|
+
|
|
120
|
+
When to skip:
|
|
121
|
+
- The domain is well-known (software dev, basic marketing)
|
|
122
|
+
- The user provided extensive context already
|
|
123
|
+
- Ephemeral squads
|
|
124
|
+
- The user explicitly wants speed over depth
|
|
125
|
+
|
|
126
|
+
Flow:
|
|
127
|
+
1. After collecting basic context, ask: "This domain could benefit from a
|
|
128
|
+
deep investigation for richer agents. Want me to investigate first? (adds 2-3 min)"
|
|
129
|
+
2. If yes → invoke @orache (read `.aioson/agents/orache.md`)
|
|
130
|
+
3. @orache saves report to `squad-searches/`
|
|
131
|
+
4. Read the report and use it to enrich:
|
|
132
|
+
- Executor roles and focus areas
|
|
133
|
+
- Domain vocabulary in executor prompts
|
|
134
|
+
- Quality checklists from benchmarks
|
|
135
|
+
- Content blueprints from structural patterns
|
|
136
|
+
- Hard constraints from anti-patterns
|
|
137
|
+
5. Reference the investigation in the blueprint:
|
|
138
|
+
`"investigation": { "slug": "<slug>", "path": "<path>", "confidence": <score> }`
|
|
139
|
+
|
|
140
|
+
When the squad is created with an investigation, the investigation report
|
|
141
|
+
becomes part of the squad package and is saved alongside it.
|
|
142
|
+
|
|
143
|
+
## Profiler integration (for persona-based squads)
|
|
144
|
+
|
|
145
|
+
When the squad creation reveals that the domain revolves around a specific
|
|
146
|
+
person, brand, or methodology creator, offer profiling:
|
|
147
|
+
|
|
148
|
+
Detection heuristics:
|
|
149
|
+
- User mentions a specific person by name
|
|
150
|
+
- The goal includes "in the style of", "like {person}", "based on {person}'s approach"
|
|
151
|
+
- The domain is personal branding, content creation for a specific creator, or methodology replication
|
|
152
|
+
|
|
153
|
+
When detected:
|
|
154
|
+
1. Ask: "This squad seems to be about {person}'s approach. Want me to profile
|
|
155
|
+
them for more authentic agents? (adds 5-10 min)"
|
|
156
|
+
2. If yes:
|
|
157
|
+
a. Check if `.aioson/profiler-reports/{person-slug}/` already exists
|
|
158
|
+
b. If exists: read the enriched profile and skip to genome application
|
|
159
|
+
c. If not: invoke the profiler pipeline (researcher → enricher → forge)
|
|
160
|
+
d. Apply the resulting genome to relevant creative executors
|
|
161
|
+
3. If no: continue with standard squad creation
|
|
162
|
+
|
|
163
|
+
When a profiling genome is applied:
|
|
164
|
+
- Record in the blueprint: `"profiling": { "person": "{name}", "genomePath": "{path}" }`
|
|
165
|
+
- Mark affected executors with `genomeSource` pointing to the genome
|
|
166
|
+
- Add a note in the squad docs: "This squad was profiled from {person}'s methodology"
|
|
167
|
+
|
|
168
|
+
The profiling task protocol is defined in `.aioson/tasks/squad-profile.md`.
|
|
169
|
+
|
|
170
|
+
## Squad creation rules (extensible)
|
|
171
|
+
|
|
172
|
+
Before creating any squad, check `.aioson/rules/squad/` for `.md` files.
|
|
173
|
+
|
|
174
|
+
For each file found:
|
|
175
|
+
1. Read YAML frontmatter
|
|
176
|
+
2. Check `applies_to:` field:
|
|
177
|
+
- If absent → universal rule (applies to all squads)
|
|
178
|
+
- If `applies_to: [content]` → only for squads with mode: content
|
|
179
|
+
- If `applies_to: [software, mixed]` → for those modes
|
|
180
|
+
- If `applies_to: [domain:youtube]` → only when domain matches
|
|
181
|
+
3. Load matching rules into your context
|
|
182
|
+
4. Follow them during squad creation
|
|
183
|
+
|
|
184
|
+
Rules override defaults. If a rule says "minimum 5 executors", follow it
|
|
185
|
+
even if the heuristic would suggest 3.
|
|
186
|
+
|
|
187
|
+
## Squad skills (on-demand loading)
|
|
188
|
+
|
|
189
|
+
Before defining executors and structure, check `.aioson/skills/squad/` for
|
|
190
|
+
relevant knowledge.
|
|
191
|
+
|
|
192
|
+
### Loading strategy
|
|
193
|
+
1. Read `.aioson/skills/squad/SKILL.md` (router) — understand what's available
|
|
194
|
+
2. Based on the squad domain/mode, load matching domain skills:
|
|
195
|
+
- If creating a YouTube squad → load `domains/youtube-content.md`
|
|
196
|
+
- If creating a SaaS squad → load `domains/saas-product.md`
|
|
197
|
+
- If no exact match → check if a similar domain exists, or proceed with LLM knowledge
|
|
198
|
+
3. Based on squad needs, load matching patterns:
|
|
199
|
+
- If squad needs review loops → load `patterns/review-loop-pattern.md`
|
|
200
|
+
- If squad targets multiple platforms → load `patterns/multi-platform-pattern.md`
|
|
201
|
+
4. Based on content format needs, load matching formats:
|
|
202
|
+
- Check `formats/catalog.json` for platform-specific formats
|
|
203
|
+
- Load only the formats relevant to the squad's target platforms
|
|
204
|
+
5. Use reference materials when needed:
|
|
205
|
+
- `references/executor-archetypes.md` for role inspiration
|
|
206
|
+
- `references/checklist-templates.md` for quality gates
|
|
207
|
+
|
|
208
|
+
### NEVER load everything at once
|
|
209
|
+
Only load skills that are directly relevant. A software squad doesn't need
|
|
210
|
+
instagram-feed.md. A YouTube squad doesn't need legal-consulting.md.
|
|
80
211
|
|
|
81
212
|
## Squad creation flow
|
|
82
213
|
|
|
@@ -139,7 +270,7 @@ But do not jump straight into agents if the problem is still too ambiguous.
|
|
|
139
270
|
|
|
140
271
|
Genomes may be added:
|
|
141
272
|
- after the squad already exists
|
|
142
|
-
- at any time via `@
|
|
273
|
+
- at any time via `@genome`
|
|
143
274
|
|
|
144
275
|
When a new genome is applied after squad creation:
|
|
145
276
|
- update `.aioson/squads/{slug}/squad.md`
|
|
@@ -151,7 +282,7 @@ The goal is that, on the next invocation, the agent already uses that genome wit
|
|
|
151
282
|
If the user asks for a genome during the `@squad` session, do not treat that as an entry mode.
|
|
152
283
|
Instead:
|
|
153
284
|
- finish or confirm squad creation
|
|
154
|
-
- explicitly instruct the user to call `@
|
|
285
|
+
- explicitly instruct the user to call `@genome`
|
|
155
286
|
- apply the genome afterward to the squad or to specific agents
|
|
156
287
|
|
|
157
288
|
## Compatibility of genomes in existing squads
|
|
@@ -205,6 +336,55 @@ When applying a genome that was already applied before:
|
|
|
205
336
|
- Show semantic diff: "genome-slug changed: added section X, removed constraint Y"
|
|
206
337
|
- Ask for confirmation before rewriting any executor files
|
|
207
338
|
|
|
339
|
+
## Executor classification
|
|
340
|
+
|
|
341
|
+
Before generating executors, classify each role using this decision tree:
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
TASK / ROLE
|
|
345
|
+
├── Is it deterministic? (same input → same output, always)
|
|
346
|
+
│ ├── YES → type: worker (Python/bash script, no LLM, zero cost)
|
|
347
|
+
│ └── NO ↓
|
|
348
|
+
├── Requires critical human judgment? (legal, financial, accountability)
|
|
349
|
+
│ ├── YES → type: human-gate (approval checkpoint with graduated rules)
|
|
350
|
+
│ └── NO ↓
|
|
351
|
+
├── Must replicate a specific real person's methodology?
|
|
352
|
+
│ ├── YES → type: clone (requires genome)
|
|
353
|
+
│ └── NO ↓
|
|
354
|
+
├── Is it a specialized domain requiring deep expertise?
|
|
355
|
+
│ ├── YES → type: assistant (domain specialist)
|
|
356
|
+
│ └── NO → type: agent (LLM with defined role)
|
|
357
|
+
│
|
|
358
|
+
└── Group of roles with a shared mission → squad
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Apply this classification to every executor before writing files.
|
|
362
|
+
Show the classification to the user as part of the squad confirmation.
|
|
363
|
+
|
|
364
|
+
**Rules by type:**
|
|
365
|
+
- `worker` → generate script in `workers/` (Python or bash), NOT in `agents/`
|
|
366
|
+
- `agent` → generate `.md` in `agents/` (default flow)
|
|
367
|
+
- `clone` → generate `.md` in `agents/` + reference genome via `genomeSource`
|
|
368
|
+
- `assistant` → generate `.md` in `agents/` + include `domain` and `behavioralProfile` (DISC-based)
|
|
369
|
+
- `human-gate` → register in manifest JSON + workflow only; no `.md` file generated
|
|
370
|
+
|
|
371
|
+
**DISC behavioral profiles for assistants:**
|
|
372
|
+
|
|
373
|
+
When creating a `type: assistant` executor, assign a DISC-based profile that matches the function:
|
|
374
|
+
|
|
375
|
+
| Profile | Traits | Best for |
|
|
376
|
+
|---------|--------|----------|
|
|
377
|
+
| `dominant-driver` | Decisive, results-oriented, fast | Project managers, decision-makers |
|
|
378
|
+
| `influential-expressive` | Persuasive, creative, enthusiastic | Copywriters, salespeople, presenters |
|
|
379
|
+
| `steady-amiable` | Patient, supportive, reliable | Customer support, mentors, mediators |
|
|
380
|
+
| `compliant-analytical` | Precise, systematic, detail-oriented | Analysts, auditors, tax specialists, QA |
|
|
381
|
+
| `dominant-influential` | Visionary, assertive, inspiring | Leaders, strategists, founders |
|
|
382
|
+
| `influential-steady` | Collaborative, empathetic, diplomatic | HR, coaches, community managers |
|
|
383
|
+
| `steady-compliant` | Methodical, loyal, process-oriented | Operations, compliance, documentation |
|
|
384
|
+
| `compliant-dominant` | Strategic, exacting, quality-driven | Architects, engineers, researchers |
|
|
385
|
+
|
|
386
|
+
The profile shapes the assistant's communication style and decision-making approach in the generated agent file.
|
|
387
|
+
|
|
208
388
|
## Agent generation
|
|
209
389
|
|
|
210
390
|
After gathering information, determine **3–5 specialized roles** the domain requires.
|
|
@@ -218,9 +398,14 @@ Every new squad must also include:
|
|
|
218
398
|
- templates at `.aioson/squads/{squad-slug}/templates/`
|
|
219
399
|
- a local `design-doc` at `.aioson/squads/{squad-slug}/docs/design-doc.md`
|
|
220
400
|
- a local `readiness` file at `.aioson/squads/{squad-slug}/docs/readiness.md`
|
|
221
|
-
- permanent executors in `.aioson/squads/{squad-slug}/agents/`
|
|
401
|
+
- permanent executors (agents, clones, assistants) in `.aioson/squads/{squad-slug}/agents/`
|
|
402
|
+
- workers (deterministic scripts, no LLM) in `.aioson/squads/{squad-slug}/workers/`
|
|
403
|
+
- workflows (phase pipelines with handoffs) in `.aioson/squads/{squad-slug}/workflows/`
|
|
404
|
+
- checklists (quality validation) in `.aioson/squads/{squad-slug}/checklists/`
|
|
405
|
+
- script plans (automation analysis) in `.aioson/squads/{squad-slug}/script-plans/`
|
|
406
|
+
- scripts (approved automation scripts) in `.aioson/squads/{squad-slug}/scripts/`
|
|
222
407
|
- metadata at `.aioson/squads/{slug}/squad.md`
|
|
223
|
-
- `output/`, `
|
|
408
|
+
- `output/`, `aioson-logs/`, and `media/` directories
|
|
224
409
|
|
|
225
410
|
For content-heavy squads, do not treat output as only loose files.
|
|
226
411
|
Think in terms of **content items** tied to tasks.
|
|
@@ -232,6 +417,7 @@ Before writing the executor files, derive:
|
|
|
232
417
|
- **squad MCPs**: external access truly needed, with justification
|
|
233
418
|
- **subagent policy**: when temporary investigation/parallelism is appropriate
|
|
234
419
|
- **content blueprints**: which content types the squad usually produces and how they should be rendered
|
|
420
|
+
- **output strategy**: if the domain suggests recurring data, webhook delivery, or database storage, load `.aioson/tasks/squad-output-config.md` and run the output configuration wizard. For file-only squads (landing pages, reports), use the default `mode: "files"` and skip the wizard.
|
|
235
421
|
|
|
236
422
|
While deriving this package:
|
|
237
423
|
- reuse existing local docs on demand instead of loading everything
|
|
@@ -439,7 +625,7 @@ Create `.aioson/squads/{squad-slug}/agents/agents.md`:
|
|
|
439
625
|
## Outputs and review
|
|
440
626
|
- Drafts: `output/{squad-slug}/`
|
|
441
627
|
- Final HTML: `output/{squad-slug}/{session-id}.html`
|
|
442
|
-
- Logs: `
|
|
628
|
+
- Logs: `aioson-logs/{squad-slug}/`
|
|
443
629
|
- Media: `media/{squad-slug}/`
|
|
444
630
|
- Every final delivery must go through critical read and synthesis by @orquestrador
|
|
445
631
|
```
|
|
@@ -468,13 +654,18 @@ Also create `.aioson/squads/{squad-slug}/squad.manifest.json` with this minimum
|
|
|
468
654
|
"package": {
|
|
469
655
|
"rootDir": ".aioson/squads/{squad-slug}",
|
|
470
656
|
"agentsDir": ".aioson/squads/{squad-slug}/agents",
|
|
657
|
+
"workersDir": ".aioson/squads/{squad-slug}/workers",
|
|
658
|
+
"workflowsDir": ".aioson/squads/{squad-slug}/workflows",
|
|
659
|
+
"checklistsDir": ".aioson/squads/{squad-slug}/checklists",
|
|
471
660
|
"skillsDir": ".aioson/squads/{squad-slug}/skills",
|
|
472
661
|
"templatesDir": ".aioson/squads/{squad-slug}/templates",
|
|
473
|
-
"docsDir": ".aioson/squads/{squad-slug}/docs"
|
|
662
|
+
"docsDir": ".aioson/squads/{squad-slug}/docs",
|
|
663
|
+
"scriptPlansDir": ".aioson/squads/{squad-slug}/script-plans",
|
|
664
|
+
"scriptsDir": ".aioson/squads/{squad-slug}/scripts"
|
|
474
665
|
},
|
|
475
666
|
"rules": {
|
|
476
667
|
"outputsDir": "output/{squad-slug}",
|
|
477
|
-
"logsDir": "
|
|
668
|
+
"logsDir": "aioson-logs/{squad-slug}",
|
|
478
669
|
"mediaDir": "media/{squad-slug}",
|
|
479
670
|
"reviewPolicy": ["clarity", "density", "consistency", "next-step"]
|
|
480
671
|
},
|
|
@@ -512,13 +703,19 @@ Also create `.aioson/squads/{squad-slug}/squad.manifest.json` with this minimum
|
|
|
512
703
|
{
|
|
513
704
|
"slug": "orquestrador",
|
|
514
705
|
"title": "Orchestrator",
|
|
706
|
+
"type": "agent",
|
|
515
707
|
"role": "Coordinates the squad and publishes the final HTML.",
|
|
516
708
|
"file": ".aioson/squads/{squad-slug}/agents/orquestrador.md",
|
|
709
|
+
"deterministic": false,
|
|
710
|
+
"usesLLM": true,
|
|
517
711
|
"skills": [],
|
|
518
712
|
"genomes": []
|
|
519
713
|
}
|
|
520
714
|
],
|
|
521
|
-
"
|
|
715
|
+
"checklists": [],
|
|
716
|
+
"workflows": [],
|
|
717
|
+
"genomes": [],
|
|
718
|
+
"automations": []
|
|
522
719
|
}
|
|
523
720
|
```
|
|
524
721
|
|
|
@@ -587,7 +784,7 @@ Other agents: @orquestrador, @{other-role-slugs}
|
|
|
587
784
|
- Always use this agent's active genomes as high-priority domain and style context
|
|
588
785
|
- All deliverable files go to `output/{squad-slug}/`
|
|
589
786
|
- Do not overwrite other agents' output files
|
|
590
|
-
- Write technical session logs to `
|
|
787
|
+
- Write technical session logs to `aioson-logs/{squad-slug}/` when logging is needed
|
|
591
788
|
|
|
592
789
|
## Output contract
|
|
593
790
|
- Intermediate drafts: `output/{squad-slug}/`
|
|
@@ -641,6 +838,28 @@ synthesize outputs, manage the session HTML report.
|
|
|
641
838
|
- Use subagents only for isolated investigation, comparison, broad reading, or parallel work
|
|
642
839
|
- Do not use subagents as substitutes for skills or permanent executors
|
|
643
840
|
|
|
841
|
+
## Cross-squad awareness (meta-orchestration)
|
|
842
|
+
|
|
843
|
+
When the project has multiple squads, this orchestrator should be aware of sibling squads.
|
|
844
|
+
Before starting a new session:
|
|
845
|
+
1. Scan `.aioson/squads/` for other squad directories
|
|
846
|
+
2. Read each sibling `squad.md` to understand their domain and capabilities
|
|
847
|
+
3. If a user request falls outside this squad's domain, suggest routing to the appropriate sibling squad
|
|
848
|
+
4. If a task requires cross-squad collaboration, coordinate handoffs explicitly
|
|
849
|
+
|
|
850
|
+
Cross-squad routing template:
|
|
851
|
+
> "This request is better handled by squad **{sibling-name}** ({sibling-domain}).
|
|
852
|
+
> Invoke `@{sibling-orquestrador}` or switch to that squad."
|
|
853
|
+
|
|
854
|
+
Never silently absorb tasks that belong to a sibling squad.
|
|
855
|
+
Never duplicate capabilities that already exist in another squad.
|
|
856
|
+
|
|
857
|
+
## Automation awareness
|
|
858
|
+
After productive sessions that produce structured output, evaluate whether
|
|
859
|
+
the process is automatable. If feasibility is medium or high, offer to
|
|
860
|
+
create a script plan. Never insist — offer once and respect the user's choice.
|
|
861
|
+
Script plans go to `.aioson/squads/{squad-slug}/script-plans/`, approved scripts to `.aioson/squads/{squad-slug}/scripts/`.
|
|
862
|
+
|
|
644
863
|
## Hard constraints
|
|
645
864
|
- Always involve all relevant specialists for each challenge
|
|
646
865
|
- Specialists must save structured intermediate content as `.md` directly inside `output/{squad-slug}/`
|
|
@@ -650,15 +869,374 @@ synthesize outputs, manage the session HTML report.
|
|
|
650
869
|
- `.aioson/context/` accepts only `.md` files — do not write non-markdown files there
|
|
651
870
|
- Do not accept shallow specialist responses: each contribution should contain problem reading, recommendation, reasoning, risk, and next step when relevant
|
|
652
871
|
|
|
872
|
+
## Execution plan awareness
|
|
873
|
+
|
|
874
|
+
Before the first session and at the start of each new session:
|
|
875
|
+
1. Check if `docs/execution-plan.md` exists in the squad package
|
|
876
|
+
2. If yes and status = `approved` → follow the plan's sequence of rounds
|
|
877
|
+
- Read executor briefings from the plan
|
|
878
|
+
- Follow the orchestration notes
|
|
879
|
+
- After each round, verify against the plan's quality gates
|
|
880
|
+
- If the plan defines round order, respect it unless the user explicitly overrides
|
|
881
|
+
3. If yes and status = `draft` → ask: "There's a draft execution plan. Approve before starting?"
|
|
882
|
+
4. If no → proceed with ad-hoc orchestration based on the manifest and routing guide
|
|
883
|
+
5. After each productive session, check success criteria from the plan
|
|
884
|
+
6. If the plan becomes stale (squad manifest changed after plan creation), warn at session start
|
|
885
|
+
|
|
886
|
+
## Squad learnings
|
|
887
|
+
|
|
888
|
+
The squad accumulates intelligence from sessions. This makes each session better than the last.
|
|
889
|
+
|
|
890
|
+
### At session start
|
|
891
|
+
1. Read `learnings/index.md` in the squad package
|
|
892
|
+
2. Load all preferences and domain insights into active context
|
|
893
|
+
3. Load quality signals relevant to this session's topic
|
|
894
|
+
4. Load process patterns if planning multi-round orchestration
|
|
895
|
+
5. Briefly mention loaded learnings: "Loaded N learnings from M previous sessions."
|
|
896
|
+
|
|
897
|
+
### During session
|
|
898
|
+
When detecting a learning signal (user correction, rejection, new info, quality issue):
|
|
899
|
+
- Note it internally
|
|
900
|
+
- Do NOT interrupt the session to discuss it
|
|
901
|
+
|
|
902
|
+
### At session end
|
|
903
|
+
1. List detected learnings (max 3-5)
|
|
904
|
+
2. Present to user non-intrusively
|
|
905
|
+
3. Save approved learnings to `learnings/` directory
|
|
906
|
+
4. Update `learnings/index.md`
|
|
907
|
+
|
|
908
|
+
### Promotion checks
|
|
909
|
+
After saving new learnings:
|
|
910
|
+
- Check if any quality learning has frequency ≥ 3 → offer rule promotion
|
|
911
|
+
- Check if domain learnings for this domain total ≥ 7 → offer domain skill creation
|
|
912
|
+
- Check if any preference has been stable for ≥ 5 sessions → mark as established
|
|
913
|
+
|
|
914
|
+
### NEVER do
|
|
915
|
+
- Save learnings without at least showing them to the user
|
|
916
|
+
- Interrupt a productive session to discuss learning capture
|
|
917
|
+
- Keep more than 20 active learnings per squad (consolidate or archive)
|
|
918
|
+
- Treat stale learnings (90+ days) as current truth
|
|
919
|
+
|
|
653
920
|
## Output contract
|
|
654
921
|
- Agent drafts: `output/{squad-slug}/`
|
|
655
922
|
- Session HTML: `output/{squad-slug}/{session-id}.html`
|
|
656
923
|
- Latest HTML: `output/{squad-slug}/latest.html`
|
|
657
924
|
- Agent deliverables: `output/{squad-slug}/`
|
|
658
|
-
- Logs: `
|
|
925
|
+
- Logs: `aioson-logs/{squad-slug}/`
|
|
659
926
|
- Media: `media/{squad-slug}/`
|
|
660
927
|
```
|
|
661
928
|
|
|
929
|
+
### Step 3b — Generate workflow (when the squad has a multi-phase pipeline)
|
|
930
|
+
|
|
931
|
+
If the squad has a clear end-to-end process with distinct phases and handoffs, generate a workflow.
|
|
932
|
+
Skip this step only for squads that are purely conversational or exploratory.
|
|
933
|
+
|
|
934
|
+
**When to generate a workflow:**
|
|
935
|
+
- The squad has 3+ distinct phases where output of one feeds the next
|
|
936
|
+
- There are deterministic steps (workers) mixed with LLM steps
|
|
937
|
+
- There are human approval checkpoints
|
|
938
|
+
- The squad will be run repeatedly as a repeatable pipeline
|
|
939
|
+
|
|
940
|
+
**Execution mode decision:**
|
|
941
|
+
- `sequential` — phases depend on each other's output (default)
|
|
942
|
+
- `parallel` — phases are independent and can run simultaneously
|
|
943
|
+
- `mixed` — some phases are sequential, others declare `parallel: true`
|
|
944
|
+
|
|
945
|
+
Create `.aioson/squads/{squad-slug}/workflows/main.md`:
|
|
946
|
+
|
|
947
|
+
```markdown
|
|
948
|
+
# Workflow: {workflow-title}
|
|
949
|
+
|
|
950
|
+
## Trigger
|
|
951
|
+
{What user action or event starts this workflow}
|
|
952
|
+
|
|
953
|
+
## Estimated Duration
|
|
954
|
+
{e.g. 30-60 min (first run)}
|
|
955
|
+
|
|
956
|
+
## Execution Mode
|
|
957
|
+
{sequential | parallel | mixed}
|
|
958
|
+
|
|
959
|
+
## Phases
|
|
960
|
+
|
|
961
|
+
### Phase 1 — {Phase title}
|
|
962
|
+
- **Executor:** @{executor-slug} ({type: agent | worker | clone | assistant})
|
|
963
|
+
- **Input:** {what this phase receives}
|
|
964
|
+
- **Output:** {what this phase produces, e.g. analysis.md}
|
|
965
|
+
- **Handoff:** output → Phase 2 input
|
|
966
|
+
|
|
967
|
+
### Phase 2 — {Phase title}
|
|
968
|
+
- **Executor:** @{executor-slug} ({type})
|
|
969
|
+
- **Input:** Output from Phase 1
|
|
970
|
+
- **Output:** {artifact}
|
|
971
|
+
- **Handoff:** output → Phase 3 input
|
|
972
|
+
|
|
973
|
+
### Phase N — {Phase title}
|
|
974
|
+
- **Executor:** {executor-slug} (worker) [if deterministic]
|
|
975
|
+
- **Input:** {artifact from previous phase}
|
|
976
|
+
- **Output:** {final artifact}
|
|
977
|
+
- **Human Gate:** {condition} → {action: auto | consult | approve | block}
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
Then register the workflow in `squad.manifest.json`:
|
|
981
|
+
|
|
982
|
+
```json
|
|
983
|
+
"workflows": [
|
|
984
|
+
{
|
|
985
|
+
"slug": "{workflow-slug}",
|
|
986
|
+
"title": "{workflow-title}",
|
|
987
|
+
"trigger": "{trigger description}",
|
|
988
|
+
"executionMode": "sequential",
|
|
989
|
+
"estimatedDuration": "{duration}",
|
|
990
|
+
"file": ".aioson/squads/{squad-slug}/workflows/main.md",
|
|
991
|
+
"phases": [
|
|
992
|
+
{
|
|
993
|
+
"id": "{phase-1-id}",
|
|
994
|
+
"title": "{Phase 1 title}",
|
|
995
|
+
"executor": "{executor-slug}",
|
|
996
|
+
"executorType": "agent",
|
|
997
|
+
"dependsOn": [],
|
|
998
|
+
"output": "{output artifact}"
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
"id": "{phase-2-id}",
|
|
1002
|
+
"title": "{Phase 2 title}",
|
|
1003
|
+
"executor": "{executor-slug}",
|
|
1004
|
+
"executorType": "agent",
|
|
1005
|
+
"dependsOn": ["{phase-1-id}"],
|
|
1006
|
+
"output": "{output artifact}"
|
|
1007
|
+
}
|
|
1008
|
+
]
|
|
1009
|
+
}
|
|
1010
|
+
]
|
|
1011
|
+
```
|
|
1012
|
+
|
|
1013
|
+
**Human gate rules (when a phase needs human approval):**
|
|
1014
|
+
|
|
1015
|
+
Add `humanGate` to the phase:
|
|
1016
|
+
```json
|
|
1017
|
+
{
|
|
1018
|
+
"id": "review",
|
|
1019
|
+
"title": "Human Review",
|
|
1020
|
+
"executor": "orquestrador",
|
|
1021
|
+
"executorType": "agent",
|
|
1022
|
+
"dependsOn": ["previous-phase"],
|
|
1023
|
+
"humanGate": {
|
|
1024
|
+
"condition": "{expression, e.g. score < 80 or budget > 1000}",
|
|
1025
|
+
"action": "approve",
|
|
1026
|
+
"notifyVia": ["slack"],
|
|
1027
|
+
"reason": "{why human judgment is needed here}"
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
```
|
|
1031
|
+
|
|
1032
|
+
Gate action levels:
|
|
1033
|
+
- `auto` — executor decides autonomously (low risk)
|
|
1034
|
+
- `consult` — executor consults another specialist agent first (medium risk)
|
|
1035
|
+
- `approve` — human must approve before proceeding (high risk)
|
|
1036
|
+
- `block` — cannot proceed without explicit human authorization (critical)
|
|
1037
|
+
|
|
1038
|
+
### Review loops (when quality matters)
|
|
1039
|
+
|
|
1040
|
+
For phases that produce critical output, add a review loop.
|
|
1041
|
+
The reviewer is typically a different executor from the creator.
|
|
1042
|
+
|
|
1043
|
+
Decision tree for adding review:
|
|
1044
|
+
- Is this a final deliverable? → add review
|
|
1045
|
+
- Is this an intermediate artifact used internally? → skip review
|
|
1046
|
+
- Is the domain high-stakes (legal, financial, medical)? → add review + veto conditions
|
|
1047
|
+
- Is the squad running in a repeatable pipeline? → add review
|
|
1048
|
+
|
|
1049
|
+
When generating workflows, evaluate each phase and add `review` when appropriate.
|
|
1050
|
+
Also add `vetoConditions` for phases where certain output qualities are non-negotiable.
|
|
1051
|
+
|
|
1052
|
+
Add `review` to the phase:
|
|
1053
|
+
```json
|
|
1054
|
+
{
|
|
1055
|
+
"id": "create-content",
|
|
1056
|
+
"title": "Create Content",
|
|
1057
|
+
"executor": "copywriter",
|
|
1058
|
+
"executorType": "agent",
|
|
1059
|
+
"dependsOn": ["research"],
|
|
1060
|
+
"output": "draft content",
|
|
1061
|
+
"review": {
|
|
1062
|
+
"reviewer": "editor",
|
|
1063
|
+
"criteria": [
|
|
1064
|
+
"Content matches the target audience tone",
|
|
1065
|
+
"All key points from research are addressed",
|
|
1066
|
+
"No factual claims without evidence"
|
|
1067
|
+
],
|
|
1068
|
+
"onReject": "create-content",
|
|
1069
|
+
"maxRetries": 2,
|
|
1070
|
+
"retryStrategy": "feedback",
|
|
1071
|
+
"escalateOnMaxRetries": "human"
|
|
1072
|
+
},
|
|
1073
|
+
"vetoConditions": [
|
|
1074
|
+
{
|
|
1075
|
+
"condition": "Output contains placeholder text or TODO markers",
|
|
1076
|
+
"action": "block",
|
|
1077
|
+
"message": "Content has unfinished sections"
|
|
1078
|
+
},
|
|
1079
|
+
{
|
|
1080
|
+
"condition": "Output is less than 50% of expected length",
|
|
1081
|
+
"action": "reject",
|
|
1082
|
+
"message": "Content is too thin — needs more substance"
|
|
1083
|
+
}
|
|
1084
|
+
]
|
|
1085
|
+
}
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
Retry strategies:
|
|
1089
|
+
- `feedback` (default): The reviewer's specific feedback is sent back to the creator.
|
|
1090
|
+
Best for creative work where direction matters.
|
|
1091
|
+
- `fresh`: The creator starts from scratch without seeing the rejected attempt.
|
|
1092
|
+
Best when the first attempt went in a wrong direction entirely.
|
|
1093
|
+
- `alternative`: A different executor (if available) takes over the task.
|
|
1094
|
+
Best when the original executor has a blind spot.
|
|
1095
|
+
|
|
1096
|
+
The review loop protocol is defined in `.aioson/tasks/squad-review.md`.
|
|
1097
|
+
|
|
1098
|
+
### Model tiering (mandatory for every executor)
|
|
1099
|
+
|
|
1100
|
+
Assign a `modelTier` to each executor using this decision tree:
|
|
1101
|
+
|
|
1102
|
+
```
|
|
1103
|
+
EXECUTOR
|
|
1104
|
+
├── usesLLM: false (worker, deterministic)
|
|
1105
|
+
│ └── tier: none (zero cost)
|
|
1106
|
+
│
|
|
1107
|
+
├── Role is creative/generative (writer, copywriter, scriptwriter, designer)
|
|
1108
|
+
│ └── tier: powerful (quality is the product)
|
|
1109
|
+
│
|
|
1110
|
+
├── Role is orchestration/synthesis (orquestrador, reviewer, editor)
|
|
1111
|
+
│ └── tier: powerful (judgment quality matters)
|
|
1112
|
+
│
|
|
1113
|
+
├── Role is research/analysis (researcher, analyst, data-gatherer)
|
|
1114
|
+
│ └── tier: fast (volume > depth per query)
|
|
1115
|
+
│
|
|
1116
|
+
├── Role is formatting/structuring (formatter, template-filler, publisher)
|
|
1117
|
+
│ └── tier: fast (mostly mechanical)
|
|
1118
|
+
│
|
|
1119
|
+
└── Other or mixed
|
|
1120
|
+
└── tier: balanced (default)
|
|
1121
|
+
```
|
|
1122
|
+
|
|
1123
|
+
Show the tier assignment in the executor classification validation:
|
|
1124
|
+
|
|
1125
|
+
```
|
|
1126
|
+
Executor classification review:
|
|
1127
|
+
- copywriter → type: agent, tier: powerful (creative output)
|
|
1128
|
+
- researcher → type: agent, tier: fast (search volume)
|
|
1129
|
+
- formatter → type: worker, tier: none (deterministic)
|
|
1130
|
+
- orquestrador → type: agent, tier: powerful (synthesis)
|
|
1131
|
+
|
|
1132
|
+
Estimated cost per run: ~$0.18 (vs. ~$0.45 if all powerful)
|
|
1133
|
+
```
|
|
1134
|
+
|
|
1135
|
+
### Task decomposition (when an executor has a multi-step process)
|
|
1136
|
+
|
|
1137
|
+
Not every executor needs tasks. Use this decision tree:
|
|
1138
|
+
|
|
1139
|
+
```
|
|
1140
|
+
EXECUTOR
|
|
1141
|
+
├── Does it do ONE thing well? (reviewer, validator, formatter)
|
|
1142
|
+
│ └── NO tasks — the agent file is sufficient
|
|
1143
|
+
│
|
|
1144
|
+
├── Does it have a repeatable multi-step process?
|
|
1145
|
+
│ ├── 2 steps → probably no tasks (keep it simple)
|
|
1146
|
+
│ ├── 3+ steps with distinct outputs → YES, decompose into tasks
|
|
1147
|
+
│ └── 3+ steps but all internal → NO tasks (steps go in the agent)
|
|
1148
|
+
│
|
|
1149
|
+
├── Will the tasks be reused by other executors or squads?
|
|
1150
|
+
│ └── YES → decompose into tasks (reusability)
|
|
1151
|
+
│
|
|
1152
|
+
└── Is quality critical and each step needs its own criteria?
|
|
1153
|
+
└── YES → decompose into tasks (granular quality control)
|
|
1154
|
+
```
|
|
1155
|
+
|
|
1156
|
+
When decomposing:
|
|
1157
|
+
- Keep the agent file focused on identity (mission, focus, constraints)
|
|
1158
|
+
- Move process details to task files at `.aioson/squads/{squad-slug}/agents/{executor-slug}/tasks/`
|
|
1159
|
+
- Each task should be independently evaluable
|
|
1160
|
+
- Tasks execute sequentially — output of task N is input of task N+1
|
|
1161
|
+
- Register tasks in the manifest executor's `tasks` array
|
|
1162
|
+
|
|
1163
|
+
Show the decision in the classification:
|
|
1164
|
+
|
|
1165
|
+
```
|
|
1166
|
+
Task decomposition review:
|
|
1167
|
+
- copywriter → 3 tasks (research-brief → draft-content → optimize-hooks)
|
|
1168
|
+
- researcher → no tasks (single-purpose: find and organize sources)
|
|
1169
|
+
- orquestrador → no tasks (coordination is reactive, not sequential)
|
|
1170
|
+
- editor → 2 tasks (structural-review → copy-edit)
|
|
1171
|
+
```
|
|
1172
|
+
|
|
1173
|
+
The task file format is defined in `.aioson/tasks/squad-task-decompose.md`.
|
|
1174
|
+
|
|
1175
|
+
### Format injection (for content-oriented squads)
|
|
1176
|
+
|
|
1177
|
+
When creating a content-oriented squad, check if the output targets a specific platform or format.
|
|
1178
|
+
|
|
1179
|
+
If yes:
|
|
1180
|
+
1. Check `.aioson/skills/squad/formats/catalog.json` for matching formats
|
|
1181
|
+
2. List available formats to the user
|
|
1182
|
+
3. Reference selected formats in the executor's `formats` field in the manifest
|
|
1183
|
+
4. When generating executor agent files, include a reference:
|
|
1184
|
+
`## Active formats: {format-slug} (see .aioson/skills/squad/formats/{path})`
|
|
1185
|
+
|
|
1186
|
+
The executor should read the format file when producing output for that platform.
|
|
1187
|
+
Format injection is NOT automatic context stuffing — it's a reference that the
|
|
1188
|
+
executor follows when relevant. Keep the agent file lean.
|
|
1189
|
+
|
|
1190
|
+
### Step 3c — Generate quality checklist
|
|
1191
|
+
|
|
1192
|
+
Generate `.aioson/squads/{squad-slug}/checklists/quality.md` for every squad.
|
|
1193
|
+
The checklist is derived from the squad domain — it must validate the squad's actual deliverables, not be generic.
|
|
1194
|
+
|
|
1195
|
+
```markdown
|
|
1196
|
+
# Checklist: Quality Review — {squad-name}
|
|
1197
|
+
|
|
1198
|
+
## {Domain-specific section 1}
|
|
1199
|
+
- [ ] {Verifiable criterion}
|
|
1200
|
+
- [ ] {Verifiable criterion}
|
|
1201
|
+
|
|
1202
|
+
## {Domain-specific section 2}
|
|
1203
|
+
- [ ] {Verifiable criterion}
|
|
1204
|
+
- [ ] {Verifiable criterion}
|
|
1205
|
+
|
|
1206
|
+
## Output integrity
|
|
1207
|
+
- [ ] All deliverables saved to `output/{squad-slug}/`
|
|
1208
|
+
- [ ] Latest HTML generated and accessible
|
|
1209
|
+
- [ ] No output files from other squads overwritten
|
|
1210
|
+
|
|
1211
|
+
## Executor coverage
|
|
1212
|
+
- [ ] Every declared executor produced output for this session
|
|
1213
|
+
- [ ] Worker scripts (if any) completed without errors
|
|
1214
|
+
- [ ] Human gates (if any) were triggered and resolved
|
|
1215
|
+
```
|
|
1216
|
+
|
|
1217
|
+
Register in `squad.manifest.json`:
|
|
1218
|
+
```json
|
|
1219
|
+
"checklists": [
|
|
1220
|
+
{
|
|
1221
|
+
"slug": "quality",
|
|
1222
|
+
"title": "Quality Review",
|
|
1223
|
+
"file": ".aioson/squads/{squad-slug}/checklists/quality.md",
|
|
1224
|
+
"scope": "squad"
|
|
1225
|
+
}
|
|
1226
|
+
]
|
|
1227
|
+
```
|
|
1228
|
+
|
|
1229
|
+
If the squad has a workflow, also generate a phase-level checklist when relevant:
|
|
1230
|
+
```json
|
|
1231
|
+
{
|
|
1232
|
+
"slug": "workflow-review",
|
|
1233
|
+
"title": "Workflow Phase Review",
|
|
1234
|
+
"file": ".aioson/squads/{squad-slug}/checklists/workflow-review.md",
|
|
1235
|
+
"scope": "workflow",
|
|
1236
|
+
"appliesTo": "{workflow-slug}"
|
|
1237
|
+
}
|
|
1238
|
+
```
|
|
1239
|
+
|
|
662
1240
|
### Step 4 — Register agents in the project gateways
|
|
663
1241
|
|
|
664
1242
|
Append a Squad section to `CLAUDE.md` at the project root:
|
|
@@ -694,7 +1272,7 @@ Goal: {goal}
|
|
|
694
1272
|
Agents: .aioson/squads/{squad-slug}/agents/
|
|
695
1273
|
Manifest: .aioson/squads/{squad-slug}/squad.manifest.json
|
|
696
1274
|
Output: output/{squad-slug}/
|
|
697
|
-
Logs:
|
|
1275
|
+
Logs: aioson-logs/{squad-slug}/
|
|
698
1276
|
Media: media/{squad-slug}/
|
|
699
1277
|
LatestSession: output/{squad-slug}/latest.html
|
|
700
1278
|
Genomes:
|
|
@@ -714,24 +1292,99 @@ Subagents:
|
|
|
714
1292
|
- When: [broad research], [comparison], [summarization], [parallelism]
|
|
715
1293
|
```
|
|
716
1294
|
|
|
1295
|
+
### Step 6 — Generate execution plan (recommended)
|
|
1296
|
+
|
|
1297
|
+
After saving metadata, evaluate whether the squad would benefit from an execution plan.
|
|
1298
|
+
|
|
1299
|
+
**Always generate for:**
|
|
1300
|
+
- Squads with 4+ executors
|
|
1301
|
+
- Squads with workflows defined
|
|
1302
|
+
- Squads created from investigation (@orache)
|
|
1303
|
+
- Squads with mode: software or mixed
|
|
1304
|
+
|
|
1305
|
+
**Offer (but don't force) for:**
|
|
1306
|
+
- Squads with 3 executors and moderately complex goals
|
|
1307
|
+
- Content squads with multi-step pipelines
|
|
1308
|
+
|
|
1309
|
+
**Skip for:**
|
|
1310
|
+
- Ephemeral squads
|
|
1311
|
+
- Squads with 2 executors and obvious linear flow
|
|
1312
|
+
- User explicitly declined (`--no-plan`)
|
|
1313
|
+
|
|
1314
|
+
When generating: read and execute `.aioson/tasks/squad-execution-plan.md`.
|
|
1315
|
+
The task will produce `.aioson/squads/{slug}/docs/execution-plan.md`.
|
|
1316
|
+
|
|
1317
|
+
After the plan is approved (or skipped), proceed with the warm-up round.
|
|
1318
|
+
|
|
1319
|
+
If the squad qualifies but the user wants to skip:
|
|
1320
|
+
> "Skipping execution plan. You can generate one later with `@squad plan {slug}`."
|
|
1321
|
+
|
|
717
1322
|
## After generation — confirm and warm-up round (mandatory)
|
|
718
1323
|
|
|
719
|
-
Tell the user which agents were created:
|
|
1324
|
+
Tell the user which agents were created, then show the executor classification validation and coverage score:
|
|
720
1325
|
|
|
721
1326
|
```
|
|
722
1327
|
Squad **{squad-name}** is ready.
|
|
723
1328
|
|
|
724
|
-
|
|
725
|
-
- @{role1} — [one-line description]
|
|
726
|
-
- @{role2} — [one-line description]
|
|
727
|
-
-
|
|
728
|
-
- @orquestrador — coordinates the team
|
|
1329
|
+
Executors created in `.aioson/squads/{squad-slug}/`:
|
|
1330
|
+
- @{role1} (agent) — [one-line description]
|
|
1331
|
+
- @{role2} (agent) — [one-line description]
|
|
1332
|
+
- {worker-slug} (worker) — [script, no LLM]
|
|
1333
|
+
- @orquestrador (agent) — coordinates the team
|
|
729
1334
|
|
|
730
1335
|
You can invoke any agent directly (e.g. `@scriptwriter`) for focused work,
|
|
731
1336
|
or work through @orquestrador for coordinated sessions.
|
|
732
1337
|
|
|
733
1338
|
CLAUDE.md and AGENTS.md updated with shortcuts.
|
|
734
|
-
|
|
1339
|
+
```
|
|
1340
|
+
|
|
1341
|
+
**Executor classification validation (mandatory before warm-up):**
|
|
1342
|
+
|
|
1343
|
+
After confirming creation, validate executor classification:
|
|
1344
|
+
|
|
1345
|
+
```
|
|
1346
|
+
Executor classification review:
|
|
1347
|
+
- {executor-slug} → type: {type} ✓ (reason: {one-line justification})
|
|
1348
|
+
- {executor-slug} → type: {type} ✓ (reason: ...)
|
|
1349
|
+
- {executor-slug} → type: {type} ✓ (reason: ...)
|
|
1350
|
+
|
|
1351
|
+
All executors classified. No untyped executors.
|
|
1352
|
+
```
|
|
1353
|
+
|
|
1354
|
+
If any executor lacks a `type`, flag it:
|
|
1355
|
+
```
|
|
1356
|
+
⚠ {executor-slug} has no type. Recommended: {type} because {reason}.
|
|
1357
|
+
```
|
|
1358
|
+
|
|
1359
|
+
**Coverage score (show after classification validation):**
|
|
1360
|
+
|
|
1361
|
+
```
|
|
1362
|
+
Squad coverage score: {N}/5
|
|
1363
|
+
|
|
1364
|
+
✓ Executors typed ({n} of {total} have explicit type)
|
|
1365
|
+
✓ Workflow defined (1 workflow, {n} phases)
|
|
1366
|
+
✓ Checklists present (quality.md)
|
|
1367
|
+
○ Tasks defined (none — add tasks/ for repeatable procedures)
|
|
1368
|
+
○ Workers present (no deterministic scripts — consider if any step is automatable)
|
|
1369
|
+
|
|
1370
|
+
Coverage: {score}% — {Good | Needs improvement | Minimal}
|
|
1371
|
+
```
|
|
1372
|
+
|
|
1373
|
+
Score thresholds:
|
|
1374
|
+
- 5/5 → Excellent
|
|
1375
|
+
- 3-4/5 → Good
|
|
1376
|
+
- 1-2/5 → Minimal — suggest what to add next
|
|
1377
|
+
|
|
1378
|
+
**Quality score (deep assessment — show after coverage):**
|
|
1379
|
+
|
|
1380
|
+
After the coverage score, suggest running the deep quality assessment:
|
|
1381
|
+
|
|
1382
|
+
```
|
|
1383
|
+
For a detailed quality analysis across 4 dimensions (100 points):
|
|
1384
|
+
aioson squad:score . --squad={slug}
|
|
1385
|
+
|
|
1386
|
+
Dimensions: Completude (25), Profundidade (25), Qualidade Estrutural (25), Potencial (25)
|
|
1387
|
+
Grades: S (90+), A (80+), B (70+), C (50+), D (<50)
|
|
735
1388
|
```
|
|
736
1389
|
|
|
737
1390
|
Then immediately run the warm-up — show how each specialist would approach the stated goal RIGHT NOW with minimum substance:
|
|
@@ -806,15 +1459,198 @@ Design guidelines:
|
|
|
806
1459
|
After writing the file:
|
|
807
1460
|
> "Results saved to `output/{squad-slug}/{session-id}.html` and `output/{squad-slug}/latest.html` — open in any browser."
|
|
808
1461
|
|
|
1462
|
+
## Automation extraction — LLM-to-script
|
|
1463
|
+
|
|
1464
|
+
After a productive session where the squad produces output, the orchestrator (or the user via `@squad automate <slug>`) can analyze whether the process is deterministic enough to be automated as a standalone script.
|
|
1465
|
+
|
|
1466
|
+
**Why this matters:** Every time a squad runs the same kind of task, it costs LLM tokens. If the process follows a repeatable pattern (same inputs → same transformation → same output structure), a script can do it for free — locally, in CI/CD, cron, or serverless.
|
|
1467
|
+
|
|
1468
|
+
### When to offer automation
|
|
1469
|
+
|
|
1470
|
+
The orchestrator should offer automation analysis when **all** of these are true:
|
|
1471
|
+
|
|
1472
|
+
- The session produced a concrete, structured output (not just conversation)
|
|
1473
|
+
- The process followed identifiable steps (not purely creative exploration)
|
|
1474
|
+
- The same kind of task is likely to recur with different inputs
|
|
1475
|
+
|
|
1476
|
+
After delivering the final output, the orchestrator says:
|
|
1477
|
+
|
|
1478
|
+
> "This process looks automatable. Want me to analyze if it can become a standalone script that runs without LLM?"
|
|
1479
|
+
|
|
1480
|
+
If the user declines, move on. Do not insist.
|
|
1481
|
+
|
|
1482
|
+
### Phase 1: Script plan (analysis)
|
|
1483
|
+
|
|
1484
|
+
Analyze the session and write a script plan to `.aioson/squads/{squad-slug}/script-plans/{plan-slug}.md`:
|
|
1485
|
+
|
|
1486
|
+
```markdown
|
|
1487
|
+
# Script Plan: {plan-slug}
|
|
1488
|
+
|
|
1489
|
+
**Status:** proposed
|
|
1490
|
+
**Squad:** {squad-slug}
|
|
1491
|
+
**Session:** {session-id}
|
|
1492
|
+
**Language:** python | nodejs
|
|
1493
|
+
**Feasibility:** high | medium | low
|
|
1494
|
+
|
|
1495
|
+
## What the LLM did
|
|
1496
|
+
[Concrete description of the process — not vague, not the full session transcript.
|
|
1497
|
+
Focus on the transformation: what inputs were consumed, what steps were applied, what output was produced.]
|
|
1498
|
+
|
|
1499
|
+
## Automation feasibility analysis
|
|
1500
|
+
|
|
1501
|
+
### Can be automated (deterministic parts)
|
|
1502
|
+
- [Step that follows a fixed rule]
|
|
1503
|
+
- [Transformation that is always the same]
|
|
1504
|
+
- [Format conversion, template filling, data extraction]
|
|
1505
|
+
|
|
1506
|
+
### Cannot be automated (requires judgment)
|
|
1507
|
+
- [Creative decisions the LLM made]
|
|
1508
|
+
- [Ambiguous interpretations that required context]
|
|
1509
|
+
- [Quality judgments that depend on domain expertise]
|
|
1510
|
+
|
|
1511
|
+
### Feasibility verdict
|
|
1512
|
+
[High/Medium/Low with one-line justification]
|
|
1513
|
+
|
|
1514
|
+
## Script design
|
|
1515
|
+
|
|
1516
|
+
### Inputs
|
|
1517
|
+
| Name | Type | Source | Example |
|
|
1518
|
+
|------|------|--------|---------|
|
|
1519
|
+
| [input_1] | file/string/json | [where it comes from] | [example value] |
|
|
1520
|
+
|
|
1521
|
+
### Process
|
|
1522
|
+
1. [Read/parse inputs]
|
|
1523
|
+
2. [Transform step]
|
|
1524
|
+
3. [Validate step]
|
|
1525
|
+
4. [Write output]
|
|
1526
|
+
|
|
1527
|
+
### Outputs
|
|
1528
|
+
| Name | Format | Location |
|
|
1529
|
+
|------|--------|----------|
|
|
1530
|
+
| [output_1] | [json/md/html/csv] | [where it goes] |
|
|
1531
|
+
|
|
1532
|
+
### Dependencies
|
|
1533
|
+
- [npm package or pip package needed, if any]
|
|
1534
|
+
- Prefer zero or minimal dependencies
|
|
1535
|
+
|
|
1536
|
+
### Limitations
|
|
1537
|
+
- [What this script will NOT handle — edge cases that still need LLM]
|
|
1538
|
+
- [When the user should fall back to the full squad instead]
|
|
1539
|
+
|
|
1540
|
+
## Estimated effort
|
|
1541
|
+
[Small: < 100 lines | Medium: 100-300 lines | Large: 300+ lines]
|
|
1542
|
+
```
|
|
1543
|
+
|
|
1544
|
+
**Rules for script plans:**
|
|
1545
|
+
- Be honest about feasibility. If the process is 80% creative, say `low` — do not force automation.
|
|
1546
|
+
- `medium` feasibility means: the script handles the repeatable core, but some steps may produce lower quality than the LLM version. Document which steps.
|
|
1547
|
+
- `high` feasibility means: the script can reproduce the LLM output with negligible quality loss for the defined input types.
|
|
1548
|
+
|
|
1549
|
+
### Phase 2: Script generation (after user approval)
|
|
1550
|
+
|
|
1551
|
+
When the user reviews the plan and says "ok", "approved", "implement it", or similar:
|
|
1552
|
+
|
|
1553
|
+
1. Update the plan status to `approved`
|
|
1554
|
+
2. Generate the script at `.aioson/squads/{squad-slug}/scripts/{script-slug}.{ext}`
|
|
1555
|
+
3. The script must be **self-contained and runnable**:
|
|
1556
|
+
|
|
1557
|
+
**For Python:**
|
|
1558
|
+
```python
|
|
1559
|
+
#!/usr/bin/env python3
|
|
1560
|
+
"""
|
|
1561
|
+
{script-name} — generated from squad:{squad-slug}
|
|
1562
|
+
Plan: script-plans/{plan-slug}.md
|
|
1563
|
+
|
|
1564
|
+
Usage:
|
|
1565
|
+
python {script-slug}.py --input=<path> [--output=<path>]
|
|
1566
|
+
"""
|
|
1567
|
+
```
|
|
1568
|
+
|
|
1569
|
+
**For Node.js:**
|
|
1570
|
+
```javascript
|
|
1571
|
+
#!/usr/bin/env node
|
|
1572
|
+
/**
|
|
1573
|
+
* {script-name} — generated from squad:{squad-slug}
|
|
1574
|
+
* Plan: script-plans/{plan-slug}.md
|
|
1575
|
+
*
|
|
1576
|
+
* Usage:
|
|
1577
|
+
* node {script-slug}.js --input=<path> [--output=<path>]
|
|
1578
|
+
*/
|
|
1579
|
+
```
|
|
1580
|
+
|
|
1581
|
+
**Script requirements:**
|
|
1582
|
+
- Parse CLI arguments (argparse for Python, process.argv or minimist for Node)
|
|
1583
|
+
- Read input from file or stdin
|
|
1584
|
+
- Write output to file or stdout
|
|
1585
|
+
- Include `--help` with usage description
|
|
1586
|
+
- Include `--dry-run` when the script writes files
|
|
1587
|
+
- Handle errors gracefully with clear messages
|
|
1588
|
+
- No hardcoded paths — everything via arguments or config
|
|
1589
|
+
- Reference the script plan in a header comment
|
|
1590
|
+
- If the script needs external packages, include a comment block listing them and install instructions
|
|
1591
|
+
|
|
1592
|
+
4. After generating, update the plan status to `implemented`
|
|
1593
|
+
5. Register the automation in `squad.manifest.json`:
|
|
1594
|
+
|
|
1595
|
+
```json
|
|
1596
|
+
{
|
|
1597
|
+
"automations": [
|
|
1598
|
+
{
|
|
1599
|
+
"slug": "{script-slug}",
|
|
1600
|
+
"plan": "script-plans/{plan-slug}.md",
|
|
1601
|
+
"script": "scripts/{script-slug}.py",
|
|
1602
|
+
"language": "python",
|
|
1603
|
+
"status": "implemented",
|
|
1604
|
+
"createdFrom": "{session-id}",
|
|
1605
|
+
"inputs": ["description of expected inputs"],
|
|
1606
|
+
"outputs": ["description of expected outputs"]
|
|
1607
|
+
}
|
|
1608
|
+
]
|
|
1609
|
+
}
|
|
1610
|
+
```
|
|
1611
|
+
|
|
1612
|
+
6. Tell the user:
|
|
1613
|
+
> "Script generated at `.aioson/squads/{squad-slug}/scripts/{script-slug}.py`.
|
|
1614
|
+
> Test with: `python .aioson/squads/{squad-slug}/scripts/{script-slug}.py --help`"
|
|
1615
|
+
|
|
1616
|
+
### Phase 3: Iteration
|
|
1617
|
+
|
|
1618
|
+
If the user tests the script and reports issues:
|
|
1619
|
+
- Fix the script in place (do not create a new file)
|
|
1620
|
+
- Update the plan with a `## Iterations` section documenting what changed
|
|
1621
|
+
- Keep the plan and script in sync
|
|
1622
|
+
|
|
1623
|
+
### What NOT to automate
|
|
1624
|
+
|
|
1625
|
+
Do not propose automation for:
|
|
1626
|
+
- Purely creative work (writing original content, brainstorming ideas)
|
|
1627
|
+
- Tasks that require web search or real-time data
|
|
1628
|
+
- Processes where the LLM's judgment is the primary value (code review, strategic analysis)
|
|
1629
|
+
- One-off tasks that will never recur
|
|
1630
|
+
|
|
1631
|
+
### Orchestrator integration
|
|
1632
|
+
|
|
1633
|
+
Add this to every generated orchestrator's Hard constraints:
|
|
1634
|
+
|
|
1635
|
+
```markdown
|
|
1636
|
+
## Automation awareness
|
|
1637
|
+
After productive sessions that produce structured output, evaluate whether
|
|
1638
|
+
the process is automatable. If feasibility is medium or high, offer to
|
|
1639
|
+
create a script plan. Never insist — offer once and respect the user's choice.
|
|
1640
|
+
Script plans go to `script-plans/`, approved scripts to `scripts/`.
|
|
1641
|
+
```
|
|
1642
|
+
|
|
809
1643
|
## Hard constraints
|
|
810
1644
|
|
|
811
1645
|
- Do NOT invent domain facts — stay within LLM knowledge or genome-provided content.
|
|
812
1646
|
- Do NOT skip the warm-up round — it is mandatory after generation.
|
|
813
|
-
- Do NOT save to memory unless the user explicitly asks.
|
|
814
|
-
-
|
|
815
|
-
-
|
|
1647
|
+
- Do NOT save to auto-memory (Claude's memory system) unless the user explicitly asks.
|
|
1648
|
+
- DO save squad learnings to the squad's `learnings/` directory — this is squad-scoped persistence, not Claude memory.
|
|
1649
|
+
- Present learnings to the user at session end before saving.
|
|
1650
|
+
- Do NOT offer `Genome mode` as an initial `@squad` entry path.
|
|
1651
|
+
- When the user wants genomes, route them to `@genome` as a separate flow.
|
|
816
1652
|
- Do NOT use `squads/active/squad.md` — agents go to `.aioson/squads/{squad-slug}/agents/`, HTML to `output/{squad-slug}/`.
|
|
817
|
-
- Store raw logs only in `
|
|
1653
|
+
- Store raw logs only in `aioson-logs/{squad-slug}/` at the project root — never inside `.aioson/`.
|
|
818
1654
|
- Store squad media only in `media/{squad-slug}/` at the project root.
|
|
819
1655
|
- `.aioson/context/` accepts only `.md` files — do not write non-markdown files there.
|
|
820
1656
|
- Do NOT skip the HTML deliverable — generate `output/{squad-slug}/{session-id}.html` after every response round.
|
|
@@ -831,7 +1667,9 @@ After writing the file:
|
|
|
831
1667
|
- Latest HTML: `output/{squad-slug}/latest.html`
|
|
832
1668
|
- Draft `.md` files: `output/{squad-slug}/`
|
|
833
1669
|
- Genome bindings: `.aioson/squads/{slug}/squad.md`
|
|
834
|
-
-
|
|
1670
|
+
- Script plans: `.aioson/squads/{squad-slug}/script-plans/`
|
|
1671
|
+
- Automation scripts: `.aioson/squads/{squad-slug}/scripts/`
|
|
1672
|
+
- Logs: `aioson-logs/{squad-slug}/`
|
|
835
1673
|
- Media: `media/{squad-slug}/`
|
|
836
1674
|
- CLAUDE.md: updated with `/agent` shortcuts
|
|
837
1675
|
- AGENTS.md: updated with `@agent` shortcuts
|