← ClaudeAtlas

gate-runnerlisted

Executa gates deterministas de uma feature/task — parseabilidade, grep positivo/negativo, anti-empty e smoke com timeout — emitindo UMA linha OK/FAIL por gate, com output bruto em /tmp. Use durante /forge:implement e /forge:verify para validar artefatos gerados sem estourar contexto.
vellus-tech/forge-harness · ★ 0 · Data & Documents · score 66
Install: claude install-skill vellus-tech/forge-harness
# Gate Runner (v0 — §17.5) Gates deterministas complementam os loops builder→validator (probabilísticos) com checagens objetivas e baratas. Disciplina inegociável (§17.6): **cada gate emite uma linha** `OK <gate>` ou `FAIL <gate> (<pista>)`; output bruto vai para `/tmp/gate-<nome>.log` e você lê **apenas `tail -20`** dele. Nunca cole o log no chat. ## Protocolo 1. Identifique os arquivos-alvo (os que a task tocou/gerou). 2. Selecione os gates aplicáveis (abaixo) e rode-os em sequência. 3. Qualquer `FAIL` → corrija e re-rode **só o gate que falhou** (máx. 2 tentativas; depois trate como falha irrecuperável da task: `[!]` + humano). 4. Reporte o conjunto em uma linha final: `gates: N OK, M FAIL`. ## Receitas **Parseabilidade** (parser nativo do formato): ```bash # JSON node -e 'JSON.parse(require("fs").readFileSync(process.argv[1],"utf8"))' "$f" >/tmp/gate-parse.log 2>&1 && echo "OK parse:$f" || echo "FAIL parse:$f" # YAML (python3 com pyyaml; fallback: o parser da sua stack) python3 -c 'import yaml,sys; yaml.safe_load(open(sys.argv[1]))' "$f" >/tmp/gate-parse.log 2>&1 && echo "OK parse:$f" || echo "FAIL parse:$f" # Frontmatter de .md perl -0ne 'exit(0) if /^---\n.*?\n---/s; exit(1)' "$f" && echo "OK frontmatter:$f" || echo "FAIL frontmatter:$f" ``` **Grep positivo (OR cross-file)** — cada padrão obrigatório aparece em ao menos um arquivo-alvo: ```bash grep -l "$PATTERN" "${FILES[@]}" >/dev/null && echo "OK grep+:$PATTERN" || echo "FAIL grep+:$PATTERN (ausente em todos