Projetos Código aberto · plugin do Claude Code

genesis

Um plugin do Claude Code com três modos: construir um projeto a partir de uma pasta vazia, trazer um repositório existente para um padrão declarado ou auditar a configuração que carrega em toda sessão.

Instalação

  1. /plugin marketplace add gabrieldabbah/genesis
  2. /plugin install genesis@genesis-marketplace

duas linhas, no prompt do Claude Code

O que é

A maioria dos scaffolders começa por “qual framework?” e devolve uma pasta de arquivos. O genesis começa pelo problema e escolhe a stack em quarto lugar — derivando-a do design em vez de assumi-la.

O que mantém os três modos coerentes é um único documento, o padrão, contra o qual cada um é medido. Ele faz duas perguntas ao repositório nas duas primeiras linhas do seu manual: o que ele é e quem está exposto. A primeira decide quais regras se aplicam; a segunda, quanto rigor elas exigem. Tudo roda na sua máquina, na sua própria assinatura do Claude.

O BrandCrafter, o gerador de ativos de marca que está em outro lugar nestes projetos, foi construído com o genesis a partir de uma pasta vazia.

Três modos

Você tem uma pasta vazia

create

Pesquisa o problema, projeta a arquitetura, deriva dela a stack, planeja o trabalho e então constrói e testa o projeto item a item.

  • A lista de tarefas é um contrato nos dois sentidos: o genesis constrói tudo o que está nela e nada que não esteja.
  • O que depende das suas contas, chaves ou dinheiro nunca interrompe a construção — vira uma checklist de deploy que espera no final.
  • A execução salva um checkpoint depois de cada tarefa, então um limite de uso ou um notebook fechado custa a tarefa em andamento e nada além dela.

Você já tem uma base de código

transition

Traz um repositório existente para o mesmo padrão — removendo o que instrui a conduta do modelo e mantendo o que declara uma propriedade que o código precisa ter.

  • Boa parte de um manual de agente antigo foi escrita para empurrar um modelo mais fraco: verifique antes de dizer que terminou, mande um segundo agente conferir o primeiro, nunca deixe um placeholder. Os modelos atuais já fazem as duas primeiras coisas e não fazem a terceira.
  • Não apagar a coisa errada é a metade difícil. Ritual de verificação se deduz de qualquer documento; o fato de que uma consulta trunca silenciosamente depois de mil linhas existe em um lugar só.
  • O genesis não apaga uma linha que não consegue explicar — e confere o que o arquivo afirma contra o repositório, em vez de aceitar do jeito que está escrito.

Você não tem nenhum dos dois

system

Lê a configuração de nível de usuário que carrega em toda sessão do Claude Code, informa o que ela custa e propõe mudanças uma a uma.

  • Toda execução começa por essa checagem, porque essa camada carrega em toda sessão — um repositório corrigido sob uma configuração desatualizada tem a correção desfeita no turno seguinte.
  • Ela aponta os dois piores casos pelo nome: um hook que impede o turno de terminar e outro que impede uma pergunta de ser feita. Com os dois instalados, você tem um agente que não consegue parar nem perguntar.
  • Nada na sua pasta pessoal muda sem você autorizar.

A ordem é o ponto

O genesis nunca começa pelo framework. A stack é escolhida na fase 4 — depois de o problema ser entendido e a arquitetura projetada — com o motivo de cada escolha registrado no log de decisões do projeto.

  1. CapturaSeu objetivo, em linguagem natural.
  2. FundaçãoO manual do projeto, um esqueleto de documentação, as negações de segredos e o hook de arquivamento.
  3. PesquisaO domínio e as abordagens candidatas, com afirmações referenciadas.
  4. ArquiteturaO design, escrito antes de qualquer coisa ser instalada.
  5. StackEscolhida aqui, derivada do design, com a justificativa registrada.
  6. PlanoLista de tarefas ordenada por dependências, cada item com uma forma de provar que está pronto.
  7. ConstruçãoUm item por vez, rodando o comando de teste do próprio projeto depois de cada um.

Proteções

Segredos são negados

Arquivos .env, chaves SSH e credenciais de nuvem ficam bloqueados para a ferramenta de leitura de arquivos do Claude — e o genesis confere que a negação vale de fato, em vez de confiar na configuração.

