Portaljs Add Dataset
Registers a CSV/TSV/JSON/GeoJSON dataset in a PortalJS catalog by appending one datasets.json entry.
Test report
- Verdict
- Tested · Works
- Score
- Tested
- Jul 20, 2026
- Environment
- Claude Code 2.x (agent harness)
- Upstream re-checked
- Aug 10, 2026 · 0c62d68
Fetched SKILL.md, the referenced executable workflow (.claude/commands/portaljs-add-dataset.md, 325 lines) and references/reference.md — all present in the repo tree; frontmatter has name+description and all relative/link targets resolve. Measured the self-contained remote-URL passthrough route: baseline plausibly downloads the CSV into the repo and/or invents field names, while the skill records the URL unchanged (no bytes copied), writes the exact Dataset shape (file/name/format, lowercase, not url/title/type), enforces unique (namespace,slug), and creates no page file — a concrete win. The headline local-file default (R2 via Git LFS) requires git-lfs + an Arc token/R2 infra I did not and could not exercise; that carries real setup friction. Security: LFS token flow mints a scoped short-TTL JWT from the PortalJS Arc API and reads the user's own ~/.portaljs/credentials — no exfiltration, no curl|sh, no binary installs. Trigger phrasings — SHOULD: "add this CSV to my PortalJS portal", "register a new dataset in datasets.json for my data portal", "I have a GeoJSON URL, list it in my portal catalog"; SHOULD NOT: "add a chart to my dataset's showcase" (portaljs-add-chart), "build me a new PortalJS portal from scratch" (portaljs-new-portal) — all 5 judged correctly.
Scored on four weighted criteria — install, triggering, output vs. baseline, docs. How scoring works
- Installs cleanly 5/5
- Triggers reliably 5/5
- Output vs. baseline 7/10
- Docs & honesty 5/5
What Portaljs Add Dataset does
Adds a dataset to an existing PortalJS (portaljs-catalog) portal by appending a single entry to datasets.json and routing the bytes by source: remote URLs pass through unchanged, local files default to R2 via Git LFS. Triggers when registering new CSV/TSV/JSON/GeoJSON data in a scaffolded portal; hands off geo/map formats to sibling skills.
How to install Portaljs Add Dataset
Plugin skill inside datopian/portaljs (.claude-plugin present). Install via the PortalJS Claude marketplace/plugin, or copy skills/portaljs-add-dataset/ into ~/.claude/skills/. The default local-file route additionally needs git-lfs installed and an Arc/PortalJS account token to push bytes to R2; the remote-URL route needs only Node/npm.
Skills live in ~/.claude/skills/ (global) or .claude/skills/
(per-project). Restart Claude Code after installing.
Commands — how to trigger Portaljs Add Dataset
-
/portaljs-add-datasetRegisters a CSV/TSV/JSON/GeoJSON dataset in a PortalJS catalog by appending one datasets.json entry.
It also activates on plain-language prompts like these:
-
Add this CSV file as a new dataset to the portal -
Register a remote JSON dataset in datasets.json -
Publish this GeoJSON file to our data catalog
Frequently asked questions
- Is the Portaljs Add Dataset skill free?
- Yes. The skill itself is free from datopian/portaljs. SkillProof publishes the install command and an independent test verdict at no cost.
- Does Portaljs Add Dataset work with Claude Code?
- We tested it with Claude Code 2.x (agent harness) on Jul 20, 2026. Verdict: Tested · Works. Fetched SKILL.md, the referenced executable workflow (.claude/commands/portaljs-add-dataset.md, 325 lines) and references/reference.md — all present in the repo tree; frontmatter has name+description and all relative/link targets resolve. Measured the self-contained remote-URL passthrough route: baseline plausibly downloads the CSV into the repo and/or invents field names, while the skill records the URL unchanged (no bytes copied), writes the exact Dataset shape (file/name/format, lowercase, not url/title/type), enforces unique (namespace,slug), and creates no page file — a concrete win. The headline local-file default (R2 via Git LFS) requires git-lfs + an Arc token/R2 infra I did not and could not exercise; that carries real setup friction. Security: LFS token flow mints a scoped short-TTL JWT from the PortalJS Arc API and reads the user's own ~/.portaljs/credentials — no exfiltration, no curl|sh, no binary installs. Trigger phrasings — SHOULD: "add this CSV to my PortalJS portal", "register a new dataset in datasets.json for my data portal", "I have a GeoJSON URL, list it in my portal catalog"; SHOULD NOT: "add a chart to my dataset's showcase" (portaljs-add-chart), "build me a new PortalJS portal from scratch" (portaljs-new-portal) — all 5 judged correctly.
- What is the Portaljs Add Dataset SkillProof Score?
- 8.8/10 — installs cleanly 5/5, triggers reliably 5/5, output vs. baseline 7/10, docs & honesty 5/5.
- How do I install Portaljs Add Dataset?
- Copy the install command from this page, run it in your terminal, and restart Claude Code. Skills live in ~/.claude/skills/ (global) or .claude/skills/ inside a project.
- Can I use Portaljs Add Dataset with Cursor, Copilot, Gemini CLI, Codex or other AI tools?
- The SKILL.md format is native to Claude (Claude Code, Desktop, claude.ai). The instructions inside adapt to other assistants: Cursor rules, GitHub Copilot instructions, Windsurf rules, Custom GPTs, AGENTS.md for OpenAI Codex, and GEMINI.md for Google Gemini CLI — our conversion guides cover each, and the free converter on the tools page does the wrapping for you.