A Newspaper Is a State Machine
A Newspaper Is a State Machine: Universal Wire in June
Status: published\
Scope: Universal Wire, sourcecycled, source graph, Texture publication\
Revision reviewed: go-choir main at bff823d7
Universal Wire is easy to misread as a news feed. The June code says it is something stranger and more ambitious: a source-to-publication state machine.
The visible output is a list of stories. The actual product is the path from source arrival to durable article.
The old shape: feed as surface
A normal news product starts from the front page. Fetch articles, rank them, render cards, maybe summarize. That is not enough for Choir because the purpose is not only to display news. The purpose is to let a computer ingest sources, synthesize meaning, preserve provenance, and publish artifacts that can be reviewed, revised, cited, and traversed later.
So the feed cannot be the root object. It has to be a projection.
The June shape: source to graph to Texture to edition
By late June, the code points toward this pipeline:
sourcecycled ingestion
-> source/web capture object
-> object graph projection
-> semantic clustering / dedup
-> processor dispatch
-> Texture article revision
-> platform publication
-> Wire edition
-> feed diagnostics and public routeSeveral files carry pieces of that path:
cmd/sourcecycled/main.gofor source polling and service behavior;internal/runtime/sourcecycled_web_captures.gofor projecting captures into runtime graph state;internal/objectgraph/registry.gofor source/media/transcript object kinds;internal/runtime/wire_synthesis.gofor the synthesis dispatch path;internal/runtime/wire_publication.gofor publication settlement and edition linkage;internal/runtime/universal_wire.gofor the public stories endpoint and diagnostics.
The important change is that raw captures are not equivalent to articles. A source can be present without a publishable Texture synthesis. The feed can honestly be empty while diagnostic substrates exist.
That honesty matters.
Diagnostics are an editorial feature
A weak system fills the empty state with placeholders. A stronger system says why it is empty.
June added diagnostics that distinguish missing edition state, graph capture availability, and publishable Texture synthesis. This is not just developer convenience. It is editorial integrity at the infrastructure layer.
If the article does not exist, do not pretend the capture is an article. If the source exists but the synthesis failed, say that. If the edition alias is missing, repair that specific path.
The source graph is the real newsroom
The object graph additions matter because a newsroom is not a pile of text. It is a relation among source entities, captures, media, transcripts, derived artifacts, references, and published claims.
Once sources become objects, the system can ask questions a feed cannot:
- Which capture came from which source entity?
- Which transcript was derived from which media item?
- Which Texture revision cited which representation?
- Which publication carried which source span?
- Which claims have proof objects and which are stale assumptions?
That is the beginning of a publication graph rather than a content stream.
Why this matters for Mosiah
Mosiah.org is currently the human publishing surface. Universal Wire is the machine-native sibling: an automatic newspaper that can ingest, synthesize, and publish under evidence constraints.
The near-term bridge is obvious: make the same source-backed workflow useful for human-written review pieces. The user pastes links, Choir gathers transcripts and source artifacts, Texture becomes the drafting surface, and publication carries the right provenance without leaking private source bodies.
Universal Wire built much of the substrate. The review studio still needs the product loop.