CtrlK
BlogDocsLog inGet started
Tessl Logo

column-pinning

Pin columns into logical start, center, and end regions with columnPinningFeature and renderer-owned sticky CSS. Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps.

64

Quality

78%

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 ./packages/table-core/skills/column-pinning/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

82%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 dense, actionable reference skill with executable code and high-value Wrong/Correct mistake guidance that assumes Claude's competence. Fixing the broken inline-code backticks and showing the missing `Column` type import would round out actionability.

Suggestions

Fix the nested backticks on the diverging-widths mistake so the `cell.style.width = \`${column.getSize()}px\`` inline code renders correctly.

Show the `Column` type import (or use an inline type) in the Core Patterns example so the style() helper is fully copy-paste executable.

Consider extracting the mistake list into a short references file and linking it one level deep, which would tighten the body under the simple-skill threshold and lift progressive_disclosure.

DimensionReasoningScore

Conciseness

The body is lean throughout — setup, a single style() pattern, Wrong/Correct mistake pairs, and a one-line API discovery pointer — with no padding and no explanation of concepts Claude already knows; every token earns its place. Not penalized for the v8/v9 references since they appear in the migration/old-patterns 'Common Mistakes' context.

5 / 5

Actionability

Provides executable, copy-paste-ready TypeScript for setup and the style() helper plus concrete Wrong/Correct pairs covering the common cases; not a 5 because the `Column<any, any>` type is used without showing its import, and the nested backticks on the width mistake line break that inline code's rendering.

4 / 5

Workflow Clarity

Well-organized into Setup → Core Patterns → Common Mistakes → API Discovery with the Wrong/Correct pairs acting as guardrails for the single apply-sticky-styles action; not a 5 because there is no explicit sequenced workflow with validation checkpoints, though the simple-skill exception makes this acceptable.

4 / 5

Progressive Disclosure

Self-contained with clearly labeled sections and no nested references; not a 5 because it exceeds the ~50-line simple-skill threshold and the 'API Discovery' pointer to a node_modules path is an unsignaled external reference rather than a clean one-level-deep bundle reference.

4 / 5

Total

17

/

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 tight, specific description that clearly states what the skill does and gives an explicit 'Load for ...' trigger list, avoiding vague fluff. It could be pushed toward a 5 by reframing the trigger guidance as user-facing scenarios and adding casual synonyms like 'freeze'/'sticky columns'.

Suggestions

Add a user-facing 'Use when ...' clause with scenarios (e.g. 'Use when the user wants to pin, freeze, or stick table columns') to make the 'when' more explicit and lift completeness.

Include casual synonyms alongside the technical terms — 'freeze columns' and 'sticky columns' — so natural user phrasing matches the trigger terms.

Tie the generic CSS triggers (z-index, backgrounds, overflow) more explicitly to the column-pinning context to reduce overlap risk with general sticky-layout skills.

DimensionReasoningScore

Specificity

Names the domain and several concrete concerns — 'Pin columns into logical start, center, and end regions', 'renderer-owned sticky CSS', plus RTL offsets, z-index, backgrounds, overflow, widths, gaps, overlaps — landing between 'several specific actions' (4) and comprehensive coverage (5); not a 5 because the entries read as concern triggers rather than a comprehensive set of distinct actions.

4 / 5

Completeness

Answers 'what' (pin columns into regions with columnPinningFeature and sticky CSS) and 'when' (the 'Load for ...' trigger list) explicitly, so it clears the 'Use when' cap; not a 5 because the 'when' is framed as internal load triggers rather than concrete user-facing scenarios ('Use when the user wants to pin/freeze columns').

4 / 5

Trigger Term Quality

The 'Load for RTL offsets, z-index, backgrounds, overflow, widths, gaps, or overlaps' clause plus 'Pin columns' gives good natural-term coverage for this problem space; not a 5 because the vocabulary is fairly technical and lacks casual synonyms a user might say (e.g. 'freeze columns', 'sticky columns').

4 / 5

Distinctiveness Conflict Risk

The columnPinningFeature niche and pinning-specific triggers are mostly distinct with minimal conflict risk; not a 5 because generic CSS terms like z-index, backgrounds, and overflow could overlap with adjacent sticky/scroll skills.

4 / 5

Total

16

/

20

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

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository
TanStack/table
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.