social-post-writer
Create platform-optimized social media posts for LinkedIn, Instagram, or X/Twitter with author voice adaptation
What this skill does
# Social Post Writer Skill
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.
## Workflow
### Standalone Mode
```
Initialize → Plan → Research (light) → Draft → Review → Translate → Finalize
```
### Derive Mode
```
Initialize → Read Source Article → Plan Adaptation → Draft → Review → Translate → Finalize
```
## Phase 1: Initialize
1. **Load author profile** from database
2. **Load platform defaults** from settings (`platform_defaults.<platform>`)
3. **Calculate effective tone**:
```
effective_formality = clamp(author.formality + platform.tone_adjustment.formality_offset, 1, 10)
effective_opinionated = clamp(author.opinionated + platform.tone_adjustment.opinionated_offset, 1, 10)
```
4. **Create folder structure**:
- Standalone: Use `create-article-folder.ts --platform <platform>`
- Derive: Use `create-article-folder.ts --platform <platform> --derive-from <id>`
## Phase 2: Plan / Plan Adaptation
### Standalone
- Identify the core message (1 sentence)
- Define the target audience for this platform
- Outline the key points (3-5)
- Choose the structure template for the platform
### Derive Mode
- Read the source blog article completely
- Extract: main thesis, key arguments, supporting examples, takeaways
- Select which themes translate best to this platform
- Plan adaptation strategy (what to keep, what to restructure, what to drop)
## Phase 3: Research (Light)
- Skip for derive mode (source article already researched)
- For standalone: 2-3 targeted searches, not the full blog research process
- Focus on current data, trending angles, platform-specific context
## Phase 4: Draft
### Voice Adjustment
Apply the effective tone calculated in Phase 1. See `references/platform-voice-guide.md` for detailed guidelines per platform.
### Platform-Specific Drafting
See the platform reference files for structure templates:
- **LinkedIn**: `references/linkedin-format.md`
- **Instagram**: `references/instagram-format.md`
- **X/Twitter**: `references/x-format.md`
### Output File Naming
| Platform | Files |
|----------|-------|
| LinkedIn | `{slug}.linkedin.{lang}.md` |
| Instagram | `{slug}.instagram.{lang}.md` + `{slug}.instagram.carousel.{lang}.md` |
| X/Twitter | `{slug}.x.tweet.{lang}.md` + `{slug}.x.thread.{lang}.md` |
## Phase 5: Review
**Platform Constraint Compliance Checklist:**
- [ ] Character/word limits met
- [ ] Hashtag count within range
- [ ] Required structural elements present (hook, CTA, etc.)
- [ ] Tone matches effective tone (not base author tone)
- [ ] No blog-article assumptions (e.g., "as we discussed in section 3")
- [ ] Platform-appropriate formatting (line breaks, emoji usage)
**For derive mode additionally:**
- [ ] Content stands alone (reader doesn't need the blog article)
- [ ] Key value proposition preserved from source
- [ ] No orphaned references to companion project or code examples
## Phase 6: Translate
- Translate to each additional language in author's profile
- Maintain platform constraints in all languages
- Hashtags: keep some universal, translate others
- Emojis: keep as-is (universal)
## Phase 7: Finalize
### Database Update
Insert article row with:
- `platform`: "linkedin" | "instagram" | "x"
- `derived_from`: source article ID (if derive mode)
- `platform_data`: JSON with platform-specific structured content
- `status`: "draft"
- `output_folder`: folder path
- `output_files`: per-language file paths
### Platform Data JSON Structures
**LinkedIn:**
```json
{
"hook": "Opening 2-3 lines...",
"body": "Main content...",
"cta": "Call to action...",
"hashtags": ["#Laravel", "#WebDev", "#PHP"],
"word_count": 580
}
```
**Instagram:**
```json
{
"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:**
```json
{
"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 }
]
}
}
```
## Companion Projects
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]"
## Scripts Reference
```bash
# 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>
```
Related in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.