Files
Cibello-app/docs/33-compound-allergen-audit.md
T
Sven (AAMOS AI) c32a7e33c7
CI / Typecheck, test & build (push) Failing after 2s
ci: trigga på master + formatfix inför Gitea Actions
2026-08-13 17:25:14 +07:00

142 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.