1. Detectar projeto
PROJECT_PATH=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
PROJECT_NAME=$(basename "$PROJECT_PATH")
2. Verificar pre-requisitos e detectar retomada
Leia ~/.claude/workflow/$PROJECT_NAME/plan.md e ~/.claude/workflow/$PROJECT_NAME/tasks.md. Se algum nao existir, informe qual etapa esta faltando.
Leia ~/.claude/workflow/$PROJECT_NAME/current.json para contexto.
Nao leia spec.md — plan.md ja contem o contexto suficiente.
Checkpointing — retomar de onde parou
Verifique tasks.items no current.json. Se houver tasks com status "done":
- Pule tasks ja concluidas — nao re-execute
- Se houver uma task com status
"in_progress"(tasks.current_task_idpreenchido):- Verifique no codigo se a implementacao foi parcial (arquivos criados/editados mas incompletos)
- Se completa → marque como
"done"e avance - Se parcial → retome do ponto onde parou
- Se nenhuma evidencia → comece a task do zero
- Avise: "Retomando implementacao — N tasks ja concluidas, continuando a partir de Task #ID"
Apenas tasks com status "pending" ou "in_progress" serao executadas.
Context budget
Se o plan.md tiver mais de 200 linhas, leia apenas: "Visao geral", "Arquivos impactados", "Ordem de execucao" e "Estrategia de testes". Use o tasks.md como guia primario — ele ja referencia as secoes relevantes do plano.
3. Consultar lessons learned
Se ~/.claude/projects/$PROJECT_NAME/lessons.md existir, leia-o. Aplique as regras como constraints durante a implementacao. Se uma task pode repetir um erro documentado, evite-o proativamente.
Lessons sao cross-cycle (propriedade do projeto, nao do ciclo). Vivem em
projects/, nao emworkflow/.
4. Capturar metricas de inicio — EXECUTE AGORA
bash ~/.claude/bin/capture-metrics.sh start implement "$PROJECT_NAME" "$PROJECT_PATH"
Guarde o output como STEP_START_TS.
5. Registrar estado git inicial
git rev-parse HEAD
Guarde como GIT_START_SHA — sera usado no resumo de impacto.
6. Executar tasks
Liste tasks pendentes com TaskList. Execute na ordem do tasks.md.
Para cada task:
- Anuncie: "Task #ID — Titulo
[S/M/L]" - Atualize
current.json: settasks.current_task_idpara o ID da task etasks.items[n].statuspara"in_progress" - Implemente seguindo o
plan.md - Validacao imediata: se a task tem teste mapeado na tabela "Estrategia de testes (TDD)" do
plan.md, execute-o agora. Registre resultado notasks.items[n]:{ "id": "T2", "status": "done", "test_result": "pass" }- Se o teste falhar (
"test_result": "fail"), corrija antes de avancar - Se nao ha teste mapeado, registre
"test_result": "no_test"
- Se o teste falhar (
- Atualize status com
TaskUpdate - Marque
[x]notasks.md - Atualize
current.json: settasks.items[n].statuspara"done"e incrementetasks.completed - Resumo de 1 linha do que foi feito
Protocolo de desvio (backtrack)
Se durante a implementacao voce encontrar algo que invalida o plano:
- Pare a execucao — nao force uma implementacao que nao faz sentido
- Documente o problema: descreva claramente o que encontrou e por que o plano e inviavel nesse ponto
- Proponha a correcao: sugira o ajuste necessario no plan.md (e na spec.md se for o caso)
- Aguarde aprovacao: pergunte "Encontrei um desvio necessario. Posso atualizar o plano e continuar?"
- Se aprovado: atualize os artefatos, registre em
current.jsonno campobacktracks:"backtracks": [{"task": "#ID", "reason": "...", "resolution": "..."}] - Se rejeitado: siga com o plano original ou pare conforme o usuario decidir
Regras gerais:
- Nunca desvie do plano sem consultar o usuario
- Pause se encontrar algo inesperado
- Aguarde confirmacao para tasks com risco alto
7. Resumo de impacto — EXECUTE AGORA
Apos todas as tasks:
git diff --stat <GIT_START_SHA>..HEAD
Se alguma task teve test_result: "no_test", execute a suite de testes completa do projeto como safety net:
# Adapte ao projeto — ex: flutter test, npm test, etc.
Apresente o resumo:
## Resumo de impacto
- **Arquivos criados:** N
- **Arquivos editados:** N
- **Arquivos removidos:** N
- **Testes por task:** X pass / Y fail / Z sem teste
- **Suite completa:** PASS/FAIL/nao executada
- **Feature:** <nome> implementada
8. Capturar metricas finais — EXECUTE AGORA (obrigatorio)
bash ~/.claude/bin/capture-metrics.sh end implement "$PROJECT_NAME" "$PROJECT_PATH"
Atualize current.json: set tasks.current_task_id para null e status para "implemented".
9. Verificar phases pendentes
Verifique se ~/.claude/workflow/$PROJECT_NAME/phases.md existe.
Se existir:
- Marque a phase recem-concluida como
[x] - Verifique se ainda ha phases com
[ ]:Sim, ha phases pendentes: exiba o resumo e pergunte: "Phase N concluida! Phases restantes:
- Phase N+1:
Deseja verificar a implementacao? Execute
/verify. Ou iniciar a proxima phase? Execute/specify."Nao, todas concluidas: delete
phases.mde informe que o projeto foi implementado por completo.
Se nao existir: avance automaticamente executando /verify.