Astropy
zLanqing/codex-claude-academic-skills
Comprehensive Python library for astronomy and astrophysics.
Run OWID's monthly climate data update. An agent skill from owid/etl.
$ npx skills add owid/etl --skill update-climate-data -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install owid/etl update-climate-data --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "update-climate-data" agent skill from https://github.com/owid/etl/tree/master/.claude/skills/update-climate-data into .claude/skills/update-climate-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-climate-data", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/owid/etl/tree/master/.claude/skills/update-climate-dataType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add owid/etl --skill update-climate-data -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install owid/etl update-climate-data --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/owid/etl.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/update-climate-data .agents/skills/update-climate-data && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "update-climate-data" agent skill from https://github.com/owid/etl/tree/master/.claude/skills/update-climate-data into .agents/skills/update-climate-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-climate-data", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add owid/etl --skill update-climate-data -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install owid/etl update-climate-data --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/owid/etl.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/update-climate-data .cursor/skills/update-climate-data && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "update-climate-data" agent skill from https://github.com/owid/etl/tree/master/.claude/skills/update-climate-data into .cursor/skills/update-climate-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-climate-data", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/owid/etl.git --path .claude/skills/update-climate-data--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add owid/etl --skill update-climate-data -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install owid/etl update-climate-data --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/owid/etl.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/update-climate-data .gemini/skills/update-climate-data && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "update-climate-data" agent skill from https://github.com/owid/etl/tree/master/.claude/skills/update-climate-data into .gemini/skills/update-climate-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-climate-data", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install owid/etl update-climate-dataInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add owid/etl --skill update-climate-data -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/owid/etl.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/update-climate-data .github/skills/update-climate-data && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "update-climate-data" agent skill from https://github.com/owid/etl/tree/master/.claude/skills/update-climate-data into .github/skills/update-climate-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-climate-data", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add owid/etl --skill update-climate-data -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install owid/etl update-climate-data --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/owid/etl.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/update-climate-data .opencode/skills/update-climate-data && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "update-climate-data" agent skill from https://github.com/owid/etl/tree/master/.claude/skills/update-climate-data into .opencode/skills/update-climate-data/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-climate-data", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
update-climate-dataRun 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. 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.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 69ab20e. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from owid/etl at commit 69ab20e, republished under its MIT licence (© owid). 1,154 words, ~2,401 tokens.
.claude/skills/update-climate-data/SKILL.md (or your agent's skills folder).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.
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.Grouped by source. Bump all of these to the same new version date.
| Source | Garden dataset(s) | Snapshot(s) | Cadence |
|---|---|---|---|
| Copernicus ERA5 | surface_temperature | surface_temperature.zip | monthly |
| Copernicus ERA5 | total_precipitation | total_precipitation.zip | yearly |
| GWIS | weekly_wildfires | weekly_wildfires.csv | continuous (fire season) |
| GWIS | yearly_burned_area | yearly_burned_area.csv | yearly |
| NOAA (Equatorial Pacific) | sst | sst.csv | monthly |
| NOAA GML | ghg_concentration | co2/ch4/n2o_concentration_monthly.csv | monthly |
| NSIDC | sea_ice_index | sea_ice_index.xlsx | monthly |
| NASA Ozone Watch | nasa_ozone_hole | nasa_ozone_hole_p1/p2.txt | yearly |
| Rutgers Global Snow Lab | snow_cover_extent | snow_cover_extent_*.csv | monthly |
| Hawaii Ocean Time-series | ocean_ph_levels | hawaii_ocean_time_series.csv | monthly |
| Met Office Hadley Centre | sea_surface_temperature | sea_surface_temperature_*.csv | monthly |
| Met Office Hadley Centre | near_surface_temperature | near_surface_temperature_*.csv | yearly |
| NOAA NCEI | ocean_heat_content | ocean_heat_content_*.csv | monthly |
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.
Skip entirely. They receive no new data and several feed climate_change_impacts:
ghg_concentration, ocean_heat_content, ice_sheet_mass_balance, mass_balance_us_glaciersglobal_sea_level (2024-01-28, NOAA Climate.gov)ipcc_scenariosIf a frozen source's producer ever republishes, that is a separate, deliberate version bump — not part of the monthly run.
climate_change_impacts's frozen deps (EPA, global_sea_level) stay on
their old versions — reference them unchanged.long_run_ghg_concentration, then the climate_change_impacts aggregate.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.
Create the branch + draft PR with etl pr "📊 Update climate data" data. One branch
and one PR for the whole batch.
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.
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:
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.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.
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:
STAGING=1 .venv/bin/etl indicator-upgrade auto --dry-run
STAGING=1 .venv/bin/etl indicator-upgrade autoIt 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).
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").
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.
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.
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
Just SKILL.md in .claude/skills/update-climate-data of owid/etl.
Open the folder on GitHubat commit 69ab20e
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Update Climate Data this skillowid/etl | 158 | — | ~2.4k | Automated safety check: Pass | MIT | |
| AstropyzLanqing/codex-claude-academic-skills | 4.6k | 14 repos | ~2.9k | Automated safety check: Pass | BSD-3-Clause | |
| PymatgenzLanqing/codex-claude-academic-skills | 4.6k | 12 repos | ~5k | Automated safety check: Pass | MIT | |
| Cantera Ignition DelayK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Weathertrpc-group/trpc-agent-go | 1.8k | 8 repos | ~591 | Automated safety check: Pass | Apache-2.0 | |
| Pymol VisualizationChatMol/ChatMol | 372 | — | ~1.2k | Automated safety check: Pass | MIT |
zLanqing/codex-claude-academic-skills
Comprehensive Python library for astronomy and astrophysics.
zLanqing/codex-claude-academic-skills
Materials science toolkit. An agent skill from zLanqing/codex-claude-academic-skills.
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.
trpc-group/trpc-agent-go
Get current weather and forecasts via wttr.in or Open-Meteo.
ChatMol/ChatMol
Generate publication-quality molecular visualization images using PyMOL.
Muuuun/luxas
Write domain-authentic review articles that synthesize rather than stack.
owid/etl
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.
owid/etl
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.
owid/etl
Add new survey question codes (e.g. An agent skill from owid/etl.
owid/etl
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…
owid/etl
Propose redirects from (soon-to-sunset) grapher charts to the matching views of published MDIMs.
owid/etl
Take (soon-to-sunset) OWID explorers to redirected MDIMs, end to end.
Categories
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.
Update Climate Data fits situations like: the user wants to update climate data; run the monthly climate update.
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.
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.
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.
Going by SKILL.md and its folder, Update Climate Data needs the command-line tools its instructions call (git).
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.
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.
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.
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.
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.
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.