CtrlK
BlogDocsLog inGet started
Tessl Logo

with-tanstack-virtual

Virtualize Lit Table final row or column models with @tanstack/lit-virtual VirtualizerController, host lifecycle-aware counts, scroll refs, stable keys, dynamic measurement, sticky CSS, grid/flex sizing, and infinite data. Load for large rendered tables; Virtual is renderer composition, not tableFeatures.

64

Quality

77%

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/lit-table/skills/with-tanstack-virtual/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

88%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 content is an efficient, highly actionable skill with a complete executable example and crisp wrong/correct prescriptions for the main pitfalls. The main gap is the absence of explicit validation/verification checkpoints for geometry-sensitive virtualization flows, which keeps workflow clarity and progressive disclosure just below the top anchors.

Suggestions

Add an explicit verification checkpoint after setting the virtualizer count, e.g., assert rows.length === v.options.count to catch index/geometry mismatches early.

Provide a small validation snippet or checklist confirming scroll container, total-size spacer, and transforms are all present before relying on sticky/sizing CSS.

Consider a short curated reference (or inline note) for the column-virtualization sizing remeasure flow so the 'keep geometry sources consistent' pattern is as concrete as the row example.

DimensionReasoningScore

Conciseness

The body is lean: a single complete executable example plus tight pattern and mistake sections, with no padding or explanation of concepts Claude already knows; every section earns its place.

5 / 5

Actionability

The Setup block is copy-paste-ready executable Lit code, and each Core Pattern and Common Mistake pairs a concrete Wrong/Correct prescription with specific APIs (getRowModel().rows, column.getSize(), stable Array<ColumnDef>), covering the common cases.

5 / 5

Workflow Clarity

Core Patterns and Common Mistakes give a clear wrong/correct sequence for the main flows, but there are no explicit validation checkpoints or feedback loops (e.g., verify virtualizer count matches rendered rows) for these geometry-sensitive operations, which the rubric flags as a gap.

4 / 5

Progressive Disclosure

Structure is clean with well-labeled sections (Setup, Core Patterns, Common Mistakes, API Discovery) and real source pointers; no bundle files exist so content is self-contained, though API Discovery points to node_modules type definitions rather than curated reference files, a minor organization gap.

4 / 5

Total

18

/

20

Passed

Description

66%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 highly specific and well-bounded to a clear niche, but is weighed down by dense internal jargon that weakens natural trigger terms and embeds the use-condition as a clause rather than an explicit trigger. Tightening into readable capabilities with a clearer 'Use when...' trigger would lift it toward the top anchors.

Suggestions

Add an explicit 'Use when...' clause naming natural triggers (e.g., 'Use when rendering large Lit tables that need virtual scrolling, virtualized rows/columns, or infinite scroll').

Replace jargon-heavy tokens like 'host lifecycle-aware counts' and 'VirtualizerController' in the user-facing summary with plain capability phrases ('virtualize rows and columns', 'infinite scroll').

Surface synonyms and concrete terms users say ('virtual scrolling', 'virtualize rows', 'large tables') to broaden trigger-term coverage.

DimensionReasoningScore

Specificity

Lists several concrete actions (host lifecycle-aware counts, scroll refs, stable keys, dynamic measurement, sticky CSS, grid/flex sizing, infinite data), but the comma-separated keyword list is dense and the actions blur into jargon rather than discrete readable capabilities, leaving minor gaps.

4 / 5

Completeness

It answers 'what' via the enumeration of capabilities and 'when' with 'Load for large rendered tables', but the trigger guidance is an embedded clause rather than an explicit 'Use when...' phrasing, so 'when' could be more explicit.

4 / 5

Trigger Term Quality

Natural user-facing phrases are limited to 'large rendered tables' and 'Virtual'; most tokens are internal jargon (VirtualizerController, tableFeatures, host lifecycle-aware counts) that a user would rarely say, missing common variations like 'virtual scrolling' or 'virtualize rows'.

3 / 5

Distinctiveness Conflict Risk

The tight @tanstack/lit-virtual + Lit Table niche with explicit 'Virtual is renderer composition, not tableFeatures' boundary makes it clearly distinct from sibling table skills with minimal conflict risk.

5 / 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.