Composite study

This is a product-class write-up, not a named-client story and not a results press release. Counts below describe the pack we actually write (approach points, tools, layers) — not invented bug totals or conversion lifts.

4
Approach points
4
Tools in the pack
4
Layers covered
3
Challenges documented

Overview

Order-status lookups worked. Policy questions hit stale help-center chunks and then the model’s general “good CX” prior.

The copilot also issued refunds through a tool with no amount cap when the user said “as we agreed in chat.”

Industry pattern this is grounded in

Air Canada’s chatbot invented a bereavement fare process; the tribunal held the airline responsible for website information, chatbot included. Retail return policies are the same commitment class.

Highlights

Typical launch bar: Wait until journeys and evals agree — do not ship on demo scores alone.

Challenges

01

Help center had three conflicting return pages (EU, US, outlet).

02

The model treated an expired promo banner as live.

03

Guest vs logged-in carts merged into another customer’s lines after account switch — a tenancy bug next to the LLM work.

How we tested

01

Policy answers cite the current help article. Conflicts between articles fail the case.

02

Refund/cancel tools use the same authorization as a human agent, with confirmation and caps.

03

Money path in Playwright: search → PDP → cart → pay → order visible.

04

Promo claims must match the cart engine.

Starting point vs what we required

Starting point versus the controls we required
Starting pointWhat we required
Help center had three conflicting return pages (EU, US, outlet).Policy answers cite the current help article. Conflicts between articles fail the case.
The model treated an expired promo banner as live.Refund/cancel tools use the same authorization as a human agent, with confirmation and caps.
Guest vs logged-in carts merged into another customer’s lines after account switch — a tenancy bug next to the LLM work.Money path in Playwright: search → PDP → cart → pay → order visible.

What we delivered

01

Journeys / UI

  • Playwright — Checkout, returns, guest cart merge
02

Adversarial evals

  • Promptfoo — Invented policy and social-engineered refunds
03

LLM traces / evals

  • LangSmith — Which help article was retrieved
04

API / contract

  • Postman — Refund tool authz and PSP webhooks

Outcomes

Region-aware retrieval and a “no policy statement without a citation” rule. Refund tool required the same role as human support.

We would not ship policy evals green while guest-cart merge was red. Both were in the launch pack.

Stack

Testing stack used on this product class
LayerToolWhat we validated
Journeys / UIPlaywrightCheckout, returns, guest cart merge
Adversarial evalsPromptfooInvented policy and social-engineered refunds
LLM traces / evalsLangSmithWhich help article was retrieved
API / contractPostmanRefund tool authz and PSP webhooks

Same method as the rest of our work: severity-ranked findings, pass rules in writing, and a ship / wait / block call. See the evaluation method and tool comparison.