Skip to content
mcp/skillhub

Agent Skill

Portaljs Define Schema skill

portaljs-define-schemadatopian/portaljsskills/portaljs-define-schema/SKILL.md

Define a dataset's metadata profile — infer a Frictionless Table Schema from its data, add Data Package metadata (license, sources, keywords), and write it into datasets.json so the showcase renders a typed field table. Extend or customize via the L0-L3 profile ladder. Use when a registered dataset needs field types, constraints, or catalog metadata before publishing.

2.4kMIT

always on

79 tokname + description

once used

1,422 tokSKILL.md body

bundled files

14 KB

repo stars

2.4kGitHub

Install the Portaljs Define Schema skill

Skills CLI (Claude Code, Codex, Cursor and others)

npx skills add https://github.com/datopian/portaljs --skill portaljs-define-schema

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-define-schema ~/.claude/skills/portaljs-define-schema

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.

WhenWhat loadsCost
Every sessionName and description79 tok
When the agent uses itThe SKILL.md instructions1,422 tok
Only if opened1 bundled files (4 KB)varies

Until it is used, portaljs-define-schema costs about 17× 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(npx:*), Bash(node:*), Bash(head:*). 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 — Define Schema
  • Overview
  • Prerequisites
  • Instructions
  • Output
  • Error Handling
  • Examples
  • Example 1 — Default L0 schema for a CSV dataset
  • Example 2 — Metadata only for a GeoJSON dataset
  • Example 3 — Custom L2 profile with its own validation
  • Resources

More skills from datopian/portaljs

All skills in this repo
  1. 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
  2. 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
  3. 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
  4. 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
  5. portaljs-add-geodatopian/portaljs

    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.

    2.4k125 tok idle · 1,623 in use
  6. 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
  7. 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
  8. 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