Naming standard
R1.3 — the product naming convention, and the decision that is still outstanding. Every candidate below is measured against the 40 products actually in the catalogue, and the sample titles are produced by that candidate’s own formatter.
Not signed off yet
The catalogue already conforms and the standard is enforced on every write — a title is built from its parts and cannot be typed by hand. What is missing is a nominated person at Procure choosing one of these and saying so. Record it in the admin panel.
Producer | Wine Name Vintage
In forceThe producer, a pipe, the wine name, then the vintage or NV. For example: Te Kano | 'Land' Bannockburn Pinot Noir 2021.
What titles look like
- Ultimate Provence | Rosé Magnum 2025
- Pizzolato | Organic Alcohol-Free Sparkling Rose NV
- Mirabeau | Rosé Gin
- Heidsieck & Co Monopole | Blue Top NV Champagne with Gift Box
Trade-off
The producer can be read back out of the title, so an integration that receives only a name can still separate the two.
Producer Wine Name Vintage
The producer, the wine name, then the vintage, with no separator. For example: Te Kano 'Land' Bannockburn Pinot Noir 2021.
What titles look like
- Ultimate Provence Rosé Magnum 2025
- Pizzolato Organic Alcohol-Free Sparkling Rose NV
- Mirabeau Rosé Gin
- Heidsieck & Co Monopole Blue Top NV Champagne with Gift Box
Trade-off
The producer cannot be recovered from the title alone. Fine while every consumer also gets the structured fields; a problem if one only ever receives the name.
What happens when the decision changes
The formatter is one binding in src/lib/naming.ts. Changing it changes how every title is built on its next save; it does not rewrite existing titles until each record is re-saved, so a change is gradual rather than a mass update nobody reviewed. npm run quality reports every record that no longer conforms.
The rule stays in code deliberately. A formatter stored in a database row cannot be typechecked, cannot be tested without a database, and would change under a running deployment with no review. The decision is data; the behaviour is not.
