Seven specialists. One coherent loop.
Each specialist owns one job: planning, statistical reasoning, narrative synthesis, disambiguation, self-critique, dataset discovery, local-mirror ingestion. The orchestrator routes between them, the critic verifies, the doom-loop guard catches cycles. Every run is auditable end-to-end.
The orchestrator routes, the specialists deliver.
Watch a real run — orchestrator dispatches to data_analyst (in parallel), critic reviews, replans on the missing-window flag, then reporter composes the final answer with citation.
Agentic flow
How a question becomes a sourced answer.
router · decomposer
Orchestrator
SoQL · Socrata exec
Data Analyst
verify · grounding
Critic
prose · data viz
Reporter
provenance lock
Citation step
reason: parsing · domain=permits geo=78704 window=2024-Q4
Typical cycle · 7.3s · 0–3 re-plan loops
Each one with a job, not a vibe.
Orchestrator
Reasons over the question, builds the plan, decides which specialist owns each step. Hosts the doom-loop guard and the critic-revision loop.Plans & dispatches · On every /q request
See activity →
Data Analyst
Owns analytical SoQL — deltas, percentiles, top-N with ties broken, year-over-year. Returns findings + viz spec + confidence + caveats.Statistical reasoning · Triggered by orchestrator
See activity →
Reporter
Takes findings, splices into long-form templates, writes data/reports/{slug}.json snapshots that drive every /reports page.Composes /reports · Triggered by orchestrator + nightly cron
See activity →
Support
Handles vague queries ("south austin"), answers TXLookup-meta questions, returns chip-set follow-ups when the user needs to clarify scope.Disambiguates & helps · Triggered by orchestrator
See activity →
Critic
Grades the plan and the synthesized answer on groundedness, scope match, citation quality. On reject (approve=false), forces a single corrective revision.Self-correction · After every plan + every answer
See activity →
Dataset Scout
Scans Austin / Dallas / SA / Houston / TX state Socrata portals for new or refreshed datasets. Files GitHub issues for human curation.Grows the corpus · Every 6 hours
See activity →
Ingestor
Pulls deltas from each catalog dataset into a SQLite cache. Enables cross-dataset SQL JOINs that Socrata's SoQL can't express. Source pill (cache vs live) on every tool envelope.Local cache curator · Every 6 hours
See activity →
Recent agent runs, replayable end-to-end.
10 runs
07:49 PM
Top 5 outliers in crime reports this year render this to a Miro board
14 events · fdj4-gpfu
Replay →07:49 PM
Show austin crash report data trend over the last 24 months by quarter render this to a Miro board
26 events · y2wy-tgr5
Replay →07:49 PM
How does 311 volume in flood-prone zips compare to the last year? render this to a Miro board
18 events · xwdj-i9he
Replay →07:48 PM
Top 10 state agencies by total 2024 expenditures render this to a Miro board
13 events · 2zpi-yjjs
Replay →07:48 PM
How do food inspection failures this year compare to last year? render this to a Miro board
11 events · ecmv-9xxi
Replay →07:48 PM
Where do permits and code violations both spike together this year by zip? render this to a Miro board
20 events · 6wtj-zbtb
Replay →08:26 PM
Top 5 outliers in dallas police active calls this year
18 events · 9fxf-t2tr
Replay →08:26 PM
Join dallas police active calls with code violations by zip for the same period
24 events · 6wtj-zbtb
Replay →08:25 PM
Show dallas police active calls trend over the last 24 months by quarter
23 events · 9fxf-t2tr
Replay →08:25 PM
Compare dallas police active calls between this zip and the next-most-active zip
18 events · no citation
Replay →