{
  "$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
  "skills": [
    {
      "name": "cdh-metadata",
      "type": "archive",
      "description": "Generates a valid Climate Data Hub (CDH) YAML metadata record for a geospatial dataset. Use this skill whenever the user wants to: create or write CDH metadata, document a raster, vector, NetCDF, or Zarr file for the CDH catalog, produce a YAML metadata record following the CDH standard, prepare a dataset for upload to the Climate Data Hub, or fill in metadata fields. Trigger even when phrased informally: \"write metadata for my file\", \"document this dataset\", \"create a YAML for CDH\", \"how do I add my data to the hub\", \"I need to describe my raster\", \"help me fill the metadata\", or \"generate the catalog record\". This skill is the go-to for any CDH metadata authoring task — invoke it whenever a dataset + a CDH context appear together, even if the user does not use the word \"metadata\" explicitly.\n",
      "url": "/.well-known/agent-skills/cdh-metadata.tar.gz",
      "digest": "sha256:9a509de69bedf6a95cb7e146d1ed099ed7225ec04a7c15559e08fe87b7c230c0"
    },
    {
      "name": "climate-dashboard",
      "type": "archive",
      "description": "Builds a standalone interactive HTML climate dashboard from a CSV or NetCDF file — no Jupyter, no server, opens directly in any browser. Use this skill whenever the user wants to visualize climate data as a browser-viewable dashboard, especially when they say \"dashboard\", \"HTML\", \"open in browser\", \"show results\", \"visualize the CSV\", or when gcf-pipeline needs an HTML output. Works with CSV files from summarize_by_admin (columns: variable, time, value, optionally admin_unit) and NetCDF rasters. Auto-detects plot type from data shape. Produces KPI cards (mean, max, min), interactive Chart.js charts with filters, and a sortable data table — all in one self-contained HTML file. Always invoke this skill when the user has climate data and wants a dashboard or HTML visualization, even if they don't say \"climate\" explicitly.\n",
      "url": "/.well-known/agent-skills/climate-dashboard.tar.gz",
      "digest": "sha256:6a37acf409c481bfe807dc3d30cfe7262f3acaaff9b22761d2bbeb55c7474899"
    },
    {
      "name": "climate-data-download",
      "type": "archive",
      "description": "Expert AI assistant for downloading climate data using the aggeodata Python package. Orchestrates downloads of CHIRPS precipitation, CHIRTS-ERA5 temperature, AgERA5 agrometeorological indicators (including hourly relative humidity), NASA POWER data, and Google Earth Engine (GEE) collections via MCP tools. Use this skill whenever a user asks to download climate or weather data — precipitation, temperature, humidity, solar radiation, wind speed, ET, VPD — for any country, region, or bounding box. Even if they don't say \"download\" explicitly, if they mention wanting climate data for an area and time period, this skill should trigger.",
      "url": "/.well-known/agent-skills/climate-data-download.tar.gz",
      "digest": "sha256:a02a55b6da22c7c9f494105c4bdcf2909b33ad16b67565f666fd5f4b215b5377"
    },
    {
      "name": "gcf-pipeline",
      "type": "archive",
      "description": "Full end-to-end climate data pipeline orchestrator: download → spatial processing → visualization, all in one workflow. Invoke this skill whenever the user wants to get AND see/visualize climate data together — even if they don't use technical terms. Strong trigger phrases: \"download and visualize\", \"get and show\", \"I want to see [variable] for [country/year]\", \"full pipeline\", \"gcf-pipeline\", \"accumulated [variable] in [country]\", \"map [variable] over [country]\", \"show me [variable] for [year]\". Also triggers for any prompt that clearly implies all three steps at once: fetching climate data, processing it spatially (masking, aggregating), AND plotting the results. Do NOT invoke if the user only wants to download (no visualization) or only wants to plot (data already loaded) — use the individual climate-data-download or notebook-plots skills for those cases instead.\n",
      "url": "/.well-known/agent-skills/gcf-pipeline.tar.gz",
      "digest": "sha256:3ed7a79f30e1742ec692c27477e73502ad8c05c94e68691dceb3a9b90cc80eb9"
    },
    {
      "name": "geospatial-cube-processor",
      "type": "archive",
      "description": "Expert at writing geospatial processing functions inline into the user's existing Python script or notebook. Use this skill whenever the user wants to: mask or clip raster data to an admin boundary or country, stack or combine multiple xarray Datasets into a single cube, compute zonal statistics or aggregate raster values by region or time period, or export raster data as Cloud Optimized GeoTIFF (COG). Works with any gridded source — climate, soil, elevation, land use — as long as it uses standard lat/lon dimensions and EPSG:4326 CRS. Also triggers when the user mentions GADM boundaries, rioxarray clipping, xarray merging, zonal stats, or COG export in the context of spatial analysis. IMPORTANT: invoke this skill any time the user is working with xarray Datasets and wants to do spatial operations, even if they don't use these exact terms — phrases like \"clip to Ethiopia\", \"combine my rasters\", \"average rainfall per district\", or \"save as GeoTIFF\" are all strong signals.\n",
      "url": "/.well-known/agent-skills/geospatial-cube-processor.tar.gz",
      "digest": "sha256:2537e235437eddf480adc21447b730ceda23d842301f7955ce934c2c243af784"
    },
    {
      "name": "notebook-plots",
      "type": "archive",
      "description": "Writes interactive Plotly visualization cells into a Jupyter notebook or Google Colab. Use whenever the user wants to plot, visualize, chart, or map climate or geospatial data. Trigger phrases: \"plot\", \"visualize\", \"show me\", \"make a chart\", \"graph this\", \"map this\", \"dashboard\", \"seasonal pattern\", \"monthly chart\", \"compare regions\", \"time series\". Also triggers automatically when the user has a CSV from summarize_by_admin (columns: variable, time, value — optionally admin_unit) and wants to see the results, even if they don't say \"plot\" explicitly. Handles: seasonal bar charts, multi-year time series, admin-unit comparisons, spatial raster maps, and multi-variable dashboards. IMPORTANT: invoke this skill any time the user wants to see data — even if their phrasing is casual (\"can you show me the rainfall?\", \"what does the temperature look like?\").\n",
      "url": "/.well-known/agent-skills/notebook-plots.tar.gz",
      "digest": "sha256:41861ba5294ad0d1f211ec990b8cfcfd99b022bfebb1404c56fad954a42e3d93"
    },
    {
      "name": "sciplot-skill",
      "type": "skill-md",
      "description": "Scientific visualization architect that transforms raw tabular data (CSV or similar) into elegant, publication-ready Python plotting code meeting the strict standards of high-impact journals (Nature, Science, Cell, Nature Communications).\nUSE THIS SKILL whenever the user asks to: create a figure or plot from a data file, generate publication-quality charts, visualize CSV/tabular data scientifically, make scatter plots / boxplots / multi-panel figures, add statistical annotations (p-values, regression lines, confidence intervals), produce journal-ready figures, or requests any chart that needs to look \"clean\", \"publication-quality\", or \"like a Nature paper\". Also trigger when the user says things like \"make a nice plot\", \"generate visualization code\", \"plot X vs Y from my data\", or \"create a figure for my manuscript\".",
      "url": "/.well-known/agent-skills/sciplot-skill/SKILL.md",
      "digest": "sha256:318cf3d4887d13bb037d87da211d052e01190d3f2c2625bc67e7369cc66155e0"
    },
    {
      "name": "soil-data-download",
      "type": "archive",
      "description": "Downloads SoilGrids global soil property rasters (clay, sand, silt, bulk density, organic carbon, pH, water content at multiple depths) and optionally stacks them into a validated soil datacube. Trigger this skill whenever the user mentions SoilGrids, soil texture, soil organic carbon, soil pH, soil water retention, soil depth layers (`0-5`, `5-15`, `15-30`, `30-60`, `60-100` cm), or asks to download / build / stack soil data for any country, region, or bounding box — even if they don't say 'SoilGrids' explicitly (e.g. 'I need clay and sand for Malawi', 'soil cube for Mzimba', 'download soil data for the Sahel'). Also trigger when the user hits a `reference_variable: non-null string required` schema error trying to use `climate-data-download` for soil — that pipeline is climate-only; this skill handles the soil path. Do NOT trigger for climate variables (precipitation, temperature, RH, ET) — use `climate-data-download` for those.",
      "url": "/.well-known/agent-skills/soil-data-download.tar.gz",
      "digest": "sha256:4bb6806e7b51a1f027ae530a53c44300a4d9ab892ebf0478bd9733f80b2d18b3"
    },
    {
      "name": "spatial-crop-modeler",
      "type": "archive",
      "description": "Expert orchestrator for spatial crop model simulations using ag-cube-cm + aggeodata. Use this skill whenever the user mentions: DSSAT, crop model, yield simulation, maize/wheat/bean/soybean yield, planting date analysis, spatial crop modeling, ag-cube-cm, SoilGrids, CHIRPS, CHIRTS, AgERA5, or any combination of climate/soil data with a process-based crop model. Trigger even if the user only says \"run DSSAT\" or \"simulate yield\" without mentioning the full stack — they almost certainly need this workflow. Also trigger when the user asks to interpret HWAM output or wants to understand why pixels were skipped.",
      "url": "/.well-known/agent-skills/spatial-crop-modeler.tar.gz",
      "digest": "sha256:7d8278689ddda2b0c5604d45123575cf654a9817f47920abac4cc745c0841ccd"
    }
  ]
}