ALEMBIC • LEARN COMPLETE • FASE 3
Layer L2: Council — Debate + Verifier (Deep Dive)
PATTERN: 04-CODE-UNDERSTANDING (visual-teach-studio)

Layer L2: @alembic/council — O Motor de Decisão

Esta camada implementa debate qualitativo + scoring quantitativo + verificação maker-checker com preservação de dissent. É o principal mecanismo de qualidade para tiers pagos (T3) e para o Factory review.

Debate Engine (debate.ts)

debate.ts:162 runPhase (parallel) verifier.ts verifier-panel.ts T3 Gate Phases seriais • Membros paralelos • Contrarian sempre por último (board loader)
// debate.ts:31
/** The DebateEngine. Phases serial, members within phase IN PARALLEL.
 * Contrarian is forced last by board loader — real sequencing, not prompt claim. */
 
// debate.ts:130
const result = await boundMember.adapter.run(input);  // nunca lança
if (!result.ok) { return failure... }
const scores = parseAxisScores(result.text);
const vote = buildVote({ memberId, axes: scores.value, rationale: result.text });
Ponto arquitetural chave (linhas 34-39): phases são seriais, membros dentro da phase são paralelos. Contrarian sempre vê tudo que foi dito antes porque recebe as contribuições acumuladas via buildModelInput.

Verifier — Maker-Checker (verifier.ts)

// verifier.ts:19
/** Maker-checker Verifier. READ-ONLY BY ARCHITECTURE.
 * Aceita só DebateResult + ContextPack. Não pode re-chamar modelo. */
 
// verifier.ts:84
export type ClaimOracle = (evidence: VerifierEvidence) => { proven: boolean; evidence: string };
 
// verifier.ts:49
export const MAX_LOOPS = 3;
// loopCount > 3 → parkedTier = T4 (humano)
O verifier é o grande diferencial: oráculos determinísticos sobre evidência estruturada (votos, scores, spread, quorum), nunca sobre o texto do maker. Isso é o que permite afirmar "decisão verificada", não "LLM concordou".

Verifier Panel + T3 Emission Gate (verifier-panel.ts)

// verifier-panel.ts:21
// 3 lentes:
Coherence (reusa verifyDecision)
Faithfulness (evidence presente + confidence ≥ 0.5 + strength ≥ 3)
Domain (GO precisa de validation evidence + diversidade)
 
// DEFAULT_PANEL_QUORUM = 2
// preserve-dissent veto: hard failure em qualquer lente → rejeita
Este é o gate real de emissão T3. Qualquer hard failure em qualquer lente barra o sinal, mesmo com quorum.

Como o Dissent é Preservado

O contrarian é forçado por board loader a ser o último membro da última phase (board.ts). O verifier e o panel são projetados para aceitar e reportar dissent explicitamente, em vez de forçar consenso.

Como Verificar Esta Camada (verify)

pnpm test packages/council
# Foco:
# - debate.test.ts
# - verifier*.test.ts (oráculos + parked T4)
# - verifier-panel.test.ts (lentes + quorum + dissent veto)

Common confusions: Achar que "council é só debate de LLMs". Não — o debate é só o maker. O checker (verifier + panel) é programático, determinístico e o verdadeiro gate de qualidade.

Practice task: 1. Leia debate.ts:34-39 (comentário sobre contrarian sequencing). 2. Leia verifier.ts:19-37 (maker-checker architecture). 3. Rode um council T3 e capture o VerificationReport completo. 4. Identifique qual lente hard falhou em um caso de NO-GO. 5. Compare o que acontece quando loopCount > MAX_LOOPS.

Por que L2 é Crítico

Esta camada é o principal mecanismo de qualidade para qualquer decisão cara (T3) ou para o Factory review. O fato de o verifier ser read-only e baseado em oráculos determinísticos é uma das maiores contribuições arquiteturais do projeto.

Entender linha a linha o debate engine, o verifier e o panel é entender como o Alembic consegue afirmar "decisões com dissent preservado e grounded evidence" em vez de "o LLM achou que era boa ideia".

Sem esta camada, o sistema inteiro perderia a capacidade de fazer afirmações fortes sobre qualidade de decisão em tiers pagos.

Esta é uma das camadas mais sofisticadas do projeto do ponto de vista de engenharia de decisão.

O design de separar maker (debate) de checker (verifier + panel) com oráculos determinísticos e preserve-dissent veto é uma contribuição real de engenharia de sistemas de decisão agênticos.

Qualquer um que queira estender o sistema de decisão ou auditar sua robustez precisa dominar estas linhas.

Esta camada, junto com L1 Adapters, forma o núcleo de "decisão confiável" do projeto.

Deep Line-by-Line Analysis

debate.ts:108-159 — O fluxo completo de execução de um membro: bindMember → buildModelInput (passando priorPhases para que o contrarian veja tudo) → adapter.run (sempre Result) → parseAxisScores (tolerante) → buildVote.

debate.ts:162-170 — runPhase usa Promise.all para executar os membros da phase em paralelo.

verifier.ts:22-37 — O comentário de arquitetura explica perfeitamente a separação maker/checker e por que o verifier é read-only.

verifier-panel.ts:34-44 — O design de 3 lentes com hard claims + quorum + preserve-dissent veto é o que torna o gate T3 realmente forte.

Este nível de rigor em um sistema de decisão agêntico é raro e é uma das razões pelas quais o Alembic consegue fazer afirmações fortes sobre qualidade mesmo em tiers pagos.

Depois de dominar L2 Council, fica muito mais claro por que o projeto investiu tanto em separação de responsabilidades e oráculos determinísticos.

Esta é uma das camadas mais maduras e bem pensadas do motor de destilação agêntica.

Entender L2 Council em profundidade é essencial para qualquer pessoa que queira trabalhar com tomada de decisão de alto custo em sistemas agênticos.

Esta deep dive completa a visão das principais camadas de decisão do projeto.

O próximo passo natural seria L3 Swarm ou L4 Harness, mas L2 já dá uma visão muito sólida do mecanismo de decisão de alto nível.

Deep Line-by-Line Walkthrough

debate.ts:108-159 — Fluxo completo de um membro: bind → buildModelInput (com priorPhases) → adapter.run (Result) → parseAxisScores → buildVote.

debate.ts:162 — runPhase despacha todos os membros da phase em paralelo.

verifier.ts:84 — ClaimOracle é uma função pura sobre VerifierEvidence. Nunca chama modelo.

verifier.ts:49 — MAX_LOOPS = 3. Acima disso → parkedTier = T4.

verifier-panel.ts:40 — FAITHFULNESS_CONFIDENCE_FLOOR = 0.5 + STRENGTH_FLOOR = 3.

Quorum + preserve-dissent veto é o que torna o gate T3 realmente rigoroso.

Source Anchors (Evidência Direta)

Arquivo:linhaConceito
/packages/council/src/debate.ts:31DebateEngine architecture
/packages/council/src/debate.ts:130adapter.run por membro
/packages/council/src/verifier.ts:19Maker-checker Verifier
/packages/council/src/verifier.ts:84ClaimOracle definition
/packages/council/src/verifier-panel.ts:213 lenses + quorum
/packages/council/src/verifier-panel.ts:40FAITHFULNESS floors
/packages/council/src/consensus.tsMIN_VALID_AGENTS + spread
/packages/council/src/board.tsBoard loader + contrarian last