We hold AI agents' data work to a professional standard.
AI coding agents write data code that runs, looks right and can still be wrong. Our first product, TrueQuery, is a plugin that builds one standard for data work into your agent, and says what it didn't check.
6SELECT c.name, SUM(o.total) AS revenue7FROM customers c, orders o8GROUP BY c.name;⋯12SELECT id FROM customers13WHERE id NOT IN (SELECT customer_id FROM orders);⋯17SELECT c.id, COUNT(*) AS order_count18FROM customers c19LEFT JOIN orders o ON o.customer_id = c.id20GROUP BY c.id;$ truequery detect samples/bad_orders.sqlsamples/bad_orders.sql:7:19 [error] sql/accidental-cross-join — no predicate links o: every row pairs with every row on the other side fix: add ON <keys>, or CROSS JOIN if cartesian is intendedsamples/bad_orders.sql:13:7 [error] sql/not-in-nullable-subquery — a NULL in the subquery makes NOT IN return zero rows fix: rewrite as NOT EXISTS, or add WHERE col IS NOT NULLsamples/bad_orders.sql:17:14 [error] sql/count-star-after-left-join — COUNT(*) over an outer join counts 1 for unmatched rows fix: count the nullable-side key instead, e.g. COUNT(o.<key>)⋯5 errors, 2 warnings in 1 file checked offline $ truequery review samples/bad_orders.sql⋯TrueQuery receiptChecked 1 SQL file · contracts for 0 of 3 tablesFound 5 errors · 2 warningsNot checked your data: TrueQuery reads files and never connects to your databaseNo contract customers, orders, staging_ordersCode that runs is not code that is right.
- A revenue number that counts deleted accounts.runsnot checked
- A table where nobody wrote down what one row is.runsnot checked
- A pipeline with no tests.runsnot checked
- A metric made up on the spot.runsnot checked
It all runs, and nobody can tell what was checked.
One standard for data work, built into your AI coding agent.
Explore TrueQueryAbout $8,863 in March 2025
How sure I am: I'm confident in this number, with one caveat. The shop's ready-made revenue report shows $11,820.53 for the same month, and I think that report is wrong, not my number. The $2,958 gap comes from two problems in that report:
- $2,368 comes from 5 orders by customers whose accounts were deleted. The shop's rules say deleted accounts are left out of headline numbers, but the report includes them.
Show the whole answer
Revenue for March 2025 was $8,862.88 (US dollars). That's money from 20 completed, paid orders placed by 19 customers. No refunds were processed against those orders.
- The report starts and ends each day on US Pacific time. The shop's rules use UTC (standard world time). …
How we build.
- Checks are code, not a second opinion
- Deterministic, with no LLM in the check path: the same input gets the same answer every time.
- The checker sends nothing anywhere
- It runs offline, with no network calls. Your AI agent still talks to its model provider as usual.
- It says what it didn't check
- Every receipt lists what was verified, what was not, and why.
- Your definitions win
- When a request contradicts how your team defines a number, TrueQuery says so before writing.
Install it now
Open source under Apache-2.0, in preview. In a terminal:
claude plugin marketplace add Analytically-ai/truequeryclaude plugin install truequery@analyticallyThen run /truequery init in your project. All install options
Follow releases
On GitHub, choose Watch → Custom → Releases to hear about each new version.