Skip to content

feat: manifest do stamp do harness + imp fix — restauração com plano e consentimento - #23

Merged
elberrd merged 1 commit into
mainfrom
feat/harness-manifest-imp-fix
Aug 16, 2026
Merged

feat: manifest do stamp do harness + imp fix — restauração com plano e consentimento#23
elberrd merged 1 commit into
mainfrom
feat/harness-manifest-imp-fix

Conversation

@elberrd

@elberrd elberrd commented Aug 16, 2026

Copy link
Copy Markdown
Owner

O que entra

Fecha o ciclo doctor→fix desenhado na avaliação (normas de cargo fix, ng update, expo install e copier):

1. imp/.harness-manifest.json (o pré-requisito)

O setupHarness agora grava, logo após o merge, o sha1 de cada arquivo que o clone adaptado trouxe (symlinks registrados como link:<alvo>). Arquivos que o merge manteve (a versão do projeto venceu) registram o sha do harness de propósito: leem como "difere do stamp", que é a verdade — e impedem o fix de sobrescrevê-los. Best-effort: falha aqui nunca aborta a instalação. É o análogo exato do imp/.runtime-manifest.json, agora para o harness — e é o mesmo manifesto que destrava o uninstall no futuro.

2. imp fix — remediação restore-only

  • Plano impresso + um y/N antes de aplicar; --yes pula; sem TTY imprime o plano e sai 1 (CI-safe).
  • --dry-run / --json param no plano, sempre.
  • Fixes de projeto exigem árvore git limpa (--allow-dirty é o escape nomeado); --commit = um commit por fix (estilo ng update --create-commits).
  • Nunca sobrescreve arquivo existente com conteúdo diferente — esses viram notas (atualizar continua no --update-runtime; adotar a versão do harness continua no --agent-files replace).
  • Idempotente: termina re-planejando; exit 0 só com zero pendências.

Fixers v1: -y nos MCPs npx do .mcp.json; skills do lock ausentes (npx skills experimental_install); poda de cópias .pi/skills; arquivos de runtime registrados no manifest e sumidos do disco (restaura do template embarcado — nunca adiciona arquivo fora do manifest, para não misturar versões de runtime); arquivos de harness sumidos (re-download da API comunitária, copia só o que falta, symlinks recriados pelo alvo registrado); bloco do AGENTS.md por marker; pacotes de extensão do Pi ausentes (tier máquina, sem gate de git).

3. doctor integrado

Nova checagem do stamp do harness (faltando → warn apontando imp fix; modificado → info; intacto → ok; instalação antiga sem manifest → dica de como gravar um) e rodapé apontando o imp fix quando há achados.

Checagens

  • npm test: 746 pass (14 novos: manifest collect/roundtrip/classify + plano/apply/convergência do fix)
  • npm run lint: limpo
  • Smoke E2E real: plano em non-TTY sai 1 sem aplicar → --yes aplica → re-run "Nothing to fix"; gate de árvore suja recusa com o escape impresso

🤖 Generated with Claude Code

… consentimento e trilho no git

Duas entregas que fecham o ciclo doctor→fix:

1) imp/.harness-manifest.json — o setupHarness grava sha1 por arquivo do
   clone adaptado (symlinks como link:<alvo>); arquivos que o merge manteve
   registram o sha do harness de propósito ("difere do stamp" é a verdade).
   Best-effort: falha no manifest nunca aborta a instalação. Com ele, a
   classificação faltando/intocado/modificado vale para o harness — o mesmo
   contrato que o runtime-manifest já dava ao imp/ + .pi/.

2) imp fix — remediação restore-only com as normas de mercado (cargo fix,
   ng update, expo install, copier): plano impresso + um y/N antes de
   aplicar (--yes pula; sem TTY imprime o plano e sai 1 — CI-safe);
   --dry-run/--json nunca mutam; fixes de projeto exigem árvore git limpa
   (--allow-dirty é o escape nomeado; --commit faz um commit por fix);
   idempotente com re-plano no final. Fixers: -y nos MCPs npx, skills do
   lock (npx skills experimental_install), poda de cópias .pi/skills,
   arquivos de runtime do manifest sumidos do disco (restaura do template
   embarcado — nunca adiciona arquivo fora do manifest, para não misturar
   versões), arquivos de harness sumidos (re-download da API, copia SÓ o
   que falta) e o bloco do AGENTS.md por marker. Arquivo existente com
   conteúdo diferente NUNCA é sobrescrito — vira nota.

doctor: nova checagem do stamp do harness (faltando → warn com `imp fix`;
modificado → info) + rodapé apontando o imp fix quando há achados.
Registrado em imp help, README e DOCS §14.3.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@elberrd
elberrd merged commit 6993849 into main Aug 16, 2026
@elberrd
elberrd deleted the feat/harness-manifest-imp-fix branch August 16, 2026 01:14
elberrd added a commit that referenced this pull request Aug 16, 2026
…-y (#24)

Publica as PRs #21/#22/#23: o fix do "Connection closed" do Playwright no
Windows (npx -y no registro do MCP), o checkup somente-leitura `imp doctor`
(assinaturas, CLIs, Pi e projeto, com --json) e o `imp fix` restore-only
(plano + consentimento, gate de git, manifest do stamp do harness gravado
pelo instalador).

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant