Conceitos

O SOM em dez minutos

Três substantivos, um snapshot e um punhado de regras sobre quem escreve e quem decide. Aprenda isso e os schemas se leem sozinhos.

Os três substantivos

Story, Asset, Telling

Uma história é um acontecimento do mundo real: ela cresce, se divide e muda de rumo, e ninguém conhece a sua forma até que termine. Levar isso para um schema se resumiu a três palavras que os jornalistas já usam.

S

Story

O acontecimento. Do que se trata (tags[], story_meaning), em que ponto está (lifecycle, priority), o que a redação espera (premise), suas fontes e a credibilidade delas, e os gates e alertas de conformidade que pesam sobre ela.

story_type: PLANNED, ACTIVE, KILLED, SPIKED, ARCHIVED, ORPHAN.

A

Asset

O que a redação apura e produz: VIDEO, SCRIPT, GRAPHIC, TRANSCRIPT e saídas generativas como SUMMARY e SOCIAL_POST. Apenas referências — a mídia fica no seu storage.

status é apenas editorial: READY, IN_PRODUCTION, PREPARED, INVALIDATED. “No ar” e “exibido” nunca são guardados aqui.

T

Telling

Um Asset encontrando um público por meio de um destino. Ele segue um link — o vínculo daquele Asset com aquele destino — e registra quando a exposição começou e terminou.

A posição de conformidade pertence ao Telling. O mesmo Asset pode estar liberado num link e bloqueado em outro no mesmo instante.

Snapshots, nunca deltas

Uma Story é publicada inteira, todas as vezes

  • story_id é imutável. Uma revisão é o próximo snapshot, não uma nova Story.
  • sequence_number DEVE aumentar e updated_at DEVE avançar.
  • Quem publica carimba de novo o originating_system, para que uma correção seja atribuída a quem corrigiu, não a quem criou a Story primeiro.
  • Um único escritor cria: o sistema de gestão de histórias do publicador é dono da Story e da sua sequência — nunca a agência, nem mesmo num flash.
  • Uma ferramenta que entra tarde, reinicia ou se reconecta depois de uma queda lê um único objeto e já está atualizada.
O erro mais danoso

Omissão significa ausência, não “sem alteração”

Um produtor NÃO DEVE deixar de fora os campos que não modificou. Um escritor que envia só os seus próprios campos apaga em silêncio o trabalho de todos os outros sistemas sobre a Story.

A especificação traz tools/validate_sequence.py para verificar exatamente essas propriedades numa sequência de snapshots — os bugs que nenhuma mensagem isolada consegue revelar.

Ciclo de vida da Story

Quatro fases, só em Stories ativas

Um bloco lifecycle é obrigatório quando story_type é ACTIVE e proibido nos demais casos — uma regra do schema, não uma convenção. Selecione uma fase.

DEVELOPING

A Story existe e está sendo trabalhada. Os campos chegam ao longo de snapshots sucessivos: uma premise com um grau de confiança, as primeiras entradas em editorial_source[], os primeiros Assets e afirmações.

Cada mudança é um novo snapshot completo com um sequence_number maior. As ferramentas que leem a Story reavaliam cada um deles.

Órfãos. Um clipe que chega sem Story ganha uma Story mínima ORPHAN, só a casca, para guardá-lo, com uma assertion MATCH que propõe a Story verdadeira. Na confirmação o clipe se muda — mesmo asset_id, timestamps originais — e a casca sempre se aposenta como ARCHIVED. Ela nunca é apagada, e os consumidores filtram os órfãos com um único predicado de story_type.

Evidências & afirmações

De onde as coisas vieram, e o que está sendo afirmado

editorial_source[]

Fontes e credibilidade

Cada fonte traz um tipo (WIRE, OFFICIAL, USER_GENERATED, …) e uma credibility declarada: TRUSTED, VERIFIED, ENDORSED ou UNVERIFIED. Credibilidade é um eixo diferente da autenticidade da mídia.

assets[].provenance

Autoria

