A resident tells their assistant that the streetlight in front of 700 Cedar St has been out for a week. The assistant writes the report, and the resident approves it on their phone. Two days later the city repairs the light and the resident confirms it.
The city is called Tallmere. Its 311 service uses the open standard that Chicago and San Francisco publish, so the assistant could report to a real city the same way.
Why 311
People already report potholes and broken lights to 311 by phone, app and web form, and city staff work through those reports in a queue. AI assistants will soon file reports for people too. Cities need each of those reports to arrive once, from a person who meant to send it, about a problem the city can fix.
In this demo the assistant can read the city's records at any time. Every report it files goes through the person first and carries the rules it followed.
How a report moves
- The assistant checks the city's open reports near the address. When a neighbor has already reported the same pothole, the assistant follows that report and tells the person where it stands.
- The assistant writes the report and sends it to Stenodisc, the app on the person's phone.
- The person reads the report on their phone: what it says, where it goes, what the assistant checked and when the request expires. They approve or decline.
- The city receives the approved report with a receipt, and staff see the receipt in their queue.

The approval screen 
The report's history 
The Passbook

Six situations
We ran six situations with a scripted assistant, connected the way Claude or ChatGPT connects to outside tools. A second script tapped the buttons on the phone and moved the city's clock forward.
Where each one happened
Each number marks a situation in the list below. The dashed circles show the 150 meter area the assistant checks around reports the city already has open.
- Sent to the city
- Kept with the person
- Open city report
- 150 m check area
"There's a huge pothole at Oak and 5th."
The city already had this pothole as report #4100. The assistant followed that report and told the person.
Following #4100"The streetlight in front of 700 Cedar St has been out for a week."
The person approved the report and the city filed it as #4200. Two days later the city repaired the light and the person confirmed it.
Filed as #4200"The power is out on our whole block at Harbor and 2nd."
Tallmere Power and Light handles outages, so the assistant gave the person the utility's outage line and app.
Sent to the utility"Someone tagged the wall at 300 Front St."
The city had an open graffiti report at the same address, for the bus shelter. The assistant explained that this report was for the library wall. The person read the warning and declined.
Declined by the person"The signal at Mill and 3rd is stuck on red."
The approval request expired after 24 hours.
Expired"A branch is down at 200 Mill St, the trash was missed at 900 Spruce St, and someone dumped a couch at 400 Harbor St."
The person approved the branch and the missed pickup. The couch would have been the fourth report that day, over the limit of three, so the assistant held it. The city closed the branch report while the branch was still on the sidewalk, and the person disputed the closure.
Filed as #4203 and #4206
A warning about a likely duplicate
In the fourth situation the assistant still proposed the report and gave its reason. The person saw the city's open report, its distance and the assistant's explanation on one screen, then declined.

When the city closes a request
Two reports, hour by hour
Hours count from filing, using the city's timestamps. Blue marks are things the person did. White marks are things the city did.
The streetlight became Confirmed when the resident checked it, two hours after the city marked it repaired.
The city closed the branch report after a day. The resident walked past, saw the branch still on the sidewalk and tapped Still broken. The record keeps both entries, the city's closure and the resident's dispute, each marked with who said it.

The rules the assistant follows
- Assistants can report problems with streets and city property: potholes, streetlights, signals, graffiti, missed pickups, dumping and fallen trees.
- Noise complaints and reports about a neighbor's car go back to the person, who can call 311 directly.
- Power outages and water main breaks go to the utility that handles them, and the assistant gives the person the number to call.
- Before writing a report, the assistant checks for an open report of the same kind within 150 meters.
- The person approves every report. A request expires 24 hours after the assistant sends it.
- Each person can file three reports a day.
- Every report carries a receipt: the request code, who approved it, when, and which checks it passed.
The result
The scripted run passed all 20 of its checks. The demo is set up to run on Cloudflare, where every visitor gets their own city and Passbook and can connect their own assistant to try the six situations.
Related writing
Tallmere's 311 service follows the Open311 GeoReport v2 standard ↗.