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.
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.
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.
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_numberDEVE aumentar eupdated_atDEVE 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.
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
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.
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.
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.
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.
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 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.
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.
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í.
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.
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.
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.
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.
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
| Termo | Significado |
|---|---|
| Story | O 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. |
| Asset | Uma 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. |
| Telling | O 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. |
| Link | Um 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. |
| Locator | Uma 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 editorial | Algo 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. |
| Skill | Um arquivo de regra passivo no formato do agentskills.io. Ele declara; nunca age, e nunca altera conteúdo. |
| Executor | A 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 configurada | Um 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 Archaeology | O 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ão | extensions["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.