| name | create-environment-profile |
| description | Criando perfil de ambiente Linux/desktop (EnvironmentProfile) para nova distro ou DE. Use para adicionar suporte a Ubuntu 24, Fedora, Mint, KDE etc. Não use para criar ações de recovery (use create-recovery-action) nem para orquestrar execução (use create-use-case). |
Skill: Criar Environment Profile (Micro-Skill)
Quando usar
- Adicionar suporte a nova distro (ex: Fedora 40, Mint 22)
- Adicionar suporte a novo desktop environment (ex: KDE Plasma, Cinnamon)
- Adaptar comandos existentes para diferenças de serviços entre distros
- Testar o app num ambiente diferente do Ubuntu 24 (profile de referência)
Instruções
1. Criar o profile
2. Declarar ações suportadas
3. Mapear comandos por ação
Para cada ActionId suportado, definir:
4. Detectar automaticamente (opcional, fase futura)
Critical
- Profile não executa comandos — apenas os declara; quem executa é
CommandRunner
- Sem imports de JavaFX ou TUI aqui
- Comandos devem ser testáveis como strings — sem lógica dinâmica no mapa
- Marcar
isSupported=false por padrão; só mudar para true após teste manual confirmado
- Ubuntu24Profile é o profile de referência — consulte sua estrutura antes de criar um novo
Exemplos
Exemplo 1: Novo profile para Fedora 40
Usuário diz: "Quero que o app funcione no Fedora 40"
Ações:
- Cria
Fedora40Profile em infrastructure/profiles/fedora/
- Audio:
"systemctl --user restart pipewire wireplumber" (verificar nomes no Fedora)
- Bluetooth:
"sudo systemctl restart bluetooth"
- Network:
"sudo systemctl restart NetworkManager"
- GNOME Shell:
"killall gnome-shell" — requiresPrivilege=false (user-space)
Exemplo 2: GenericProfile (fallback seguro)
Ações:
- Cria
GenericProfile que retorna isSupported() = false para tudo
- Usado quando
ProfileDetector não reconhece o ambiente
- UI exibe: "Ambiente não suportado — operações indisponíveis"
Troubleshooting
Profile detectado errado em runtime
- Causa:
/etc/os-release tem formato diferente do esperado
- Solução: Atualizar
ProfileDetector com novo padrão de parse; adicionar teste unitário
Comando do profile lança exceção em runtime
- Causa: serviço tem nome diferente nessa distro
- Solução: Verificar
systemctl list-units --type=service | grep <nome>, atualizar profile
Ação marcada como suportada mas falha
- Causa:
isSupported=true declarado antes de testar no ambiente real
- Solução: Reverter para
false; reativar apenas após confirmação manual
Consulte também