HUG-009 — contrato de execução
Plano: v3.0 · fase: A · lane: C · prioridade: first_slice.
Estado inicial: backlog; nenhuma implementação ou qualificação declarada. A aprovação/merge do PR de planejamento e as pré-condições do WP precedem execução. Fechar por evidência, não por merge automático.
Contrato imutável: work package completo. Fonte normativa.
Identidade do plano: ddcc59c538f269881c05b98017c11c79dae67a7339257facc22a2b1d2a9a7889. Commit da especificação: 0b7f629dd0259515608517bcd692e5ec4d2b6ee3.
Hugit é 100% standalone. Intent = goal capturado por hook; nenhuma dependência de CoreLink, conta, runner remoto ou registro voluntário pelo LLM.
Acompanhamento: #379.
Dependências e admissão
#382 (HUG-003)
- Todos os predecessores possuem evidência integrada e interfaces versionadas compatíveis.
- Owner C aceita write-set exato e budget B-PROCESS; HUG-001 distingue arquivos existentes dos novos.
- Os casos P/N/Q/R e os oráculos estão especificados antes do dispatch; fixtures e testes executáveis são entregues pelo próprio pacote ou predecessor. Documentação/descoberta usa oráculos de artefato, não um falso bug de runtime.
- Qualquer dado de fonte ainda não observado bloqueia o consumidor; descobrir no pacote predecessor, sem inventar payload.
- Usar a especificação aprovada desta revisão; descobertas/contratos e contenções de baseline produzem as pré-condições do freeze, sem ativar implicitamente o runtime v2.
Protocolos: P00@3.0 · 5d737267087e24bbcca9548488c719f4cca46fa3435a0ccf31b7b98696fde5cc, P07@3.0 · 995564c0e30b81dbf5523fc72b8960a812edabcf576a85d551cd17fa86e49694
Outputs e coordenação
crates/hugit-cli/src/checks/run.rs
crates/hugit-cli/src/process/supervisor.rs
crates/hugit-cli/tests/process_supervision.rs
Caminhos propostos: HUG-001 resolve existentes/novos contra o checkout. Cargo.lock/Cargo.toml/lib.rs/main.rs/registries: solicitar patch ao integrador; não editar fora da lease de arquivo.
Unidades verificáveis
- HUG-009.S1 — Suportar processo cooperativo não interativo: grupo dedicado Unix e job Windows sem breakaway, sem herdar handles de coordenação.
- HUG-009.S2 — Um deadline monotônico cobre child, descendentes admitidos e drains; kill/cleanup usa ownership validado e nunca grupo do harness.
- HUG-009.S3 — Ao exceder deadline: estado timeout e streams partial, limpeza limitada; core não promete conter código same-user hostil que escape deliberadamente.
Completeness criteria
-
HUG-009-CC01 — obrigatório: Supervisor, pumps e status formam um ciclo de vida único.
Assertions: A-HUG-009-CC01. Famílias: T-HUG-009-P.
-
HUG-009-CC02 — obrigatório: Sinais/timeout/cancelamento têm ownership e representação por plataforma.
Assertions: A-HUG-009-CC02. Famílias: T-HUG-009-P.
-
HUG-009-CC03 — obrigatório: Modo interativo/PTY não é anunciado pelo contrato pipe.
Assertions: A-HUG-009-CC03. Famílias: T-HUG-009-P.
Success criteria
-
HUG-009-SC01 — obrigatório: sleep 3 & exit 0 com deadline 1 s termina em ≤1,5 s no fixture local qualificado, informa timeout/partial e mantém harness vivo; falha de setup não lança comando.
Assertions: A-HUG-009-SC01. Famílias: T-HUG-009-P.
-
HUG-009-SC02 — obrigatório: Filho encerra antes de neto soltar pipe, SIGINT durante flood e job assignment falho não causam wait ilimitado nem finalização falsamente complete.
Assertions: A-HUG-009-SC02. Famílias: T-HUG-009-N.
Quality standards
-
HUG-009-QS01 — obrigatório: Tolerância de limpeza 500 ms é alvo de teste, não alegação já medida em todos os hosts.
Assertions: A-HUG-009-QS01. Famílias: T-HUG-009-Q.
-
HUG-009-QS02 — obrigatório: Testar cancelamento repetido e PID/handle reuse sem matar outro processo.
Assertions: A-HUG-009-QS02. Famílias: T-HUG-009-Q.
-
HUG-009-QS03 — obrigatório: P07/P11: deadline monotônico + alvo cleanup 500 ms no fixture; máximo 4 collectors/installation, 1 MiB por stream, 128 MiB RSS por collector e alvo agregado 1 GiB.
Assertions: A-HUG-009-QS03. Famílias: T-HUG-009-Q.
Definition of Done — DoD
-
HUG-009-DOD01 — obrigatório: Fechar HUG-009 somente quando a implementação/artefato de 'Supervisor de execução não interativa e deadline completo' satisfaz suas assertions e observáveis obrigatórios; uma suite verde sem resultado individual não fecha os axiomas.
Assertions: A-HUG-009-DOD01. Famílias: T-HUG-009-Q.
-
HUG-009-DOD02 — obrigatório: Todos os outputs crates/hugit-cli/src/checks/run.rs, crates/hugit-cli/src/process/supervisor.rs, crates/hugit-cli/tests/process_supervision.rs entregues nos write sets resolvidos; erros de P00, P07 e mudanças de interface revisados pelo owner do contrato.
Assertions: A-HUG-009-DOD02. Famílias: T-HUG-009-Q.
-
HUG-009-DOD03 — obrigatório: Recovery deste pacote ensaiado: Desabilitar observe/check launch no perfil afetado; permitir leitura de evidência retida. Não reiniciar comando automaticamente após timeout, pois efeitos externos podem já ter ocorrido.
Assertions: A-HUG-009-DOD03. Famílias: T-HUG-009-R.
-
HUG-009-DOD04 — obrigatório: Qualificar HUG-009 sobre o sujeito A identificado por digest; anexar em B assertions verificadas e aprovação de revisor diferente do autor. Resultados não alteram A; revalidar no candidato final as obrigações atingidas. Nenhum axioma obrigatório dispensado.
Assertions: A-HUG-009-DOD04. Famílias: T-HUG-009-Q.
Invariants
-
HUG-009-INV01 — obrigatório: Conclusão do child não implica EOF dos streams.
Assertions: A-HUG-009-INV01. Famílias: T-HUG-009-N.
-
HUG-009-INV02 — obrigatório: Recorder não mata o processo pai.
Assertions: A-HUG-009-INV02. Famílias: T-HUG-009-N.
-
HUG-009-INV03 — obrigatório: Execução interrompida não se transforma em resultado cacheável.
Assertions: A-HUG-009-INV03. Famílias: T-HUG-009-N.
Verificação e evidências
T-AR-08-C: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-009-N: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-009-P: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-009-Q: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-009-R: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
Catálogo detalhado, preparo, predicados e artifacts: contrato completo. Evidência por sujeito A, assertion, célula e tentativa; pacote B destacado, promoção C separada. Não usar Closes em PR intermediário.
Budget e recovery
P07/P11: deadline monotônico + alvo cleanup 500 ms no fixture; máximo 4 collectors/installation, 1 MiB por stream, 128 MiB RSS por collector e alvo agregado 1 GiB.
Rollback/recovery específico: Desabilitar observe/check launch no perfil afetado; permitir leitura de evidência retida. Não reiniciar comando automaticamente após timeout, pois efeitos externos podem já ter ocorrido.
Política de fechamento
Todos os cinco axiomas e suas assertions devem estar demonstrados no candidato integrado, com recovery ensaiado e revisão distinta da autoria. Suite verde ou issue fechada não substitui a qualificação. HUG-056 só fecha após publicação e pós-verificação.
HUG-009 — contrato de execução
Plano: v3.0 · fase: A · lane: C · prioridade: first_slice.
Estado inicial: backlog; nenhuma implementação ou qualificação declarada. A aprovação/merge do PR de planejamento e as pré-condições do WP precedem execução. Fechar por evidência, não por merge automático.
Contrato imutável: work package completo. Fonte normativa.
Identidade do plano:
ddcc59c538f269881c05b98017c11c79dae67a7339257facc22a2b1d2a9a7889. Commit da especificação:0b7f629dd0259515608517bcd692e5ec4d2b6ee3.Hugit é 100% standalone. Intent = goal capturado por hook; nenhuma dependência de CoreLink, conta, runner remoto ou registro voluntário pelo LLM.
Acompanhamento: #379.
Dependências e admissão
#382 (
HUG-003)Protocolos: P00@3.0 ·
5d737267087e24bbcca9548488c719f4cca46fa3435a0ccf31b7b98696fde5cc, P07@3.0 ·995564c0e30b81dbf5523fc72b8960a812edabcf576a85d551cd17fa86e49694Outputs e coordenação
crates/hugit-cli/src/checks/run.rscrates/hugit-cli/src/process/supervisor.rscrates/hugit-cli/tests/process_supervision.rsCaminhos propostos: HUG-001 resolve existentes/novos contra o checkout. Cargo.lock/Cargo.toml/lib.rs/main.rs/registries: solicitar patch ao integrador; não editar fora da lease de arquivo.
Unidades verificáveis
Completeness criteria
HUG-009-CC01 — obrigatório: Supervisor, pumps e status formam um ciclo de vida único.
Assertions:
A-HUG-009-CC01. Famílias:T-HUG-009-P.HUG-009-CC02 — obrigatório: Sinais/timeout/cancelamento têm ownership e representação por plataforma.
Assertions:
A-HUG-009-CC02. Famílias:T-HUG-009-P.HUG-009-CC03 — obrigatório: Modo interativo/PTY não é anunciado pelo contrato pipe.
Assertions:
A-HUG-009-CC03. Famílias:T-HUG-009-P.Success criteria
HUG-009-SC01 — obrigatório: sleep 3 & exit 0 com deadline 1 s termina em ≤1,5 s no fixture local qualificado, informa timeout/partial e mantém harness vivo; falha de setup não lança comando.
Assertions:
A-HUG-009-SC01. Famílias:T-HUG-009-P.HUG-009-SC02 — obrigatório: Filho encerra antes de neto soltar pipe, SIGINT durante flood e job assignment falho não causam wait ilimitado nem finalização falsamente complete.
Assertions:
A-HUG-009-SC02. Famílias:T-HUG-009-N.Quality standards
HUG-009-QS01 — obrigatório: Tolerância de limpeza 500 ms é alvo de teste, não alegação já medida em todos os hosts.
Assertions:
A-HUG-009-QS01. Famílias:T-HUG-009-Q.HUG-009-QS02 — obrigatório: Testar cancelamento repetido e PID/handle reuse sem matar outro processo.
Assertions:
A-HUG-009-QS02. Famílias:T-HUG-009-Q.HUG-009-QS03 — obrigatório: P07/P11: deadline monotônico + alvo cleanup 500 ms no fixture; máximo 4 collectors/installation, 1 MiB por stream, 128 MiB RSS por collector e alvo agregado 1 GiB.
Assertions:
A-HUG-009-QS03. Famílias:T-HUG-009-Q.Definition of Done — DoD
HUG-009-DOD01 — obrigatório: Fechar HUG-009 somente quando a implementação/artefato de 'Supervisor de execução não interativa e deadline completo' satisfaz suas assertions e observáveis obrigatórios; uma suite verde sem resultado individual não fecha os axiomas.
Assertions:
A-HUG-009-DOD01. Famílias:T-HUG-009-Q.HUG-009-DOD02 — obrigatório: Todos os outputs crates/hugit-cli/src/checks/run.rs, crates/hugit-cli/src/process/supervisor.rs, crates/hugit-cli/tests/process_supervision.rs entregues nos write sets resolvidos; erros de P00, P07 e mudanças de interface revisados pelo owner do contrato.
Assertions:
A-HUG-009-DOD02. Famílias:T-HUG-009-Q.HUG-009-DOD03 — obrigatório: Recovery deste pacote ensaiado: Desabilitar observe/check launch no perfil afetado; permitir leitura de evidência retida. Não reiniciar comando automaticamente após timeout, pois efeitos externos podem já ter ocorrido.
Assertions:
A-HUG-009-DOD03. Famílias:T-HUG-009-R.HUG-009-DOD04 — obrigatório: Qualificar HUG-009 sobre o sujeito A identificado por digest; anexar em B assertions verificadas e aprovação de revisor diferente do autor. Resultados não alteram A; revalidar no candidato final as obrigações atingidas. Nenhum axioma obrigatório dispensado.
Assertions:
A-HUG-009-DOD04. Famílias:T-HUG-009-Q.Invariants
HUG-009-INV01 — obrigatório: Conclusão do child não implica EOF dos streams.
Assertions:
A-HUG-009-INV01. Famílias:T-HUG-009-N.HUG-009-INV02 — obrigatório: Recorder não mata o processo pai.
Assertions:
A-HUG-009-INV02. Famílias:T-HUG-009-N.HUG-009-INV03 — obrigatório: Execução interrompida não se transforma em resultado cacheável.
Assertions:
A-HUG-009-INV03. Famílias:T-HUG-009-N.Verificação e evidências
T-AR-08-C: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-009-N: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-009-P: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-009-Q: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-009-R: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.Catálogo detalhado, preparo, predicados e artifacts: contrato completo. Evidência por sujeito A, assertion, célula e tentativa; pacote B destacado, promoção C separada. Não usar
Closesem PR intermediário.Budget e recovery
P07/P11: deadline monotônico + alvo cleanup 500 ms no fixture; máximo 4 collectors/installation, 1 MiB por stream, 128 MiB RSS por collector e alvo agregado 1 GiB.
Rollback/recovery específico: Desabilitar observe/check launch no perfil afetado; permitir leitura de evidência retida. Não reiniciar comando automaticamente após timeout, pois efeitos externos podem já ter ocorrido.
Política de fechamento
Todos os cinco axiomas e suas assertions devem estar demonstrados no candidato integrado, com recovery ensaiado e revisão distinta da autoria. Suite verde ou issue fechada não substitui a qualificação. HUG-056 só fecha após publicação e pós-verificação.