HUG-028 — contrato de execução
Plano: v3.0 · fase: C · lane: E · 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
#398 (HUG-019), #399 (HUG-020), #407 (HUG-027)
- Todos os predecessores possuem evidência integrada e interfaces versionadas compatíveis.
- Owner E aceita write-set exato e budget B-INGEST; 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, P04@3.0 · e968bb6e71fbb085c3a94f2a706f1573b437f9355dfec1325c7c04c17de43bf9, P08@3.0 · 0d6a0d18c9b72c52ff3eef81f0b156b20e753a501bbd95027a4da8ba2b0c46e2, P10@3.0 · 47fed390c826e26c6d3201b71d59cb011850b8d355e39bd8de7b38b2998dc197
Outputs e coordenação
crates/hugit-cli/src/dock/resolve.rs
crates/hugit-cli/src/capture/capability.rs
crates/hugit-cli/src/why/resolver.rs
crates/hugit-cli/tests/git_identity_v2.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-028.S1 — Usar generation ID físico de worktree com aliases de path/branch; mesma pasta recriada não reabre instância anterior.
- HUG-028.S2 — Preservar fingerprints tipados internamente e distinguir pares indistinguíveis em transações concorrentes sem inventar identidade de transação. Replay conserva origin_namespace/source_event_id; collector restart só cria delivery/collector novos. Crash commit→watermark e reset de origem têm fixtures P04.
- HUG-028.S3 — Precisão line/symbol vem de Git owning commit e fonte; rewrite e detached HEAD não projetam atribuição baseada só no último evento.
Completeness criteria
-
HUG-028-CC01 — obrigatório: Commit/checkout/merge/rewrite/ref transaction/push-attempt cobertos.
Assertions: A-HUG-028-CC01. Famílias: T-HUG-028-P.
-
HUG-028-CC02 — obrigatório: Why distingue unassigned, range mismatch e ausência de evidência.
Assertions: A-HUG-028-CC02. Famílias: T-HUG-028-P.
-
HUG-028-CC03 — obrigatório: Root comum e identidade de instalação respeitam import/restore.
Assertions: A-HUG-028-CC03. Famílias: T-HUG-028-P.
Success criteria
-
HUG-028-SC01 — obrigatório: Fixture quatro worktrees captura 12 commits exatos e mantém fingerprints distintos; recriar path gera generation nova sem perder história antiga.
Assertions: A-HUG-028-SC01. Famílias: T-HUG-028-P.
-
HUG-028-SC02 — obrigatório: Mesmo fingerprint legítimo simultâneo fica ambiguous; REDACTED não junta transações; restauração não instala markers de worktrees da máquina anterior.
Assertions: A-HUG-028-SC02. Famílias: T-HUG-028-N.
Quality standards
-
HUG-028-QS01 — obrigatório: Não chamar tentativa de push de aceitação remota.
Assertions: A-HUG-028-QS01. Famílias: T-HUG-028-Q.
-
HUG-028-QS02 — obrigatório: Todas as paths reaproveitadas são revalidadas por identidade, não apenas texto.
Assertions: A-HUG-028-QS02. Famílias: T-HUG-028-Q.
-
HUG-028-QS03 — obrigatório: P03/P11: receipt ≤64 KiB; pendentes ≤100k ou 64 MiB; três clocks de readiness. Liveness saudável testada; após último crash recovery na próxima interação.
Assertions: A-HUG-028-QS03. Famílias: T-HUG-028-Q.
Definition of Done — DoD
-
HUG-028-DOD01 — obrigatório: Fechar HUG-028 somente quando a implementação/artefato de 'Git/worktrees, gerações e consultas precisas' satisfaz suas assertions e observáveis obrigatórios; uma suite verde sem resultado individual não fecha os axiomas.
Assertions: A-HUG-028-DOD01. Famílias: T-HUG-028-Q.
-
HUG-028-DOD02 — obrigatório: Todos os outputs crates/hugit-cli/src/dock/resolve.rs, crates/hugit-cli/src/capture/capability.rs, crates/hugit-cli/src/why/resolver.rs, crates/hugit-cli/tests/git_identity_v2.rs entregues nos write sets resolvidos; erros de P00, P04, P08, P10 e mudanças de interface revisados pelo owner do contrato.
Assertions: A-HUG-028-DOD02. Famílias: T-HUG-028-Q.
-
HUG-028-DOD03 — obrigatório: Recovery deste pacote ensaiado: Desativar apenas projeção/adapter de evento defeituoso, guardar recibos brutos permitidos e refazer derivados. Não reescrever refs Git para corrigir um erro de atribuição do ledger.
Assertions: A-HUG-028-DOD03. Famílias: T-HUG-028-R.
-
HUG-028-DOD04 — obrigatório: Qualificar HUG-028 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-028-DOD04. Famílias: T-HUG-028-Q.
Invariants
-
HUG-028-INV01 — obrigatório: Branch/path são aliases, não identidade eterna.
Assertions: A-HUG-028-INV01. Famílias: T-HUG-028-N.
-
HUG-028-INV02 — obrigatório: Dois fatos indistinguíveis não são pareados por chute.
Assertions: A-HUG-028-INV02. Famílias: T-HUG-028-N.
-
HUG-028-INV03 — obrigatório: Derivação de nome não é captura de goal.
Assertions: A-HUG-028-INV03. Famílias: T-HUG-028-N.
Verificação e evidências
T-HUG-028-N: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-028-P: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-028-Q: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.
T-HUG-028-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
P03/P11: receipt ≤64 KiB; pendentes ≤100k ou 64 MiB; três clocks de readiness. Liveness saudável testada; após último crash recovery na próxima interação.
Rollback/recovery específico: Desativar apenas projeção/adapter de evento defeituoso, guardar recibos brutos permitidos e refazer derivados. Não reescrever refs Git para corrigir um erro de atribuição do ledger.
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-028 — contrato de execução
Plano: v3.0 · fase: C · lane: E · 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
#398 (
HUG-019), #399 (HUG-020), #407 (HUG-027)Protocolos: P00@3.0 ·
5d737267087e24bbcca9548488c719f4cca46fa3435a0ccf31b7b98696fde5cc, P04@3.0 ·e968bb6e71fbb085c3a94f2a706f1573b437f9355dfec1325c7c04c17de43bf9, P08@3.0 ·0d6a0d18c9b72c52ff3eef81f0b156b20e753a501bbd95027a4da8ba2b0c46e2, P10@3.0 ·47fed390c826e26c6d3201b71d59cb011850b8d355e39bd8de7b38b2998dc197Outputs e coordenação
crates/hugit-cli/src/dock/resolve.rscrates/hugit-cli/src/capture/capability.rscrates/hugit-cli/src/why/resolver.rscrates/hugit-cli/tests/git_identity_v2.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-028-CC01 — obrigatório: Commit/checkout/merge/rewrite/ref transaction/push-attempt cobertos.
Assertions:
A-HUG-028-CC01. Famílias:T-HUG-028-P.HUG-028-CC02 — obrigatório: Why distingue unassigned, range mismatch e ausência de evidência.
Assertions:
A-HUG-028-CC02. Famílias:T-HUG-028-P.HUG-028-CC03 — obrigatório: Root comum e identidade de instalação respeitam import/restore.
Assertions:
A-HUG-028-CC03. Famílias:T-HUG-028-P.Success criteria
HUG-028-SC01 — obrigatório: Fixture quatro worktrees captura 12 commits exatos e mantém fingerprints distintos; recriar path gera generation nova sem perder história antiga.
Assertions:
A-HUG-028-SC01. Famílias:T-HUG-028-P.HUG-028-SC02 — obrigatório: Mesmo fingerprint legítimo simultâneo fica ambiguous; REDACTED não junta transações; restauração não instala markers de worktrees da máquina anterior.
Assertions:
A-HUG-028-SC02. Famílias:T-HUG-028-N.Quality standards
HUG-028-QS01 — obrigatório: Não chamar tentativa de push de aceitação remota.
Assertions:
A-HUG-028-QS01. Famílias:T-HUG-028-Q.HUG-028-QS02 — obrigatório: Todas as paths reaproveitadas são revalidadas por identidade, não apenas texto.
Assertions:
A-HUG-028-QS02. Famílias:T-HUG-028-Q.HUG-028-QS03 — obrigatório: P03/P11: receipt ≤64 KiB; pendentes ≤100k ou 64 MiB; três clocks de readiness. Liveness saudável testada; após último crash recovery na próxima interação.
Assertions:
A-HUG-028-QS03. Famílias:T-HUG-028-Q.Definition of Done — DoD
HUG-028-DOD01 — obrigatório: Fechar HUG-028 somente quando a implementação/artefato de 'Git/worktrees, gerações e consultas precisas' satisfaz suas assertions e observáveis obrigatórios; uma suite verde sem resultado individual não fecha os axiomas.
Assertions:
A-HUG-028-DOD01. Famílias:T-HUG-028-Q.HUG-028-DOD02 — obrigatório: Todos os outputs crates/hugit-cli/src/dock/resolve.rs, crates/hugit-cli/src/capture/capability.rs, crates/hugit-cli/src/why/resolver.rs, crates/hugit-cli/tests/git_identity_v2.rs entregues nos write sets resolvidos; erros de P00, P04, P08, P10 e mudanças de interface revisados pelo owner do contrato.
Assertions:
A-HUG-028-DOD02. Famílias:T-HUG-028-Q.HUG-028-DOD03 — obrigatório: Recovery deste pacote ensaiado: Desativar apenas projeção/adapter de evento defeituoso, guardar recibos brutos permitidos e refazer derivados. Não reescrever refs Git para corrigir um erro de atribuição do ledger.
Assertions:
A-HUG-028-DOD03. Famílias:T-HUG-028-R.HUG-028-DOD04 — obrigatório: Qualificar HUG-028 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-028-DOD04. Famílias:T-HUG-028-Q.Invariants
HUG-028-INV01 — obrigatório: Branch/path são aliases, não identidade eterna.
Assertions:
A-HUG-028-INV01. Famílias:T-HUG-028-N.HUG-028-INV02 — obrigatório: Dois fatos indistinguíveis não são pareados por chute.
Assertions:
A-HUG-028-INV02. Famílias:T-HUG-028-N.HUG-028-INV03 — obrigatório: Derivação de nome não é captura de goal.
Assertions:
A-HUG-028-INV03. Famílias:T-HUG-028-N.Verificação e evidências
T-HUG-028-N: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-028-P: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-028-Q: linux-x64-ext4, macos-arm64-apfs, macos-intel-apfs, windows-x64-ntfs; etapa pre_promotion.T-HUG-028-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
P03/P11: receipt ≤64 KiB; pendentes ≤100k ou 64 MiB; três clocks de readiness. Liveness saudável testada; após último crash recovery na próxima interação.
Rollback/recovery específico: Desativar apenas projeção/adapter de evento defeituoso, guardar recibos brutos permitidos e refazer derivados. Não reescrever refs Git para corrigir um erro de atribuição do ledger.
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.