Skip to main content
Os agentes personalizados estão em beta. O comportamento e as telas ainda podem mudar.

Skills & docs

Skills e docs são guias que já existem no seu repositório. A Kodus não copia esses arquivos: ela lê da branch de destino do pull request em toda revisão. Assim, edições nessa branch valem sem voltar às configurações, e um pull request não consegue mudar a regra que o avalia. Scripts dentro de uma skill chegam ao agente como texto e nunca são executados.

Onde a Kodus encontra

Skills são detectadas em:
  • .claude/skills/*/SKILL.md
  • .claude/agents/*.md
  • .agents/skills/*/SKILL.md
  • .github/skills/*/SKILL.md
Um SKILL.md começa com um frontmatter YAML com name (letras minúsculas, dígitos e hífens, igual ao nome da pasta) e description. Uma skill sem eles aparece como “Not a valid skill”, com o motivo. O agente lê o SKILL.md (até 500 linhas, cerca de 5.000 tokens) e os arquivos ao lado dele, até uma pasta abaixo, como references/payments.md.
.claude/skills/ledger-rules/SKILL.md
Docs são sugeridos a partir de CONTRIBUTING.md, ARCHITECTURE.md, CONVENTIONS.md, STYLEGUIDE.md e docs/**/*.md (até 30). Você também pode adicionar qualquer caminho à mão: um arquivo com extensão é um doc; uma pasta (ou um SKILL.md dentro dela) é uma skill.

Vincular

Há dois lugares para vincular uma skill ou doc:
  • Na página do agente, em Files & knowledge → Skills & docs: Add skill or doc lista o que o agente pode seguir, ou use Add by path.
  • Na página Skills & docs (o link ao lado de Custom agents em What to review): todas as skills e docs cadastradas, com uma caixa de seleção para Main review e para cada agente. Vincular a Main review entrega o guia à revisão da própria Kody.
No nível global, a página Skills & docs só aceita caminhos digitados à mão. Cada repositório é lido separadamente; abra as configurações de um repositório para ver se cada caminho existe nele.
Um arquivo marcado como Also a Kody Rules source já alimenta as Kody Rules. Vinculá-lo também a um agente pode fazer a mesma regra comentar duas vezes.

Orçamentos

Por agente, e para a revisão principal: A página Skills & docs avisa quando um agente ou a revisão principal passa de um limite. Na revisão, os docs que passam do orçamento são cortados ou pulados, e a revisão registra um aviso.

Como os apontamentos usam esses guias

Um apontamento de convenção precisa citar a regra que aplica. A Kodus confere a citação no guia como ele está na branch de destino e descarta o apontamento quando a citação não está lá. O comentário publicado cita a regra:

Plugins (MCP)

Os agentes podem consultar os plugins instalados no seu workspace: um gerenciador de tarefas, uma wiki, o monitoramento. Em Tools → Plugins, ligue um plugin para o agente e mantenha Use every tool, ou use Customize para escolher as ferramentas. Só ferramentas de leitura são oferecidas; ferramentas de escrita nunca são. Um plugin que marca as ferramentas como somente leitura é levado ao pé da letra. Para um que não marca, a ferramenta só entra quando o nome tem um verbo de leitura (get, list, search, read, find…) e nenhum verbo de escrita. Uma revisão nunca cria um ticket nem posta uma mensagem em nome do seu time. O agente consulta um plugin quando a mudança aponta para algo registrado ali, como um ticket na descrição do pull request, e cita o que encontrou. Veja Plugins para instalar um.

CLIs do time

