From c60158801dde1737bbb88828b0924cd9364b83d0 Mon Sep 17 00:00:00 2001 From: "Sven (AAMOS AI)" Date: Tue, 11 Aug 2026 19:19:23 +0700 Subject: [PATCH] =?UTF-8?q?gapfill:=20jordn=C3=B6tssm=C3=B6r-cellen=20fyll?= =?UTF-8?q?d=20(4=20recept)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/seed/data/verified-recipes.ts | 726 +++++++++- .../output/gapfill-nullcells-export.json | 1217 ++++++++--------- .../output/gapfill-nullcells-rejects.json | 59 +- .../output/gapfill-nullcells-summary.json | 12 +- 4 files changed, 1297 insertions(+), 717 deletions(-) diff --git a/packages/database/src/seed/data/verified-recipes.ts b/packages/database/src/seed/data/verified-recipes.ts index 7536f52..62c0810 100644 --- a/packages/database/src/seed/data/verified-recipes.ts +++ b/packages/database/src/seed/data/verified-recipes.ts @@ -3,7 +3,7 @@ import type { } from "./recipes.js"; /** - * Committed seed catalog: 254 verified recipes (JSON export converted once). + * Committed seed catalog: 258 verified recipes (JSON export converted once). * Allergens and nutrition are re-derived at seed time from canonical ingredients. * Verification statuses preserved: editorial + verified. */ @@ -35911,5 +35911,729 @@ export const VERIFIED_RECIPES: SeedRecipe[] = [ "text": "Strö över en nypa kanel på varje portion. Servera genast." } ] + }, + { + "slug": "kramig-kyckling-med-jordnotssas-och-ris", + "titleSv": "Krämig Kyckling med Jordnötssås och Ris", + "descriptionSv": "En enkel och smakrik vardagsrätt med saftig kyckling i en krämig jordnötssås, serverad med fluffigt ris och krispiga grönsaker. Perfekt för en snabb middag som hela familjen gillar.", + "cuisine": "swedish", + "mealTypes": [ + "dinner" + ], + "tags": [ + "quick", + "high_protein" + ], + "methods": [ + "stovetop" + ], + "equipment": [ + "stove" + ], + "difficulty": "beginner", + "prepMin": 20, + "cookMin": 25, + "portions": 4, + "spiceLevel": 2, + "mealPrepFriendly": true, + "freezerFriendly": true, + "peakSeasons": [], + "holidayTags": [], + "variantType": "standard", + "dnaProtein": "chicken_breast", + "dnaCarb": "rice_white", + "dnaVegetables": [ + "garlic", + "onion" + ], + "dnaFlavor": [ + "fresh", + "balanced" + ], + "verificationStatus": "verified", + "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2-3 dagar.", + "ingredients": [ + { + "ing": "chicken_breast", + "nameSv": "kycklingfilé", + "qty": 500, + "unit": "GRAM", + "optional": false + }, + { + "ing": "rice_white", + "nameSv": "ris (jasmin/basmati, torrt)", + "qty": 300, + "unit": "GRAM", + "optional": false + }, + { + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 100, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "coconut_milk", + "nameSv": "kokosmjölk", + "qty": 2, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "soy_sauce", + "nameSv": "soja (japansk)", + "qty": 2, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "lime", + "nameSv": "lime", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "ginger", + "nameSv": "ingefära (färsk)", + "qty": 20, + "unit": "GRAM", + "note": "riven", + "optional": false + }, + { + "ing": "garlic", + "nameSv": "vitlök", + "qty": 2, + "unit": "CLOVE", + "note": "pressad eller finhackad", + "optional": false + }, + { + "ing": "onion", + "nameSv": "gul lök", + "qty": 1, + "unit": "COUNT", + "note": "hackad", + "optional": false + }, + { + "ing": "bell_pepper", + "nameSv": "paprika", + "qty": 1, + "unit": "COUNT", + "note": "valfri färg, strimlad", + "optional": false + }, + { + "ing": "broccoli", + "nameSv": "broccoli", + "qty": 1, + "unit": "COUNT", + "note": "i buketter", + "optional": false + }, + { + "ing": "rapeseed_oil", + "nameSv": "rapsolja", + "qty": 1, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "chicken_stock_cube", + "nameSv": "kycklingbuljongtärning", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "salt", + "nameSv": "salt", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "black_pepper", + "nameSv": "svartpeppar", + "qty": 1, + "unit": "MILLILITER", + "optional": false + } + ], + "steps": [ + { + "text": "Koka riset enligt anvisningarna på förpackningen. Skär kycklingfilén i strimlor." + }, + { + "text": "Hetta upp rapsolja i en stor stekpanna eller wok. Stek kycklingen tills den är genomstekt och inte längre rosa i mitten, cirka 5-7 minuter. Ta upp kycklingen och lägg åt sidan.", + "tip": "Se till att kycklingen får en fin stekyta." + }, + { + "text": "Tillsätt hackad lök, pressad vitlök och riven ingefära i samma panna. Fräs i cirka 2-3 minuter tills löken mjuknat. Tillsätt strimlad paprika och broccolibuketter, fräs ytterligare 3-4 minuter." + }, + { + "text": "Blanda jordnötssmör, kokosmjölk, soja, saften från en lime och en smulad kycklingbuljongtärning med 1 deciliter vatten i en skål. Rör tills såsen är slät." + }, + { + "text": "Häll jordnötssåsen i pannan med grönsakerna. Låt sjuda i 2-3 minuter. Lägg tillbaka kycklingen i såsen och värm igenom. Smaka av med salt och svartpeppar.", + "tip": "Om såsen blir för tjock, tillsätt lite mer vatten eller kokosmjölk." + }, + { + "text": "Servera den krämiga kycklingen med jordnötssås tillsammans med det kokta riset." + } + ] + }, + { + "slug": "vegetarisk-jordnotsgryta-med-linser-och-potatis", + "titleSv": "Vegetarisk Jordnötsgryta med Linser och Potatis", + "descriptionSv": "En värmande och mättande vegetarisk gryta med röda linser, potatis och en krämig jordnötssås. En perfekt vardagsrätt som är full av smak och näring.", + "cuisine": "swedish", + "mealTypes": [ + "dinner" + ], + "tags": [ + "quick", + "high_protein" + ], + "methods": [ + "stovetop" + ], + "equipment": [ + "stove" + ], + "difficulty": "beginner", + "prepMin": 20, + "cookMin": 35, + "portions": 4, + "spiceLevel": 1, + "mealPrepFriendly": true, + "freezerFriendly": true, + "peakSeasons": [], + "holidayTags": [], + "variantType": "standard", + "dnaProtein": "peanut_butter", + "dnaCarb": "potato", + "dnaVegetables": [ + "onion", + "garlic", + "carrot", + "spinach" + ], + "dnaFlavor": [ + "fresh", + "balanced" + ], + "verificationStatus": "verified", + "storageGuidanceSv": "Förvara rester i en lufttät behållare i kylskåp i upp till 3-4 dagar. Grytan går utmärkt att frysa in.", + "ingredients": [ + { + "ing": "red_lentils", + "nameSv": "röda linser (torra)", + "qty": 200, + "unit": "GRAM", + "optional": false + }, + { + "ing": "potato", + "nameSv": "potatis", + "qty": 4, + "unit": "COUNT", + "note": "medelstora, skalade och tärnade", + "optional": false + }, + { + "ing": "onion", + "nameSv": "gul lök", + "qty": 1, + "unit": "COUNT", + "note": "hackad", + "optional": false + }, + { + "ing": "garlic", + "nameSv": "vitlök", + "qty": 2, + "unit": "CLOVE", + "note": "pressad eller finhackad", + "optional": false + }, + { + "ing": "carrot", + "nameSv": "morot", + "qty": 2, + "unit": "COUNT", + "note": "skalad och tärnad", + "optional": false + }, + { + "ing": "canned_tomatoes", + "nameSv": "krossade tomater", + "qty": 1, + "unit": "COUNT", + "note": "en burk (ca 400g)", + "optional": false + }, + { + "ing": "spinach", + "nameSv": "spenat (färsk)", + "qty": 150, + "unit": "GRAM", + "optional": false + }, + { + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 75, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "coconut_milk", + "nameSv": "kokosmjölk", + "qty": 2, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "vegetable_stock_cube", + "nameSv": "grönsaksbuljongtärning", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "rapeseed_oil", + "nameSv": "rapsolja", + "qty": 1, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "cumin", + "nameSv": "spiskummin", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "paprika_powder", + "nameSv": "paprikapulver", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "salt", + "nameSv": "salt", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "black_pepper", + "nameSv": "svartpeppar", + "qty": 1, + "unit": "MILLILITER", + "optional": false + } + ], + "steps": [ + { + "text": "Skölj de röda linserna noga. Skala och tärna potatis och morötter. Hacka löken och finhacka vitlöken." + }, + { + "text": "Hetta upp rapsolja i en stor kastrull eller gryta. Fräs lök, vitlök, spiskummin och paprikapulver i cirka 3-4 minuter tills löken är mjuk och kryddorna doftar." + }, + { + "text": "Tillsätt tärnad potatis, morötter och de sköljda linserna. Häll i krossade tomater, kokosmjölk och smula ner grönsaksbuljongtärningen. Tillsätt 4 deciliter vatten." + }, + { + "text": "Låt grytan koka upp, sänk sedan värmen och låt sjuda under lock i cirka 20-25 minuter, eller tills potatis och linser är mjuka.", + "tip": "Rör om då och då för att förhindra att linserna fastnar i botten." + }, + { + "text": "Rör ner jordnötssmöret i grytan tills det smält och blandats väl. Tillsätt färsk spenat och låt den mjukna i grytan i någon minut." + }, + { + "text": "Smaka av grytan med salt och svartpeppar. Servera den vegetariska jordnötsgrytan som den är, eller med en klick yoghurt om så önskas." + } + ] + }, + { + "slug": "nudelwok-med-tofu-och-jordnotssas", + "titleSv": "Nudelwok med Tofu och Jordnötssås", + "descriptionSv": "En snabb och smakrik nudelwok med krispiga grönsaker, stekt tofu och en ljuvlig jordnötssås. Perfekt för en vardag när du vill ha något gott och enkelt.", + "cuisine": "swedish", + "mealTypes": [ + "dinner" + ], + "tags": [ + "quick", + "high_protein" + ], + "methods": [ + "stovetop" + ], + "equipment": [ + "stove" + ], + "difficulty": "beginner", + "prepMin": 20, + "cookMin": 20, + "portions": 4, + "spiceLevel": 2, + "mealPrepFriendly": true, + "freezerFriendly": false, + "peakSeasons": [], + "holidayTags": [], + "variantType": "standard", + "dnaProtein": "tofu", + "dnaVegetables": [ + "garlic", + "onion", + "carrot" + ], + "dnaFlavor": [ + "fresh", + "balanced" + ], + "verificationStatus": "verified", + "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2-3 dagar. Ej lämplig för infrysning på grund av nudlarna.", + "ingredients": [ + { + "ing": "tofu", + "nameSv": "tofu (naturell)", + "qty": 300, + "unit": "GRAM", + "note": "fast, pressad och tärnad", + "optional": false + }, + { + "ing": "noodles_egg", + "nameSv": "äggnudlar (torra)", + "qty": 250, + "unit": "GRAM", + "optional": false + }, + { + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 75, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "soy_sauce", + "nameSv": "soja (japansk)", + "qty": 3, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "lime", + "nameSv": "lime", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "coconut_milk", + "nameSv": "kokosmjölk", + "qty": 1, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "ginger", + "nameSv": "ingefära (färsk)", + "qty": 15, + "unit": "GRAM", + "note": "riven", + "optional": false + }, + { + "ing": "garlic", + "nameSv": "vitlök", + "qty": 2, + "unit": "CLOVE", + "note": "pressad eller finhackad", + "optional": false + }, + { + "ing": "onion", + "nameSv": "gul lök", + "qty": 1, + "unit": "COUNT", + "note": "strimlad", + "optional": false + }, + { + "ing": "bell_pepper", + "nameSv": "paprika", + "qty": 1, + "unit": "COUNT", + "note": "valfri färg, strimlad", + "optional": false + }, + { + "ing": "carrot", + "nameSv": "morot", + "qty": 1, + "unit": "COUNT", + "note": "skalad och strimlad", + "optional": false + }, + { + "ing": "broccoli", + "nameSv": "broccoli", + "qty": 1, + "unit": "COUNT", + "note": "i små buketter", + "optional": false + }, + { + "ing": "mushroom", + "nameSv": "champinjoner", + "qty": 150, + "unit": "GRAM", + "note": "skivade", + "optional": false + }, + { + "ing": "rapeseed_oil", + "nameSv": "rapsolja", + "qty": 2, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "sesame_seeds", + "nameSv": "sesamfrön", + "qty": 1, + "unit": "TABLESPOON", + "note": "till garnering", + "optional": false + }, + { + "ing": "salt", + "nameSv": "salt", + "qty": 0.5, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "black_pepper", + "nameSv": "svartpeppar", + "qty": 0.5, + "unit": "MILLILITER", + "optional": false + } + ], + "steps": [ + { + "text": "Koka äggnudlarna enligt anvisningarna på förpackningen. Häll av vattnet och skölj nudlarna i kallt vatten för att förhindra att de klibbar ihop. Låt rinna av ordentligt." + }, + { + "text": "Pressa ut vätska ur tofun och tärna den. Hetta upp 1 matsked rapsolja i en stor wok eller stekpanna. Stek tofun gyllene och krispig på alla sidor, cirka 5-7 minuter. Ta upp tofun och lägg åt sidan.", + "tip": "Att pressa tofun innan stekning ger en fastare konsistens." + }, + { + "text": "Tillsätt ytterligare 1 matsked rapsolja i woken. Fräs strimlad lök, pressad vitlök och riven ingefära i 2 minuter. Tillsätt strimlad morot, paprika, broccolibuketter och skivade champinjoner. Woka i 5-7 minuter tills grönsakerna är mjuka men fortfarande har lite tuggmotstånd.", + "tip": "Woka grönsakerna på hög värme för att behålla krispigheten." + }, + { + "text": "Blanda jordnötssmör, soja, saften från en lime och kokosmjölk i en skål till en slät sås.", + "tip": "Om såsen är för tjock, tillsätt en skvätt vatten." + }, + { + "text": "Lägg tillbaka tofun i woken med grönsakerna. Tillsätt de kokta nudlarna och häll över jordnötssåsen. Blanda allt väl och värm igenom i 2-3 minuter." + }, + { + "text": "Smaka av med salt och svartpeppar. Servera genast, gärna toppat med sesamfrön." + } + ] + }, + { + "slug": "kottfarsbiffar-med-jordnotssmak-och-ugnsrostad-potatis", + "titleSv": "Köttfärsbiffar med Jordnötssmak och Ugnsrostad Potatis", + "descriptionSv": "Saftiga köttfärsbiffar med en oväntad touch av jordnötssmör, serverade med krispig ugnsrostad potatis och en fräsch yoghurtsås. En spännande twist på en klassisk vardagsrätt.", + "cuisine": "swedish", + "mealTypes": [ + "dinner" + ], + "tags": [ + "quick", + "high_protein" + ], + "methods": [ + "stovetop" + ], + "equipment": [ + "stove" + ], + "difficulty": "beginner", + "prepMin": 25, + "cookMin": 40, + "portions": 4, + "spiceLevel": 1, + "mealPrepFriendly": true, + "freezerFriendly": true, + "peakSeasons": [], + "holidayTags": [], + "variantType": "standard", + "dnaProtein": "minced_beef", + "dnaCarb": "potato", + "dnaVegetables": [ + "onion", + "garlic", + "cucumber" + ], + "dnaFlavor": [ + "fresh", + "balanced" + ], + "verificationStatus": "verified", + "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2-3 dagar. Biffarna går bra att frysa in.", + "ingredients": [ + { + "ing": "minced_beef", + "nameSv": "nötfärs 10 %", + "qty": 500, + "unit": "GRAM", + "optional": false + }, + { + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 50, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "egg", + "nameSv": "ägg", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "breadcrumbs", + "nameSv": "ströbröd", + "qty": 30, + "unit": "GRAM", + "optional": false + }, + { + "ing": "milk_3", + "nameSv": "standardmjölk 3 %", + "qty": 0.5, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "onion", + "nameSv": "gul lök", + "qty": 0.5, + "unit": "COUNT", + "note": "finhackad", + "optional": false + }, + { + "ing": "garlic", + "nameSv": "vitlök", + "qty": 1, + "unit": "CLOVE", + "note": "pressad eller finhackad", + "optional": false + }, + { + "ing": "potato", + "nameSv": "potatis", + "qty": 6, + "unit": "COUNT", + "note": "medelstora, skalade och klyftade", + "optional": false + }, + { + "ing": "rapeseed_oil", + "nameSv": "rapsolja", + "qty": 2, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "salt", + "nameSv": "salt", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "black_pepper", + "nameSv": "svartpeppar", + "qty": 1, + "unit": "MILLILITER", + "optional": false + }, + { + "ing": "paprika_powder", + "nameSv": "paprikapulver", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "yoghurt_natural", + "nameSv": "naturell yoghurt 3 %", + "qty": 2, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "cucumber", + "nameSv": "gurka", + "qty": 0.5, + "unit": "COUNT", + "note": "riven", + "optional": false + }, + { + "ing": "dill", + "nameSv": "dill (färsk)", + "qty": 10, + "unit": "GRAM", + "note": "finhackad", + "optional": false + } + ], + "steps": [ + { + "text": "Sätt ugnen på 225°C. Skala och klyfta potatisen. Lägg potatisklyftorna på en bakplåt, ringla över 1 matsked rapsolja, strö över paprikapulver, 0.5 tesked salt och 0.5 milliliter svartpeppar. Blanda väl. Rosta i ugnen i cirka 30-35 minuter, eller tills potatisen är mjuk och gyllene.", + "temperatureC": 225, + "tip": "Vänd potatisen efter halva tiden för jämn rostning." + }, + { + "text": "Blanda ströbröd med mjölk i en stor bunke och låt svälla i några minuter. Tillsätt nötfärs, jordnötssmör, ägg, finhackad lök, pressad vitlök, 0.5 tesked salt och 0.5 milliliter svartpeppar. Arbeta ihop till en jämn färs.", + "tip": "Använd händerna för att blanda färsen ordentligt." + }, + { + "text": "Forma färsen till 8-12 biffar. Hetta upp 1 matsked rapsolja i en stekpanna på medelhög värme. Stek biffarna i omgångar i cirka 4-5 minuter per sida, tills de är helt genomstekta och inte längre rosa i mitten.", + "tip": "Se till att inte överfylla pannan, stek hellre i flera omgångar." + }, + { + "text": "Under tiden, förbered yoghurtsåsen: Blanda naturell yoghurt med riven gurka och finhackad dill. Smaka av med en nypa salt och peppar." + }, + { + "text": "Servera de jordnötsdoftande köttfärsbiffarna med den ugnsrostade potatisen och den fräscha yoghurtsåsen." + } + ] } ]; diff --git a/packages/recipe-generation/output/gapfill-nullcells-export.json b/packages/recipe-generation/output/gapfill-nullcells-export.json index 46712d7..4b36afc 100644 --- a/packages/recipe-generation/output/gapfill-nullcells-export.json +++ b/packages/recipe-generation/output/gapfill-nullcells-export.json @@ -1,18 +1,18 @@ { - "batchId": "gapfill-nullcells-1786405187103", - "generatedAt": "2026-08-10T23:39:47.103Z", + "batchId": "gapfill-nullcells-1786450738493", + "generatedAt": "2026-08-11T12:18:58.493Z", "brand": "Cibello", - "targetCount": 12, - "verifiedCount": 8, - "unverifiedCount": 4, + "targetCount": 4, + "verifiedCount": 4, + "unverifiedCount": 0, "rejectedCount": 0, "geminiStatus": "ok", - "geminiCostUsd": 0.0033332249999999996, + "geminiCostUsd": 0.0024604500000000003, "recipes": [ { - "slug": "kramig-flaskytterfile-med-svamp-och-potatis", - "titleSv": "Krämig fläskytterfilé med svamp och potatis", - "descriptionSv": "En enkel och smakrik vardagsrätt med mör fläskytterfilé i en krämig svampsås, serverad med kokt potatis. Perfekt när tiden är knapp men du vill äta gott.", + "slug": "kramig-kyckling-med-jordnotssas-och-ris", + "titleSv": "Krämig Kyckling med Jordnötssås och Ris", + "descriptionSv": "En enkel och smakrik vardagsrätt med saftig kyckling i en krämig jordnötssås, serverad med fluffigt ris och krispiga grönsaker. Perfekt för en snabb middag som hela familjen gillar.", "cuisine": "swedish", "mealTypes": [ "dinner" @@ -28,183 +28,85 @@ "stove" ], "difficulty": "beginner", - "prepMin": 15, - "cookMin": 30, + "prepMin": 20, + "cookMin": 25, "portions": 4, - "spiceLevel": 1, + "spiceLevel": 2, "mealPrepFriendly": true, - "freezerFriendly": false, + "freezerFriendly": true, "peakSeasons": [], "holidayTags": [], "variantType": "standard", - "dnaProtein": "pork_loin", - "dnaCarb": "potato", + "dnaProtein": "chicken_breast", + "dnaCarb": "rice_white", "dnaVegetables": [ - "onion", - "garlic" + "garlic", + "onion" ], "dnaFlavor": [ "fresh", "balanced" ], "verificationStatus": "verified", - "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2 dagar.", + "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2-3 dagar.", "ingredients": [ { - "ing": "pork_loin", - "nameSv": "fläskytterfilé", + "ing": "chicken_breast", + "nameSv": "kycklingfilé", "qty": 500, "unit": "GRAM", "optional": false }, { - "ing": "potato", - "nameSv": "potatis", - "qty": 8, - "unit": "COUNT", - "note": "medelstora", - "optional": false - }, - { - "ing": "mushroom", - "nameSv": "champinjoner", - "qty": 250, + "ing": "rice_white", + "nameSv": "ris (jasmin/basmati, torrt)", + "qty": 300, "unit": "GRAM", "optional": false }, { - "ing": "onion", - "nameSv": "gul lök", + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 100, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "coconut_milk", + "nameSv": "kokosmjölk", + "qty": 2, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "soy_sauce", + "nameSv": "soja (japansk)", + "qty": 2, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "lime", + "nameSv": "lime", "qty": 1, "unit": "COUNT", "optional": false }, + { + "ing": "ginger", + "nameSv": "ingefära (färsk)", + "qty": 20, + "unit": "GRAM", + "note": "riven", + "optional": false + }, { "ing": "garlic", "nameSv": "vitlök", "qty": 2, "unit": "CLOVE", - "optional": false - }, - { - "ing": "cooking_cream", - "nameSv": "matlagningsgrädde", - "qty": 2.5, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "rapeseed_oil", - "nameSv": "rapsolja", - "qty": 1, - "unit": "TABLESPOON", - "note": "till stekning", - "optional": false - }, - { - "ing": "salt", - "nameSv": "salt", - "qty": 1, - "unit": "TEASPOON", - "optional": false - }, - { - "ing": "black_pepper", - "nameSv": "svartpeppar", - "qty": 1, - "unit": "MILLILITER", - "note": "nymald", - "optional": false - } - ], - "steps": [ - { - "text": "Skala och koka potatisen i saltat vatten tills den är mjuk, cirka 20-25 minuter.", - "timerSeconds": 1500 - }, - { - "text": "Putsa fläskytterfilén och skär den i cirka 1,5 cm tjocka skivor. Salta och peppra skivorna." - }, - { - "text": "Skala och finhacka lök och vitlök. Skiva champinjonerna." - }, - { - "text": "Hetta upp rapsolja i en stekpanna. Stek fläskytterfiléskivorna på medelhög värme tills de är genomstekta och har en innertemperatur på minst 68°C, cirka 3-4 minuter per sida. Ta upp köttet och lägg åt sidan.", - "timerSeconds": 480, - "tip": "Stek i omgångar om pannan blir för full för att få en fin stekyta." - }, - { - "text": "Tillsätt mer olja om det behövs i samma panna. Fräs lök, vitlök och champinjoner tills löken är mjuk och champinjonerna fått fin färg." - }, - { - "text": "Häll i matlagningsgrädden och låt såsen sjuda i några minuter. Smaka av med salt och peppar.", - "timerSeconds": 180 - }, - { - "text": "Lägg tillbaka fläskytterfilén i såsen och låt den bli varm. Servera genast med den kokta potatisen." - } - ] - }, - { - "slug": "flaskytterfile-med-apple-och-timjan", - "titleSv": "Fläskytterfilé med äpple och timjan", - "descriptionSv": "En härlig kombination av sött äpple och aromatisk timjan som lyfter den mjälla fläskytterfilén. Serveras med kokt ris för en komplett måltid.", - "cuisine": "swedish", - "mealTypes": [ - "dinner" - ], - "tags": [ - "quick", - "high_protein" - ], - "methods": [ - "stovetop" - ], - "equipment": [ - "stove" - ], - "difficulty": "beginner", - "prepMin": 15, - "cookMin": 30, - "portions": 4, - "spiceLevel": 1, - "mealPrepFriendly": true, - "freezerFriendly": false, - "peakSeasons": [], - "holidayTags": [], - "variantType": "standard", - "dnaProtein": "pork_loin", - "dnaCarb": "rice_white", - "dnaVegetables": [ - "onion" - ], - "dnaFlavor": [ - "fresh", - "balanced" - ], - "verificationStatus": "verified", - "storageGuidanceSv": "Rester kan förvaras i kylskåp i en lufttät behållare i upp till 2 dagar.", - "ingredients": [ - { - "ing": "pork_loin", - "nameSv": "fläskytterfilé", - "qty": 500, - "unit": "GRAM", - "optional": false - }, - { - "ing": "rice_white", - "nameSv": "ris (jasmin/basmati)", - "qty": 300, - "unit": "GRAM", - "note": "torrt", - "optional": false - }, - { - "ing": "apple", - "nameSv": "äpple", - "qty": 2, - "unit": "COUNT", + "note": "pressad eller finhackad", "optional": false }, { @@ -212,126 +114,15 @@ "nameSv": "gul lök", "qty": 1, "unit": "COUNT", + "note": "hackad", "optional": false }, { - "ing": "cooking_cream", - "nameSv": "matlagningsgrädde", - "qty": 2.5, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "thyme_dried", - "nameSv": "torkad timjan", + "ing": "bell_pepper", + "nameSv": "paprika", "qty": 1, - "unit": "TEASPOON", - "optional": false - }, - { - "ing": "rapeseed_oil", - "nameSv": "rapsolja", - "qty": 1, - "unit": "TABLESPOON", - "note": "till stekning", - "optional": false - }, - { - "ing": "salt", - "nameSv": "salt", - "qty": 1, - "unit": "TEASPOON", - "optional": false - }, - { - "ing": "black_pepper", - "nameSv": "svartpeppar", - "qty": 1, - "unit": "MILLILITER", - "note": "nymald", - "optional": false - } - ], - "steps": [ - { - "text": "Koka riset enligt anvisningarna på förpackningen." - }, - { - "text": "Putsa fläskytterfilén och skär den i cirka 1,5 cm tjocka skivor. Salta och peppra skivorna." - }, - { - "text": "Skala och hacka löken. Kärna ur och skär äpplena i klyftor eller tjocka skivor." - }, - { - "text": "Hetta upp rapsolja i en stekpanna. Stek fläskytterfiléskivorna på medelhög värme tills de är genomstekta och har en innertemperatur på minst 68°C, cirka 3-4 minuter per sida. Ta upp köttet och lägg åt sidan.", - "timerSeconds": 480, - "tip": "Stek i omgångar om pannan blir för full för att få en fin stekyta." - }, - { - "text": "Tillsätt mer olja om det behövs i samma panna. Fräs lök och äppelklyftor tills löken är mjuk och äpplena börjar mjukna." - }, - { - "text": "Häll i matlagningsgrädden och tillsätt timjan. Låt såsen sjuda i några minuter. Smaka av med salt och peppar.", - "timerSeconds": 180 - }, - { - "text": "Lägg tillbaka fläskytterfilén i såsen och låt den bli varm. Servera genast med det kokta riset." - } - ] - }, - { - "slug": "flaskytterfile-med-senapssas-och-broccoli", - "titleSv": "Fläskytterfilé med senapssås och broccoli", - "descriptionSv": "En klassisk kombination av fläskytterfilé och en krämig senapssås. Serveras med ångad broccoli och kokt potatis för en balanserad måltid.", - "cuisine": "swedish", - "mealTypes": [ - "dinner" - ], - "tags": [ - "quick", - "high_protein" - ], - "methods": [ - "stovetop" - ], - "equipment": [ - "stove" - ], - "difficulty": "beginner", - "prepMin": 15, - "cookMin": 30, - "portions": 4, - "spiceLevel": 2, - "mealPrepFriendly": true, - "freezerFriendly": false, - "peakSeasons": [], - "holidayTags": [], - "variantType": "standard", - "dnaProtein": "pork_loin", - "dnaCarb": "potato", - "dnaVegetables": [ - "onion" - ], - "dnaFlavor": [ - "fresh", - "balanced" - ], - "verificationStatus": "verified", - "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2 dagar.", - "ingredients": [ - { - "ing": "pork_loin", - "nameSv": "fläskytterfilé", - "qty": 500, - "unit": "GRAM", - "optional": false - }, - { - "ing": "potato", - "nameSv": "potatis", - "qty": 8, "unit": "COUNT", - "note": "medelstora", + "note": "valfri färg, strimlad", "optional": false }, { @@ -339,28 +130,7 @@ "nameSv": "broccoli", "qty": 1, "unit": "COUNT", - "note": "ca 300g", - "optional": false - }, - { - "ing": "onion", - "nameSv": "gul lök", - "qty": 1, - "unit": "COUNT", - "optional": false - }, - { - "ing": "mustard", - "nameSv": "senap (dijon eller grovkornig)", - "qty": 2, - "unit": "TABLESPOON", - "optional": false - }, - { - "ing": "cooking_cream", - "nameSv": "matlagningsgrädde", - "qty": 2.5, - "unit": "DECILITER", + "note": "i buketter", "optional": false }, { @@ -368,7 +138,13 @@ "nameSv": "rapsolja", "qty": 1, "unit": "TABLESPOON", - "note": "till stekning", + "optional": false + }, + { + "ing": "chicken_stock_cube", + "nameSv": "kycklingbuljongtärning", + "qty": 1, + "unit": "COUNT", "optional": false }, { @@ -383,130 +159,39 @@ "nameSv": "svartpeppar", "qty": 1, "unit": "MILLILITER", - "note": "nymald", "optional": false } ], "steps": [ { - "text": "Skala och koka potatisen i saltat vatten tills den är mjuk, cirka 20-25 minuter.", - "timerSeconds": 1500 + "text": "Koka riset enligt anvisningarna på förpackningen. Skär kycklingfilén i strimlor." }, { - "text": "Dela broccolin i mindre buketter och koka eller ånga den tills den är mjuk men fortfarande har lite tuggmotstånd, cirka 5-7 minuter.", - "timerSeconds": 420 + "text": "Hetta upp rapsolja i en stor stekpanna eller wok. Stek kycklingen tills den är genomstekt och inte längre rosa i mitten, cirka 5-7 minuter. Ta upp kycklingen och lägg åt sidan.", + "tip": "Se till att kycklingen får en fin stekyta." }, { - "text": "Putsa fläskytterfilén och skär den i cirka 1,5 cm tjocka skivor. Salta och peppra skivorna." + "text": "Tillsätt hackad lök, pressad vitlök och riven ingefära i samma panna. Fräs i cirka 2-3 minuter tills löken mjuknat. Tillsätt strimlad paprika och broccolibuketter, fräs ytterligare 3-4 minuter." }, { - "text": "Skala och finhacka löken." + "text": "Blanda jordnötssmör, kokosmjölk, soja, saften från en lime och en smulad kycklingbuljongtärning med 1 deciliter vatten i en skål. Rör tills såsen är slät." }, { - "text": "Hetta upp rapsolja i en stekpanna. Stek fläskytterfiléskivorna på medelhög värme tills de är genomstekta och har en innertemperatur på minst 68°C, cirka 3-4 minuter per sida. Ta upp köttet och lägg åt sidan.", - "timerSeconds": 480, - "tip": "Stek i omgångar om pannan blir för full för att få en fin stekyta." + "text": "Häll jordnötssåsen i pannan med grönsakerna. Låt sjuda i 2-3 minuter. Lägg tillbaka kycklingen i såsen och värm igenom. Smaka av med salt och svartpeppar.", + "tip": "Om såsen blir för tjock, tillsätt lite mer vatten eller kokosmjölk." }, { - "text": "Tillsätt mer olja om det behövs i samma panna. Fräs löken tills den är mjuk och glansig." - }, - { - "text": "Rör ner senap och matlagningsgrädde. Låt såsen sjuda i några minuter. Smaka av med salt och peppar.", - "timerSeconds": 180 - }, - { - "text": "Lägg tillbaka fläskytterfilén i såsen och låt den bli varm. Servera genast med den kokta potatisen och broccolin." + "text": "Servera den krämiga kycklingen med jordnötssås tillsammans med det kokta riset." } ] }, { - "slug": "snabb-banansmoothie", - "titleSv": "Snabb banansmoothie", - "descriptionSv": "En energigivande och mättande smoothie med banan, yoghurt och havredryck. Perfekt när du behöver en snabb frukost eller ett mellanmål.", + "slug": "vegetarisk-jordnotsgryta-med-linser-och-potatis", + "titleSv": "Vegetarisk Jordnötsgryta med Linser och Potatis", + "descriptionSv": "En värmande och mättande vegetarisk gryta med röda linser, potatis och en krämig jordnötssås. En perfekt vardagsrätt som är full av smak och näring.", "cuisine": "swedish", "mealTypes": [ - "breakfast" - ], - "tags": [ - "quick", - "kid_friendly" - ], - "methods": [ - "no_cook" - ], - "equipment": [], - "difficulty": "beginner", - "prepMin": 5, - "cookMin": 0, - "portions": 4, - "spiceLevel": 0, - "mealPrepFriendly": false, - "freezerFriendly": false, - "peakSeasons": [], - "holidayTags": [], - "variantType": "standard", - "dnaCarb": "oats", - "dnaVegetables": [], - "dnaFlavor": [ - "fresh", - "balanced" - ], - "verificationStatus": "verified", - "storageGuidanceSv": "Smoothien bör drickas direkt för bästa smak och konsistens. Kan förvaras i kylskåp i max 1 dygn, men kan då skikta sig.", - "ingredients": [ - { - "ing": "banana", - "nameSv": "banan", - "qty": 2, - "unit": "COUNT", - "note": "mogna", - "optional": false - }, - { - "ing": "yoghurt_natural", - "nameSv": "naturell yoghurt 3 %", - "qty": 4, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "oat_drink", - "nameSv": "havredryck", - "qty": 2, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "oats", - "nameSv": "havregryn", - "qty": 0.5, - "unit": "DECILITER", - "note": "för extra mättnad", - "optional": true - } - ], - "steps": [ - { - "text": "Skala bananerna och bryt dem i mindre bitar." - }, - { - "text": "Lägg bananbitarna, naturell yoghurt, havredryck och eventuellt havregryn i en mixer." - }, - { - "text": "Mixa tills smoothien är slät och krämig. Tillsätt mer havredryck om du vill ha en tunnare konsistens." - }, - { - "text": "Häll upp i glas och servera direkt." - } - ] - }, - { - "slug": "havregrynsgrot-med-banan-och-kanel", - "titleSv": "Havregrynsgröt med banan och kanel", - "descriptionSv": "En klassisk och värmande frukost som är både enkel att göra och mättande. Toppas med skivad banan och en nypa kanel.", - "cuisine": "swedish", - "mealTypes": [ - "breakfast" + "dinner" ], "tags": [ "quick", @@ -519,38 +204,320 @@ "stove" ], "difficulty": "beginner", - "prepMin": 5, - "cookMin": 10, + "prepMin": 20, + "cookMin": 35, "portions": 4, - "spiceLevel": 0, - "mealPrepFriendly": false, - "freezerFriendly": false, + "spiceLevel": 1, + "mealPrepFriendly": true, + "freezerFriendly": true, "peakSeasons": [], "holidayTags": [], "variantType": "standard", - "dnaCarb": "oats", - "dnaVegetables": [], + "dnaProtein": "peanut_butter", + "dnaCarb": "potato", + "dnaVegetables": [ + "onion", + "garlic", + "carrot", + "spinach" + ], "dnaFlavor": [ "fresh", "balanced" ], "verificationStatus": "verified", - "storageGuidanceSv": "Gröten smakar bäst nygjord. Eventuella rester kan förvaras i kylskåp i en lufttät behållare i upp till 1 dag och värmas upp med lite extra mjölk.", + "storageGuidanceSv": "Förvara rester i en lufttät behållare i kylskåp i upp till 3-4 dagar. Grytan går utmärkt att frysa in.", "ingredients": [ { - "ing": "oats", - "nameSv": "havregryn", + "ing": "red_lentils", + "nameSv": "röda linser (torra)", + "qty": 200, + "unit": "GRAM", + "optional": false + }, + { + "ing": "potato", + "nameSv": "potatis", "qty": 4, + "unit": "COUNT", + "note": "medelstora, skalade och tärnade", + "optional": false + }, + { + "ing": "onion", + "nameSv": "gul lök", + "qty": 1, + "unit": "COUNT", + "note": "hackad", + "optional": false + }, + { + "ing": "garlic", + "nameSv": "vitlök", + "qty": 2, + "unit": "CLOVE", + "note": "pressad eller finhackad", + "optional": false + }, + { + "ing": "carrot", + "nameSv": "morot", + "qty": 2, + "unit": "COUNT", + "note": "skalad och tärnad", + "optional": false + }, + { + "ing": "canned_tomatoes", + "nameSv": "krossade tomater", + "qty": 1, + "unit": "COUNT", + "note": "en burk (ca 400g)", + "optional": false + }, + { + "ing": "spinach", + "nameSv": "spenat (färsk)", + "qty": 150, + "unit": "GRAM", + "optional": false + }, + { + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 75, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "coconut_milk", + "nameSv": "kokosmjölk", + "qty": 2, "unit": "DECILITER", "optional": false }, { - "ing": "milk_1_5", - "nameSv": "mellanmjölk 1,5 %", - "qty": 8, + "ing": "vegetable_stock_cube", + "nameSv": "grönsaksbuljongtärning", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "rapeseed_oil", + "nameSv": "rapsolja", + "qty": 1, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "cumin", + "nameSv": "spiskummin", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "paprika_powder", + "nameSv": "paprikapulver", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "salt", + "nameSv": "salt", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "black_pepper", + "nameSv": "svartpeppar", + "qty": 1, + "unit": "MILLILITER", + "optional": false + } + ], + "steps": [ + { + "text": "Skölj de röda linserna noga. Skala och tärna potatis och morötter. Hacka löken och finhacka vitlöken." + }, + { + "text": "Hetta upp rapsolja i en stor kastrull eller gryta. Fräs lök, vitlök, spiskummin och paprikapulver i cirka 3-4 minuter tills löken är mjuk och kryddorna doftar." + }, + { + "text": "Tillsätt tärnad potatis, morötter och de sköljda linserna. Häll i krossade tomater, kokosmjölk och smula ner grönsaksbuljongtärningen. Tillsätt 4 deciliter vatten." + }, + { + "text": "Låt grytan koka upp, sänk sedan värmen och låt sjuda under lock i cirka 20-25 minuter, eller tills potatis och linser är mjuka.", + "tip": "Rör om då och då för att förhindra att linserna fastnar i botten." + }, + { + "text": "Rör ner jordnötssmöret i grytan tills det smält och blandats väl. Tillsätt färsk spenat och låt den mjukna i grytan i någon minut." + }, + { + "text": "Smaka av grytan med salt och svartpeppar. Servera den vegetariska jordnötsgrytan som den är, eller med en klick yoghurt om så önskas." + } + ] + }, + { + "slug": "nudelwok-med-tofu-och-jordnotssas", + "titleSv": "Nudelwok med Tofu och Jordnötssås", + "descriptionSv": "En snabb och smakrik nudelwok med krispiga grönsaker, stekt tofu och en ljuvlig jordnötssås. Perfekt för en vardag när du vill ha något gott och enkelt.", + "cuisine": "swedish", + "mealTypes": [ + "dinner" + ], + "tags": [ + "quick", + "high_protein" + ], + "methods": [ + "stovetop" + ], + "equipment": [ + "stove" + ], + "difficulty": "beginner", + "prepMin": 20, + "cookMin": 20, + "portions": 4, + "spiceLevel": 2, + "mealPrepFriendly": true, + "freezerFriendly": false, + "peakSeasons": [], + "holidayTags": [], + "variantType": "standard", + "dnaProtein": "tofu", + "dnaVegetables": [ + "garlic", + "onion", + "carrot" + ], + "dnaFlavor": [ + "fresh", + "balanced" + ], + "verificationStatus": "verified", + "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2-3 dagar. Ej lämplig för infrysning på grund av nudlarna.", + "ingredients": [ + { + "ing": "tofu", + "nameSv": "tofu (naturell)", + "qty": 300, + "unit": "GRAM", + "note": "fast, pressad och tärnad", + "optional": false + }, + { + "ing": "noodles_egg", + "nameSv": "äggnudlar (torra)", + "qty": 250, + "unit": "GRAM", + "optional": false + }, + { + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 75, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "soy_sauce", + "nameSv": "soja (japansk)", + "qty": 3, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "lime", + "nameSv": "lime", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "coconut_milk", + "nameSv": "kokosmjölk", + "qty": 1, "unit": "DECILITER", "optional": false }, + { + "ing": "ginger", + "nameSv": "ingefära (färsk)", + "qty": 15, + "unit": "GRAM", + "note": "riven", + "optional": false + }, + { + "ing": "garlic", + "nameSv": "vitlök", + "qty": 2, + "unit": "CLOVE", + "note": "pressad eller finhackad", + "optional": false + }, + { + "ing": "onion", + "nameSv": "gul lök", + "qty": 1, + "unit": "COUNT", + "note": "strimlad", + "optional": false + }, + { + "ing": "bell_pepper", + "nameSv": "paprika", + "qty": 1, + "unit": "COUNT", + "note": "valfri färg, strimlad", + "optional": false + }, + { + "ing": "carrot", + "nameSv": "morot", + "qty": 1, + "unit": "COUNT", + "note": "skalad och strimlad", + "optional": false + }, + { + "ing": "broccoli", + "nameSv": "broccoli", + "qty": 1, + "unit": "COUNT", + "note": "i små buketter", + "optional": false + }, + { + "ing": "mushroom", + "nameSv": "champinjoner", + "qty": 150, + "unit": "GRAM", + "note": "skivade", + "optional": false + }, + { + "ing": "rapeseed_oil", + "nameSv": "rapsolja", + "qty": 2, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "sesame_seeds", + "nameSv": "sesamfrön", + "qty": 1, + "unit": "TABLESPOON", + "note": "till garnering", + "optional": false + }, { "ing": "salt", "nameSv": "salt", @@ -559,268 +526,210 @@ "optional": false }, { - "ing": "banana", - "nameSv": "banan", - "qty": 2, - "unit": "COUNT", - "optional": false - }, - { - "ing": "cinnamon", - "nameSv": "kanel", - "qty": 1, - "unit": "TEASPOON", - "optional": false - } - ], - "steps": [ - { - "text": "Blanda havregryn, mjölk och salt i en kastrull." - }, - { - "text": "Koka upp under omrörning och låt gröten sjuda på svag värme i cirka 3-5 minuter, eller tills den har önskad konsistens. Rör om då och då.", - "timerSeconds": 300, - "tip": "Tillsätt mer mjölk om du vill ha en lösare gröt." - }, - { - "text": "Skala och skiva bananerna." - }, - { - "text": "Fördela gröten i skålar och toppa med skivad banan och kanel. Servera genast." - } - ] - }, - { - "slug": "yoghurt-med-jordgubbar-och-havregryn", - "titleSv": "Yoghurt med jordgubbar och havregryn", - "descriptionSv": "En fräsch och enkel frukost eller mellanmål med krämig yoghurt, söta jordgubbar och knapriga havregryn.", - "cuisine": "swedish", - "mealTypes": [ - "breakfast" - ], - "tags": [ - "quick", - "kid_friendly" - ], - "methods": [ - "no_cook" - ], - "equipment": [], - "difficulty": "beginner", - "prepMin": 5, - "cookMin": 0, - "portions": 4, - "spiceLevel": 0, - "mealPrepFriendly": false, - "freezerFriendly": false, - "peakSeasons": [], - "holidayTags": [], - "variantType": "standard", - "dnaCarb": "oats", - "dnaVegetables": [], - "dnaFlavor": [ - "fresh", - "balanced" - ], - "verificationStatus": "verified", - "storageGuidanceSv": "Bör ätas direkt för bästa upplevelse. Förvara ingredienserna separat och montera vid servering.", - "ingredients": [ - { - "ing": "yoghurt_natural", - "nameSv": "naturell yoghurt 3 %", - "qty": 8, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "strawberry", - "nameSv": "jordgubbar (färska eller frysta)", - "qty": 200, - "unit": "GRAM", - "optional": false - }, - { - "ing": "oats", - "nameSv": "havregryn", - "qty": 1, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "honey", - "nameSv": "honung", - "qty": 20, - "unit": "GRAM", - "note": "för sötma", - "optional": true - } - ], - "steps": [ - { - "text": "Skölj och skiva jordgubbarna om de är färska. Om de är frysta, tina dem lätt." - }, - { - "text": "Fördela yoghurten i fyra skålar." - }, - { - "text": "Toppa yoghurten med skivade jordgubbar och havregryn." - }, - { - "text": "Ringla över lite honung om så önskas. Servera genast." - } - ] - }, - { - "slug": "yoghurt-med-apple-banan-och-kanel", - "titleSv": "Yoghurt med äpple, banan och kanel", - "descriptionSv": "En enkel och näringsrik frukost eller mellanmål med naturell yoghurt, färsk frukt och en touch av kanel.", - "cuisine": "swedish", - "mealTypes": [ - "breakfast" - ], - "tags": [ - "quick", - "kid_friendly" - ], - "methods": [ - "no_cook" - ], - "equipment": [], - "difficulty": "beginner", - "prepMin": 5, - "cookMin": 0, - "portions": 4, - "spiceLevel": 0, - "mealPrepFriendly": false, - "freezerFriendly": false, - "peakSeasons": [], - "holidayTags": [], - "variantType": "standard", - "dnaVegetables": [], - "dnaFlavor": [ - "fresh", - "balanced" - ], - "verificationStatus": "verified", - "storageGuidanceSv": "Bör ätas direkt för bästa upplevelse. Förvara ingredienserna separat och montera vid servering.", - "ingredients": [ - { - "ing": "yoghurt_natural", - "nameSv": "naturell yoghurt 3 %", - "qty": 8, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "apple", - "nameSv": "äpple", - "qty": 1, - "unit": "COUNT", - "optional": false - }, - { - "ing": "banana", - "nameSv": "banan", - "qty": 1, - "unit": "COUNT", - "optional": false - }, - { - "ing": "cinnamon", - "nameSv": "kanel", + "ing": "black_pepper", + "nameSv": "svartpeppar", "qty": 0.5, + "unit": "MILLILITER", + "optional": false + } + ], + "steps": [ + { + "text": "Koka äggnudlarna enligt anvisningarna på förpackningen. Häll av vattnet och skölj nudlarna i kallt vatten för att förhindra att de klibbar ihop. Låt rinna av ordentligt." + }, + { + "text": "Pressa ut vätska ur tofun och tärna den. Hetta upp 1 matsked rapsolja i en stor wok eller stekpanna. Stek tofun gyllene och krispig på alla sidor, cirka 5-7 minuter. Ta upp tofun och lägg åt sidan.", + "tip": "Att pressa tofun innan stekning ger en fastare konsistens." + }, + { + "text": "Tillsätt ytterligare 1 matsked rapsolja i woken. Fräs strimlad lök, pressad vitlök och riven ingefära i 2 minuter. Tillsätt strimlad morot, paprika, broccolibuketter och skivade champinjoner. Woka i 5-7 minuter tills grönsakerna är mjuka men fortfarande har lite tuggmotstånd.", + "tip": "Woka grönsakerna på hög värme för att behålla krispigheten." + }, + { + "text": "Blanda jordnötssmör, soja, saften från en lime och kokosmjölk i en skål till en slät sås.", + "tip": "Om såsen är för tjock, tillsätt en skvätt vatten." + }, + { + "text": "Lägg tillbaka tofun i woken med grönsakerna. Tillsätt de kokta nudlarna och häll över jordnötssåsen. Blanda allt väl och värm igenom i 2-3 minuter." + }, + { + "text": "Smaka av med salt och svartpeppar. Servera genast, gärna toppat med sesamfrön." + } + ] + }, + { + "slug": "kottfarsbiffar-med-jordnotssmak-och-ugnsrostad-potatis", + "titleSv": "Köttfärsbiffar med Jordnötssmak och Ugnsrostad Potatis", + "descriptionSv": "Saftiga köttfärsbiffar med en oväntad touch av jordnötssmör, serverade med krispig ugnsrostad potatis och en fräsch yoghurtsås. En spännande twist på en klassisk vardagsrätt.", + "cuisine": "swedish", + "mealTypes": [ + "dinner" + ], + "tags": [ + "quick", + "high_protein" + ], + "methods": [ + "stovetop" + ], + "equipment": [ + "stove" + ], + "difficulty": "beginner", + "prepMin": 25, + "cookMin": 40, + "portions": 4, + "spiceLevel": 1, + "mealPrepFriendly": true, + "freezerFriendly": true, + "peakSeasons": [], + "holidayTags": [], + "variantType": "standard", + "dnaProtein": "minced_beef", + "dnaCarb": "potato", + "dnaVegetables": [ + "onion", + "garlic", + "cucumber" + ], + "dnaFlavor": [ + "fresh", + "balanced" + ], + "verificationStatus": "verified", + "storageGuidanceSv": "Förvara eventuella rester i en lufttät behållare i kylskåp i upp till 2-3 dagar. Biffarna går bra att frysa in.", + "ingredients": [ + { + "ing": "minced_beef", + "nameSv": "nötfärs 10 %", + "qty": 500, + "unit": "GRAM", + "optional": false + }, + { + "ing": "peanut_butter", + "nameSv": "jordnötssmör", + "qty": 50, + "unit": "GRAM", + "note": "slät", + "optional": false + }, + { + "ing": "egg", + "nameSv": "ägg", + "qty": 1, + "unit": "COUNT", + "optional": false + }, + { + "ing": "breadcrumbs", + "nameSv": "ströbröd", + "qty": 30, + "unit": "GRAM", + "optional": false + }, + { + "ing": "milk_3", + "nameSv": "standardmjölk 3 %", + "qty": 0.5, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "onion", + "nameSv": "gul lök", + "qty": 0.5, + "unit": "COUNT", + "note": "finhackad", + "optional": false + }, + { + "ing": "garlic", + "nameSv": "vitlök", + "qty": 1, + "unit": "CLOVE", + "note": "pressad eller finhackad", + "optional": false + }, + { + "ing": "potato", + "nameSv": "potatis", + "qty": 6, + "unit": "COUNT", + "note": "medelstora, skalade och klyftade", + "optional": false + }, + { + "ing": "rapeseed_oil", + "nameSv": "rapsolja", + "qty": 2, + "unit": "TABLESPOON", + "optional": false + }, + { + "ing": "salt", + "nameSv": "salt", + "qty": 1, "unit": "TEASPOON", "optional": false }, { - "ing": "honey", - "nameSv": "honung", + "ing": "black_pepper", + "nameSv": "svartpeppar", + "qty": 1, + "unit": "MILLILITER", + "optional": false + }, + { + "ing": "paprika_powder", + "nameSv": "paprikapulver", + "qty": 1, + "unit": "TEASPOON", + "optional": false + }, + { + "ing": "yoghurt_natural", + "nameSv": "naturell yoghurt 3 %", + "qty": 2, + "unit": "DECILITER", + "optional": false + }, + { + "ing": "cucumber", + "nameSv": "gurka", + "qty": 0.5, + "unit": "COUNT", + "note": "riven", + "optional": false + }, + { + "ing": "dill", + "nameSv": "dill (färsk)", "qty": 10, "unit": "GRAM", - "note": "för sötma", - "optional": true - } - ], - "steps": [ - { - "text": "Skölj äpplet, kärna ur och tärna det i små bitar. Skala bananen och skiva den." - }, - { - "text": "Fördela yoghurten i fyra skålar." - }, - { - "text": "Toppa yoghurten med tärnat äpple och skivad banan." - }, - { - "text": "Strö över kanel och ringla eventuellt över lite honung. Servera genast." - } - ] - }, - { - "slug": "yoghurt-med-honung-och-en-nypa-kanel", - "titleSv": "Yoghurt med honung och en nypa kanel", - "descriptionSv": "En enkel och klassisk frukost eller mellanmål som är snabb att svänga ihop. Naturell yoghurt med sötma från honung och värmande kanel.", - "cuisine": "swedish", - "mealTypes": [ - "breakfast" - ], - "tags": [ - "quick", - "kid_friendly" - ], - "methods": [ - "no_cook" - ], - "equipment": [], - "difficulty": "beginner", - "prepMin": 2, - "cookMin": 0, - "portions": 4, - "spiceLevel": 0, - "mealPrepFriendly": false, - "freezerFriendly": false, - "peakSeasons": [], - "holidayTags": [], - "variantType": "standard", - "dnaVegetables": [], - "dnaFlavor": [ - "fresh", - "balanced" - ], - "verificationStatus": "verified", - "storageGuidanceSv": "Bör ätas direkt för bästa upplevelse. Förvara ingredienserna separat och montera vid servering.", - "ingredients": [ - { - "ing": "yoghurt_natural", - "nameSv": "naturell yoghurt 3 %", - "qty": 8, - "unit": "DECILITER", - "optional": false - }, - { - "ing": "honey", - "nameSv": "honung", - "qty": 40, - "unit": "GRAM", - "optional": false - }, - { - "ing": "cinnamon", - "nameSv": "kanel", - "qty": 0.5, - "unit": "TEASPOON", + "note": "finhackad", "optional": false } ], "steps": [ { - "text": "Fördela yoghurten i fyra skålar." + "text": "Sätt ugnen på 225°C. Skala och klyfta potatisen. Lägg potatisklyftorna på en bakplåt, ringla över 1 matsked rapsolja, strö över paprikapulver, 0.5 tesked salt och 0.5 milliliter svartpeppar. Blanda väl. Rosta i ugnen i cirka 30-35 minuter, eller tills potatisen är mjuk och gyllene.", + "temperatureC": 225, + "tip": "Vänd potatisen efter halva tiden för jämn rostning." }, { - "text": "Ringla generöst med honung över yoghurten i varje skål." + "text": "Blanda ströbröd med mjölk i en stor bunke och låt svälla i några minuter. Tillsätt nötfärs, jordnötssmör, ägg, finhackad lök, pressad vitlök, 0.5 tesked salt och 0.5 milliliter svartpeppar. Arbeta ihop till en jämn färs.", + "tip": "Använd händerna för att blanda färsen ordentligt." }, { - "text": "Strö över en nypa kanel på varje portion. Servera genast." + "text": "Forma färsen till 8-12 biffar. Hetta upp 1 matsked rapsolja i en stekpanna på medelhög värme. Stek biffarna i omgångar i cirka 4-5 minuter per sida, tills de är helt genomstekta och inte längre rosa i mitten.", + "tip": "Se till att inte överfylla pannan, stek hellre i flera omgångar." + }, + { + "text": "Under tiden, förbered yoghurtsåsen: Blanda naturell yoghurt med riven gurka och finhackad dill. Smaka av med en nypa salt och peppar." + }, + { + "text": "Servera de jordnötsdoftande köttfärsbiffarna med den ugnsrostade potatisen och den fräscha yoghurtsåsen." } ] } diff --git a/packages/recipe-generation/output/gapfill-nullcells-rejects.json b/packages/recipe-generation/output/gapfill-nullcells-rejects.json index 9e15869..31427f1 100644 --- a/packages/recipe-generation/output/gapfill-nullcells-rejects.json +++ b/packages/recipe-generation/output/gapfill-nullcells-rejects.json @@ -1,58 +1,5 @@ { - "batchId": "gapfill-nullcells-1786405187104", - "generatedAt": "2026-08-10T23:39:47.104Z", - "rejects": [ - { - "target": { - "mealType": "breakfast", - "mainIngredientId": "banana", - "dietVariant": "standard", - "count": 3 - }, - "title": "Bananpannkakor med havregryn", - "status": "unverified", - "reasons": [ - "Receptet innehåller rått kött/fågel/ägg/fisk men saknar steg för genomstekning/temperatur." - ] - }, - { - "target": { - "mealType": "dinner", - "mainIngredientId": "pork_loin", - "dietVariant": "standard", - "count": 3 - }, - "title": "Äppelskivor med jordnötssmör", - "status": "unverified", - "reasons": [ - "Endast 2 ingredienser — minst 3 krävs." - ] - }, - { - "target": { - "mealType": "breakfast", - "mainIngredientId": "banana", - "dietVariant": "standard", - "count": 3 - }, - "title": "Banan med jordnötssmör", - "status": "unverified", - "reasons": [ - "Endast 2 ingredienser — minst 3 krävs." - ] - }, - { - "target": { - "mealType": "dinner", - "mainIngredientId": "pork_loin", - "dietVariant": "standard", - "count": 3 - }, - "title": "Jordnötssmörsröra på surdegsbröd", - "status": "unverified", - "reasons": [ - "Näring kunde inte beräknas för: bread_sourdough" - ] - } - ] + "batchId": "gapfill-nullcells-1786450738528", + "generatedAt": "2026-08-11T12:18:58.528Z", + "rejects": [] } \ No newline at end of file diff --git a/packages/recipe-generation/output/gapfill-nullcells-summary.json b/packages/recipe-generation/output/gapfill-nullcells-summary.json index 480a07c..534931b 100644 --- a/packages/recipe-generation/output/gapfill-nullcells-summary.json +++ b/packages/recipe-generation/output/gapfill-nullcells-summary.json @@ -1,11 +1,11 @@ { - "batchId": "gapfill-nullcells-1786405187104", - "generatedAt": "2026-08-10T23:39:47.104Z", + "batchId": "gapfill-nullcells-1786450738530", + "generatedAt": "2026-08-11T12:18:58.530Z", "geminiStatus": "ok", - "geminiCostUsd": 0.0033332249999999996, - "candidatesGenerated": 12, - "verified": 8, - "unverified": 4, + "geminiCostUsd": 0.0024604500000000003, + "candidatesGenerated": 4, + "verified": 4, + "unverified": 0, "rejected": 0, "exportPath": "/home/dator_ubuntujpb/.openclaw/workspace/cibello-work/cibello/packages/recipe-generation/output/gapfill-nullcells-export.json", "rejectsPath": "/home/dator_ubuntujpb/.openclaw/workspace/cibello-work/cibello/packages/recipe-generation/output/gapfill-nullcells-rejects.json"