HUMAN ou MODEL, com modelo e versão só no caso de modelos. Uma authenticity_credential C2PA registra present: false em vez de esconder a sua ausência. O grau de confiança é opcional — não invente um para texto livre.

assertions[]

Afirmações em revisão

FACT_CHECK (uma métrica e um valor), DETECTION ou MATCH, cada uma com um review PENDING, CONFIRMED ou REJECTED. Entradas rejeitadas são marcadas, nunca apagadas. Em qualquer divergência, a assertion prevalece.

Gates & auditoria

Nada chega a um público sem um gate editorial

Uma skill declara, a ferramenta dona do executor decide e uma pessoa aprova. Uma liberação é concedida a uma versão do texto, então uma reescrita reabre o gate em vez de herdar a aprovação.

hold

O executor DEVE reter a saída nos campos afetados. Só é liberado por uma liberação no mesmo escopo — não pela passagem do tempo, nem pelo alerta sumir de um snapshot posterior.

flag

Marca para revisão. Uma ferramenta pode exibi-lo; nada é retido só por causa dele.

inform

Apenas consultivo. Nenhuma ação de bloqueio e nenhuma resposta obrigatória.

Conjunção

Quando vários gates se aplicam ao mesmo fato no mesmo Telling, ele só é servido quando todos os gates permitem — um único hold basta para segurar. “O mais restritivo vence” e “o dono da Story tem precedência” foram abandonados em favor disso. A conformidade é fail-closed, e uma transformação — corte, recorte, legenda embutida — nunca levanta um hold.

som.system.audit

O rastro de governança. Uma action CLEARED, SUPPRESSED, WITHHELD ou OVERRIDDEN, sobre um LINK, ASSET ou TELLING, com um autor e um motivo. Uma supressão tem como alvo o Asset retido, porque o ramo que nunca vai ao ar nunca ganha um link.

Declarar, depois agir

O SOM carrega o contexto. As skills carregam o conhecimento.

O padrão — compartilhado

O que é uma Story, em que estado ela está, o que está retido e o que está liberado, de onde veio o material. Igual em todo lugar, e sem nenhum julgamento próprio.

As skills — da casa

Padrões editoriais, regras de conformidade, práticas institucionais: o que legitimamente muda de uma redação para outra. O framework é aberto; o seu fluxo de trabalho continua seu, e nenhum fornecedor precisa de uma cópia da sua política.

O silêncio é um resultado válido. Uma skill que não encontra nada a declarar não diz nada, e uma ferramenta só prova que leu a Story publicando por sua vez. É também por isso que o rastro de auditoria é um subproduto de como as escritas funcionam, e não um recurso que alguém acoplou depois. Como funciona o recall →

Princípios

Por que o SOM tem a forma que tem

Seis princípios de trabalho abrem a especificação, e são o teste pelo qual qualquer mudança futura precisa passar.

01

Escopo de uma única Story

O padrão coordena dentro de uma Story. Relações com outras Stories trafegam como referências, e o escopo para aí.

02

Mensagens, não organizações

O SOM descreve o que trafega na pipeline. Ele não tem opinião sobre as suas mesas, funções ou ferramentas — dois fluxos de trabalho muito diferentes podem falar a mesma Story.

03

Estado afirmado pelo publicador

Um contexto da história diz aquilo que o seu dono está disposto a assinar. Nada nele é um palpite deduzido de várias fontes.

04

Coordenação, não consumo

Um campo entra se outro sistema precisa dele para agir corretamente. O SOM não carrega o conteúdo, e não é um formato de entrega.

05

Não por padrão, sim com justificativa

Um campo conquista o seu lugar quando, sem ele, uma integração real fica travada. A 1.0 retirou três campos propostos exatamente por esse motivo.

06

Crescimento do vocabulário com governança

A estrutura pode ser permissiva; as palavras que carregam significado, não. A extensão tem um formato definido, para que termos de fornecedores e de redações dividam uma mensagem em pé de igualdade.

