Agent skill

Update Climate Data

by owid in owid/etl

Run OWID's monthly climate data update. An agent skill from owid/etl.

MITAuto-check passedResearch & Science

Install Update Climate Data

skills CLI
$ npx skills add owid/etl --skill update-climate-data -a claude-code

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

GitHub CLI
$ gh skill install owid/etl update-climate-data --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/owid/etl.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/update-climate-data .claude/skills/update-climate-data && 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
update-climate-data
GitHub stars
158
Token cost
~2.4k tokens
SKILL.md length
1,154 words
Files
1
Skills in repo
35
Repo updated
First seen
Licence
MIT

At a glance

Run OWID's monthly climate data update. An agent skill from owid/etl.

  • Works in 3 steps: Bump and run the leaf source chains… → Bump and run long_run_ghg_concentration,… → Run all grapher steps and the…
  • The user wants to update climate data
  • SKILL.md covers Modes, Updateable datasets…, Frozen — NEVER bump these… and Dependency order, plus 2 more sections
  • Calls git

What it does

Update Climate Data is an agent skill from owid/etl. Run OWID's monthly climate data update. Bumps all updateable climate-namespace datasets to one common version in a single PR with one announcement, skipping the frozen sources. Use when the user wants to update climate data or run the monthly climate update. For a wildfires-only refresh during fire season, use the update-wildfires-data skill instead.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Physical and earth sciences. The repository describes itself as: A compute graph for loading and transforming OWID's data. The licence is MIT.

When your agent uses it

  • The user wants to update climate data
  • Run the monthly climate update

Example prompts

  • “/update-climate-data”

Workflow steps

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

  1. Bump and run the leaf source chains (snapshot → meadow → garden) for every updateable
  2. Bump and run long_run_ghg_concentration, then the climate_change_impacts aggregate.
  3. Run all grapher steps and the climate_change explorer (the explorer stays latest).

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

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

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    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.

Context cost

Update Climate Data loads about 2.4k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 1,154 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~93
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

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 owid/etl at commit 69ab20e, republished under its MIT licence (© owid). 1,154 words, ~2,401 tokens.

