@jaimevalasek/aioson 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -2
- 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 +111 -13
- package/docs/pt/automacao-squads.md +407 -0
- package/docs/pt/cenarios.md +3 -3
- package/docs/pt/clientes-ai.md +62 -0
- package/docs/pt/comandos-cli.md +167 -17
- package/docs/pt/deyvin.md +115 -0
- package/docs/pt/genome-3.0-spec.md +11 -11
- package/docs/pt/inicio-rapido.md +45 -0
- 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-genoma.md → squad-genome.md} +81 -75
- package/docs/testing/genome-2.0-rollout.md +1 -1
- package/package.json +3 -3
- package/src/agents.js +21 -5
- package/src/backup-provider.js +303 -0
- package/src/cli.js +178 -2
- package/src/commands/agents.js +22 -4
- 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 +833 -2
- package/src/commands/scan-project.js +288 -24
- package/src/commands/setup-context.js +23 -0
- package/src/commands/skill.js +558 -0
- package/src/commands/squad-agent-create.js +788 -0
- package/src/commands/squad-doctor.js +51 -1
- package/src/commands/squad-investigate.js +261 -0
- package/src/commands/squad-learning.js +209 -0
- package/src/commands/squad-pipeline.js +247 -1
- package/src/commands/squad-plan.js +329 -0
- package/src/commands/squad-status.js +1 -1
- package/src/commands/squad-validate.js +57 -1
- package/src/commands/test-agents.js +6 -1
- package/src/commands/workflow-next.js +8 -1
- package/src/commands/workflow-status.js +250 -0
- package/src/constants.js +80 -16
- package/src/context-memory.js +837 -0
- package/src/context-writer.js +2 -0
- 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 +206 -7
- package/src/i18n/messages/es.js +123 -6
- package/src/i18n/messages/fr.js +122 -5
- package/src/i18n/messages/pt-BR.js +205 -12
- package/src/installer.js +30 -2
- package/src/lib/genomes/compat.js +1 -1
- package/src/runtime-store.js +780 -42
- package/src/session-handoff.js +77 -0
- package/template/.aioson/agents/analyst.md +36 -9
- package/template/.aioson/agents/architect.md +20 -5
- package/template/.aioson/agents/dev.md +135 -15
- package/template/.aioson/agents/deyvin.md +166 -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/orache.md +371 -0
- package/template/.aioson/agents/orchestrator.md +37 -2
- package/template/.aioson/agents/pair.md +5 -0
- package/template/.aioson/agents/pm.md +17 -5
- package/template/.aioson/agents/product.md +58 -22
- 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 +17 -5
- package/template/.aioson/agents/setup.md +81 -5
- package/template/.aioson/agents/squad.md +675 -28
- package/template/.aioson/agents/ux-ui.md +277 -34
- package/template/.aioson/config.md +175 -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 +26 -4
- package/template/.aioson/locales/en/agents/architect.md +10 -0
- package/template/.aioson/locales/en/agents/dev.md +89 -4
- package/template/.aioson/locales/en/agents/deyvin.md +129 -0
- package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
- package/template/.aioson/locales/en/agents/orchestrator.md +36 -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 +7 -0
- package/template/.aioson/locales/en/agents/setup.md +51 -5
- package/template/.aioson/locales/en/agents/squad.md +203 -15
- package/template/.aioson/locales/en/agents/ux-ui.md +375 -35
- package/template/.aioson/locales/es/agents/analyst.md +16 -4
- package/template/.aioson/locales/es/agents/architect.md +10 -0
- package/template/.aioson/locales/es/agents/dev.md +70 -2
- package/template/.aioson/locales/es/agents/deyvin.md +89 -0
- package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
- package/template/.aioson/locales/es/agents/orache.md +103 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +36 -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 +7 -0
- package/template/.aioson/locales/es/agents/setup.md +28 -5
- package/template/.aioson/locales/es/agents/squad.md +221 -15
- package/template/.aioson/locales/es/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/fr/agents/analyst.md +16 -4
- package/template/.aioson/locales/fr/agents/architect.md +10 -0
- package/template/.aioson/locales/fr/agents/dev.md +70 -2
- package/template/.aioson/locales/fr/agents/deyvin.md +89 -0
- package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
- package/template/.aioson/locales/fr/agents/orache.md +104 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +36 -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 +7 -0
- package/template/.aioson/locales/fr/agents/setup.md +28 -5
- package/template/.aioson/locales/fr/agents/squad.md +216 -10
- package/template/.aioson/locales/fr/agents/ux-ui.md +26 -25
- package/template/.aioson/locales/pt-BR/agents/analyst.md +26 -4
- package/template/.aioson/locales/pt-BR/agents/architect.md +10 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +93 -4
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +129 -0
- package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
- package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +36 -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 +35 -17
- package/template/.aioson/locales/pt-BR/agents/qa.md +7 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +51 -5
- package/template/.aioson/locales/pt-BR/agents/squad.md +486 -47
- package/template/.aioson/locales/pt-BR/agents/ux-ui.md +361 -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 +11 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +257 -1
- package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +157 -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 +172 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +490 -0
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +237 -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 +350 -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-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/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/patterns/.gitkeep +0 -0
- package/template/.aioson/skills/squad/references/.gitkeep +0 -0
- package/template/.aioson/tasks/implementation-plan.md +288 -0
- package/template/.aioson/tasks/squad-create.md +1 -1
- 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-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/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/.gemini/GEMINI.md +2 -0
- package/template/.gemini/commands/aios-deyvin.toml +6 -0
- package/template/.gemini/commands/aios-pair.toml +6 -0
- package/template/AGENTS.md +34 -6
- package/template/CLAUDE.md +31 -4
- package/template/OPENCODE.md +6 -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,279 @@
|
|
|
1
|
+
# Task: Squad Execution Plan
|
|
2
|
+
|
|
3
|
+
> Gera o plano de execução do squad após criação e validação.
|
|
4
|
+
> Define como os executors vão atacar o objetivo em sequência.
|
|
5
|
+
> Garante consistência entre executors, workflows, e checklists.
|
|
6
|
+
|
|
7
|
+
## Quando usar
|
|
8
|
+
- Automaticamente após `@squad create` + `@squad validate` + warm-up (para squads qualificados)
|
|
9
|
+
- `@squad plan <slug>` — invocação direta
|
|
10
|
+
- Antes da primeira session produtiva do squad
|
|
11
|
+
- Quando o squad muda (novos executors, nova investigation, workflow redesign)
|
|
12
|
+
|
|
13
|
+
## Entrada
|
|
14
|
+
- Squad manifest (`squad.manifest.json`)
|
|
15
|
+
- Blueprint (`.designs/{slug}.blueprint.json`)
|
|
16
|
+
- Investigation report (se existir em `squad-searches/`)
|
|
17
|
+
- Workflow definition (se existir em `workflows/`)
|
|
18
|
+
- Quality checklists (se existirem em `checklists/`)
|
|
19
|
+
- Loaded rules de `.aioson/rules/squad/`
|
|
20
|
+
- Loaded skills de `.aioson/skills/squad/`
|
|
21
|
+
- Learnings anteriores (se `learnings/index.md` existir)
|
|
22
|
+
|
|
23
|
+
## Processo
|
|
24
|
+
|
|
25
|
+
### Passo 1 — Re-análise cruzada
|
|
26
|
+
|
|
27
|
+
Ler o manifest completo e verificar consistência:
|
|
28
|
+
|
|
29
|
+
**Coverage analysis — cada executor:**
|
|
30
|
+
- O role cobre algo ÚNICO que nenhum outro executor cobre?
|
|
31
|
+
- Existe gap no coverage? (aspecto do goal que ninguém cobre)
|
|
32
|
+
- Existe overlap? (dois executors fazem a mesma coisa)
|
|
33
|
+
- As skills declaradas existem e são relevantes para o role?
|
|
34
|
+
|
|
35
|
+
**Workflow analysis — se workflow existe:**
|
|
36
|
+
- Cada phase tem executor atribuído que existe no manifest?
|
|
37
|
+
- O output de cada phase é o input esperado da próxima?
|
|
38
|
+
- Existem handoffs sem transformação clara?
|
|
39
|
+
- Human gates estão posicionados em pontos de risco real?
|
|
40
|
+
- Review loops (se configurados) apontam para phases que existem?
|
|
41
|
+
|
|
42
|
+
**Checklist analysis:**
|
|
43
|
+
- Os critérios do checklist cobrem os aspectos críticos do domínio?
|
|
44
|
+
- Existem critérios genéricos demais? (substituir por específicos)
|
|
45
|
+
- Existe critério que nenhum executor pode avaliar? (gap de competência)
|
|
46
|
+
|
|
47
|
+
**Investigation analysis — se investigation report existe:**
|
|
48
|
+
- Os anti-patterns descobertos estão refletidos como hard constraints nos executors?
|
|
49
|
+
- O vocabulário de domínio foi injetado nos executors relevantes?
|
|
50
|
+
- Os frameworks descobertos estão sendo usados na estrutura do squad?
|
|
51
|
+
- Os benchmarks de qualidade estão no checklist?
|
|
52
|
+
|
|
53
|
+
Para cada issue, classificar:
|
|
54
|
+
- **ADJUST** — corrigir antes de executar (ex: executor sem coverage)
|
|
55
|
+
- **WARN** — sinalizar mas pode prosseguir (ex: overlap parcial intencional)
|
|
56
|
+
- **INFO** — anotar para consciência do orquestrador (ex: dimension não coberta pela investigation)
|
|
57
|
+
|
|
58
|
+
### Passo 2 — Sequência de ativação
|
|
59
|
+
|
|
60
|
+
Definir a ordem ideal de rounds para atingir o goal do squad.
|
|
61
|
+
|
|
62
|
+
**Se o squad tem workflow definido:**
|
|
63
|
+
- Usar as phases do workflow como base
|
|
64
|
+
- Mapear cada phase para um round no execution plan
|
|
65
|
+
- Adicionar rounds de review/synthesis entre phases críticas
|
|
66
|
+
- Respeitar o execution mode (sequential/parallel/mixed)
|
|
67
|
+
|
|
68
|
+
**Se o squad NÃO tem workflow:**
|
|
69
|
+
- Derivar a sequência do manifest + domain knowledge
|
|
70
|
+
- Heurística padrão:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
1. Research / Analysis (executors com focus em pesquisa)
|
|
74
|
+
2. Creation / Production (executors com focus em criação)
|
|
75
|
+
3. Review / Quality (executors com focus em revisão)
|
|
76
|
+
4. Synthesis / Delivery (@orquestrador)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Para cada round, definir:**
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
### Round {N} — {título descritivo}
|
|
83
|
+
- **Executor:** @{slug} ({type})
|
|
84
|
+
- **Objective:** {o que este executor vai produzir neste round}
|
|
85
|
+
- **Input:** {o que precisa receber — de quem, qual artefato}
|
|
86
|
+
- **Output esperado:** {artefato concreto que será produzido}
|
|
87
|
+
- **Quality gate:** {critério de aceitação deste round}
|
|
88
|
+
- **Anti-patterns a evitar:** {do investigation report, se disponível}
|
|
89
|
+
- **Handoff:** output → Round {N+1} input
|
|
90
|
+
- **Parallel:** {true | false — se pode rodar junto com outro round}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Rounds especiais:**
|
|
94
|
+
- `Round 0 — Context Loading` (implícito, não um round real): o orquestrador carrega learnings e context
|
|
95
|
+
- `Round N — Synthesis` (sempre o último): @orquestrador sintetiza todos os outputs em deliverable final
|
|
96
|
+
- `Review Round` (após rounds críticos): se review loop está configurado, inserir round de review
|
|
97
|
+
|
|
98
|
+
### Passo 3 — Context per executor
|
|
99
|
+
|
|
100
|
+
Para cada executor no plan, definir o "briefing package":
|
|
101
|
+
|
|
102
|
+
```markdown
|
|
103
|
+
## Briefing: @{executor-slug}
|
|
104
|
+
|
|
105
|
+
### Deve ler antes de começar
|
|
106
|
+
- Seu agent file (`.aioson/squads/{slug}/agents/{executor}.md`)
|
|
107
|
+
- Output do round anterior (se houver)
|
|
108
|
+
- {artefato específico relevante para este executor}
|
|
109
|
+
|
|
110
|
+
### Contexto injetado pelo orquestrador
|
|
111
|
+
- Goal do squad: {1 frase}
|
|
112
|
+
- Seu objetivo neste round: {1 frase}
|
|
113
|
+
- Anti-patterns a evitar: {lista curta}
|
|
114
|
+
- Vocabulário de domínio: {termos-chave, se da investigation}
|
|
115
|
+
|
|
116
|
+
### O que NÃO precisa ler
|
|
117
|
+
- {artefatos de outros executors que não são input deste round}
|
|
118
|
+
- {investigation completa — só os excerpts relevantes}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Passo 4 — Success criteria
|
|
122
|
+
|
|
123
|
+
Definir como saber que o squad cumpriu o objective:
|
|
124
|
+
|
|
125
|
+
```markdown
|
|
126
|
+
## Success Criteria
|
|
127
|
+
|
|
128
|
+
### Output final esperado
|
|
129
|
+
- {descrição concreta do deliverable — não "conteúdo de qualidade" mas "3 scripts de vídeo com hook, body, e CTA"}
|
|
130
|
+
|
|
131
|
+
### Quality gates que devem passar
|
|
132
|
+
- {checklist item 1 — do quality.md}
|
|
133
|
+
- {checklist item 2}
|
|
134
|
+
- {item do investigation report, se aplicável}
|
|
135
|
+
|
|
136
|
+
### Definition of done
|
|
137
|
+
- [ ] Todos os rounds completados
|
|
138
|
+
- [ ] Output final salvo em `output/{squad-slug}/`
|
|
139
|
+
- [ ] Session HTML gerado em `output/{squad-slug}/{session-id}.html`
|
|
140
|
+
- [ ] Nenhum review loop pendente (se configurados)
|
|
141
|
+
- [ ] Checklists validados
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Passo 5 — Orchestration notes
|
|
145
|
+
|
|
146
|
+
Instruções específicas para o @orquestrador:
|
|
147
|
+
|
|
148
|
+
```markdown
|
|
149
|
+
## Orchestration Notes
|
|
150
|
+
|
|
151
|
+
### Session management
|
|
152
|
+
- {como o orquestrador deve abrir a session}
|
|
153
|
+
- {quando escalar para o usuário vs. decidir autonomamente}
|
|
154
|
+
- {como lidar com review loops se configurados}
|
|
155
|
+
|
|
156
|
+
### Round transitions
|
|
157
|
+
- Após cada round, verificar o quality gate ANTES de passar ao próximo
|
|
158
|
+
- Se quality gate falha: {retry strategy — do review loop config ou default}
|
|
159
|
+
- Se executor pede ajuda de outro: {routing rules}
|
|
160
|
+
|
|
161
|
+
### Escalation policy
|
|
162
|
+
- Se um executor não consegue produzir output: escalar ao usuário
|
|
163
|
+
- Se dois executors conflitam: sintetizar a tensão e perguntar ao usuário
|
|
164
|
+
- Se o quality gate falha após max retries: {strategy}
|
|
165
|
+
|
|
166
|
+
### Learning capture
|
|
167
|
+
- Ao final da session, detectar learnings (ver squad-learning)
|
|
168
|
+
- Registrar em `learnings/` antes de fechar a session
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Passo 6 — Gerar execution-plan.md
|
|
172
|
+
|
|
173
|
+
Salvar em `.aioson/squads/{slug}/docs/execution-plan.md`:
|
|
174
|
+
|
|
175
|
+
```markdown
|
|
176
|
+
---
|
|
177
|
+
squad: "{squad-slug}"
|
|
178
|
+
created: "{ISO-8601}"
|
|
179
|
+
status: "draft"
|
|
180
|
+
based_on_blueprint: "{blueprint path}"
|
|
181
|
+
based_on_investigation: "{investigation path ou null}"
|
|
182
|
+
rounds_total: {N}
|
|
183
|
+
source_artifacts:
|
|
184
|
+
- squad.manifest.json
|
|
185
|
+
- {blueprint path}
|
|
186
|
+
- {investigation path}
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
# Execution Plan: {squad-name}
|
|
190
|
+
|
|
191
|
+
> Plano de como o squad vai atacar o objetivo.
|
|
192
|
+
> Gerado após criação, aprovado antes da primeira session.
|
|
193
|
+
> Status: draft → approved → in_progress → completed
|
|
194
|
+
|
|
195
|
+
## Pre-flight check
|
|
196
|
+
|
|
197
|
+
### Artefatos consolidados
|
|
198
|
+
{inventory do Passo 1}
|
|
199
|
+
|
|
200
|
+
### Consistency check
|
|
201
|
+
{issues encontrados, classificados como ADJUST/WARN/INFO}
|
|
202
|
+
|
|
203
|
+
### Squad readiness verdict
|
|
204
|
+
{READY | NEEDS_ADJUSTMENT | NOT_READY}
|
|
205
|
+
|
|
206
|
+
## Execution Strategy
|
|
207
|
+
|
|
208
|
+
### Sequência de rounds
|
|
209
|
+
{Rounds do Passo 2}
|
|
210
|
+
|
|
211
|
+
## Executor Briefings
|
|
212
|
+
{Briefings do Passo 3}
|
|
213
|
+
|
|
214
|
+
## Success Criteria
|
|
215
|
+
{Critérios do Passo 4}
|
|
216
|
+
|
|
217
|
+
## Orchestration Notes
|
|
218
|
+
{Notas do Passo 5}
|
|
219
|
+
|
|
220
|
+
## Context Package (para session ou novo chat)
|
|
221
|
+
|
|
222
|
+
### O que o @orquestrador deve ler no início de cada session
|
|
223
|
+
1. Este execution-plan.md
|
|
224
|
+
2. squad.manifest.json
|
|
225
|
+
3. Último session HTML (se não é a primeira session)
|
|
226
|
+
4. learnings/index.md (se existe)
|
|
227
|
+
|
|
228
|
+
### O que cada executor recebe
|
|
229
|
+
- Seu agent file + briefing deste plan
|
|
230
|
+
- Output do round anterior (se houver)
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Passo 7 — Apresentar ao usuário
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
Execution Plan gerado para squad {name}.
|
|
237
|
+
|
|
238
|
+
Rounds: {N} ({M paralelos se houver)
|
|
239
|
+
Consistency: {N adjusts, M warns, P infos}
|
|
240
|
+
Readiness: {READY | NEEDS_ADJUSTMENT | NOT_READY}
|
|
241
|
+
|
|
242
|
+
Sequência:
|
|
243
|
+
1. {round 1 — executor — 1 linha}
|
|
244
|
+
2. {round 2 — executor — 1 linha}
|
|
245
|
+
[...]
|
|
246
|
+
|
|
247
|
+
Success criteria: {1 linha do deliverable final esperado}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Perguntar:
|
|
251
|
+
> "Plano de execução pronto. Quer ajustar algo antes de iniciar a primeira session?"
|
|
252
|
+
|
|
253
|
+
Se NEEDS_ADJUSTMENT:
|
|
254
|
+
> "Encontrei {N} ajustes necessários. Quer que eu corrija antes de aprovar o plan?"
|
|
255
|
+
|
|
256
|
+
## Quando gerar automaticamente (decision tree para squad.md)
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
Squad criado e validado
|
|
260
|
+
├── 4+ executors? → GERAR automaticamente
|
|
261
|
+
├── Workflow definido? → GERAR automaticamente
|
|
262
|
+
├── Investigation @orache foi feita? → GERAR automaticamente
|
|
263
|
+
├── Mode = software ou mixed? → GERAR automaticamente
|
|
264
|
+
├── 3 executors + goal simples? → OFERECER (não obrigar)
|
|
265
|
+
├── Ephemeral squad? → PULAR
|
|
266
|
+
└── 2 executors + flow óbvio? → PULAR
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Regras
|
|
270
|
+
|
|
271
|
+
- NÃO execute nenhum round aqui — SÓ planeje
|
|
272
|
+
- NÃO ignore issues ADJUST — sinalize e ofereça correção
|
|
273
|
+
- NÃO gere rounds vagos como "produzir conteúdo" — detalhe O QUE, COMO, e COM QUAIS inputs
|
|
274
|
+
- O execution plan é PERSISTENTE — salvar em arquivo, não só no chat
|
|
275
|
+
- Se investigation existe, DEVE ser usada para enriquecer o plan
|
|
276
|
+
- Se learnings existem, DEVEM informar a sequência de rounds
|
|
277
|
+
- Rounds review são OPCIONAIS se não há review loop configurado, mas RECOMENDADOS para squads com 4+ executors
|
|
278
|
+
- Após aprovação do usuário, mudar status de `draft` para `approved`
|
|
279
|
+
- Se o squad é editado depois do plan ser aprovado, marcar plan como `stale`
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
2. Se inválido: abortar com sugestão de correção
|
|
12
12
|
3. Coletar todos os arquivos do pacote:
|
|
13
13
|
- .aioson/squads/<slug>/ (tudo)
|
|
14
|
-
- NÃO incluir: output/,
|
|
14
|
+
- NÃO incluir: output/, aioson-logs/, media/ (são dados de sessão)
|
|
15
15
|
4. Gerar archive: `.aioson/squads/exports/<slug>.aios-squad.tar.gz`
|
|
16
16
|
5. Incluir um `import-instructions.md` no archive
|
|
17
17
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Task: Squad Investigate
|
|
2
|
+
|
|
3
|
+
> Fase de investigação do lifecycle. Enriquece o design com conhecimento real do domínio.
|
|
4
|
+
|
|
5
|
+
## Quando usar
|
|
6
|
+
- `@squad investigate <domain>` — investigação standalone
|
|
7
|
+
- `@squad` flow quando o usuário aceita investigação
|
|
8
|
+
- `@squad design --investigate` — dispara investigação antes do design
|
|
9
|
+
|
|
10
|
+
## Entrada
|
|
11
|
+
- Domínio ou tópico
|
|
12
|
+
- Goal do squad
|
|
13
|
+
- Output type esperado
|
|
14
|
+
- Opcional: dimensions específicas para focar
|
|
15
|
+
|
|
16
|
+
## Processo
|
|
17
|
+
|
|
18
|
+
### Passo 1 — Ativar @orache
|
|
19
|
+
Leia `.aioson/agents/orache.md` e execute como @orache.
|
|
20
|
+
Passe o contexto do domínio coletado pelo @squad.
|
|
21
|
+
|
|
22
|
+
### Passo 2 — Aguardar investigação
|
|
23
|
+
@orache executa o processo de investigação (Steps 1-6 do agent).
|
|
24
|
+
|
|
25
|
+
### Passo 3 — Receber relatório
|
|
26
|
+
@orache salva o relatório em `squad-searches/`.
|
|
27
|
+
|
|
28
|
+
### Passo 4 — Validar completude
|
|
29
|
+
Verifique que o relatório cobre pelo menos 4 das 7 dimensões.
|
|
30
|
+
Se não cobrir, pergunte ao usuário se quer aprofundar.
|
|
31
|
+
|
|
32
|
+
### Passo 5 — Integrar com design
|
|
33
|
+
Se esta task foi invocada do flow do @squad:
|
|
34
|
+
- Retorne o path do relatório para o @squad
|
|
35
|
+
- O @squad usa o relatório para enriquecer o blueprint
|
|
36
|
+
|
|
37
|
+
## Saída
|
|
38
|
+
- Relatório de investigação salvo em `squad-searches/`
|
|
39
|
+
- Path do relatório disponível para o @squad design
|
|
40
|
+
|
|
41
|
+
## Regras
|
|
42
|
+
- NÃO gere o squad aqui — isso é responsabilidade da task create
|
|
43
|
+
- NÃO fabrique descobertas — se não encontrou, diga
|
|
44
|
+
- SEMPRE salve o relatório em arquivo — nunca apenas no chat
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Task: Squad Learning Review
|
|
2
|
+
|
|
3
|
+
> Periodic review of accumulated squad learnings.
|
|
4
|
+
|
|
5
|
+
## When to use
|
|
6
|
+
- `@squad learning review <slug>` — manual review
|
|
7
|
+
- Automatically when learnings > 15 (consolidation needed)
|
|
8
|
+
- Periodically suggested by @orquestrador after 10+ sessions
|
|
9
|
+
|
|
10
|
+
## Process
|
|
11
|
+
|
|
12
|
+
### Step 1 — Inventory
|
|
13
|
+
List all active learnings in `learnings/index.md`.
|
|
14
|
+
|
|
15
|
+
### Step 2 — Consolidation
|
|
16
|
+
Identify redundant learnings and consolidate:
|
|
17
|
+
- Two learnings saying the same thing → merge into one with combined evidence
|
|
18
|
+
- Keep reference to originals in the consolidated learning
|
|
19
|
+
|
|
20
|
+
### Step 3 — Promotion
|
|
21
|
+
Identify candidates for promotion (rules or skills):
|
|
22
|
+
- Quality learnings with frequency >= 3 → candidate for rule
|
|
23
|
+
- Domain learnings totaling >= 7 for same domain → candidate for domain skill
|
|
24
|
+
- Process learnings confirmed across 3+ sessions → candidate for rule
|
|
25
|
+
|
|
26
|
+
### Step 4 — Archive
|
|
27
|
+
Move stale learnings to `learnings/archive/`:
|
|
28
|
+
- Learnings not reinforced in 90+ days
|
|
29
|
+
- Learnings contradicted by newer learnings
|
|
30
|
+
- Learnings that were promoted (keep original as historical record)
|
|
31
|
+
|
|
32
|
+
### Step 5 — Report
|
|
33
|
+
Present summary:
|
|
34
|
+
- Learnings active: N
|
|
35
|
+
- Consolidated: M
|
|
36
|
+
- Promoted: P
|
|
37
|
+
- Archived: A
|
|
38
|
+
|
|
39
|
+
## CLI support
|
|
40
|
+
- `aioson squad:learning list <slug>` — list active learnings
|
|
41
|
+
- `aioson squad:learning stats <slug>` — statistics by type and status
|
|
42
|
+
- `aioson squad:learning archive <slug>` — archive stale learnings
|
|
43
|
+
- `aioson squad:learning promote <slug> <id>` — promote learning to rule
|
|
44
|
+
- `aioson squad:learning export <slug>` — export learnings as JSON
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Task: Squad Output Configuration
|
|
2
|
+
|
|
3
|
+
> Loaded on-demand by `@squad` when configuring output strategy.
|
|
4
|
+
> Trigger: `@squad --config=output --squad={slug}` or auto-detected during creation.
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
|
|
8
|
+
Guide the user through configuring how the squad stores, routes, and delivers its outputs.
|
|
9
|
+
Write the result into `outputStrategy` in `squad.manifest.json`.
|
|
10
|
+
|
|
11
|
+
## Domain heuristics — auto-suggest the right mode
|
|
12
|
+
|
|
13
|
+
Before asking questions, infer the best strategy from the squad domain:
|
|
14
|
+
|
|
15
|
+
| Domain pattern | Suggested mode | Reasoning |
|
|
16
|
+
|---------------|---------------|-----------|
|
|
17
|
+
| Landing page, site, HTML standalone, presentation | `files` | Output IS the file |
|
|
18
|
+
| Copy for ads, social media, product descriptions | `sqlite` | Recurring data, dashboard + webhook |
|
|
19
|
+
| YouTube creator, editorial (scripts + thumbnails) | `hybrid` | Mix of structured data + media |
|
|
20
|
+
| Report/PDF generator | `files` + worker | Worker generates file |
|
|
21
|
+
| Blog, newsletter, editorial content | `hybrid` | Data in DB + HTML preview |
|
|
22
|
+
| Research, analysis, strategy | `files` | Document-oriented, not recurring |
|
|
23
|
+
| Data pipeline, ETL, structured extraction | `sqlite` | Structured data, API/webhook consumption |
|
|
24
|
+
| Image/video/media generation | `hybrid` | Media files + DB references |
|
|
25
|
+
|
|
26
|
+
## Configuration wizard
|
|
27
|
+
|
|
28
|
+
Present the inferred suggestion and ask for confirmation:
|
|
29
|
+
|
|
30
|
+
> "Based on the domain **{domain}**, I suggest:
|
|
31
|
+
>
|
|
32
|
+
> **Output mode: {mode}**
|
|
33
|
+
> - {brief explanation of what this means}
|
|
34
|
+
>
|
|
35
|
+
> Does this fit your workflow, or do you want to adjust?"
|
|
36
|
+
|
|
37
|
+
If the user wants to adjust, walk through these questions:
|
|
38
|
+
|
|
39
|
+
### Q1 — Output destination
|
|
40
|
+
> "Where should the squad outputs go?"
|
|
41
|
+
> - **Files only** — physical files in `output/{slug}/` (HTML, MD, etc.)
|
|
42
|
+
> - **Database only** — structured records in SQLite, viewable in dashboard
|
|
43
|
+
> - **Both** — files for preview + database for management and delivery
|
|
44
|
+
|
|
45
|
+
### Q2 — Delivery (only if `sqlite` or `hybrid`)
|
|
46
|
+
> "Should finished content be delivered somewhere automatically?"
|
|
47
|
+
> - **No** — just store in database, publish manually from dashboard
|
|
48
|
+
> - **Cloud** — publish to aioson.com when I click publish
|
|
49
|
+
> - **Webhook** — POST to an external URL (website, CMS, API)
|
|
50
|
+
> - **Both** — cloud + webhook
|
|
51
|
+
|
|
52
|
+
### Q3 — Webhook config (only if webhook selected)
|
|
53
|
+
> "Configure the webhook:"
|
|
54
|
+
> - **URL**: the endpoint to POST to (or use `{{ENV:WEBHOOK_URL}}` for env variable)
|
|
55
|
+
> - **Auth**: Bearer token? (or use `{{ENV:WEBHOOK_TOKEN}}`)
|
|
56
|
+
> - **Trigger**: on-publish (manual) or on-create (automatic)?
|
|
57
|
+
|
|
58
|
+
### Q4 — Auto-publish (only if webhook or cloud selected)
|
|
59
|
+
> "Should content be published automatically after creation?"
|
|
60
|
+
> - **No** — I'll review and publish manually from dashboard
|
|
61
|
+
> - **Yes** — publish automatically when the agent finishes
|
|
62
|
+
|
|
63
|
+
## Output — write to manifest
|
|
64
|
+
|
|
65
|
+
After collecting answers, write `outputStrategy` to `squad.manifest.json`:
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"outputStrategy": {
|
|
70
|
+
"mode": "{files|sqlite|hybrid}",
|
|
71
|
+
"fileOutput": {
|
|
72
|
+
"enabled": true,
|
|
73
|
+
"dir": "output/{squad-slug}/",
|
|
74
|
+
"formats": ["html", "md"]
|
|
75
|
+
},
|
|
76
|
+
"dataOutput": {
|
|
77
|
+
"enabled": true,
|
|
78
|
+
"storage": "sqlite",
|
|
79
|
+
"table": "content_items",
|
|
80
|
+
"contentItems": true
|
|
81
|
+
},
|
|
82
|
+
"delivery": {
|
|
83
|
+
"webhooks": [
|
|
84
|
+
{
|
|
85
|
+
"slug": "{webhook-slug}",
|
|
86
|
+
"url": "{{ENV:WEBHOOK_URL}}",
|
|
87
|
+
"trigger": "on-publish",
|
|
88
|
+
"format": "json",
|
|
89
|
+
"headers": {
|
|
90
|
+
"Authorization": "Bearer {{ENV:WEBHOOK_TOKEN}}"
|
|
91
|
+
},
|
|
92
|
+
"worker": ".aioson/squads/{squad-slug}/workers/webhook-post.py"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"cloudPublish": false,
|
|
96
|
+
"autoPublish": false
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Delivery worker generation
|
|
103
|
+
|
|
104
|
+
If webhook is configured, generate a delivery worker at `.aioson/squads/{squad-slug}/workers/webhook-post.py`:
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
#!/usr/bin/env python3
|
|
108
|
+
"""Delivery worker: POST content items to configured webhook."""
|
|
109
|
+
import json, sys, os, urllib.request, urllib.error
|
|
110
|
+
|
|
111
|
+
def main():
|
|
112
|
+
if len(sys.argv) > 1:
|
|
113
|
+
with open(sys.argv[1], 'r') as f:
|
|
114
|
+
payload = json.load(f)
|
|
115
|
+
else:
|
|
116
|
+
payload = json.load(sys.stdin)
|
|
117
|
+
|
|
118
|
+
url = os.environ.get('WEBHOOK_URL')
|
|
119
|
+
token = os.environ.get('WEBHOOK_TOKEN', '')
|
|
120
|
+
|
|
121
|
+
if not url:
|
|
122
|
+
print('ERROR: WEBHOOK_URL not set', file=sys.stderr)
|
|
123
|
+
sys.exit(1)
|
|
124
|
+
|
|
125
|
+
headers = {'Content-Type': 'application/json'}
|
|
126
|
+
if token:
|
|
127
|
+
headers['Authorization'] = f'Bearer {token}'
|
|
128
|
+
|
|
129
|
+
data = json.dumps(payload).encode('utf-8')
|
|
130
|
+
req = urllib.request.Request(url, data=data, headers=headers, method='POST')
|
|
131
|
+
|
|
132
|
+
try:
|
|
133
|
+
with urllib.request.urlopen(req) as resp:
|
|
134
|
+
print(f'OK: {resp.status} {resp.reason}')
|
|
135
|
+
except urllib.error.HTTPError as e:
|
|
136
|
+
print(f'ERROR: {e.code} {e.reason}', file=sys.stderr)
|
|
137
|
+
sys.exit(1)
|
|
138
|
+
|
|
139
|
+
if __name__ == '__main__':
|
|
140
|
+
main()
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Register the worker in the manifest:
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"slug": "webhook-post",
|
|
147
|
+
"title": "Webhook Delivery",
|
|
148
|
+
"type": "worker",
|
|
149
|
+
"role": "POST content to configured webhook endpoint",
|
|
150
|
+
"entrypoint": ".aioson/squads/{squad-slug}/workers/webhook-post.py",
|
|
151
|
+
"runtime": "python",
|
|
152
|
+
"deterministic": true,
|
|
153
|
+
"usesLLM": false
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Compatibility with storagePolicy
|
|
158
|
+
|
|
159
|
+
If the squad already has `storagePolicy` but no `outputStrategy`:
|
|
160
|
+
- `primary: "sqlite"` → infer `mode: "hybrid"` (preserve existing behavior)
|
|
161
|
+
- `exports.html: true` → `fileOutput.formats` includes `"html"`
|
|
162
|
+
- Do NOT remove `storagePolicy` — keep both for backward compatibility
|
|
163
|
+
|
|
164
|
+
## After configuration
|
|
165
|
+
|
|
166
|
+
Show summary:
|
|
167
|
+
```
|
|
168
|
+
Output strategy configured for **{squad-name}**:
|
|
169
|
+
- Mode: {mode}
|
|
170
|
+
- Files: {enabled/disabled} → {dir}
|
|
171
|
+
- Database: {enabled/disabled} → {table}
|
|
172
|
+
- Delivery: {none | cloud | webhook | cloud+webhook}
|
|
173
|
+
- Auto-publish: {yes/no}
|
|
174
|
+
|
|
175
|
+
{if webhook: Delivery worker created at `.aioson/squads/{slug}/workers/webhook-post.py`}
|
|
176
|
+
{Reminder: Set WEBHOOK_URL and WEBHOOK_TOKEN in your environment if using {{ENV:}} placeholders.}
|
|
177
|
+
```
|
|
@@ -24,7 +24,7 @@ Verifique que existem:
|
|
|
24
24
|
- `.aioson/squads/<slug>/agents/agents.md` (obrigatório)
|
|
25
25
|
- `.aioson/squads/<slug>/agents/orquestrador.md` (obrigatório)
|
|
26
26
|
- Para cada executor em manifest.executors: o arquivo referenciado existe
|
|
27
|
-
- Diretórios: `output/<slug>/`, `
|
|
27
|
+
- Diretórios: `output/<slug>/`, `aioson-logs/<slug>/`
|
|
28
28
|
|
|
29
29
|
### Camada 3 — Validação semântica (básica nesta fase, aprofundada na Fase 2)
|
|
30
30
|
- Slug do manifesto bate com o nome do diretório
|
|
@@ -8,3 +8,5 @@
|
|
|
8
8
|
## Commands
|
|
9
9
|
Use command files in `.gemini/commands/` that point to the same agents in `.aioson/agents/`.
|
|
10
10
|
- Include `aios-ux-ui` for frontend design specification when UI quality is critical.
|
|
11
|
+
- Include `aios-deyvin` when you want to continue recent work, inspect what changed, or implement a small slice together.
|
|
12
|
+
- `aios-pair` remains as a compatibility alias.
|