O push é seu

Commit, push, merge e deploy param e perguntam, por mais autônoma que a construção tenha sido até ali. Criar contas também.

Sem sandbox do sistema por padrão

Uma sandbox rígida o bastante para valer algo também bloqueia um gerenciador de pacotes escrevendo no seu store compartilhado, e um controle que quebra o trabalho normal acaba desligado — levando junto as proteções úteis. A rede fica aberta pelo mesmo motivo. Uma sandbox real é configurada quando o projeto pede uma.

Um hook, e ele checa um fato

Um hook pode checar um fato e avisar. Um que tira a capacidade de parar, ou a de perguntar, não é distribuído — o genesis já teve os dois e os removeu.

Serviços que ele conecta

Onze serviços, um arquivo para cada — domínios, nomes de variáveis de ambiente, CLI, documentação e checklist de segurança, conectados quando o design pede. Acrescentar o seu é um pull request, não um fork.

  • Stripe
  • Supabase
  • Vercel
  • Fly.io
  • Render
  • Clerk
  • Resend
  • Cloudflare R2
  • Sentry
  • OpenAI
  • Google Gemini

Três modos. Um padrão.

Cada linha que o genesis distribui é lida literalmente por um modelo na máquina de outra pessoa, então o repositório se cobra o que pede aos outros: um gate, um comando, rodado igual na mão e no CI.

Construído com

  • Plugin do Claude Code
  • Skills em Markdown
  • Hooks em Node.js
  • Registro de serviços em YAML
  • GitHub Actions
  • Licença MIT

Engenharia

O padrão é um arquivo só

Os três modos são medidos pelo mesmo documento, então não se afastam para três ideias diferentes do que é qualidade.

skills/genesis/standard.md é a rubrica; o SKILL.md roteia para create.md, transition.md ou system.md, e cada runbook cita o padrão em vez de repeti-lo — uma definição, três portas de entrada.

Um defeito vira uma checagem

Quando algo passa despercebido, a correção é uma checagem no gate, não uma anotação para lembrar da próxima vez.

Um único script roda sete categorias: descoberta das unidades, parse de todo arquivo legível por máquina, sintaxe dos scripts, inércia dos hooks fora de uma construção, resolução dos links relativos, cobertura de README até o nível 2 e propriedades asseguradas — nenhum diretório de agentes, nenhum vocabulário de ênfase proibido, todo comando de hook citando suas variáveis de caminho e toda referência do registro apontando para um arquivo que existe.

Hooks checam fatos, não decisões

O único hook distribuído observa se uma construção está se declarando pronta cedo demais. Fora de uma construção, ele não faz nada.

O hook de Stop sai imediatamente a menos que exista .scratch/acceptance.json, que só uma construção em andamento escreve. O CI exercita o caminho de bloqueio e o de inércia, então “ele fica quieto” é testado, não presumido.

Parar não é perder

Um limite de uso, um notebook fechado ou uma queda custam a tarefa em andamento e nada além dela.

Um checkpoint é escrito depois de cada tarefa; uma nova execução que o encontra reentra na fase de retomada e deixa fundação, pesquisa, design e plano no disco em vez de sobrescrevê-los. Ele deliberadamente não estima quanto resta do seu plano — nenhuma API expõe isso, e um palpite errado para uma construção que ainda tinha espaço.

Sem elenco de agentes

O genesis não define nem instala subagentes. Se um item vale ser delegado é decidido item a item, e um segundo agente nunca é enviado para conferir o primeiro.

O conhecimento que um elenco carregaria foi para as referências de integrações e para a skill de design, lidos no momento em que se aplicam. O gate assegura que nenhum diretório de agentes existe, então o elenco não volta por acidente.

Um arquivo por serviço

Cada entrada do registro é um YAML com domínios, nomes de variáveis de ambiente (nunca valores), CLI, documentação e checklist de segurança, com uma referência opcional a um documento mais longo de armadilhas — e o gate falha se essa referência apontar para um arquivo que não existe.


Tem um projeto dos sonhos?

Fale-me sobre sua ideia e eu lhe enviarei um orçamento.