Mission

Solipsist is Radio UserLand’s job in Mail’s body: a native Mac harness that turns the graph-native publication compiler into a one-window workstation for sources, play, inspection, preview, and broadcast — and refuses to invent anything the HIG or a Boris contract already named.

The engine we harness

Boris is not a Markdown-to-HTML converter. It is a compiler: Markdown (or Textile, or Cooklang) in → a validated Trunk/Satellite content graph → deterministic contracted projections (HTML, JSON IR, RAG packs, context bundles, llms.txt, RSS, sitemap, and live publication targets). Solipsist harnesses the afterparty integration line — boris/0.8.1 — and never touches the compiler itself.

Why a Mac app at all

Boris ships its own browser-based editor. Solipsist is the complementary native desktop citizen:

The non-negotiables

  1. Never touch the boris repo. No commits, no edits, no pushes.
  2. Never reimplement Boris semantics in Swift. The JSON contracts are the single source of truth; Swift only mirrors and renders them.
  3. Never silently ignore diagnostics or exit codes. Surface them.
  4. The subprocess boundary is a feature. Crash isolation, cancellation, never in-process Zig.
  5. Never mutate the user's content tree except as the direct result of an explicit save.

Where we are

The engine spike decodes the IR contracts and the Mail-shaped chassis is in (sources / play / drawer / companion slots). Next up: play & inspect (M3) and the coordinator verbs (M4) — see Roadmap.