From cowork-social
Draft a platform-native Facebook post in your voice. Reads platform-voice.md (Facebook section) + brand-brief.md + business-brain.md. 40-80 word sweet spot. Link previews supported. Plan-then-approves, writes to outputs/, optionally schedules via Blotato. Foundation B + C applied. Reads pageId from state-social.md for FB subaccount scheduling.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cowork-social:draft-facebookThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Draft a Facebook post. Share-driving, link-preview-aware, short-form sweet spot. Reads `pageId` for the Facebook subaccount captured during `/onboard-social`.
Draft a Facebook post. Share-driving, link-preview-aware, short-form sweet spot. Reads pageId for the Facebook subaccount captured during /onboard-social.
Read these files on every run. If any is missing, halt and tell the user which /onboard-social phase to re-run.
| File | Purpose |
|---|---|
about-me/writing-rules.md | Universal writing rules |
about-me/business-brain.md | ICP, audience, recent stories, wedge |
projects/social-media-content/brand-brief.md | what_you_sell, primary_cta, recent_proof_story, contrarian_belief, voice_signature |
projects/social-media-content/platform-voice.md | Facebook section only — length_range, signature_openings, signature_closings, banned_phrases, voice_notes |
projects/social-media-content/state-social.md | blotato_status + facebook_page_id (FB subaccount) |
projects/social-media-content/asset-index.md | Optional images |
_shared/hook-patterns.md | 11 hook patterns (Step 4) |
Foundation A — lazy-load: read ONLY the Facebook section of
platform-voice.md.
Follow the 12-step spec in _shared/draft-skill-spec.md. Platform-specific deltas below.
| Field | Facebook value |
|---|---|
| Length | 40-80 words optimal (80-300 acceptable for story posts) |
| Hook window | First line — must hook in 1 sentence |
| Image | Optional |
| Link previews | If topic involves a link, put the URL on its own line — FB generates a rich preview that outperforms inline links |
| Hashtags | 0-2 max (FB doesn't reward them) |
| Video | If user attaches video, mediaType MUST be "reel" per Blotato MCP — regular feed video no longer supported |
| CTA bias | Drive shares (FB algorithm weights shares > likes/comments) |
| Hook pattern bias | Vulnerable Story (#5), Receipts (#9) |
outputs/social-media-content/YYYY-MM-DD-facebook-<slug>.md
Frontmatter:
---
date: YYYY-MM-DD
platform: facebook
slug: <kebab-case-3-5-words>
hook_pattern: <pattern-name>
length_words: <count>
length_chars: <count>
asset_used: <asset-name-or-null>
link_preview_url: <url-or-null>
video_type: <reel-or-null>
status: drafted
---
Body = the actual post text. If a link is included, place it on its own line so FB triggers the preview.
Branch on projects/social-media-content/state-social.md → blotato_status:
connected → Load scheduling-defaults.md, find Facebook row. Read facebook_page_id from state-social (this is the FB page subaccount captured during /onboard-social via blotato_list_accounts). Ask:
"Schedule this for [Thursday 1pm ET] on your
<page_name>page? (y / specific time / skip)" Ony, callmcp__claude_ai_Blotato__blotato_create_postwith:text(the draft),accountId(Facebook fromblotato_list_accounts),pageId(from state-social), optionalmediaUrls,scheduledFor(ISO 8601). If video → setmediaType: "reel".
skipped / awaiting-oauth → Save to outputs/ only. Tell user:
"Blotato isn't connected — copy/paste the post into Facebook manually at [default time per scheduling-defaults.md]."
connected but facebook_page_id missing → Halt scheduling. Tell user: "I don't have your Facebook page ID. Re-run /onboard-social Phase X to capture it via blotato_list_accounts."On Blotato success: update calendar-log row, update post frontmatter → status: scheduled.
mediaType: "reel" — refuse to schedule plain feed videopageId (FB subaccount) — block scheduling if missing/grade-post; don't show drafts under 80Facebook post voice is defined in projects/social-media-content/platform-voice.md (Facebook section) + brand-brief.md (voice_signature). Don't reinvent it.
See _shared/foundations.md → Foundation B. After delivering the main output + the ⚡ NEXT MOVE block, ask: "What would've made this 10% better?" Log to projects/social-media-content/memory.md:
<YYYY-MM-DD> | /draft-facebook | <answer verbatim>
Run recurrence check.
See _shared/foundations.md → Foundation C. Skill output ends with a ⚡ NEXT MOVE block matching the validation regex.
/onboard-social Phase X today to capture your FB pageId via blotato_list_accounts"⚡ NEXT MOVE: Schedule the Facebook post for Thursday 1pm ET on the Automated Marketer page.
Why: Thursday afternoon is your peak share window + the Receipts hook fits FB story-pattern preference.
⚡ NEXT MOVE: Re-run /onboard-social Phase 6 today to capture your Facebook pageId via blotato_list_accounts.
Why: FB scheduling is blocked until pageId is in state-social.md.
⚡ NEXT MOVE: Check shares + comments on this FB post 24 hours after publishing.
Why: FB rewards shares heavier than likes + this tells you which hook pattern works for your audience.
npx claudepluginhub automatedmarketer/cowork-social --plugin cowork-socialProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.