grind-lab-core/night_owl_research_agent/data-download
Claude Code and agent skill by grind-lab-core/night_owl_research_agent
- community
Checking that the SKILL.md file is still in the repository.
Discover, evaluate, and download publicly available datasets from the internet. Infers data needs from a research question or task, selects authoritative sources, downloads reproducibly, validates file integrity, and documents provenance. Pauses for user input when authentication, API keys, or major tradeoffs require a decision. Use when user says "download data", "get data", "find a dataset", "I need boundary files", "download census data", or needs any external dataset for analysis.
Install
npx vskill@latest install grind-lab-core/night_owl_research_agent/data-downloadSKILL.md
Data Download: Discover, Evaluate, and Acquire Research Data
Find and download data for: $ARGUMENTS
Overview
This skill turns a data need into a validated, documented, locally available dataset. It does NOT blindly download from the first URL found. It reasons from the research question to the right data, evaluates candidate sources, downloads reproducibly, validates the result, and records provenance.
The workflow is always: data need → source discovery → source evaluation → download → validation → provenance documentation.
Constants
- DATA_DIR = `data/` — Top-level data directory. Raw downloads go to
data/raw/, processed outputs todata/processed/. - MANIFEST_FILE = `data/DATA_MANIFEST.md` — Provenance log for all downloaded datasets.
- MAX_UNATTENDED_SIZE_MB = 500 — If a single file exceeds this size, pause and confirm with the user before downloading.
- VERIFY_AFTER_DOWNLOAD = true — Always validate downloaded files (existence, size, format, openability).
- PREFER_PUBLIC = true — When both public and authenticated sources exist, prefer the public source unless the authenticated source is materially better.
Override via argument, e.g.,/data-download "US census tracts" — data dir: datasets/, max size: 2000.
Phase 0: Understand the Data Need
Before searching for data, classify what is actually needed.
Step 0.1: Infer Data Requirements
Extract from the user's request, the research question, or existing project files (research_contract.md, output/EXPERIMENT_PLAN.md, RESEARCH_PLAN.md):
| Dimension | Question to answer | |
|---|---|---|
| Geography | What study area? Country, state, city, bounding box, global? | |
| Time range | What period? Single year, multi-year, historical, real-time? | |
| Spatial resolution | Point, tract, county, grid cell, pixel? What resolution? | |
| Temporal resolution | Daily, monthly, annual, static snapshot? | |
| Variables / bands | What specific attributes, indicators, or spectral bands? | |
| Data type | Vector (points, lines, polygons), raster, tabular, network? | |
| File format | GeoJSON, Shapefile, GeoPackage, GeoParquet, GeoTIFF, COG, NetCDF, CSV? | |
| Licensing | Must it be open? CC-BY? Public domain? Commercial use? | |
| Quality | Research-grade? Official statistics? Authoritative boundaries? | |
| Size | How many features/pixels/rows? Will it fit in memory? |
If the request is too vague (e.g., "get me some data"), STOP and ask the user to specify at least:
- What geographic area?
- What variables or themes?
- What time period?
Step 0.2: Categorize the Data Need
Map the need to one or more data categories:
| Category | Examples | Typical sources | |
|---|---|---|---|
| Administrative boundaries | Country, state, county, tract, district | Census/TIGER, GADM, Natural Earth, OSM | |
| Transportation / infrastructure | Roads, railways, airports, utilities | OSM, DOT, OpenStreetMap Overpass | |
| Elevation / terrain | DEM, slope, aspect, hillshade | USGS 3DEP, SRTM, Copernicus DEM, ALOS | |
| Land cover / land use | NLCD, ESA WorldCover, MODIS LC | MRLC, ESA, USGS, Google Dynamic World | |
| Environmental / climate | Temperature, precipitation, drought, soil | PRISM, ERA5, NOAA, WorldClim, SoilGrids | |
| Weather | Observations, forecasts, station data | NOAA ISD/GHCN, Open-Meteo, ERA5 | |
| Air quality | PM2.5, ozone, AQI | EPA AQS, OpenAQ, Copernicus CAMS | |
| Hydrology | Rivers, watersheds, streamflow, flood zones | NHD, USGS NWIS, HydroSHEDS, FEMA NFHL | |
| Disaster / hazard | Hurricane tracks, wildfire, earthquake, flood | NOAA IBTrACS, NIFC, USGS Earthquake, FEMA | |
| Census / socioeconomic | Population, income, housing, education | US Census/ACS, WorldPop, IPUMS, Eurostat | |
| Public health | Disease rates, hospital locations, SVI | CDC, HHS, EPA EJScreen, County Health Rankings | |
| Remote sensing imagery | Landsat, Sentinel, MODIS, VIIRS | USGS EarthExplorer, Copernicus Open Access, NASA LAADS | |
| Points of interest | Schools, hospitals, parks, businesses | OSM, HIFLD, local open data portals | |
| Vegetation / agriculture | NDVI, crop type, cropland extent | MODIS, Sentinel-2, USDA CDL | |
| Ocean / coastal | Bathymetry, sea surface temp, shorelines | NOAA NCEI, GEBCO, Copernicus Marine |
Write the data requirement summary to data/DOWNLOAD_PLAN.md:
Phase 1: Discover Data Sources
Step 1.1: Source Search Strategy
For each required dataset, search for sources in this priority order:
- Official government portals — Census.gov, data.gov, USGS, NOAA, EPA, Eurostat, national mapping agencies
- Intergovernmental organizations — UN, World Bank, WHO, FAO, OECD
- Well-known research repositories — NASA Earthdata, Copernicus, PANGAEA, Zenodo, Figshare, Dryad
- Established open data projects — OpenStreetMap, Natural Earth, GADM, WorldPop, WorldClim
- Cloud-hosted public data — AWS Open Data, Google Earth Engine, Microsoft Planetary Computer, Source Cooperative
- Official APIs — Census API, NOAA API, EPA API, Open-Meteo, Overpass API
- Academic project pages — with clear documentation, DOI, and citation
NEVER use as primary source:
- Random blog posts or personal websites
- Undocumented file-sharing links
- Preview/visualization tiles meant for display only (e.g., map tile servers are NOT data downloads)
- Scraped HTML tables when a documented API or download endpoint exists
- Sources without clear provenance or licensing
Step 1.2: Source Catalog
For each candidate source, record:
Phase 2: Evaluate and Select Sources
Step 2.1: Evaluation Criteria
Score each candidate source:
| Criterion | Weight | What to check | |
|---|---|---|---|
| Authority | HIGH | Is the provider an official or recognized institution? | |
| Coverage match | HIGH | Does it cover the needed geography, time range, and variables? | |
| Accessibility | HIGH | Is it publicly downloadable without login? | |
| Format usability | MEDIUM | Is the format machine-readable and standard? | |
| Documentation quality | MEDIUM | Are metadata, schema, and methodology documented? | |
| Freshness | MEDIUM | Is the data current enough for the research need? | |
| Resolution match | MEDIUM | Does the spatial/temporal resolution match the need? | |
| Stability | LOW | Will the URL still work in 6 months? | |
| Citability | LOW | Does it have a DOI, recommended citation, or clear provenance? |
Step 2.2: Access Classification and Pause Logic
Classify each source by access type and act accordingly:
| Access type | Action | |
|---|---|---|
| PUBLIC — direct HTTP download, no auth | Proceed to download | |
| PUBLIC API — free API, no key required | Proceed to download via API | |
| API_KEY — free but requires registration for key | PAUSE: Tell user they need to register for an API key. Provide the registration URL. Ask if they have a key or want to use an alternative source. | |
| LOGIN — requires account creation | PAUSE: Explain that login is required. Provide registration URL. Ask user how to proceed. | |
| INSTITUTIONAL — requires university/org credentials | PAUSE: Explain institutional access requirement. Suggest public alternatives if available. | |
| PAID — subscription or per-download cost | PAUSE: Explain cost. Strongly recommend free alternatives. Only proceed if user explicitly confirms. | |
| CLICK-THROUGH — requires manual license agreement | PAUSE: Explain that a manual license agreement must be accepted in a browser. Provide the URL for the user to accept and download manually. | |
| CAPTCHA — automated access blocked | PAUSE: Explain that automated download is not possible. Provide the URL for manual download. |
GUARDRAIL: Never fabricate, guess, or hardcode API keys, passwords, or tokens. Never attempt to bypass authentication, CAPTCHAs, or access controls. Never assume the user has credentials unless they explicitly provide them.
Step 2.3: Present Options When Tradeoffs Exist
If multiple sources exist with material tradeoffs, PAUSE and present the options:
Let the user decide. If no response and the public source is adequate, default to the public source.
Step 2.4: Size Check
Before downloading, estimate the file size if possible (from documentation, HTTP HEAD request, or API metadata).
If estimated size > MAX_UNATTENDED_SIZE_MB:
Phase 3: Download
Step 3.1: Directory Setup
Organize raw downloads into subdirectories by dataset name:
Step 3.2: Download Methods
Choose the download method based on the source type:
Method A: Direct HTTP Download (preferred for single files)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/data-download/SKILL.md
Popularity
- Repository stars
- 85
- Repository forks
- 21
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 20 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/grind-lab-core/night_owl_research_agent/data-download)