01
Loop governado
Um loop HPP possui:
- objetivo e spec;
- estado observável;
- próxima ação;
- budget de tempo/iterações;
- gate de evidência;
- stop conditions;
- escalonamento humano;
- feedback persistido.
loop_gate.py implementa o stop gate: uma marca textual de conclusão não libera o loop sem que
o done_gate correspondente passe. autoprompt_resume.py produz retomada; não altera o veredito.
Para um critério end-to-end ou visual, a trava é o hpp evidence run (novo na
2.6.0): ele reexecuta o comando declarado, mede
o código de saída fora do modelo e faz hash dos artefatos que ficaram. O hpp evidence verify é
reconciliação posterior — re-deriva um registro a partir dos arquivos em disco — e nunca a trava: o
hash próprio do registro torna uma edição visível e não é uma assinatura. O
hpp evidence run --sign-key KEY --signer NAME acrescenta uma assinatura SSH, e o
hpp evidence verify --allowed-signers FILE recusa um registro que não carrega uma que o arquivo
aceite; uma assinatura diz quem escreveu o registro, não que o comando ainda passa, então quem não
pode confiar no maker roda o comando de novo. O hpp não dirige navegador; o navegador roda dentro
do comando que você declara.
02
Autoloop e LoopGraph
Autoloop é o ciclo finito observe → choose → act → verify → record → stop/continue. No HPP ele
não significa autonomia sem teto. O loop de hpp.manifest.json é o LoopGraph mínimo: estados,
eventos, gates e transições permitidas. Repetição intencional fica no charter com budget e saída;
ciclo acidental no WorkGraph é erro.
03
Spec-driven
A spec é compilada em WorkGraph. Acceptance criteria viajam com cada unidade. Dependências viram waves topológicas e cada wave fecha testes e review antes de liberar a próxima.
04
Autoprompt
Autoprompt responde “qual é o próximo passo derivável do estado?”. Ele não decide risco, não aprova mudança sensível e não substitui checker. Se o estado é insuficiente, a saída correta é declarar o dado faltante.
05
Memória de falhas
Gotcha Memory classifica falhas, mede recorrência e propõe uma lição. A promoção é controlada para evitar transformar um incidente isolado ou ambíguo em regra permanente.
Uma falha que não casa com nenhuma família fica unknown e nunca é reclassificada
automaticamente. Uma reclassificação consultiva via hpp decide (novo na 2.6.0) é offline:
uma pessoa a roda, nunca um hook, depois de medir o decisor com hpp decide eval; o registro
continua consultivo, e uma família nova só entra no classificador como mudança revisada.
06
Avaliação
pass@k mede se o sistema consegue; pass^k mede se repete. O loop só trata release-critical como
estável quando o gate de regressão passa no universo e no k declarados.
A mesma regra vale para os instrumentos em que um loop se apoia. hpp retrieval eval mede um
retriever e hpp decide eval um decisor (ambos novos na 2.6.0), cada um em casos rotulados,
com falhas de instrumento — timeout, crash, resposta malformada — contadas à parte e nunca
pontuadas. Best-of-N, em que N lanes constroem alternativas e um revisor de outra lane e de outra
família de modelo escolhe uma (lane_board.py compete e select, novos na 2.6.0), é pass@N:
escolher 1 de N mede se o sistema consegue, não se repete, então o vencedor ainda precisa da
própria verificação e de pass^k.