CivicLens.
A source-grounded civic intelligence instrument: it turns a public-meeting record into inspectable decisions, commitments, deadlines, geographic context, and resident next steps.
A civic record you can interrogate, claim by claim.
CivicLens is a research instrument for public-meeting records. It takes a single meeting and produces a structured set of claims — decisions, commitments, proposals, deadlines — each tied to the moment in the record where it originates, each carrying its own confidence, uncertainty, and challenge history.
The design commitment is that nothing appears in the resident-facing brief unless a reader can trace it back. Where the record is ambiguous, the instrument is expected to say so rather than resolve the ambiguity on the reader's behalf.
Research question. Can a bounded multi-agent instrument convert a public-meeting record into decisions, commitments, deadlines, and geographic context that a non-expert resident can verify at the source — without inventing certainty the record does not contain?
How the instrument arrived at CL-0.1.
The idea surfaced while I was working through Spark Signal Radar. Municipalities already publish an enormous amount: agendas, minutes, recordings, ordinance packets. The bottleneck is not publication — it is that a resident cannot cheaply tell what was actually decided, who committed to what, by when, and whether it touches their block.
The first honest constraint was taxonomic, not technical. Most summarization treats a meeting as one undifferentiated blob of text. I needed the instrument to separate a discussion from a decision, a decision from a commitment, a commitment from a proposal, and a proposal from a deadline — and to refuse to upgrade one into another when the record does not support it.
I moved from summary output to a claim record: timestamp, speaker or body, action, affected area, procedural state, confidence, uncertainty, official source pointer, challenge note, and resident disposition. If a field cannot be grounded in the record, it is marked unresolved rather than filled in.
A single model asked to do everything blurs extraction, inference, and advice. I split the work into seven narrow roles — Record Clerk, Decision Extractor, Geographic Grounder, Impact Analyst, Process Sentinel, Civic Challenger, Brief Synthesizer — so that each contribution is attributable and separately criticizable.
Verified claims are connected to neighborhoods and named locations so a resident can read the record spatially. The design rule is that grounding never detaches a claim from its source moment: the map is an index into the transcript, not a replacement for it.
CL-0.1 ships playback simulation, visible agent activity, mapped outcomes, a claim inspector, full trace, human disposition controls, and JSON export. The meeting, transcript, map, people, and deadlines it contains are synthetic. It is a research instrument, not a civic service.
Architecture: record in, traceable claims out.
The protocol is deliberately linear and inspectable. Each stage adds one kind of information and leaves the previous stage's output intact, so a reader can open any claim and walk backwards to the utterance that produced it.
Nothing in the final brief is allowed to exist without that invariant. A claim that loses its pointer is treated as a defect, not as a stylistic simplification.
Seven bounded roles, each separately criticizable.
Responsibilities are bounded on purpose. When one general assistant performs extraction, inference, and recommendation at once, a reader cannot tell which part failed. Narrow roles make failure attributable.
Segments the record into utterances with timestamps, speakers, and procedural markers.
Boundary — Never interprets meaning; only establishes what was said and when.
Proposes candidate decisions, commitments, proposals, and deadlines with a record type.
Boundary — May not assign geography, impact, or advice.
Links a verified claim to named locations and neighborhoods present in the record.
Boundary — Abstains when the record does not name a place; never infers a resident's address.
Describes who or what a claim plausibly touches, stated as an interpretation.
Boundary — Labeled as inference and never promoted to the status of an extracted fact.
Tracks procedural state — motion, second, vote, tabled, continued, referred.
Boundary — Does not judge whether procedure was correct or lawful.
Files challenge notes against weak, ambiguous, or over-stated claims.
Boundary — Can downgrade or flag a claim; cannot silently delete one.
Assembles surviving claims into a resident-readable brief with source pointers.
Boundary — May only use claims that carry a source pointer and a disposition.
The claim record.
Every field below is either grounded in the record or explicitly marked unresolved. There is no default value that quietly implies certainty.
Walkthrough of CL-0.1.
The public prototype opens on a synthetic municipal meeting. Playback advances the record while agent activity appears alongside it, so the reader watches claims being proposed, grounded, and challenged rather than receiving a finished summary.
A synthetic meeting advances through its record; agent activity is timed to it.
Shows which role contributed what, in order, including abstentions.
Verified claims plot against neighborhoods present in the synthetic record.
Opens a single claim with all taxonomy fields and its source pointer.
Walks a claim backwards through every role that touched it.
A reader marks accept, question, dispute, or follow — recorded with the claim.
Exports the claim set with dispositions for external inspection.
A local playback and interface demonstration only; it does not replace the bundled record.
Planned protocol — no results are claimed yet.
Everything in this section is a planned measurement design. CL-0.1 has produced no empirical results, no accuracy figures, and no user study findings. Nothing below should be read as an outcome.
Planned ablations
Expected effect: higher unsupported-claim rate and fewer downgrades.
Expected effect: lower comprehension and longer time to action.
Expected effect: reduced verification behavior, higher misplaced trust.
Expected effect: blurred attribution, more record-type confusion.
Expected effect: fewer unresolved fields, more fabricated confidence.
Boundaries of this release.
- The CL-0.1 meeting, transcript, map, people, and deadlines are synthetic.
- It does not analyze live video.
- It does not provide official guidance.
- It does not automate civic participation.
- Upload selection is a local playback and interface demonstration and does not replace the bundled record.
- It does not infer identity and does not guarantee deadlines.
- Human review and official records retain authority.
I am also explicit about what has not been established: there are no measured accuracy results, no pilot partners, no production integrations, and no user population. The instrument exists to make a design argument inspectable, and to be criticized on that basis.
Next experiments.
- 01Build a human-coded reference set over the synthetic record so decision precision and recall become measurable at all.
- 02Run the record-type confusion study: how often does a discussion get promoted to a decision under each configuration?
- 03Test abstention explicitly by seeding the record with statements that genuinely lack a place, a date, or an actor.
- 04Run a small comprehension protocol with non-expert readers, measuring restatement accuracy and time to locate a source.
- 05Execute the four ablations against the same reference set before making any claim about the value of bounded roles.
- 06Only after the above: evaluate whether a real, published municipal record can be handled without weakening the source-pointer invariant.
Everything published alongside System 002.
Fatima Aguilar — Decision Systems Lab. CivicLens CL-0.1, 2026. Written as a working research notebook; revised as the instrument changes.