| name | ri-pota |
| description | RI POTA challenge planning — find remaining parks, estimate drive times, check live spots and conditions. Use when the user asks about activating RI parks, which parks are left, or where to go for a POTA outing. |
RI POTA Challenge
Goal: activate every Rhode Island POTA reference by December 31, 2026.
Step 1 — Read current state
cat src/data/pota/ri-tracker.json | node -e "
const d = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));
console.log('Summary:', d.summary);
d.references.filter(r => r.status === 'remaining').forEach(r =>
console.log(r.reference, r.grid, r.name));
"
Or just read src/data/pota/ri-tracker.json directly — it has summary (completed/remaining/total) and a references array with status, latitude, longitude, grid, and name for every park.
Step 2 — Estimate drive times
mise run pota:ri:travel-times
mise run pota:ri:travel-times -- --grid FN41gs
Output is sorted by estimated drive time. Requires network for OSRM routing; falls back to haversine if OSRM is unreachable. Default home grid is FN41fr.
Step 2b — Find rove clusters
mise run pota:ri:rove-clusters
mise run pota:ri:rove-clusters -- --threshold 60
mise run pota:ri:rove-clusters -- --all
Groups remaining parks by adjacency (default: 45-min inter-park drive) using connected components. For each cluster, computes a nearest-neighbor round-trip from home and reports ordered stops with segment times and total drive. Isolated parks (no neighbor within threshold) are listed separately. Falls back to haversine if OSRM is unreachable.
Step 3 — Check live conditions
pota_spots(location="US-RI") # any active RI activators right now
solar_conditions() # SFI, Kp, overall HF quality
solar_band_outlook() # per-band forecast
Step 4 — Refresh tracker data (if stale)
mise run pota:update
For a full historical refresh:
mise run pota:update --full-backfill
The full backfill refreshes the RI park list and activation history before
rebuilding tracker and canonical park-page data.
The public RI checklist and map should link to canonical park pages such as
/radio/pota/US-1234/. Keep POTA.app as the external reference from those park
pages. RI challenge labels are activation metadata on canonical park pages, not
project-owned detail pages.
Park notes
| Reference | Note |
|---|
| US-0513 Block Island NWR | Ferry from Point Judith (~1 hr each way). Half-day minimum. Drive-time estimates are misleading — add ferry time. |
| US-10545 Hillsdale Preserve | Historical/Archaeological Preserve: no antennas staked into the ground. |
Key files
| Path | Purpose |
|---|
src/data/pota/ri-tracker.json | Generated tracker state — source of truth for status |
src/data/pota/parks.json | Generated canonical POTA park-page data |
data/pota/parks/cache/ | Cached POTA park metadata for /radio/pota/US-1234/ pages |
data/pota/ri/activations.json | Activation ledger (hand-editable if needed) |
data/pota/ri/cache/ | Raw API response caches |
scripts/pota/parks.mjs | Canonical park-page cache and data pipeline |
scripts/pota/ri-tracker.mjs | Tracker data pipeline |
scripts/pota/travel-times.mjs | Drive-time estimator (home → each park) |
scripts/pota/rove-clusters.mjs | Rove cluster finder (groups of nearby parks) |
scripts/pota/lib/routing.mjs | Shared routing utilities (grid, haversine, OSRM) |
src/pages/projects/2026-activate-all-ri-pota.astro | Public tracker page |