Portaljs Add Chart
Add a chart (line, bar, area, pie, or scatter) to a dataset's showcase in a PortalJS...
Install
npx skills add datopian/portaljs --skill portaljs-add-chart -g -a claude-code -y- Repository
- datopian/portaljs2.4k
- Category
- Data and ML
- Updated
- 7d ago
- License
- MIT
- Context cost
- Lightabout 926 tokens
- Runs scripts
- No, instructions only
What it does
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.
PortalJS, Add Chart
Overview
Add a visualization to a dataset's showcase in a PortalJS portal. The skill installs
recharts (added directly, never @portaljs/components), writes a reusable client-side
Chart component into components/, and renders a <Chart /> into the Views section
of the showcase route pages/[owner]/[slug].tsx for one chosen dataset. The chart reads the
same /public/data/<file> the showcase <Table /> already uses, so no data is duplicated.
Five chart types are supported: line, bar, area, pie, and scatter.
Prerequisites
- A scaffolded PortalJS portal (see
portaljs-new-portal). - The target dataset already registered in
datasets.json(seeportaljs-add-dataset). components/ui/parseCsv.tspresent (ships with the template).- Node 18+ and npm available in the portal directory.
Instructions
The canonical, full step-by-step workflow is
.claude/commands/portaljs-add-chart.md, the single source of truth. Read and follow it when executing. Summary:
- Gather input, dataset slug, X column, Y column(s), chart type (default
line), portal directory. If any is missing, interview the user; never dead-end on a missing value. - Resolve the dataset from
datasets.json(namespace,file,format). - Validate that the X and every Y column exist in the data file's header; warn on
non-numeric Y columns (values are coerced with
Number()). - Install the chart library:
npm install recharts@^2.15.0. - Write
components/Chart.tsx(idempotent, do not overwrite a customized component). - Render
<Chart />into the Views section, gated on the dataset's(namespace, slug)so other showcases are unaffected. Extend an existing view-dispatch block, do not overwrite. - Verify with
npx tsc --noEmit. - Report the component, route, and dependency added.
