Lição 20 · Curso de Fusão · Parte 4 · Método e labs · O método de reverse-engineering
Alembic × Hermes · O Curso de Fusão · Parte 4 — Método e labs

O método de reverse-engineering

Este curso inteiro se apoia em dois mapas — alembic-complete-map.md e hermes-complete-map.md — e numa matriz de fusão derivada deles. Nada disso é confiável a menos que o método que os construiu seja. Esta lição ensina esse método: tiers de profundidade honestos, Proof-Gate em tudo, builder ≠ validator e "o código vence". É a disciplina por trás da fusão — e generaliza para qualquer código que você um dia precise entender de fora.

Leia primeiro (fonte primária)
docs/alembic-complete-map.md + docs/alembic-hermes-fusion-matrix.md (lidos verbatim)

Esta lição destila a disciplina declarada dos próprios documentos: o cabeçalho do mapa ("the code wins … divergence noted"), a nota de drift do HANDOFF.md (11→19 pacotes, 284→415 testes), os marcadores [uncertain] e a nota de método da matriz ("Nothing here is decided from memory; every 'Alembic has/lacks X' cites map evidence"). Cada afirmação aqui é citada de arquivo real — nada é inventado.

Leia a versão simples, ou abra a camada técnica em qualquer seção.
Ao fim desta lição você vai saber
  • Por que, quando o mapa e o HANDOFF.md discordam, o código vence — e a divergência é anotada, não escondida.
  • Como declarar tiers de profundidade honestos (deep-dive · catálogo · fronteira) em vez de fingir que leu tudo no mesmo nível.
  • O que significa Proof-Gate em tudo: todo claim cita um file:line que abre, um hit-count que você reproduz, ou um teste que existe.
  • Por que builder ≠ validator é o análogo documental do Verifier read-only do motor.
  • Por que essas quatro disciplinas generalizam para qualquer base de código desconhecida.
Suposições tolas (o que presumimos de você — bem pouco)
  • Você já abriu um repositório que não conhecia e tentou entender o que ele faz.
  • Você sabe que um README descreve a intenção e que código pode divergir dela. Não precisa decorar o Alembic — usamos ele só como exemplo concreto.
  • Você não precisa saber o que é "Proof-Gate", "Verifier" ou "hit-count". Construímos cada termo do zero aqui.

Um mapa de engenharia reversa só vale se for confiável, não só lido. A diferença entre os dois é inteiramente o método. Vamos ver a imagem das quatro disciplinas e depois destrinchar cada uma contra os documentos reais.

Infográfico em formato de bússola de quatro pontas. Cada ponta é uma disciplina do método de reverse-engineering, com cor e número próprios: ① o código vence (terracota), ② profundidade honesta (ardósia), ③ Proof-Gate em tudo (oliva), ④ builder ≠ validator (vermelho-rust). Um anel ao redor diz 'um mapa confiável, não um ensaio', e quatro cartões-satélite dão um exemplo real de cada disciplina.

As quatro disciplinas como uma bússola: cada ponta é uma regra que, junta, faz um mapa ser confiável — e não apenas lido. Os exemplos nos satélites são todos fatos verificados do repositório.

1

A grande ideia


Fazer engenharia reversa de um sistema é como ser um cartógrafo entrando num território novo. O mapa que você desenha só serve se quem confiar nele não cair num penhasco que você "supôs" que não existia. As quatro disciplinas existem para que cada linha do mapa seja verificável.

Imagine dois mapas da mesma cidade. O primeiro foi copiado de um folheto turístico antigo: bonito, mas as ruas mudaram. O segundo foi feito andando rua a rua, com cada esquina anotada e um aviso honesto onde o cartógrafo não chegou. Só o segundo é seguro de usar. O método deste curso é o de fazer o segundo mapa: ler a fonte real, gastar profundidade onde importa, citar tudo, e deixar outra pessoa tentar furar suas conclusões.

Pense como… a diferença entre repetir o que o folheto diz e medir a cidade com seus próprios pés. A analogia quebra num ponto: ruas mudam devagar; código mente rápido — um doc de intenção pode estar errado no dia em que foi escrito. Por isso a regra nº 1 não é "às vezes confie no doc", é "o código sempre vence".

