---
name: lume-content-authoring
description: >
  Use esta skill para criar, revisar, adaptar ou importar conteúdos educacionais no
  LumeAuthor. Estruture objetivos, tópicos, explicações, exemplos, mídias, práticas,
  diagnóstico, avaliação, síntese e referências com os componentes semânticos atuais
  do builder. Use o contrato nativo .lume.json quando solicitado e preserve a
  independência entre conteúdo, função didática e Tema visual.
lang: pt-BR
---

# Autoria de conteúdo Lume

Crie aulas que funcionem como leitura editorial guiada: claras, pedagogicamente
coerentes, escaneáveis e compatíveis com o editor, a exportação web, SCORM e PDF.

Consulte `builder/registry.jsx` antes de produzir JSON. Ele é a fonte de verdade
para tipos, propriedades, defaults e blocos permitidos dentro de tópicos.

## Princípios

Separe três camadas:

1. **Conteúdo:** conceitos, exemplos, perguntas, dados, fontes e linguagem.
2. **Semântica didática:** função do trecho e componente que a representa.
3. **Apresentação:** Tema, superfícies, contraste, cor, tipografia e composição.

Escolha componentes pela função didática, nunca pela aparência. O Tema resolve
automaticamente o contraste de texto e elementos quando o fundo muda.

### O conteúdo decide

- sequência pedagógica e hierarquia `h2`/`h3`;
- limites dos tópicos;
- componente adequado a cada função;
- texto, listas, dados e ordem narrativa;
- objetivos e sua relação com atividades e questões;
- necessidade pedagógica de imagem, áudio, vídeo, tabela ou interação;
- ícones quando eles carregam significado editorial;
- marcações inline semânticas e termos de glossário;
- fontes, créditos, links e referências.

### O conteúdo não decide por conta própria

- fundo ou superfície de bloco;
- família, tamanho ou peso tipográfico;
- espaçamento, raio, sombra, largura ou comportamento responsivo;
- cor por associação subjetiva com o assunto;
- distribuição decorativa de componentes;
- CSS, classes visuais adicionais ou estilos inline.

Alguns componentes possuem campos autorais de cor, ícone, marcador, alinhamento ou
imagem. Preserve esses campos no JSON. Preencha ícones quando houver intenção
semântica clara; para cor e layout, use o default do registro, salvo pedido do autor.

## Fluxo de trabalho

### 1. Entender a aula

Determine ou confirme:

- público, contexto e repertório prévio;
- profundidade e tempo de estudo;
- objetivo geral e resultados observáveis;
- tópicos obrigatórios, exclusões e restrições;
- fontes obrigatórias ou autorizadas;
- idioma e variedade linguística;
- diagnóstico inicial, prática e avaliação final;
- nota mínima, quando houver avaliação;
- formato de entrega: roteiro, Markdown, JSX ou `.lume.json`.

Não invente dados, fontes, citações ou links. Pesquise quando a exatidão depender de
informação atual, especializada ou verificável.

### 2. Formular objetivos

Use verbos observáveis: identificar, explicar, comparar, aplicar, analisar,
elaborar, justificar e avaliar. Evite “conhecer”, “aprender” ou “compreender” sem
uma ação verificável.

Cada objetivo deve:

- caber no escopo da aula;
- ser ensinado no desenvolvimento;
- aparecer em exemplo ou prática quando apropriado;
- ser avaliado se a aula tiver avaliação final.

### 3. Projetar a sequência

Use a estrutura abaixo como orientação, sem criar blocos artificiais:

**Abertura**

1. Hero com gancho e contexto.
2. Objetivos de aprendizagem.
3. Ativação de conhecimentos prévios ou diagnóstico opcional, sem nota.

**Desenvolvimento**

1. Tópicos conceituais coerentes.
2. Explicações, exemplos e comparações.
3. Alertas sobre erros ou limites.
4. Prática guiada e recuperação ativa.

**Fechamento**

1. Reflexão ou transferência.
2. Avaliação final, se aplicável.
3. Síntese.
4. Materiais e referências.

### 4. Validar

