In 90 seconds
What was built, why it matters, how it works, what was decided and what was measured. Everything below this section is the deep dive.
What I decided
Four choices that shaped the system. Pick one to compare the road taken with the road not taken.
The problem, and why it is a good one for AI
A garment factory quotes by hand. An estimator reads what the buyer sent — PDFs, spreadsheets, sketches, size charts, the email thread — and works out fabric, cut pieces, processes, trims and freight for every style. Inquiries arrive far faster than a small estimating team can answer them, and an unanswered inquiry is an order that goes elsewhere.
The hard part is not that the inputs are unstructured. It is that they are usually incomplete (no size chart, no process note), often contradictory (the email says one fabric, the tech pack another), governed by layered cost rules (area from the size-chart rows, surcharges per process, trims by count), and the answer must satisfy strict business constraints — units, rounding, minimums, the customer's own conventions. Uncertain inputs, exact outputs.
The product
One inquiry travels through the eight stages in the product's left rail (the agent timeline inside shows its five attributed steps); the agent does the reading and the rules do the arithmetic. These are the real screens of the working product, with client names, codes and prices replaced and the clients' styles swapped for stand-in garments. The interface is in Chinese; each caption says what the screen does.

Interface, recorded
Two short recordings from the working interface. The library is designed so that fabric is the only thing with texture and the agent is the only thing that glows; everything else is white, black and one accent.
Try it: a deterministic demo on synthetic data
This is not connected to the production backend. It reproduces the system's behaviour — evidence before facts, explicit unit conversions, seam allowance kept separate, conflicts held for a person, every number traceable — on a made-up inquiry with made-up prices.
Inquiry documents (synthetic)
Half measurements are stated as such on purpose: the demo must double them exactly once, visibly.
Fields the model proposed, each tied to its evidence
Hover a field to see the source line it came from. Dashed blue = read by the model; solid black = checked against the document; amber = two sources disagree.
What the rules do with those readings
Cost lines — click any number to see where it came from
Independent review, then delivery
A second pass that did not see the first pass's reasoning re-derives the mechanical checks from the documents and the computed rows.
Prices, rates and the style are invented for this page. In the real system the costing rules, price libraries and customer terms are the company's own and are not shown.
Under the hood
Click a node. Each one carries a decision — why it is where it is, and what it would cost to put it somewhere else.
Why a hybrid, not a pure agent
A single agent that reads the documents and writes the quote would have been the fastest thing to build. It was rejected because a model that produces the final number makes the result hard to reproduce, the process hard to audit and the cost hard to bound — and ties the product to one vendor. Three rules have held since the first persistent version: no unconfirmed model output enters a formula; nothing silently defaults; every number is traceable to its source.
One annotation's journey
A note on a sketch pointing at a sleeve becomes a line in the quote like this: the model links the annotation to the part it points at and to any matching text in the documents; the process is written into a structured field with its source; the rule for that process computes its cost line; and if the drawing and the text disagree, the item is held for a person. The working convention for that last step — structure follows the drawing, fabric follows the text — is itself a rule the business set, not something the model decides.
Engineering and evaluation
Every keyword below corresponds to something that exists in the system. If it did not, it would not be here.
How accuracy is measured
Judgment: what closes, what stays open
Two reviewed orders, two opposite outcomes. Together they are the clearest statement of the design principle: a reliable AI system is not one that removes all uncertainty, but one that knows which uncertainties system constraints can close and which must stay with the business.
Body and rib fabric read as one
The parser merged two adjacent fabric lines — jersey for the body, rib for the trims. The waste allowance changed and the quote moved by about one cent. It was reproducible and had a definite cause, so it became structure: every fabric field now carries the garment part and the source location it came from, and comparable real orders were re-run as regression cases.
Embroidery the business counts as a woven badge
The documents said embroidery; the estimating team prices that decoration as a woven badge and asked to keep the system's reading and adjust by hand. No rule was added. The convention belongs to this customer and this team; a hard rule would be wrong on the next one. The item is flagged for human confirmation and the adjustment is recorded with its reason.
Only reproducible errors with a definite basis are turned into rules. A convention that depends on a customer or a team is recorded as precedent and proposed, never promoted to a rule by itself. Not every error is fixed by another rule; the system's job is to tell the two kinds apart and leave a trace either way.
Business impact
Throughput: the inquiries get answered
Multiple inquiries and multiple styles are quoted in parallel; one inquiry is read once as shared order context and each style takes only the pages it needs. The capacity problem — "we cannot quote everything that comes in" — is addressed before the accuracy problem is allowed to matter.
Reliability: fast is only useful if it can be used
Every number is traced to its source, computed under the company's own rules and checked before delivery. 149 quotes reviewed line by line by the estimating team; 0.64% mean system computation error; 85% within 2%.
Compounding: the next inquiry starts further along
Review findings flow back as rules, delivery checks and regression cases; customer terms set once are carried to the next order. This is not model training — the changes are visible rules and data, and they can be rolled back. Individual estimating experience becomes capability the company keeps.
Identity through the system
The product's visual language was written down as a specification so that the interface, the pitch material and demonstrations read as one family: white ground, black text, as few words as possible; one accent colour per area, used only in small places; the agent is the only thing that glows — a plexiglass button with a slow rainbow edge and a glass bead holding a thread of colour; cloth is the only thing with texture — real fabric photographs, tinted, with pinked edges. Mastheads in a Didone serif give the libraries an editorial feel without decoration.
The mark is a Möbius band made of six threads — a stitch that never ends. Monochrome on white; coloured only where it stands for the agent.