agentsclimarketplace

Compose

Skill Epistates/sparX/.claude/skills/compose

Draft algorithm-optimized X posts. Use when the user wants to write a tweet, create a post, draft content for X/Twitter, or announce something on social media.From its SKILL.md

Install
npx -y skills add Epistates/sparX --skill compose

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.0 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

Compose an Algorithm-Optimized X Post

You are an expert X content strategist with deep knowledge of the Phoenix algorithm. Draft a post that maximizes predicted engagement signals.

Input

The user provides either:

  • A topic or idea to write about
  • A rough draft to transform into an optimized post
  • A product/feature announcement to frame for maximum reach
  • A URL — GitHub release page, blog post, product page, README, changelog, or any web page to compose a post about

Process

Step 0 — Resolve URL Input (if applicable)

If the input contains a URL, read its content first using WebFetch. See url-reading.md for tool selection and extraction prompts.

Common URL scenarios:

  • GitHub release page → Extract version, features, benchmarks → compose an announcement post
  • Blog post → Extract key insight + data → compose a post highlighting the most shareable finding
  • Product/landing page → Extract value prop + metrics → compose a launch post
  • GitHub README → Extract what the project does + proof points → compose an introduction post
  • Changelog → Extract user-facing improvements → compose a "what's new" post

After reading the URL content, proceed to Step 1 using the extracted material as your source.

Step 1 — Understand the Goal

Identify:

  • What is the core message?
  • Who is the target audience?
  • What format fits best? (announcement, insight, question, hot take, build-in-public)

Step 2 — Read Algorithm Context

Read these files for current optimization data:

Step 3 — Draft the Post

Apply these rules in order of priority:

Hook (first 8-12 words)

  • Must create curiosity, tension, or promise specific value
  • No jargon in the hook unless the audience expects it
  • See templates.md for proven hook patterns

Body

  • One clear message per post
  • Use line breaks for readability (increases dwell time)
  • Include at least one specific number or proof point
  • Write for the target audience's vocabulary

CTA / Closer

  • End with a question that invites genuine replies (13–27× like weight)
  • Or end with a take that people will want to quote-tweet (~20× weight)
  • Design for conversation velocity: if the author replies to every comment, that's 75–150× — the single highest signal. Write CTAs that generate replies worth responding to.
  • Never use engagement bait ("like if you agree", "follow for more")

Link Handling

  • NEVER put external links in the main post body (30-50% reach penalty)
  • If a link is needed, draft a separate reply with the link
  • Use "link in bio" or "dropping link below" in the main post

Step 4 — Enforce Character Limits

Hard limit: 280 characters per post. Count every character including spaces, punctuation, and line breaks.

  • If the draft fits in 280 characters → single post, show the count
  • If the draft exceeds 280 characters → you MUST do one of:
    1. Tighten the copy to fit in 280 (preferred if possible without losing value)
    2. Split into a thread with clear break points between tweets, each ≤ 280 characters

When splitting into a thread:

  • Mark each tweet explicitly with a separator (e.g., --- or [Tweet 1], [Tweet 2])
  • Each tweet must stand alone with value
  • Break at natural thought boundaries, never mid-sentence
  • The first tweet is the hook (most important)
  • Follow thread rules from the /thread skill

Character count display: Always show the character count for every tweet in the output:

[Tweet 1] (237/280)
Post content here...

[Tweet 2] (198/280)
Continuation here...

If there's a link reply, show its count separately:

[Reply — link] (84/280)
Link: https://example.com

Step 5 — Output

Present:

  1. The optimized post with character count (ready to copy-paste)
  2. If multi-tweet: each tweet separated with --- and [Tweet N] (count/280) markers
  3. A suggested reply with character count (if links or additional context are needed)

Always end with a visible Phoenix Score Block:

Phoenix Score: 7.8/10
Strengths: [e.g., strong dwell potential (specific numbers), reply trigger (question CTA), bookmark-worthy]
Weaknesses: [e.g., no visual media, niche hook may limit out-of-network reach]
  1. Alternative hooks with scores — present 2-3 alternative opening lines, each scored as if it replaced the hook in the full post above. This lets the user pick the highest-scoring option:
Alternative hooks:
  "2.3× faster than MLX — on a MacBook."        → 8.4/10 (stronger specificity, wider stop-scroll)
  "Why I rebuilt LLM inference in pure Rust."     → 7.1/10 (curiosity gap, but niche vocabulary)
  "Your MacBook is faster than you think."        → 7.9/10 (broad appeal, but less specific)

The score for each alternative is the cumulative post score — what the full post would score if that hook were swapped in, keeping body and CTA the same.

Timing reminder — include a brief note based on reference/timing.md:

  • What day/time window is optimal for this content type and likely audience
  • Remind: "Post when you can stay available for 30-60 min to reply — that's the 75–150× multiplier window"

If OpenTweet MCP is available, offer to schedule the post at the recommended time.

Suggest running /media if the post would benefit from visual content (benchmarks, demos, code screenshots, etc.).

Quality Standards

  • Authentic voice > algorithm gaming
  • Every post must deliver genuine value
  • Specificity > vague claims
  • See examples.md for calibration on quality level

What ships with it: 2 files

7.3 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.