---
name: adapt-copy
description: "Adapt post copy for every target platform — character limits, hashtag counts and placement, tone, compliance, and the right CTA mechanism per platform (comment-keyword or link-in-bio on Instagram/TikTok, direct link elsewhere; the CTA is never dropped). Triggers on \"/adapt-copy\", \"adapt this copy\", \"platform versions\", \"rewrite for LinkedIn\", \"caption for each platform\", \"cross-post this\", or any time one piece of copy needs platform-native variants. Reads the brand profile for voice, hashtags, and cta_keyword."
argument-hint: "[--post <id>] [--all] [--platform <name>]"
effort: medium
user-invocable: true
---

# /socialforge:adapt-copy — Copy Adapter

Transform a single caption brief into platform-optimized copy for each target platform.

## Context efficiency

Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}/socialforge/brands/<brand>/asset-index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session.

## Process (Per Post x Per Platform)

1. Load post brief (topic, caption_brief, CTA, hashtags, campaign)
2. Load brand-config.json (tone, hashtags, language settings)
3. Load compliance-rules.json (banned phrases, disclaimers)
4. For X/Twitter posts with live-source context, read the optional [X/Twitter research intake](../../references/x-twitter-research-intake.md) note and use only reviewed evidence
5. Generate platform-specific copy:

| Platform | Tone | Limit | Hashtags | Link |
|----------|------|-------|----------|------|
| LinkedIn | Professional | 3,000 chars (140 before fold) | 3-5 | Direct URL |
| Instagram | Conversational | 2,200 chars | 20-30 (first comment) | Link in bio |
| X/Twitter | Punchy, concise | 280 chars | 1-2 | Direct URL |
| Facebook | Casual | 500 chars optimal | 1-3 | Direct URL |
| YouTube | Description format | 5,000 chars | 3-5 | Direct URLs |
| TikTok | Casual, trend-aware | 2,200 chars | 3-5 (trending + branded) | Link in bio |
| Threads | Conversational | 500 chars | 1-3 | Direct URL |
| Bluesky | Concise, community-first | 300 chars | 1-2 (via tag facets) | Direct URL |

6. Apply brand hashtags (always_include + campaign-specific)
7. Run compliance check - flag banned phrases, add disclaimers
8. Handle bilingual posts if configured
9. Save to `production/copy/post-{id}-{platform}-copy.txt`

## Compliance Check (Mandatory)

Before saving any copy:
- Scan against compliance-rules.json banned_phrases
- Check data claims against data_claim_rules
- Add required disclaimers per platform
- Verify platform-specific rules (link policy, hashtag limits)
- For X/Twitter source notes, verify quotes, public metrics, and dates before using them as claims

**Critical violations BLOCK** — copy cannot proceed.
**Warnings are noted** but don't block.

## Output

```
Copy adapted: Post P04
  LinkedIn: 847 chars (under 3000) ✓ | 4 hashtags ✓ | CTA: direct link ✓
  Instagram: 1,203 chars ✓ | 25 hashtags (first comment) ✓ | CTA: link in bio ✓
  X: 267 chars (under 280) ✓ | 2 hashtags ✓ | CTA: direct link ✓
  Compliance: PASSED (0 critical, 1 warning: "consider adding source for 47% claim")
```

## Timeout & Fallback
- Copy generation: 30-second timeout per platform variant
- Compliance check: 10-second timeout. If fails, flag for manual review