O método tem quatro invariantes, e cada uma tem um espelho dentro do próprio motor Alembic que este curso descreve: "o código vence" (a fonte é a verdade), tiers de profundidade (orçamento de atenção declarado), Proof-Gate (o mesmo gate que a lição 17 aplica à execução, virado para dentro da documentação) e builder ≠ validator (a mesma separação do Verifier da lição 18 e do Validator Gate da lição 17). O método não é folclore: é a engenharia do motor aplicada ao ato de documentar o motor.

um mapa confiável, não apenas um lido MAPA-FOLHETO (intenção) ✱ copia o HANDOFF/README ✱ herda cada drift acumulado ✱ sem fronteira: parece completo → lido, mas não confiável MAPA-FONTE (verificado) ✱ lê o filesystem como construído ✱ anota onde diverge do doc ✱ marca [uncertain] na fronteira → confiável, não só lido
Os dois mapas. O método deste curso constrói sempre o da direita.
O fato que ancora tudo

Estes dois mapas não são teoria: eles existem no repo (docs/alembic-complete-map.md, docs/hermes-complete-map.md) e foi sobre eles que se construiu a matriz de fusão e, em cima dela, um pacote real @alembic/hermes. Se o método falhasse, o pacote teria sido construído sobre mentiras. Por isso o método é o entregável.

o método não é folclore — é a engenharia do motor, virada para a documentação o código vence↕ espelhafonte da verdade (execução) profund. honesta↕ espelhatier de risco por unidade Proof-Gate↕ espelhaProof Gate (unit.proof[]) builder ≠ validator↕ espelhaVerifier read-only
Quatro pares. A coluna de cima é o método de documentar; a de baixo é o que o motor já faz na execução.
2

Princípio 1 — o código vence, sempre


O próprio cabeçalho do mapa declara a regra. Docs descrevem intenção; intenção deriva. Um mapa que confia no doc acima da fonte herda toda mentira que o doc acumulou:

docs/alembic-complete-map.md — a disciplina, dita logo no topo
// "This document maps the real filesystem as built, not the design
//  intent in HANDOFF.md — where the two diverge, the code wins and
//  the divergence is noted."
//
// ex.: o HANDOFF diz "11 packages / 284 tests"; a árvore tem
//      19 packages + 1 app e 415 testes — o mapa reflete a
//      decomposição, e NOMEIA o drift.

O mapa literalmente registra onde o handoff ficou desatualizado (11 vs 19 pacotes, 284 vs 415 testes) e onde um "bug conhecido" tinha sido de fato corrigido (o contrarian-last, que o HANDOFF.md listava como "ficção a não carregar adiante" mas que a fonte atual já aplica no carregamento do board). Essa honestidade é o entregável — um mapa que silenciasse a divergência seria pior que nenhum mapa.

0
pacotes no HANDOFF (snapshot antigo)
0
pacotes na árvore real + 1 app
0
testes no HANDOFF
0
testes reais (npx vitest list)
doc × código discordam — três respostas, só uma é o método CONFIAR NO DOC herda cada drift (11 pacotes — falso) OMITIR O CONFLITO esconde a fronteira (parece completo) CÓDIGO VENCE + ANOTA reflete 19 pacotes/415 e nomeia o drift
Surfacing the disagreement faz parte do entregável — não é um vexame a esconder.
Preveja antes de revelar

O mapa e o HANDOFF.md discordam no número de pacotes. Qual destes o método faz?

Reflete o código (19 pacotes + 1 app / 415 testes), e anota a divergência em relação ao handoff (11 / 284). Não faz a média, não omite, não confia no doc. O drift vira uma nota explícita no cabeçalho — porque um leitor que confie no número precisa saber de onde ele veio.

o fluxo de decisão quando você lê uma afirmação do doc leio um claim do doc fonte concorda? sim cite normalmente (file:line) não reflita a FONTE + anote a divergência
O losango é a regra nº 1 em ação. O ramo "não" nunca é "confie no doc" — é sempre "fonte + anota".
DicaOnde o doc e a fonte discordam, escreva a divergência em voz alta. "X dizia A; a fonte mostra B; reflito B" custa uma linha e converte um possível erro num ponto de confiança.
3

Princípio 2 — tiers de profundidade honestos


