Wizard — pre-flight + signals

O runner wizard (v2.31.0+) não é mais um state machine que ramifica em 5 estados diferentes. Em vez disso, roda pre-flight gate primeiro (decide bail vs proceed) e depois usa sinais detectados do repo pra decidir quais perguntas condicionais (Q3-Q5) disparam.

Pre-flight gate

Antes de qualquer pergunta, o wizard verifica:

Check Bail quando Hint na mensagem
Manifest existe .deploy.yml presente sem --force-overwrite usar runner edit ou --force-overwrite
Git presente .git faltando git init && git commit -m initial
Deployable sem Dockerfile e sem docker-compose template Dockerfile mínimo + link pros docs

Se passa, segue pra Q1-Q5.

Sinais detectados

Pre-flight também detecta:

Sinal Origem Aciona
has_dockerfile Dockerfile no root Use no defaults inferidos
has_compose docker-compose.{yml,yaml} etc. Use no defaults
compose_multi_service compose com N>1 services Q3 multi-service picker
unresolved_placeholders ${VAR} no env do compose Q4 placeholder values
other_apps_in_same_repo state files com mesmo repo slug Q5 ckey strategy (ofereçe reuso)
language detect.rs (Node/Python/Rust/PHP/Laravel) Defaults de system

Quais perguntas disparam quando

Cenário Perguntas
Greenfield Dockerfile-only Q1 + Q2 (2 perguntas, <60s)
Compose single-service Q1 + Q2
Compose multi-service (sem placeholders) Q1 + Q2 + Q3 + Q5
Compose com ${VAR} no env + Q4
Compose com app já existente no repo + Q5 com opção de reuso

Resume

Cada resposta é salva incremental em .runner/wizard-answers.yml (schema v2). Rerun com --resume retoma de onde parou (ou pergunta no início se quer recomeçar do zero).

Veja também

By Borlot.com.br on 29/05/2026