CtrlK
BlogDocsLog inGet started
Tessl Logo

satori

Expert guidance for Satori — Vercel's library that converts HTML and CSS to SVG, commonly used to generate dynamic OG images for Next.js and other frameworks.

60

Quality

72%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugins/vercel/skills/satori/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

87%Weight 40%Scale 1-3

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, action-oriented reference skill: concrete executable code throughout and Satori-specific gotchas that add genuine value. The main gap is the absence of an explicit end-to-end workflow with validation checkpoints, leaving workflow_clarity at 2.

Suggestions

Add a short ordered workflow (install @vercel/og → set runtime='edge' → load a bundled font → render with ImageResponse → verify the response Content-Type is image/png) with an explicit validation step so workflow_clarity can reach 3.

Trim or fold the Key Patterns section into the relevant sections to remove the slight redundancy with the worked examples above it.

DimensionReasoningScore

Conciseness

Lean, code-heavy content where every section earns its place; the CSS Support/Limitations list and font-loading notes are Satori-specific quirks Claude would not already know. The only mild redundancy is the Key Patterns recap, not enough to drop it below the top anchor.

3 / 3

Actionability

Multiple complete, copy-paste-ready examples — full route handlers, standalone satori() calls, edge-runtime font fetching, and dynamic URL-param rendering — all executable as written.

3 / 3

Workflow Clarity

The skill is organized as parallel recipes rather than an explicit sequenced workflow with validation checkpoints; each recipe is clear, but there is no validate-then-proceed loop or ordering guidance for the cross-cutting concerns.

2 / 3

Progressive Disclosure

Self-contained skill with no bundle files (references/scripts/assets absent) and well-organized labeled sections (Installation, App Router, Convention-Based, Standalone, Fonts, Images); the only external links are official docs, so navigation is trivial.

3 / 3

Total

11

/

12

Passed

Description

57%Weight 40%Scale 1-3

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is specific and clearly distinct, naming the library and its core action, but it lacks an explicit 'Use when' trigger clause and broader keyword coverage, which limit completeness and trigger-term quality.

Suggestions

Add an explicit trigger clause, e.g. 'Use when generating dynamic OG/Open Graph images in Next.js or other edge runtimes, or when the user mentions Satori, @vercel/og, or opengraph-image.'

Broaden natural trigger terms to include 'Open Graph images', 'social cards', and 'opengraph-image/twitter-image' so users phrasing it differently still match.

DimensionReasoningScore

Specificity

It names a concrete capability ('converts HTML and CSS to SVG') and the OG-image use case, but stops at one or two actions rather than listing multiple specific concrete actions as the top anchor requires.

2 / 3

Completeness

The 'what' is explicit, but the 'when' is only implied via 'commonly used to generate dynamic OG images' with no 'Use when...' clause, which caps completeness at 2 per the judging guidelines.

2 / 3

Trigger Term Quality

'Satori', 'OG images', and 'Next.js' are natural user terms, but common variations like 'Open Graph images', 'social cards', and 'opengraph-image' are absent, leaving coverage incomplete.

2 / 3

Distinctiveness Conflict Risk

The Satori/Vercel/OG-images/Next.js framing carves out a clear niche with distinct triggers that are unlikely to fire for unrelated skills.

3 / 3

Total

9

/

12

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository
openai/plugins
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.