> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orkestral.pro/llms.txt
> Use this file to discover all available pages before exploring further.

# Entrega provada

> Concluído é provado, não afirmado. As travas determinísticas que rodam de verdade antes de qualquer issue virar pronta.

Todo agente quer dizer que terminou. O Orkestral não acredita na palavra: ele **prova**.
Antes de uma [issue](/pt/issues) virar concluída, travas determinísticas rodam de verdade
e barram trabalho oco, mesmo que o agente jure que passou.

## Por que isso importa

Sem essas travas, um agente pode marcar uma tarefa como "feita" sem que o código exista,
escrever uma rota no lugar errado, ou inventar um "QA aprovado" sem rodar nada. O
resultado parece pronto e não é. As travas abaixo tornam o "pronto" verificável.

## As travas

<CardGroup cols={2}>
  <Card title="O build roda de verdade" icon="hammer">
    A validação de QA executa o `npm run build` (ou o typecheck da stack) e lê o exit code.
    Se o build falha, o veredito vira reprovado e o erro real é colado. A palavra do agente
    não passa por cima do exit code.
  </Card>

  <Card title="Nada de código fantasma" icon="ghost">
    Uma issue de código que conclui sem mudar arquivo nenhum não vira "feita": ela é marcada
    como não verificada, com aviso. Alegar pronto sem diff não conta.
  </Card>

  <Card title="Arquivos no lugar certo" icon="folder-tree">
    Em projeto Next.js, uma rota fora de `app/` é ignorada pelo framework, então a rota não
    existe. A QA reprova arquivos de rota órfãos com a lista do que mover.
  </Card>

  <Card title="Base que já compila" icon="layer-group">
    Projetos do zero partem dos scaffolders oficiais (Next 15, React 19, Tailwind v4,
    shadcn/ui). O setup escala uma vez pro premium, que roda o CLI de verdade, em vez de o
    modelo local escrever uma base pela metade.
  </Card>
</CardGroup>

## O contrato da Cápsula

Cada [Cápsula](/pt/capsule) carrega um **contrato**: predicados que a máquina confere após
a execução, sem custo de modelo.

| Predicado         | O que confere                            |
| ----------------- | ---------------------------------------- |
| `file_contains`   | O símbolo pedido aparece no arquivo.     |
| `imports_intact`  | Nenhum import de topo foi removido.      |
| `no_shrink`       | O arquivo não encolheu além do esperado. |
| `build`           | O `npm run build` / typecheck passa.     |
| `route_placement` | Rotas estão sob `app/`, não órfãs.       |

<Note>
  Os asserts baratos são guard-rails: eles pegam regressão (símbolo sumiu, imports comidos),
  não provam comportamento. A prova dura de comportamento é o **gate de build no QA**, que
  roda o build real e reprova se ele quebra.
</Note>

## A máquina de decisão: re-tentar local, escalar premium, concluir

Quando uma execução falha a validação, o erro é re-alimentado e o Forge tenta de novo,
agora com o pitfall que casa. Se persiste, escala pro modelo premium, que recebe o
histórico (o que tentou, em que tier, qual erro) e re-compila a Cápsula em vez de começar
do zero. Só quando o contrato passa a issue é concluída.

```mermaid theme={null}
flowchart TD
    R["Forge executa"] --> V{"Contrato<br/>passou?"}
    V -->|sim| D["Concluída<br/>e provada"]
    V -->|não| L["Re-alimenta o erro<br/>como pitfall"]
    L --> R
    L -.->|esgotou as tentativas| P["Escala pro premium<br/>com o histórico"]
```

## Onde você vê isso

* Na [issue](/pt/issues): comentários do sistema marcam reprovações, pitfalls e o veredito de QA.
* No [code review](/pt/code-review): a revisão final no épico confere o conjunto antes do merge.
* Nos [logs e observabilidade](/pt/observability): cada trava aparece no trace de execução.

## Veja também

<CardGroup cols={2}>
  <Card title="A Cápsula" icon="cube" href="/pt/capsule">
    Como a intenção vira uma unidade com contrato verificável.
  </Card>

  <Card title="Aprovações" icon="circle-check" href="/pt/approvals">
    Quando o trabalho precisa do seu OK antes de seguir.
  </Card>
</CardGroup>
