forge-pause

star 3

Pausa ou retoma forge-auto no proximo intervalo. Multi-run: aceita ID.

vh2224 By vh2224 schedule Updated 5/20/2026

name: forge-pause description: "Pausa ou retoma forge-auto no proximo intervalo. Multi-run: aceita ID." disable-model-invocation: true allowed-tools: Bash, Read

Resolve scripts dir

if [ -f "scripts/forge-runs.js" ]; then
  FORGE_SCRIPTS_DIR="scripts"
else
  FORGE_SCRIPTS_DIR="$HOME/.claude/scripts"
fi

Listar runs ativas

ACTIVE_RUNS=$(node "$FORGE_SCRIPTS_DIR/forge-runs.js" --list-active 2>/dev/null)
ACTIVE_COUNT=$(node -e "process.stdout.write(String(JSON.parse(process.argv[1] || '[]').length))" "$ACTIVE_RUNS")

Branch por argumento + count

Sem argumento + 0 ativas

Informar o usuário:

Sem runs ativas. Nada a pausar. Use /forge-auto <M###> ou /forge-task <descrição> pra iniciar.

Sem argumento + 1 ativa → toggle daquela única

TARGET_ID=$(node -e "process.stdout.write(JSON.parse(process.argv[1])[0].id)" "$ACTIVE_RUNS")

Prosseguir pro bloco de toggle abaixo com TARGET_ID.

Sem argumento + 2+ ativas → refuse + listar

Informar o usuário:

Múltiplas runs ativas neste workspace:

  • M065 — milestone (forge-executor T03)
  • M066 — milestone (forge-planner S04)

Especifique: /forge-pause M065

(Listar IDs reais do $ACTIVE_RUNS — id + kind + worker se houver.)

Parar aqui.

Com argumento $ARGUMENTS = status

Mostrar estado completo de TODAS as runs ativas + arquivos pause existentes:

node "$FORGE_SCRIPTS_DIR/forge-runs.js" --list-active
ls .gsd/forge/pause-* 2>/dev/null || echo "(nenhum pause solicitado)"

Com argumento $ARGUMENTS = um ID (ex.: M065, task-fix-typo-a3f2)

TARGET_ID="$ARGUMENTS"

Validar que essa run existe e está ativa:

RUN_INFO=$(node "$FORGE_SCRIPTS_DIR/forge-runs.js" --get "$TARGET_ID" 2>/dev/null)
if [ "$RUN_INFO" = "null" ] || [ -z "$RUN_INFO" ]; then
  echo "Run $TARGET_ID não existe no registry."
  exit 1
fi
IS_ACTIVE=$(node -e "process.stdout.write(JSON.parse(process.argv[1]).active ? '1' : '0')" "$RUN_INFO")
if [ "$IS_ACTIVE" != "1" ]; then
  echo "Run $TARGET_ID existe mas não está ativa. Nada a pausar."
  exit 0
fi

Prosseguir pro bloco de toggle abaixo.

Bloco de toggle (usado pelos branches acima com TARGET_ID setado)

PAUSE_FILE=".gsd/forge/pause-$TARGET_ID"
if [ -f "$PAUSE_FILE" ]; then
  rm "$PAUSE_FILE"
  OUTCOME="cancel"
else
  mkdir -p .gsd/forge && touch "$PAUSE_FILE"
  OUTCOME="set"
fi
echo "outcome=$OUTCOME target=$TARGET_ID"

Reportar conforme outcome:

  • Se set:

    ⏸ Pause solicitado para $TARGET_ID. O forge-auto irá parar essa run após completar a unidade atual. Para cancelar: /forge-pause $TARGET_ID Para retomar depois: /forge-auto $TARGET_ID

  • Se cancel:

    ▶ Pause de $TARGET_ID cancelado. A run continuará normalmente após a unidade atual.

Notas

  • O pause é scoped por run desde M004. Pausar uma run não afeta outras concorrentes.
  • Arquivo legado .gsd/forge/pause (sem suffix) ainda é respeitado por orquestradores pré-M004 — não criamos mais nem checamos neste skill.
  • O arquivo de pause é um sentinela vazio; conteúdo é ignorado.
Install via CLI
npx skills add https://github.com/vh2224/forge-agent --skill forge-pause
Repository Details
star Stars 3
call_split Forks 2
navigation Branch main
article Path SKILL.md
More from Creator