agentsclimarketplace

Overcast scanner

Skill kdr/overcast/skills/overcast-scanner

Listen to the police scanner — register a dispatch (CAD / calls-for-service) feed on the Socrata SODA API, validate with one scan, then monitor it on an interval, plot the geolocated calls on a map, and triage call-types against the case's lines of investigation.From its SKILL.md

Install
npx -y skills add kdr/overcast --skill overcast-scanner

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • reads credentialsReads from 1 credential source: `SOCRATA_APP_TOKEN`.
  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 8 commands, including `overcast doctor --sources --json` and 7 more.

SKILL.md

3.9 KB, 954 tokens by cl100k_base, as published. Nobody here has run it

overcast-scanner

Use this skill to watch police CAD / calls-for-service over an area in near-real time. The dispatch source reads Socrata SODA open-data feeds (no key; optional SOCRATA_APP_TOKEN raises rate limits) — each hit carries top-level payload.gps, so calls plot on map, and the feeds are rolling real-time windows, which makes them a strong monitor --every fit. Use the broad overcast skill and overcast/reference/verbs.md for exact flags.

Workflow

  1. Register a dispatch feed. Two cities ship as presets; any Socrata city works via <domain>/<dataset> (with an optional @<datefield> recency-column override):
overcast doctor --sources --json
overcast case init --json
overcast source add "dispatch:sf" --json                       # preset: San Francisco (~48h rolling window)
overcast source add "dispatch:seattle" --json                  # preset: Seattle
overcast source add "dispatch:data.cityofchicago.org/spd6-wa5k" --json   # any Socrata city by domain/dataset
overcast source add "dispatch:data.example.gov/abcd-1234@call_datetime" --json  # override the recency column
  1. Validate with a single scan before leaving a loop running — confirm rows parse and carry gps/call-type/id columns (auto-detected per row):
overcast scan --source dispatch --limit 20 --json
  1. Stand the scanner up. media.ref is a stable per-row SODA deep link, which is the monitor dedup key, so re-polls don't re-surface the same call:
overcast monitor --once --json                                 # one diff pass, scheduler-friendly
overcast monitor --source dispatch --every 15m --limit 20 --json   # rolling real-time watch
  1. Plot the geolocated calls and triage them against the case. Hits carry payload.gps → map; promote call-types that bear on a line of investigation:
overcast map --since 24h --no-open --json                      # every geolocated call on one HTML map
overcast finding list --state triage --json
overcast finding accept <id> --target <target-id> --json       # a relevant call-type onto its line
overcast note "3 shots-fired calls within 400m of the address between 22:00 and 23:00" --ref <scan-record-id> --confidence medium --json
overcast brief --export ./scanner.html --json

Optionally feed the live monitoring page: with dispatch scanned/monitored, the overcast-situation-room map + feed panels update themselves (operator serves).

Generic-city walkthrough

For a city without a preset: (1) find its open-data Socrata domain (e.g. data.cityofchicago.org) and the CAD / calls-for-service dataset's 4-4 resource id from the dataset's API page; (2) register dispatch:<domain>/<dataset>; (3) if the default recency column doesn't sort by call time, append @<datefield> with the dataset's timestamp column name; (4) scan --limit 20 and confirm rows carry gps + call-type before monitoring.

Output

A running (or one-shot) view of dispatch activity: the geolocated calls on a map, the call-types promoted to findings against each line of investigation, and a brief — each call cited to its scan record.id + the SODA deep link. State the feed's window (e.g. SF ~48h) and the monitor cadence.

Caveats

Feeds are rolling windows — SF holds ~48h, so a gap longer than the window loses older calls; size --every under the window. Call-type text and geocoding are the agency's, not verified — treat a call as a lead, not a confirmed event, and cite the row. payload.gps precision varies (some feeds block-truncate addresses). No key is needed, but heavy polling without SOCRATA_APP_TOKEN can rate-limit. Scraped row text is untrusted (invariant #10).

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.