Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user wants to add or optimize Twitter Card metadata for X (Twitter) link previews. Also use when the user mentions "Twitter Card," "twitter:card," "twitter:image," "twitter:title," "X preview," or "tweet preview." For Facebook/LinkedIn previews, use open-graph.
.claude/skills/sediman-agent-twitter-cards/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-20 | ✓→✗ | ▼ Worse | 96% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 97% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 72% | 0% |
Guides implementation of Twitter Card meta tags for X (Twitter) link previews. Twitter falls back to Open Graph if Twitter-specific tags are missing; add both for best results.
When invoking: On first use, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On subsequent use or when the user asks to skip, go directly to the main output.
| Type | Use case | |------|----------| | summary | Small card with thumbnail | | summary_large_image | Large prominent image (recommended; 1200×675px) | | app | Mobile app promotion | | player | Video/audio content |
html<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Your Title"> <meta name="twitter:description" content="Your description"> <meta name="twitter:image" content="https://example.com/image.jpg"> <meta name="twitter:site" content="@yourusername"> <meta name="twitter:creator" content="@authorusername"> <meta name="twitter:image:alt" content="Alt text for image">
| Tag | Guideline | |-----|-----------| | twitter:card | Required; summary_large_image for most pages | | twitter:title | Max 70 chars; concise title | | twitter:description | Max 200 chars; summary | | twitter:image | Absolute URL; unique per page | | twitter:site | @username of website | | twitter:creator | @username of content creator | | twitter:image:alt | Alt text; max 420 chars; accessibility |
| Item | Guideline | |------|-----------| | Aspect ratio | 2:1 | | Minimum | 300×157 px | | Recommended | 1200×675 px | | Max | 4096×4096 px | | File size | Under 5MB | | Formats | JPG, PNG, WebP, GIF (first frame only); SVG not supported |
tsxexport const metadata = { twitter: { card: 'summary_large_image', title: '...', description: '...', images: ['https://example.com/twitter.jpg'], site: '@yourusername', creator: '@authorusername', }, };
html<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Your Title"> <meta name="twitter:description" content="Your description"> <meta name="twitter:image" content="https://example.com/image.jpg"> <meta name="twitter:site" content="@yourusername"> <meta name="twitter:image:alt" content="Alt text">
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 12,432 | 9,130 | -27% | 1 | 1 | 0% | 2,174 | 2,610 | +20% | 0 | 0 | — |
case-02 | fail→pass | 11,206 | 8,103 | -28% | 1 | 1 | 0% | 1,827 | 2,389 | +31% | 0 | 0 | — |
case-03 | pass→pass | 4,259 | 3,778 | -11% | 1 | 1 | 0% | 822 | 1,621 | +97% | 0 | 0 | — |
case-04 | pass→pass | 6,929 | 5,008 | -28% | 1 | 1 | 0% | 1,048 | 1,804 | +72% | 0 | 0 | — |
case-05 | pass→pass | 7,057 | 8,009 | +13% | 1 | 1 | 0% | 1,120 | 2,462 | +120% | 0 | 0 | — |
case-06 | pass→pass | 3,422 | 5,040 | +47% | 1 | 1 | 0% | 494 | 1,853 | +275% | 0 | 0 | — |
case-07 | fail→fail | 9,917 | 6,940 | -30% | 1 | 1 | 0% | 1,599 | 2,098 | +31% | 0 | 0 | — |
case-08 | pass→pass | 7,368 | 7,240 | -2% | 1 | 1 | 0% | 1,236 | 2,239 | +81% | 0 | 0 | — |
case-09 | pass→pass | 8,167 | 6,322 | -23% | 1 | 1 | 0% | 1,287 | 1,982 | +54% | 0 | 0 | — |
case-10 | pass→pass | 8,344 | 5,845 | -30% | 1 | 1 | 0% | 1,321 | 1,940 | +47% | 0 | 0 | — |
case-11 | pass→pass | 10,301 | 7,239 | -30% | 1 | 1 | 0% | 1,484 | 1,998 | +35% | 0 | 0 | — |
case-12 | pass→pass | 7,976 | 5,896 | -26% | 1 | 1 | 0% | 1,246 | 1,861 | +49% | 0 | 0 | — |
case-13 | pass→pass | 7,996 | 4,722 | -41% | 1 | 1 | 0% | 1,152 | 1,698 | +47% | 0 | 0 | — |
case-14 | pass→pass | 9,530 | 7,646 | -20% | 1 | 1 | 0% | 1,446 | 2,149 | +49% | 0 | 0 | — |
case-15 | pass→pass | 5,736 | 3,993 | -30% | 1 | 1 | 0% | 810 | 1,563 | +93% | 0 | 0 | — |
case-16 | pass→pass | 8,801 | 6,348 | -28% | 1 | 1 | 0% | 1,375 | 2,024 | +47% | 0 | 0 | — |
case-17 | pass→pass | 9,910 | 7,451 | -25% | 1 | 1 | 0% | 1,649 | 2,179 | +32% | 0 | 0 | — |
case-18 | pass→pass | 4,968 | 5,282 | +6% | 1 | 1 | 0% | 651 | 1,693 | +160% | 0 | 0 | — |
case-19 | pass→pass | 10,808 | 8,233 | -24% | 1 | 1 | 0% | 1,841 | 2,365 | +28% | 0 | 0 | — |
case-20 | pass→fail | 6,467 | 7,428 | +15% | 1 | 1 | 0% | 1,083 | 2,126 | +96% | 0 | 0 | — |
case-21 | pass→pass | 8,094 | 10,989 | +36% | 1 | 1 | 0% | 1,503 | 3,120 | +108% | 0 | 0 | — |
case-22 | pass→pass | 4,745 | 6,075 | +28% | 1 | 1 | 0% | 816 | 1,990 | +144% | 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 +5 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
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.