Como ele se comporta

Ninguém está no comando

Nenhum orquestrador, nenhuma aplicação central. Cada ferramenta lê a Story e decide por conta própria.

Skills declaram, executores agem

Uma skill afirma o que é verdade diante de uma regra que a sua redação escreveu. Só a ferramenta dona do executor age — e o silêncio é um resultado válido.

Um único escritor cria

O sistema de gestão de histórias do publicador é dono da Story e da sua sequência. Nunca a agência.

Republicação completa, nunca um delta

Uma ferramenta ligada no meio da madrugada lê um único objeto e fica sabendo de tudo.

Vinculação no ato editorial

A mídia passa a fazer parte de uma Story quando uma pessoa decide que faz — nunca só porque chegou.

Uma transformação nunca levanta um hold

Cortar, recortar ou reversionar um Asset não lava a sua posição de conformidade.

Ler não deixa rastro

Uma ferramenta prova que leu algo publicando por sua vez — e é por isso que o rastro de auditoria surge naturalmente de como as escritas funcionam.

Onde o padrão para. O SOM descreve uma Story e tudo o que é verdade sobre ela, e nada mais. O que cada redação faz com o que lê é problema dela. A 1.0 é um compromisso com a estabilidade, não uma pretensão de completude: o que não está resolvido fica anotado no registro de questões em aberto ↗.

Glossário

O vocabulário

TermoSignificado
StoryO acontecimento no mundo, mantido como um contexto que o seu publicador possui e afirma. Publicada como snapshots completos de story.context, identificados por um story_id imutável.
AssetUma peça individual de mídia ou de trabalho editorial sobre uma Story, classificada pela posição probatória (PRIMARY / SECONDARY / TERTIARY). Existe tenha ou não algo sido publicado a partir dela.
TellingO momento em que um Asset encontra um público por meio de um destino, com exposure_start / exposure_end imutáveis. O estado “no ar” é derivado dos Tellings.
LinkUm Asset vinculado a um destino, com um gate de conformidade por destino (PENDING / CLEARED / BLOCKED).
Source (TAMS)Mídia endereçada como tams://store/id mais um intervalo de tempo opcional. O SOM referencia Sources, nunca Flows.
LocatorUma referência de mídia fora do TAMS: store + ref. Um caminho no MAM, uma chave de objeto, um id do CMS.
Assertion (afirmação)Uma afirmação sobre uma Story, um Asset, um link ou um Telling — FACT_CHECK, DETECTION ou MATCH — com procedência e um estado de revisão. O lugar oficial de um fato confirmado.
Provenance (procedência)Quem ou o que produziu uma saída: HUMAN ou MODEL. Genérico quanto à autoria, nunca atrelado a IA.
Gate editorialAlgo que precisa ser resolvido antes que um Asset ou uma fase avance. PENDING / APPROVED / REJECTED.
Órfão (Orphan)Uma Story mínima, só a casca (story_type: ORPHAN), criada para guardar um clipe que chegou sem Story, até que uma correspondência proposta seja confirmada.
SkillUm arquivo de regra passivo no formato do agentskills.io. Ele declara; nunca age, e nunca altera conteúdo.
ExecutorA parte de uma ferramenta de fornecedor que faz o recall das skills, publica os seus avisos e decide o que a ferramenta retém. As ferramentas têm executores; as redações não têm um executor central.
Instância configuradaUm arquivo de skill genérico com os valores de uma casa carregados, vigiando uma condição. Uma casa roda várias a partir do mesmo arquivo.
Story ArchaeologyO método por trás do modelo: rastrear uma história real depois da exibição e registrar como o seu contexto de fato circulou.
Extensãoextensions["com.{vendor}.{field}"] — o lugar definido para campos que o padrão não traz. Chaves desconhecidas são ignoradas.

O glossário completo está na especificação: spec/glossary.md ↗

A seguir: o formato de transmissão

Toda mensagem compartilha um único envelope. Aqui está cada campo, e o que a conformidade exige dele.