The problem

The client is a civic information service used by residents who want to know what a public body is scheduled to discuss, what a published notice says, and where to read it. Staff were answering from the agenda packet, the notice, and the public register. The questions repeated. The risk in answering faster was inventing a clause the packet did not contain, or sounding like the institution had taken a position it had not published.

The scope was written down at the start, because the same tools are sometimes asked to do something else. This system does not take a voter file, does not score residents, and does not draft persuasion. It answers from documents the institution has already published, with the document attached.

Why the published record is the whole product

A civic answer that cannot be opened beside the agenda is a rumor with a confident tone. The requirement was a citation to the agenda, the notice, or the register, and a refusal when those documents do not address the question. Refusal is a successful answer. Filling the gap is not.

Architecture

Only published documents are indexed

The corpus is the agenda packet, the public notice, and the register entries the client already posts. Drafts, staff notes, and anything not published are not ingested. A question about an unpublished draft is refused, even if someone pasted the draft into the chat.

The citation is checked before release

Each answer names the document and the section. An answer with no matching passage is not shown. The resident sees the passage, not a paraphrase standing alone.

No person-level political data

There is no voter file, no party field, and no demographic append. The system does not know who is asking beyond the question text. We did not build a slot for those fields, so a later request cannot turn the feature on quietly.

The institution's voice stays with a person

The assistant does not issue a statement for an office. If the resident asks what the office 'believes,' and the published record does not say, the answer is that the record does not say. A person publishes anything that speaks for the institution.

A design decision worth calling out
We declined a request to rank which residents should be encouraged to attend. That is targeting, and it was outside the written scope. The pilot continued as a question-answering tool over public documents. Attendance is the resident's decision.

Challenges and tradeoffs

Results

On the held-out questions, 93% of answers the assistant released cited a passage a reviewer found in the published document. The rest were refusals. The system has no voter-file field and no persuasion generator, which we verified by inventory, not by a promise in the prompt. A person still publishes anything that speaks for the institution.

Residents with a question the packet does not answer get told that, which is the result the clerk asked to be able to stand behind.

What we'd do differently

We would have put substituted-agenda updates in the first pilot week. The morning file felt current until the first substitution, which is a normal clerk workflow we had treated as an edge case.