Audience Scheme | Frontmatter publish:

governanca publicacao

Convenção de frontmatter para controlar em quais wikis cada arquivo aparece. Complementa publish-contract (defaults por pasta).


Princípios

  1. Default conservador: sem tag explícita, assume o default da pasta.
  2. Allowlist, não denylist: publish: [internal] significa “só internal”; sem incluir client, não vai para cliente.
  3. Sobrescreve o default da pasta: frontmatter do arquivo sempre tem prioridade sobre publish-contract.
  4. Público explícito: para publicar algo ao board, tem que marcar publish: [..., board]. Não há inferência.

Valores aceitos

publish: [internal, client, board]   # visível nas três wikis
publish: [internal, client]           # interno + cliente (não board)
publish: [internal]                   # só interno
publish: none                          # bloqueia mesmo que default da pasta permita
publish: default                       # usa o default da pasta explicitamente (mesmo que omitir)

Forma curta (syntactic sugar)

Quando só uma audiência:

publish: internal

É equivalente a publish: [internal].


Exemplo de uso por tipo de documento

Arquivo canônico interno

---
title: Riscos do Projeto
publish: internal  # só Anouk enxerga
---

Entregável ao cliente

---
title: Plano Estratégico Costal v2
publish: [internal, client]  # Anouk + Igor/time Costal
---

Brief executivo ao board

---
title: Brief Executivo Q2 2026
publish: [internal, client, board]  # todas as três
---

Documento sensível — nunca publicar

---
title: Negociação comercial em curso
publish: none
tags: [sensivel]
---

Documento que herda da pasta

---
title: Ata de reunião interna
# sem publish: — usa default da pasta (internal conforme publish-contract)
---

Tags adicionais que afetam publicação

TagEfeito
#sensivelForça publish: none independente do frontmatter. Guardrail de segurança.
#draftExclui de client e board, mantém em internal.
#arquivoArquivado — exclui de todas as wikis (mantém no vault).
#publicoReservado para futuro (wiki pública sem auth). Hoje ignorado.

Regra de precedência: #sensivel > publish: none > publish: [lista] > default da pasta.


Campos auxiliares (opcionais)

Quando publicar ao cliente ou board, considere incluir:

---
title: Plano Estratégico Costal v2
publish: [internal, client]
audience-note: "Para Igor e time Costal. Não distribuir fora sem autorização do Pedro."
publish-summary: "Plano atualizado — seção X ampliada, dependência Y resolvida."
publish-as: "plano-estrategico-costal-v2"  # slug custom na wiki (opcional)
---

O template Quartz exibe audience-note como banner na topo da página.


Casos-limite

CasoDecisão
Arquivo tem publish: none e pasta default é [internal, client]Não publica em lugar nenhum (file wins)
Arquivo tem publish: [client] (sem internal)Publica só em client. Gera warning no build — time Anouk perde visibilidade. Permitido mas desencorajado.
Arquivo não tem frontmatterUsa default da pasta
Pasta não tem default explícito em publish-contractDefault global: [internal]
Arquivo em múltiplas listas mas linka para arquivo fora da listaLink quebrado na wiki daquela audiência — ver §5 de publish-contract sobre links cruzados

Validador

O script 99-operacao/scripts/publish-lint.py (a ser criado) valida:

  • Frontmatter publish: tem valor aceito
  • Sem referência circular (A linka B, B tem publish mais restrito que A na mesma wiki)
  • Arquivo com #sensivel não tem publish: com audiência externa

(Não existe ainda — criar quando o primeiro build for habilitado.)


Ver também