The governance layer above the government chatbot
A wrong answer on a city's .gov domain carries the city's imprimatur. CivicCite releases a citizen answer only when it carries a statute that exists, is in force, is entailed by the cited text, and is conflict-free. Otherwise it abstains, escalates to the right department, and files a record. The agents advise; the gate decides.
0 / 12
Answers released without a verified, in-force statutory basis
Target on the fixed 12-query golden set
100%
Statutory Decision Record coverage
One filable record per query, ship or refuse
4
Gate conditions, all required to release
Exists, in force, entailed, conflict-free
This is a runnable demo on a synthetic-but-faithful corpus of 12 municipal-code provisions. Municipal-code ingestion and the 311 escalation connector are simulated; the deterministic gate and the record run exactly as shown. Not legal advice.
The failure mode CivicCite is built to close.
Government chatbots give citizens confident legal answers that are wrong, and every wrong answer carries the city's imprimatur. NYC's MyCity bot, launched in October 2023, was documented by The Markup (March 2024) telling landlords they could refuse Section 8 vouchers, businesses they could go cashless, and employers they could pocket worker tips. Every one of those answers was illegal.
Adding retrieval does not fix it. Stanford and JELS researchers (Magesh et al., 2025) measured Lexis+ AI at 17 percent and Westlaw AI-Assisted Research at 33 percent hallucination. Retrieval pulls the statute; generation still misreads or overrides it. The dangerous case is not a made-up citation. It is the right statute cited with the wrong conclusion stated, or a repealed provision cited as if it were still live.
The exposure is real and growing. There are 78 chatbot bills across 27 states in 2026, New York's S7263 reached the Senate floor on 26 February 2026, and the EU AI Act Annex III high-risk obligations become enforceable on 2 August 2026 with penalties up to 15 million euros or 3 percent of turnover. Government legal advice sits in the proprietary-function zone, so there is no sovereign-immunity shield. The durable requirement is not a better model. It is proof, to a regulator, that every released answer traces to live law.
LLM agents advise. Deterministic code outside the agent framework decides what is released. An LLM cannot vote itself past the gate.
Each citizen query runs left to right: Decompose, then Retrieve, then Draft, then Verify, then the gate, then the record. Decompose (LLM, advisory) splits the query into atomic legal sub-questions. Retrieve (deterministic, no LLM) walks a curated municipal-code knowledge graph with lexical search and hierarchical traversal of cross-references, and each candidate carries its citation id, text, effective date, repeal date, penalty, and agency. Draft (LLM, constrained) proposes a claim plus a citation drawn only from the retrieved set, enforced by an allowlist validator and one re-ask.
Verify runs three checks per drafted claim, and the gate combines them with a citation-exists condition. It releases a sub-answer only when all four hold.
The cited citation id resolves to a real provision in the municipal-code graph. A drafted answer cannot invent a section number that is not in the retrieved set.
Deterministic: the provision has no repeal date and an effective date at or before the as-of date. A repealed or not-yet-effective provision can never back a released answer.
Advisory LLM check: does the cited text actually support the claim, returning entailed, contradicted, or neutral? This catches the right statute cited with the wrong conclusion stated.
Deterministic: it reads conflicts-with edges in the graph, independent of the entailment verdict, so two provisions that contradict each other do not silently produce a released answer.
The Statutory Decision Gate is deterministic Python that lives outside the agent framework. It releases a sub-answer only if the citation exists and the provision is in force and the cited text is entailed and there is no conflict. Otherwise it holds the sub-answer, marks it outside verified coverage, and routes it to the correct department. Per query it aggregates to one of three dispositions: RELEASED, PARTIAL, or REFUSED and ESCALATED.
For every query, ship or refuse, a deterministic writer emits a Statutory Decision Record: the sub-questions, the four checks and their verdicts, the citation, the disposition, and the escalation target when something was held. That is the artifact a Law Department and a regulator can act on, and it is why the durable metric is provable non-release, not a hallucination rate.
Currency as-of 2026-06-17. Every image below is a screenshot of the running app.
A landlord asks whether they can refuse a tenant who would pay rent with a Section 8 voucher. The standard assistant ships the confident, illegal "yes." CivicCite drafts a "yes" too, but the entailment check reads it as contradicted by NYC Admin. Code section 8-107(5), which makes source-of-income discrimination unlawful (NYC Commission on Human Rights, civil penalties up to 250,000 dollars for willful violations). The gate blocks the draft and releases the correct citation-backed "No" instead, marked verified, entailed, and in force. The left panel is a plain retrieval chatbot with no verification gate; the right panel is CivicCite running the full pipeline.
Any stage is clickable for its raw input and output. The Verify stage shows the drafted claim and its citation id going in, and the entailment verdict coming out: entailed, with the reason quoting the exact provision language about refusing to rent because of a lawful source of income that includes Section 8 housing vouchers. This is the check that separates the right statute cited with the right conclusion from the right statute cited with the wrong one.
A food-truck operator asks about parking all day at a metered space under the general vendor parking rule. The only provision that would address it has been repealed, and no provision currently in force governs the question. The currency check fails, so CivicCite does not synthesize an answer. It withholds, routes the question to NYC 311 general intake with the partial findings attached, and returns the disposition REFUSED and ESCALATED. Honest abstention beats a confident wrong answer.
Every query, ship or refuse, produces a Statutory Decision Record. It captures the sub-question, its domain, the drafted claim and citation, the four checks with their boolean verdicts, the decision, the entailment label, and any hold reason or escalation target. It also names the standards it maps to, NIST AI RMF governance and measurement logging and FedRAMP and StateRAMP continuous monitoring, as an alignment direction rather than a certification.
The corpus is 12 provisions across 7 titles, currency as-of 2026-06-17. In-force nodes are green, the one deliberately repealed node is red and dashed, and cross-reference edges are shown so retrieval traversal is visible. Run over the fixed 12-query golden set (the four documented MyCity failures, a multi-domain food-truck case, a repealed-only trap, and a no-coverage trap), the app reports 0 of 12 answers released without a verified, in-force statutory basis, 100 percent audit-record coverage, and 100 percent disposition agreement with the labeled ground truth. We attribute those figures to this labeled golden set, never as an open-world guarantee.
The same split screen the demo compares against, side by side.
| Dimension | Standard chatbot (the MyCity architecture) | CivicCite Statutory Decision Gate |
|---|---|---|
| Who decides what is released | The LLM ships what it drafted | Deterministic Python gate outside the agents |
| Right statute, wrong conclusion | Ships intact | Caught by the entailment check |
| Repealed provision cited | Ships intact | Caught by the currency check |
| No statute covers the question | Synthesizes an answer anyway | Abstains and escalates to the department |
| Audit trail | None | A Statutory Decision Record per query |
| Provable non-release | Not measured | 0 of 12 on the labeled golden set |
No. CivicCite is not a chatbot and not a municipal-code search engine. It is a governance layer that sits above the chatbot platform, the piece the cloud AI services and GovTech vendors do not have. A deterministic Python gate outside the agent framework releases a citizen answer only when its citation exists, is in force, is entailed by the cited text, and is conflict-free. The chatbot in the demo is a synthetic prop; the gate is the product.
The LLM only advises. It decomposes the question and drafts a claim with a citation drawn only from the retrieved set. Then deterministic code checks that the cited statute exists, is in force as of the effective date, is entailed by the cited text, and carries no conflict, and the gate releases only if all four hold. On the real MyCity Section 8 voucher query, the drafted "yes" is caught by the entailment check as contradicted by NYC Admin. Code section 8-107(5), and the gate releases the correct citation-backed "No" instead.
Retrieval improves the draft, but it cannot prove the answer is safe to release. Stanford and JELS researchers (Magesh et al., 2025) measured retrieval-backed legal AI still hallucinating, at 17 percent for Lexis+ AI and 33 percent for Westlaw AI-Assisted Research. Even with a perfect model, a government must prove to a regulator that every released answer traces to live law. That proof is a property of a deterministic gate and a filable record, not of a stronger writer.
Every query produces a Statutory Decision Record, ship or refuse, so audit coverage on the golden set is 100 percent. Each record captures the sub-questions, the four checks with their verdicts, the citation, the disposition, and where an unanswered part was escalated. The headline a regulator can act on is not a hallucination percentage. It is that answers released without a verified, in-force statutory basis can be shown to be zero, backed by a record for every interaction.
It is not certified, and we do not claim to be. The regulatory framing is alignment and direction, not certification. The Statutory Decision Record is designed to map to NIST AI RMF documentation and to FedRAMP and StateRAMP continuous-monitoring logging, so the artifact a compliance team needs is produced by default. The FedRAMP or StateRAMP authorization boundary is inherited from the hosting environment and is out of scope for a local demo.
It is a runnable demo that proves the mechanism, not a deployment, and it is not legal advice. The corpus is a synthetic-but-faithful demo graph of 12 provisions: the operative text is paraphrased from real referenced provisions of the NYC Administrative Code, NY Labor Law, and NYC Health Code, with realistic labels, agencies, penalties, and dates. Municipal-code ingestion and the 311 escalation connector are simulated; the deterministic checks, the gate, and the record run exactly as shown.
The research behind this demo — the architecture, the verification design, and the enterprise blueprint.
Full solution
Explore the Government AI That Cites the Law solution →The proof that every answer traces to live law is the hard part. We build it.
If your agency is weighing how to give citizens AI answers without shipping a wrong one under the city's name, we would genuinely like to hear how you and your Law Department are thinking about it. The problem is spreading across states, and the answers will be too.