About
When a changeset is flagged, somebody has to look at it, usually with many more waiting. This tool does the tedious part and leaves the part that needs judgement.
What it is
It collects the evidence for one changeset, asks a small decision model ten yes or no questions about it, shows every answer, suggests a lane, and drafts a comment a reviewer can edit.
What it never does
It never writes to OpenStreetMap. The HTTP client only knows how to read, and a check in the build fails if that changes. The one exception is the sign-in exchange with OpenStreetMap, which asks for read-only access to your user name.
It never hides a case. Lanes put the queue in an order, and every lane is shown with its count. It never closes or posts anything by itself.
Rules read parsed facts such as counts, ages and coverage. A model answer can make a lane more cautious and never less.
What the demo set shows
Fifteen real changesets from India, Kenya, Germany and Mexico, each read by the Strands Decider 2B on 20 October 2026. These figures are counted from the saved runs, not typed by hand.
15
real changesets, each with a place and the mapper's own words
10
questions answered for every one, every probability shown
0.65 s
median model time per changeset on one small GPU
26 of 150
readings came back as cannot tell, and none of those raised an alarm
3
lanes used, so the queue is ordered and nothing is hidden
0
writes to OpenStreetMap, by design and checked in the build
The scorecard
The test on 60 edits
Yes or no answers the tool got right
353 of 413
0.85 (0.82 to 0.89)
Share of its answers, when it gave one, that matched the answer key.
The same score with no tool at all
450 of 528
0.85 (0.82 to 0.88)
Always giving each question its most common answer.
Answers of “cannot tell”
115 of 528
0.22 (0.18 to 0.25)
The tool saying it is not sure. This is the cautious answer.
Naming the kind of edit
23 of 60
0.38 (0.27 to 0.51)
Against the plain rules alone: 21 of 60.
Measured on 60 real edits. The answer key for every one was written by an AI, in two passes, and settled by the same AI. No person wrote or checked it, so these figures are indicative and not human validated.
How to read it
What we can say: it answers about as accurately as always guessing the commonest answer, it says cannot tell when it does not know, and it names the kind of edit a little more often than the plain rules do.
What we cannot say yet: that it beats a person. The answer key was written by an AI, and the gap on naming the kind of edit is small. The next step is an answer key written by volunteers.
What it cannot do yet
The scorecard above was marked against an answer key written by an AI, with no person checking it. Please read it as a first look, not as proof.
Our sample has no clear example of deliberate damage, so we cannot say whether the tool would catch one. A second set of edits was put aside for a fair final test, but it has been run once without answers, so it is no longer completely fresh. A reviewer who wants to help can check the answer key.
Run it yourself
Try it on sample data with no special hardware and no cloud account.
git clone https://github.com/yogeshselvarajan/changeset-second-opinion.git
cd changeset-second-opinion/backend
uv sync --frozen
uv run cso db upgrade
uv run cso seed
uv run cso apiThen run npm ci and npm run dev in the web folder. The README has the full steps.
Independence
Changeset Second Opinion is an independent open source tool for OpenStreetMap reviewers. It is not endorsed by, sponsored by or affiliated with the OpenStreetMap Foundation. OpenStreetMap is a trademark of the OpenStreetMap Foundation, used under its trademark policy.
Who built it
Made by Yogesh Selvarajan, as one developer, for the AWS Agent Experience Hackathon. AI coding assistants helped write the code, and every decision about what the tool should and should not do was made by a person. You can reach Yogesh on LinkedIn, on AWS Builder Center or at yogeshselvarajan@gmail.com.