O framework de fusão: CLONE / ADAPT / MERGE / IGNORE
A lição 3 introduziu as quatro disposições. Esta lição percorre o procedimento de decisão de ponta a ponta: as duas perguntas que você faz de cada capacidade, por que o mesmo input pode cair em qualquer dos quatro vereditos, e quatro exemplos trabalhados — por que o ciclo de aprendizado é um CLONE pedra-angular, por que o cliente MCP é um MERGE estacionado, por que a delegação é IGNORE, e por que o neutts é IGNORE por uma razão diferente. É o framework reutilizável para absorver um sistema noutro sem inchá-lo.
Esta lição destila a matriz de fusão verificada no Proof-Gate (Fase B). Todos os identificadores, contagens de LOC e hit-counts vêm dela, lidos literalmente. Por que importa pra missão: é a disciplina que deixa um motor TypeScript focado absorver um agente de ~30k linhas sem importar o sprawl dele.
Objetivos desta lição
Aplicar as duas perguntas da matriz a qualquer capacidade, sempre contra evidência de mapa.
Ler o 2×2 que as duas respostas produzem e mapear cada quadrante a uma disposição.
Distinguir os dois tipos de IGNORE: "já fazemos melhor" vs. "fora-da-missão".
Separar a disposição (o que algo é) do cronograma (quando se constrói).
0
perguntas decidem o veredito
0
disposições · CLONE/ADAPT/MERGE/IGNORE
0
CLONEs Easy enviados primeiro
0
"copiamos porque estava lá"
01 · As duas perguntas — e o 2×2 que produzem
Imagine que você vai mudar de casa e está diante de cada objeto da casa antiga: vale levar? A resposta nunca é "leve tudo" nem "jogue tudo" — você decide objeto por objeto, com duas perguntas simples. A matriz de fusão faz exatamente isso com cada capacidade do sistema-fonte (o Hermes), e cada resposta é dada contra evidência verificada do mapa — nunca de memória:
P1 · O alvo já tem um equivalente? (respondida contra o mapa do Alembic, com a evidência citada — ex.: contagem de hits no mapa de 1488 linhas)
P2 · A versão da fonte é superior ou inédita? (respondida contra o mapa do Hermes)
Cada pergunta é um "detector" simples
Antes de juntar as duas, veja cada uma isolada. A P1 é um detector de lacuna: ela varre o mapa do alvo atrás de um equivalente. A P2 é um detector de valor: a coisa nova é melhor, ou pelo menos inédita?
P1 · O ALVO JÁ TEM? (detector de lacuna)
P2 · A FONTE É MELHOR/INÉDITA? (detector de valor)
Preveja antes de continuar
As duas perguntas são de SIM/NÃO. Quantas combinações de respostas existem ao todo — e o framework dá uma disposição diferente para cada uma?
2 × 2 = 4 combinações — exatamente as quatro disposições (CLONE / ADAPT / MERGE / IGNORE). Mas há uma sutileza: duas combinações diferentes desembocam em IGNORE (o alvo já é melhor ou a coisa é inédita porém fora-da-missão), e o eixo "tem um equivalente parcial" é o que separa MERGE de CLONE. Por isso o legenda da matriz (§1) descreve quatro dispositions, mas o quadrante IGNORE carrega duas justificativas possíveis — assunto da seção 02.
As duas respostas juntas: o 2×2
A disposição decorre do par de respostas. É, com efeito, uma matriz 2×2 — o eixo horizontal é a P1 (o alvo já tem?), o vertical é a P2 (a fonte é melhor/inédita?):
O 2×2 · DUAS PERGUNTAS → QUATRO DISPOSIÇÕES (a legenda da matriz §1)
Note os dois quadrantes IGNORE: uma capacidade é descartada ou porque o alvo já a faz melhor (delegação → o swarm) ou porque é inédita mas fora-da-missão (neutts TTS local). Ambos são IGNOREs justificados — a legenda da matriz exige uma razão, nunca um dar de ombros ("IGNORE … OR it's out of scope for Alembic's mission. Justified.").
Pensa na mudança de casa: CLONE = não tenho e é ótimo → levo e instalo direitinho. MERGE = já tenho um parecido → junto os dois numa coisa só, melhor. IGNORE = ou já tenho um melhor, ou é bom mas não cabe na minha vida nova. Toda decisão é por objeto, e toda decisão tem um motivo escrito.
Método (matriz §intro): "for each Hermes capability I asked two questions — (1) does Alembic already have an equivalent? (answered against the Alembic map, evidence cited) and (2) is the Hermes version superior or net-new? … The disposition follows from the pair. Nothing here is decided from memory; every 'Alembic has/lacks X' cites map evidence." A célula de cada veredito guarda a evidência (coluna "Alembic today (evidence)") e a justificativa (coluna Rationale).
02 · O fluxograma de decisão (as duas perguntas, em sequência)
O 2×2 é a foto; o fluxograma é o filme — a ordem em que você faz as perguntas diante de uma capacidade nova. Siga as setas: cada losango é uma das duas perguntas, e há dois caminhos que terminam em IGNORE, por razões opostas. O caminho do delegate_tool.py e do neutts está anotado à direita.
FLUXOGRAMA · "QUAL A DISPOSIÇÃO DESTA CAPACIDADE?" — P1 e P2 em sequência
Por que P1 vem antes de P2: primeiro você pergunta se há lacuna (varrendo o mapa do alvo). Só então o ramo muda: numa lacuna, P2 vira "vale a pena / cabe?" (→ CLONE ou IGNORE fora-da-missão); num equivalente, P2 vira "a fonte é melhor?" (→ MERGE/ADAPT ou IGNORE já-melhor).
O ramo "inédito mas IGNORE": é o que prende a maioria das pessoas — elas acham que "inédito" implica "leve". Não implica. Inédito é necessário, não suficiente: ainda precisa caber na missão e nas restrições do alvo (seção 06, o neutts).
03 · Veredito 1 — ciclo de aprendizado: CLONE (a pedra angular)
P1: o Alembic tem um ciclo fechado de auto-aperfeiçoamento? A resposta do mapa: não — "learning loop/curator/background review = 0 hits". Uma lacuna genuína. P2: a versão do Hermes é valiosa? Sim — é "the headline 'self-improving' mechanism and Alembic's biggest miss". Inédito + alto valor ⇒ CLONE. E não um clone qualquer — a pedra angular, porque compõe com o que o Alembic já tem em vez de substituir:
// docs/alembic-hermes-fusion-matrix.md §3 — a fusão, extraída da matriz
Alembic hoje: SOURCE → distill (funil) → Learnings + Signals → [sem feedback]
Hermes adiciona: run → fork de revisor só-memory/skill → escreve memory/skills duráveis
→ curator gerencia o ciclo de vida → próxima run lê o snapshot atualizado
Fundido: distill → Learnings ─┐
├─► memory/skills (snapshot congelado) → próxima run mais esperta
run → fork de review ┘ ▲ curator mantém limpo
O mesmo desenho como diagrama de caixas: o funil que você já conhece (lição 15) e o fork de revisão do Hermes convergem nos stores duráveis, que realimentam a próxima run. É o que transforma um pipeline de um disparo num ciclo:
CLONE PEDRA-ANGULAR · o ciclo de aprendizado compõe funil + fork de revisão
Ele "compõe com o validator gate em vez de substituí-lo" — as escritas do revisor passam pelo Validator Gate existente do Alembic (ADR-0006) antes de sedimentar (lição 17), dando "learn only from validated wins". É por isso que é a pedra angular: transforma um pipeline de um disparo em um ciclo, usando maquinário que o Alembic já tinha. Os CLONEs que você estudou nas lições 7–13 (memory, learning, curator, clarify, web) são exatamente este quadrante — todos marcados Easy na matriz, exceto o próprio learning loop, de "highest conceptual value".
04 · Veredito 2 — cliente MCP: MERGE (e estacionado)
P1: o Alembic tem MCP? Parcialmente — é um servidor MCP, read-only ("MCP=8 hits; harness handleMcpRequest"), mas não tem cliente. P2: direção inédita? Sim — consumir servidores MCP externos é uma capacidade nova. Equivalente parcial + direção nova ⇒ MERGE em @alembic/harness (não um pacote separado). A própria matriz rotula: "High-value MERGE". Mas o veredito não é o cronograma — está estacionado, listado em #5 (Medium), depois dos cinco CLONEs Easy.
MCP · SERVIDOR EXISTE (read-only) + CLIENTE FALTA → MERGE no harness (parado em #5)
05 · Veredito 3 — delegação: IGNORE (já melhor)
P1: o Alembic delega trabalho a sub-agentes? Enfaticamente sim — o swarm (lição 19): "swarm=63 hits: 3-tier orchestrator, lead-worker, depth-bound, dependency-gated task-queue, PARL reward". P2: o delegate_tool.py do Hermes (§3.8, 3188 LOC) é melhor? Não — o Alembic "already does this natively and better". Equivalente existe e é superior ⇒ IGNORE (o quadrante "já melhor"). Mas a matriz ainda extrai um insight portável em vez de descartar por atacado:
DELEGAÇÃO · swarm (Alembic) vs delegate_tool.py (Hermes) → IGNORE, mas colha 1 ideia
Manter a regra de cache-safety da delegação assíncrona — "a conclusão re-entra como um novo turno, nunca no meio do contexto" — é o que distingue um IGNORE disciplinado de um descarte cego. Um bom IGNORE colhe a única ideia que vale manter; ele não joga fora o aprendizado, joga fora o código.
Este é o outro tipo de IGNORE. P1: o Alembic tem TTS neural local? Não. P2: é inédito? Sim. Então por que não CLONE? Porque falha no teste de missão: "Python-only ML stack (neutts, espeak-ng). Hard to port, no mission value." Inédito é necessário mas não suficiente — uma capacidade também precisa caber na missão e nas restrições do alvo. É um terceiro "portão" que se aplica só ao quadrante da lacuna:
PORTÃO DA MISSÃO · "inédito" passa P1+P2, mas ainda enfrenta um terceiro filtro
A mesma lógica IGNORA o computer-use (vincula um runtime nativo), os 23 adapters de mensageria ("Alembic is an internal engine (ADR-0001), not a personal-assistant gateway"), o editor ACP, e — dentro de uma ferramenta de media de resto ADAPTada — o caminho local faster-whisper ("Local faster-whisper = IGNORE/sidecar (Python ML, no clean Node port)", lição 13). A disposição é por-capacidade, e "inédito" nunca sobrepõe "fora-da-missão".
A disciplina que evita o inchaço
O ponto inteiro do framework é absorver um agente de ~30k linhas num motor TypeScript focado sem importar seu sprawl. CLONE só as peças inéditas de alto valor; MERGE o que se sobrepõe numa superfície mais rica; IGNORE — com uma razão — tanto o que você já faz melhor quanto o que não cabe. O resultado é o pacote @alembic/hermes: cinco subsistemas CLONE/ADAPT enxutos (memory, learning, clarify, web, media), com MERGEs aterrissando em suas casas existentes e tudo fora-da-missão deixado para trás. Quatro vereditos, uma decisão defensável por capacidade, zero "copiamos porque estava lá".
O FILTRO EM AÇÃO · de ~30k linhas do Hermes a um pacote focado (sem o sprawl)
07 · Aplique o procedimento na mão (passo a passo → agora você)
Você viu as duas perguntas, o 2×2 e quatro vereditos prontos. Agora rode o procedimento na mão, devagar, sobre uma capacidade que ainda não vimos: a busca em sessões do Hermes — session_search_tool.py §3.4 (797 LOC). Recuperar o procedimento — não só ler o veredito pronto — é o que fixa o framework. Cada passo é exatamente um movimento do fluxograma da seção 02, e a célula da matriz guarda a evidência de cada resposta.
Exemplo resolvido · qual a disposição de session_search_tool.py (busca FTS5 em sessões)?
1
Nomeie a capacidade da fonte. Busca full-text (FTS5) sobre sessões/runs anteriores do agente — recuperação a custo-zero-de-LLM (descoberta/scroll/browse), uma capacidade concreta do mapa do Hermes, não uma intuição. Regra de ouro: uma disposição por capacidade nomeada.
2
P1 — o alvo já tem equivalente? Varra o mapa do Alembic com a evidência citada. A célula da matriz registra: "Alembic has JSONL receipts / artifact-store, but no FTS5 recall" [uncertain]. Logo, há um equivalente parcial (receipts/artifact-store), mas não a busca FTS5 dedicada. Resposta: parcial.
3
P2 — a versão da fonte é melhor/inédita, e em que direção? A busca-de-sessão do Hermes acrescenta uma direção nova sobre o store que já existe (recall FTS5 sobre o histórico do próprio agente), em vez de substituí-lo. Não é uma lacuna pura, nem o Alembic já a faz inteira. Resposta: nova direção sobre o parcial.
4
Leia o par no 2×2. "equivalente parcial" (P1) × "nova direção que reimplementa a ideia no estilo do alvo" (P2) cai em ADAPT — reimplemente o recall FTS5 sobre maquinário do alvo: "adapt over Alembic's run-dir + node:sqlite" (o store durável já escolhido). Não é CLONE (não há lacuna pura) nem IGNORE (a direção é inédita e cabe). A matriz a lista literalmente como "session-search ADAPT".
5
Veredito + lembrete de cronograma. Disposição = ADAPT, com casa em @alembic/etlou@alembic/hermes. E — como no cliente MCP (§04) — decidir o que é não compromete quando construir: a matriz marca Medium e a coloca entre os itens "later, as needs surface", atrás dos cinco CLONEs Easy.
→
Agora você: roteie o vision_tools.py (descrição de imagens). Dica: a lição 13 já o tratou. P1: o Alembic tem visão? P2: o caminho da fonte é melhor/inédito, ou há um pedaço que não cabe? Faça antes de revelar.
É um ADAPT (a ferramenta de media: transcrição cloud + visão, reimplementada no estilo do alvo) — com um IGNORE embutido por-capacidade: o caminho local faster-whisper é deixado de fora ("Local faster-whisper = IGNORE/sidecar (Python ML, no clean Node port)", lição 13). Repare: uma mesma ferramenta pode carregar dois vereditos — o procedimento é por-capacidade, não por-arquivo.
O mesmo procedimento, visto como trilha de decisão para o caso resolvido — as setas são os ramos do fluxograma da seção 02 percorridos de verdade, terminando em ADAPT:
Os quatro vereditos numa só tabela: o que cada disposição significa, o gatilho (qual par P1/P2 a aciona), para onde vai, e o exemplo trabalhado desta lição. A tabela diz a regra; o gráfico abaixo a torna visível.
Disposição
Gatilho (P1 · P2)
O que você faz
Para onde
Exemplo desta lição
CLONE
lacuna · inédito + valioso
Porte o design de perto, adaptando tipos/convenções
@alembic/hermes
ciclo de aprendizado (pedra angular)
ADAPT
equiv. parcial/diferente
Reimplemente a ideia no estilo do alvo
pacote-alvo (ex.: media/)
media (transcrição cloud + visão)
MERGE
equiv. relacionado · nova direção
Combine numa superfície existente, mais rica
casa existente
cliente MCP → @alembic/harness (#5)
IGNORE (já melhor)
equivalente · não supera
Descarte o código, colha 1 insight portável
—
delegate_tool.py → o swarm
IGNORE (fora-da-missão)
lacuna · inédito mas não cabe
Deixe de fora, com a razão escrita
—
neutts · computer-use · 23 mensageria · ACP
As mesmas cinco linhas como faixas: cada disposição leva a quanto de código você importa para dentro do motor — CLONE/ADAPT trazem código novo; MERGE engrossa uma superfície existente; os dois IGNORE trazem zero código (no máximo uma ideia):
QUANTO CÓDIGO ENTRA NO MOTOR · por disposição (CLONE/ADAPT trazem; IGNORE traz ~0)
A ordem de implementação — disposição ≠ cronograma
Decidir a disposição é uma coisa; quando construir é outra. A matriz (§5) ordena por "value × (1 / coupling)", CLONEs primeiro porque são inéditos e autocontidos. Repare: o MERGE do cliente MCP fica em #5, atrás dos cinco CLONEs/ADAPTs Easy — um MERGE de alto valor que ainda assim espera:
ORDEM DE IMPLEMENTAÇÃO (§5) · cinco Easy primeiro, depois o MERGE #5 (Medium)
09 · Roteie você mesmo (demo do 2×2)
Você viu as duas perguntas, o 2×2 e quatro vereditos. Agora roteie uma capacidade você mesmo: escolha uma resposta para cada pergunta e veja o quadrante acender e o veredito aparecer — exatamente o caminho que a matriz percorre. Experimente reproduzir os quatro exemplos da lição.
ROTEADOR · escolha P1 e P2 → o quadrante acende e o veredito aparece
P1 · o alvo já tem um equivalente?
P2 · a versão da fonte é melhor/inédita — e cabe na missão?
Veredito: CLONE
Repare o que o roteador ensina: nem toda combinação tem uma célula "limpa" — "lacuna" + "não supera o que já temos" é contraditório (se é lacuna, não há o que superar). O framework é robusto justamente porque as duas perguntas se encadeiam: a segunda muda de sentido conforme a primeira (seção 02).
10 · Como isso se encaixa
Este framework não é uma peça de runtime — é a disciplina de decisão que precede a fusão inteira. Olhe a peça no seu lugar: a montante, dois mapas verificados o alimentam (a engenharia reversa do Hermes, Lição 2, e o mapa do próprio Alembic); esta peça aplica as duas perguntas a cada capacidade; a jusante, ela generaliza na matriz de fusão (Lição 3) item a item, e a matriz produz tanto a forma do pacote @alembic/hermes quanto a ordem de implementação value×(1/coupling). Em outras palavras: o framework é o operador, a matriz é o resultado de aplicá-lo a toda a superfície do Hermes.
ONDE O FRAMEWORK VIVE · dois mapas → as 2 perguntas (esta peça) → matriz item-a-item → pacote @alembic/hermes + ordem
Clique para acender peça por peça — dos dois mapas até a execução.
Onde você está na metodologia: esta é a etapa de decisão da fusão, entre o entendimento (os dois mapas, Lições 1–2) e a construção (o pacote @alembic/hermes e os labs). Diferente do funil ou do swarm, o framework não roda como código — ele governa o que vira código. Cada disposição que ele emite reaparece como uma linha da matriz (Lição 3) e como uma decisão restringida por um ADR (Lição 24). Veja o todo no mapa interativo da metodologia.
As peças que se conectam a esta
O framework toca quatro outras lições — duas o alimentam, duas consomem o que ele decide:
Lição 03 · A matriz de fusão Porque conecta: a matriz é este framework aplicado a toda a superfície do Hermes — uma linha por capacidade, com as colunas "evidência" (P1) e "rationale" (P2). Esta lição abre o procedimento de uma célula; a Lição 3 mostra o quadro inteiro que ele preenche.
Lição 02 · Engenharia reversa do Hermes Porque conecta: P2 ("a fonte é melhor/inédita?") só pode ser respondida contra o mapa que a Lição 2 construiu — sem entender o que o Hermes é (LOC, propósito, portabilidade de cada tool), não há como julgar uma disposição. O mapa é o insumo a montante do framework.
Lição 29 · Estendendo a fusão Porque conecta: a receita para um oitavo subsistema começa por rodar exatamente estas duas perguntas sobre a capacidade nova — o framework é o passo 1 do checklist de extensão. Aqui você aprende a decisão; lá você a aplica para crescer o motor.
Lição 24 · A trilha de ADRs Porque conecta: a exigência de uma "razão escrita" em todo IGNORE é a mesma disciplina dos ADRs — registrar por que, incluindo por que as alternativas foram rejeitadas. Os ADRs (ex.: ADR-0001 "motor interno") são o que torna defensável cada IGNORE fora-da-missão.
11 · Na prática
Honestidade primeiro: não existe um alembic que "rode" o framework. Ele é um procedimento de decisão humano-no-comando — você aplica as duas perguntas a uma capacidade e escreve a disposição. O artefato que ele produz é um documento (docs/alembic-hermes-fusion-matrix.md). O que a CLI pode fazer é validar a coerência do stack que o framework decidiu construir — é o papel de alembic doctor --client-stack, que confere a forma do MODEL_REGISTRY e a coerência dos adapters, offline e a custo $0, sem rede.
# O framework é um procedimento de decisão — o artefato é um documento, não um comando.# O que a CLI valida é a COERÊNCIA do stack que as disposições produziram:
$ alembic doctor --client-stack
# saída esperada (forma ilustrativa — o conteúdo depende do seu MODEL_REGISTRY):# client-stack: MODEL_REGISTRY shape OK · adapters coerentes# (offline · $0 · sem rede)# Para a matriz que o framework preencheu, abra o documento-fonte:
$ cat docs/alembic-hermes-fusion-matrix.md
O que doctor --client-stack mostra — e o que não mostra: ele valida que o resultado da fusão (os adapters/registry que os CLONE/ADAPT trouxeram) é coerente — não avalia se uma disposição foi a correta; esse juízo é seu, contra os dois mapas. [uncertain] a forma exata da saída depende da build do CLI; o que é fato é que --client-stack roda offline, a $0, e checa a forma do MODEL_REGISTRY + a coerência dos adapters (CLAUDE.md, comando doctor).
Experimente · aplique o framework a uma capacidade nova (sem CLI — você decide)
1
Entre no repo e abra a fonte.cd /Users/acf/Documents/Projects/appfy/alembic e leia docs/alembic-hermes-fusion-matrix.md — é o quadro que o framework preenche. Note as colunas "evidência" (P1) e "rationale" (P2).
2
Escolha uma capacidade ainda não vista. Pegue uma tool do mapa do Hermes (Lição 2) que a matriz não cobriu — p.ex. browser_dialog_tool.py. Nomeie-a numa frase: qual é a capacidade concreta.
3
Rode P1. Varra o mapa do Alembic atrás de um equivalente, com evidência citada (ex.: "browser=N hits" / "0 hits"). Anote: lacuna, parcial, ou tem-e-completo.
4
Rode P2. A versão do Hermes é melhor/inédita, e cabe na missão (ADR-0001, motor interno)? Leia o par no 2×2 da seção 01 → escreva a disposição (CLONE/ADAPT/MERGE/IGNORE) com a razão.
5
Valide o stack, se construiu algo. Se a sua disposição foi CLONE/ADAPT/MERGE e você chegou a tocar adapters/registry, rode alembic doctor --client-stack e confirme "shape OK". Se foi IGNORE, o entregável é só a linha justificada no documento — nada a rodar.
→
Agora você: antes de decidir, qual mapa responde P1 e qual responde P2 — e por que a ordem importa? Pense antes de revelar.
P1 é respondida contra o mapa do Alembic (há equivalente?); P2 contra o mapa do Hermes (a fonte é melhor/inédita?). A ordem importa porque P1 redefine P2: numa lacuna, P2 vira "vale/cabe?" (→ CLONE ou IGNORE fora-da-missão); num equivalente, P2 vira "a fonte supera?" (→ MERGE/ADAPT ou IGNORE já-melhor). É o encadeamento da seção 02 — e é por isso que nenhum dos dois mapas sozinho basta.
Comandos vizinhos (o que a CLI realmente exercita):alembic doctor --client-stack valida a coerência do stack que a fusão montou; alembic doctor --online vai além e faz um smoke de completamento por modelo (precisa do gateway). Para ver os subsistemas que o framework decidiu CLONE/ADAPT já em pé, os labs das Lições 22–23 os constroem passo a passo, e pnpm --filter @alembic/hermes test roda a suíte deles. O framework em si permanece um procedimento — o que se "roda" é sempre o resultado dele.
Fixe os conceitos (flashcards)
Clique pra virar. Tente lembrar a resposta antes de virar — recuperação ativa fixa mais que reler.
Método
Quais são as duas perguntas da matriz?
clique pra virar ↻
Resposta
P1: o alvo já tem equivalente? (mapa do Alembic, evidência citada). P2: a versão da fonte é superior/inédita? (mapa do Hermes). A disposição decorre do par.
CLONE
Quando uma capacidade é CLONE?
clique pra virar ↻
Resposta
Lacuna (P1 = sem equivalente) + inédito/valioso (P2 = vale). Ex.: ciclo de aprendizado, memory, curator, web, clarify (lições 7–13). Porte o design de perto.
Dois IGNORE
Quais os dois tipos de IGNORE?
clique pra virar ↻
Resposta
(1) "já melhor": o alvo faz tão bem/melhor (delegate→swarm). (2) "fora-da-missão": inédito mas não cabe (neutts). Ambos exigem razão escrita.
MERGE
MERGE compromete a construir agora?
clique pra virar ↻
Resposta
Não. MERGE é a disposição (combinar numa superfície existente); o cronograma é separado. O cliente MCP é MERGE mas estacionado em #5 (Medium).
Revisão cumulativa — recupere de memória
Antes de clicar: responda de cabeça. As quatro opções têm o mesmo tamanho de propósito — sem pista pela forma.
1. Uma capacidade da fonte é inédita (o alvo não a tem), valiosa e cabe na missão. Qual disposição?
Correto: c. Lacuna (P1 = sem equivalente) + inédito/valioso/cabe (P2) ⇒ CLONE. a inverte o framework: "inédito + valioso" é justamente o que se absorve, não o que se descarta. b erra o gatilho do MERGE — MERGE exige um equivalente parcial para combinar; aqui não há equivalente nenhum. d erra a premissa: ADAPT pressupõe um equivalente parcial/diferente, mas o enunciado diz "o alvo não a tem". O ciclo de aprendizado, memory, curator, web e clarify caíram em CLONE (lições 7–13).
2. Por que o delegate_tool.py (3188 LOC) do Hermes é um IGNORE em vez de um CLONE?
Correto: b. P1 = o Alembic tem (o swarm, 63 hits); P2 = o do Hermes não supera ⇒ IGNORE no quadrante "já melhor". a erra o tamanho e o critério: são 3188 LOC (não é pequeno) e o IGNORE é por fit, não por tamanho. c inventa um juízo de "risco" que a matriz não faz — o veredito é "já fazemos melhor", não "é perigoso". d confunde os dois IGNORE: ser Python motiva o IGNORE fora-da-missão do neutts, mas a delegação é IGNORE por o swarm já ser superior. Um IGNORE disciplinado ainda colhe a única ideia que vale manter.
3. neutts (TTS neural local) é inédito ao Alembic. Por que ainda é IGNORE?
Correto: d. O segundo quadrante IGNORE: uma capacidade que o alvo não tem mas que é fora-da-missão ou tecnicamente incompatível. a é falso: o Alembic não tem TTS — a lacuna existe (P1), o que falha é o portão da missão. b inventa uma sobreposição que não há (visão é outra capacidade, ADAPTada). c contradiz a matriz, que IGNORA o neutts com razão escrita, não por engano. "Inédito" nunca sobrepõe "não cabe" — a mesma razão pela qual o faster-whisper local é IGNORADO dentro da ferramenta de media de resto ADAPTada.
Confusões comuns
"IGNORE significa que a capacidade era ruim." Não — duas coisas muito diferentes são IGNORADAS: coisas que o alvo já faz melhor (delegação), e coisas genuinamente boas mas fora-da-missão (neutts, 23 adapters de mensageria). O veredito é sobre encaixe, não qualidade, e sempre carrega uma razão declarada.
OS DOIS IGNORE LADO A LADO · mesmo rótulo, razões opostas (nenhum é "ruim")
"MERGE significa construir agora." Não necessariamente. MERGE é a disposição (combinar numa superfície existente); o cronograma é separado. O cliente MCP é um MERGE mas estacionado em #5, atrás dos cinco CLONEs Easy. Decidir o que algo é não te compromete a fazê-lo em seguida.
Você completou a trilha Motor & método. As lições 14–21 cobriram o motor no qual a fusão se conecta (cintura estreita, funil, quatro invariantes, pipeline de portões, council/verifier, swarm) e a disciplina por trás dele (método de engenharia reversa, framework de fusão). Junto com a narrativa (1–6) e os mergulhos de subsistema (7–13), você agora consegue raciocinar sobre Alembic × Hermes do contrato à capacidade. Releia a Lição 3 e os quatro vereditos devem soar como consequências óbvias de duas perguntas. A seguir, a trilha Labs & avançado (22–30) põe tudo em prática: dois labs práticos, tópicos avançados profundos e um capstone.
💬 Travou em algo? Eu sou seu professor neste curso — pergunte. "Por que P1 vem antes de P2?", "Qual a diferença prática entre ADAPT e MERGE?", "Por que o learning loop precisa passar pelo Validator Gate?". É só dizer.