Sobre o projeto
# Gremlins
Gremlins é uma ferramenta CLI em Rust que inicia agentes de codificação em segundo plano (chamados "gremlins") para executar autonomamente o ciclo completo de desenvolvimento de software: plan → implement → review-code → address-code. Dada uma meta ou uma issue do GitHub, um gremlin é executado de ponta a ponta sem supervisão, gravando artefatos em um diretório de estado por usuário e, opcionalmente, abrindo um pull request. Um gerenciador de frota rastreia gremlins em execução, travados e finalizados, oferecendo operações como stop, land e close.
**Status:** Totalmente novo e em desenvolvimento ativo. Espere arestas ásperas, timeouts de stream e conflitos de merge ocasionais de gremlins paralelos.
## Principais Recursos
- **Pipeline autônomo:** Executa as etapas de planejamento, implementação, revisão e correção de código sem intervenção humana.
- **Gerenciamento de frota:** Rastreie, pare, integre, feche e limpe gremlins via subcomandos da CLI.
- **Suporte a múltiplos repositórios:** Inicie gremlins de repositórios diferentes; o estado é isolado por gremlin.
- **Sistema de fila:** Adicione, liste, execute, reenfileire e limpe inicializações de gremlins na fila.
- **Execução paralela:** Execute múltiplas revisões ou outras etapas simultaneamente com semântica fan-out/fan-in.
- **Vinculação de artefatos:** Passe dados entre etapas via URIs (file, git, opaque) e interpolação.
- **Definições personalizáveis:** Definições de etapas baseadas em YAML com padrões reutilizáveis, prompts e substituições de cliente.
- **Integração com GitHub:** Abra PRs, solicite revisões do Copilot, aguarde verificações de CI e faça merge via CLI `gh`.
## Subcomandos da CLI
- `launch <name>` — Inicia um gremlin em segundo plano pelo nome da definição.
- `resume` — Regera um gremlin existente a partir de sua etapa registrada.
- `stop` — Envia SIGTERM para um gremlin em execução.
- `land` — Integra um gremlin finalizado ao branch atual.
- `rm` — Exclui o diretório de estado e o worktree de um gremlin.
- `close` — Marca um gremlin como fechado.
- `log` — Acompanha o arquivo de log do gremlin.
- `ack` / `skip` — Confirma ou ignora um gremlin aguardando entrada humana.
- `queue` — Gerencia a fila de inicialização (add, list, run, requeue, clear, set-state, stop).
- `prompt-for-assistant` — Imprime o prompt de configuração do assistente.
- `artifacts` — Inspeciona chaves e vinculações de artefatos.
- `clean` — Limpa diretórios de estado de gremlins finalizados.
## Configuração
Gremlins usa definições YAML com etapas. Os principais elementos de configuração incluem:
- **`default_client`:** String obrigatória `provider:model` (por exemplo, `xai:grok-4`).
- **`base_ref`:** Ref Git a partir da qual os worktrees são ramificados (padrão `current`).
- **`github_integration`:** Habilita a integração com a CLI `gh`.
- **`bootstrap`:** Flags de origem da CLI, comandos de inicialização, comandos por worktree e vinculações de artefatos.
- **`prompts` / `prompt_dir`:** Mapa nomeado de prompts e diretório para resolução de prompts.
- **`stage-definitions`:** Padrões de etapas nomeados e reutilizáveis.
- **`land`:** Etapa exec personalizada para integração (por exemplo, `gh pr merge`).
- **`stages`:** Lista ordenada de etapas ou grupos paralelos.
### Tipos de Etapa
**Primitivas:** `agent`, `exec`, `loop`, `parallel`, `sequence`.
**Receitas:** Etapas YAML predefinidas como `plan`, `plan-gh`, `implement`, `verify`, `github-open-pr`, `github-push-to-pr-branch`, `github-request-copilot-review`, `github-wait-copilot`, `github-wait-ci`.
### Grupos Paralelos
Execute etapas irmãs simultaneamente com `type: parallel` e uma lista `body:`. Suporta `max_concurrent`, `cancel_on_error` e `error_policy` (any/all).
### Vinculação de Artefatos
As etapas podem vincular e interpolar artefatos via URIs:
- `file://session/<name>` — Arquivo de artefato da sessão.
- `git://ref/<name>` — Nome da ref Git.
- `git://commit/<sha>` — SHA do commit.
- `git://range/<base>..<head>` — Intervalo/log de commits.
- `opaque://pr/<n>` — Identificador opaco de PR.
## Instalação
Requer `gh` (GitHub CLI) e `git`. Compile com `cargo build`. Os alvos make incluem `test`, `rust-test`, `rust-fmt`, `rust-fmt-check`, `rust-clippy` e `check`.
## Exemplo
```sh
gremlins launch local # local.yaml incluído
gremlins launch gh # gh.yaml incluído
gremlins launch gh --plan '#42' --wait
```
Definições locais do projeto podem substituir as incluídas via `.gremlins/<name>.yaml`.
## Casos de Uso
- Automatizar alterações rotineiras de código a partir de issues do GitHub.
- Executar revisões de código paralelas com modelos ou focos diferentes.
- Gerenciar múltiplos agentes de codificação autônomos em repositórios.
- Integrar com CI/CD e fluxos de trabalho do GitHub (criação de PR, revisões do Copilot, verificações de CI).
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.