Fluxo de trabalho¶
Fluxo de trabalho principal¶
O fluxo de trabalho padrão de uma funcionalidade mantém uma sequência de artefatos ligados por referências às fontes:
/specify → requirements.md
/generate-spec → spec.md → review-spec
/spec-to-design → design.md → review-design
/design-to-plan → plan.md → review-plan
/plan-to-tasks → tasks.md → review-tasks → analyze
/implement-tasks → implementation and complete-feature code review
Os exemplos abaixo usam o prefixo /codexspec: do Claude. No Codex, use
$codexspec: com o mesmo nome de comando e os mesmos argumentos.
| Etapa | Comando | Finalidade e resultado |
|---|---|---|
| Princípios do projeto | /codexspec:constitution |
Criar ou atualizar constitution.md e validar os artefatos afetados |
| Requisitos | /codexspec:specify <idea> |
Discutir a intenção, confirmar o resumo final e salvar requirements.md |
| Especificação | /codexspec:generate-spec <feature-dir> |
Transformar os requisitos confirmados em spec.md, com referências às fontes |
| Projeto técnico do sistema | /codexspec:spec-to-design <feature-dir> |
Produzir design.md com componentes, interfaces e decisões importantes de projeto técnico |
| Plano de implementação | /codexspec:design-to-plan <feature-dir> |
Produzir plan.md com fases, ordem e verificação |
| Tarefas | /codexspec:plan-to-tasks <feature-dir> |
Produzir tarefas rastreáveis e verificáveis em tasks.md e executar a análise entre artefatos |
| Implementação | /codexspec:implement-tasks <feature-dir> |
Executar as tarefas, verificar os resultados e corrigir os achados da revisão confirmados de forma independente |
Substitua <feature-dir> pelo diretório da funcionalidade retornado durante a
descoberta de requisitos. Continue no worktree correspondente ou informe seu
caminho explícito. Assim, os comandos e as sessões continuam trabalhando com a
mesma funcionalidade.
specify, clarify e analyze¶
- specify inicia ou retoma a descoberta de requisitos. O resumo dos requisitos só se torna vinculante após confirmação explícita.
- clarify resolve ambiguidades nos requisitos e na especificação existentes,
com até cinco perguntas por execução, distribuídas em quatro categorias.
Primeiro atualiza
requirements.mde depois sincronizaspec.md. - analyze verifica toda a sequência requisitos → especificação → projeto
técnico → plano → tarefas. Aplica automaticamente correções determinísticas aos
artefatos posteriores quando a correção decorre das fontes anteriores que os
regem. Nunca edita
requirements.md. Os achados não resolvidos são relatados. A análise é executada automaticamente após uma revisão de tarefas aprovada e tem caráter informativo; ela não é um critério de aprovação da implementação.
Pequenas alterações com Quick¶
Use quick para uma alteração pequena e bem delimitada, como uma correção pontual:
O Quick confirma e salva um resumo compacto dos requisitos. Em seguida, coordena a especificação, o planejamento, as tarefas e a implementação, incluindo as revisões dos comandos de geração. Alterações amplas ou decisões de produto e projeto técnico ainda em aberto exigem o fluxo de trabalho padrão. O Quick pausa quando precisa de uma nova decisão.
Automação do fluxo de trabalho¶
O padrão de workflow.auto_next é false. Se estiver definido como true na
configuração do espaço de trabalho ativo, a confirmação final dos requisitos dá
início à especificação. Cada etapa de geração avança após PASS ou
PASS_WITH_WARNINGS. NEEDS_REVISION ou BLOCKED interrompe a sequência, que
termina em implement-tasks.
A correção automática de artefatos se limita a defeitos verificados cuja solução decorre de evidências dos artefatos anteriores. São permitidas no máximo duas rodadas de correção e revisão. As recomendações são tratadas separadamente. O ciclo de revisão e correção da implementação tem regras próprias de conclusão, descritas abaixo.
Blueprint compartilhado e desenvolvimento autônomo¶
Use blueprint para preparar vários requisitos confirmados antes do
desenvolvimento e auto-dev para desenvolver essa fila:
Na descoberta de requisitos para o blueprint, são definidas a direção, as escolhas
e as restrições que cabem ao usuário, antes que um requisito entre na fila.
O arquivo compartilhado .codexspec/blueprint.md usa os estados pending,
in_progress e completed. Você pode acrescentar, substituir, excluir ou
reordenar requisitos pendentes. Entradas ativas e concluídas não podem ser
alteradas pela manutenção do blueprint.
O Auto-dev segue a ordem do documento. Retoma a funcionalidade em andamento antes
de iniciar outra e relê a fila após cada conclusão. Assim, novos requisitos
pendentes acrescentados à fila podem ser incluídos na execução. Ele realiza as
etapas de SDD, implementação, verificação, revisão e correção dentro dos requisitos
confirmados. Chamar auto-dev ativa essa automação independentemente de
workflow.auto_next, sem alterar essa configuração.
Os dois comandos usam worktree-for-codexspec-auto-dev no branch
codexspec/auto-dev. Eles podem operar simultaneamente, respeitando as proteções
compartilhadas de controle do espaço de trabalho e de escrita. Nesse espaço, os
requisitos são desenvolvidos em sequência. Quando uma decisão de produto não pode
ser resolvida com base nos requisitos confirmados, a execução é interrompida e
as evidências são apresentadas. Durante a execução autônoma normal, não são
feitas perguntas para resolver essas decisões.
Veja o blueprint compartilhado atual sem alterá-lo:
Desenvolvimento com worktrees¶
Um worktree Git é outro diretório de trabalho do mesmo repositório, com seu próprio branch selecionado. Por padrão, o CodexSpec usa um worktree por funcionalidade do fluxo comum. Ele é criado antes de salvar os primeiros requisitos e reúne os documentos, a implementação, os testes e as correções da funcionalidade.
projects/
├── my-project/
└── my-project-codexspec-worktrees/
├── <feature-id>-task-reminders/
├── <feature-id>-search/
├── worktree-for-codexspec-maintenance/
└── worktree-for-codexspec-auto-dev/
Ao retomar uma funcionalidade, seu espaço de trabalho é reutilizado. Alterações independentes de configuração, Constituição do Projeto e perfil usam o worktree de manutenção. Alterações feitas durante uma funcionalidade ativa permanecem no worktree dela. A configuração é local a cada checkout: uma configuração alterada em um worktree escolhido pelo roteamento entra em vigor primeiro ali e chega aos outros checkouts pela integração Git. Execute os comandos da CLI e as verificações no espaço de trabalho retornado.
Para definir a base de uma nova funcionalidade, o histórico já registrado em commits do branch principal local é comparado ao histórico do branch principal remoto obtido por fetch, usando a ancestralidade Git. Históricos divergentes são mesclados no novo worktree e exigem verificação. Se o fetch falhar, um aviso é emitido e as referências disponíveis localmente podem ser usadas. Se a criação falhar, o sistema não passa a gravar no checkout principal como alternativa.
O padrão de workflow.worktrees é true. Somente o valor YAML literal false
desativa o isolamento das funcionalidades do fluxo comum e da manutenção.
Blueprint/auto-dev mantêm seu worktree compartilhado fixo em ambos os casos.
A inicialização e as atualizações da instalação ocorrem no checkout selecionado
explicitamente. Worktrees concluídos são mantidos; a conclusão não os mescla
nem os exclui automaticamente.
Consulte Desenvolvimento com worktrees e configuração.
Trabalhar com código existente¶
Há dois pontos de entrada para objetivos diferentes:
| Comando | Use para | Resultado e limites |
|---|---|---|
onboard [path] |
Formar o conhecimento reutilizável do projeto a partir de uma base de código existente | Convenções candidatas e restrições de escopo delimitado e fundamentadas em evidências no perfil; o código permanece somente leitura |
reverse-spec [path] |
Entender a arquitetura existente ou comparar o código com a intenção confirmada | Artefatos em rascunho ou relatório de divergências; o código permanece somente leitura |
O Onboard infere convenções a partir do código observável e só propõe restrições com base em proibições explícitas. Convenções candidatas têm efeito local imediato. Restrições candidatas exigem uma decisão na sessão: salvar, editar ou descartar. O conhecimento existente é preservado. Uma análise inicial não serve para inventar justificativas de decisões anteriores nem relatos de armadilhas vivenciadas.
O Reverse-spec tem três modos:
- Visão geral: sem um caminho, ou com a raiz do repositório, produz um projeto
de arquitetura conciso em
design.md, além deslices.mdpara escolher os módulos que serão examinados. - Geração: um caminho de módulo sem uma base confirmada produz rascunhos de
spec.md,design.mde requisitos em aberto ou inferidos. - Reconciliação: um módulo com uma base confirmada produz
reconcile.md, que relata comportamentos não documentados, especificações não implementadas e diferenças semânticas em relação à especificação e ao projeto técnico confirmados. Os requisitos determinam a intenção.
Rascunhos inferidos precisam de confirmação humana antes de servirem como base. A reconciliação indica a direção proposta: corrigir o código, atualizar os documentos ou decidir a intenção. Ela não aplica essa proposta automaticamente.
Revisão e depuração¶
Quatro revisores de artefatos verificam fidelidade, cobertura, viabilidade e
qualidade interna: review-spec, review-design, review-plan e review-tasks.
Eles são executados automaticamente após a geração e também podem ser chamados
manualmente. Os relatórios distinguem defeitos verificados de recomendações de
risco que não bloqueiam a aprovação e de oportunidades de melhoria no projeto
técnico. Também incluem uma pontuação de compatibilidade.
O review-code oferece uma verificação separada de defeitos nas alterações
selecionadas como critério de aprovação (gate de defeitos), além de uma avaliação
explícita da qualidade de todo o código:
/codexspec:review-code --feature <feature-dir>
/codexspec:review-code --uncommitted
/codexspec:review-code --audit src/
Por padrão, a revisão abrange todas as diferenças do branch da funcionalidade:
alterações com commit, na área de preparação, fora da área de preparação e não
rastreadas que não estejam ignoradas. Você pode selecionar explicitamente
alterações com commit, sem commit ou de um único commit como evidência.
--feature acrescenta o contexto dos requisitos sem reduzir o escopo Git.
--audit avalia os caminhos indicados e produz uma avaliação consultiva, em vez
de um veredito de conclusão.
As revisões carregam padrões compartilhados de .codexspec/review-code/ e
selecionam as dimensões de comportamento relevantes, além das verificações de
linguagem e framework. Os achados precisam de evidências concretas, condições que
possam ocorrer, atribuição à alteração selecionada e impacto demonstrado.
O revisor relata defeitos e sugestões de manutenção fundamentadas sem editar
arquivos. Quem conduz a correção verifica esses achados de forma independente.
Nas tarefas de código, os testes são escritos primeiro. Tarefas de documentação
e configuração são implementadas diretamente, com as verificações adequadas.
Após as correções, a revisão incremental pode reutilizar a cobertura de revisão
das partes não afetadas. A aceitação final exige um novo PASS para a
funcionalidade completa, cobertura e verificação concluídas e nenhum defeito
P0–P3 admitido. As sugestões de manutenção fundamentadas são relatadas separadamente.
O padrão de workflow.auto_maintenance é true. Essa configuração controla se
quem conduz as correções também aplica melhorias de manutenção verificadas e
compatíveis. Quando ela é desativada, as sugestões continuam sendo relatadas;
os defeitos ainda precisam ser corrigidos e as verificações obrigatórias
continuam sendo exigidas. A configuração é independente do avanço entre etapas
e não é um argumento de implement-tasks.
Para uma depuração que começa pela investigação da causa raiz:
O Debug segue a sequência investigação → análise de padrões → verificação de uma única hipótese → correção precedida de um teste que falha. Durante a implementação, essa investigação é acionada quando as correções não avançam, um defeito não trivial no comportamento do código precisa ser rastreado ou a mesma classe de causa raiz reaparece em várias rodadas de revisão. Após três correções malsucedidas, a arquitetura é reavaliada.
Use checklist para avaliar a clareza, a completude e a consistência dos requisitos:
A referência de comandos detalha as opções de seleção da revisão, os argumentos e os procedimentos.
Conhecimento do projeto¶
O perfil do projeto armazena conhecimento reutilizável em .codexspec/profile/:
| Categoria | Conteúdo |
|---|---|
constraints/ |
Proibições explícitas e limites rígidos; devem ser lidos primeiro |
conventions/ |
Padrões, nomenclatura e orientações que se aplicam a várias funcionalidades |
pitfalls/ |
Armadilhas vivenciadas, causas, soluções alternativas e lições |
decisions/ |
Decisões reutilizáveis de arquitetura e de assuntos comuns a várias funcionalidades |
strategies/ |
Sinais de que é preciso mudar a abordagem de trabalho |
runbooks/ |
Procedimentos ordenados e recuperação de falhas |
O distill captura conhecimento reutilizável do trabalho. A intenção específica
de cada funcionalidade permanece nos requisitos, no projeto técnico e no plano
dela. O Init instala orientações em CLAUDE.md e/ou AGENTS.md para ler todas as
restrições e o conhecimento relevante antes de realizar trabalho substancial. Conhecimento acrescentado depois pode ter efeito sem uma nova
inicialização. Registros candidatos são usados com cautela. Registros validados
exigem a verificação dos resultados e a aprovação de uma pessoa.
/codexspec:distill Capture the reusable lessons from this work
/codexspec:distill review
/codexspec:evolve
Um distill review manual, ou um distill direto sem novo material para capturar,
abre um espaço de trabalho local e offline no navegador. Nele, você pode revisar,
validar, descartar, adiar e consolidar registros, conferir uma prévia do Markdown
final e selecionar Aplicar tudo. Até a aplicação, as decisões ficam em um
rascunho recuperável. As verificações de conflito impedem a aplicação parcial e
a sobrescrita silenciosa. Há uma alternativa explícita em texto para ambientes
sem navegador.
O padrão de workflow.auto_distill é true e controla três hooks de encerramento:
implement-tasks concluído com sucesso, commits executados por commit-staged
e geração por pr. A prévia de um commit não aciona a captura.
As orientações instaladas no projeto também pedem aos agentes que capturem
conhecimento reutilizável assim que ele surgir: em conversas comuns, em correções
fora de SDD e durante execuções longas de implement-tasks. Essas orientações
valem independentemente da configuração de encerramento. A captura ao final da
tarefa funciona como uma última salvaguarda.
Na mesma sessão, acionamentos repetidos processam apenas material novo. Entre
sessões, o distill lê o perfil e ignora conhecimento já registrado. Se não
restar nada reutilizável, a captura termina sem gravar. A captura automática nunca abre a revisão manual, não espera por uma pessoa
nem bloqueia o fluxo de trabalho que a chamou.
O evolve seleciona apenas conhecimento validado que seja útil além do projeto
e o transforma em um rascunho de comando ou skill. Antes de fazer push ou abrir
um PR de contribuição para revisão humana, obtém aprovação explícita.
Veja mais orientações em Conhecimento do projeto.
Reutilizar decisões anteriores¶
Antes de fazer perguntas sobre uma mudança, o agente consulta o histórico das
funcionalidades relacionadas em .codexspec/specs/. Ele lê as decisões confirmadas
em requirements.md, acompanha os acréscimos posteriores e as substituições
explícitas e, quando necessário, consulta as justificativas do projeto técnico
ou as evidências da implementação. Essa preparação também deve preceder análises
e decisões relevantes sobre projeto técnico, implementação, depuração ou revisão,
tanto em conversas comuns quanto nos fluxos de trabalho SDD.
Os registros de data e hora dos diretórios de funcionalidades ajudam a reconstruir a ordem das iterações; um documento mais recente não invalida automaticamente uma decisão anterior. Requisitos anteriores que não foram alterados continuam válidos, e propostas em aberto não são tratadas como intenção confirmada. A consulta se concentra na tarefa atual e termina quando há contexto suficiente, que será reaproveitado nas etapas seguintes.
Por exemplo, ao alterar uma interface, um agente que não consultou o histórico poderia perguntar:
“Como esta funcionalidade deve lidar com a compatibilidade com versões anteriores?”
Depois de verificar as decisões relevantes e a implementação atual, ele pode fazer uma pergunta mais específica:
“Você havia confirmado que a interface antiga deveria ser mantida, e a implementação atual ainda oferece suporte a ela. Sugiro mantê-la nesta mudança. Podemos seguir assim?”
Informações já estabelecidas que claramente continuam válidas podem ser reutilizadas sem repetir a pergunta. Se você já disse “Remova a interface antiga nesta mudança”, o agente segue essa decisão e explica os impactos da migração. Sua decisão explícita mais recente sempre prevalece; o histórico ajuda a preparar perguntas mais precisas e evitar repetições.
Atualize as instalações existentes dos projetos para receber essas orientações.
Fluxo de trabalho Git¶
/codexspec:commit-staged -p
/codexspec:pr --spec <feature-dir>/spec.md
/codexspec:release-notes --from <ref> --to HEAD
/codexspec:tasks-to-issues <feature-dir>
- commit-staged analisa exatamente a área de preparação e gera uma mensagem
no padrão Conventional Commits.
-pmostra uma prévia sem criar um commit. O fluxo de trabalho que chama o comando escolhe os arquivos e os adiciona à área de preparação. A execução autorizada usa o ambiente de execução protegido e confere novamente se o conteúdo incluído no commit corresponde à análise. As orientações de commit para agentes se aplicam a conversas comuns e aos fluxos SDD, blueprint e auto-dev. A simples disponibilidade do comando não significa que ele foi chamado nem autoriza um commit. - pr gera uma descrição estruturada de PR do GitHub ou MR do GitLab a partir
das diferenças.
--specpode acrescentar o contexto da funcionalidade: aceita o caminho de um arquivospec.md, ou o nome ou prefixo de um diretório de funcionalidade que seja resolvido para esse arquivo. Por padrão, a saída é texto para uso na plataforma de hospedagem. - release-notes gera, a partir do histórico Git, uma entrada no formato Keep
a Changelog e um texto de lançamento. A seção padrão é
[Unreleased];--versionusa o rótulo informado. O comando não adiciona arquivos à área de preparação, não cria commits, não incrementa versões, não cria tags, não publica e não cria lançamentos. - tasks-to-issues cria issues do GitHub a partir de tarefas existentes, incluindo dependências e critérios de aceitação. Requer uma CLI do GitHub autenticada e verifica se o repositório das issues corresponde ao remoto configurado.
A prévia direta de commits e os commits autorizados no diretório de trabalho atual exigem Python 3.11+ e Git. O ambiente de execução é instalado nos projetos inicializados pela CLI e incluído no plugin do Claude. Mesclagens com alterações de conteúdo criadas pelo agente também usam a análise da área de preparação. Mesclagens que apenas unem históricos mantêm a mensagem padrão do Git, mas validam a árvore e os commits pais. Fast-forwards não criam commit.
Rastreabilidade e continuação¶
O arquivo requirements.md confirmado rege a intenção da funcionalidade; a cadeia seguinte é spec.md → design.md → plan.md → tasks.md, interpretada junto com os princípios aplicáveis do projeto e os fatos verificados do repositório. Requisitos usam IDs estáveis, itens da especificação citam Sources e o trabalho posterior cita Covers. Um artefato posterior não pode redefinir silenciosamente uma decisão anterior. Conflitos entre fontes de autoridade ou novas decisões de produto precisam ser resolvidos pelo usuário. Funcionalidades antigas sem requisitos informam a ausência da confirmação original; se não houver projeto técnico, usam a alternativa documentada.
Passe um caminho explícito da funcionalidade quando a seleção for ambígua; os comandos não escolhem silenciosamente o diretório mais recente. O diretório pai dos worktrees é definido a partir do repositório principal, mesmo quando o comando é chamado de um subdiretório ou de outro worktree vinculado. Para repositórios bare, ele é um diretório irmão chamado <bare-repository-name>-codexspec-worktrees. A manutenção independente usa a branch codexspec/maintenance.
Uma preparação de worktree que falha mantém sua identidade para permitir a continuação. Merges de bases divergentes precisam passar pelas verificações do projeto antes de gravar requisitos ou iniciar o desenvolvimento. A inspeção somente leitura mantém sua fonte; os relatórios usam o checkout de saída resolvido. A execução de commits mantém o índice selecionado e nunca transfere as alterações preparadas de main para outro worktree. Se faltarem recursos instalados necessários em um novo worktree, inicialize esse destino antes de continuar.
Modelo de revisão¶
As revisões separam três tipos de saída:
- Defeitos de fidelidade: conflito com uma fonte autoritativa ou omissão de cobertura exigida.
- Defeitos intrínsecos: o artefato é internamente contraditório, inverificável ou inviável.
- Avisos de risco / oportunidades de design: melhorias opcionais, sem evidência de um defeito atual.
Todo defeito deve identificar sua evidência, local, divergência, impacto e remediação mínima. Achados com a mesma causa raiz são mesclados. Avisos não afetam status, pontuação nem correções automáticas.
O status da revisão é:
PASS: nenhum defeito crítico, de aviso ou menor.PASS_WITH_WARNINGS: restam apenas defeitos menores.NEEDS_REVISION: restam um ou mais avisos.BLOCKED: um conflito crítico impede a continuação confiável.
A pontuação de compatibilidade é derivada dos mesmos achados classificados, em vez de deduções fixas por seção de template. O status é autoritativo; a pontuação existe para integrações que ainda esperam um número.
Auto Review limitado¶
Os comandos de geração executam a revisão correspondente automaticamente. Esta é a disciplina de revisão baseada em evidências em ação: eles só podem reparar defeitos com evidência e reavaliar por no máximo duas rodadas. Eles param antes em PASS e param para entrada do usuário quando:
- uma fonte autoritativa conflita com outra fonte;
- uma correção mudaria uma intenção confirmada;
- o item restante é consultivo, e não um defeito;
- duas rodadas de reparo já foram usadas.
Comandos manuais /codexspec:review-* podem ser executados a qualquer momento para um relatório atualizado.