Case study  /  Product build

An AI copy editor that deploys into your cloud, not a vendor's

Newsrooms need house-style enforcement and cited fact-checking at deadline speed, and increasingly need the AI to run inside their own infrastructure. StyleProof is a copy-desk tool built around exactly that constraint.

Working build, verified in a customer's cloud
  • Host-agnostic engine
  • Eval gate in CI
  • Verified in a customer's Bedrock
StyleProof case study card

The engagement

Challenge

Two mechanical jobs, under deadline, on someone else's cloud

Enforce a house style guide and check that a story's claims hold up: both slow, both error-prone. And media companies increasingly want the AI to run inside their own cloud, not a vendor's, which most tools are not built to do.

Action

A portable engine with a quality gate

A host-agnostic verification engine with zero HTTP or UI knowledge (enforced by a lint rule, not a convention), models and search behind swappable interfaces, a tiered agentic fact-checker, and a streaming review UI where a human accepts or rejects each item. Quality is gated in CI against a committed eval baseline.

Result

The portability claim stopped being a design goal

The same build was containerized and stood up inside a media customer's isolated AWS, on their Bedrock through an IAM role with no API keys, behind their SSO. Verified there end to end: it contradicted a planted false claim with citations, and when a real production symptom appeared (interrupted streams on slow fact-check runs) the fix was measured and re-verified under load. Clean-room, so it is mine to show and to sell.

How it is built

The shape that makes it portable

Document in
normalized article plus tenant config
engine
Verification engine
no HTTP or UI, lint-enforced
stream
Review UI
typed event stream, one item at a time

Models and search sit behind interfaces, so the same engine runs on a demo host or in a customer's isolated account.

  • 01Engine purity. A lint rule fails the build if anything in the engine imports a framework or transport.
  • 02Model map. Per-task models resolved through a ModelMap with no model ids in code at all; each deployment supplies its own five task models as configuration, all through Bedrock.
  • 03Search interface. Tavily behind a SearchProvider, swappable per tenant.
  • 04Skeptic panel. High-consequence verdicts get a second adversarial pass: three skeptic lenses that can escalate a claim to needs-human review but can never upgrade a verdict or invent confidence.
  • 05Eval gate. npm run eval fails on F1 or fact-status accuracy dropping more than 5 points, cost per article rising more than 25 percent, or any blacklisted false positive.
  • 06Reviewed baselines. Regenerating the baseline prints an old-to-new diff that is the review artifact in the pull request, so a ratified regression is never silently absorbed.

What it proves

The eval gate answers the hardest question about shipping AI into a customer's cloud: when you swap a model per tenant, how do you know you did not make it worse.

See the rest of the work →

Clean-room reimplementation from public knowledge. Fixture articles are invented, not any real newsroom's copy. The customer deployment is described without identifying the customer.