Você não consegue ler cada linha de cada arquivo na mesma profundidade — e fingir que leu é a mentira mais comum da engenharia reversa. O método, em vez disso, declara sua profundidade:

profundidade é um orçamento — gaste no que sustenta carga, e diga onde não gastou
DEEP-DIVE subsistemas que sustentam carga: ler linha a linha, citar file:line, verificar invariantes CATÁLOGO a cauda longa: responsabilidade, API, deps, testes, gaps — estruturado, não exaustivo FRONTEIRA o que ainda NÃO se sabe: marcado [uncertain], declarado como fronteira, nunca fingido a profundidade decresce da esquerda para a direita; a honestidade é constante

No mapa do Alembic isso aparece concreto: a cintura estreita, o funil, o council e o swarm recebem tratamento profundo com citação de linha; a cauda longa (infra, docs, tui, web) recebe um catálogo estruturado (responsabilidade / API / deps / testes / gaps); e dúvidas genuínas são marcadas [uncertain] — por exemplo "[uncertain] whether they live in another package" (drivers de fonte) e "[uncertain] whether any infra tests run under vitest". A fronteira é nomeada, não escondida.

Infográfico de três faixas horizontais empilhadas representando um orçamento de profundidade. Faixa larga DEEP-DIVE (terracota): ler linha a linha, citar file:line, verificar invariantes; exemplos cintura estreita, funil, council, swarm. Faixa média CATÁLOGO (ardósia): responsabilidade, API, deps, testes; exemplos infra, docs, tui, web. Faixa estreita tracejada FRONTEIRA (oliva): marcado uncertain, declarado como fronteira, nunca fingido. Uma seta lateral diz profundidade decrescente, honestidade constante.

O mesmo orçamento, em faixas: a largura da faixa é a profundidade gasta. Deep-dive para o que sustenta carga, catálogo para a cauda longa, fronteira marcada para o que não se verificou.

Exemplo trabalhado — alocando o orçamento de profundidade num repo novo
1
Ache o que sustenta carga. No Alembic, é a cintura estreita (ModelAdapter + Result): todo o resto passa por ela. Esse vira deep-dive — leitura linha a linha, com file:line.
2
Catalogue a cauda longa. Pacotes de infra, docs, tui, web não precisam de leitura exaustiva — registre responsabilidade, API, deps, testes e gaps em forma estruturada.
3
Nomeie a fronteira. Onde você não conseguiu confirmar (ex.: "rodam testes de infra sob vitest?"), escreva [uncertain] em vez de adivinhar.
4
Agora você: peça um repositório que você não conhece. Aponte 1 subsistema que merece deep-dive, 2 que bastam catalogar, e 1 dúvida honesta que você marcaria [uncertain]. Esse é o orçamento.
para onde vai o esforço de leitura (profundidade × superfície) deep-divepoucos arquivos, profundidade máxima catálogomuitos arquivos, profundidade rasa fronteiraapenas marcada [uncertain]
O orçamento não é uniforme: gasta-se quase tudo no que sustenta carga. A barra estreita da fronteira ainda assim existe — porque foi declarada.
CuidadoUm mapa sem nenhum [uncertain] é suspeito. Ou ele é trivialmente pequeno, ou está mentindo sobre a cobertura. A ausência da fronteira não é um sinal de completude — é um sinal de alerta.
4

Princípio 3 — Proof-Gate em tudo


A nota de método da matriz de fusão é explícita: "Nothing here is decided from memory; every 'Alembic has/lacks X' cites map evidence." Claims são lastreados por artefatos verificáveis — um file:line que você abre, um hit-count que você reproduz com grep, um teste que existe. É a mesma disciplina do Proof Gate que o motor usa (lição 17), virada para dentro da documentação:

  • Todo claim não-óbvio cita um caminho e, quando útil, um número de linha — clicável, checável.
  • Presença/ausência de capacidade é lastreada em hit-counts sobre o mapa ("memory=1 hit incidental; sem pacote de memória" ⇒ é um gap genuíno).
  • Estado verificado vem com o comando que o produziu ("npx vitest list → 415 casos").
