Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.
.claude/skills/loulanyue-crosspost/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 37% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 41% | 0% |
Distribute content across multiple social platforms with platform-native adaptation.
| Platform | Max Length | Link Handling | Hashtags | Media | |----------|-----------|---------------|----------|-------| | X | 280 chars (4000 for Premium) | Counted in length | Minimal (1-2 max) | Images, video, GIFs | | LinkedIn | 3000 chars | Not counted in length | 3-5 relevant | Images, video, docs, carousels | | Threads | 500 chars | Separate link attachment | None typical | Images, video | | Bluesky | 300 chars | Via facets (rich text) | None (use feeds) | Images |
Start with the core idea. Use content-engine skill for high-quality drafts:
Ask the user or determine from context:
For each target platform, transform the content:
X adaptation:
LinkedIn adaptation:
Threads adaptation:
Bluesky adaptation:
Post to the primary platform first:
x-api skill for XPost adapted versions to remaining platforms:
X version:
We just shipped [feature].
[One specific thing it does that's impressive]
[Link]LinkedIn version:
Excited to share: we just launched [feature] at [Company].
Here's why it matters:
[2-3 short paragraphs with context]
[Takeaway for the audience]
[Link]Threads version:
just shipped something cool — [feature]
[casual explanation of what it does]
link in bioX version:
TIL: [specific technical insight]
[Why it matters in one sentence]LinkedIn version:
A pattern I've been using that's made a real difference:
[Technical insight with professional framing]
[How it applies to teams/orgs]
#relevantHashtagIf using a crossposting service (e.g., Postbridge, Buffer, or a custom API), the pattern looks like:
pythonimport os import requests resp = requests.post( "https://your-crosspost-service.example/api/posts", headers={"Authorization": f"Bearer {os.environ['POSTBRIDGE_API_KEY']}"}, json={ "platforms": ["twitter", "linkedin", "threads"], "content": { "twitter": {"text": x_version}, "linkedin": {"text": linkedin_version}, "threads": {"text": threads_version} } }, timeout=30, ) resp.raise_for_status()
Without Postbridge, post to each platform using its native API:
x-api skill patternsBefore posting:
content-engine — Generate platform-native contentx-api — X/Twitter API integration| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 12,111 | 9,995 | -17% | 1 | 1 | 0% | 1,921 | 2,912 | +52% | 0 | 0 | — |
case-02 | fail→pass | 8,287 | 4,788 | -42% | 1 | 1 | 0% | 1,288 | 2,147 | +67% | 0 | 0 | — |
case-03 | fail→fail | 5,827 | 7,066 | +21% | 1 | 1 | 0% | 799 | 2,310 | +189% | 0 | 0 | — |
case-04 | fail→fail | 9,585 | 6,693 | -30% | 1 | 1 | 0% | 1,584 | 2,392 | +51% | 0 | 0 | — |
case-05 | pass→pass | 9,598 | 6,498 | -32% | 1 | 1 | 0% | 1,534 | 2,283 | +49% | 0 | 0 | — |
case-06 | fail→pass | 12,783 | 6,496 | -49% | 1 | 1 | 0% | 1,800 | 2,364 | +31% | 0 | 0 | — |
case-07 | fail→pass | 12,923 | 8,330 | -36% | 1 | 1 | 0% | 1,968 | 2,700 | +37% | 0 | 0 | — |
case-08 | fail→pass | 11,435 | 8,733 | -24% | 1 | 1 | 0% | 2,054 | 2,889 | +41% | 0 | 0 | — |
case-09 | pass→pass | 6,400 | 6,142 | -4% | 1 | 1 | 0% | 1,185 | 2,283 | +93% | 0 | 0 | — |
case-10 | fail→pass | 12,187 | 8,687 | -29% | 1 | 1 | 0% | 1,792 | 2,570 | +43% | 0 | 0 | — |
case-11 | pass→pass | 15,230 | 7,544 | -50% | 1 | 1 | 0% | 2,135 | 2,455 | +15% | 0 | 0 | — |
case-12 | pass→pass | 12,810 | 10,297 | -20% | 1 | 1 | 0% | 2,160 | 2,992 | +39% | 0 | 0 | — |
case-13 | pass→pass | 10,849 | 6,407 | -41% | 1 | 1 | 0% | 1,532 | 2,304 | +50% | 0 | 0 | — |
case-14 | pass→pass | 10,501 | 6,096 | -42% | 1 | 1 | 0% | 1,632 | 2,259 | +38% | 0 | 0 | — |
case-15 | pass→pass | 11,863 | 7,888 | -34% | 1 | 1 | 0% | 1,905 | 2,606 | +37% | 0 | 0 | — |
case-16 | fail→pass | 16,782 | 7,016 | -58% | 1 | 1 | 0% | 2,620 | 2,507 | -4% | 0 | 0 | — |
case-17 | pass→pass | 13,287 | 8,806 | -34% | 1 | 1 | 0% | 1,903 | 2,635 | +38% | 0 | 0 | — |
case-18 | pass→pass | 9,093 | 6,300 | -31% | 1 | 1 | 0% | 1,378 | 2,366 | +72% | 0 | 0 | — |
case-19 | pass→pass | 7,946 | 5,304 | -33% | 1 | 1 | 0% | 1,277 | 2,116 | +66% | 0 | 0 | — |
case-20 | pass→pass | 12,470 | 13,656 | +10% | 1 | 1 | 0% | 1,891 | 3,305 | +75% | 0 | 0 | — |
case-21 | pass→pass | 16,427 | 11,813 | -28% | 1 | 1 | 0% | 2,596 | 3,253 | +25% | 0 | 0 | — |
case-22 | pass→pass | 16,336 | 12,579 | -23% | 1 | 1 | 0% | 3,000 | 3,741 | +25% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.