CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

punkt-components

Using Punkt design system components (React and Elements/Web Components). Covers component APIs, props, events, slots, and usage patterns for all Punkt UI components. Use when building UIs with Punkt components.

Quality

83%

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

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

An exemplary component-library skill: executable examples throughout, hard-won operational knowledge (CSP, CDN domains, Next.js pitfalls), and a clean one-level reference structure. The only trims needed are a few sentences of general web/design knowledge and version-locked Next.js details.

Suggestions

Cut general-knowledge sentences Claude already has — e.g. the HTML form-attribute semantics and the advice that mixing field sizes looks misaligned — and keep only the Punkt-specific support lists.

Move the version-locked bundler guidance (Next.js 15/16 webpack vs Turbopack defaults) into a reference file or reframe it neutrally so it does not age inside SKILL.md.

Verify the 35+ referenced component .md files ship alongside SKILL.md; none were present in the reviewed bundle, so the links could not be confirmed to resolve.

DimensionReasoningScore

Conciseness

The body is dense with Punkt-specific facts Claude cannot know (CSP directives and the unsafe-inline rationale, the second CDN domain, tree-shakeability, Next.js optimizePackageImports, slot-mutation performance advice), so it is far above the verbose anchors. Minor instances of over-explanation keep it below anchor 5: HTML semantics Claude already knows (the form attribute submits a field with its form; whitespace between inline elements renders), generic design advice ("mixing sizes in one form makes the fields look misaligned"), and version-number trivia ("the default in Next.js 15, next build --webpack in Next.js 16") that will age.

4 / 5

Actionability

Every section gives copy-paste-ready material: npm install commands, import statements, JSX and custom-element examples, a next.config.mjs snippet, a complete CSP directive block, and tables of inputSize values and per-component support lists. The examples cover the common cases (button usage, sized text input, fields outside a form) with no gaps, matching the anchor-5 example.

5 / 5

Workflow Clarity

Setup paths are clearly sequenced per ecosystem (install → import → CSP, with the Next.js/Turbopack caveat and cross-links to the CSP section), and the per-component index tells the reader where to go next. It is not anchor 5 because there are no verification checkpoints (e.g. confirming icons render after CSP setup) even for the one fragile step — CSP misconfiguration — that the skill itself flags as a common failure; nothing here is destructive or batch, so the score-3 cap does not apply.

4 / 5

Progressive Disclosure

SKILL.md is a true overview: concise getting-started, the cross-cutting topics that apply to many components (inputSize, form association, CSP, strings), and a numbered 35-entry component index pointing to one-level-deep per-component files with additional targeted links (header.md, footer.md, consent.md, strings.md) exactly where those topics arise. No bulk API reference is inlined and no reference is nested. Note: the referenced .md files were not present in the bundle directory to verify they resolve, but the structure as authored matches the anchor-5 example.

5 / 5

Total

18

/

20

Passed

Description

75%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 solid, specific description with an explicit 'Use when' clause and both ecosystems named. Its main gaps are narrow trigger coverage (no package or tag names) and an unstated boundary with the sibling punkt-css skill.

Suggestions

Widen trigger coverage by mentioning the package names users would type, e.g. "Using Punkt design system components from @oslokommune/punkt-react and @oslokommune/punkt-elements".

Expand the 'Use when' clause to more concrete triggers, e.g. "Use when building UIs with Punkt components, when the user mentions pkt-* tags, or when working in a repo that depends on the Punkt packages".

State the boundary with the sibling skill in the description (e.g. "For Punkt CSS classes, colors, typography and layout, use the punkt-css skill") to reduce overlap risk.

DimensionReasoningScore

Specificity

The description names the domain precisely ("Punkt design system components (React and Elements/Web Components)") and lists several specific covered areas ("component APIs, props, events, slots, and usage patterns"), but the only action verb is the gerund "Using" — these are coverage areas rather than concrete actions like the anchor-5 examples (extract/fill/merge). It sits above anchor 3 (only 1-2 concrete specifics) but below anchor 5 (multiple concrete actions).

4 / 5

Completeness

Both parts are explicit: the what ("Covers component APIs, props, events, slots, and usage patterns for all Punkt UI components") and the when ("Use when building UIs with Punkt components"). Not score 3, since the 'when' is explicitly stated rather than merely implied; not score 5, since the trigger is a single phrase and could enumerate more concrete triggers (component names, package names) as the anchor-5 example does.

4 / 5

Trigger Term Quality

Good natural keyword coverage: "Punkt", "design system", "React", "Elements/Web Components", "props", "events", "slots", and the trigger phrase "building UIs with Punkt components". It falls short of anchor 5 because package names users would actually type (@oslokommune/punkt-react, @oslokommune/punkt-elements) and custom-element tag forms (pkt-button) are absent, but coverage is well above the 'some relevant keywords' of anchor 3.

4 / 5

Distinctiveness Conflict Risk

"Punkt design system components (React and Elements/Web Components)" carves out a clear niche unlikely to trigger unrelated skills. Minor overlap remains with the sibling punkt-css skill (referenced in the body) since a user saying "Punkt" or "style a Punkt button" could match either; the description itself does not state that boundary, keeping it just below anchor 5.

4 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 40 missing

Warning

Total

15

/

16

Passed

Repository

oslokommune/punkt-skills

Path

skills/punkt-components/SKILL.md

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.