CtrlK
BlogDocsLog inGet started
Tessl Logo

reka-ui

Use when building with Reka UI (headless Vue components) - provides component API, accessibility patterns, composition (asChild), controlled/uncontrolled state, virtualization, and styling integration. Formerly Radix Vue.

60

Quality

76%

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 ./skills/reka-ui/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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.

A well-organized, actionable overview with genuinely useful executable patterns, weakened by a version-changelog block that wastes context and a per-component reference layer that is advertised but absent from the bundle. Fixing the components/*.md availability and moving version history out of the base file would lift both the lowest dimensions.

Suggestions

Generate (and include) the components/<name>.md files referenced by both the body's 'Available Guidance' table and references/components.md, or remove those rows until the files exist — every component's File path currently dead-ends.

Move the 'Recent Updates (v2.6.0-v2.10.5)' changelog and 'Current version' line into a reference file (e.g. references/changelog.md) or a deprecation/old-patterns section so time-sensitive version data stops consuming the base token budget.

Add a plain installation command (npm/pnpm/bun add reka-ui) alongside the auto-import configs, and note how per-component docs are produced (the generate-components.ts script) so the lookup flow is unambiguous.

DimensionReasoningScore

Conciseness

The Key Concepts table and code patterns are lean and trust Claude's competence, but roughly a third of the body is the 'Recent Updates (v2.6.0-v2.10.5)' changelog plus a 'Current version: v2.10.5 (September 2026)' line — time-sensitive version and date information that is not placed in an old-patterns/deprecated section and competes for context. Not 4 because this block is a substantial, removable chunk rather than minor trimming.

3 / 5

Actionability

Provides copy-paste-ready executable code: the complete controlled Dialog SFC, the Nuxt module config, and the unplugin-vue-components resolver config, plus uncontrolled Select and asChild patterns. Not 5 because there is no plain package-install command (only auto-import setups) and the Select/asChild snippets omit their imports — minor gaps.

4 / 5

Workflow Clarity

As a reference/lookup skill with no risky operations, its single action is well sequenced: When to Use → Available Guidance table → a conditional Loading Files checklist. Not 5 because the final lookup step is ambiguous — the body advertises 'components/*.md (dialog.md, select.md, etc.)' without saying where they live or that they must be generated, so the flow breaks at the last step.

4 / 5

Progressive Disclosure

Top-level structure is good — a clearly signaled references/components.md with a conditional loading checklist and 'DO NOT load all files at once' — but scored against the actual bundle, the chain is two levels deep and terminates in missing files: no components/ directory exists, so the 'components/*.md' row in the body and all ~50 'components/<name>.md' paths listed in components.md are dangling. Broken navigation at the detail level is more than a minor organization gap, though the signaling itself is clear, which keeps it above 2.

3 / 5

Total

14

/

20

Passed

Description

78%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.

A strong description: it names a specific niche, lists its concrete capability areas, includes the essential Radix Vue alias, and has an explicit 'Use when' trigger. The main improvement is broadening the when-clause to cover the natural synonyms (Radix Vue, shadcn-vue, Nuxt UI) it already mentions in the body.

DimensionReasoningScore

Specificity

The description names the domain ("headless Vue components") and lists several concrete capability areas — "component API, accessibility patterns, composition (asChild), controlled/uncontrolled state, virtualization, and styling integration". It stays at 4 rather than 5 because these are capability topics stated as nouns rather than the concrete actions the top anchor expects, with minor gaps in coverage.

4 / 5

Completeness

Explicitly answers both: what ("provides component API, accessibility patterns, composition (asChild), controlled/uncontrolled state, virtualization, and styling integration") and when ("Use when building with Reka UI"). Not 5 because the when-clause names only a single trigger phrase rather than concrete trigger variations (e.g. mentions of Radix Vue, shadcn-vue, or headless Vue).

4 / 5

Trigger Term Quality

Includes the key natural terms users would say: "Reka UI", "headless Vue components", "asChild", and the crucial alias "Formerly Radix Vue". Not 5 because common variations like "unstyled", "shadcn-vue", "Nuxt UI", and "accessible Vue components" are absent.

4 / 5

Distinctiveness Conflict Risk

A clearly named niche library with distinct triggers — "Reka UI", "Formerly Radix Vue", "headless Vue components" — and the body further defers generic Vue patterns to the vue skill, so conflict risk is minimal.

5 / 5

Total

17

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
onmax/nuxt-skills
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.