From dee39e5708d0a2286c8bcbd27fa0cff9911e6b06 Mon Sep 17 00:00:00 2001 From: "Sven (AAMOS AI)" Date: Sun, 9 Aug 2026 21:08:41 +0700 Subject: [PATCH] =?UTF-8?q?docs:=20compound-allergen-audit=20f=C3=B6r=20sa?= =?UTF-8?q?mmansatta=20canonical-ingredienser?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/33-compound-allergen-audit.md | 133 +++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 docs/33-compound-allergen-audit.md diff --git a/docs/33-compound-allergen-audit.md b/docs/33-compound-allergen-audit.md new file mode 100644 index 0000000..4aead64 --- /dev/null +++ b/docs/33-compound-allergen-audit.md @@ -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.