CtrlK
BlogDocsLog inGet started
Tessl Logo

flags-sdk

Set up and use feature flags and A/B tests with the Flags SDK (`flags` npm package) and Vercel Flags. Use when installing or configuring the SDK, adding a new or existing flag, wiring `vercelAdapter` (OIDC or SDK keys), declaring flags with `flag()`, using the `vercel flags` CLI (create, inspect, list, enable, disable, set, update, split, rollout, rules, segments, use-targeting, evaluations, versions, open, archive, unarchive, rm, sdk-keys, override, prepare), setting up providers/adapters (Vercel, Statsig, LaunchDarkly, PostHog, GrowthBook, Global Config, OpenFeature, Split, Flagsmith, Reflag, Optimizely, or custom), precompute, `identify`/`dedupe`, Flags Explorer/Toolbar, Next.js or SvelteKit, or encrypting flag values. Triggers: feature flags, feature gates, A/B testing, experimentation, gradual rollout, traffic split, targeting rules, flag overrides, precompute, Flags Explorer, Vercel Flags, vercel flags CLI, `flags/next`, `flags/sveltekit`, `flags/react`, `@flags-sdk/*`.

75

Quality

94%

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

SKILL.md
Quality
Evals
Security

Quality

Content

92%Weight 40%Scale 1-5

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

The body is a strong operational skill: routing guidance picks the right flow, every flow is sequenced with pre-checks and genuine error-recovery checkpoints, commands and code are executable, and all detail is pushed one level deep into four real, well-labeled reference files. The only weakness is minor over-explanation in the bulk-evaluation rationale and the version-compatibility note.

Suggestions

Tighten the Bulk evaluation section: keep the one-line recommendation ('prefer `evaluate([flagA, flagB])` — shares work across the batch') and cut the latency/microtask prose, which mostly justifies a recommendation Claude can take at face value.

Compress the Version note blockquote to the decision rule only — '`flags` 4.2.0+ accepts the adapter by reference (`adapter: vercelAdapter`); for older versions call it (`adapter: vercelAdapter()`)' — dropping the rename history and the redundant guidance about which form to prefer.

DimensionReasoningScore

Conciseness

Overall efficient — tight code blocks, compact tables, no general-programming padding — but a few passages over-explain: the paragraph on why `evaluate()` beats awaits/`Promise.all()` ("reduces the number of parallel promises the runtime manages and leaves less room for the async work to be interrupted by other microtasks") and the multi-sentence Version note blockquote could each be trimmed. Not a 5 because those tokens do not all earn their place; not a 3 because there is no padded conceptual explanation of things Claude already knows.

4 / 5

Actionability

Fully executable, copy-paste-ready guidance for common cases: exact install commands ("pnpm i flags @flags-sdk/vercel"), exact CLI invocations ("Run `vercel flags create <flag-key> --kind boolean --description \"<description>\"`", "Run `vercel flags inspect <flag-key>`"), complete flag declarations with imports, and concrete decision rules for mapping inspect output to code. Not a 4 because the specific examples cover setup, creation, existing-flag, and usage cases with no pseudocode.

5 / 5

Workflow Clarity

Clear routing paragraph up front selects among four explicitly sequenced flows, each with 'Before you start' pre-checks ("Is `flags` in `package.json`? → Skip install") and explicit validation/error-recovery checkpoints: "If it reports `link_required`, the project is not linked", "If the user named a project or team and the output differs, stop and ask instead of relinking", "If `FLAGS_SECRET` is still missing after the pull, generate it", and "If the CLI rejects `--project`, upgrade it first". These feedback loops (check → fix → retry) match the score-5 anchor.

5 / 5

Progressive Disclosure

Clear overview body with well-signaled, one-level-deep references, all verified real: the References section enumerates references/nextjs.md, sveltekit.md, providers.md, and api.md with content summaries, and every inline anchor link resolves (references/nextjs.md#toolbar-setup, references/providers.md#vercel, #user-targeting, #attribute-types, #custom-adapters, #vercel-flags-cli, references/api.md#evaluate). Content is appropriately split — full framework, provider, and API detail lives in the bundle files while the body stays at decision level.

5 / 5

Total

19

/

20

Passed

Description

100%Weight 40%Scale 1-5

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 an exemplary what+when trigger description: concrete capabilities, an explicit 'Use when' clause, natural trigger synonyms, and a distinct SDK/Vercel niche, all in third person. Its only minor flaw is slight redundancy between the 'Use when' enumeration and the 'Triggers:' sentence (e.g., 'precompute' and 'Flags Explorer' each appear in both), which adds length without adding information.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions with comprehensive coverage: "installing or configuring the SDK", "declaring flags with `flag()`", "wiring `vercelAdapter` (OIDC or SDK keys)", "precompute", "`identify`/`dedupe`", and "encrypting flag values", plus an enumerated CLI subcommand list ("create, inspect, list, enable, disable, set, update, split, rollout...") and a full provider list. Not a 4 because coverage spans setup, declaration, CLI management, providers, and Explorer/Toolbar with no material gaps.

5 / 5

Completeness

Explicitly answers both what ("Set up and use feature flags and A/B tests with the Flags SDK (`flags` npm package) and Vercel Flags") and when ("Use when installing or configuring the SDK, adding a new or existing flag..." plus a dedicated "Triggers:" clause) with concrete trigger phrases. Matches the score-5 anchor exactly; the explicit 'Use when...' clause rules out the 4 anchor's 'could be more specific'.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage including synonyms and package names: "feature flags, feature gates, A/B testing, experimentation, gradual rollout, traffic split, targeting rules, flag overrides", "Vercel Flags, vercel flags CLI", and imports like "`flags/next`, `flags/sveltekit`, `flags/react`, `@flags-sdk/*`" (analogous to file extensions). These are exactly the phrases a user with this need would say; no common variation is missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche — the Flags SDK npm package and Vercel Flags platform — with distinct triggers (package imports, `vercel flags` CLI, Flags Explorer). Only negligible overlap risk with a generic Vercel CLI or experimentation topic, and the trigger terms are provider-specific enough to keep that minimal.

5 / 5

Total

20

/

20

Passed

Validation

75%

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

Validation — 12 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (527 lines); consider splitting into references/ and linking

Warning

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

12

/

16

Passed

Repository
vercel/vercel-plugin
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.