| name | create-recovery-action |
| description | Criando ação de recuperação de subsistema Linux (audio, network, bluetooth, GNOME). Use para adicionar nova ação de fix, definir seus passos e registrá-la no profile de ambiente. Não use para criar o Use Case que orquestra a ação (use create-use-case) nem para criar um novo profile de distro (use create-environment-profile). |
Skill: Criar Ação de Recuperação (Micro-Skill)
Quando usar
- Adicionar nova ação fixável (ex: "Fix Audio", "Fix Display", "Fix Bluetooth")
- Definir os passos que a ação executa
- Especificar quais ambientes suportam essa ação
- Atualizar lista de serviços/comandos existentes num profile
Instruções
1. Criar entidade RecoveryAction
2. Criar comando estruturado
3. Registrar em EnvironmentProfile
Critical
- A ação define o quê, não como — comandos shell concretos ficam exclusivamente no profile de infra
- Ação é agnóstica a distro — profiles resolvem diferenças; domain não sabe o que é
systemctl
- Marcar
isSupported=false por padrão; só marcar true após teste manual confirmado no ambiente
Exemplos
Exemplo 1: Nova ação "Fix Audio"
Usuário diz: "Adiciona ação Fix Audio que reinicia PipeWire e WirePlumber"
Ações:
- Cria
AudioAction em core/recovery/audio/entities/, define actionId = AUDIO
- Cria
AudioCommand com dois passos: PipeWire, WirePlumber
- Em
Ubuntu24Profile, mapeia AUDIO → "systemctl --user restart pipewire wireplumber"
- Resultado: ação pronta para ser usada por use cases, sem conhecer Linux ou systemctl
Troubleshooting
ActionNotSupportedError em runtime
- Causa:
Ubuntu24Profile (ou profile ativo) não suporta essa ação
- Solução: Adicionar suporte no profile correspondente ou criar novo profile
Campo timeout em CommandStep não definido
- Causa: passo crítico sem timeout
- Solução: Definir timeout baseado na expectativa do serviço (ex: audio = 5s, network = 10s)
Ordem dos passos causa falha intermitente
- Causa: dependência entre passos não mapeada
- Solução: Validar dependências e documentar a ordem com comentário no Command
Consulte também