Confira alinhamento entre objetivos, desenvolvimento, prática e avaliação. Remova
componentes redundantes, conteúdo decorativo e repetições que não ajudem a aprender.

## Tópicos e posição dos blocos

`topic` é uma unidade conceitual que compartilha fundo e ritmo interno. Um bloco
deve ficar dentro do tópico quando participa diretamente daquele raciocínio.

Na implementação atual, todo bloco pode ser filho de `topic`, exceto:

- `topic`;
- `hero`;
- `sintese`;
- `referencias`.

Portanto, `divider`, `citacao`, `reflexao`, `feature`, `slider`, `flashcards`,
`quiz`, `materiais` e os demais componentes podem ficar dentro de um tópico quando
essa for a relação semântica correta. Eles também podem ser blocos raiz quando
representarem uma pausa, atividade ou seção independente.

Regras:

- não coloque tudo na raiz por hábito;
- não coloque tudo dentro de tópico apenas por proximidade visual;
- não crie tópicos vazios para produzir uma faixa de cor;
- não misture assuntos independentes no mesmo tópico;
- use `h2` para o foco principal e `h3` para subdivisão real;
- `hero`, `sintese` e `referencias` permanecem estruturais e na raiz.

## Contrato dos componentes

### Estrutura e texto

#### `hero` / `LessonHero`

Abre a aula. Campos:

- `eyebrow`: categoria, unidade ou contexto curto;
- `title`: título da aula;
- `lead`: gancho que apresenta a questão central;
- `author`: nome exibido;
- `authorImage`: foto opcional; vazia mantém a inicial no círculo;
- `readTime`: tempo total estimado de estudo;
- `date`: ano, edição ou data curta.

Não numere o título manualmente. A foto deve representar a pessoa autora e ter uso
autorizado; não invente uma imagem.

#### `topic`

Agrupa uma unidade conceitual. Em JSON, os filhos ficam em `props.children` e não
possuem `bg` nem `pad` próprios.

#### `titulo`

Título de seção `h2` ou subseção `h3`. Use sentence case e títulos informativos.

#### `eyebrow` / `Eyebrow`

Sobrelinha curta dentro de um tópico, com ícone Font Awesome opcional.

Use para orientar leitura, por exemplo: “Conceito-chave”, “Antes de continuar”,
“Exemplo aplicado” ou “Em resumo”. Não use como segundo título longo nem repita o
`h2`. O campo `icon` pode ficar vazio.

#### `prose` / `Prose`

Texto corrido com parágrafos, listas verdadeiras e marcações semânticas. Evite
paredes de texto; um bloco substancial costuma desenvolver uma ideia central.

#### `divider` / `ChapterDivider`

Transição estrutural curta. Pode ser inserido dentro de um tópico.

Use quando houver mudança de fase narrativa sem necessidade de um novo título.
Não gere divisores automáticos chamados “Abertura”, “Desenvolvimento” ou
“Fechamento”.

#### `citacao` / `Citacao`

Pode cumprir duas funções:

1. citação direta verificável, com `showAttribution: true`;
2. olho editorial para destacar um trecho autoral, com `showAttribution: false`.

Campos: `quote`, `author`, `source`, `showAttribution`.

Nunca apresente uma paráfrase como fala literal. Quando a autoria estiver oculta,
o texto não deve induzir o leitor a acreditar que se trata de uma citação externa.

#### `sintese` / `Sintese`

Fecha a aula retomando objetivos e ideias essenciais. Não introduz conceito novo.
Campos: `eyebrow`, `title`, `body`.

#### `referencias` / `ReferenciasABNT`

Lista somente fontes realmente usadas. Use NBR 6023 quando solicitado.

### Orientação, ênfase e voz

#### `destaque` / `Destaque`

Ideia indispensável, princípio, definição operacional ou objetivo da aula. Um foco
principal por bloco.

Campos: `title`, `body`, `tone`, `icon`. A cor e o ícone podem ser alterados pelo
autor; na geração, mantenha o `tone` default e deixe `icon` vazio ou escolha um
Font Awesome semanticamente inequívoco.

#### `atencao` / `Atencao`

