skills.create_dir: faça novas skills aterrissarem onde sua config manda — não onde o prompt é ignorado

Você mantém um vault de equipe em /opt/brain/skills, então disse ao seu agente no system prompt: “crie novas skills em /opt/brain/skills.” Ele concordou — e então skill_manage gravou cada nova skill em ~/.hermes/skills/ mesmo assim, porque o código da tool não lê a sua prosa. Um operador da comunidade ficou tão cansado disso que aplicou chmod no diretório local de skills para deixá-lo somente leitura, só para forçar o agente a obedecer; o erro do SO venceu o system prompt. Um fix mesclado em 1º de setembro (PR #100377) põe fim a esse cabo de guerra de vez: a nova chave de config skills.create_dir roteia skills criadas pelo agente para qualquer diretório que você escolher — e toda instrução que menciona o caminho de criação, do schema da tool skill_manage ao próprio texto do prompt, agora renderiza o diretório que você configurou. A tool, o prompt e a config finalmente concordam.
Por que uma instrução de prompt não resolve isso
O caminho de criação do skill_manage era fixo no diretório de skills local do profile (~/.hermes/skills/). Você pode escrever o que quiser num system prompt, mas a implementação da tool lê configuração e caminhos, não intenção. Quando o humano disse “coloque as skills em /opt/brain/skills” e a tool gravou em ~/.hermes/skills/, a skill ainda assim foi criada, encontrada e usada — então nada falhou de forma ruidosa; o descasamento apenas acumulou skills silenciosamente no lugar errado, que depois tiveram de ser movidas à mão. O hack do diretório somente leitura “funcionava” apenas fazendo o caminho padrão falhar, o que é uma forma terrível de impor política.
O fix: uma chave de config, e as instruções acompanham
Adicione isto a ~/.hermes/config.yaml:
skills:
create_dir: /opt/brain/skills
É só isso. Agora:
skill_managecria novas skills lá — o_resolve_skill_dir()da tool aponta para o diretório configurado (ele faz mkdir no caminho na primeira gravação, então o diretório não precisa existir ainda).- Toda instrução que menciona o caminho acompanha. A descrição do schema da tool
skill_manage, o texto do prompt e os docs renderizam o diretório configurado viadisplay_skill_create_dir()— então o agente vê “novas skills caem em /opt/brain/skills/” na própria documentação da tool, não um caminho fixo e desatualizado. ~e${VAR}são expandidos, e caminhos relativos resolvem contra oHERMES_HOME— entãocreate_dir: team-skillssignifica$HERMES_HOME/team-skills.- Um valor que resolva para o diretório local padrão é tratado como não definido (já é o comportamento atual), então você não pode configurar por acidente o mesmo caminho.
Descoberta, confiança e o cenário somente leitura
Uma skill só é útil se o agente conseguir encontrá-la de novo. Quando skills.create_dir está definido, o diretório entra na ordem de busca de skills logo após o diretório local (com deduplicação contra external_dirs) — skills criadas lá são descobertas, confiáveis e patcheáveis no lugar. O hack somente leitura que deu origem a toda esta história também deixa de ser necessário: com create_dir apontando para outro lugar, um diretório local de skills somente leitura não bloqueia mais a criação, porque a tool nunca o toca.
Uma nota de precedência: skills locais do projeto confiáveis (o .hermes/skills/ de um repo — veja nosso guia de skills locais do projeto) mantêm precedência maior que o diretório local, e isso não muda.
Para onde apontar
- Um vault de equipe versionado no git (
/opt/brain/skillsou um subdiretório do repo): todo agente da máquina — e entre máquinas via sync — cria no vault compartilhado, e as skills são versionadas e revisadas como código. - Um diretório de rascunho ou workspace: mantenha
~/.hermes/skills/limpo para skills ajustadas à mão e deixe as skills criadas em experimentos caírem num lugar descartável. - Uma casa multi-profile: aponte
create_dirpara um local compartilhado, para que skills criadas sob qualquer profile sejam visíveis para todos.
Status do release
skills.create_dir foi mesclado em 1º de setembro (PR #100377, resgatando trabalho da comunidade de @giwaov, com nomeação de @Frosti7) e está na main — ele chegou depois da tag v0.21.0 (lançada em 31 de agosto), então não está na v0.21.0; virá com o próximo release. Para o ecossistema mais amplo de skills, veja nosso guia das 8 melhores skills e o post sobre o Skills Hub do desktop.