agentleFS
vansh-nagarvansh-nagar/Pixel-Perfect/.claude/skills/caption/SKILL.md

caption

Skill748 starsChanged 14 days agoMITView on GitHub

Write a tweet caption for a component Vansh just built, modelled on what is going viral in his design Twitter feed. He pastes raw copied text from his X/Twitter feed; the skill parses every post, ranks them by engagement relative to the rest of the feed, works out why the top ones spread (hook, length, format, tone), reads the component's source to find what is actually striking about it, and writes caption options that borrow those patterns without copying them. Use whenever the user runs /caption, pastes a Twitter/X feed and asks for a caption, or asks "what should I tweet for this component".

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. imMamdouhaboammar/linkedin-animated-infographics★ 14same name
    2. fliqrlabs/instagram-creator-skills★ 5same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository4 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 11 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    The component: Use, in this order:

    line 16
  2. Distinctive:

    If it is still ambiguous, ask which component.

    line 21
  3. Distinctive:

    If there is no feed in the message, ask him to paste it.

    line 23
  4. Distinctive:

    Keep quote-tweeted text attached to its parent, marked as quoted.

    line 36
  5. Distinctive:

    If metrics are missing for most posts, say so and rank on what is there (e.g.

    line 38
  6. Distinctive:

    Read the source. Find the one thing a viewer notices in the first second (the interaction, the physics, the trick), and the tech behind it …

    line 73
  7. Distinctive:

    When he reports another winner, add it here with the date and why it worked.

    line 95
  8. Distinctive:

    No hashtags unless the viral set uses them.

    line 112
  9. Distinctive:

    Don't claim things the component doesn't do.

    line 114
  10. Distinctive:

    Keep it short. Lead with the captions.

    line 124
  11. Distinctive:

    Only show the top 3–5 viral posts in the analysis.

    line 141

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/caption

Turn a pasted design-Twitter feed plus a component into a caption that fits what is currently working on the timeline.

Inputs

  1. The feed. Raw text copied from X. It is messy: names, handles, ·, timestamps, post text, then a run of bare numbers. It may also contain "Show more", "Quote", ads ("Promoted"), and "Who to follow" blocks.
  2. The component. Use, in this order:
    • the component he names in the message;
    • otherwise whatever is in src/app/playground/page.tsx (follow its imports);
    • otherwise the most recently changed file under registry/new-york/ (git log -1 --name-only -- registry/new-york or git status). If it is still ambiguous, ask which component. Don't guess.

If there is no feed in the message, ask him to paste it. Don't invent trends.

Step 1: Parse the feed into posts

Split the text into one record per post: handle, age, text, and metrics.

  • X copies metrics as bare numbers after the post text, in this order: replies, reposts, likes, views (sometimes bookmarks after views). A missing count is just absent, so match from the end: the largest and last number is usually views.
  • Normalise 1.2K → 1200, 3.4M → 3,400,000.
  • Age: 3h, 45m, Oct 28. Convert to hours old (today is in your context).
  • Drop ads, "Who to follow", and pure reply fragments with no metrics.
  • Keep quote-tweeted text attached to its parent, marked as quoted.

If metrics are missing for most posts, say so and rank on what is there (e.g. likes only), rather than pretending to precision.

Step 2: Rank what is viral

Rank relative to this feed, not absolute numbers. A design feed's ceiling is different from a news feed's.

  • Primary score: likes + 2 × reposts + 3 × bookmarks (bookmarks signal "I want to use this", which is exactly the reaction a component wants).
  • Velocity: divide by hours old (minimum 1). A 2h-old post with 800 likes beats a 3-day-old post with 2,000.
  • Like-to-view ratio above roughly 3% means the content itself landed, not just a big account's reach. Prefer these as models.
  • Flag accounts that are obviously large (huge views on a weak post) so their reach doesn't get mistaken for a good pattern.

Take the top ~5 (or top 10–15% of a long feed) as the viral set.

Step 3: Work out why they spread

For each post in the viral set, note:

  • Hook: the first line. Statement, question, "I made…", number, contrarian take, "this is what X should feel like", lowercase one-liner, etc.
  • Length: word count, single line vs. line breaks.
  • Tone & casing: lowercase/sentence case, emoji use, punctuation.
  • What it shows: video/demo, before→after, technique reveal, free/open source.
  • Call to action: "code below", "link in replies", "free", none.

Then name the 2–4 patterns that repeat across the set. Those patterns drive the captions, not any single tweet.

Step 4: Understand the component

Read the source. Find the one thing a viewer notices in the first second (the interaction, the physics, the trick), and the tech behind it (GSAP, Motion, WebGL, SVG). Check whether it is in the registry: if so it installs with

npx shadcn@latest add https://www.pixel-perfect.space/r/<registry-name>.json

and the site is https://www.pixel-perfect.space.

Vansh's own winners

Posts of his that went viral. Treat them as the strongest signal, above the pasted feed, because they prove what his audience responds to.

  • 2026-10-31, shelf gallery: "the cards bend based on how fast you scroll. every vertex. no video editing this is live WebGL" Why it worked: a concrete mechanic in plain words ("bend based on how fast you scroll"), a short detail line that signals depth ("every vertex."), and a line that heads off doubt ("no video editing this is live WebGL"). Lowercase, no emoji, no link.

When he reports another winner, add it here with the date and why it worked.

Step 5: Write the captions

Give 5 options, best first. For each: the caption, then one line on which viral pattern it borrows and from which post (@handle, likes).

Rules:

  • Under 280 characters. Most winners in design feeds are under ~15 words; match the viral set's length, don't default long.
  • Borrow structure, never wording. No caption may reuse a distinctive phrase from a feed post.
  • Match the feed's casing and emoji habits. If the viral set is lowercase with no emoji, so are the captions.
  • Describe what it does or how it feels, concretely. "drag it and it keeps spinning" beats "smooth interactive carousel".
  • No hashtags unless the viral set uses them. No em dashes. No hype words ("insane", "game-changer", "elevate", "seamless", "🚀"). No "Not X. It's Y."
  • Don't claim things the component doesn't do.

Then add:

  • Reply tweet (optional): the install command or site link, since links in the main post get less reach.
  • Posting note, one line: e.g. "post as a video, the motion is the hook".

Output shape

Keep it short. Lead with the captions; put the analysis after.

**Best:** <caption>

1. <caption>
   borrows <pattern> (@handle, 4.1K likes)
2. ...

Reply: <link or install line>
Note: <one line>

**What's working in your feed**
- <pattern>: @handle (likes, age), @handle (...)
- ...

Only show the top 3–5 viral posts in the analysis. Don't dump the full parsed feed unless he asks.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.