Erro comum, risco, exceção, limite ou cuidado. Comece pelo problema e explique como
evitá-lo. Campos: `title`, `body`, `tone`, `icon`.

#### `reflexao` / `Reflexao`

Pergunta aberta para ativação, metacognição ou transferência. Não registra resposta
nem nota. Pode ficar dentro de um tópico ou na raiz.

Campos: `title`, `question`, `body`, `tone`, `icon`. Evite perguntas respondidas
literalmente pela frase anterior.

#### `pitaco` / `PitacoDo` / Balão de comentário

Comentário breve de pessoa, persona, especialista ou voz editorial.

Campos atuais:

- `kicker`: cabeçalho completo e livre, como “Comentário da Ana”, “Nota da
  curadoria” ou “Pitaco do professor Luís”;
- `name`: nome ou descrição usada no avatar e acessibilidade;
- `role`: cargo ou papel opcional;
- `src`: foto opcional;
- `tone`: acento visual preservado pelo default ou escolha autoral;
- `body`: comentário.

Não use mais seleção de gênero nem construa automaticamente “do/da”. Não invente
persona ou atribuição sem autorização.

### Exemplificação e mídia

#### `imagem` / `ImagemLegenda`

Imagem explicativa com `src`, `slotId`, `caption`, `credit` e `ratio`.

- descreva a função pedagógica da imagem;
- escreva legenda informativa, não apenas descritiva;
- informe crédito e fonte verificável;
- deixe `src` vazio quando for apenas recomendação autoral.

Para uma sugestão de banco de imagens, forneça a página estável da imagem,
plataforma, criador quando disponível, descrição e justificativa. Marque como
“sugestão opcional — requer decisão do autor”. Não afirme licença sem verificar.

Quando uma imagem de abertura ajudar a preparar um `h2`, coloque o bloco `imagem`
antes do título dentro do tópico. Não force imagem em toda seção se ela for apenas
decorativa ou repetir o que o texto já explica melhor.

#### `parallax` / `ParallaxImage`

Imagem de abertura ou transição imersiva, com título sobreposto opcional. Use
somente quando a imagem tiver função narrativa forte. O conteúdo não depende do
efeito parallax para fazer sentido.

#### `textoimagem` / `TextoImagem`

Texto e imagem que formam uma única explicação. Campos de ordem, largura e sangria
são opções editoriais; preserve defaults se o autor não pedir outra composição.

#### `video` / `VideoYouTube`

Use para movimento, demonstração ou fala. Informe ID/URL, título, legenda, crédito
e início quando necessário. Não use vídeo apenas para repetir a prosa.

#### `audio` / `AudioPodcast`

Use quando escuta, voz ou paisagem sonora agregarem valor. Informe fonte, título,
programa, descrição e duração.

#### `cases` / `CaseCards`

Casos ou exemplos paralelos com estrutura comparável. Cada card usa `tag`, `title`,
`text`, `src` e `slotId`. Não use quando os itens formam uma sequência dependente.

Contrato JSON exato:

```json
{
  "type": "cases",
  "props": {
    "title": "Compare os casos",
    "intro": "",
    "columns": 2,
    "layout": "vertical",
    "cards": [
      {
        "tag": "Exemplo",
        "title": "Título do caso",
        "text": "Explicação curta e comparável.",
        "src": "",
        "slotId": "case-exemplo-1"
      }
    ]
  }
}
```

O array se chama obrigatoriamente `cards`. Nunca use `cases`, `items` ou `examples`
como alias. A URL de imagem, quando houver, usa `src`; nunca `image` ou `url`.

#### `feature` / `FeatureGrid`

De dois a seis pontos equivalentes e escaneáveis. Campos: `title`, `intro`, `align`
e `features[]`; cada item usa `icon`, `tone`, `title` e `text`.

- escolha ícone Font Awesome Free pelo significado;
- prefira nome sólido sem prefixo, como `dna`, `bolt`, `flask`, `leaf`,
  `shield-halved`, `heart-pulse`, `book-open`, `users` ou `chart-line`;
- confirme que o identificador existe;
- não escolha `tone` com base no assunto; preserve o default;
- o texto se adapta automaticamente ao contraste do fundo do tópico.

