Objetivo
Formalizar no simplicio-loop que todo avanço observável do loop seja publicado de forma identificável e idempotente tanto na Issue/task de origem quanto na PR que implementa a etapa.
Esta issue nasce da execução da #423 e deve evitar que o Project 3, a Issue e a PR apresentem estados divergentes ou progresso sem autoria verificável.
Escopo
Implementar um contrato único de comentário para as transições do lifecycle:
claim → survey/plan → operate → review → recovery → PR → checks → merge → re-query → close.
Para cada transição, o comentário deve:
- ser publicado na Issue/task de origem;
- ser publicado na PR vinculada quando existir uma PR;
- identificar o agente no formato
Nome/Papel - #XXXX - Modelo, usando o nome do computador abreviado em quatro caracteres;
- incluir
run_id, task/issue, pr (quando houver), stage, status, attempt, fence, reason_code, receipt_id, evidências/comandos e próximo gate;
- conter links cruzados entre Issue/task, PR, commit e evidências;
- usar uma chave de idempotência estável por
run_id + item + stage + attempt + transition, sem duplicar comentários em retry;
- registrar explicitamente
PASS, REGRESSED, BLOCKED ou NEEDS-HUMAN;
- nunca publicar progresso em outro repositório ou em um Project diferente do Project do próprio repo.
Requisitos funcionais
- Criar um envelope/schema versionado para o comentário de progresso.
- Implementar publisher para Issue/task e PR com o mesmo envelope e chave idempotente.
- Reconciliar comentários existentes antes de criar outro, preservando histórico sem duplicação.
- Atualizar o item do Project do repo de acordo com o estado observado; comentário sozinho não pode marcar Done.
- Em erro de autenticação/permissão/API, produzir receipt fail-closed com
reason_code estável e manter a Issue/PR em estado não concluído.
- Manter a identificação dos agentes, inclusive quando o mesmo modelo aparece em máquinas diferentes.
- Não criar, usar ou sugerir qualquer estado de quarentena.
Testes obrigatórios
- unitários para envelope, identidade, chave idempotente e reason codes;
- testes de retry que comprovem exatamente um comentário por transição em Issue e PR;
- testes com PR ausente, PR fechada, PR trocada e item sem Project;
- integração usando API fake/fixture para verificar links cruzados, paginação e erro de permissão;
- replay: comentário adulterado ou receipt divergente não pode ser tratado como progresso válido;
- paridade entre código fonte e pacote/wheel;
python scripts/check.py, suíte completa e git diff --check verdes.
Critérios de aceite
Definition of Done
Código, schemas, testes, documentação e pacote publicados em uma PR; review adversarial independente verde; checks verdes; PR mesclada somente após todas as evidências; Issue e Project do repo atualizados com links para a PR/commit e verificação em origin/main.
Objetivo
Formalizar no
simplicio-loopque todo avanço observável do loop seja publicado de forma identificável e idempotente tanto na Issue/task de origem quanto na PR que implementa a etapa.Esta issue nasce da execução da #423 e deve evitar que o Project 3, a Issue e a PR apresentem estados divergentes ou progresso sem autoria verificável.
Escopo
Implementar um contrato único de comentário para as transições do lifecycle:
claim → survey/plan → operate → review → recovery → PR → checks → merge → re-query → close.Para cada transição, o comentário deve:
Nome/Papel - #XXXX - Modelo, usando o nome do computador abreviado em quatro caracteres;run_id,task/issue,pr(quando houver),stage,status,attempt,fence,reason_code,receipt_id, evidências/comandos e próximo gate;run_id + item + stage + attempt + transition, sem duplicar comentários em retry;PASS,REGRESSED,BLOCKEDouNEEDS-HUMAN;Requisitos funcionais
reason_codeestável e manter a Issue/PR em estado não concluído.Testes obrigatórios
python scripts/check.py, suíte completa egit diff --checkverdes.Critérios de aceite
Definition of Done
Código, schemas, testes, documentação e pacote publicados em uma PR; review adversarial independente verde; checks verdes; PR mesclada somente após todas as evidências; Issue e Project do repo atualizados com links para a PR/commit e verificação em
origin/main.