o Proof-Gate para prosa: o que entra no mapa CLAIM SEM CITAÇÃO "o Alembic tem memória" → asserção de fé BARRADO ✕ PROOF-GATE file:line abre? hit-count reproduz? teste/comando existe? um cético pode falsificar? CLAIM LASTREADO "memory=1 hit incidental, sem pacote ⇒ gap real" ENTRA NO MAPA ✓
Citar file:line não é formatação — é o gate de prova da prosa. Sem ela, é ensaio; com ela, é mapa.
Retrieval
O que torna um claim "lastreado"?
clique para virar
Um artefato verificável: um file:line que abre, um hit-count que se reproduz com grep, ou um teste/comando que existe — algo que um cético pode falsificar em segundos.
Retrieval
Como o método prova um gap (ausência)?
clique para virar
Por hit-count sobre o mapa: "memory=1 hit incidental; sem pacote de memória" mostra que a ausência é real, não esquecimento. A ausência também é provada.
Retrieval
Como se cita um estado verificado, como a contagem de testes?
clique para virar
Com o comando que o produziu: "npx vitest list → 415 casos". O leitor pode rodar o mesmo comando e conferir.
anatomia de uma citação verificável docs/alembic-complete-map.md:703 caminho que abre linha exata, checável cético falsifica em segundos
Uma citação não é enfeite: é o endereço onde o leitor confirma o claim sozinho.
Papo técnico (pode pular)O Proof-Gate da prosa é o mesmo gate da lição 17 aplicado à execução de unit.proof[]: lá, um comando com exit ≠ 0 falha a run; aqui, um claim sem citação não entra no mapa. Em ambos, a regra é "prove na fronteira real, nunca por alegação".
5

Princípio 4 — builder ≠ validator


A mesma separação que o motor impõe (o Verifier da lição 18, o Validator Gate da lição 17) governa o próprio trabalho de documentação. O curso que você está lendo foi escrito por um agente e revisado por outro — o brief que produziu estas lições traz "Builder ≠ validator" como regra dura. Um mapa checado só por seu autor herda os pontos cegos do autor; um revisor independente é a versão humana-e-agêntica do Verifier read-only.

a mesma separação, no motor e na documentação NO MOTOR worker constrói Verifier revê read-only · veto · quem fez ≠ quem valida Validator Gate por milestone NA DOCUMENTAÇÃO agente escreve outro agente revê pega o ponto cego do autor "Builder ≠ validator" (regra do brief)
Independent review é a mesma disciplina do Verifier — aplicada às conclusões do mapa, não ao código.
DisciplinaNo motor (execução)Na documentação (este método)
Fonte da verdadeo código executado, não o planoo filesystem como construído, não o HANDOFF.md
Profundidade declaradatier de risco por unidade (T1–T4)deep-dive · catálogo · [uncertain]
ProvaProof Gate: unit.proof[], exit≠0 falhaProof-Gate da prosa: file:line / hit-count / comando
SeparaçãoVerifier read-only ≠ quem construiurevisor ≠ autor ("Builder ≠ validator")
6

Explore as três profundidades


Clique cada tier para ver o que ele exige, com um exemplo real do mapa do Alembic — e veja a faixa correspondente acender no orçamento de profundidade.

DEEP-DIVE CATÁLOGO FRONTEIRA

A largura da faixa = a profundidade gasta. Note como a fronteira é a mais estreita — e mesmo assim aparece.

7

Por que isto generaliza


Não é específico do Alembic

Esses quatro princípios não são do Alembic. Caia em qualquer base de código desconhecida e o método é o mesmo: leia a fonte acima do README quando discordarem — e anote a discordância; orce sua profundidade e declare-a; lastrear todo claim com uma citação que você possa re-checar; e peça a quem não escreveu suas conclusões para tentar furá-las. A disciplina é o que deixa um mapa ser confiável em vez de meramente lido — e foi exatamente o que tornou seguro construir um pacote real @alembic/hermes sobre o mapa do Hermes sem reler antes todas as 30k+ linhas de Python.

o mesmo pipeline serve para qualquer repositório que você precise entender de fora 1 · fonte > docanote a divergência 2 · orce profund.deep-dive · catálogo · fronteira 3 · lastrear claimsfile:line · hit-count 4 · revisor ≠ autorfura suas conclusões mapaconfiável
Quatro passos, repo-agnósticos. O resultado não é "um doc"; é um mapa em que se pode confiar.
Lembre da lição 19: a matriz de fusão classificou o delegate_tool.py do Hermes como IGNORE porque o swarm do Alembic já delega melhor. Aquela decisão só foi segura porque o método provou, com evidência citada, o que o Alembic "tem" vs "não tem".
8

