Skip to content
Back to skills

Commands

ASecurity

Gerencia Ravi Commands. Use quando precisar: - Criar, listar, mostrar, validar ou previewar comandos `#nome` - Editar arquivos Markdown em `.ravi/commands` ou `$RAVI_HOME/commands` - Entender como `#command` vira prompt composto antes do runtime - Debugar por que um comando foi expandido, falhou ou passou como chat normal - Usar o CLI `ravi commands`

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentsgoshellbash

Works with

  • cli

Security analysis

A100/100

Scanned October 20, 2026

npx -y skills add filipexyz/ravi --skill commands --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Commands?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Commands
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/filipexyz-commands/badge)](https://www.skillsdirectory.com/skills/filipexyz-commands)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: commands
description: |
  Gerencia Ravi Commands. Use quando precisar:
  - Criar, listar, mostrar, validar ou previewar comandos `#nome`
  - Editar arquivos Markdown em `.ravi/commands` ou `$RAVI_HOME/commands`
  - Entender como `#command` vira prompt composto antes do runtime
  - Debugar por que um comando foi expandido, falhou ou passou como chat normal
  - Usar o CLI `ravi commands`
---

# Ravi Commands

Ravi Commands sao atalhos de prompt invocados pelo usuario com `#nome`.
Eles nao sao slash commands, nao sao shell commands e nao concedem permissao extra ao agent.

## Contrato Do CLI

Rode com `--json` sempre que for decidir programaticamente. Com `--json`, falha sai em envelope `{success:false, op, error:{code, message, retryable, suggestedAction, suggestions?|acceptedFlags?}}`.

Taxonomia de saída:

- `0` sucesso.
- `1` erro de execução (`COMMAND_NOT_FOUND`, `AGENT_NOT_FOUND`). O envelope traz `suggestions` com ids reais parecidos (commands do mesmo registry, agents do config local) — consulte antes de concluir "não existe".
- `2` erro de uso (flag/argumento inválido).
- `3` freio de escrita — NÃO existe neste domínio.

Sem freio (declarado): o domínio inteiro é read-only. `commands run` só RENDERIZA o prompt composto para preview — não publica em sessão, não executa runtime — então nada aqui exige `--execute`.

Caso especial: `commands validate` mantém o exit 1 PRÉ-EXISTENTE quando há erros de validação nos arquivos — é veredito sobre os arquivos, não envelope de erro.

Compact mode: `commands list` aceita `--fields a,b,c` (ex.: `--fields id,scope`).

Exemplos:

```bash
ravi commands show nope --json              # exit 1 + COMMAND_NOT_FOUND + suggestions
ravi commands list --fields id,scope --json # itens compactos
ravi commands run restart --json -- "motivo" # renderiza; sem side effects
```

Checklist antes de responder sobre commands:

- Consultei `suggestions` do envelope antes de declarar command/agent inexistente?
- Lembrei que `run` só renderiza (nenhum exit 3 esperado neste domínio)?
- Em `validate`, tratei exit 1 como veredito sobre os arquivos, não como falha do CLI?

## Modelo Mental

Um Ravi Command e um arquivo Markdown que vira prompt composto.

Fluxo de mensagem de canal:

1. Omni recebe o texto cru do usuario.
2. Ravi resolve rota, sessao e agent.
3. Se o texto cru comeca com `#command`, Ravi tenta expandir o command.
4. Ravi monta o envelope do canal, por exemplo `[WhatsApp ...] Luis: ...`.
5. O prompt composto entra no `SESSION_PROMPTS` via NATS.
6. O runtime despacha normalmente, com as mesmas regras de fila, debounce, interrupcao, barriers e provider.

`ravi commands run` e diferente: ele so renderiza e retorna o prompt composto para preview. Ele nao publica em sessao e nao executa runtime.

## Locais

Commands sao arquivos Markdown em:

```text
<agent.cwd>/.ravi/commands/<name>.md
$RAVI_HOME/commands/<name>.md
```

`$RAVI_HOME` normalmente e `~/.ravi`.

Ordem de resolucao:

1. Agent command em `<agent.cwd>/.ravi/commands`.
2. Global user command em `$RAVI_HOME/commands`.

Um command do agent sobrescreve um global com o mesmo nome canonico.

## Sintaxe de Invocacao

```text
#review-pr 123 high
#restart "ativar commands"
#daily-summary
```

Regras:

- O token precisa estar no primeiro caractere nao-espaco da mensagem.
- O nome aceita letras, numeros e `-`: `#[A-Za-z0-9][A-Za-z0-9-]{0,63}`.
- Lookup e deteccao de conflito usam lowercase.
- `#word` no meio de uma frase e texto normal.
- Um `#command` valido mas inexistente passa como chat normal.
- Um token invalido que comeca com `#` deve falhar com erro claro.

## CLI

```bash
ravi commands list --agent <agent> --json
ravi commands show <name> --agent <agent> --json
ravi commands validate --agent <agent> --json
ravi commands run <name> --agent <agent> --json -- <arguments>
```

Use `--agent` quando precisar resolver commands do workspace daquele agent.

## Formato do Arquivo

```markdown
---
title: Restart Ravi daemon
description: Restart the Ravi daemon with a contextual reason.
argument-hint: "<reason>"
arguments:
  - reason
---

Restart the Ravi daemon now.

Use this reason: $reason
```

Frontmatter suportado:

- `title`
- `description`
- `argument-hint`
- `arguments`
- `disabled`

Frontmatter como `allowed-tools`, `model`, `effort`, `shell`, `hooks`, `context` ou `agent`
nao concede capabilities nem altera runtime. Trate como aviso de validacao, nao como regra efetiva.

## Argumentos

Placeholders suportados:

- `$ARGUMENTS`: string crua apos o token do command.
- `$ARGUMENTS[N]`: argumento posicional, zero-based.
- `$N`: atalho zero-based.
- `$name`: argumento posicional nomeado em `arguments`.

Argumentos posicionais usam parsing shell-like. Para passar texto com espaco como um argumento:

```text
#restart "ativar Ravi Commands"
```

Se argumentos forem fornecidos e o corpo nao usar nenhum placeholder, o renderer adiciona
`ARGUMENTS: <raw arguments>` para nao descartar input do usuario silenciosamente.

## Edicao Segura

- Editar um arquivo de command nao requer restart do daemon.
- Criar ou alterar a implementacao de Ravi Commands no codigo requer build e restart para o daemon vivo usar o patch.
- Nao execute snippets de shell contidos no Markdown durante render.
- Nao transforme Ravi Command em mecanismo de permissao. Permissoes continuam no runtime, context keys e skill gates.

## Debug

Para inspecionar commands:

```bash
ravi commands validate --agent dev --json
ravi commands show restart --agent dev --json
ravi commands run restart --agent dev --json -- "ativar Ravi Commands"
```

Para ver se um command foi expandido em uma mensagem real:

```bash
ravi sessions trace <session> --message <message_id> --explain --json
```

Eventos e metadata relevantes:

- `command.invoked`: command expandido antes do runtime.
- `command.failed`: command invalido, duplicado, disabled ou com erro de validacao.
- `prompt.published`: prompt ja publicado para `SESSION_PROMPTS`.
- `adapter.request.commands`: metadata dos commands que produziram o prompt.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.