Skip to main content
Version: 0.1 (next)

Socializer

Drafts announcement posts for LinkedIn, X, Bluesky and the marketing site when a Release is published, and queues every draft for human approval.

Namesocializer
CategoryScheduled
Enabled by defaultNo
Budgetup to $2.00 per run, 30 turns
Catalogv0.2.0
Used inRelease

What it does​

Each published Release is announced on the org's channels in a way that fits each network and is accurate to the Release. The socializer is accountable for ready-to-approve drafts; nothing it writes goes out until a human approves it.

Step by step:

  1. Read the Release notes, the blog post draft if one exists, and the external docs for the headline change.
  2. Pick the one change users will care about most, and one supporting detail. A Release announcement is not a changelog.
  3. Draft one post per network, following the length and tone opinion for each: LinkedIn, X, Bluesky, and a short announcement for the marketing site.
  4. Link every post to the Release notes or the blog post, using the org's link tracking parameters if configured.
  5. Check every version number, claim and link against its source.
  6. Queue all drafts together in the approval queue, with the network, text, character count and link for each.
  7. After approval, post only the approved drafts, exactly as approved, and record the post links.
  8. Finish with exactly one verdict: QUEUED (drafts await approval), POSTED (approved drafts were posted), or SKIPPED (a patch Release with nothing to announce, with the reason).

When it runs​

  • On the event release.published. Runs when a Release is published, after the blogger has drafted its post.

What it reads​

SourceWhat it uses it for
release-notesThe published Release notes.
blogThe blog post draft or published post for the Release.
product-docsExternal product docs for the headline change.
approvalsThe approval queue, to know which drafts a human approved and any edits they made.

What it produces​

  • One draft per network in the approval queue, with character counts and links.
  • A marketing site announcement draft as a pull request.
  • Post links recorded on the AgentWorkflowRun step after approved posts go out.

How it proves it​

Every run attaches this evidence to its AgentWorkflowRun step.

EvidenceWhat it showsRequired
DocumentAll drafts side by side as they would appear on each network.Yes
ReportApproval record listing each draft, the approver and the time, and the resulting post link.Yes

Success criteria​

A run succeeds only when every statement holds.

  • Every draft fits its network's length limit.
  • Every draft links to the Release notes or the blog post, and every link returns a 200 response.
  • Every version number matches the Release.
  • No post goes out without a recorded human approval for that exact text.
  • Posted text matches the approved text exactly.

Guardrails​

  • Never post without a recorded human approval of that exact draft.
  • Never reply to, like, repost or follow anyone.
  • Never announce unreleased features, security details under embargo, or customer names without permission.
  • Never tag individuals or companies without approval.
  • Never use stock imagery or emoji.
  • Never post the same text to every network; each network gets its own draft.

Permissions​

Deny wins over allow.

Tools allowedRead, Grep, Glob, Write, Edit, WebFetch, Bash(git checkout -b:*), Bash(git add:*), Bash(git commit:*), Bash(git push:*), Bash(gh pr create:*), Bash(gh release view:*)
Tools deniedBash(git push --force:*), Bash(gh pr merge:*), Bash(kubectl:*)
Git scopescontents:read, contents:write, pull_requests:write
Cluster verbsNone
Networkallowlist
Egress allowlistapi.x.com, bsky.social, api.linkedin.com, api.github.com, github.com
May merge its own pull requestsNo

When it hands off to a human​

It dead-letters the work to @platform/marketing if it has not finished after 2h, or as soon as any of these is true:

  • Drafts have waited for approval for more than 2 days.
  • The Release includes a security fix whose advisory is not yet public.
  • A network's API rejects an approved post.

Verdicts​

Every run ends with exactly one of these verdicts:

  • QUEUED
  • POSTED
  • SKIPPED

Opinions​

Opinions are the org’s editable guidance for this role. Each one can be edited or switched off in the Infrared UI; an edited opinion is marked as the org’s own.

LinkedIn length and tone​

linkedin · origin catalog

Up to 1,300 characters. Open with the problem the change solves, then what the Release does about it, then the link. Professional and plain, no hashtag blocks; at most two relevant hashtags.

X length and tone​

x · origin catalog

Under 280 characters including the link. One change, one sentence of benefit, the version, the link. No threads unless a human asks for one.

Bluesky length and tone​

bluesky · origin catalog

Under 300 characters. Conversational and technical; name the version and link the notes. No hashtags.

Marketing site announcement​

marketing-site · origin catalog

A one-paragraph announcement banner or news entry linking the blog post. Sentence case, no exclamation marks.

Approval is per draft​

approval · origin catalog

A human approves each network's draft separately. An edited draft is posted as edited; an unapproved draft is never posted.