From article-writer
Generates platform-optimized social media posts for LinkedIn, Instagram, or X/Twitter with author voice adaptation; standalone from topics or derived from blog articles.
npx claudepluginhub mwguerra/claude-code-plugins --plugin article-writerThis skill uses the workspace's default tool permissions.
Create social media content optimized for LinkedIn, Instagram, or X/Twitter. Posts can be standalone (from a topic) or derived from an existing blog article.
Generates platform-native content for X, LinkedIn, TikTok, YouTube, newsletters from source material. Builds social posts, threads, scripts, content calendars, and multi-platform adaptations.
Adapts content for unique crossposting to X, LinkedIn, Threads, and Bluesky using platform constraints and voice preservation. For multi-platform launches, essays, or announcements.
Generates platform-specific social media posts for LinkedIn, Facebook, Instagram, Reddit from topics, content, or campaigns, respecting limits, hashtags, and best practices.
Share bugs, ideas, or general feedback.
Create social media content optimized for LinkedIn, Instagram, or X/Twitter. Posts can be standalone (from a topic) or derived from an existing blog article.
Initialize → Plan → Research (light) → Draft → Review → Translate → Finalize
Initialize → Read Source Article → Plan Adaptation → Draft → Review → Translate → Finalize
platform_defaults.<platform>)effective_formality = clamp(author.formality + platform.tone_adjustment.formality_offset, 1, 10)
effective_opinionated = clamp(author.opinionated + platform.tone_adjustment.opinionated_offset, 1, 10)
create-article-folder.ts --platform <platform>create-article-folder.ts --platform <platform> --derive-from <id>Apply the effective tone calculated in Phase 1. See references/platform-voice-guide.md for detailed guidelines per platform.
See the platform reference files for structure templates:
references/linkedin-format.mdreferences/instagram-format.mdreferences/x-format.md| Platform | Files |
|---|---|
{slug}.linkedin.{lang}.md | |
{slug}.instagram.{lang}.md + {slug}.instagram.carousel.{lang}.md | |
| X/Twitter | {slug}.x.tweet.{lang}.md + {slug}.x.thread.{lang}.md |
Platform Constraint Compliance Checklist:
For derive mode additionally:
Insert article row with:
platform: "linkedin" | "instagram" | "x"derived_from: source article ID (if derive mode)platform_data: JSON with platform-specific structured contentstatus: "draft"output_folder: folder pathoutput_files: per-language file pathsLinkedIn:
{
"hook": "Opening 2-3 lines...",
"body": "Main content...",
"cta": "Call to action...",
"hashtags": ["#Laravel", "#WebDev", "#PHP"],
"word_count": 580
}
Instagram:
{
"caption": {
"text": "Full caption text...",
"visible_preview": "First 125 chars...",
"hashtags": ["#laravel", "#php", "#webdev", "..."],
"char_count": 1850
},
"carousel": {
"slide_count": 7,
"slides": [
{ "number": 1, "title": "Rate Limiting in Laravel", "body": "...", "visual_direction": "..." },
{ "number": 2, "title": "Why It Matters", "body": "...", "visual_direction": "..." }
]
}
}
X/Twitter:
{
"tweet": {
"text": "Single tweet text...",
"char_count": 265,
"hashtags": ["#Laravel", "#PHP"]
},
"thread": {
"tweet_count": 8,
"tweets": [
{ "number": 1, "text": "Thread opener...", "char_count": 275 },
{ "number": 2, "text": "Key point 1...", "char_count": 260 }
]
}
}
Social posts do NOT get companion projects. If derived from a blog article that has one, link to it:
"Full working example in the blog post: [link]"
# Create folder for standalone social post
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/create-article-folder.ts <path> --platform linkedin
# Create social/ subfolder for derived post
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/create-article-folder.ts <path> --platform instagram --derive-from 42
# Load platform defaults
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/show.ts settings linkedin
# Set article status
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/article-stats.ts --set-status draft <id>