Agent Skill
Portaljs Add Geo skill
portaljs-add-geodatopian/portaljsskills/portaljs-add-geo/SKILL.md
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.
always on
125 tokname + description
once used
1,623 tokSKILL.md body
bundled files
15 KB
repo stars
2.4kGitHub
Install the Portaljs Add Geo skill
Skills CLI (Claude Code, Codex, Cursor and others)
npx skills add https://github.com/datopian/portaljs --skill portaljs-add-geo
Claude Code, by hand (all projects)
git clone --depth 1 https://github.com/datopian/portaljs.git /tmp/portaljs mkdir -p ~/.claude/skills cp -R /tmp/portaljs/skills/portaljs-add-geo ~/.claude/skills/portaljs-add-geo
For one project only, copy the folder into .claude/skills/ in that project instead. The agent picks it up when a task matches its description.
What it costs your context
Agent Skills load in three steps. Tokens counted with the o200k tokenizer; your model's count will differ a little.
| When | What loads | Cost |
|---|---|---|
| Every session | Name and description | 125 tok |
| When the agent uses it | The SKILL.md instructions | 1,623 tok |
| Only if opened | 1 bundled files (5 KB) | varies |
Until it is used, portaljs-add-geo costs about 11× less than the median MCP server we measured (1,363 tokens on every turn). Installing all 14 skills from datopian/portaljs would load 1,174 tokens of descriptions. Skills vs MCP study
Checks
Our checks found nothing to flag: it follows the Agent Skills specification's naming and size guidelines and doesn't pipe downloads into a shell.
Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(ogr2ogr:*), Bash(ogrinfo:*), Bash(tippecanoe:*), Bash(duckdb:*), Bash(git:*), Bash(curl:*), Bash(npx:*), Bash(node:*), Bash(mkdir:*), Bash(cp:*), Bash(wc:*), Bash(command:*), WebFetch. The agent can use these without asking while the skill is active.
Checked 2026-10-22 · method
What's inside
The headings of its SKILL.md. Read the full file on GitHub.
- PortalJS — Add Geo
- Overview
- Prerequisites
- Instructions
- Output
- Error Handling
- Examples
- Example 1 — Ingest a GeoJSON into both tiers
- Example 2 — Zipped Shapefile from a URL
- Example 3 — GeoPackage with an explicit layer and namespace
- Resources
More skills from datopian/portaljs
- arcgis-to-portaljsdatopian/portaljs
Migrate a whole ArcGIS Hub site into a PortalJS Arc portal end-to-end. Harvests the Hub /data.json (DCAT-US) inventory, exports every FeatureService layer through the ArcGIS REST query API with resultOffset paging, converts each to the serverless dual tier (PMTiles render + GeoParquet query) with tabular items to Parquet, pushes everything to Cloudflare R2 via Git LFS, appends dual-tier datasets.json entries, and writes a source-vs-derived parity report. Use to move a City or sector ArcGIS Hub open-data portal onto PortalJS with no server-side compute.
2.4k134 tok idle · 1,765 in use - portaljs-add-chartdatopian/portaljs
Add a chart (line, bar, area, pie, or scatter) to a dataset's showcase in a PortalJS portal. Installs recharts, writes a reusable Chart component, and renders it in the showcase Views section. Use when visualizing a dataset already registered in datasets.json.
2.4k63 tok idle · 971 in use - portaljs-add-datasetdatopian/portaljs
Add a dataset (CSV, TSV, JSON, or GeoJSON) to an existing PortalJS portal. Appends an entry to datasets.json so the catalog and showcase render it automatically; routes the data by source (local file vs remote URL) — R2 via Git LFS by default, remote URLs by passthrough. Use when registering a new dataset in a scaffolded portal.
2.4k84 tok idle · 1,409 in use - portaljs-add-dcatdatopian/portaljs
Make a PortalJS portal harvestable by national/EU/US open-data portals — emit standards-compliant DCAT catalog feeds (DCAT 2/3, DCAT-AP, DCAT-US, national profiles) in JSON-LD, Turtle, and RDF/XML at build, with autodiscovery and per-profile conformance checking. Use when a portal needs to be harvested by data.europa.eu, data.gov, or a national open-data catalog.
2.4k99 tok idle · 1,738 in use - portaljs-add-mapdatopian/portaljs
Render a GeoJSON dataset on an interactive Leaflet map in the Views section of a dataset's showcase. Installs react-leaflet and a Map component, then renders the map for the chosen dataset. Use when a dataset's data is geographic and a map view is needed alongside the showcase's default metadata and download.
2.4k69 tok idle · 1,275 in use - portaljs-add-resourcedatopian/portaljs
Add another file (resource) to an EXISTING dataset in a PortalJS portal — a data dictionary, methodology, or an additional data file. Turns a single-file dataset into a multi-resource one; the showcase renders a section per resource. Use when a dataset needs a second file, such as a data dictionary, methodology doc, or an additional period's data.
2.4k78 tok idle · 1,318 in use - portaljs-architectdatopian/portaljs
Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from stated needs, then hand off to the build skills. The advisory entry point. Use when starting a new data-portal project and the underlying architecture has not yet been decided.
2.4k60 tok idle · 1,358 in use - portaljs-check-data-qualitydatopian/portaljs
Audit a local or remote tabular file (CSV/TSV) for common data quality issues — schema, nulls, types, duplicates. Read-only. Use when a dataset needs a quality check before publishing, or a showcase renders wrong (blank cells, garbled numbers, an unsortable date column) and the cause needs isolating.
2.4k76 tok idle · 1,249 in use