Write a sequence where the hook earns the read, every post carries exactly one idea, and the last post knows what it's asking for.
Context
Read social-context.md at the project root (also check .agents/social-context.md) for
Positioning, Voice rules, Audience, Pillars, Goals, and the Never list. If missing, offer to
run the social-context skill first, but don't block — ask two inline questions (which
platform — X thread or LinkedIn multi-post — and how spicy: measured/direct/provocative) and
proceed.
Workflow
- Confirm the platform and load its rules. X thread or LinkedIn multi-post? Load references/platform-rules.md for that platform's per-post limit, hook budget, sequence length, and link/hashtag norms, and budget to them, not memory.
- Get the source material now: a blog post, notes, a story, or just a topic. If it's just a topic, extract specifics before drafting — the number, the failure, the before/after. A sequence runs on receipts, not opinions.
- Pin the thesis in one sentence: what should a reader believe or do after the last post that they didn't before the first? If the material supports two theses, ask which one this argues. No thesis, no thread — write a single post instead and say so.
- Outline the beats before writing any post — one per post, within the platform's post-count
range from the reference, in an escalation shape:
- hook
- stakes/context (1 post max)
- the meat, in rising order — save the second-best point for late, the best for the payoff
- payoff
- CTA Kill any beat that restates another. Show the outline as a numbered list of one-line beats and let the user reorder or cut.
- Draft the hook three ways, one per pattern:
- Curiosity gap: promise the payoff, withhold the mechanism. "We doubled activation with one email. It's not the one you think."
- Bold claim: the thesis at full strength, no hedge. "Most onboarding flows fail because they teach the product instead of the outcome."
- Specific number: the receipt up front. "47 user interviews. 3 patterns. Here's what actually makes people churn."
- Score each hook 1–5 on three axes: stops the scroll, makes the specific promise the sequence actually keeps, and passes the Voice rules. Show the scores, recommend one, and ask the user to pick. A hook that overpromises is worse than a boring one — the sequence gets ratioed for the gap.
- Write the posts from the outline. Per post: lead with the point in the first line, one idea only, cut every "and another thing" into its own post or the bin. Prefer line breaks over commas — a few short lines read better than one dense paragraph. No post should need its neighbor to make sense.
- Budget characters as you go against the platform's per-post limit from the reference, and
show the count after each like
(chars/limit). Keep the hook under the reference's hook budget to leave room. If a post lands over, cut words — never split one idea across two posts to make it fit. - Write the closer as a real CTA post: restate the payoff in one line, then one ask — follow, with the reason; or the link (the only post a link may appear in); or a reply prompt with a real question. One ask, not three.
- Ask the numbering question: numbered (
1/) prefix or clean posts with no numbering? Numbering signals length upfront and helps screenshots; clean reads more native. Apply the choice consistently — if numbering, the hook shows the total ("1/9") so readers can size the commitment. - Whitespace and rhythm pass: vary post lengths, check each post stands alone as a screenshot, verify hashtags follow the reference (none mid-sequence). Run every post against the Voice rules. Then check every post, and the sequence as a whole, against every row of the Quality bar and the platform's rules; fix any failing row before presenting.
- Present the full sequence with per-post counts, plus the two unused hooks labeled as alternates in case the user wants to swap.
Quality bar
Per-platform limits (per-post length, hook budget, sequence length, links, hashtags) live in references/platform-rules.md — check every post against its platform's row there, not memory. For every sequence:
| Constraint | Rule |
|---|---|
| Hook | Within the platform's hook budget; promise matches what the sequence delivers |
| Every post | Within the per-post limit, count shown; exactly one idea; stands alone as a screenshot |
| Length | Within the platform's post-count range; context/setup gets at most 1 post |
| Links | Final post only — a mid-sequence link is where readers exit |
| Hashtags | Per the reference; none mid-sequence |
| Structure | Escalates — strongest material in the back half, payoff before CTA |
| CTA | Exactly one ask in the closing post |
| Voice | Every post passes the Voice rules in social-context.md |
| Numbering | User's chosen convention applied to every post, or to none |
Deliverable
The full sequence, ready to paste: each post in its own block with its character count, numbering per the user's choice, the chosen hook first and the two alternate hooks appended for reference. End there.