Audience Scheme | Frontmatter publish:
Convenção de frontmatter para controlar em quais wikis cada arquivo aparece. Complementa publish-contract (defaults por pasta).
Princípios
- Default conservador: sem tag explícita, assume o default da pasta.
- Allowlist, não denylist:
publish: [internal]significa “só internal”; sem incluirclient, não vai para cliente. - Sobrescreve o default da pasta: frontmatter do arquivo sempre tem prioridade sobre
publish-contract. - 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
| Tag | Efeito |
|---|---|
#sensivel | Força publish: none independente do frontmatter. Guardrail de segurança. |
#draft | Exclui de client e board, mantém em internal. |
#arquivo | Arquivado — exclui de todas as wikis (mantém no vault). |
#publico | Reservado 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
| Caso | Decisã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 frontmatter | Usa default da pasta |
Pasta não tem default explícito em publish-contract | Default global: [internal] |
| Arquivo em múltiplas listas mas linka para arquivo fora da lista | Link 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
#sensivelnão tempublish:com audiência externa
(Não existe ainda — criar quando o primeiro build for habilitado.)
Ver também
- publish-contract — defaults por pasta
- deployment-guide
- MEMORY-CONTRACT §6 — dados sensíveis