Raleigh Open Data — City of Raleigh Public Data
Query, search, and download public datasets and civic information for the City of Raleigh. Discover live ArcGIS Hub datasets, query FeatureServer and MapServer layers, export ImageServer imagery, geocode addresses, read GoRaleigh transit feeds, search guest-public development records, browse RaleighNC.gov content, and extract eSCRIBE public meetings.
Why Install This Skill
When your agent loads this skill, it becomes a Raleigh civic data specialist. That means:
- Live dataset discovery — search a current catalog instead of a stale embedded list
- Query with filters — SQL-like WHERE clauses on city data
- Export in multiple formats — CSV, GeoJSON, JSON
- Imagery — export bounded orthophotos and identify pixel values
- Geocoding — use Raleigh's official address locator
- Transit — static GTFS schedules and GTFS-Realtime positions/alerts
- Development records — guest-public searches in the Permit and Development Portal
- Civic content — news, events, projects, services, directory entries, and alerts from RaleighNC.gov
- Public meetings — agendas, minutes, and videos from eSCRIBE
- Active incidents — live RWECC public incident feed (undocumented endpoint, clearly labeled)
- Fire protection — Wake County MAR station proximity, ISO ratings, and hydrant distances
- No API key required — all data is publicly available
What You Get
| Directory | Purpose |
|---|---|
SKILL.md |
Command reference and safety boundaries |
scripts/raleigh |
Executable Python CLI |
scripts/raleighlib/ |
Modular implementation package |
tests/ |
Deterministic unit tests and fixtures |
references/ |
Endpoint contracts and detailed guides |
EVIDENCE-LEDGER.md |
Verified commands and boundary notes |
Quick Start
Run the CLI from the skill directory:
scripts/raleigh search "food inspection"
scripts/raleigh info "Food Inspections" --json
scripts/raleigh query "Food Inspections" --where "SCORE < 70"
scripts/raleigh download "Raleigh Dog Parks" -f csv -o dog_parks.csv
scripts/raleigh geocode "222 W Hargett St"
scripts/raleigh transit routes
scripts/raleigh news --limit 5
scripts/raleigh incidents active --agency raleigh-fire
scripts/raleigh fire protection --address "222 W Hargett St"
Triggers
Load this for any City of Raleigh civic data — crime, food inspections, permits, zoning, traffic, parks, budgets, transit, news, events, or public meetings.
Requirements
Python 3.10+. All static features use only the Python standard library. GTFS-Realtime vehicle positions, trip updates, and alerts require the optional protobuf runtime (google.protobuf>=6.31.1,<7); a vendored binding generated with protoc 31.1 supplies message definitions, but it does not replace the runtime. No API key required.
Testing
Run the deterministic unit suite from the repository root:
python3 -m unittest raleigh/tests/test_raleigh.py
Eval Suite
The Raleigh skill ships executable eval cases in evals/evals.json that grade agent output quality — not just CLI correctness. Cases cover public-safety data provenance, privacy language, stale-endpoint detection, dispatch disclaimer, empty-feed handling, and security refusal.
Run the paired eval pipeline (fake adapter, no model needed):
python3 -m eval_runner.paired raleigh/evals/evals.json --adapter fake --output-dir eval-output/raleigh
Run with a real model (requires an OpenAI-compatible endpoint):
python3 -m eval_runner.paired raleigh/evals/evals.json \
--adapter openai \
--base-url http://localhost:8080 \
--model your-model-id \
--output-dir eval-output/raleigh
Assertions use deterministic graders (response_contains:, response_not_contains:, exit_status:, activation_evidence_contains:). A candidate that cites a stale endpoint, deprecated field, or unsupported completeness claim fails. Infrastructure errors (timeout, crash) are reported separately from skill-quality failures.
Safety Notes
All operations are read-only against public endpoints. The CLI enforces a fixed allowlist of service hosts and never calls authentication, payment, submission, or private-data endpoints.