Review and Publish
The gate between an agent writing something and the world seeing it: states, reviewers, versions, and publishing.
Nothing an agent writes goes live on its own. Every draft moves through a review pipeline with explicit states, named reviewers and full version history.
States
| State | What it means | What moves it on |
|---|---|---|
| Draft | Being written or edited. Agents and humans both write here. | Submitting it for review |
| In review | Submitted, waiting on a decision. | A reviewer approving or requesting changes |
| Changes requested | Sent back with written feedback attached. | Back to draft |
| Approved | Cleared to publish. Not yet public. | toggle_blog_publish |
| Published | Live. | toggle_blog_publish again, to unpublish |
| Archived | Soft-deleted. archive_blog also unarchives. | n/a |
The first five are the statuses on the
Artifacts screen.
request_blog_changes only accepts something already in review, and
archive is reversible.
list_blogs takes a state filter and a search term, so "what is sitting in
review" is one call.
Reviewers
Reviewers are named per environment, so review goes to a known list rather than
to whoever noticed first. list_reviewers over
MCP returns the current set.
Versions
Every draft keeps its version history and its rendered Markdown:
- Comparing an agent revision to yours.
get_blog_versionslists them;get_blog_version_contentreturns the body of any one. - Getting an earlier draft back after a bad approve. The older version's Markdown is still readable.
Reviewing Well
Resist the urge to rewrite: an edit fixes one draft, and a Vault rule fixes every future one.
Check the claim, not the prose
Is what it says true, and is it the claim the campaign was for? Prose problems are cheap to fix; a wrong claim is a retraction.
Check every number has a source
Named customer or a figure you can point at. If neither, cut it.
Request changes with the reason
"Opened generically, and the 37% is Nextiva's not Galley's."
request_blog_changes takes that feedback and stores it on the draft, so
the next person to open it sees why it came back.
Publishing
Approved is not published, so a batch can clear review on Thursday and go live
on Monday. Content you host with us publishes into the Surface CMS. If you
publish the page yourself, get_blog_version_content hands you the approved
Markdown.
For CMS entries, cms_schedule_entry sets a publish time and
cms_unschedule_entry cancels it, so a piece approved today can go live at
09:00 on Tuesday. See the CMS tools.
From Slack: "what's sitting in draft right now?" is a read. "@SAM approve the Nextiva post" is a write, so it parks behind an Approve card before anything moves. Either way it counts against the workspace's 200 questions per rolling 24 hours. See Limits and guardrails.