Files
msd-core/docs/pt-BR/how-to/debug-a-failed-execution.md
Jakub Zych a9a7a328e6 refactor: hard-fork GSD -> MSD (Make Software Done)
Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD
across contents and paths, upstream package/repo coordinates -> @golem15/msd-core
and golem15com/msd-core. Deep links into upstream history, sibling upstream
packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is.

Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line,
package/plugin identity, regenerated lockfile, install-tree fixtures, derived
registries and benchmark baseline; migration checksum baseline re-locked
(MSD keeps its own install state, so no install had applied the old sums);
sort-order and regex-escaped expectations in tests adjusted.
2026-10-06 01:47:40 +02:00

6.4 KiB
Raw Permalink Blame History

Como depurar uma execução com falha

Objetivo: Recuperar quando uma execução de fase falha, trava ou produz trabalho incompleto — e retomar de forma limpa sem perder o progresso ou repetir o trabalho que já foi concluído com sucesso.

Pré-requisitos: Você executou /msd-execute-phase N e a execução parou antes de gravar VERIFICATION.md, ou você vê saída inesperada, arquivos ausentes ou um indicador de progresso travado.


Detectar se a execução travou ou falhou

Antes de tomar qualquer ação de recuperação, determine o que realmente aconteceu.

Se você ver "Spawning…" sem saída após 1–5 minutos

Isso é normal, não é um travamento. Os subagentes MSD são executados em uma janela de contexto isolada. A nota de atividade na linha de spawn confirma isso. Não interrompa a sessão.

Se já se passaram mais de 10 minutos sem resultado, verifique a barra lateral do Claude Code. Se a tarefa do agente aparecer como concluída mas nenhuma saída tiver aparecido, o resultado pode ter sido perdido em uma troca de contexto — execute novamente o mesmo comando:

/msd-execute-phase 1

O MSD verifica a existência de arquivos SUMMARY.md antes de despachar os executores. Planos que já possuem um são ignorados automaticamente.

Se a execução parou no meio de uma onda com uma mensagem de erro

Verifique o histórico do git para ver quais planos foram commitados com sucesso:

git log --oneline -20

Planos que commitaram seu trabalho terão uma entrada como feat(01-02): …. Planos sem um commit estão incompletos e serão executados novamente quando você executar o comando novamente.

Se o executor commitou o código mas não gravou SUMMARY.md

O MSD detecta isso na próxima execução e apresenta uma porta de retomada segura com três opções:

  • Fechar manualmente — inspecione os commits você mesmo, escreva SUMMARY.md e execute novamente.
  • Executar novamente do zero — reverta ou substitua os commits parciais antes de despachar um novo executor.
  • Marcar e pular — registre a anomalia e continue, apenas com sua confirmação explícita.

Diagnosticar a causa raiz

Execute /msd-debug --diagnose

Se a execução produziu saída incorreta, código com stubs ou uma falha de verificação, use o modo somente de diagnóstico para investigar sem aplicar nenhuma correção:

/msd-debug --diagnose "Phase 2 executor produced stubs instead of real code"

--diagnose para na causa raiz sem tocar nos seus arquivos. Ele cria um arquivo de sessão em .planning/debug/<slug>.md para que você possa retomar a investigação mais tarde, se necessário.

Para iniciar uma sessão de depuração completa que também aplica uma correção:

/msd-debug "Login middleware not handling 401 correctly after phase 3"

O MSD coleta sintomas, executa uma investigação estruturada usando o método científico e propõe uma correção. Se tdd_mode: true estiver definido na sua configuração, ele exige um teste com falha antes de aplicar qualquer correção.

Verificar sessões de depuração ativas

/msd-debug list

Mostra todas as sessões abertas com sua hipótese atual e próxima ação. Para retomar uma sessão específica:

/msd-debug continue <slug>

Executar uma análise post-mortem com /msd-forensics

Se a causa não estiver clara a partir da saída de erro — por exemplo, planos referenciam arquivos inexistentes, a execução produziu resultados inesperados ou o estado parece corrompido — execute uma investigação forense:

/msd-forensics "Phase 3 execution stalled after wave 1"

O MSD analisa o histórico do git, a completude dos artefatos em .planning/, a consistência de STATE.md, o trabalho não commitado e as worktrees órfãs. Ele grava um relatório estruturado em .planning/forensics/report-<timestamp>.md e apresenta as etapas de remediação recomendadas.

/msd-forensics é somente leitura — ele nunca modifica os arquivos do seu projeto.

O que ele detecta:

  • Loop travado — o mesmo arquivo aparece em três ou mais commits consecutivos em uma janela de tempo curta (confiança ALTA se as mensagens de commit forem semelhantes)
  • Artefatos ausentes — uma fase tem commits mas não tem SUMMARY.md ou VERIFICATION.md
  • Trabalho abandonado — alterações não commitadas com STATE.md mostrando execução em andamento e o último commit com mais de duas horas de idade
  • Falha ou interrupção — alterações não commitadas combinadas com um estado de execução ativo e worktrees órfãs
  • Desvio de escopo — commits recentes tocam arquivos fora do conjunto de arquivos esperado da fase atual

Retomar a execução após a recuperação

Assim que o problema subjacente for resolvido, execute novamente o comando de execução:

/msd-execute-phase 1

O MSD ignora planos cujo SUMMARY.md já existe e despacha executores apenas para os planos restantes.

Se precisar executar novamente apenas uma onda específica:

/msd-execute-phase 1 --wave 2

Reverter com /msd-undo

Se a execução produziu código que você deseja descartar completamente, reverta usando o manifesto do plano em vez do git revert manual:

Reverter um único plano

/msd-undo --plan 03-02

Reverte todos os commits do plano 02 da fase 3. O MSD exibe uma porta de confirmação antes de gravar qualquer alteração.

Reverter uma fase inteira

/msd-undo --phase 03

Reverte todos os commits da fase 3. O MSD verifica se alguma fase subsequente depende desta fase e avisa você antes de prosseguir.

Selecionar interativamente a partir de commits recentes

/msd-undo --last 5

Mostra os cinco commits MSD mais recentes e permite que você selecione quais reverter.


Restaurar o contexto da sessão após uma pausa

Se você retornou ao projeto após uma reinicialização de contexto ou uma nova sessão:

/msd-resume-work

Restaura o contexto completo da sua sessão a partir do último handoff, incluindo a fase atual, bloqueadores e onde a execução parou.

Como alternativa, para ver sua posição atual e avançar automaticamente para o próximo passo correto:

/msd-progress --next

Relacionados