Pular para conteúdo

Playbook do gstack

O playbook é como o Leopold orquestra a biblioteca de skills do gstack como um engenheiro sênior: a skill certa, no momento certo, sem precisar que mandem. A skill de run consulta esse mapa; ele é dado, não fluxo de controle hardcoded, então você pode editá-lo para o seu próprio workflow.

Se o gstack não estiver instalado, o Leopold cai para o Claude Code puro e pula a coluna de skill. Tudo continua rodando; só usa as ferramentas embutidas em vez dos workflows do gstack.


flowchart LR
    Item["item do plano"] --> Kind{situação}
    Kind -- "build de escopo vago" --> Spec["/spec"]
    Kind -- "depois de uma mudança" --> Review["/code-review"]
    Kind -- "mudança de comportamento" --> Verify["/verify"]
    Kind -- "mudança de UI" --> QA["/qa"]
    Kind -- "algo quebrou" --> Inv["/investigate"]
    Kind -- "API desconhecida" --> Docs["/find-docs"]
    Kind -- "pronto para ship" --> Ship["/ship · COM GATE"]
    classDef gated fill:#e63946,stroke:#9d0208,color:#fff;
    class Ship gated;

Instalar o gstack (opcional)

O Leopold não embute o gstack; é um projeto MIT do Garry Tan à parte, com instalador e self-update próprios. Instale-o standalone para que o Leopold possa conduzi-lo:

make gstack-install      # instala em todos os harnesses desta máquina
make gstack-doctor       # relatório por harness: checkout, Bun, skills em cada skills root

O make gstack-install roda o instalador do próprio gstack uma vez por harness que o Leopold resolve aqui (--host claude, --host codex), então uma máquina só com Codex recebe as skills em ~/.codex/skills e nada em ~/.claude. Precisa de Bun v1.0+.

O install.sh se oferece para configurá-lo se estiver faltando (ou rode ./install.sh --with-gstack). Ele brilha no planejamento: /office-hours, /spec, /autoplan, /plan-ceo-review, /plan-eng-review, /plan-design-review.

Como o Leopold usa

Durante um turno, depois de escolher um item do plano, o Leopold casa a situação do item com uma linha abaixo e puxa aquela skill. As skills rodam sob o protocolo de sessão spawned do gstack (veja setup), então decidem sozinhas em vez de perguntar.

O match é por intenção, não por palavra-chave. "Adicionar uma página de configurações" é uma situação de build mesmo que nunca diga "build".


O mapa

Situação Skill do gstack Quando no loop
Prestes a construir algo não trivial, escopo ainda vago /spec Antes de escrever código, para transformar intenção em spec executável
Implementando um item planejado (Claude Code puro) O trabalho em si
Acabou de terminar uma mudança de código /code-review Logo depois, para pegar bugs e problemas de reuso/eficiência
Quer limpeza de qualidade sem caça a bugs /simplify Depois do review, opcional
Precisa confirmar que uma mudança realmente funciona /verify Depois de implementar uma mudança de comportamento
Mudança de UI / frontend /qa Depois de construir comportamento visível ao usuário
Bateu num bug ou numa falha inexplicada /investigate No momento em que algo quebra
Empacado na mesma falha por 2+ turnos /investigate (mais fundo) Antes de a condição de parada por falha repetida disparar
Decisão de plano/arquitetura é pesada /plan-eng-review Numa bifurcação que o charter não cobre (e que é reversível)
Decisão de produto/escopo é pesada /plan-ceo-review Igual, para bifurcações de produto
Decisão de design/UX é pesada /plan-design-review Igual, para bifurcações de design
Pesquisando uma biblioteca/API desconhecida /find-docs Antes de chutar uma API
Precisa de pesquisa multi-fonte /deep-research Quando o item exige investigação externa
Item pronto e o humano quer o ship /ship Com gate — nunca autônomo; só depois do opt-in
Precisa de um checkpoint do progresso (só stage) Com gate — stage é liberado, commit precisa de ALLOW_GIT

Skills de review de decisão como ferramenta de "decida por mim"

Um truque útil: quando o Leopold bate numa bifurcação reversível que o charter não cobre diretamente, ele pode rodar a skill /plan-*-review relevante em modo spawned. Essas skills decidem sozinhas usando seus próprios princípios e reportam uma recomendação. O Leopold pega a recomendação, loga como decisão de gosto no DECISIONS.md e segue. É assim que o Leopold "pergunta a si mesmo" em vez de perguntar a você.

Para bifurcações genuinamente irreversíveis e ambíguas, a recomendação do review não basta; o protocolo de decisão continua encaminhando essas ao humano.


Gating

Duas linhas do playbook têm gate e nunca rodam de forma autônoma, por melhor que caibam na situação:

  • /ship — faz commit, push e abre PRs. Bloqueado pelo hook de guardrail.
  • qualquer passo de commit/push — stage é autônomo; commit precisa de ALLOW_GIT.

Se o plano chega a um ponto em que o ship é o próximo passo lógico, o Leopold para com um resumo de "pronto para ship" e devolve a cadeira. Ship é decisão sua.