Guia de Migração de Squad
Como migrar squads legados para o formato AIOS 2.1.
Visão Geral
AIOS 2.1 introduziu um novo formato de squad com:
- Arquitetura task-first
- Validação JSON Schema
- Distribuição em três níveis
- Manifesto padronizado (
squad.yaml)
Squads legados usando config.yaml ou formatos mais antigos precisam de migração.
Detectando Squads Legados
Sinais de Formato Legado
| Indicador | Legado | Atual (2.1+) |
|---|---|---|
| Arquivo de manifesto | config.yaml | squad.yaml |
| Campo AIOS type | Ausente | aios.type: squad |
| Versão mínima | Ausente | aios.minVersion: "2.1.0" |
| Estrutura | Agent-first | Task-first |
Comando de Verificação
@squad-creator
*validate-squad ./squads/legacy-squadA saída indicará se migração é necessária:
⚠️ Formato legado detectado (config.yaml)
Execute: *migrate-squad ./squads/legacy-squadComando de Migração
Pré-visualizar Mudanças (Recomendado Primeiro)
@squad-creator
*migrate-squad ./squads/legacy-squad --dry-runMostra o que mudará sem modificar arquivos.
Executar Migração
*migrate-squad ./squads/legacy-squadSaída Detalhada
*migrate-squad ./squads/legacy-squad --verboseMostra progresso detalhado passo a passo.
O Que É Migrado
1. Renomeação do Manifesto
config.yaml → squad.yaml2. Campos Adicionados
# Estes campos são adicionados se ausentes
aios:
minVersion: '2.1.0'
type: squad3. Normalização de Estrutura
Componentes são reorganizados na estrutura padrão:
Antes:
├── config.yaml
├── my-agent.yaml
└── my-task.yaml
Depois:
├── squad.yaml
├── agents/
│ └── my-agent.md
└── tasks/
└── my-task.md4. Conversão de Formato de Arquivo
Arquivos YAML de agent são convertidos para formato Markdown:
# Antes: my-agent.yaml
name: my-agent
role: Helper# Depois: agents/my-agent.md
# my-agent
ACTIVATION-NOTICE: ...
\`\`\`yaml
agent:
name: my-agent
...
\`\`\`Cenários de Migração
Cenário 1: Squad Simples (apenas config.yaml)
Antes:
my-squad/
├── config.yaml
└── README.mdComando:
*migrate-squad ./squads/my-squadDepois:
my-squad/
├── squad.yaml # Renomeado + atualizado
├── README.md
└── .backup/ # Backup criado
└── pre-migration-2025-12-26/Cenário 2: Squad com Agents YAML
Antes:
my-squad/
├── config.yaml
├── agent.yaml
└── task.yamlComando:
*migrate-squad ./squads/my-squadDepois:
my-squad/
├── squad.yaml
├── agents/
│ └── agent.md # Convertido para MD
├── tasks/
│ └── task.md # Convertido para MD
└── .backup/Cenário 3: Migração Parcial (Já Tem Alguns Recursos 2.1)
Antes:
my-squad/
├── squad.yaml # Já renomeado
├── agent.yaml # Ainda formato YAML
└── tasks/
└── task.md # Já formato MDComando:
*migrate-squad ./squads/my-squadResultado:
- Adiciona campos
aiosausentes ao manifesto - Converte arquivos YAML restantes
- Pula arquivos já migrados
Backup & Rollback
Backup Automático
Toda migração cria um backup:
.backup/
└── pre-migration-{timestamp}/
├── config.yaml # Manifesto original
├── agent.yaml # Arquivos originais
└── ...Rollback Manual
# Listar backups
ls ./squads/my-squad/.backup/
# Restaurar backup específico
cp -r ./squads/my-squad/.backup/pre-migration-2025-12-26/. ./squads/my-squad/Rollback Programático
const { SquadMigrator } = require('./.aios-core/development/scripts/squad');
const migrator = new SquadMigrator();
await migrator.rollback('./squads/my-squad');Solução de Problemas
”Manifesto não encontrado”
Error: No manifest found (config.yaml or squad.yaml)Solução: Crie um manifesto básico:
# squad.yaml
name: my-squad
version: 1.0.0
description: Meu squad
aios:
minVersion: '2.1.0'
type: squad
components:
agents: []
tasks: []“Sintaxe YAML inválida”
Error: YAML parse error at line 15Solução:
- Verifique sintaxe YAML com um linter
- Problemas comuns: tabs (use espaços), aspas faltando
- Corrija erros, depois tente a migração novamente
”Falha no backup”
Error: Could not create backup directorySolução:
- Verifique permissões de escrita:
chmod 755 ./squads/my-squad - Verifique espaço em disco
- Tente com sudo (se apropriado)
“Migração incompleta”
Warning: Some files could not be migratedSolução:
- Execute com
--verbosepara ver quais arquivos falharam - Corrija arquivos problemáticos manualmente
- Re-execute a migração
Checklist Pós-Migração
Após migração, verifique:
-
squad.yamlexiste e é válido -
aios.typeé"squad" -
aios.minVersioné"2.1.0"ou superior - Todos os agents estão na pasta
agents/ - Todas as tasks estão na pasta
tasks/ - Arquivos de agent estão em formato Markdown
- Arquivos de task seguem TASK-FORMAT-SPEC-V1
- Validação passa:
*validate-squad --strict
Migração Programática
const { SquadMigrator } = require('./.aios-core/development/scripts/squad');
const migrator = new SquadMigrator({
verbose: true,
dryRun: false,
backupDir: '.backup',
});
// Verificar se migração é necessária
const needsMigration = await migrator.needsMigration('./squads/my-squad');
// Executar migração
const result = await migrator.migrate('./squads/my-squad');
console.log(result);
// {
// success: true,
// changes: ['config.yaml → squad.yaml', ...],
// backupPath: '.backup/pre-migration-...'
// }Recursos Relacionados
Versão: 1.0.0 | Atualizado: 2025-12-26 | Story: SQS-8