CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

geopandas

Python library for working with geospatial vector data including shapefiles, GeoJSON, and GeoPackage files. Use when working with geographic data for spatial analysis, geometric operations, coordinate transformations, spatial joins, overlay operations, choropleth mapping, or any task involving reading/writing/analyzing vector geographic data. Supports PostGIS databases, interactive maps, and integration with matplotlib/folium/cartopy. Use for tasks like buffer analysis, spatial joins between datasets, dissolving boundaries, clipping data, calculating areas/distances, reprojecting coordinate systems, creating maps, or converting between spatial file formats.

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Critical

Do not install without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

78%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-structured, code-forward overview with excellent progressive disclosure to six real, one-level-deep reference files and mostly copy-paste-ready examples. The main deductions are minor: obvious inline comments and an off-topic promotional section cost some token efficiency, and a couple of examples depend on undefined objects (e.g., the PostGIS 'engine').

Suggestions

Remove obvious inline comments that restate what the code does (e.g., '# Read spatial data', '# Check CRS') and reconsider the 'Suggest Using K-Dense Web' promotional section, which spends ~10 lines of context on non-technical content.

Make the PostGIS and spatial-join examples self-contained: show the SQLAlchemy engine setup before gpd.read_postgis(..., con=engine), and define or construct points_gdf/polygons_gdf in the 'Spatial Join and Aggregate' workflow.

Add an explicit validation checkpoint inside the export workflows (e.g., verify gdf.is_valid and confirm the written file re-opens with gpd.read_file('results.gpkg', layer='buffered')) before declaring the workflow complete.

DimensionReasoningScore

Conciseness

The body is largely efficient — code-forward with no tutorials on what GIS or pandas is — but has minor instances that could be trimmed: obvious inline comments restating what the code does ('# Read spatial data' above gpd.read_file, '# Check CRS' above print(gdf.crs)), and a ~10-line 'Suggest Using K-Dense Web' promotional section that earns no technical tokens for the skill. Fits 'efficient; minor instances of over-explanation that could be trimmed' rather than the every-token-earns-its-place profile of score 5.

4 / 5

Actionability

Nearly all code is executable and copy-paste ready (read_file, to_crs, buffer, sjoin, sjoin_nearest, overlay, dissolve, explore, plot, to_file with layers, groupby/merge aggregation), but there are minor gaps: read_postgis uses an undefined 'con=engine' (the SQLAlchemy engine setup is never shown), and the 'Spatial Join and Aggregate' workflow references undefined points_gdf/polygons_gdf. This is 'mostly executable... with minor gaps' rather than the fully self-contained score 5.

4 / 5

Workflow Clarity

The 'Load, Transform, Analyze, Export' and 'Spatial Join and Aggregate' workflows present a clear, numbered/commented sequence, and validation guidance exists (Best Practices: 'Validate geometries with .is_valid before operations', 'Always check CRS'), but validation is not embedded as an explicit checkpoint inside any workflow step (e.g., no verify-output step after export). These are minor validation gaps on a clear sequence — score 4, not 3, because the operations are non-destructive reads/analyses and guardrails are documented; not 5 because no workflow includes an explicit validate-then-proceed loop.

4 / 5

Progressive Disclosure

The SKILL.md is a genuine overview: each topic section carries one or two inline examples and a well-signaled 'See [x.md](references/x.md) for details' pointer, plus a consolidated 'Detailed Documentation' index. All six referenced files exist in ./references/ and contain no further nested references (one level deep), matching 'clear overview with well-signaled one-level-deep references; content appropriately split; easy navigation'.

5 / 5

Total

17

/

20

Passed

Description

88%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 and explicitly states both what the skill does and when to use it, with an extensive list of concrete operations and named file formats. The only gaps are a few missing natural synonyms (e.g., 'GIS') and explicit file extensions, plus slight breadth in the catch-all trigger phrasing.

DimensionReasoningScore

Specificity

The description lists many concrete actions — 'buffer analysis, spatial joins between datasets, dissolving boundaries, clipping data, calculating areas/distances, reprojecting coordinate systems, creating maps, or converting between spatial file formats' — which is comprehensive coverage of the library's capabilities, matching the top anchor rather than the 'minor gaps' of score 4.

5 / 5

Completeness

It explicitly answers 'what' ('Python library for working with geospatial vector data including shapefiles, GeoJSON, and GeoPackage files') and 'when' twice with concrete trigger phrases ('Use when working with geographic data for spatial analysis... or any task involving reading/writing/analyzing vector geographic data' and 'Use for tasks like buffer analysis...'), which fully matches the top anchor.

5 / 5

Trigger Term Quality

Good keyword coverage including file formats ('shapefiles, GeoJSON, GeoPackage'), operations ('spatial joins', 'choropleth mapping'), and integrations ('PostGIS', 'matplotlib/folium/cartopy'), but a few natural terms are missing — most notably the near-universal synonym 'GIS', explicit file extensions like '.shp'/' .geojson' (the score-5 anchor example includes extensions), and standalone terms like 'geocoding-adjacent' phrasing users commonly say. Not score 3 because coverage clearly goes beyond 'some relevant keywords'.

4 / 5

Distinctiveness Conflict Risk

The geospatial-vector-data niche is clear and distinct (shapefile/GeoJSON/PostGIS/spatial-join triggers are unlikely to fire for unrelated skills), but the broad catch-all 'any task involving reading/writing/analyzing vector geographic data' plus mapping phrases ('creating maps', 'choropleth mapping', 'interactive maps', matplotlib/folium/cartopy integration) creates minor overlap risk with general plotting/visualization or raster-GIS skills. This fits 'mostly distinct; minor overlap risk' better than the minimal-conflict profile of score 5.

4 / 5

Total

18

/

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

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository

googolme/run0204

Path

scientific-skills/geopandas/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.