Template para rodar o Ralph — agente autonomo que implementa features a partir de PRDs.
cp -r ralph-loops-template/.claude/ seu-projeto/.claude/
cp -r ralph-loops-template/scripts/ seu-projeto/scripts/
cp -r ralph-loops-template/tasks/ seu-projeto/tasks/
cp ralph-loops-template/CLAUDE.md seu-projeto/CLAUDE.mdOu use como base para um projeto novo.
O CLAUDE.md e o arquivo mais importante — e o que da contexto ao Ralph sobre seu projeto.
Abra uma sessao interativa do Claude Code na pasta do seu projeto e explique:
- O que e o projeto e o que ele faz
- Quais tecnologias, frameworks e linguagens usa
- Estrutura de pastas
- Comandos de build, test, lint, typecheck
- Convencoes de codigo (idioma, naming, patterns)
- O que ja esta implementado e o que falta
Depois peca para ele gerar o CLAUDE.md. Exemplo:
Estou montando o CLAUDE.md do meu projeto. Aqui esta um template de referencia:
[cole o conteudo do CLAUDE.md template que esta neste repo]
Agora gere um CLAUDE.md para o meu projeto com base no que te expliquei.
O Claude vai gerar um CLAUDE.md completo e adaptado ao seu projeto. Salve na raiz e copie para dentro do Ralph:
cp CLAUDE.md scripts/ralph/CLAUDE.mdImportante: O Ralph le o scripts/ralph/CLAUDE.md, nao o da raiz. Sempre que atualizar um, atualize o outro. O da raiz serve para sessoes interativas, o de dentro do Ralph serve para o loop autonomo.
Edite .claude/settings.json e adicione os comandos da sua stack no allow:
"Bash(npm run *)",
"Bash(cargo build *)",
"Bash(python -m pytest *)"Dentro do Claude Code:
/prd [descricao da feature]
Responda as perguntas. O PRD sera salvo em tasks/.
/ralph
Aponte para o PRD gerado. Ele cria scripts/ralph/prd.json.
chmod +x scripts/ralph/ralph.sh
./scripts/ralph/ralph.sh --tool claude./scripts/ralph/ralph.sh --tool claude # Usa Claude Code (padrao)
./scripts/ralph/ralph.sh --tool amp # Usa Amp
./scripts/ralph/ralph.sh --tool claude 5 # Maximo 5 iteracoes
./scripts/ralph/ralph.sh 20 # Maximo 20 iteracoesseu-projeto/
├── CLAUDE.md # Contexto do projeto (edite!)
├── .devcontainer/ # Container isolado para rodar o Ralph
│ ├── devcontainer.json # Config do VS Code Dev Container
│ ├── Dockerfile # Debian + Node.js + Claude Code CLI
│ └── init-firewall.sh # Firewall (so permite GitHub, npm, Anthropic)
├── .claude/
│ ├── settings.json # Permissoes do Claude Code
│ └── skills/
│ ├── prd/SKILL.md # Skill /prd — gera PRDs
│ └── ralph/SKILL.md # Skill /ralph — converte PRD em prd.json
├── scripts/ralph/
│ ├── ralph.sh # O loop principal
│ ├── prompt.md # Prompt enviado a cada iteracao
│ ├── prd.json # PRD atual (gerado pelo /ralph)
│ ├── progress.txt # Log de progresso (atualizado pelo Ralph)
│ └── archive/ # Runs anteriores (auto-arquivado)
└── tasks/
└── prd-*.md # PRDs gerados pelo /prd
/prd → gera tasks/prd-feature.md
/ralph → converte em scripts/ralph/prd.json
ralph.sh → loop: le prd.json + progress.txt → implementa → commita → repete
Cada iteracao do Ralph:
- Le o CLAUDE.md para contexto
- Le o prd.json para saber o que fazer
- Le o progress.txt para saber o que ja foi feito
- Implementa a proxima user story
- Commita e atualiza o progress.txt
- Se tudo completo, emite
<promise>COMPLETE</promise>e para
O template inclui um .devcontainer/ que cria um ambiente isolado com:
- Debian + Node.js 20 + Claude Code CLI pre-instalado
- Firewall que so permite acesso a: GitHub, npm, Anthropic API
jq,git,zshe ferramentas basicas
Para usar: abra o projeto no VS Code e clique em "Reopen in Container" (precisa da extensao Dev Containers).
O firewall e importante para seguranca — o Ralph roda com bypassPermissions, entao o container garante que ele so acessa os servicos necessarios.
- Claude Code instalado (
npm install -g @anthropic-ai/claude-code) jqinstalado (para o ralph.sh parsear JSON)