Download SKILL.mdSave it as .claude/skills/update-climate-data/SKILL.md (or your agent's skills folder).
name
update-climate-data
description
Run OWID's monthly climate data update. Bumps all updateable climate-namespace datasets to one common version in a single PR with one announcement, skipping the frozen sources. Use when the user wants to update climate data or run the monthly climate update. For a wildfires-only refresh during fire season, use the update-wildfires-data skill instead.
metadata.internal
true
metadata.owner
pabloarosado

Climate update (monthly umbrella update)

All OWID climate data is updated once a month as a single batch: every updateable climate-namespace dataset is bumped to one common version date, in one PR, with one Slack announcement. This skill owns which datasets, in what order, and the single-PR / single-announcement discipline. It delegates the per-dataset mechanics (snapshot → meadow → garden → grapher, diffs, metadata checks, chart upgrade) to /update-dataset — run each chain through that flow on the same branch.

The matching reminder lives in owid-issues/.github/workflows/update-climate.yml (one monthly issue on the 10th). Wildfires is the one dataset with a reminder of its own on top of that: update-climate-wildfires.yml fires weekly from May to the end of September.

Modes

  • Full monthly update (default): bump every updateable dataset below to a common new version date.
  • Wildfires-only subset: bump just weekly_wildfires (and optionally yearly_burned_area) to a new version, for the weekly in-season refresh. Follow /update-wildfires-data, which covers the source's weekly grid, its provisional last data point, and the snapshot's silent per-country failure mode. Come back here only if you are bumping the whole batch.

Updateable datasets (climate.yml "UPDATEABLE" section)

Grouped by source. Bump all of these to the same new version date.

SourceGarden dataset(s)Snapshot(s)Cadence
Copernicus ERA5surface_temperaturesurface_temperature.zipmonthly
Copernicus ERA5total_precipitationtotal_precipitation.zipyearly
GWISweekly_wildfiresweekly_wildfires.csvcontinuous (fire season)
GWISyearly_burned_areayearly_burned_area.csvyearly
NOAA (Equatorial Pacific)sstsst.csvmonthly
NOAA GMLghg_concentrationco2/ch4/n2o_concentration_monthly.csvmonthly
NSIDCsea_ice_indexsea_ice_index.xlsxmonthly
NASA Ozone Watchnasa_ozone_holenasa_ozone_hole_p1/p2.txtyearly
Rutgers Global Snow Labsnow_cover_extentsnow_cover_extent_*.csvmonthly
Hawaii Ocean Time-seriesocean_ph_levelshawaii_ocean_time_series.csvmonthly
Met Office Hadley Centresea_surface_temperaturesea_surface_temperature_*.csvmonthly
Met Office Hadley Centrenear_surface_temperaturenear_surface_temperature_*.csvyearly
NOAA NCEIocean_heat_contentocean_heat_content_*.csvmonthly

Plus two derived/aggregate datasets with no snapshot of their own:

  • long_run_ghg_concentration (combines NOAA ghg_concentration with the frozen EPA series)
  • climate_change_impacts (the aggregate; pulls most of the rows above)

The yearly sources usually show no change in a given month — that is expected, not a bug.

Frozen — NEVER bump these (climate.yml "NOT UPDATEABLE" section)

Skip entirely. They receive no new data and several feed climate_change_impacts:

  • EPA 2024-04-17: ghg_concentration, ocean_heat_content, ice_sheet_mass_balance, mass_balance_us_glaciers
  • global_sea_level (2024-01-28, NOAA Climate.gov)
  • ipcc_scenarios
  • The 12 migrated legacy chains (one-off papers / historical sources, dates 2017-2022)

If a frozen source's producer ever republishes, that is a separate, deliberate version bump — not part of the monthly run.

Dependency order

  1. Bump and run the leaf source chains (snapshot → meadow → garden) for every updateable dataset above. climate_change_impacts's frozen deps (EPA, global_sea_level) stay on their old versions — reference them unchanged.
  2. Bump and run long_run_ghg_concentration, then the climate_change_impacts aggregate.
  3. Run all grapher steps and the climate_change explorer (the explorer stays latest).

The grapher families to rebuild: the 7 surface_* graphers, total_precipitation_annual, the 4 wildfire graphers, sst/sst_by_month, nasa_ozone_hole, the 3 sea_ice_* graphers, climate_change_impacts_annual/_monthly, and yearly_burned_area.

Procedure

  1. Create the branch + draft PR with etl pr "📊 Update climate data" data. One branch and one PR for the whole batch.

  2. Run each updateable chain through the /update-dataset flow on that branch, all targeting today's date as <new_version> so they land on a common version. Bump the aggregate (climate_change_impacts) only after its sources are done, so it picks up the new versions once rather than repeatedly. Keep the DAG's nesting and comment headers: version-substitute the existing UPDATEABLE block instead of keeping the flat block etl update appends.

  3. Do not remove or archive the old steps yet. The previous versions (their step files, their snapshot folders and their dag/climate.yml entries) stay active until the review is done. Two things depend on them being present:

    • The reviewer compares consecutive versions with the compare-previous-version VS Code extension, which diffs each step file against the same-named file in the nearest lower version folder. Delete the old folders and there is nothing to compare against.
    • The chart remap (step 4) finds each dataset's predecessor through the version tracker, which reads only the active DAG. Remove the old DAG entries first and etl indicator-upgrade auto reports "No dataset migrations detected".

    If the old entries were already removed, restore them: git checkout <base> -- <old folders> dag/archive/climate.yml, and append the old UPDATEABLE block to dag/climate.yml under a comment that says it is kept until the review is done.

  4. Chart remap on staging via the Indicator Upgrader. The version bump mints new variable IDs for every grapher dataset, and charts do not follow on their own; until the remap, Chart Diff shows nothing. With both versions in the DAG, automatic detection works:

    bash
    STAGING=1 .venv/bin/etl indicator-upgrade auto --dry-run
    STAGING=1 .venv/bin/etl indicator-upgrade auto

    It detects 18 of the 20 pairs. The two climate_change_impacts_* grapher steps are declared only under the explorer's viz:// entry and the version tracker does not list them; remap those two by hand (match -old <id> -new <id> --perfect-match-only, then upgrade; dataset ids from datasets on staging, whose catalogPath has no grapher/ prefix). Staging can hold two old wildfire versions (the batch's and the last weekly one): pair the one that carries charts. Afterwards, check that no old dataset still carries a chart and that the per-dataset chart counts on staging equal production's (the 2026-09-11 run moved 66 charts and 3 narrative charts, 70 chart-dataset pairs). Watch the once-off cases: any dataset moving from latest or changing namespace needs its remap reviewed explicitly (see below).

  5. Hand off for review. In the PR body and in the chat, list exactly which files changed in content relative to the previous version, so the reviewer does not have to open all ~110 files. Compute it with cmp between the old and new version folders; in a normal month only the snapshot folder differs (the .dvc files and any edited snapshot script), and every meadow, garden and grapher file is byte-identical to its predecessor. Then Anomalist + Chart Diff on staging (enable "Show all charts").

  6. Only when the user says the review is done, archive the old versions, as the last commits before merge: remove the old block from dag/climate.yml and the old step and snapshot folders (git rm -r) → commit → etl archive-dag (it reads committed history) → commit dag/archive/climate.yml. It should add exactly the old climate steps (48 for a full batch). Remind the user of this step at the end of every hand-off; it is easy to forget and the PR must not merge with both versions active.

  7. One announcement: run /draft-data-update-slack-post for the combined batch, post to #data-updates-comms, and draft the single /latest post. Do not produce per-dataset announcements.

