Start with the task contract

A publishing job should describe its inputs, expected output schema, tenant context and acceptance criteria. That contract lets a routing service choose a model without handing the model control of the platform. A generated paragraph is data; permission to publish remains an application decision.

Keep deterministic work outside the model

Slug creation, schedule checks, feed generation and approved-domain validation are stable operations. Use code for these tasks. The model can propose a narrative angle or explain an ambiguous source, while a detached service applies the repeatable rules. This also makes failures easier to reproduce.

Route by consequence, not just difficulty

A short factual claim may deserve more review than a long creative introduction. Routing should consider risk, source quality and the cost of being wrong, alongside context length and latency. A cheaper model is useful only when the resulting draft clears the same acceptance criteria.

Make failure observable

Record model and prompt versions, duration, token usage and validation outcomes with a trace ID. Use bounded retries and idempotency keys. When a provider is unavailable, hold the draft for review rather than silently reducing the quality standard.

The practical boundary

The AI worker receives the minimum source pack and returns a structured draft. A tenant-aware publication service validates, records a revision and asks an authorised reviewer for approval. This separation makes the system easier to test and the operational cost easier to explain.