#### `filmstrip` / `Filmstrip`

Sequência visual, galeria narrativa ou conjunto de cartões exploráveis. A ordem dos
itens deve importar. Não use apenas como grade decorativa.

#### `tabela` / `Tabela`

Dados tabulares ou comparação matricial. Campos: `caption`, `fonte`, `headers`,
`rows`, `striped`, `destacarPrimeira`, `compact`.

- nunca escreva `<table>` dentro de `prose`;
- cada linha deve ter o mesmo número de células dos cabeçalhos;
- não use tabela para alinhar texto;
- a tabela usa superfície clara própria em desktop e mobile, independentemente do
  fundo do tópico; não tente compensar contraste no conteúdo;
- no mobile ela pode ser reorganizada em cartões, mantendo texto escuro legível.

#### `linhadotempo` / `LinhaDoTempo`

Use quando cronologia for parte do significado. Cada era tem rótulo e intervalo;
cada evento tem data/período, título, explicação, imagem opcional e estado inicial.
Não escolha cor por associação histórica ou temática.

### Interação e prática

#### `slider` / `Slider`

Sequência de slides, não necessariamente um passo a passo.

Campos:

- `label`: texto livre no topo, como “Passo a passo”, “Sequência”, “Cenários” ou
  “Ideias para observar”; pode ficar vazio;
- `steps[]`: cada slide possui `marker`, `icon`, `title` e `body`;
- `marker`: número ou texto curto, como `01`, `A`, `Dica`;
- `icon`: Font Awesome opcional; quando preenchido, substitui o marcador.

Use para processos, fases, cenários, dimensões ou narrativas cuja ordem importe.
Não fragmente prosa apenas para criar interação. Prefira de três a seis slides,
quando o conteúdo permitir.

`body` aceita HTML editorial simples, incluindo `<p>`, `<strong>` e `<em>`.

#### `flashcards` / `FlashCardDeck`

Recuperação ativa. Frente curta e interrogativa; verso enxuto, autossuficiente e
correto. Evite cartões que pedem apenas reconhecimento visual. Título e paginação
adaptam contraste ao fundo automaticamente.

#### `accordion` / `Accordion`

Aprofundamento opcional, FAQ ou conteúdo consultivo. Não esconda informação
essencial para cumprir objetivos.

Contrato JSON exato:

```json
{
  "type": "accordion",
  "props": {
    "items": [
      {
        "title": "Pergunta ou título do item",
        "body": "<p>Resposta com <strong>destaque</strong> e <em>ênfase</em>.</p>"
      }
    ]
  }
}
```

Use obrigatoriamente `title` e `body`. As chaves legadas `q` e `a` ainda são
lidas pelo builder para compatibilidade, mas não devem ser geradas. `title`
aceita negrito e itálico; `body` também aceita múltiplos parágrafos.

#### `quiz` / `Quiz`

**Diagnóstico inicial**

- opcional e sem nota;
- ativa conhecimentos prévios;
- oferece feedback explicativo;
- pode estar dentro de um tópico de abertura ou como bloco raiz.

**Avaliação final**

- no máximo uma por aula;
- usa nota de `0` a `10`;
- cobre os objetivos ensinados;
- oferece explicação da resposta correta;
- não avalia conteúdo ausente da aula;
- normalmente é raiz, por representar um momento global de fechamento.

Campos de questão: `objective`, `q`, `options`, `answer`, `explanation`.

Campos atuais de `props`: `title`, `intro`, `avaliativo`, `passMark` e
`questions`. `answer` é o índice numérico, começando em zero, da alternativa
correta. Não traduza nem substitua chaves técnicas: não use `description`, `graded`,
`scoreScale`, `correctAnswer` ou `passingScore`.

`intro`, `q` e `explanation` aceitam HTML editorial simples (`<p>`, `<strong>`
e `<em>`), inclusive múltiplos parágrafos. As alternativas permanecem texto
simples para preservar a clareza e a consistência dos controles.

Escreva alternativas plausíveis, paralelas e sem pistas gramaticais. Evite
pegadinhas, dupla negação e “todas as anteriores”.

#### `materiais` / `MateriaisExtras`

