Recursos

Slash commands

Cria slash commands personalizados para automatizar tarefas repetitivas, executar comandos integrados e expandir a funcionalidade do Bob com simples ficheiros markdown.

Visão geral

Para começar, escreve / no chat para ver todos os comandos disponíveis, ou cria os teus adicionando um ficheiro markdown em .bob/commands/ ou ~/.bob/commands/.

Benefícios principais:

  • Automatização do workflow: Converte processos complexos em várias etapas em comandos únicos
  • Padronização da equipa: Partilha comandos com a tua equipa para práticas consistentes
  • Preservação do contexto: Inclui contexto específico do projeto em cada comando
  • Acesso rápido: Pesquisa fuzzy e autocompletar para descoberta instantânea de comandos

Comandos integrados

Bob inclui vários comandos integrados que fornecem funcionalidade básica:

/init

Inicializa um novo projeto ou workspace com Bob. Este comando ajuda a configurar a configuração e estrutura necessárias para trabalhar com Bob no teu projeto.

/review

Revê alterações de código com análise abrangente. Este comando pode ser usado de várias formas:

  • /review – Revê alterações locais não confirmadas no teu diretório de trabalho
  • /review <branch> – Compara um branch com o teu branch atual (HEAD)
  • /review #<issue-number> --issue-coverage – Valida alterações locais contra um issue do GitHub
  • /review <issue-url> --issue-coverage – Valida alterações locais contra um URL de issue do GitHub

O comando de revisão realiza uma análise minuciosa do código incluindo deteção de bugs, verificações de segurança, problemas de desempenho e consistência de estilo.

/create-pr

Cria um pull request com descrição gerada por IA. Este comando analisa as tuas alterações e gera uma descrição abrangente do PR baseada no diff entre branches.

Criar comandos personalizados

Os comandos personalizados expandem a funcionalidade do Bob adicionando ficheiros markdown a diretórios específicos:

  • Específico do projeto: .bob/commands/ na raiz do teu workspace
  • Global: ~/.bob/commands/ no teu diretório home

O nome do ficheiro torna-se o nome do comando. Por exemplo:

  • review.md/review
  • test-api.md/test-api
  • deploy-check.md/deploy-check

Processamento de nomes de comandos

Ao criar comandos através da interface, os nomes dos comandos são processados automaticamente:

  • Convertidos para minúsculas
  • Espaços substituídos por hífens
  • Caracteres especiais removidos
  • Hífens iniciais/finais removidos

Exemplo: "O Meu Comando Fixe!" torna-se o-meu-comando-fixe

Formato básico de comando

Cria um comando simples adicionando um ficheiro markdown:

Help me review this code for security issues and suggest improvements.

Comando avançado com frontmatter

Adiciona metadados usando frontmatter para funcionalidade melhorada:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.
Include proper error handling and documentation.

Campos do frontmatter

  • description: Aparece no menu de comandos para ajudar os utilizadores a entender o propósito do comando
  • argument-hint: Fornece uma dica sobre os argumentos esperados ao usar o comando

Interface de gestão de comandos

Bob fornece uma interface dedicada para gerir comandos personalizados.

Clica no ícone de comandos no painel Bob para abrir o gestor de comandos.

Criar um novo comando

  1. Escreve o nome do teu comando no campo de entrada (p. ex., "Nome de comando de exemplo")
  2. Clica no botão + para criar o comando
  3. Um novo ficheiro será criado e aberto automaticamente (p. ex., nome-de-comando-de-exemplo.md)

Usar slash commands

Escreve / no chat para ver um menu unificado contendo ambos os tipos de comandos. O menu mostra tanto comandos de workflow personalizados como comandos de mudança de modo na mesma interface.

  1. Menu unificado: Tanto os comandos personalizados como os de mudança de modo aparecem juntos
  2. Autocompletar: Começa a escrever para filtrar comandos (p. ex., /exe mostra exemplo-de-comando)
  3. Pesquisa fuzzy: Encontra comandos mesmo com correspondências parciais
  4. Pré-visualização de descrição: Vê as descrições dos comandos no menu
  5. Indicadores visuais: Os comandos de modo são distinguidos dos comandos personalizados com ícones especiais

Hints de argumentos