Show full SKILL.md (103 more words)Show less

One-off migrations (only on the first run after the refactor)

These are structural moves that happen once, then the dataset behaves like any other updateable one:

  • weekly_wildfires: latest → versioned. Its grapher variables get new IDs, so the wildfire charts (and any wildfires explorer) need a ghost-variable remap — see /remap-ghost-variables.
  • ipcc_scenarios: namespace emissions → climate, and EPA 2024-04-17: namespace epa → climate (retires the epa namespace). ipcc also moves its standalone explorer. EPA has no charts of its own (it only feeds climate_change_impacts), so its move is chart-free; ipcc's needs an explorer/chart remap.

After these land, update this skill's inventory if any short_names or namespaces changed.

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

Files

Just SKILL.md in .claude/skills/update-climate-data of owid/etl.

Open the folder on GitHubat commit 69ab20e

Compare with similar skills

Update Climate Data 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.

Update Climate Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Update Climate Data this skillowid/etl158—~2.4kAutomated safety check: PassMIT
AstropyzLanqing/codex-claude-academic-skills4.6k14 repos~2.9kAutomated safety check: PassBSD-3-Clause
PymatgenzLanqing/codex-claude-academic-skills4.6k12 repos~5kAutomated safety check: PassMIT
Cantera Ignition DelayK-Dense-AI/scientific-agent-skills48k1 repos~2.2kAutomated safety check: PassMIT
Weathertrpc-group/trpc-agent-go1.8k8 repos~591Automated safety check: PassApache-2.0
Pymol VisualizationChatMol/ChatMol372—~1.2kAutomated safety check: PassMIT

