Voice¶
Voice is a privacy-first civic participation service. A resident talks privately about a local problem, checks what Voice understood, decides exactly what to share and with whom, and later hears what was done about it. A representative sees shared, source-backed issues and records what they will do, with a date, an authority and an owner. Anyone can read and search the public issues without an account. A participant can have their personal data erased, and the public issue stays. It is an ankka application, and it keeps its evidence in ankka-reasoning.
This is a demonstrator for a pilot: synthetic data, invited participants, one area.
The seven things it does¶
- Hear. A participant starts a session with an invite code and no name, email or verified identity. They talk to Voice about a concern. Voice proposes a structured reading of what they said: the problem, where, when, who it affects and how. The participant edits it, confirms it or discards it. Nothing they said leaves the conversation at this point.
- Share. For a confirmed concern, the participant writes or approves the exact text to share and picks one of four modes: private, de-identified, for representatives only, or publicly under a name they choose. A reviewer checks the text, with an automatic privacy check that flags distinctive circumstances, health, minors and small groups. An approved text joins a shared public issue.
- Understand. An issue links evidence from cited sources, each with its state: candidate, accepted, rejected or superseded. Questions show their competing explanations, and what is not known is said.
- Deliberate. Participants say how much an issue matters to them and which trade-offs they would accept. These are opinions, shown apart from evidence, as counts with their method and a caveat. A count below the suppression threshold is not shown.
- Act. A representative opens an investigation, records a dated action with its authority, owner and rationale, and later a decision and an outcome. Each is public, with who recorded it.
- Return. A participant who follows an issue gets one update in their inbox for each material development: what was recorded, why they are told, and links to the record. The update never says a problem is solved unless the record does.
- Erase. A participant can ask for their personal data to be erased. Their key is destroyed, so every protected field becomes unreadable everywhere; their private records are deleted; a de-identified text they published stays on the issue with no link to them. A participant with no session for the dormancy period is erased the same way.
What it is not¶
It is not a poll, a petition or a vote. It does not say how many people agree, weight responses or infer demographics. It sends nothing in a representative's name and decides nothing. The AI in it replies, proposes and suggests; people confirm, approve, record and decide. The full list is on Limitations.
The example¶
Every page uses one example: the issue "Rural school bus withdrawal", from the seed pack the repository ships. The Route 14 school bus between Kingsway and Northfield was withdrawn at the end of March. The council's route review says it carried eleven pupils a day; the parents' survey says twenty-three. Both are accepted evidence on the hypothesis that the route was withdrawn because too few pupils used it, one supporting it and one opposing it, so a reader sees the contradiction. A second question, whether the ring road safety works will be finished before the new school term, has no evidence, so Voice abstains. Every source in the pack is fictional and says so.
Where to start¶
- Trying it. Run it on your machine starts the service, the
interface, the reasoning service and a staff identity provider; Your first issue
walks the loop from a session to an erasure with
curl. - Understanding it. How Voice works is the overview. The loop, Five audiences and Sealed fields and erasure are the three ideas everything else follows. Opinions apart from evidence, Nothing waits for a model and Voice and the reasoning service complete the model; Threat model says what was considered.
- Using it. One page per stage of the loop, from Sessions to Erasure, each with the routes it uses; The interface for the web app; The seed pack and Testing for the material and the suites.
- Running it. Deploy on ankka and Operate the pilot.
- Looking something up. The HTTP API, the refusals, the records, the configuration and the glossary.
- Checking what is missing. Limitations.
For models and agents¶
This documentation is published in forms a model can read directly. llms.txt at the site root lists
every page with a one-sentence description, llms-full.txt holds every page in one file, and each page
is also served as Markdown at its own path with a .md suffix. The same pages are rendered as an agent
skill, voice, in
the repository.