CtrlK
BlogDocsLog inGet started
Tessl Logo

portaljs-add-geo

Auto-ingest a geospatial file (GeoJSON, Shapefile, GeoPackage, KML/KMZ, FlatGeobuf, CSV-with-geometry) into a PortalJS portal on the user's own machine, with no server. Normalizes CRS to EPSG:4326, derives a PMTiles render tier and a GeoParquet query tier, pushes all three artifacts to Cloudflare R2 via Git LFS, and appends one dual-tier datasets.json entry the showcase auto-renders. Use when the source is a vector geo format that needs a map or spatial-query view.

70

Quality

86%

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

81%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, actionable body with a validated 12-step workflow and error-recovery table. Conciseness and progressive disclosure are strong but have minor room to improve: trim the PR aside and bundle the canonical workflow locally rather than linking to GitHub.

Suggestions

Trim the '@reference/world-boundaries demo, PR #1647' aside in the Overview to tighten conciseness without losing the auto-render point.

Inline or bundle the canonical full workflow as a local reference file instead of pointing to the GitHub .claude/commands URL, so the skill is self-contained and navigation stays one level deep.

Add the complete executable duckdb GeoParquet command and the git-lfs push sequence to the Instructions summary to close the actionability gaps currently delegated out.

DimensionReasoningScore

Conciseness

Largely lean and skill-specific (PMTiles range requests, Hilbert-sorted GeoParquet, R2/LFS mechanics are non-obvious details Claude would not already know), with only minor instances that could be trimmed such as the '@reference/world-boundaries demo, PR #1647' aside.

4 / 5

Actionability

Provides concrete commands and flags — 'ogr2ogr -t_srs EPSG:4326', 'tippecanoe -zg --drop-densest-as-needed', 'npx tsc --noEmit', 'Range: 206 check' — plus runnable example invocations, but the full per-step commands (e.g. the complete duckdb query, the LFS push sequence) are delegated to the external canonical workflow, leaving minor gaps.

4 / 5

Workflow Clarity

A clearly sequenced 12-step workflow with explicit validation checkpoints (step 2 hard-stop on missing tools, step 6 size escape hatch with thresholds, step 8 range-read verify, step 11 'npx tsc --noEmit' + 'Range: 206') and a symptom/cause/fix error table providing feedback loops for recovery.

5 / 5

Progressive Disclosure

Well-organized sections with clearly signaled one-level-deep references — the local 'references/reference.md' (verified present) and the related-skills list — but the canonical full workflow lives at an external GitHub URL rather than in a bundled file, a mild navigation/availability gap.

4 / 5

Total

17

/

20

Passed

Description

92%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 specific, complete, and distinctive description that names concrete actions and an explicit use-when trigger. Trigger-term coverage is strong but not exhaustive of common synonyms.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Normalizes CRS to EPSG:4326', 'derives a PMTiles render tier and a GeoParquet query tier', 'pushes all three artifacts to Cloudflare R2 via Git LFS', 'appends one dual-tier datasets.json entry' — giving comprehensive coverage of the skill's capabilities.

5 / 5

Completeness

Explicitly answers both 'what' (the full ingest/normalize/derive/push/append pipeline) and 'when' via the concrete trigger clause 'Use when the source is a vector geo format that needs a map or spatial-query view.'

5 / 5

Trigger Term Quality

Strong natural/format keywords appear — 'geospatial file', 'GeoJSON', 'Shapefile', 'GeoPackage', 'KML/KMZ', 'map', 'spatial-query view' — but a few common synonyms a user might say (e.g. 'GIS', 'geodata', 'geography') are absent, leaving it just short of comprehensive.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche — PortalJS dual-tier PMTiles+GeoParquet ingestion on the user's machine — with distinct triggers ('vector geo format that needs a map or spatial-query view') that minimize overlap with the related tabular/map portaljs-add-* skills.

5 / 5

Total

19

/

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

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

16

Passed

Repository
datopian/portaljs
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.