Similar skills

  • Astropy

    zLanqing/codex-claude-academic-skills

    Comprehensive Python library for astronomy and astrophysics.

    4.6k GitHub starsUsed in 14 repos~2.9k tokens
    Research & ScienceAuto-check passed
  • Pymatgen

    zLanqing/codex-claude-academic-skills

    Materials science toolkit. An agent skill from zLanqing/codex-claude-academic-skills.

    4.6k GitHub starsUsed in 12 repos~5k tokens
    Research & ScienceAuto-check passed
  • Cantera Ignition Delay

    K-Dense-AI/scientific-agent-skills

    Runs Cantera constant-volume or constant-pressure ignition simulations and reports temperature-based ignition delay with mechanism provenance and checks.

    48k GitHub starsUsed in 1 repo~2.2k tokens
    Research & ScienceAuto-check passed
  • Weather

    trpc-group/trpc-agent-go

    Get current weather and forecasts via wttr.in or Open-Meteo.

    1.8k GitHub starsUsed in 8 repos~591 tokens
    Research & ScienceAuto-check passed
  • Pymol Visualization

    ChatMol/ChatMol

    Generate publication-quality molecular visualization images using PyMOL.

    372 GitHub stars~1.2k tokensUpdated 6 mo ago
    Research & ScienceAuto-check passed
  • Review

    Muuuun/luxas

    Write domain-authentic review articles that synthesize rather than stack.

    1.2k GitHub stars~2.1k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed

More from owid/etl

All 35 skills in this repo
  • Find every OWID surface that references a chart, indicator, MDIM, or explorer — articles (links vs embeds), explorers, narrative charts, data insights, static viz, key-chart slots, MDIM views.

    158 GitHub stars~4.9k tokensUpdated today
    Auto-check passed
  • Add a scatter view (with GDP per capita on x) to existing OWID charts via the admin API, mirroring the admin UI's "Add scatter type" defaults, then retire the old standalone "X vs.

    158 GitHub stars~19k tokensUpdated today
    Auto-check passed
  • Add new survey question codes (e.g. An agent skill from owid/etl.

    158 GitHub stars~11k tokensUpdated today
    Auto-check: notes
  • Build or refresh an OWID static visualization end to end — resolve what data it needs from an old static viz image, an indicator, or a grapher chart; check both the ETL catalog and the producer's…

    158 GitHub stars~8.3k tokensUpdated today
    Auto-check passed
  • Propose redirects from (soon-to-sunset) grapher charts to the matching views of published MDIMs.

    158 GitHub stars~9.6k tokensUpdated today
    Auto-check: notes
  • Take (soon-to-sunset) OWID explorers to redirected MDIMs, end to end.

    158 GitHub stars~7.3k tokensUpdated today
    Auto-check: notes

Questions about Update Climate Data

What does Update Climate Data do?

Run OWID's monthly climate data update. An agent skill from owid/etl. Update Climate Data is an agent skill from owid/etl. Run OWID's monthly climate data update.

When should I use Update Climate Data?

Update Climate Data fits situations like: the user wants to update climate data; run the monthly climate update.

How do I install Update Climate Data in Claude Code?

Run `npx skills add owid/etl --skill update-climate-data -a claude-code`. Or copy the skill folder (.claude/skills/update-climate-data in owid/etl) into .claude/skills/update-climate-data in your project. Claude Code loads it when a task matches its description.

How do I install Update Climate Data in Codex?

Run `npx skills add owid/etl --skill update-climate-data -a codex`. Or copy the skill folder (.claude/skills/update-climate-data in owid/etl) into .agents/skills/update-climate-data in your project. Codex loads it when a task matches its description.

Can I use Update Climate Data 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 owid/etl --skill update-climate-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-climate-data, .gemini/skills/update-climate-data, .github/skills/update-climate-data and .opencode/skills/update-climate-data in your project.

What does Update Climate Data need to run?

Going by SKILL.md and its folder, Update Climate Data needs the command-line tools its instructions call (git).

Does Update Climate Data access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Update Climate Data 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 Update Climate Data use?

Update Climate Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Update Climate Data use?

About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Update Climate Data?

Skills that share tags, products or a category with Update Climate Data: Astropy (zLanqing/codex-claude-academic-skills, 4.6k stars), Pymatgen (zLanqing/codex-claude-academic-skills, 4.6k stars), Cantera Ignition Delay (K-Dense-AI/scientific-agent-skills, 48k stars) and Weather (trpc-group/trpc-agent-go, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Update Climate Data?

owid (a GitHub organization) maintains it in owid/etl, which has 158 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 7, 2026.

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