Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A portable, framework-agnostic SEO system for any React or React Native-for-web frontend. Centralizes site metadata in one constants module, derives canonical URLs from a single base, builds per-route metadata (title, description, canonical, Open Graph, Twitter/X cards), generates...
.claude/skills/sickn33-frontend-seo/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 213% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 134% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 166% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 216% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 304% | 0% |
Read the detailed guide before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.
Use this skill when you need a portable, framework-agnostic SEO system for any React or React Native-for-web frontend. Centralizes site metadata in one constants module, derives canonical URLs from a single base, builds per-route metadata (title, description, canonical, Open Graph, Twitter/X cards), generates...
> Portable skill — readable by Claude Code, OpenCode, Codex, Cursor, Windsurf, and others. > This skill describes an SEO system — a set of pure builder functions plus a thin > framework adapter — not a component library or a visual style. > It pairs with the frontend-architecture skill: the SEO system lives in a single > service module (services/seo/) and is consumed through one barrel.
The goal: every route ships correct, consistent, machine-readable metadata without anyone copy-pasting <meta> tags. Site identity lives in one constants module, URLs are always absolute and canonical, and search engines get a sitemap, robots rules, an RSS feed, and typed JSON-LD derived from the same content the app already renders.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 19,266 | 14,914 | -23% | 1 | 1 | 0% | 3,143 | 9,838 | +213% | 0 | 0 | — |
case-02 | fail→pass | 20,744 | 15,610 | -25% | 1 | 1 | 0% | 4,269 | 9,972 | +134% | 0 | 0 | — |
case-03 | fail→pass | 17,061 | 23,495 | +38% | 1 | 1 | 0% | 3,469 | 9,225 | +166% | 0 | 0 | — |
case-04 | fail→pass | 14,913 | 12,729 | -15% | 1 | 1 | 0% | 2,794 | 8,827 | +216% | 0 | 0 | — |
case-05 | fail→pass | 10,413 | 6,040 | -42% | 1 | 1 | 0% | 1,903 | 7,684 | +304% | 0 | 0 | — |
case-06 | fail→pass | 10,863 | 7,513 | -31% | 1 | 1 | 0% | 2,180 | 8,274 | +280% | 0 | 0 | — |
case-07 | fail→pass | 16,268 | 10,797 | -34% | 1 | 1 | 0% | 3,202 | 8,703 | +172% | 0 | 0 | — |
case-08 | pass→pass | 8,829 | 10,076 | +14% | 1 | 1 | 0% | 1,749 | 8,567 | +390% | 0 | 0 | — |
case-09 | fail→pass | 10,775 | 12,348 | +15% | 1 | 1 | 0% | 2,065 | 9,132 | +342% | 0 | 0 | — |
case-10 | fail→pass | 13,181 | 14,659 | +11% | 1 | 1 | 0% | 2,880 | 9,705 | +237% | 0 | 0 | — |
case-11 | pass→pass | 9,039 | 7,973 | -12% | 1 | 1 | 0% | 1,830 | 8,103 | +343% | 0 | 0 | — |
case-12 | pass→pass | 7,043 | 6,206 | -12% | 1 | 1 | 0% | 1,409 | 7,800 | +454% | 0 | 0 | — |
case-13 | fail→pass | 12,322 | 12,224 | -1% | 1 | 1 | 0% | 2,326 | 9,069 | +290% | 0 | 0 | — |
case-14 | fail→fail | 20,778 | 15,138 | -27% | 1 | 1 | 0% | 4,214 | 9,932 | +136% | 0 | 0 | — |
case-20 | pass→pass | 23,429 | 28,225 | +20% | 1 | 1 | 0% | 4,933 | 12,847 | +160% | 0 | 0 | — |
case-15 | fail→pass | 18,440 | 14,500 | -21% | 1 | 1 | 0% | 3,544 | 9,604 | +171% | 0 | 0 | — |
case-16 | fail→pass | 11,458 | 9,357 | -18% | 1 | 1 | 0% | 2,304 | 8,446 | +267% | 0 | 0 | — |
case-17 | pass→pass | 15,551 | 12,360 | -21% | 1 | 1 | 0% | 2,596 | 8,570 | +230% | 0 | 0 | — |
case-18 | fail→pass | 13,235 | 6,398 | -52% | 1 | 1 | 0% | 2,642 | 7,776 | +194% | 0 | 0 | — |
case-19 | pass→pass | 14,446 | 13,760 | -5% | 1 | 1 | 0% | 3,005 | 9,674 | +222% | 0 | 0 | — |
case-21 | pass→pass | 13,949 | 14,924 | +7% | 1 | 1 | 0% | 2,702 | 9,783 | +262% | 0 | 0 | — |
case-22 | pass→pass | 14,931 | 26,134 | +75% | 1 | 1 | 0% | 3,174 | 12,295 | +287% | 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 +59 percentage points is the difference between those two pass rates over the 22 comparable cases.
The publisher has shipped newer versions since this run, so these numbers describe v1, not the version currently listed.
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.