CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

polars

Fast in-memory DataFrame library for datasets that fit in RAM. Use when pandas is too slow but data still fits in memory. Lazy evaluation, parallel execution, Apache Arrow backend. Best for 1-100GB datasets, ETL pipelines, faster pandas replacement. For larger-than-RAM data use dask or vaex.

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 ./plugins/AI-Agents-Safe-Coding-Skills-claude/skills/polars/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.

The body is a well-organized, example-driven overview with mostly executable code and a clear eager/lazy usage story, but it is diluted by a redundant overview paragraph and duplicated Quick Start examples. Its biggest defect is that all six referenced `references/*.md` files are missing from the bundle, breaking the progressive-disclosure structure it advertises.

Suggestions

Ship the six referenced files (references/core_concepts.md, operations.md, pandas_migration.md, io_guide.md, transformations.md, best_practices.md) or remove the 'load references/...' instructions — every referenced path is currently dangling.

Trim the Overview paragraph and remove the Quick Start code block, since its select/filter/with_columns examples reappear nearly verbatim in Common Operations.

DimensionReasoningScore

Conciseness

The Overview paragraph ("Polars is a lightning-fast DataFrame library... high-performance data manipulation capabilities for efficient data processing") largely repeats the frontmatter description with marketing filler, and the Quick Start's select/filter/with_columns examples are duplicated nearly verbatim in Common Operations ("df.select(\"name\", \"age\")", "df.filter(pl.col(\"age\") > 25)", "age_plus_10=pl.col(\"age\") + 10"). This matches 'Mostly efficient but includes some unnecessary explanation or could be tightened'. Not a 4 because the duplication and filler are noticeable, not minor; not a 2 because most sections are tight, example-driven, and free of concept explanations Claude already knows.

3 / 5

Actionability

Nearly all examples are executable and copy-paste ready ("df.group_by(\"city\").agg(pl.col(\"age\").mean().alias(\"avg_age\"))", "pl.concat([df1, df2], how=\"vertical\")", "lf = pl.scan_csv(\"large.csv\")"). Minor gaps keep it from a 5: placeholder ellipses ("lf.filter(...).select(...).collect()"), abstract templates ("pl.when(condition).then(value).otherwise(other_value)"), and unverified API forms like standalone "pl.first() / pl.last()". Not a 3 because pseudocode is rare and the common cases are concretely covered.

4 / 5

Workflow Clarity

As a reference-style skill it has no destructive multi-step process, and the sequences that do exist are clear: eager vs lazy is contrasted side by side, and the lazy workflow is sequenced explicitly ("lf = pl.scan_csv(...)" → filter/select → "df = result.collect()"). This matches 'Clear sequence with most checkpoints present; minor validation gaps'. Not a 5 because there are no explicit validation/verification steps or feedback loops (e.g., checking schema or output before/after collect); not a 3 because the sequences present are coherent and unambiguous.

4 / 5

Progressive Disclosure

The body is well-organized with clearly signaled one-level-deep references ("For detailed concepts, load `references/core_concepts.md`" and a Resources section listing all six files with descriptions). However, the actual bundle contains no `references/` directory at all — all six referenced files are missing, so the navigation the content promises is broken. Per the guideline to score against the actual bundle structure, this lands at 'Some structure but could be better organized' rather than rewarding signaling alone. Not a 4 because well-signaled references to nonexistent files cannot deliver 'easy navigation'; not a 2 because SKILL.md itself is a genuine overview, not a monolith of inlined reference content.

3 / 5

Total

14

/

20

Passed

Description

82%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 that clearly states what the skill is, when to use it, and when not to (dask/vaex for larger-than-RAM), in third person with natural trigger phrases. The main gap is that it describes library attributes rather than the concrete DataFrame operations the skill covers.

DimensionReasoningScore

Specificity

Quotes: "Fast in-memory DataFrame library for datasets that fit in RAM", "Lazy evaluation, parallel execution, Apache Arrow backend", "ETL pipelines, faster pandas replacement". The domain is named and several concrete capabilities appear, but they are library attributes rather than user-facing actions (no mention of querying, joining, aggregating, or transforming DataFrames), matching the anchor 'Names domain and 1-2 concrete actions, but not comprehensive'. Not a 4 because it never enumerates the operations the skill actually covers; not a 2 because it goes well beyond naming the domain.

3 / 5

Completeness

Quotes: "Fast in-memory DataFrame library for datasets that fit in RAM" (what) and "Use when pandas is too slow but data still fits in memory... Best for 1-100GB datasets, ETL pipelines, faster pandas replacement. For larger-than-RAM data use dask or vaex" (when, including explicit boundary guidance). Both what and when are clearly and explicitly answered with concrete trigger phrases, matching the top anchor. Not a 4 because the 'when' is not merely present but specific, bounded, and includes when-not-to-use guidance.

5 / 5

Trigger Term Quality

Quotes: "Use when pandas is too slow", "faster pandas replacement", "DataFrame", "ETL pipelines", "1-100GB datasets", "fit in RAM". Natural phrases a user would say ("pandas is too slow", "DataFrame") are present, but common variations like CSV/Parquet file handling, "groupby", or "data wrangling" are missing, matching 'Good keyword coverage; a few natural terms missing'. Not a 5 because coverage lacks those synonyms; not a 3 because the included terms are natural and varied rather than generic.

4 / 5

Distinctiveness Conflict Risk

Quotes: "Use when pandas is too slow but data still fits in memory", "For larger-than-RAM data use dask or vaex". The description carves a clear niche (in-memory, 1-100GB, pandas-performance replacement) and explicitly redirects adjacent use cases to dask/vaex, giving it distinct triggers and minimal conflict risk. Not a 4 because it does more than mostly distinguish itself — it actively defines its boundary against neighboring tools.

5 / 5

Total

17

/

20

Passed

Validation

81%

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

Validation — 13 / 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

referenced_paths_exist

Referenced path issues: 6 missing

Warning

Total

13

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills-claude/skills/polars/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.