Sola MerlinoDocumentation
I'll write this page's content fragment now. Since the FACTS are fully specified and the output is HTML content (not LLM/Anthropic code work), I'll produce it directly. Engines

Universal Writer & DAM

Sola Merlino pairs a multi-type, multi-model writing engine with the Ponmelli digital-asset catalog so every published post is grounded in a brand's own source content.

Six content types

The Universal Writer is a single engine that produces six distinct content types. Each type carries its own structure, scoring weights, and grounding behavior, but all share the same multi-model router and polish loop. For syndication, the social type does the heavy lifting; the others exist for adjacent SEO and content-network work.

SO

social

Platform-adapted posts for twitter, linkedin, facebook, instagram, reddit, tiktok, and gmb, grounded in DAM source content.

/api/universal-writer
SA

seo-article

Long-form articles structured for search, with on-page SEO conventions and link-anchor support.

PB

pbn

Posts written for private blog network properties within the syndication tier structure.

RV

review

Review-format content with the conventions and framing expected of review pieces.

RP

report

Report-style long-form output for structured, informational deliverables.

FI

fiction

Narrative fiction output, supported as a content type by the same engine and router.

The social type

The social type is the bridge between a brand's source assets and its publishing fleet. It takes one prompt and emits a tailored variant for each target platform, so the same idea ships as a tweet, a LinkedIn post, a Facebook update, an Instagram caption, a Reddit submission, a TikTok caption, and a Google Business profile post — each respecting that platform's own character limits, style, and hashtag conventions.

Per-platform adaptation

Every platform carries its own defaults. Twitter and TikTok favor short, punchy copy; LinkedIn leans professional and longer-form; Facebook and Instagram balance narrative with hashtags; Reddit prefers a conversational, community-aware register; and gmb (Google Business) posts follow local-business conventions. The engine applies the correct character limit, tone, and hashtag style per platform automatically from a single source prompt.

Brand-voice override

A brand can supply its own voice, which overrides the platform defaults. Where the platform style and the brand voice disagree, the brand voice wins — keeping output consistent with the brand's identity across every network while still honoring each platform's hard limits.

RAG grounding from the DAM

Output is grounded, not invented. The engine pulls source content from the Ponmelli DAM via retrieval-augmented generation, so each variant is anchored to the brand's real assets. This keeps syndication factual and on-message — legitimate distribution of a brand's own content rather than fabricated copy.

One prompt, per-platform variants

The operator writes one prompt; the engine returns a coherent set of per-platform variants. Each variant supports link-anchor injection for inserting destination links, and the engine applies learned style rules derived from prior human edits, so output drifts toward the brand's preferences over time.

Quality scoring

Each social variant is scored against three weighted dimensions. The composite score drives the polish loop and gives operators a consistent signal for whether a variant is ready to syndicate.

DimensionWeightWhat it measures
Hook Strength40%How strongly the opening captures attention.
Platform Fit35%Alignment with the target platform's limits, style, and conventions.
Engagement25%Likelihood of driving interaction.

Model router

The Universal Writer routes generation across multiple models in a defined cascade: GLM → Gemini → Claude. Output runs through a quality-scoring pass and a polish loop, so weaker drafts are refined or escalated rather than shipped as-is.

  1. Generate

    The router produces a draft, starting at GLM and cascading to Gemini and Claude as needed.

  2. Score

    The draft is scored on Hook Strength, Platform Fit, and Engagement.

  3. Polish

    The polish loop refines the draft against its score before the variant is finalized.

Mount path matters

The engine is mounted at /api/universal-writer/*. Do not use /api/writer/* — that prefix belongs to Ponmelli's proxy, not the Universal Writer engine.

Ponmelli DAM

The Ponmelli DAM is the digital-asset catalog that feeds syndication. It is a SQLite asset store at data/ponmelli/assets.db holding 621 source assets, and it is the grounding source the social writer retrieves from. Its API surface lives at /api/ponmelli/* on port 44887.

621
source assets
12+
asset types
6
lifecycle states

Asset types

The catalog spans a range of asset types, each carrying its own format and downstream use.

article social blog gbp pbn podcast review video-script image voice-dna template keyword-card

Status lifecycle

Every asset moves through a controlled lifecycle gated by an operator approval queue, so nothing reaches publication without review.

StatusMeaning
draftNewly created, not yet submitted for review.
stagedQueued and awaiting operator review.
approvedCleared by the operator approval queue.
deployedPushed into syndication.
archived / rejectedRetired from active use, or declined during review.
Operator approval queue

Assets in staged sit in the operator approval queue. An operator promotes them to approved and on to deployed, or sends them to rejected — the human gate between source content and what the fleet actually publishes.

Sola Merlino · social syndication + account automation · documentation generated 2026-06-27