Confusões comuns


"Marcadores [uncertain] deixam o mapa parecer incompleto." Eles o deixam honesto. Um mapa sem nenhuma incerteza ou é trivialmente pequeno ou está mentindo sobre sua cobertura. Nomear a fronteira é o que permite ao leitor confiar em tudo que não está marcado.
"Citar file:line é só formatação." Não — é o Proof-Gate para prosa. Um claim com citação clicável é falsificável em segundos; um claim sem ela é uma asserção a se aceitar por fé. As citações são o que fazem disto um mapa, e não um ensaio.
"Se o doc é oficial, ele deve estar certo." Docs envelhecem; o HANDOFF.md dizia "11 pacotes / 284 testes" e listava o contrarian-last como ficção — ambos já desatualizados. O método não pune o doc; ele só registra que a fonte venceu, e onde.
9

Recapitulando


Percorra os quatro princípios como slides — eles são a "bússola" que abriu a lição, agora um a um.

O método em uma frase

Um mapa confiável, não só lido

Quatro disciplinas separam o mapa-folheto do mapa-fonte. Cada uma tem um espelho dentro do próprio motor Alembic.

① códigovence ② profund.honesta ③ Proof-Gate ④ builder≠validator
00

Princípio 1

O código vence, sempre

Onde doc e fonte discordam, a fonte vence — e a divergência é anotada (11→19 pacotes, 284→415 testes). Surfacing o conflito é o entregável.

HANDOFF: 11 / 284desatualizado código: 19+1 / 415npx vitest list ✓
01

Princípio 2

Tiers de profundidade honestos

Deep-dive o que sustenta carga, catalogue a cauda longa, marque [uncertain] a fronteira. Profundidade é orçamento; diga onde não gastou.

DEEP-DIVE CATÁLOGO FRONTEIRA [uncertain] largura = profundidade
02

Princípio 3

Proof-Gate em tudo

Todo claim cita um file:line, um hit-count reproduzível, ou o comando que o produziu ("npx vitest list → 415"). Sem prova, não entra.

file:line ✓ hit-count ✓ comando ✓ GATE claim sem citação ✕ entra no mapa
03

Princípio 4

Builder ≠ validator

Quem escreveu o mapa não é quem o revisa. É o Verifier read-only do motor, aplicado às conclusões — pega o ponto cego do autor.

autor escreve revisor ≠ autor ponto cego
04
Slide 1 / 5 use
10

Verifique


Revisão — as quatro disciplinas

Três perguntas. Recupere de memória antes de clicar — é assim que vira retenção.

1. O mapa e o HANDOFF.md discordam na contagem de pacotes. O que o método faz?
Correto: b. "O código vence, e a divergência é anotada." O mapa registra 19 pacotes + 1 app / 415 testes contra os 11 / 284 do handoff, e nomeia o drift. a herdaria a mentira do doc; c inventa um número que nenhum dos dois tem; d esconde a fronteira — exatamente o oposto do método.
2. Um engenheiro reverso não consegue ler cada arquivo na profundidade máxima. Qual é a jogada honesta?
Correto: d. Profundidade é um orçamento: gaste no que sustenta carga, estruture o resto, e seja explícito sobre o que não verificou. O mapa do Alembic faz exatamente isso — citação de linha onde importa, catálogo no resto, e [uncertain] na fronteira. a e b são a mentira de cobertura; c esconde os buracos.
3. Qual é o análogo documental do Verifier read-only do motor?
Correto: a. Revisão independente é a mesma separação que o motor impõe com o Verifier e o Validator Gate. Um mapa checado só pelo autor herda os pontos cegos do autor; um revisor diferente é o check read-only humano/agêntico. b/c melhoram o texto mas não trazem outro par de olhos; d remove a checagem.
Acertos: 0/3
Ainda em dúvida sobre como orçar profundidade no seu repositório, ou onde traçar a fronteira [uncertain]? Pergunte ao seu professor (este agente) — traga o repo e a gente aloca os tiers juntos.