Remover Habilidades
O Que Você Vai Aprender
- Usar
openskills managepara remover várias habilidades interativamente - Usar
openskills removepara remover habilidades específicas via script - Entender os cenários de uso das duas formas de remoção
- Confirmar se a remoção é de local project ou global
- Limpar habilidades desnecessárias com segurança
O Seu Problema Atual
Com o aumento de habilidades instaladas, você pode enfrentar estes problemas:
- "Algumas habilidades não uso mais, quero excluir algumas, mas excluir uma por uma é trabalhoso demais"
- "Quero excluir habilidades automaticamente em scripts, o comando manage precisa de seleção interativa"
- "Não tenho certeza se a habilidade foi instalada em project ou global, quero confirmar antes de excluir"
- "Excluir várias habilidades, com medo de excluir acidentalmente as que ainda são usadas"
OpenSkills fornece duas formas de remoção para resolver esses problemas: manage interativo (adequado para seleção manual de várias habilidades) e remove scriptado (adequado para remoção precisa de habilidades específicas).
Quando Usar
| Cenário | Método Recomendado | Comando |
|---|---|---|
| Remover várias habilidades manualmente | Seleção interativa | openskills manage |
| Remoção automática em scripts ou CI/CD | Especificar nome da habilidade | openskills remove <name> |
| Apenas sabe o nome da habilidade, quer excluir rapidamente | Excluir diretamente | openskills remove <name> |
| Quer ver quais habilidades podem ser excluídas | Listar primeiro depois excluir | openskills list → openskills manage |
Ideia Central
As duas formas de remoção do OpenSkills são adequadas para diferentes cenários:
Remoção Interativa: openskills manage
- Características: Exibe todas as habilidades instaladas, permitindo marcar as que deseja excluir
- Aplicação: Gerenciar manualmente a biblioteca de habilidades, excluir várias de uma vez
- Vantagens: Não exclui acidentalmente, pode ver todas as opções com antecedência
- Comportamento padrão: Não seleciona nenhuma habilidade (evita exclusão acidental)
Remoção Scriptada: openskills remove <name>
- Características: Exclui diretamente a habilidade especificada
- Aplicação: Scripts, automação, remoção precisa
- Vantagens: Rápido, sem interação
- Risco: Se o nome da habilidade estiver errado, dará erro, não excluirá outras habilidades
Princípio de Remoção
Ambas as formas excluem todo o diretório da habilidade (incluindo SKILL.md, references/, scripts/, assets/ e todos os outros arquivos), sem deixar resíduos.
Remoção Irreversível
Excluir uma habilidade excluirá todo o diretório da habilidade, sem possibilidade de recuperação. Recomenda-se confirmar se a habilidade não é mais necessária antes de excluir, ou reinstalar se necessário.
Siga Comigo
Passo 1: Remover várias habilidades interativamente
Por que Quando você tem várias habilidades para excluir, a seleção interativa é mais segura e intuitiva
Execute o seguinte comando:
npx openskills manageO Que Você Deve Ver
Primeiro você verá a lista de todas as habilidades instaladas (ordenadas por project/global):
? Select skills to remove:
❯◯ pdf (project)
◯ code-analyzer (project)
◯ email-reader (global)
◯ git-tools (global)- Azul
(project): habilidades de nível de projeto - Cinza
(global): habilidades de nível global - Espaço: marcar/desmarcar
- Enter: confirmar exclusão
Suponha que você selecionou pdf e git-tools, e depois pressionou Enter:
O Que Você Deve Ver
✅ Removed: pdf (project)
✅ Removed: git-tools (global)
✅ Removed 2 skill(s)Não Selecionado por Padrão
O comando manage não seleciona nenhuma habilidade por padrão, isso é para evitar exclusão acidental. Você precisa usar a tecla espaço para marcar manualmente as habilidades que deseja excluir.
Passo 2: Remover uma única habilidade via script
Por que Quando você sabe o nome da habilidade e quer excluir rapidamente
Execute o seguinte comando:
npx openskills remove pdfO Que Você Deve Ver
✅ Removed: pdf
From: project (/Users/yourname/project/.claude/skills/pdf)Se a habilidade não existir:
Error: Skill 'pdf' not foundO programa sairá e retornará código de erro 1 (adequado para scripts verificarem).
Passo 3: Confirmar localização de exclusão
Por que Confirmar a localização da habilidade (project vs global) antes de excluir, evitar exclusão acidental
Ao excluir uma habilidade, o comando exibirá a localização de exclusão:
# A exclusão via script exibirá a localização detalhada
npx openskills remove pdf
✅ Removed: pdf
From: project (/Users/yourname/project/.claude/skills/pdf)
# A exclusão interativa também exibirá a localização de cada habilidade
npx openskills manage
# Após selecionar, pressione Enter
✅ Removed: pdf (project)
✅ Removed: git-tools (global)Regra de julgamento:
- Se o caminho contém o diretório do projeto atual →
(project) - Se o caminho contém o diretório home →
(global)
Passo 4: Verificar após exclusão
Por que Confirmar exclusão bem-sucedida, evitar omissões
Após excluir a habilidade, use o comando list para verificar:
npx openskills listO Que Você Deve Ver
As habilidades excluídas não aparecerão mais na lista.
Ponto de Verificação ✅
Confirme o seguinte:
- [ ] Executar
openskills managepode ver a lista de todas as habilidades - [ ] Pode usar a tecla espaço para marcar/desmarcar habilidades
- [ ] Não seleciona nenhuma habilidade por padrão (evita exclusão acidental)
- [ ] Executar
openskills remove <name>pode excluir a habilidade especificada - [ ] Ao excluir, exibirá se é localização project ou global
- [ ] Após excluir, usar
openskills listpara verificar que a habilidade desapareceu
Avisos de Problemas
Problema Comum 1: Excluiu acidentalmente uma habilidade em uso
Sintoma: Descobriu que a habilidade ainda está em uso após a exclusão
Solução:
Basta reinstalar:
# Se foi instalado a partir do GitHub
npx openskills install anthropics/skills
# Se foi instalado a partir de um caminho local
npx openskills install ./path/to/skillOpenSkills registra a fonte de instalação (no arquivo .openskills.json), ao reinstalar não perderá informações do caminho original.
Problema Comum 2: Comando manage exibe "No skills installed"
Sintoma: Executar openskills manage indica que nenhuma habilidade está instalada
Causa: De fato não há habilidades no diretório atual
Etapas de solução de problemas:
- Verifique se está no diretório correto do projeto
- Confirme se instalou habilidades globais (
openskills list --global) - Alterne para o diretório onde as habilidades foram instaladas e tente novamente
# Alterne para o diretório do projeto
cd /path/to/your/project
# Tente novamente
npx openskills manageProblema Comum 3: Comando remove exibe erro "Skill not found"
Sintoma: Executar openskills remove <name> indica que a habilidade não existe
Causa: Nome da habilidade escrito incorretamente, ou a habilidade já foi excluída
Etapas de solução de problemas:
- Primeiro use o comando list para ver o nome correto da habilidade:
npx openskills listVerifique a ortografia do nome da habilidade (atenção a maiúsculas/minúsculas e hífens)
Confirme se a habilidade é project ou global (procure em diferentes diretórios)
# Ver habilidades do projeto
ls -la .claude/skills/
# Ver habilidades globais
ls -la ~/.claude/skills/Problema Comum 4: Após excluir, a habilidade ainda está no AGENTS.md
Sintoma: Após excluir a habilidade, o AGENTS.md ainda tem referência a essa habilidade
Causa: Excluir a habilidade não atualiza automaticamente o AGENTS.md
Solução:
Execute novamente o comando sync:
npx openskills syncO sync escaneará novamente as habilidades instaladas e atualizará o AGENTS.md, as habilidades excluídas serão automaticamente removidas da lista.
Resumo da Lição
OpenSkills fornece duas formas de exclusão de habilidades:
Remoção Interativa: openskills manage
- 🎯 Cenário de aplicação: Gerenciar manualmente a biblioteca de habilidades, excluir várias habilidades
- ✅ Vantagens: Intuitivo, sem exclusão acidental, pode visualizar antecipadamente
- ⚠️ Atenção: Não seleciona nenhuma habilidade por padrão, precisa marcar manualmente
Remoção Scriptada: openskills remove <name>
- 🎯 Cenário de aplicação: Scripts, automação, remoção precisa
- ✅ Vantagens: Rápido, sem interação
- ⚠️ Atenção: Se o nome da habilidade estiver errado, dará erro
Pontos Principais:
- Ambas as formas excluem o diretório inteiro da habilidade (irreversível)
- Ao excluir, exibirá se é localização project ou global
- Após excluir, use
openskills listpara verificar - Lembre-se de executar novamente
openskills syncpara atualizar o AGENTS.md
Próxima Lição
Na próxima lição aprenderemos Modo Universal: Ambiente Multi-Agent.
Você aprenderá:
- Como usar a flag
--universalpara evitar conflitos com Claude Code- Gerenciamento unificado de habilidades em ambiente multi-agent
- O papel do diretório
.agent/skills
Apêndice: Referência do Código Fonte
Clique para expandir e ver a localização do código fonte
Atualizado em: 2026-01-24
| Função | Caminho do Arquivo | Linha |
|---|---|---|
| Implementação do comando manage | src/commands/manage.ts | 10-62 |
| Implementação do comando remove | src/commands/remove.ts | 8-21 |
| Encontrar todas as habilidades | src/utils/skills.ts | 30-64 |
| Encontrar uma habilidade específica | src/utils/skills.ts | 66-90 |
Funções Principais:
manageSkills(): Remoção interativa de habilidades, usa inquirer checkbox para o usuário selecionarremoveSkill(skillName): Remoção scriptada de habilidade específica, sai com erro se não encontrarfindAllSkills(): Percorre 4 diretórios de busca, coleta todas as habilidadesfindSkill(skillName): Busca habilidade específica, retorna objeto Skill
Constantes Principais:
- Nenhuma (todos os caminhos e configurações são calculados dinamicamente)
Lógica Principal:
Comando manage (src/commands/manage.ts):
- Chama
findAllSkills()para obter todas as habilidades (linha 11) - Ordena por project/global (linhas 20-25)
- Usa inquirer
checkboxpara o usuário selecionar (linhas 33-37) - Padrão
checked: false, não seleciona nenhuma habilidade (linha 30) - Percorre as habilidades selecionadas, chama
rmSyncpara excluir (linhas 45-52)
- Chama
Comando remove (src/commands/remove.ts):
- Chama
findSkill(skillName)para buscar habilidade (linha 9) - Se não encontrar, exibe erro e
process.exit(1)(linhas 12-14) - Chama
rmSyncpara excluir o diretório inteiro da habilidade (linha 16) - Usa
homedir()para determinar se é project ou global (linha 18)
- Chama
Operação de exclusão:
- Usa
rmSync(baseDir, { recursive: true, force: true })para excluir o diretório inteiro da habilidade recursive: true: exclui recursivamente todos os subarquivos e subdiretóriosforce: true: ignora erros de arquivo inexistente
- Usa