Curadoria de aprofundamento. Cada item usa exatamente `type`, `title`, `source` e
`href`. Prefira poucos recursos diretamente relacionados aos objetivos.

Contrato JSON exato:

```json
{
  "type": "materiais",
  "props": {
    "title": "Para ir além",
    "items": [
      {
        "type": "artigo",
        "title": "Título do recurso",
        "source": "Autor, perfil ou organização",
        "href": "https://exemplo.org/recurso"
      }
    ]
  }
}
```

- use `href`, nunca `url`, `link` ou texto de orientação no lugar do endereço;
- use tipos reconhecíveis pelo componente, preferencialmente `artigo`, `livro`,
  `video`, `site`, `pdf` ou `download`;
- todo `href` deve começar com `https://` e apontar diretamente para a página do
  recurso ou perfil, não para uma busca, homepage genérica ou URL inventada;
- abra e verifique cada link antes da entrega; remova recursos inacessíveis,
  redirecionamentos suspeitos, páginas sem relação com o título e links que exijam
  uma sessão privada para serem identificados;
- priorize fontes brasileiras e conteúdo em português do Brasil: perfis oficiais
  de redes sociais, blogs especializados, tutoriais, vídeos, guias e ebooks;
- quando uma fonte brasileira adequada não existir, use uma fonte internacional
  de referência e sinalize o idioma no campo `source`;
- não preencha materiais extras apenas com livros citados nas referências. Busque
  formatos práticos e variados que ajudem o estudante a aplicar os objetivos;
- perfis de redes sociais devem usar a URL canônica do perfil oficial; vídeos,
  posts, artigos, tutoriais e ebooks devem usar a URL canônica do item específico.

## Marcações inline

Use marcações pelo significado:

- `<strong>`: importância lógica;
- `<em>`: ênfase de voz, título de obra ou expressão estrangeira;
- `<mark>`: trecho-chave com marca-texto padrão;
- `<mark class="hl-pink">`, `<mark class="hl-green">` ou
  `<mark class="hl-blue">`: variantes disponíveis quando o autor pedir;
- `<span class="scribble">...</span>`: palavra ou expressão curta como âncora;
- `.termo`: primeira ocorrência de conceito que precisa de definição.

Marca-texto e `scribble` funcionam como alternância no editor: clicar novamente no
mesmo comando remove a marca. Não gere marcas aninhadas nem múltiplas camadas sobre
o mesmo trecho.

Evite excesso. Em um `prose` substancial, normalmente bastam um a três trechos
marcados e zero a dois `scribble`. Não aninhe `mark`, `scribble`, `strong`, `em` e
`termo` entre si.

Markup compatível para glossário:

```html
<span class="termo" role="button" tabindex="0" aria-expanded="false">Termo<span class="termo__pop" role="tooltip"><span class="termo__label">Glossário</span><span class="termo__word">Termo</span><span class="termo__def">Definição curta e contextual.</span></span></span>
```

Use de um a quatro termos realmente relevantes por tópico. Não aplique glossário
em títulos, links ou alternativas de quiz.

Marks e glossário fazem parte da autoria, não são acabamento opcional. Em uma aula
com três ou mais tópicos conceituais:

- distribua marcações em diferentes tópicos, em vez de concentrá-las na abertura;
- use ao menos uma marcação semântica (`mark`, `strong`, `em` ou `scribble`) na
  maioria dos tópicos que contenham prosa substancial;
- inclua termos de glossário sempre que houver vocabulário técnico, siglas,
  fórmulas, métodos ou conceitos cuja definição ajude o público-alvo;
- como verificação mínima, uma aula conceitual deve normalmente conter pelo menos
  três termos de glossário distintos no total; omita-os somente quando não houver
  termos que precisem de definição e registre essa decisão na revisão;
- aplique o markup completo na primeira ocorrência pedagógica do termo. Menções
  posteriores permanecem como texto comum.

Não crie uma propriedade JSON chamada `marks` ou `glossary`: as marcações e os
termos ficam dentro do HTML de campos rich text, principalmente `prose.props.body`.

## Voz editorial

