HUG-050 — contrato de execução
Plano: v3.0 · fase: F · lane: H · prioridade: full_scope.
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
#384 (HUG-005), #386 (HUG-007), #397 (HUG-018), #403 (HUG-023), #404 (HUG-024), #405 (HUG-025), #408 (HUG-028), #417 (HUG-037), #429 (HUG-049)
- Todos os predecessores possuem evidência integrada e interfaces versionadas compatíveis.
- Owner H aceita write-set exato e budget B-RELEASE; 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.
- Freeze runtime de HUG-059 já integrado é obrigatório.
Protocolos: P00@3.0 · 5d737267087e24bbcca9548488c719f4cca46fa3435a0ccf31b7b98696fde5cc, P01@3.0 · c1c8435afafdab3706f1a06f7462a6e43ce880c224e1c62dadda8f985b0e16a3, P05@3.0 · 9683d0acafd218be2078fba9ca22087a56ca933152d1ba62b0d930778f367564, P12@3.0 · 3f6367a500989e2a102abda97032a8ce25c1bd0edcbe660dd77a96fe4bb37a64
Outputs e coordenação
crates/hugit-cli/src/setup.rs
crates/hugit-cli/src/attach.rs
crates/hugit-cli/src/init/mod.rs
scripts/install-smoke/update_cycle.py
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-050.S1 — Preview hash-bound de hook/config; instalação só substitui bytes possuídos esperados, com restore manifest.
- HUG-050.S2 — Atualização compatível antes de migração; não iniciar corte com sessões antigas não qualificadas; desinstalação preserva dados salvo pedido explícito.
- HUG-050.S3 — Diagnóstico mostra cobertura por adapter/OS, runtime version e limite de captura, sem exigir modelo para ativar registro.
Completeness criteria
-
HUG-050-CC01 — obrigatório: Install/attach/detach/update têm journal e hashes de ownership.
Assertions: A-HUG-050-CC01. Famílias: T-HUG-050-P.
-
HUG-050-CC02 — obrigatório: Tutorial funciona sem Rust/Node/Docker para core binário.
Assertions: A-HUG-050-CC02. Famílias: T-HUG-050-P.
-
HUG-050-CC03 — obrigatório: Rollback publicado distingue versão de binário e dados.
Assertions: A-HUG-050-CC03. Famílias: T-HUG-050-P.
Success criteria
-
HUG-050-SC01 — obrigatório: Instalar uma vez→primeira evidência→upgrade→restore→uninstall preserva hook estrangeiro, config e dados; update interrompido retoma conforme journal.
Assertions: A-HUG-050-SC01. Famílias: T-HUG-050-P.
-
HUG-050-SC02 — obrigatório: Hook estrangeiro muda entre preview/apply, antigo processo vivo e downgrade pós-write v2 causam recusa segura, não overwrite/reversão cega.
Assertions: A-HUG-050-SC02. Famílias: T-HUG-050-N.
Quality standards
-
HUG-050-QS01 — obrigatório: Nenhum privilégio admin padrão para modo user-local.
Assertions: A-HUG-050-QS01. Famílias: T-HUG-050-Q.
-
HUG-050-QS02 — obrigatório: Binário/perfil efetivo aparecem no health antes da primeira captura.
Assertions: A-HUG-050-QS02. Famílias: T-HUG-050-Q.
-
HUG-050-QS03 — obrigatório: Somente assets por manifesto/digest; publicação atômica do conjunto qualificado; sem rebuild depois de testar; limites e origens verificados.
Assertions: A-HUG-050-QS03. Famílias: T-HUG-050-Q.
Definition of Done — DoD
-
HUG-050-DOD01 — obrigatório: Fechar HUG-050 somente quando a implementação/artefato de 'Instalação e atualização com ownership e corte seguro' satisfaz suas assertions e observáveis obrigatórios; uma suite verde sem resultado individual não fecha os axiomas.
Assertions: A-HUG-050-DOD01. Famílias: T-HUG-050-Q.
-
HUG-050-DOD02 — obrigatório: Todos os outputs crates/hugit-cli/src/setup.rs, crates/hugit-cli/src/attach.rs, crates/hugit-cli/src/init/mod.rs, scripts/install-smoke/update_cycle.py entregues nos write sets resolvidos; erros de P00, P01, P05, P12 e mudanças de interface revisados pelo owner do contrato.
Assertions: A-HUG-050-DOD02. Famílias: T-HUG-050-Q.
-
HUG-050-DOD03 — obrigatório: Recovery deste pacote ensaiado: Antes de ativar: restaurar somente bytes ainda pertencentes ao instalador; depois de v2 writes: manter binário/leitor compatível e efetuar forward fix. Nunca repor config estrangeira stale por backup não conferido.
Assertions: A-HUG-050-DOD03. Famílias: T-HUG-050-R.
-
HUG-050-DOD04 — obrigatório: Qualificar HUG-050 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-050-DOD04. Famílias: T-HUG-050-Q.
Invariants
-
HUG-050-INV01 — obrigatório: Uninstall não destrói evidência implicitamente.
Assertions: A-HUG-050-INV01. Famílias: T-HUG-050-N.
-
HUG-050-INV02 — obrigatório: Config alheia não é sobrescrita.
Assertions: A-HUG-050-INV02. Famílias: T-HUG-050-N.
-
HUG-050-INV03 — obrigatório: Atualização não contorna protocolo de migração.
Assertions: A-HUG-050-INV03. Famílias: T-HUG-050-N.
Verificação e evidências
T-HUG-050-N: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-050-P: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-050-Q: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-050-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
Somente assets por manifesto/digest; publicação atômica do conjunto qualificado; sem rebuild depois de testar; limites e origens verificados.
Rollback/recovery específico: Antes de ativar: restaurar somente bytes ainda pertencentes ao instalador; depois de v2 writes: manter binário/leitor compatível e efetuar forward fix. Nunca repor config estrangeira stale por backup não conferido.
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-050 — contrato de execução
Plano: v3.0 · fase: F · lane: H · prioridade: full_scope.
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
#384 (
HUG-005), #386 (HUG-007), #397 (HUG-018), #403 (HUG-023), #404 (HUG-024), #405 (HUG-025), #408 (HUG-028), #417 (HUG-037), #429 (HUG-049)Protocolos: P00@3.0 ·
5d737267087e24bbcca9548488c719f4cca46fa3435a0ccf31b7b98696fde5cc, P01@3.0 ·c1c8435afafdab3706f1a06f7462a6e43ce880c224e1c62dadda8f985b0e16a3, P05@3.0 ·9683d0acafd218be2078fba9ca22087a56ca933152d1ba62b0d930778f367564, P12@3.0 ·3f6367a500989e2a102abda97032a8ce25c1bd0edcbe660dd77a96fe4bb37a64Outputs e coordenação
crates/hugit-cli/src/setup.rscrates/hugit-cli/src/attach.rscrates/hugit-cli/src/init/mod.rsscripts/install-smoke/update_cycle.pyCaminhos 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-050-CC01 — obrigatório: Install/attach/detach/update têm journal e hashes de ownership.
Assertions:
A-HUG-050-CC01. Famílias:T-HUG-050-P.HUG-050-CC02 — obrigatório: Tutorial funciona sem Rust/Node/Docker para core binário.
Assertions:
A-HUG-050-CC02. Famílias:T-HUG-050-P.HUG-050-CC03 — obrigatório: Rollback publicado distingue versão de binário e dados.
Assertions:
A-HUG-050-CC03. Famílias:T-HUG-050-P.Success criteria
HUG-050-SC01 — obrigatório: Instalar uma vez→primeira evidência→upgrade→restore→uninstall preserva hook estrangeiro, config e dados; update interrompido retoma conforme journal.
Assertions:
A-HUG-050-SC01. Famílias:T-HUG-050-P.HUG-050-SC02 — obrigatório: Hook estrangeiro muda entre preview/apply, antigo processo vivo e downgrade pós-write v2 causam recusa segura, não overwrite/reversão cega.
Assertions:
A-HUG-050-SC02. Famílias:T-HUG-050-N.Quality standards
HUG-050-QS01 — obrigatório: Nenhum privilégio admin padrão para modo user-local.
Assertions:
A-HUG-050-QS01. Famílias:T-HUG-050-Q.HUG-050-QS02 — obrigatório: Binário/perfil efetivo aparecem no health antes da primeira captura.
Assertions:
A-HUG-050-QS02. Famílias:T-HUG-050-Q.HUG-050-QS03 — obrigatório: Somente assets por manifesto/digest; publicação atômica do conjunto qualificado; sem rebuild depois de testar; limites e origens verificados.
Assertions:
A-HUG-050-QS03. Famílias:T-HUG-050-Q.Definition of Done — DoD
HUG-050-DOD01 — obrigatório: Fechar HUG-050 somente quando a implementação/artefato de 'Instalação e atualização com ownership e corte seguro' satisfaz suas assertions e observáveis obrigatórios; uma suite verde sem resultado individual não fecha os axiomas.
Assertions:
A-HUG-050-DOD01. Famílias:T-HUG-050-Q.HUG-050-DOD02 — obrigatório: Todos os outputs crates/hugit-cli/src/setup.rs, crates/hugit-cli/src/attach.rs, crates/hugit-cli/src/init/mod.rs, scripts/install-smoke/update_cycle.py entregues nos write sets resolvidos; erros de P00, P01, P05, P12 e mudanças de interface revisados pelo owner do contrato.
Assertions:
A-HUG-050-DOD02. Famílias:T-HUG-050-Q.HUG-050-DOD03 — obrigatório: Recovery deste pacote ensaiado: Antes de ativar: restaurar somente bytes ainda pertencentes ao instalador; depois de v2 writes: manter binário/leitor compatível e efetuar forward fix. Nunca repor config estrangeira stale por backup não conferido.
Assertions:
A-HUG-050-DOD03. Famílias:T-HUG-050-R.HUG-050-DOD04 — obrigatório: Qualificar HUG-050 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-050-DOD04. Famílias:T-HUG-050-Q.Invariants
HUG-050-INV01 — obrigatório: Uninstall não destrói evidência implicitamente.
Assertions:
A-HUG-050-INV01. Famílias:T-HUG-050-N.HUG-050-INV02 — obrigatório: Config alheia não é sobrescrita.
Assertions:
A-HUG-050-INV02. Famílias:T-HUG-050-N.HUG-050-INV03 — obrigatório: Atualização não contorna protocolo de migração.
Assertions:
A-HUG-050-INV03. Famílias:T-HUG-050-N.Verificação e evidências
T-HUG-050-N: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-050-P: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-050-Q: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-050-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
Somente assets por manifesto/digest; publicação atômica do conjunto qualificado; sem rebuild depois de testar; limites e origens verificados.
Rollback/recovery específico: Antes de ativar: restaurar somente bytes ainda pertencentes ao instalador; depois de v2 writes: manter binário/leitor compatível e efetuar forward fix. Nunca repor config estrangeira stale por backup não conferido.
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.