Core concept · execution evidence
Runs and outcomes
A post has one overall state. Every destination keeps its own queued, sent, published, or failed outcome.
Two state models
State layers
Post state summarizes the scheduled unit of work. Destination state records execution for each target account.
11 exact states4 exact statesOverall post state
Post states
requires_approvalWait for a supervisor decision.
changes_requestedReturn structured feedback and the exact state to the human supervisor. The configured contract exposes no post-revision call.
scheduledpublishingContinue polling while the work remains active.
draftmissed_approvalmissed_scheduleThese states are not terminal. A human can publish or reschedule the post.
publishedpartialfailedrejectedReturn the exact outcome and inspect destination evidence. Partial and failed outcomes may transition after retry.
Per-target execution
Destination states
Every destination uses the same four wire values. A failed destination changes only when recoverable local failure is followed by authoritative provider evidence.
queued→sent→publishedorfailedlate evidence → publishedLabeled example
Example outcome
The response separates the post-level partial state from three destination outcomes. Every identifier and value below is synthetic.
get_publish({
post_id: "post_example_08"
})
// Example response excerpt
{
"id": "post_example_08",
"status": "partial",
"publishes": [
{ "platform": "instagram", "status": "published" },
{ "platform": "youtube", "status": "published" },
{ "platform": "tiktok", "status": "failed" }
]
}Stop conditions
Supervisor handoff
Return the exact post ID, post state, and failed destinations. Never rename a wire state to action_required.
Polling boundary
Continue polling active states within the caller's configured budget. When that budget ends, return the post ID and current destination states.