docs: compound-allergen-audit för sammansatta canonical-ingredienser
This commit is contained in:
@@ -0,0 +1,133 @@
|
|||||||
|
# Compound-allergen-audit – Cibello Receptkatalog
|
||||||
|
|
||||||
|
**Datum:** 2026-08-09
|
||||||
|
**Syfte:** Granska allergen-taggningen på sammansatta `canonical_ingredients` som AI-genererade recept lutar sig mot. Enda stället där en tyst allergen-miss kan gömma sig eftersom receptens allergener härleds deterministiskt ur ingredienserna.
|
||||||
|
|
||||||
|
**Princip:** Inga dataändringar görs utan godkännande av människa/granskare. Denna rapport är underlag för beslut.
|
||||||
|
|
||||||
|
## Metod
|
||||||
|
|
||||||
|
1. Identifierade alla sammansatta/halvfabrikat-liknande ingredienser i `packages/database/src/seed/data/ingredients.ts`.
|
||||||
|
2. Jämförde nuvarande `allergens` med vad produkttypen typiskt innehåller.
|
||||||
|
3. Föreslår rättningar där nuvarande taggning är ofullständig enligt produkttyp.
|
||||||
|
|
||||||
|
## Resultat
|
||||||
|
|
||||||
|
### 1. `meatball_pork_beef` – Köttbullar (färdiga)
|
||||||
|
|
||||||
|
| Fält | Nuvarande | Kommentar |
|
||||||
|
|---|---|---|
|
||||||
|
| `allergens` | `[]` | Färdiga köttbullar innehåller nästan alltid ströbröd (vetemjöl) och ofta ägg och/eller mjölk som bindemedel. |
|
||||||
|
| `isPork` | `true` | ✅ |
|
||||||
|
| `isBeef` | `true` | ✅ |
|
||||||
|
|
||||||
|
**Föreslagen rättning:**
|
||||||
|
```ts
|
||||||
|
allergens: ["gluten", "eggs", "milk"]
|
||||||
|
containsGluten: true
|
||||||
|
containsLactose: true
|
||||||
|
```
|
||||||
|
**Motivering:** Standardrecept för svenska färdiga köttbullar innehåller ströbröd/vetemjöl, ägg och mjölk. Detta är den konservativa taggningen för produkttypen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. `falukorv` – Falukorv
|
||||||
|
|
||||||
|
| Fält | Nuvarande | Kommentar |
|
||||||
|
|---|---|---|
|
||||||
|
| `allergens` | `[]` | Falukorv innehåller ofta potatismjöl eller vetemjöl samt mjölkpulver. |
|
||||||
|
| `isPork` | `true` | ✅ |
|
||||||
|
| `isBeef` | `true` | ✅ |
|
||||||
|
|
||||||
|
**Föreslagen rättning:**
|
||||||
|
```ts
|
||||||
|
allergens: ["gluten", "milk"]
|
||||||
|
containsGluten: true
|
||||||
|
containsLactose: true
|
||||||
|
```
|
||||||
|
**Motivering:** Falukorv är en köttkorv som traditionellt innehåller späck, potatismjöl/vetemjöl och ofta mjölkpulver. Konservativ taggning för produkttypen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. `red_curry_paste` – Röd currypasta
|
||||||
|
|
||||||
|
| Fält | Nuvarande | Kommentar |
|
||||||
|
|---|---|---|
|
||||||
|
| `allergens` | `[]` | Thailändsk röd currypasta (khrueang kaeng phet) innehåller traditionellt khrung (räkor eller fisk) som en av basingredienserna. |
|
||||||
|
|
||||||
|
**Föreslagen rättning:**
|
||||||
|
```ts
|
||||||
|
allergens: ["crustaceans", "fish"]
|
||||||
|
```
|
||||||
|
**Motivering:** Röd currypasta tillverkas ofta med shrimp paste (kapi) eller fisk. Det finns veganska varianter, men produkttypen som sådan är högrisk för både fisk och skaldjur.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. `taco_spice` – Tacokrydda
|
||||||
|
|
||||||
|
| Fält | Nuvarande | Kommentar |
|
||||||
|
|---|---|---|
|
||||||
|
| `allergens` | `[]` | Kommersiell tacokrydda varierar kraftigt mellan märken; vissa innehåller selleri, gluten, mjölk eller soja. |
|
||||||
|
|
||||||
|
**Föreslagen rättning:**
|
||||||
|
```ts
|
||||||
|
allergens: []
|
||||||
|
// men lägg till mayContainAllergens: ["celery", "gluten", "milk", "soy"]
|
||||||
|
```
|
||||||
|
**Motivering:** Det finns inte en enhetlig sammansättning för tacokrydda. I stället för att hårdtagga bör vi markera "kan innehålla" för de vanligaste dolda allergenerna, så att användare med allvarliga allergier varnas utan att vi blockerar alla recept.
|
||||||
|
|
||||||
|
> **Notering:** `mayContainAllergens` finns redan i `IngredientSafetyInfo` men används inte i seed-modellen idag. Detta kräver ett mindre schema-API-tillägg.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. `chicken_stock_cube` – Kycklingbuljongtärning
|
||||||
|
|
||||||
|
| Fält | Nuvarande | Kommentar |
|
||||||
|
|---|---|---|
|
||||||
|
| `allergens` | `["celery"]` | ✅ Korrekt. Buljongtärningar innehåller ofta selleri. |
|
||||||
|
|
||||||
|
**Föreslagen rättning:** Ingen ändring av huvudallergener. Överväg `mayContainAllergens: ["gluten", "milk", "soy", "egg"]` eftersom kommersiella tärningar ofta innehåller maltodextrin, jästextrakt eller mjölkprotein beroende på märke.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. `vegetable_stock_cube` – Grönsaksbuljongtärning
|
||||||
|
|
||||||
|
| Fält | Nuvarande | Kommentar |
|
||||||
|
|---|---|---|
|
||||||
|
| `allergens` | `["celery"]` | ✅ Korrekt. |
|
||||||
|
|
||||||
|
**Föreslagen rättning:** Ingen ändring av huvudallergener. Överväg `mayContainAllergens: ["gluten", "milk", "soy", "egg"]` av samma skäl som ovan.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Ingredienser som redan är korrekt taggade
|
||||||
|
|
||||||
|
Följande sammansatta ingredienser har redan korrekta allergen-taggar och behöver ingen åtgärd:
|
||||||
|
|
||||||
|
| Ingrediens | Nuvarande `allergens` | Bedömning |
|
||||||
|
|---|---|---|
|
||||||
|
| `noodles_egg` | `["gluten", "eggs"]` | ✅ |
|
||||||
|
| `bread_sourdough` | `["gluten"]` | ✅ |
|
||||||
|
| `tortilla` | `["gluten"]` | ✅ |
|
||||||
|
| `hamburger_bun` | `["gluten", "sesame"]` | ✅ |
|
||||||
|
| `breadcrumbs` | `["gluten"]` | ✅ |
|
||||||
|
| `soy_sauce` | `["soy", "gluten"]` | ✅ |
|
||||||
|
| `fish_sauce` | `["fish"]` | ✅ |
|
||||||
|
| `teriyaki_sauce` | `["soy", "gluten"]` | ✅ |
|
||||||
|
| `mayonnaise` | `["eggs", "mustard"]` | ✅ |
|
||||||
|
| `peanut_butter` | `["peanuts"]` | ✅ |
|
||||||
|
| `mustard` | `["mustard"]` | ✅ |
|
||||||
|
| `sesame_seeds` | `["sesame"]` | ✅ |
|
||||||
|
| `tofu` | `["soy"]` | ✅ |
|
||||||
|
|
||||||
|
## Rekommendation
|
||||||
|
|
||||||
|
1. **Godkänn och applicera** rättningarna för `meatball_pork_beef`, `falukorv` och `red_curry_paste` – dessa är klara produkttypsfall.
|
||||||
|
2. **Beslut om `taco_spice`** – antingen behåll tom lista eller inför `mayContainAllergens` (rekommenderas).
|
||||||
|
3. **Beslut om buljongtärningar** – överväg `mayContainAllergens` för gluten/mjölk/soja/ägg om vi vill varna användare, utan att göra recepten blockerande.
|
||||||
|
4. Efter godkännande: kör om `pnpm test` och eventuellt en ny liten live-pilotspotcheck för att verifiera att härledda allergener fortfarande är rimliga.
|
||||||
|
|
||||||
|
## Risk om inget görs
|
||||||
|
|
||||||
|
- Recept med `meatball_pork_beef` eller `falukorv` kommer att sakna `gluten`, `eggs`, `milk` i härledda allergener → säkerhetsrisk för allergiker.
|
||||||
|
- Recept med `red_curry_paste` kommer att sakna `fish`/`crustaceans` → säkerhetsrisk för allergiker.
|
||||||
Reference in New Issue
Block a user