Galeria de blocos & demos
Todo bloco que o curso sabe construir, ao vivo e interativo, em um só lugar — agora com conteúdo do próprio Alembic. É a prova de que o vocabulário visual está mapeado e funcionando: fluxogramas com losango de decisão, comparativos, calculadoras de custo, flashcards, previsão, exemplo resolvido, revisão cumulativa, contadores, gráficos e animação — todos no design canônico Warm-Neutral, claro e escuro. Use como referência ao montar uma lição.
- Que cada tipo de diagrama/fluxograma/SVG tem um padrão pronto, animado e seguro nos dois temas.
- Que a interatividade (sliders, abas, flashcards, previsão, quiz) já está fiada no
course.jscompartilhado viawindow.lessonInit. - Que a pedagogia (objetivos, exemplo-antes-da-abstração, recuperação, revisão espaçada, feedback específico) é estrutural, não enfeite.
- Que tudo é self-contained: abre do
file://, sem build, sem rede, zero erros de console.
Mapeia: lesson-generator (objectives) + a barra de progresso no topo que marca ◇→◆ conforme você rola.
Fluxograma
Mapeia demo: 13 · flowchart-diagram · 16 · implementation-plan. Caixas + losango de decisão + setas; caminho tracejado animado (.flow) e traço que se desenha no reveal (.draw). Conteúdo: a pipeline de gates do Alembic (Lição 17).
Diagrama comparativo
Mapeia demo: 14/15 · research-explainer. Dois lados, mesma escala, a diferença salta aos olhos: dependência injetada × hardcoded (a disciplina ports-and-injection da Lição 05).
FsPort e Clock e o teste injeta fakes; à direita ele importa fs e chama Date.now() — o teste fica acoplado ao disco e ao relógio. ADR-0009.Calculadora de custo por Tier
Mapeia demo: 20 · prompt-tuner / 06 · component-variants — um controle muda uma variável e o SVG + o número recalculam ao vivo. Conteúdo: costPer1k…Usd do registro real (Lição 27).
Cintura estreita — chamada com guardas
Mapeia demo: 07 · prototype-animation — um ponteiro analógico mostra a fração de chamadas que passam pela cintura (runWithGuards) em vez de estourar. Conteúdo: never-throws da Lição 14.
Result.err, nunca como exceção. É a Lição 14, ao vivo.Abas Simples / Técnico
Mapeia demo: 04 · code-understanding + a pedagogia "explique simples, depois preciso". O mesmo conceito (a cintura estreita) em duas profundidades.
A cintura estreita é o único ponto por onde toda chamada de modelo passa. Em vez de espalhar try/catch pelo código, há um contrato: a chamada sempre devolve um resultado — "deu certo" ou "deu erro" —, nunca uma exceção que derruba a run.
runWithGuards envolve cada chamada: valida a entrada com Zod, abre um try/catch, aplica circuit-breaker + retry com backoff, e uma rede de segurança externa converte qualquer throw remanescente num ModelRunResult discriminado em ok. O contrato Result<T, Error> de @alembic/contracts é fail-closed por construção.
Flashcards
Mapeia demo: 06 · component-variants + a recuperação ativa do learn. Clique (ou Enter/Espaço) para virar; tente lembrar antes.
Result.ok ou Result.err, jamais uma exceção. ADR-0009.costPer1kInputUsd e …OutputUsd são ambos 0 no registro.Previsão
Mapeia: a previsão-antes-da-revelação do learn. Comprometa um palpite e a resposta aparece.
Um turno do passe de aprendizado (reviewAndLearn) divide as propostas em buckets. Quantos buckets existem — 2, 3 ou 4 — e quais?
Três: aplicado, rejeitado e falho. O ReviewGate (com scoreThresholdGate(0.7)) decide aplicado×rejeitado; "falho" captura o que estourou no caminho — controle de fluxo fail-closed. É a Lição 08.
Exemplo resolvido
Mapeia demo: 16 · implementation-plan + o worked-example→try-it do learn. Passos numerados, depois você repete.
Quiz com feedback
Mapeia demo: 15 · concept-explainer. Opções do mesmo tamanho (sem pista pela forma) e feedback específico: por que a certa é certa e por que cada errada falha.
unit.proof[] vira um bash -c; saída não-zero falha a run e o resultado é persistido em units/<id>/proof-results.jsonl. "Continua" erra: gates são fail-closed por design. "Retry e ignora" erra: não há ignore — a evidência é exigida. É a Lição 17.Revisão cumulativa
Mapeia: a revisão espaçada do lesson-generator. Um placar corre por todas as perguntas do bloco.
Recupere de memória
Contadores
Mapeia demo: 11 · status-report. Números que sobem (count-up) ao entrarem na tela.
Gráfico de barras
Mapeia demo: 11 · status-report / 15. Barras que crescem no reveal (.gbar, origem à esquerda). Conteúdo: custo por 1k tokens por Tier (registro real).
SVG animado
Mapeia demo: 07/08 · prototype-animation/interaction · 10 · svg-illustrations. Quatro animações: fluxo (.flow), pulso (.lit), flutuar (.float) e desenhar (.draw). Conteúdo: uma chamada de modelo atravessando a cintura estreita.
Cartões de fonte
Mapeia demo: 14 · feature-explainer. Fontes primárias como links reais clicáveis — nunca escondidas em JS. Aqui, os próprios docs do repositório.
Blocos de prosa
Mapeia demo: 12 · incident-report / 17 · pr-writeup. Os blocos que carregam a explicação: callout, spotlight, recall, citação e tabela comparativa.
alembic.plan.ts) não podem usar Date.now() nem Math.random() — a VM rejeita.Result."O código vence: builder ≠ validator, Proof-Gate em tudo, nenhum progresso vale sem prova na fronteira real."— síntese do método de engenharia reversa (Lição 20)
| Tier | Exemplo | $/1k (in+out) | Papel no funil |
|---|---|---|---|
| T0 / LOCAL | local-default | $0 | destilação offline |
| T1 | qwen3.7-plus | ~$0.00065 | extração barata |
| T2 | deepseek-v4-pro | ~$0.0005 | metered |
| T3 | council+verifier | ~$0.18 | gate de emissão |