- padrão pt-BR, salvo pedido diferente;
- fale diretamente com “você” quando apropriado;
- seja claro, caloroso e preciso, sem tom professoral;
- use sentence case em títulos;
- alterne frases curtas e médias;
- use listas apenas para enumerações reais;
- defina termos técnicos na primeira ocorrência;
- não use emojis;
- não use citação sem fonte verificável;
- escreva texto que continue claro sem depender da cor ou do ícone.

## Tempo de estudo

Estime o total, não só a leitura:

- leitura: cerca de 200 palavras por minuto;
- processamento e releitura: multiplique por `1,8–2,5`;
- some duração real de vídeo e áudio;
- some cerca de um minuto por questão;
- some dois minutos por reflexão;
- some meio minuto por flashcard;
- arredonde para cima em múltiplos de cinco minutos.

## JSON LumeAuthor

O arquivo importável possui:

```json
{
  "meta": {
    "title": "Título da aula",
    "author": "Nome",
    "role": "Papel",
    "institution": "Instituição",
    "year": "2026",
    "aiTool": "",
    "aiUse": "",
    "license": "https://creativecommons.org/licenses/by-nc-sa/4.0/deed.pt-br"
  },
  "blocks": []
}
```

### Bloco raiz

```json
{
  "id": "b-identificador-estavel",
  "type": "tipo",
  "bg": "neutral-default",
  "pad": "normal",
  "props": {}
}
```

### Filho de tópico

```json
{
  "id": "c-identificador-estavel",
  "type": "tipo",
  "props": {}
}
```

Regras obrigatórias:

- use IDs únicos e estáveis;
- blocos raiz possuem `bg` e `pad`;
- filhos de tópico não possuem `bg` nem `pad`;
- consulte `builder/registry.jsx` para copiar todos os defaults técnicos;
- comece cada bloco copiando `props` do registro e altere somente os valores
  autorais; nunca traduza, pluralize, renomeie ou deduza nomes de chaves;
- em componentes com arrays, confirme também o nome exato do array e as chaves de
  cada item (`cards`, `features`, `steps`, `items`, `questions`, `rows` etc.);
- use IDs estruturais de superfície do Tema, nunca nomes de cor presumidos;
- não inclua CSS ou estilos inline;
- preserve campos vazios que ativam fallback, como `authorImage`, `icon` e `src`;
- tabelas são blocos `tabela`, nunca HTML em `prose`;
- `hero`, `sintese` e `referencias` ficam na raiz;
- `divider` e `eyebrow` podem ser filhos de tópico;
- a exportação HTML e SCORM inclui automaticamente uma cópia `.lume.json` do
  projeto; o conteúdo gerado deve continuar reabrível no editor.

### Pré-validação obrigatória do JSON

Antes de entregar um `.lume.json`:

1. releia `builder/registry.jsx` na versão atual do projeto;
2. compare cada `type`, cada chave de `props`, cada array e cada item com o registro;
3. procure aliases comuns e corrija-os: `cases` → `cards`, `image` → `src`,
   `url`/`link` → `href`, `description` → `intro`, `graded` → `avaliativo` e
   `passingScore` → `passMark`, somente nos componentes em que o registro define
   a chave de destino;
4. confirme que arrays essenciais não ficaram vazios por erro de chave;
5. confirme que todo material extra tem `title`, `source`, `type` e `href` HTTPS
   verificado;
6. conte as marcações inline e os termos `.termo`; se estiverem ausentes, revise o
   conteúdo em vez de considerar a presença deles opcional por padrão;
7. importe o arquivo no builder quando o ambiente estiver disponível e verifique
   visualmente ao menos cards, listas, quiz, materiais e rich text.

Não entregue JSON apenas porque ele passa em `JSON.parse`: JSON sintaticamente
válido ainda pode estar semanticamente incompatível e ter conteúdo ignorado pelo
builder.

Ao gerar JSON, prefira os defaults semânticos atuais:

- superfícies: IDs como `neutral-default`, `neutral-subtle` e `accent-N-*`, de
  acordo com o registro e o Tema ativo;