Um agente pode rodar até 3 ferramentas de linha de comando do seu time: um detector de código duplicado, um verificador de schema, um linter interno. As CLIs rodam só no sandbox isolado da E2B, dentro do checkout do repositório. Em qualquer outro sandbox a CLI não é instalada e o agente roda sem ela. Em Tools → CLIs, clique em Add CLI: Regras de instalação. Instaladores aceitos: npm, pnpm, yarn, pip, pip3, pipx, uv, go, cargo. Todo pacote precisa estar fixado (tool@1.2.3, tool==1.2.3 ou tool@sha256:…). Tags como @latest, faixas de versão, URLs, fontes Git, caminhos locais e sintaxe de shell são recusados.
Como as chamadas rodam. O agente passa argumentos, nunca um comando de shell: pipes, redirecionamentos, globs e variáveis são passados literalmente. Uma chamada que não começa com um prefixo permitido é recusada. Cada CLI roda com seu próprio usuário, com timeout, um diretório temporário privado e arquivos legíveis só por esse usuário; a saída é limitada, e tudo o que ela iniciou ou gravou em diretórios temporários é removido depois da chamada. Cada etapa de uma CLI roda como root pelo provedor do sandbox, nunca pelo usuário com que a revisão roda: esse usuário perde qualquer forma de virar root (inclusive sudo) antes de o repositório ser baixado, então código do pull request não alcança o processo nem os arquivos de uma CLI. Um sandbox em que isso não pôde ser confirmado não roda nenhuma CLI. Comandos bloqueados. Numa CLI com secrets, o Kodus recusa, ao salvar e na execução, prefixos e argumentos que listam o ambiente (printenv, env, set, export, declare, qualquer coisa em /proc), comandos comuns que imprimem tokens (auth token, auth status --show-token, auth:token, config get, configure get, print-access-token, get-access-token), um shell ou interpretador como binário (bash, node, python, npx, …) e argumentos que citam um dos seus secrets como $NOME ou ${NOME}. Os argumentos nunca passam por um shell, então o próprio Kodus nunca os expande. Rede. A allowlist vale pelo nome do host. As conexões HTTPS da CLI passam por um proxy que só encaminha uma conexão quando o nome de servidor pedido está na lista (nome exato, sem subdomínios) e que resolve esse nome por conta própria, recusando endereços privados e internos. A CLI não tem outro acesso à rede: nem DNS, nem HTTP sem TLS, nem outras portas. Um host permitido ainda recebe o que a CLI enviar, credenciais incluídas, e a rede não distingue leitura de escrita. Use tokens somente leitura, com o menor privilégio possível, e permita só hosts em que você confia. Como os secrets são guardados. Um secret é criptografado ao salvar (AES-256-GCM, vinculado ao agente, à CLI e ao nome da variável) e nunca volta para o navegador, que mostra Stored · hidden. Ele fica vinculado à CLI para a qual foi salvo, naquele nível de configuração: qualquer mudança na CLI (nome, instalação, binário, prefixos permitidos, domínios permitidos, Runs project code ou os nomes dos seus secrets) pede todos os secrets de novo, ao salvar e no Try it. Só as notas de uso e o timeout mudam sem isso. Um secret guardado que não pode mais ser lido também precisa ser digitado de novo. O Try it usa só os secrets guardados no nível que você está editando, nunca os herdados. Um secret chega só ao processo daquela CLI, nunca à instalação, às outras CLIs ou ao prompt do agente. Na saída da CLI, todo secret é trocado por ***, também quando impresso em base64, codificado em URL, em hex ou escapado em JSON, antes que o agente, o Try it, um comentário no pull request ou um log o vejam. O mascaramento não reconhece toda transformação (um valor partido ou parcial), e é por isso que os comandos acima são bloqueados. Quando um apontamento vem de uma CLI, o comentário mostra as linhas da saída que citam o arquivo:
Se a instalação falha, o agente roda sem aquela CLI e a execução registra o aviso. O Try it mostra isso em Warnings.

Regras do ast-grep

Em Tools → Advanced → Structural search (ast-grep rules), dê ao agente regras do ast-grep, de um destes jeitos:
  • Inline: o YAML da regra. Separe várias regras com ---. Cada uma precisa de id e rule.
  • Um arquivo de regras: uma única linha com o caminho de um arquivo .yml ou .yaml do repositório, lido da branch de destino do pull request.
As regras rodam sobre os arquivos alterados do pull request. Um match é prova: um apontamento que cita uma regra que bateu naquele arquivo durante a execução pula a checagem de citação e a verificação pelo modelo. As regras têm limite de 64.000 bytes. A dica do campo lista as regras encontradas e aponta regras sem id ou sem rule. O agente também tem busca estrutural avulsa pelo repositório, mesmo sem nenhuma regra configurada.

Veja também

Agentes Personalizados

Níveis, a página do agente, Try it e como os agentes rodam numa revisão.

Código duplicado com jscpd

Um agente completo com uma CLI do time.