Inklate Docs
Composer

Preflight and fixes

The fit-check validates each placement against its platform's real rules and returns a per-placement verdict — passing, or failing with one-click Fixes.

Before you publish, Inklate runs a fit-check (preflight) that validates each placement against the real rules of its platform and returns a per-placement verdict. A passing verdict means the channel is ready to schedule; a failing one names why and offers one-click Fixes, and media that’s still processing or failed is flagged beside the verdict.

Preflight is the same verdict publish itself would produce — it runs the exact ladder the write path and the publish worker use, so the fit-check can never promise what publishing would refuse.

What preflight checks

For each placement, preflight runs an ordered ladder and the first refusal wins:

  1. Reachability — is the channel connected and its grant active? A disconnected channel or expired token refuses here (category auth) and needs a reconnect, not a retry.
  2. Scopes — does the connection carry the permissions the format needs?
  3. Content — does the adapted text and media fit the platform’s rules: length, item counts, media count, aspect ratio, mixing?
  4. Org policy — banned terms and blocked links, if your organization configured them.

Quiet-hours rules aren’t checked in preflight (there’s no schedule yet) — they apply at schedule time.

Per-placement verdicts

The fit-check row under the editor shows each channel’s verdict:

  • Fits — a calm green “ready to schedule” line.
  • Needs a fix — a red row naming the exact reason (“truncated at 280”, a missing required image), with fix buttons where a repair exists.
  • Warnings — amber notes for soft issues the adaptation surfaced (for example, “dropped 2 images” when a story carried more than a format allows), which don’t block publishing.

The Fix vocabulary

A Fix is a machine-readable repair the composer renders as a one-click button and an agent applies programmatically (via apply_fix). The vocabulary:

FixWhen it appearsWhat it does
trim_to_foldPrimary text is over the format’s limitTrims the text to fit.
rebalance_threadToo many or too-long thread itemsCaps the item count and trims each.
crop_toAn image doesn’t match a required aspect ratioCrops a derivative to the ratio.

Only a content refusal from the connector carries fixes; a policy refusal (a banned term, a blocked link) names the reason but has no automatic repair — you edit the copy yourself.

Media-readiness signals

Media readiness is shown beside the placement verdicts, not inside them, because a still-uploading or broken file isn’t a content problem with a channel:

  • Processing — an attached asset hasn’t finished. The composer waits.
  • Failed — an asset is terminal (upload broke, rejected, or flagged by a scan). Remove it.

Neither lights a channel’s red Fix dot, but both hold the publish and schedule actions until they clear — each with its own honest message. See Images and video.

What preflight blocks

A failing preflight blocks scheduling and approval for the whole post: you can’t schedule a placement that won’t publish, and a reviewer is never asked to approve a version that can’t ship. Repair every flagged channel — and clear any processing or failed media — and the publish and schedule buttons unlock.