- espaçamento: `tight`, `normal` ou `airy` conforme o default do componente;
- `showAttribution: true` em citação real e `false` em olho editorial;
- `authorImage: ""` quando não houver foto;
- `kicker` completo no balão de comentário;
- `label`, `marker` e `icon` explícitos no slider;
- `tone` e `icon` preservados nas caixas, normalmente com defaults do registro.

Exemplo de tópico atual:

```json
{
  "id": "b-membrana",
  "type": "topic",
  "bg": "neutral-default",
  "pad": "normal",
  "props": {
    "children": [
      {
        "id": "c-eyebrow-membrana",
        "type": "eyebrow",
        "props": { "text": "Conceito-chave", "icon": "" }
      },
      {
        "id": "c-titulo-membrana",
        "type": "titulo",
        "props": { "text": "A membrana controla a fronteira", "level": "h2" }
      },
      {
        "id": "c-prose-membrana",
        "type": "prose",
        "props": {
          "body": "<p>A membrana <mark>regula as trocas</mark> entre a célula e o ambiente.</p>",
          "dropcap": false,
          "dropcapTone": "terracotta"
        }
      },
      {
        "id": "c-divider-membrana",
        "type": "divider",
        "props": { "label": "Aplicação" }
      },
      {
        "id": "c-slider-membrana",
        "type": "slider",
        "props": {
          "label": "Etapas da troca",
          "steps": [
            { "marker": "A", "icon": "", "title": "Reconhecimento", "body": "A membrana identifica o sinal." },
            { "marker": "", "icon": "arrow-right-arrow-left", "title": "Transporte", "body": "A substância atravessa a membrana." }
          ]
        }
      }
    ]
  }
}
```

## Checklist final

- [ ] Público, nível, escopo e fontes estão claros?
- [ ] Objetivos usam ações observáveis?
- [ ] Todo objetivo é ensinado e, quando aplicável, praticado e avaliado?
- [ ] Tópicos representam unidades conceituais coerentes?
- [ ] Blocos foram colocados dentro ou fora de tópicos por relação semântica?
- [ ] `hero`, `sintese` e `referencias` permanecem na raiz?
- [ ] Eyebrows orientam sem repetir títulos?
- [ ] Divisores são transições reais, não rótulos automáticos de fase?
- [ ] Citações são verificáveis ou estão explicitamente configuradas como olho editorial?
- [ ] O balão usa `kicker` completo, sem lógica de gênero?
- [ ] Sliders usam rótulo e marcador/ícone adequados ao conteúdo, sem presumir “passos”?
- [ ] Features e caixas usam ícones semanticamente válidos?
- [ ] Tabelas usam o componente próprio e possuem linhas consistentes?
- [ ] Flashcards promovem recuperação ativa?
- [ ] Accordion não esconde conteúdo essencial?
- [ ] Há no máximo uma avaliação final e ela usa escala `0–10`?
- [ ] Questões têm alternativas plausíveis, resposta e explicação?
- [ ] Síntese retoma sem introduzir conceito novo?
- [ ] Imagens e mídias têm propósito, fonte e crédito?
- [ ] Marcas inline são moderadas, removíveis e não aninhadas?
- [ ] Termos de glossário usam o markup completo?
- [ ] Marks aparecem ao longo da aula e há glossário quando o vocabulário pede?
- [ ] `cases` usa `props.cards`, com itens `tag`, `title`, `text`, `src` e `slotId`?
- [ ] `materiais.items` usa `type`, `title`, `source` e `href` HTTPS verificado?
- [ ] Materiais extras priorizam recursos brasileiros, práticos e variados?
- [ ] Quiz usa `intro`, `avaliativo`, `passMark` e `answer` numérico começando em zero?
- [ ] JSON usa tipos, props e defaults atuais do registro?
- [ ] Blocos raiz têm `bg`/`pad`; filhos não?
- [ ] Não há CSS, estilos visuais inventados ou dependência de uma paleta específica?
- [ ] O texto permanece claro sem depender da apresentação?

## Regra de desempate

Quando duas opções forem possíveis, escolha o componente que melhor descreve a
função pedagógica. Se a diferença for apenas visual, preserve o default do Tema ou
deixe a decisão para o autor.
