Symphony Apps Development logo — teal interlocking S monogram beside the studio wordmark
All writing

An audit of someone else's AI feature

We were brought in to review a model-backed feature another team had shipped. The problems were mundane and entirely avoidable, which is the useful part.

Category
Case notes
Reading time
6 min
Published
27 May 2026
Topics
AI, Case study, Quality

A client asked us to review a document-summarisation feature built by a previous team, after users started noticing summaries that confidently described things the source document did not say. Nothing about the fix was exotic, which is worth saying plainly.

What we found first

The feature had no grounding check. The model was asked to summarise a document and given free rein over the wording, with no mechanism verifying that any claim in the summary could be traced back to the source text. It behaved exactly as a model does under those conditions: fluent, confident, and occasionally wrong in a way that read as authoritative.

The fixes were unglamorous

  • Extractive anchoring — the summary now has to reference specific passages it draws from, and those passages are checked to exist in the source document before the summary is shown.
  • A confidence-adjacent flag, not from the model itself but from the grounding check: any summary sentence that could not be matched to source text is marked for review rather than shown as fact.
  • A test suite built from real, previously-flagged bad summaries, run against every change to the summarisation prompt going forward, so a fix could not silently regress.

What was not the problem

The model itself. We did not need a larger or more capable model to fix this — the underlying model, given a grounding constraint it did not previously have, was accurate on the same documents that had produced bad summaries before. The gap was architectural, not a matter of model quality.

Most of the AI feature failures we get asked to fix are not model failures. They are the absence of a check that would have been unremarkable to build if anyone had scoped it as part of the feature.

Why nobody caught it before shipping

The original team had tested the feature against documents chosen because they summarised cleanly. The bad cases only appeared with dense, ambiguous or contradictory source material — exactly the documents a busy user is most likely to want summarised, and exactly the ones most absent from a quick pre-launch test pass.

What we told the client to watch for next time

Any feature that turns unstructured model output into something a user reads as fact needs a grounding or validation step considered from the start, budgeted as part of the feature rather than added afterwards as a patch. It is far cheaper to build in the original sprint than to retrofit once users have already seen the wrong version.

Tell us what you’re trying to ship

A first call is thirty minutes and costs nothing. Bring the problem, not a spec — working out what to build is the part we are good at.

Or email office@symphonyapps.ro. We reply within one business day, in English or Romanian.