Skills for Real Engineers. Straight from my .agents directory.
portaljs-define-schema
Agent skill fromdatopian/portaljs
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.
How to install portaljs-define-schema
npx skills add datopian/portaljs# or add only this skill to Claude Code: copy the folder
skills/portaljs-define-schema/
# into
~/.claude/skills/portaljs-define-schema/ (all projects)
.claude/skills/portaljs-define-schema/ (one project)
1# PortalJS — Define Schema23## Overview45Define a dataset's metadata profile — the **authoring** skill for the metadata-profile6contract (`lib/metadata`). Where `portaljs-add-dataset` registers *that* a dataset exists,7this skill describes *what its data means*: infer a Frictionless **Table Schema** (fields,8types, constraints) from sampled data, add the **Data Package** fields a catalog surfaces9(title, licenses, sources, keywords), and write them onto the dataset's entry in10`datasets.json`. The showcase at `/@<namespace>/<slug>` then renders a typed field table11instead of a bare preview. The model is Frictionless-native; DCAT is a serialization layer12built on top later, not authored here.1314The skill runs on a profile ladder — reach for higher levels only when needed:1516| Level | What it is | When |17| --- | --- | --- |18| L0 | Default `frictionless-tabular` profile; declare schema + metadata. | Default. Standard tabular CSV/TSV. |19| L1 | L0 plus extra descriptive package fields. | Extra metadata, standard validation is fine. |20| L2 | Fully custom profile (own schema template + `validate()`). | A dataset type needing custom validation rules. |21| L3 | Multiple registered profiles, resolved per dataset. | A portal mixing dataset types. |2223The skill is interactive and never dead-ends: if input is thin it interviews in short24rounds, infers defaults from the data, echoes the schema for confirmation, and accepts25"use defaults" to proceed with the inferred schema as-is.26…
Excerpt shown under the repository's MIT license.
More skills in portaljs
Similar skill repositories
Public repository for Agent Skills
Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Production-grade engineering skills for AI coding agents.
The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create motion, prototypes, websites, apps, dashboards, presentations, images, and videos with your team and AI agents. Share work, exchange feedback, and iterate together in one workspace.
Turn any idea, plan, or codebase into a beautiful interactive diagram. An agent skill for Claude Code, Codex, and more.