Os hints de argumentos fornecem ajuda instantânea para slash commands, mostrando-te que tipo de informação fornecer quando um comando espera entrada adicional.

Quando escreves / para abrir o menu de comandos, os comandos que esperam argumentos apresentarão um hint cinzento claro ao seu lado. Este hint indica-te que tipo de argumento o comando está a esperar.

Por exemplo:

  • /mode <mode_slug> – O hint <mode_slug> indica que deves fornecer um nome de modo como code ou debug
  • /api-endpoint <endpoint-name> <http-method> – Mostra que precisas de um nome de endpoint e de um método HTTP

Após selecionar o comando, ele será inserido no campo de entrada do chat seguido de um espaço. O hint não é inserido; é apenas um guia visual para ajudares a saber o que escrever a seguir. Deves depois escrever manualmente o argumento após o comando.

Adicionar hints de argumentos a comandos personalizados

Podes adicionar hints de argumentos aos teus comandos personalizados usando o campo argument-hint no frontmatter:

---
description: Create a new API endpoint
argument-hint: <endpoint-name> <http-method>
---
Create a new API endpoint called $1 that handles $2 requests.

Isto aparecerá como /api-endpoint <endpoint-name> <http-method> no menu de comandos.

Boas práticas para hints de argumentos

  • Sê específico: Usa marcadores descritivos como <file-path> em vez de genéricos como <arg>
  • Mostra múltiplos argumentos: Se o teu comando precisar de várias entradas, mostra-as todas: <source> <destination>
  • Usa formato consistente: Envolve sempre os marcadores em parênteses angulares: <marcador>
  • Mantém a concisão: Os hints devem ser breves e claros

Perguntas frequentes

  • "O que acontece se não fornecer o argumento?" O comando pode não funcionar como esperado, ou pode pedir-te mais informações. O hint está lá para te ajudar a acertar à primeira.
  • "Todos os comandos têm hints?" Não, apenas os comandos concebidos para receber argumentos terão hints. Os comandos que funcionam sem entrada adicional não mostrarão hints.
  • "Posso usar um comando sem substituir o hint?" O texto do hint (como <mode_slug>) precisa ser substituído por valores reais. Deixar o texto do hint provavelmente fará com que o comando falhe ou se comporte de forma inesperada.

Boas práticas

Nomenclatura de comandos

  • Usa nomes descritivos e orientados para a ação
  • Mantém os nomes concisos mas claros
  • Usa hífens para comandos com várias palavras
  • Evita nomes genéricos como help ou test
  • Nota: Os nomes são automaticamente slugificados (minúsculas, caracteres especiais removidos)
  • A extensão .md é adicionada/removida automaticamente conforme necessário

Conteúdo do comando

  • Começa com uma diretiva clara
  • Usa formatos estruturados (listas, secções)
  • Inclui requisitos específicos
  • Referencia as convenções do projeto
  • Mantém os comandos focados numa única tarefa

Organização

  • Agrupa comandos relacionados em subdiretórios
  • Usa padrões de nomenclatura consistentes
  • Documenta comandos complexos
  • Versiona os teus comandos
  • Partilha comandos da equipa no repositório do projeto

Resolução de problemas

Comandos não aparecem

  • Verifica a localização do ficheiro: Garante que os ficheiros de comandos personalizados estão em .bob/commands/ ou ~/.bob/commands/
  • Verifica a extensão do ficheiro: Os comandos personalizados devem ser ficheiros .md

Comando não encontrado

Quando um slash command não é encontrado, o LLM verá:

The slash command '/unknown-command' was not found. Please check the command name and try again.

Conflitos de comandos

  • Os comandos personalizados do projeto substituem os comandos personalizados globais com o mesmo nome
  • Usa nomes únicos para evitar conflitos
  • Ao criar nomes duplicados através da interface, são adicionados números (p. ex., novo-comando-1, novo-comando-2)

Sobre os comandos de modo

O menu slash inclui comandos de mudança de modo (como /code, /ask) que mudam fundamentalmente o modo operacional da IA — não inserem apenas texto mas mudam todo o contexto da IA. Os modos personalizados que criares também aparecem como slash commands (p. ex., um modo com slug reviewer torna-se /reviewer). Estes comandos de modo não podem ser substituídos por comandos de workflow personalizados.

Sabe mais em Modos e Modos personalizados.

Como está este tópico?