.claude/skills/chart-editing/SKILL.md
Edit and preview .chart.yml files for OWID graph steps. Use when user wants to edit chart config, preview charts, change chart appearance, or work with graph step chart files.
npx skillsauth add owid/etl chart-editingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Edit .chart.yml files that define OWID Grapher chart configurations, then preview changes.
etl/steps/graph/<namespace>/<version>/<short_name>.chart.ymlschemas/chart-schema.json (read this to understand valid fields)dag/graph/<namespace>.yml (maps graph steps to data dependencies)schemas/chart-schema.json to understand all valid fields, enums, and nested structures.chart.yml to understand current configdag/graph/<namespace>.yml to understand which dataset the chart depends onUsed for charts with one indicator and no dimension toggles:
title: Which countries have banned chick culling?
tab: map
hasMapTab: true
chartTypes: []
yAxis:
min: auto
map:
hideTimeline: true
colorScale:
customCategoryColors:
Banned: '#4881c6'
No laws: '#b6a28c'
customNumericColorsActive: true
$schema: https://files.ourworldindata.org/schemas/grapher-schema.010.json
originUrl: /animal-welfare
dimensions:
- property: y
catalogPath: status
Key fields: dimensions[].property (y/x/size/color) and dimensions[].catalogPath (column name in the dataset).
Used for charts with multiple indicator combinations selectable via dropdowns:
slug: covid/covid#covid_cases
definitions:
common_views:
- config:
tab: map
originUrl: ourworldindata.org/coronavirus
title:
title: COVID-19 confirmed cases
title_variant: ""
default_selection:
- World
- Europe
- Asia
topic_tags:
- COVID-19
dimensions:
- slug: period
name: Period
choices:
- slug: weekly
name: Weekly
- slug: biweekly
name: Biweekly
- slug: metric
name: Indicator
choices:
- slug: absolute
name: Absolute number
- slug: per_capita
name: Per million people
views:
- dimensions:
period: weekly
metric: absolute
indicators:
y:
- catalogPath: weekly_cases
- dimensions:
period: weekly
metric: per_capita
indicators:
y:
- catalogPath: weekly_cases_per_million
Key differences from simple: title is an object {title, title_variant}, dimensions defines UI facets (not indicators), actual indicators are in views[].indicators.y[].catalogPath.
Charts are previewed via the staging server. The staging URL follows this pattern:
http://staging-site-{branch}/grapher/{slug}
where {branch} is the current git branch name (with /._ replaced by -, truncated to 28 chars).
Fetch the PNG directly from the staging server using WebFetch:
http://staging-site-{branch}/grapher/{slug}.png?nocache
Add &tab=map or &tab=chart to control which tab is shown.
Prerequisite: The chart must be pushed to staging first. If the user has the VSCode chart preview extension open, this happens automatically via etlr --watch. Otherwise push manually:
.venv/bin/etlr graph://<namespace>/<version>/<slug> --graph --graph-push --private
.venv/bin/etlr graph://<namespace>/<version>/<slug> --graph --graph-push --privatehttp://staging-site-{branch}/grapher/{slug}.png?nocache to verify visuallytab to chart, map, table, line, slope, discrete-bar, or marimekkoselectedEntityNames arraymap.colorScale.customCategoryColors or colorScale.customCategoryColorsbaseColorScheme or map.colorScale.baseColorScheme (see schema for valid values)hasMapTab: true/falsenote fieldyAxis or xAxis with min, max, scaleType, labelChart configs should conform to schemas/chart-schema.json. Key constraints:
tab enum: chart, map, table, line, slope, discrete-bar, marimekkochartTypes enum items: LineChart, ScatterPlot, StackedArea, DiscreteBar, StackedDiscreteBar, SlopeChart, StackedBar, Marimekkodimensions[].property enum: y, x, size, color, tableaddCountryMode enum: add-country, change-country, disableddata-ai
Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary.
data-ai
Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some waiting on outside answers, and others rolling into a later summary.
data-ai
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
data-ai
OpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.