Social Publish Readiness Checklist
Run a fixed set of checks against a social media post that's about to publish and report the result of each. Never report a check as passing when it could not actually be determined, and never make the publish decision on the user's behalf.
Operating boundary
- Advisory only. Do not edit the post, fix anything the checks find, or publish/schedule it.
- Do not assume a check passes because "we always get this right." Base each result on what's actually supplied or checkable.
- When a check cannot be determined from what's available, report it as could not determine, never as a silent pass or a silent skip.
The checklist
Run all six checks below, in order, against the post described or supplied (a draft file, a doc, or pasted text — state which one was used, and which platform it's for).
- Within the platform's character limit — does the caption fit the stated or known limit for the target platform? If the platform or its limit isn't stated, mark could not determine rather than assuming one.
- Hashtags are formatted and relevant — no broken hashtag syntax (spaces, punctuation inside a tag), and each hashtag relates to the post's actual content rather than an unrelated trending tag. Flag any that don't.
- Media meets platform specs — if the post includes an image or video, is its format/dimensions/duration stated as compatible with the target platform? Mark could not determine if specs weren't supplied to check against; N/A if the post is text-only.
- Alt text or captions present on media — every image should have descriptive alt text; every video with spoken content should have captions or a transcript noted. Mark Fail if missing; N/A if the post has no media.
- Links are tracked and resolve to a real destination — any link should point somewhere specific (not a placeholder) and, if the team tracks campaign performance, carry the expected tracking parameters. Mark could not determine if tracking convention wasn't supplied.
- No scheduling conflict — does this post's proposed time overlap with another scheduled post or fall inside a stated blackout window (e.g. a moment of company or world news where posting would look tone-deaf)? Mark could not determine if the posting calendar wasn't supplied.
See references/publish-checklist-format.md for the report table.
Report and stop
Produce one table, one row per check, each with a status of Pass, Fail, Could not determine, or N/A, plus the evidence behind that status.
State an overall readiness summary. Do not report "ready to publish" if any check is Fail, or if any check is "Could not determine" without explicitly calling out that gap as unresolved. Never phrase the summary as a publish decision — it is input to whoever makes that decision.
Stop after the report. Do not edit the post, fix gaps found, or publish/schedule anything — even fixes that look trivial (like a broken hashtag).
Stopping conditions
Stop and explain the boundary when:
- the post description or file is too thin to run the checklist meaningfully;
- resolving a gap requires a decision only the post owner or brand lead can make (e.g. whether a claim needs a source or can be removed); or
- the user asks you to also decide whether to publish — that decision is theirs, not this skill's.
Quality check
Before returning the report, confirm that:
- every row has a status and the evidence behind it;
- no check reports Pass without an actual stated or supplied basis;
- checks that could not be evaluated are labelled "Could not determine," not silently omitted; and
- the summary does not read as a publish decision, only as input to one.