Agent skill

Portaljs Architect

by datopian in datopian/portaljs

Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from stated needs, then hand off to the build skills.

MITAuto-check passed

Install Portaljs Architect

skills CLI
$ npx skills add datopian/portaljs --skill portaljs-architect -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install datopian/portaljs portaljs-architect --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/datopian/portaljs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/portaljs-architect .claude/skills/portaljs-architect && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
portaljs-architect
GitHub stars
2.4k
Used in
1 other repo
Token cost
~1.6k tokens
SKILL.md length
631 words
Files
2 (incl. references)
Skills in repo
14
Repo updated
First seen
Licence
MIT

At a glance

Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from stated needs, then hand off to the build skills.

  • Works in 5 steps: Parse $ARGUMENTS for anything already… → Derive the recommendation by matching… → Echo the architecture brief (stack,… → …
  • Starting a new data-portal project and the underlying architecture has not yet been decided
  • SKILL.md covers Overview, Prerequisites, Instructions and Output, plus 3 more sections
  • Calls duckdb

What it does

Portaljs Architect is an agent skill from datopian/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.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/reference.md`). Compatibility notes: Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs…

The repository describes itself as: 🌀 AI-native framework for building data portals. Scaffold a full portal from a brief and load datasets in minutes with agentic skills — any backend (CKAN, GitHub, Frictionless). The licence is MIT.

When your agent uses it

  • Starting a new data-portal project and the underlying architecture has not yet been decided

Example prompts

  • “/portaljs-architect”

Requirements

  • Compatibility (from SKILL.md): Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
  • Pre-approved tools (allowed-tools): Read, Write, Bash(du:*), Bash(wc:*), Bash(ls:*), Bash(head:*)

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Parse $ARGUMENTS for anything already specified, then interview for what's
  2. Derive the recommendation by matching the answers against the decision tables —
  3. Echo the architecture brief (stack, reasoning per slot, deviations from default,
  4. On confirmation, persist the brief to ./ARCHITECTURE.md in the working directory.
  5. Hand off to the build skills — /portaljs-new-portal, /portaljs-add-dataset,

What it can do on your machine

Read from SKILL.md and the folder at commit d5c096a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Bash(du:*)
    • Bash(wc:*)
    • Bash(ls:*)
    • Bash(head:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • duckdb

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.

    From compatibility in the SKILL.md frontmatter.

Context cost

Portaljs Architect loads about 1.6k tokens when it runs, and up to ~2.5k if it reads all its reference files. Until then it costs about 73 tokens; SKILL.md has 631 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~73
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from datopian/portaljs at commit d5c096a, republished under its MIT licence (© datopian). 631 words, ~1,600 tokens.

Download SKILL.mdSave it as .claude/skills/portaljs-architect/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
portaljs-architect
description
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.
allowed-tools
Read, Write, Bash(du:*), Bash(wc:*), Bash(ls:*), Bash(head:*)
compatibility
Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone.
version
1.0.0
author
Datopian <hello@datopian.com>
license
MIT
tags
portaljs, data-portal, architecture, advisory, ckan, nextjs

PortalJS — Architect

Overview

The advisory entry point for a PortalJS project. Before anything gets scaffolded, this skill works out what to build: given the kind of portal, the shape of the data, and its purpose, it fills six architecture slots (storage, catalog, compute, access, hosting, metadata), resolves two build-time knobs (per-dataset data tier and the portal-wide DATA_QUERY mode), and hands off to the concrete build skills. It decides; it does not build. When the brief is thin it interviews in short rounds and never dead-ends — every question has a sensible default, reachable by replying "use defaults."

Prerequisites

  • A rough idea of the portal's purpose and data (exact numbers are not required — the interview supplies defaults for anything missing).
  • Optional: local files or a directory of sample data to inspect for size and shape.
  • No PortalJS project needs to exist yet; this skill runs before scaffolding.

Instructions

The canonical, full step-by-step workflow lives in .claude/commands/portaljs-architect.md — that file is the single source of truth. Follow it when executing this skill:

  1. Parse $ARGUMENTS for anything already specified, then interview for what's missing, one round at a time: (1) what's being built, (2) what the data is, (3) what it's for, (4) constraints. Accept "use defaults" at any point. Inspect named files/directories with du -sh and line counts to ground size guesses.
  2. Derive the recommendation by matching the answers against the decision tables — Storage/Catalog/Compute by data volume and query needs, Access/Hosting by public vs. private, Metadata by standards-compliance needs — then resolve the two build-time knobs: per-dataset data tier (inline | LFS | external) and the portal-wide DATA_QUERY mode (flat | duckdb).
  3. Echo the architecture brief (stack, reasoning per slot, deviations from default, deferred items) and wait for confirmation ("go") or corrections.
  4. On confirmation, persist the brief to ./ARCHITECTURE.md in the working directory.
  5. Hand off to the build skills — /portaljs-new-portal, /portaljs-add-dataset, /portaljs-connect-ckan, /portaljs-define-schema, /portaljs-deploy — mapped from the brief, and offer to run the first one.

Output

  • Created: ./ARCHITECTURE.md documenting the six slots, the two build-time knobs, the reasoning, and anything deferred to a later build step.
  • Modified: nothing else — this skill is advisory only.
  • Verified: the brief was echoed back and confirmed before being persisted.
  • Result: a concrete, named sequence of follow-up skill invocations (e.g. /portaljs-new-portal → /portaljs-add-dataset → /portaljs-deploy).
Show full SKILL.md (256 more words)Show less

Error Handling

SymptomCauseFix
Skill keeps asking rounds of questionsBrief was thin or $ARGUMENTS omittedAnswer inline, or reply "use defaults" to accept the opinionated default stack
Recommendation looks genericRounds were skipped without real data detailsGive actual size/shape/cadence, or point at files for du -sh inspection
ARCHITECTURE.md never appearsConfirmation step was skippedReply "go" once the echoed brief looks right
Scaffolded portal has the wrong DATA_QUERYFlat downgrade wasn't appliedRun the perl -pi -e one-liner from the command file against lib/datasets.ts
Hand-off names a skill that doesn't existDecision maps to a (planned) skill (e.g. /connect-openmetadata)Treat it as designed-in/built-later; proceed with the closest available skill

Examples

Example 1 — National statistics office, DCAT-AP harvesting
/portaljs-architect We're a national statistics office. ~200 datasets, mostly large
CSVs (some GBs), updated quarterly, all public, and we must publish DCAT-AP for the
EU data portal.

Infers a multi-publisher, analytics-grade portal. Recommends Parquet on R2 + DuckLake + DuckDB, static Cloudflare Pages, Frictionless + DCAT-AP metadata, owner namespace, data tier external for the Parquet, DATA_QUERY=duckdb. Writes ARCHITECTURE.md and hands off to /portaljs-new-portal then /portaljs-add-dataset.

Example 2 — Small nonprofit, no arguments given
/portaljs-architect

Runs the full four-round interview since nothing was pre-filled. Accepting defaults at each round lands on the opinionated default stack: repo files or Git-LFS + R2 storage, datasets.json catalog, DuckDB compute, static access on Cloudflare Pages, Frictionless metadata, theme namespace, data tier LFS, DATA_QUERY=duckdb.

Example 3 — Internal catalog with restricted datasets
/portaljs-architect Internal engineering data catalog, single team, dozens of CSVs,
some of it access-controlled to specific roles.

The private-data answer in Round 2 flips Access/Hosting to runtime + backend RBAC on Cloudflare Workers — flagged as the larger, opt-in build — while Storage/Catalog/Compute still follow the volume-based defaults.

Resources

© datopian, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/portaljs-architect of datopian/portaljs.

  • SKILL.md
  • references/reference.md

Open the folder on GitHubat commit d5c096a

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in datopian/portaljs, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Portaljs Architect next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Portaljs Architect compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Portaljs Architect this skilldatopian/portaljs2.4k1 repos~1.6kAutomated safety check: PassMIT
Google Cloud Storage Bucket Architectgoogle/skills21k—~2.6kAutomated safety check: PassApache-2.0
Ito Computeaffaan-m/ECC276k1 repos~1.7kAutomated safety check: PassMIT
Object Storagesickn33/agentic-awesome-skills47k2 repos~2.6kAutomated safety check: PassMIT
PortalBuilderIO/agent-native7.1k—~1.1kAutomated safety check: NotesNone
Neon Object Storagesickn33/agentic-awesome-skills47k1 repos~2.9kAutomated safety check: NotesApache-2.0

Similar skills

  • Creates Cloud Storage on Google Cloud (also known colloquially as GCS) buckets.

    21k GitHub stars~2.6k tokensUpdated today
    Backend & APIsAuto-check passed
  • Ito Compute

    affaan-m/ECC

    Query live GPU inventory, submit an authenticated Itô fixed-rate RFQ, inspect RFQ or procurement status, revoke device credentials, and run explicitly gated node qualification through the separately…

    276k GitHub starsUsed in 1 repo~1.7k tokens
    Business, Finance & HRAuto-check passed
  • Object Storage

    sickn33/agentic-awesome-skills

    Configure object storage with S3, GCS, and MinIO. An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~2.6k tokens
    Backend & APIsAuto-check passed
  • Portal

    BuilderIO/agent-native

    Continue a coding session on a paired always-on computer. An agent skill from BuilderIO/agent-native.

    7.1k GitHub stars~1.1k tokensUpdated today
    Productivity & AutomationAuto-check: notes
  • Neon Object Storage

    sickn33/agentic-awesome-skills

    S3-compatible object storage that branches with your Neon project, so files and the database stay in sync across every branch.

    47k GitHub starsUsed in 1 repo~2.9k tokens
    Backend & APIsAuto-check: notes
  • Senior Computer Vision

    davila7/claude-code-templates

    World-class computer vision skill for image/video processing, object detection, segmentation, and visual AI systems.

    32k GitHub starsUsed in 2 repos~1.4k tokens
    AI & LLM EngineeringAuto-check passed

More from datopian/portaljs

All 14 skills in this repo
  • Arcgis To Portaljs

    datopian/portaljs

    Migrate a whole ArcGIS Hub site into a PortalJS Arc portal end-to-end.

    2.4k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Portaljs Add Chart

    datopian/portaljs

    Add a chart (line, bar, area, pie, or scatter) to a dataset's showcase in a PortalJS portal.

    2.4k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Portaljs Add Dataset

    datopian/portaljs

    Add a dataset (CSV, TSV, JSON, or GeoJSON) to an existing PortalJS portal.

    2.4k GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed
  • Portaljs Add Dcat

    datopian/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…

    2.4k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Portaljs Add Geo

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

    2.4k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Portaljs Add Map

    datopian/portaljs

    Render a GeoJSON dataset on an interactive Leaflet map in the Views section of a dataset's showcase.

    2.4k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed

Questions about Portaljs Architect

What does Portaljs Architect do?

Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from stated needs, then hand off to the build skills. Portaljs Architect is an agent skill from datopian/portaljs. Recommend a data-portal architecture (storage, compute, catalog, access, hosting, metadata) from stated needs, then hand off to the build skills.

When should I use Portaljs Architect?

Portaljs Architect fits situations like: starting a new data-portal project and the underlying architecture has not yet been decided.

How do I install Portaljs Architect in Claude Code?

Run `npx skills add datopian/portaljs --skill portaljs-architect -a claude-code`. Or copy the skill folder (skills/portaljs-architect in datopian/portaljs) into .claude/skills/portaljs-architect in your project. Claude Code loads it when a task matches its description.

How do I install Portaljs Architect in Codex?

Run `npx skills add datopian/portaljs --skill portaljs-architect -a codex`. Or copy the skill folder (skills/portaljs-architect in datopian/portaljs) into .agents/skills/portaljs-architect in your project. Codex loads it when a task matches its description.

Can I use Portaljs Architect in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add datopian/portaljs --skill portaljs-architect -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/portaljs-architect, .gemini/skills/portaljs-architect, .github/skills/portaljs-architect and .opencode/skills/portaljs-architect in your project.

What does Portaljs Architect need to run?

Going by SKILL.md and its folder, Portaljs Architect needs the command-line tools its instructions call (duckdb). Its frontmatter pre-approves these tools: Read, Write, Bash(du:*), Bash(wc:*), Bash(ls:*), Bash(head:*). Compatibility (from SKILL.md): Claude Code with PortalJS portals (Next.js 14, React 18, Node 18+). Runs from any project via the plugin, a personal ~/.claude/commands install, or a portaljs clone..

Does Portaljs Architect access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Portaljs Architect safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Portaljs Architect use?

Portaljs Architect is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Portaljs Architect use?

About 1.6k tokens (SKILL.md is roughly 6.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 884 tokens, read only when the agent opens those files.

What are the alternatives to Portaljs Architect?

Skills that share tags, products or a category with Portaljs Architect: Google Cloud Storage Bucket Architect (google/skills, 21k stars), Ito Compute (affaan-m/ECC, 276k stars), Object Storage (sickn33/agentic-awesome-skills, 47k stars) and Portal (BuilderIO/agent-native, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Portaljs Architect?

datopian (a GitHub organization) maintains it in datopian/portaljs, which has 2,358 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.

Source: datopian/portaljs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.