# import_log

created_at: 2026-04-01 02:05:33.490253
status: success
provider: claude
filename: Banana_Bread.pdf
recipe_title: Banana Bread
unmatched_items: []
modifier_results: [{"ingredient": "Banana", "ingredient_id": 982, "modifiers": ["mashed"]}]
unit_warnings: []
resolution_tiers: {"exact": 9}
raw_ai_response:
  {"title": "Banana Bread", "description": "A classic American banana bread made with ripe mashed bananas and optional walnuts. Moist, tender, and perfect for using up overripe bananas.", "servings": 8, "prep_time": 15, "cook_time": 60, "cuisine": "American", "tags": ["Comfort Food", "Baked", "Family Friendly", "Make Ahead", "Freezer Friendly", "Sweet"], "culinary_type": "Bread & Pastry", "instructions": "Step 1: Preheat oven to 350 degrees F. Grease a 9x5 inch loaf pan.\nStep 2: In a large bowl, mix mashed bananas with melted butter.\nStep 3: Mix in sugar, beaten egg, and vanilla extract.\nStep 4: Sprinkle baking soda and salt over mixture and stir to combine.\nStep 5: Add flour and mix until just combined. Do not overmix.\nStep 6: Fold in walnuts if using.\nStep 7: Pour batter into prepared loaf pan.\nStep 8: Bake for 55-65 minutes until a toothpick inserted in center comes out clean.\nStep 9: Let cool in pan for 10 minutes then turn out onto a wire rack to cool completely.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Banana", "quantity": "3", "unit": "whole", "modifiers": "ripe, mashed", "package_qty": "", "package_unit": ""}, {"name": "Butter", "quantity": "1/3", "unit": "cup", "modifiers": "unsalted, melted", "package_qty": "", "package_unit": ""}, {"name": "Sugar", "quantity": "3/4", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Egg", "quantity": "1", "unit": "whole", "modifiers": "beaten", "package_qty": "", "package_unit": ""}, {"name": "Vanilla Extract", "quantity": "1", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Baking Soda", "quantity": "1", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1/4", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Flour", "quantity": "1 1/2", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Walnuts", "quantity": "1/2", "unit": "cup", "modifiers": "chopped, optional", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:33:57.286834
status: success
provider: claude
filename: Baked_Salmon_With_Garlic_Rosemary__Thyme.pdf
recipe_title: Baked Salmon in Foil with Garlic, Rosemary and Thyme {Whole30, Keto}
unmatched_items: []
modifier_results: []
unit_warnings: []
resolution_tiers: {"exact": 9}
raw_ai_response:
  {"title": "Baked Salmon in Foil with Garlic, Rosemary and Thyme {Whole30, Keto}", "description": "A simple and delicious baked salmon fillet coated in melted ghee, garlic, and fresh herbs, wrapped in foil and finished under the broiler for a lightly crispy top.", "servings": 8, "prep_time": 12, "cook_time": 18, "cuisine": "American", "tags": ["Baked", "High Protein", "Low Carb", "Weeknight", "Few Ingredients", "Dinner Party"], "culinary_type": "Main Course", "instructions": "Step 1: Preheat your oven to 400\u00b0F and line a large baking sheet with foil, extra long to wrap the salmon later on. Spray the foil with avocado oil cooking spray.\nStep 2: In a bowl, whisk together the ghee, garlic, rosemary, and thyme. Pat the salmon dry and sprinkle all over on both sides with sea salt and black pepper.\nStep 3: Pour the ghee mixture over the salmon to evenly coat, rubbing the ghee on the skin underneath too to coat (it will crisp up a little this way). Sprinkle the lemon juice over the top of the salmon.\nStep 4: Wrap the salmon with the foil, using extra to cover the top. Bake near the bottom of the preheated oven for about 18-20 minutes or until just cooked through (exact cook time will depend on thickness).\nStep 5: Unwrap the salmon so the top is completely exposed and switch the oven to broil. Place the unwrapped salmon under the broiler for about 3-4 minutes, watching it to prevent burning, until the top is browned to preference.\nStep 6: Remove from the oven, sprinkle with minced parsley and serve immediately. Store leftovers in a sealed container in the refrigerator for up to 3-4 days.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Salmon", "quantity": "3", "unit": "lb", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}, {"name": "Black Pepper", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}, {"name": "Ghee", "quantity": "6", "unit": "tbsp", "modifiers": "melted", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "4", "unit": "clove", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Rosemary", "quantity": "2", "unit": "tsp", "modifiers": "fresh, minced", "package_qty": "", "package_unit": ""}, {"name": "Thyme", "quantity": "2", "unit": "tsp", "modifiers": "fresh", "package_qty": "", "package_unit": ""}, {"name": "Lemon Juice", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Parsley", "quantity": "1", "unit": "tbsp", "modifiers": "minced, for garnish", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:37:35.891510
status: partial
provider: claude
filename: Breaded_Parmesan_Chicken.pdf
recipe_title: Breaded Parmesan Chicken
unmatched_items: ["herb-seasoned stuffing mix"]
modifier_results: []
unit_warnings: []
resolution_tiers: {"failed": 1, "exact": 6}
raw_ai_response:
  {"title": "Breaded Parmesan Chicken", "description": "A filling, rich breaded chicken that is baked. A comfort food that is good with mashed potatoes.", "servings": 4, "prep_time": 10, "cook_time": 45, "cuisine": "American", "tags": ["Comfort Food", "Baked", "Family Friendly", "Weeknight", "High Protein"], "culinary_type": "Main Course", "instructions": "Step 1: Preheat oven to 350 degrees F (175 degrees C).\nStep 2: In a small shallow dish combine the stuffing mix, cheese, parsley, curry powder and seasoning. Mix together.\nStep 3: In an 8x11 inch baking dish, melt the butter in the microwave. Dip the chicken breasts in the stuffing mixture, coating both sides of each breast.\nStep 4: Place chicken in baking dish and sprinkle any leftover stuffing mixture over the chicken. Bake in the preheated oven for 20 minutes, then turn chicken pieces over and bake for another 20 to 25 minutes or until chicken is cooked through. Enjoy!", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "herb-seasoned stuffing mix", "quantity": "1/2", "unit": "cup", "modifiers": "finely crushed", "package_qty": "", "package_unit": ""}, {"name": "Parmesan Cheese", "quantity": "3", "unit": "tbsp", "modifiers": "grated", "package_qty": "", "package_unit": ""}, {"name": "Parsley", "quantity": "1", "unit": "tbsp", "modifiers": "dried", "package_qty": "", "package_unit": ""}, {"name": "Curry Powder", "quantity": "1", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Italian Seasoning", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Butter", "quantity": "3", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Chicken Breast", "quantity": "6", "unit": "whole", "modifiers": "skinless, boneless", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:38:22.957864
status: partial
provider: claude
filename: Easy_Weeknight_Garlic_Chicken_Parmesan.pdf
recipe_title: Easy Weeknight Garlic Chicken Parmesan
unmatched_items: ["butter crackers", "Mezzetta Napa Valley Homemade pasta sauce"]
modifier_results: []
unit_warnings: []
resolution_tiers: {"exact": 6, "failed": 2}
raw_ai_response:
  {"title": "Easy Weeknight Garlic Chicken Parmesan", "description": "A quick and easy weeknight dinner featuring crispy garlic butter-coated chicken breasts topped with pasta sauce and melted mozzarella cheese.", "servings": 4, "prep_time": 10, "cook_time": 40, "cuisine": "Italian", "tags": ["Weeknight", "Baked", "Comfort Food", "Family Friendly", "Under 1 Hour", "High Protein"], "culinary_type": "Main Course", "instructions": "Step 1: In a small bowl, melt the butter and stir in the minced garlic. In a large bowl, stir together the crushed crackers, Parmesan cheese and Italian seasoning.\nStep 2: Dredge the chicken through the butter/garlic mixture.\nStep 3: Next dredge the cracker mixture coating the chicken thoroughly.\nStep 4: Bake in a 375 degree oven for 30-45 minutes or until chicken is done.\nStep 5: Remove from oven.\nStep 6: Top each chicken breast with 1/4 cup of pasta sauce in your choice of flavor.\nStep 7: Add the cheese slices, one per chicken breast or sprinkle 1/4 cup of shredded cheese on each breast.\nStep 8: Place back in the oven for about 5 minutes to melt cheese. Remove as soon as cheese has completely melted.\nStep 9: Serve!", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Chicken Breast", "quantity": "4", "unit": "whole", "modifiers": "boneless, skinless", "package_qty": "", "package_unit": ""}, {"name": "Butter", "quantity": "1/2", "unit": "cup", "modifiers": "melted", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "2", "unit": "tbsp", "modifiers": "finely minced", "package_qty": "", "package_unit": ""}, {"name": "butter crackers", "quantity": "1 1/4", "unit": "cup", "modifiers": "crushed", "package_qty": "", "package_unit": ""}, {"name": "Parmesan Cheese", "quantity": "3/4", "unit": "cup", "modifiers": "grated", "package_qty": "", "package_unit": ""}, {"name": "Italian Seasoning", "quantity": "1", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Mezzetta Napa Valley Homemade pasta sauce", "quantity": "1", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Mozzarella Cheese", "quantity": "4", "unit": "slice", "modifiers": "", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:41:32.695690
status: success
provider: claude
filename: Garlic_Butter_Baked_Salmon.pdf
recipe_title: Garlic Butter Baked Salmon
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 12}
raw_ai_response:
  {"title": "Garlic Butter Baked Salmon", "description": "Sheet Pan Garlic Butter Baked Salmon with crispy potatoes, asparagus and a garlic butter sauce with a touch of lemon. A complete meal on one tray using minimal ingredients.", "servings": 2, "prep_time": 10, "cook_time": 25, "cuisine": "American", "tags": ["One Pan", "Baked", "Weeknight", "High Protein", "Under 1 Hour", "Few Ingredients"], "culinary_type": "Main Course", "instructions": "Step 1: Heat oven to 400\u00b0F | 200\u00b0C. On a large rimmed baking sheet, toss together potatoes with the oil, 1/2 tablespoon of garlic, 1/2 teaspoon salt, and 1/4 teaspoon pepper. Spread out in an even layer and roast for 15 minutes until they're just starting to soften and brown.\nStep 2: Push potatoes to one side of the sheet pan and arrange salmon down the centre. Rub salmon evenly with 1 1/2 tablespoons of the minced garlic and 2 tablespoons of parsley. Add the asparagus to the other side of the pan.\nStep 3: Combine 1/4 cup of lemon juice and 1/4 cup of the melted butter together and pour the mixture over the salmon and asparagus. Season everything with the remaining salt and pepper.\nStep 4: Return to oven and continue baking until the potatoes are golden and fork-tender and the salmon is opaque throughout, about 10 minutes. Optional: broil in the last 2 minutes for charred edges.\nStep 5: Meanwhile, in a small bowl, combine the remaining butter, garlic and lemon juice with the wine (or chicken stock). Serve with the salmon, veggies and lemon slices.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Potato", "quantity": "0.5", "unit": "lb", "modifiers": "fingerling, halved", "package_qty": "", "package_unit": ""}, {"name": "Olive Oil", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "0.75", "unit": "tsp", "modifiers": "divided", "package_qty": "", "package_unit": ""}, {"name": "Black Pepper", "quantity": "0.25", "unit": "tsp", "modifiers": "cracked, divided", "package_qty": "", "package_unit": ""}, {"name": "Salmon", "quantity": "2", "unit": "piece", "modifiers": "skinless, 6 oz each", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "1.25", "unit": "tbsp", "modifiers": "minced, divided", "package_qty": "", "package_unit": ""}, {"name": "Parsley", "quantity": "1", "unit": "tbsp", "modifiers": "fresh, chopped", "package_qty": "", "package_unit": ""}, {"name": "Lemon Juice", "quantity": "0.17", "unit": "cup", "modifiers": "freshly squeezed", "package_qty": "", "package_unit": ""}, {"name": "Butter", "quantity": "0.25", "unit": "cup", "modifiers": "melted, unsalted", "package_qty": "", "package_unit": ""}, {"name": "Asparagus", "quantity": "1.5", "unit": "bunch", "modifiers": "woody ends removed", "package_qty": "", "package_unit": ""}, {"name": "White Wine", "quantity": "1", "unit": "tbsp", "modifiers": "dry", "package_qty": "", "package_unit": ""}, {"name": "Lemon", "quantity": "0.5", "unit": "whole", "modifiers": "sliced, for garnish", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Potato", "ingredient_id": 1186, "modifiers": ["fingerling"]}, {"ingredient": "Black Pepper", "ingredient_id": 1851, "modifiers": ["cracked"]}, {"ingredient": "Salmon", "ingredient_id": 971, "modifiers": ["6 oz each"]}, {"ingredient": "Lemon Juice", "ingredient_id": 1729, "modifiers": ["freshly squeezed"]}, {"ingredient": "Asparagus", "ingredient_id": 1184, "modifiers": ["woody ends removed"]}]


created_at: 2026-04-01 02:42:35.091590
status: success
provider: claude
filename: Garlic_Butter_Shrimp.pdf
recipe_title: Garlic Butter Shrimp
unmatched_items: []
modifier_results: [{"ingredient": "Lemon", "ingredient_id": 1054, "modifiers": ["juiced"]}]
unit_warnings: []
resolution_tiers: {"exact": 8}
raw_ai_response:
  {"title": "Garlic Butter Shrimp", "description": "An amazing flavor combination of garlicky, buttery goodness. So elegant and easy to make in 20 minutes or less.", "servings": 4, "prep_time": 10, "cook_time": 10, "cuisine": "American", "tags": ["Quick", "Under 30 Minutes", "Weeknight", "Stovetop", "Date Night", "Few Ingredients"], "culinary_type": "Main Course", "instructions": "Step 1: Melt 2 tablespoons butter in a large skillet over medium high heat. Add shrimp, salt and pepper, to taste. Cook, stirring occasionally, until pink, about 2-3 minutes; set aside.\nStep 2: Add garlic to the skillet, and cook, stirring frequently, until fragrant, about 1 minute. Stir in chicken stock and lemon juice. Bring to a boil; reduce heat and simmer until reduced by half, about 1-2 minutes. Stir in remaining 6 tablespoons butter, 1 tablespoon at a time, until melted and smooth.\nStep 3: Stir in shrimp and gently toss to combine.\nStep 4: Serve immediately, garnished with parsley leaves, if desired.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Butter", "quantity": "8", "unit": "tbsp", "modifiers": "unsalted, divided", "package_qty": "", "package_unit": ""}, {"name": "Shrimp", "quantity": "1 1/2", "unit": "lb", "modifiers": "medium, peeled, deveined", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "pinch", "modifiers": "kosher, to taste", "package_qty": "", "package_unit": ""}, {"name": "Black Pepper", "quantity": "1", "unit": "pinch", "modifiers": "freshly ground, to taste", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "5", "unit": "clove", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Chicken Broth", "quantity": "1/4", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Lemon", "quantity": "1", "unit": "whole", "modifiers": "juiced, to taste", "package_qty": "", "package_unit": ""}, {"name": "Parsley", "quantity": "2", "unit": "tbsp", "modifiers": "fresh, chopped", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:43:19.982839
status: partial
provider: claude
filename: Italian_Crescent_Casserole.pdf
recipe_title: Italian Crescent Casserole
modifier_results: []
unit_warnings: []
resolution_tiers: {"exact": 2, "failed": 3}
raw_ai_response:
  {"title": "Italian Crescent Casserole", "description": "A quick and easy casserole made with seasoned ground beef and pasta sauce, topped with crescent roll dough and melted Italian cheese blend.", "servings": 6, "prep_time": 10, "cook_time": 20, "cuisine": "Italian", "tags": ["Comfort Food", "Weeknight", "Family Friendly", "Baked", "Few Ingredients", "Budget Friendly"], "culinary_type": "Main Course", "instructions": "Step 1: In skillet, mix cooked beef and pasta sauce. Heat over medium heat until warm.\nStep 2: Separate crescent dough into 8 triangles. Place dough in ungreased 9-inch glass pie plate in spoke pattern, with narrow tips overlapping rim of plate about 3 inches.\nStep 3: Press dough in side and bottom of pan to form crust and cover the pan. Sprinkle with 1 cup of the cheese over dough in the pan.\nStep 4: Spoon meat mixture evenly over cheese.\nStep 5: Bring tips of dough over filling to meet in center; do not overlap.\nStep 6: Sprinkle with remaining 1/2 cup cheese over the dish followed by the basil. Bake at 375\u00b0F 15 to 20 minutes.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Ground Beef", "quantity": "1", "unit": "lb", "modifiers": "cooked, drained", "package_qty": "", "package_unit": ""}, {"name": "garlic tomato pasta sauce", "quantity": "1", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Pillsbury refrigerated crescent dinner rolls", "quantity": "1", "unit": "can", "modifiers": "", "package_qty": "8", "package_unit": "oz"}, {"name": "Italian cheese blend", "quantity": "1 1/2", "unit": "cup", "modifiers": "shredded", "package_qty": "", "package_unit": ""}, {"name": "Basil", "quantity": "1/4", "unit": "tsp", "modifiers": "dried", "package_qty": "", "package_unit": ""}]}

unmatched_items:
  ["garlic tomato pasta sauce", "Pillsbury refrigerated crescent dinner rolls", "Italian cheese blend"]


created_at: 2026-04-01 02:44:13.886125
status: success
provider: claude
filename: Turkey_Meatballs.pdf
recipe_title: Sun-Dried Tomato and Turkey Meatballs
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 9}
raw_ai_response:
  {"title": "Sun-Dried Tomato and Turkey Meatballs", "description": "Flavorful mini turkey meatballs packed with sun-dried tomatoes, parmesan, and Italian herbs. Can be cooked on the stovetop or baked in the oven.", "servings": 48, "prep_time": 15, "cook_time": 25, "cuisine": "Italian", "tags": ["High Protein", "Make Ahead", "Family Friendly", "Stovetop", "Baked", "Freezer Friendly"], "culinary_type": "Appetizer", "instructions": "Step 1: Thoroughly combine all ingredients.\nStep 2: Form into balls (about a 1/2 inch for mini meatballs).\nStep 3: For smaller batches, cook with a little olive oil in a cast iron pan on the stovetop over medium-low heat for about six minutes a side. For large batches, bake on a sheet pan at 375\u00b0F for about 20-25 minutes, turning once if necessary.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Turkey", "quantity": "1", "unit": "lb", "modifiers": "ground", "package_qty": "", "package_unit": ""}, {"name": "Tomato Paste", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Onion", "quantity": "1/2", "unit": "cup", "modifiers": "finely minced", "package_qty": "", "package_unit": ""}, {"name": "Egg", "quantity": "1", "unit": "whole", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Parmesan Cheese", "quantity": "1/2", "unit": "cup", "modifiers": "grated", "package_qty": "", "package_unit": ""}, {"name": "Tomato", "quantity": "1", "unit": "cup", "modifiers": "sun-dried, finely chopped, softened if not packed in olive oil", "package_qty": "", "package_unit": ""}, {"name": "Italian Seasoning", "quantity": "1", "unit": "tsp", "modifiers": "dried", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}, {"name": "Black Pepper", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Tomato", "ingredient_id": 1177, "modifiers": ["softened if not packed in olive oil"]}]


created_at: 2026-04-01 02:45:08.770077
status: success
provider: claude
filename: Baked_Halibut_with_Herb_Crust.pdf
recipe_title: Baked Halibut with Herb Crust
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 11}
raw_ai_response:
  {"title": "Baked Halibut with Herb Crust", "description": "Tender halibut fillets topped with a golden, herb-infused panko crust made with fresh parsley, dill, lemon zest, and Parmesan. Ready in about 25 minutes, with an air fryer adaptation included.", "servings": 4, "prep_time": 10, "cook_time": 15, "cuisine": "American", "tags": ["Quick", "Under 30 Minutes", "Baked", "Light", "High Protein", "Weeknight"], "culinary_type": "Main Course", "instructions": "Step 1: Preheat oven to 400\u00b0F (200\u00b0C).\nStep 2: Pat halibut dry and season with salt and pepper.\nStep 3: In a bowl, mix panko, parsley, dill, lemon zest, Parmesan, and melted butter until crumbly and evenly coated.\nStep 4: Brush halibut fillets with olive oil, then press the breadcrumb mixture firmly onto the top of each fillet.\nStep 5: Place on a lightly greased baking sheet or in a parchment-lined dish.\nStep 6: Bake for 12\u201315 minutes, until the fish is opaque and flakes easily. The crust should be golden brown.\nStep 7: Serve immediately with lemon wedges.\n\nAir Fryer Adaptation:\nStep 1: Prep fillets exactly as in the herb-crust recipe.\nStep 2: Preheat air fryer to 380\u00b0F (193\u00b0C).\nStep 3: Cook fillets in a single layer for 8\u201310 minutes, crust-side up only (do not flip).\nStep 4: Check internal temperature \u2014 should reach 130\u2013135\u00b0F (54\u201357\u00b0C). Rest for 2 minutes before serving.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Halibut", "quantity": "4", "unit": "piece", "modifiers": "skinless, ~6 oz each", "package_qty": "", "package_unit": ""}, {"name": "Olive Oil", "quantity": "2", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Panko", "quantity": "1", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Parsley", "quantity": "2", "unit": "tbsp", "modifiers": "fresh, chopped", "package_qty": "", "package_unit": ""}, {"name": "Dill", "quantity": "2", "unit": "tbsp", "modifiers": "fresh, chopped", "package_qty": "", "package_unit": ""}, {"name": "Lemon", "quantity": "1", "unit": "tbsp", "modifiers": "fresh, zest only", "package_qty": "", "package_unit": ""}, {"name": "Parmesan Cheese", "quantity": "1/4", "unit": "cup", "modifiers": "grated", "package_qty": "", "package_unit": ""}, {"name": "Butter", "quantity": "2", "unit": "tbsp", "modifiers": "unsalted, melted", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}, {"name": "Black Pepper", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}, {"name": "Lemon", "quantity": "1", "unit": "whole", "modifiers": "cut into wedges, for serving", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Halibut", "ingredient_id": 1817, "modifiers": ["~6 oz each"]}, {"ingredient": "Lemon", "ingredient_id": 1054, "modifiers": ["zest only"]}]


created_at: 2026-04-01 02:46:23.478961
status: partial
provider: claude
filename: Crispy_pepper_and_ham_pizza.pdf
recipe_title: Crispy Pepper and Ham Pizza
unmatched_items: ["pizza sauce"]
unit_warnings: []
resolution_tiers: {"exact": 13, "failed": 1}
raw_ai_response:
  {"title": "Crispy Pepper and Ham Pizza", "description": "A homemade crispy pizza featuring a yeast-based crust topped with pizza sauce, ham, roasted red peppers, Gorgonzola, mozzarella, fresh basil, and minced garlic, baked on a pizza stone for golden edges.", "servings": 4, "prep_time": 25, "cook_time": 14, "cuisine": "Italian", "tags": ["Baked", "Weekend Project", "Family Friendly", "Savory", "Crispy", "Date Night"], "culinary_type": "Main Course", "instructions": "Step 1: In a small bowl, dissolve yeast and sugar in warm water; let stand for 5 minutes.\nStep 2: In a medium bowl, stir together flour and salt.\nStep 3: Pour yeast mixture over flour mixture and mix well with a spoon until dough begins to pull away from sides of the bowl.\nStep 4: Preheat pizza stone in oven at 450\u00b0F for 15 minutes.\nStep 5: Turn dough onto floured surface and knead for 2 minutes, until smooth and elastic.\nStep 6: Sprinkle surface with corn meal and roll dough into a 12-inch circle.\nStep 7: Spread sauce evenly over crust, leaving a 1/2 inch edge.\nStep 8: Sprinkle with remaining toppings.\nStep 9: Carefully slide pizza onto hot stone.\nStep 10: Bake 10-14 minutes, until crisp and edges are golden.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Yeast", "quantity": "2 1/4", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Granulated Sugar", "quantity": "1/4", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Water", "quantity": "3/4", "unit": "cup", "modifiers": "warm", "package_qty": "", "package_unit": ""}, {"name": "Flour", "quantity": "1 3/4", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1/2", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Corn", "quantity": "1", "unit": "pinch", "modifiers": "corn meal, as needed", "package_qty": "", "package_unit": ""}, {"name": "pizza sauce", "quantity": "1/2", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Tomato", "quantity": "1", "unit": "whole", "modifiers": "medium, thinly sliced", "package_qty": "", "package_unit": ""}, {"name": "Ham", "quantity": "1", "unit": "cup", "modifiers": "coarsely chopped", "package_qty": "", "package_unit": ""}, {"name": "Capsicum", "quantity": "1/2", "unit": "cup", "modifiers": "roasted, red, sliced", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "1", "unit": "tbsp", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Blue Cheese", "quantity": "1/3", "unit": "cup", "modifiers": "crumbled, Gorgonzola", "package_qty": "", "package_unit": ""}, {"name": "Basil", "quantity": "4", "unit": "leaf", "modifiers": "fresh, chopped", "package_qty": "", "package_unit": ""}, {"name": "Mozzarella Cheese", "quantity": "1/3", "unit": "cup", "modifiers": "shredded", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Corn", "ingredient_id": 873, "modifiers": ["corn meal"]}, {"ingredient": "Blue Cheese", "ingredient_id": 880, "modifiers": ["crumbled", "Gorgonzola"]}]


created_at: 2026-04-01 02:47:36.669365
status: success
provider: claude
filename: Pepper_calzones.pdf
recipe_title: Pepper Calzones
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 18}
raw_ai_response:
  {"title": "Pepper Calzones", "description": "A pizza-in-a-pocket recipe filled with ricotta cheese, bell peppers, and onions. Can be prepared ahead and refrigerated or frozen for a quick lunch.", "servings": 4, "prep_time": 30, "cook_time": 25, "cuisine": "Italian", "tags": ["Make Ahead", "Baked", "Family Friendly", "Low Calorie", "Freezer Friendly", "Weeknight"], "culinary_type": "Main Course", "instructions": "Step 1: Make dough: Combine warm water and sugar in large bowl. Sprinkle yeast over top; let stand 10 minutes until creamy.\nStep 2: Stir in whole wheat flour with a large wooden spoon. Cover and let stand in a warm, draft-free place 30 to 40 minutes until mixture is slightly bubbly around edges.\nStep 3: Stir in olive oil and salt. Gradually stir in 1 1/2 cups all-purpose flour until dough forms. Add remaining flour as needed. Knead dough until smooth and elastic.\nStep 4: Make filling: Heat olive oil in a skillet over medium heat. Add chopped onions, red bell pepper, green bell pepper, and minced garlic. Cook until softened.\nStep 5: In a bowl, combine ricotta cheese, Romano or Parmesan cheese, oregano, salt, and pepper. Stir in cooked vegetable mixture.\nStep 6: Preheat oven to appropriate temperature. Divide dough into portions and roll each into a circle. Place filling on one half of each circle, fold over, and seal edges.\nStep 7: Place calzones on baking sheet coated with vegetable cooking spray. Bake 23 to 25 minutes until golden brown.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Water", "quantity": "1", "unit": "cup", "modifiers": "warm, 105 to 115 degrees", "package_qty": "", "package_unit": ""}, {"name": "Granulated Sugar", "quantity": "1/2", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Yeast", "quantity": "1", "unit": "tsp", "modifiers": "active dry", "package_qty": "", "package_unit": ""}, {"name": "Wheat", "quantity": "1", "unit": "cup", "modifiers": "whole wheat flour", "package_qty": "", "package_unit": ""}, {"name": "Olive Oil", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1/2", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Flour", "quantity": "1 1/2", "unit": "cup", "modifiers": "all-purpose", "package_qty": "", "package_unit": ""}, {"name": "Ricotta Cheese", "quantity": "3/4", "unit": "cup", "modifiers": "part-skim", "package_qty": "", "package_unit": ""}, {"name": "Romano Cheese", "quantity": "2", "unit": "tbsp", "modifiers": "freshly grated", "package_qty": "", "package_unit": ""}, {"name": "Oregano", "quantity": "2", "unit": "tsp", "modifiers": "fresh, chopped", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1/2", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Black Pepper", "quantity": "1/4", "unit": "tsp", "modifiers": "freshly ground", "package_qty": "", "package_unit": ""}, {"name": "Olive Oil", "quantity": "1", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Onion", "quantity": "1", "unit": "cup", "modifiers": "chopped", "package_qty": "", "package_unit": ""}, {"name": "Bell Pepper", "quantity": "1", "unit": "whole", "modifiers": "red, cut into 1/4-inch dice", "package_qty": "", "package_unit": ""}, {"name": "Bell Pepper", "quantity": "1", "unit": "whole", "modifiers": "green, cut into 1/4-inch dice", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "1/2", "unit": "tsp", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Cooking Spray", "quantity": "1", "unit": "whole", "modifiers": "vegetable", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Water", "ingredient_id": 1583, "modifiers": ["105 to 115 degrees"]}, {"ingredient": "Wheat", "ingredient_id": 1262, "modifiers": ["whole wheat flour"]}, {"ingredient": "Flour", "ingredient_id": 1677, "modifiers": ["all-purpose"]}, {"ingredient": "Ricotta Cheese", "ingredient_id": 1218, "modifiers": ["part-skim"]}, {"ingredient": "Bell Pepper", "ingredient_id": 1820, "modifiers": ["cut into 1/4-inch dice"]}, {"ingredient": "Bell Pepper", "ingredient_id": 1820, "modifiers": ["cut into 1/4-inch dice"]}, {"ingredient": "Cooking Spray", "ingredient_id": 1744, "modifiers": ["vegetable"]}]


created_at: 2026-04-01 02:48:26.090618
status: partial
provider: claude
filename: Pizza_Crackers.pdf
recipe_title: Pizza Crackers
unmatched_items: ["square whole-wheat crackers", "marinara sauce"]
modifier_results: [{"ingredient": "Mozzarella Cheese", "ingredient_id": 892, "modifiers": ["part-skim"]}]
unit_warnings: []
resolution_tiers: {"failed": 2, "exact": 2}
raw_ai_response:
  {"title": "Pizza Crackers", "description": "Quick and easy pizza-inspired snack using whole-wheat crackers topped with marinara sauce, mozzarella cheese, and broccoli, broiled until melted.", "servings": 2, "prep_time": 15, "cook_time": 3, "cuisine": "American", "tags": ["Quick", "Under 30 Minutes", "Kid Friendly", "Few Ingredients", "Snack", "Family Friendly"], "culinary_type": "Snack", "instructions": "Step 1: Heat broiler (or toaster oven). Place 8 square whole-wheat crackers on a broilerproof (or toaster-oven) baking sheet.\nStep 2: Dividing evenly, top crackers with 3 tablespoons jarred marinara sauce and 3 tablespoons shredded part-skim mozzarella cheese. Top half of the crackers with 1 tablespoon thawed frozen chopped broccoli.\nStep 3: Broil until cheese has melted, 2 to 3 minutes.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "square whole-wheat crackers", "quantity": "8", "unit": "whole", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "marinara sauce", "quantity": "3", "unit": "tbsp", "modifiers": "jarred", "package_qty": "", "package_unit": ""}, {"name": "Mozzarella Cheese", "quantity": "3", "unit": "tbsp", "modifiers": "shredded, part-skim", "package_qty": "", "package_unit": ""}, {"name": "Broccoli", "quantity": "1", "unit": "tbsp", "modifiers": "thawed, frozen, chopped", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:49:09.989459
status: success
provider: claude
filename: Pizza_Dough.pdf
recipe_title: The Best Pizza Dough
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 9}
raw_ai_response:
  {"title": "The Best Pizza Dough", "description": "A simple, versatile pizza dough recipe that yields two crusts with a perfectly smooth and elastic texture. Can be customized with dried herbs and works best when chilled overnight for superior flavor.", "servings": 8, "prep_time": 30, "cook_time": 0, "cuisine": "Italian", "tags": ["Make Ahead", "Weekend Project", "Family Friendly", "Few Ingredients", "Baked", "Freezer Friendly"], "culinary_type": "Bread & Pastry", "instructions": "Step 1: In a small bowl, mix warm water and 1 teaspoon sugar; add yeast and whisk until dissolved. Let stand until bubbles form on surface.\nStep 2: In a large bowl, whisk 3 cups flour, salt, remaining 1 teaspoon sugar and, if desired, dried herbs. Make a well in center; add yeast mixture and oil. Stir until smooth. Add enough remaining flour to form a soft dough.\nStep 3: Turn onto a floured surface; knead, adding more flour to surface as needed until no longer sticky and dough is smooth and elastic, 6-8 minutes.\nStep 4: Place in a large greased bowl; turn once to grease top. Cover and let rise in a warm place for 30 minutes; transfer bowl to refrigerator and chill overnight.\nStep 5: Allow dough to come to room temperature, about 30 minutes, before rolling.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Water", "quantity": "1 1/4", "unit": "cup", "modifiers": "warm, 110\u00b0 to 115\u00b0", "package_qty": "", "package_unit": ""}, {"name": "Granulated Sugar", "quantity": "2", "unit": "tsp", "modifiers": "divided", "package_qty": "", "package_unit": ""}, {"name": "Yeast", "quantity": "1", "unit": "package", "modifiers": "active dry", "package_qty": "0.25", "package_unit": "oz"}, {"name": "Flour", "quantity": "3 1/2", "unit": "cup", "modifiers": "all-purpose", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "tsp", "modifiers": "sea salt", "package_qty": "", "package_unit": ""}, {"name": "Basil", "quantity": "1", "unit": "tsp", "modifiers": "dried, optional", "package_qty": "", "package_unit": ""}, {"name": "Oregano", "quantity": "1", "unit": "tsp", "modifiers": "dried, optional", "package_qty": "", "package_unit": ""}, {"name": "Marjoram", "quantity": "1", "unit": "tsp", "modifiers": "dried, optional", "package_qty": "", "package_unit": ""}, {"name": "Vegetable Oil", "quantity": "1/3", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Water", "ingredient_id": 1583, "modifiers": ["110\u00b0 to 115\u00b0"]}, {"ingredient": "Flour", "ingredient_id": 1677, "modifiers": ["all-purpose"]}]


created_at: 2026-04-01 02:49:45.970447
status: partial
provider: claude
filename: Pizza_in_a_split_crescent.pdf
recipe_title: Pizza in a Split Crescent
unmatched_items: ["Pillsbury Refrigerated Crescent Dinner Rolls", "pepperoni slices", "spaghetti sauce"]
modifier_results: []
unit_warnings: []
resolution_tiers: {"failed": 3, "exact": 1}
raw_ai_response:
  {"title": "Pizza in a Split Crescent", "description": "A quick and easy pizza-inspired sandwich made with Pillsbury crescent roll dough, pepperoni, spaghetti sauce, and mozzarella cheese. Baked until golden brown for a fun handheld meal.", "servings": 4, "prep_time": 10, "cook_time": 16, "cuisine": "American", "tags": ["Quick", "Under 30 Minutes", "Kid Friendly", "Baked", "Few Ingredients", "Family Friendly"], "culinary_type": "Sandwich", "instructions": "Step 1: Press or roll each rectangle of dough to form a 7x5-inch rectangle on a cookie sheet.\nStep 2: Arrange 9 pepperoni slices in the center third of each rectangle.\nStep 3: Layer 1 tablespoon spaghetti sauce and 1 slice of mozzarella cheese over the pepperoni.\nStep 4: Fold short sides of dough to almost meet in center; securely pinch edges together, leaving the middle open.\nStep 5: Tuck 4 or 5 pepperoni slices into the middle opening.\nStep 6: Bake at 375\u00b0F for 13 to 16 minutes or until golden brown.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Pillsbury Refrigerated Crescent Dinner Rolls", "quantity": "1", "unit": "can", "modifiers": "", "package_qty": "8", "package_unit": "oz"}, {"name": "pepperoni slices", "quantity": "1", "unit": "package", "modifiers": "", "package_qty": "3.5", "package_unit": "oz"}, {"name": "spaghetti sauce", "quantity": "4", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Mozzarella Cheese", "quantity": "1", "unit": "package", "modifiers": "sliced", "package_qty": "6", "package_unit": "oz"}]}


created_at: 2026-04-01 02:50:42.713168
status: partial
provider: claude
filename: Pizzaria_Unos_Pizza.pdf
recipe_title: Pizzaria Uno's Pizza
unmatched_items: ["active dry yeast"]
unit_warnings: []
resolution_tiers: {"exact": 13, "failed": 1}
raw_ai_response:
  {"title": "Pizzaria Uno's Pizza", "description": "A copycat recipe for Pizzaria Uno's famous deep-dish pizza, featuring a thick yeast crust topped with mozzarella, Italian sausage, tomatoes, and herbs.", "servings": 4, "prep_time": 60, "cook_time": 30, "cuisine": "Italian", "tags": ["Comfort Food", "Baked", "Copycat", "Weekend Project", "Family Friendly", "Hearty"], "culinary_type": "Main Course", "instructions": "Step 1: Generously brush a heavy 10 x 2-inch round cake pan or 10-inch springform pan with olive oil or cooking oil.\nStep 2: In large mixer bowl, sprinkle yeast into warm water. Stir till dissolved. Stir in 1 1/2 cups of the flour, the 1/3 cup oil, and 1/2 teaspoon salt. Beat at low speed 30 seconds, scraping bowl constantly. Beat for 2 minutes at high speed, scraping bowl often. Stir in as much of the remaining flour as you can.\nStep 3: Cover, let rise in warm place till double. Punch down. Let rest 5 minutes.\nStep 4: Turn dough into pan. Using oiled hands, spread dough evenly over bottom and partially up sides of pan. Cover; let rise till nearly double, about 30 minutes.\nStep 5: Arrange cheese slices in 1/4-inch thick layer on dough. Gently press sausage on cheese. Using hands, gently crush tomatoes into small pieces atop sausage. Sprinkle with herb and Parmesan.\nStep 6: Bake in a 500 degree oven for about 25 to 30 minutes or till edges of the crust are crisp and golden brown. If desired, sprinkle the pizza with sliced mushrooms or chopped green pepper during the last few minutes of baking time. Let the pizza stand 5 to 10 minutes before cutting.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Olive Oil", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "active dry yeast", "quantity": "1", "unit": "package", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Water", "quantity": "1", "unit": "cup", "modifiers": "warm, 110 to 115 degrees", "package_qty": "", "package_unit": ""}, {"name": "Flour", "quantity": "3", "unit": "cup", "modifiers": "all purpose", "package_qty": "", "package_unit": ""}, {"name": "Olive Oil", "quantity": "1/3", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1/2", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Mozzarella Cheese", "quantity": "12", "unit": "oz", "modifiers": "sliced", "package_qty": "", "package_unit": ""}, {"name": "Sausage", "quantity": "1/2", "unit": "lb", "modifiers": "Italian, mild, cooked, drained, crumbled", "package_qty": "", "package_unit": ""}, {"name": "Canned Tomatoes", "quantity": "1", "unit": "can", "modifiers": "whole pear or plum, drained", "package_qty": "15", "package_unit": "oz"}, {"name": "Oregano", "quantity": "1", "unit": "tsp", "modifiers": "dried, crushed", "package_qty": "", "package_unit": ""}, {"name": "Basil", "quantity": "1", "unit": "tsp", "modifiers": "dried, crushed", "package_qty": "", "package_unit": ""}, {"name": "Parmesan Cheese", "quantity": "1/4", "unit": "cup", "modifiers": "grated", "package_qty": "", "package_unit": ""}, {"name": "Mushroom", "quantity": "1", "unit": "whole", "modifiers": "fresh, sliced, optional", "package_qty": "", "package_unit": ""}, {"name": "Bell Pepper", "quantity": "1", "unit": "whole", "modifiers": "green, chopped, optional", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Water", "ingredient_id": 1583, "modifiers": ["110 to 115 degrees"]}, {"ingredient": "Flour", "ingredient_id": 1677, "modifiers": ["all purpose"]}, {"ingredient": "Sausage", "ingredient_id": 1574, "modifiers": ["mild", "crumbled"]}, {"ingredient": "Canned Tomatoes", "ingredient_id": 1831, "modifiers": ["plum"]}]


created_at: 2026-04-01 02:51:30.997310
status: success
provider: claude
filename: Portobello_pizza.pdf
recipe_title: Portobello Pizza
unmatched_items: []
modifier_results: [{"ingredient": "Mushroom", "ingredient_id": 1060, "modifiers": ["large portobello caps"]}]
unit_warnings: []
resolution_tiers: {"exact": 4}
raw_ai_response:
  {"title": "Portobello Pizza", "description": "A low-carb pizza alternative using large portobello mushroom caps as the base, topped with favorite pizza toppings and melted mozzarella cheese.", "servings": 4, "prep_time": 5, "cook_time": 15, "cuisine": "American", "tags": ["Low Carb", "Quick", "Under 30 Minutes", "Baked", "Few Ingredients", "Weeknight"], "culinary_type": "Main Course", "instructions": "Step 1: Preheat oven to 375\u00b0F.\nStep 2: Rub portobello caps with oil. Place on a cookie sheet and bake 5 minutes on each side.\nStep 3: Remove from oven and let stand 5 minutes; leave oven on.\nStep 4: Add favorite pizza toppings; smother with cheese.\nStep 5: Return to oven for 5 minutes more, or until cheese is bubbly.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Mushroom", "quantity": "4", "unit": "whole", "modifiers": "large portobello caps", "package_qty": "", "package_unit": ""}, {"name": "Cooking oil", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Sausage", "quantity": "1", "unit": "piece", "modifiers": "cooked, to taste", "package_qty": "", "package_unit": ""}, {"name": "Mozzarella Cheese", "quantity": "1", "unit": "cup", "modifiers": "shredded", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:51:59.777829
status: partial
provider: claude
filename: Puffy-Crust_Pizza.pdf
recipe_title: Puffy-Crust "Pizza"
unmatched_items: ["frozen puff pastry shells", "pepperoni"]
modifier_results: []
unit_warnings: []
resolution_tiers: {"failed": 2, "exact": 4}
raw_ai_response:
  {"title": "Puffy-Crust \"Pizza\"", "description": "A quick and easy pizza made with frozen puff pastry shells as the crust, topped with mozzarella, pepperoni, onion, and tomato.", "servings": 4, "prep_time": 30, "cook_time": 20, "cuisine": "American", "tags": ["Family Friendly", "Kid Friendly", "Baked", "Few Ingredients", "Weeknight", "Under 1 Hour"], "culinary_type": "Main Course", "instructions": "Step 1: Let frozen puff-pastry shells stand at room temperature to thaw slightly.\nStep 2: On floured surface, stack puff-pastry shells, one on top of the other, pressing shells firmly together. With floured rolling pin, roll pastry into 12-inch round; let pastry rest at room temperature 15 minutes. Preheat oven to 450\u00b0F.\nStep 3: Place pastry round on ungreased cookie sheet; bake 10 minutes. With tip of small knife, cut slits in top of pastry to vent steam; bake 10 minutes.\nStep 4: Remove pastry from oven. Top with cheese, pepperoni, onion, and tomato. Bake until cheese is melted. Sprinkle top of \"pizza\" with parsley.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "frozen puff pastry shells", "quantity": "1", "unit": "package", "modifiers": "frozen, ready-to-bake", "package_qty": "10", "package_unit": "oz"}, {"name": "Mozzarella Cheese", "quantity": "1", "unit": "package", "modifiers": "shredded", "package_qty": "8", "package_unit": "oz"}, {"name": "pepperoni", "quantity": "1", "unit": "package", "modifiers": "sliced", "package_qty": "3.5", "package_unit": "oz"}, {"name": "Onion", "quantity": "1", "unit": "whole", "modifiers": "small, sliced", "package_qty": "", "package_unit": ""}, {"name": "Tomato", "quantity": "1", "unit": "whole", "modifiers": "medium, diced", "package_qty": "", "package_unit": ""}, {"name": "Parsley", "quantity": "1", "unit": "tbsp", "modifiers": "chopped", "package_qty": "", "package_unit": ""}]}


created_at: 2026-04-01 02:53:10.179127
status: success
provider: claude
filename: Angel_hair_pasta_with_chicken.pdf
recipe_title: Angel Hair Pasta with Chicken
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 9}
raw_ai_response:
  {"title": "Angel Hair Pasta with Chicken", "description": "A light and flavorful pasta dish featuring tender chicken breast, fresh vegetables, and angel hair pasta tossed in a savory chicken broth and basil sauce, topped with grated Parmesan cheese.", "servings": 4, "prep_time": 10, "cook_time": 15, "cuisine": "Italian", "tags": ["Quick", "Under 30 Minutes", "Weeknight", "Stovetop", "High Protein", "Light"], "culinary_type": "Main Course", "instructions": "Step 1: Heat 1 tablespoon oil in a medium skillet over medium heat; add chicken. Cook, stirring, until chicken is cooked through, about 5 minutes. Remove from skillet and drain on paper towels.\nStep 2: Heat remaining oil in same skillet. Begin heating water for pasta. Add carrot to skillet; cook, stirring, for 4 minutes. Add broccoli and garlic to skillet; cook, stirring, for 2 minutes longer.\nStep 3: Cook pasta according to package directions. While pasta is cooking, add chicken broth, basil and Parmesan to skillet. Stir to combine. Return chicken to skillet. Reduce heat and simmer for 4 minutes.\nStep 4: Drain pasta. Place in a large serving bowl. Top with chicken and vegetable mixture. Serve immediately.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Olive Oil", "quantity": "2", "unit": "tbsp", "modifiers": "divided", "package_qty": "", "package_unit": ""}, {"name": "Chicken Breast", "quantity": "2", "unit": "whole", "modifiers": "skinless, boneless, cut into 1-inch cubes", "package_qty": "", "package_unit": ""}, {"name": "Carrot", "quantity": "1", "unit": "whole", "modifiers": "sliced diagonally into 1/4-inch pieces", "package_qty": "", "package_unit": ""}, {"name": "Broccoli", "quantity": "1", "unit": "package", "modifiers": "frozen, thawed", "package_qty": "10", "package_unit": "oz"}, {"name": "Garlic", "quantity": "2", "unit": "clove", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Pasta", "quantity": "12", "unit": "oz", "modifiers": "angel hair", "package_qty": "", "package_unit": ""}, {"name": "Chicken Broth", "quantity": "2/3", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Basil", "quantity": "1", "unit": "tsp", "modifiers": "dried", "package_qty": "", "package_unit": ""}, {"name": "Parmesan Cheese", "quantity": "1/4", "unit": "cup", "modifiers": "grated", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Chicken Breast", "ingredient_id": 1832, "modifiers": ["cut into 1-inch cubes"]}, {"ingredient": "Carrot", "ingredient_id": 1181, "modifiers": ["sliced diagonally into 1/4-inch pieces"]}, {"ingredient": "Pasta", "ingredient_id": 1289, "modifiers": ["angel hair"]}]


created_at: 2026-04-01 02:54:06.233249
status: success
provider: claude
filename: Baked_Panne_with_Chicken_and_Sun-Dried_Tomatoes.pdf
recipe_title: Baked Penne with Chicken and Sun-Dried Tomatoes
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 14}
raw_ai_response:
  {"title": "Baked Penne with Chicken and Sun-Dried Tomatoes", "description": "A hearty baked pasta dish with chicken, mushrooms, and sun-dried tomatoes in a creamy provolone and Parmesan sauce. Makes two baking dishes \u2014 serve one tonight and freeze the other for later.", "servings": 8, "prep_time": 35, "cook_time": 25, "cuisine": "Italian", "tags": ["Make Ahead", "Freezer Friendly", "Comfort Food", "Baked", "Family Friendly", "Hearty"], "culinary_type": "Main Course", "instructions": "Step 1: Preheat oven to 400 degrees F. Butter two shallow 2-quart baking dishes. In a large pot of boiling salted water, cook pasta 3 minutes short of al dente; drain pasta, and return to pot.\nStep 2: In a large nonstick skillet, heat oil over medium-high. Season chicken with salt and pepper; cook until opaque throughout, 3 to 5 minutes per side. Halve each piece lengthwise, then thinly slice crosswise.\nStep 3: In a 5-quart Dutch oven or heavy pot, melt butter over medium. Add flour and garlic; cook, whisking, 1 minute. While whisking, gradually add milk; bring to a simmer, whisking frequently. Add mushrooms and tomatoes; cook 1 minute. Off heat, gradually stir in provolone and 1/2 cup Parmesan.\nStep 4: Add chicken and pasta to pot; season with salt and pepper. Divide pasta mixture between baking dishes; sprinkle each with cup Parmesan.\nStep 5: Bake, uncovered, until top is golden and bubbling, about 25 minutes. Let stand 5 minutes before serving.\nStep 6: To make ahead, prepare through step 4; let cool. Cover tightly with foil, and freeze, up to 3 months. Preheat oven to 400 degrees F, and bake (still covered in foil) on a rimmed baking sheet until center is hot, about 1 1/2 hours. Remove foil; bake until golden, about 15 minutes more.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Butter", "quantity": "6", "unit": "tbsp", "modifiers": "plus more for baking dishes", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "pinch", "modifiers": "coarse, to taste", "package_qty": "", "package_unit": ""}, {"name": "Black Pepper", "quantity": "1", "unit": "pinch", "modifiers": "ground, to taste", "package_qty": "", "package_unit": ""}, {"name": "Pasta", "quantity": "1", "unit": "lb", "modifiers": "penne rigate", "package_qty": "", "package_unit": ""}, {"name": "Olive Oil", "quantity": "1", "unit": "tsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Chicken Breast", "quantity": "2", "unit": "whole", "modifiers": "boneless, skinless, halved horizontally", "package_qty": "8", "package_unit": "oz"}, {"name": "Flour", "quantity": "1/2", "unit": "cup", "modifiers": "all-purpose, spooned and leveled", "package_qty": "", "package_unit": ""}, {"name": "Flour", "quantity": "2", "unit": "tbsp", "modifiers": "all-purpose, spooned and leveled", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "4", "unit": "clove", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Milk", "quantity": "6", "unit": "cup", "modifiers": "whole", "package_qty": "", "package_unit": ""}, {"name": "Mushroom", "quantity": "10", "unit": "oz", "modifiers": "white, trimmed, thinly sliced", "package_qty": "", "package_unit": ""}, {"name": "Tomato", "quantity": "1/2", "unit": "cup", "modifiers": "oil-packed sun-dried, drained, thinly sliced", "package_qty": "", "package_unit": ""}, {"name": "Provolone Cheese", "quantity": "1 1/2", "unit": "cup", "modifiers": "shredded", "package_qty": "6", "package_unit": "oz"}, {"name": "Parmesan Cheese", "quantity": "1", "unit": "cup", "modifiers": "finely grated", "package_qty": "4", "package_unit": "oz"}]}

modifier_results:
  [{"ingredient": "Salt", "ingredient_id": 1571, "modifiers": ["coarse"]}, {"ingredient": "Pasta", "ingredient_id": 1289, "modifiers": ["penne rigate"]}, {"ingredient": "Flour", "ingredient_id": 1677, "modifiers": ["all-purpose", "spooned", "leveled"]}, {"ingredient": "Flour", "ingredient_id": 1677, "modifiers": ["all-purpose", "spooned", "leveled"]}, {"ingredient": "Tomato", "ingredient_id": 1177, "modifiers": ["oil-packed sun-dried"]}]


created_at: 2026-04-01 02:54:44.846860
status: success
provider: claude
filename: Chicken_Mozzarella_Pasta_with_Sun-Dried_Tomatoes.pdf
recipe_title: Chicken Mozzarella Pasta with Sun-Dried Tomatoes
unmatched_items: []
unit_warnings: []
resolution_tiers: {"exact": 12}
raw_ai_response:
  {"title": "Chicken Mozzarella Pasta with Sun-Dried Tomatoes", "description": "A creamy, cheesy pasta dish featuring tender chicken breast, sun-dried tomatoes, and melted mozzarella in a rich half-and-half sauce, finished with fresh basil and red pepper flakes.", "servings": 4, "prep_time": 15, "cook_time": 45, "cuisine": "Italian", "tags": ["Comfort Food", "Stovetop", "Weeknight", "Creamy", "High Protein", "Family Friendly"], "culinary_type": "Main Course", "instructions": "Step 1: Note: if using sun-dried tomatoes in oil (in a jar), make sure to drain sun-dried tomatoes from oil before using them. Reserve 2 tablespoons of this drained oil for sauteing as described below.\nStep 2: In a large pan, on high heat, sautee garlic and sun-dried tomatoes (drained from oil) in 2 tablespoons of oil (reserved from the sun-dried tomatoes jar) for 1 minute until garlic is fragrant. Remove sun-dried tomatoes from the pan, leaving the oil, and add chicken tenders, salted and lightly covered in paprika (for color) and cook on high heat for 1 minute on each side. Remove from heat.\nStep 3: Cook pasta according to package instructions. Reserve some cooked pasta water. Drain and rinse the pasta with cold water (to stop cooking).\nStep 4: Slice sun-dried tomatoes into smaller bits and add them back to the skillet with chicken. Add half and half and cheese to the skillet too, and bring to boil. Immediately reduce to simmer and cook, constantly stirring, until all cheese melts and creamy sauce forms. If the sauce is too thick - don't worry - you'll be adding some cooked pasta water soon. Add cooked pasta to the skillet with the creamy sauce, and stir to combine. Add basil, stir to combine.\nStep 5: Add about 1/2 cup reserved cooked pasta water because the creamy sauce will be too thick (do not add all water at once - you might need less or more of it). This will water down the thickness of the cheese sauce and make it creamier. Immediately, season the pasta with salt and more red pepper flakes, to taste, if needed. Let it simmer for a couple of minutes for flavors to combine.\nStep 6: Note: Make sure to salt the dish just enough to bring out the flavors of basil and sun-dried tomatoes.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Garlic", "quantity": "3", "unit": "clove", "modifiers": "large", "package_qty": "", "package_unit": ""}, {"name": "Tomato", "quantity": "1", "unit": "jar", "modifiers": "sun-dried, in oil", "package_qty": "3", "package_unit": "oz"}, {"name": "Chicken Breast", "quantity": "1", "unit": "lb", "modifiers": "tenders", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}, {"name": "Paprika", "quantity": "1", "unit": "pinch", "modifiers": "just a little bit", "package_qty": "", "package_unit": ""}, {"name": "Half Half", "quantity": "1", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Mozzarella Cheese", "quantity": "1", "unit": "cup", "modifiers": "shredded", "package_qty": "", "package_unit": ""}, {"name": "Pasta", "quantity": "8", "unit": "oz", "modifiers": "penne", "package_qty": "", "package_unit": ""}, {"name": "Basil", "quantity": "1", "unit": "tbsp", "modifiers": "dried", "package_qty": "", "package_unit": ""}, {"name": "Water", "quantity": "1/2", "unit": "cup", "modifiers": "reserved cooked pasta water", "package_qty": "", "package_unit": ""}, {"name": "Pepper", "quantity": "1", "unit": "pinch", "modifiers": "red pepper flakes, to taste", "package_qty": "", "package_unit": ""}, {"name": "Salt", "quantity": "1", "unit": "pinch", "modifiers": "to taste", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Tomato", "ingredient_id": 1177, "modifiers": ["in oil"]}, {"ingredient": "Chicken Breast", "ingredient_id": 1832, "modifiers": ["tenders"]}, {"ingredient": "Paprika", "ingredient_id": 1867, "modifiers": ["just a little bit"]}, {"ingredient": "Pasta", "ingredient_id": 1289, "modifiers": ["penne"]}, {"ingredient": "Water", "ingredient_id": 1583, "modifiers": ["reserved cooked pasta water"]}, {"ingredient": "Pepper", "ingredient_id": 1152, "modifiers": ["red pepper flakes"]}]


created_at: 2026-04-01 03:00:09.593208
status: partial
provider: claude
filename: Creole_Chicken_Pasta.pdf
recipe_title: Creole Chicken Pasta
unmatched_items: ["Wyler's Chicken-Flavor Bouillon Granules"]
unit_warnings: []
resolution_tiers: {"exact": 8, "failed": 1}
raw_ai_response:
  {"title": "Creole Chicken Pasta", "description": "A quick and flavorful Cajun-inspired skillet dish featuring chicken strips simmered with stewed tomatoes, green bell pepper, and bouillon, served over savory pasta.", "servings": 6, "prep_time": 0, "cook_time": 20, "cuisine": "Cajun", "tags": ["Quick", "Stovetop", "Weeknight", "Low Calorie", "High Protein", "One Pan"], "culinary_type": "Main Course", "instructions": "Step 1: Coat a large nonstick skillet with cooking spray.\nStep 2: Brown chicken strips; remove from skillet.\nStep 3: Add remaining ingredients except Savory Pasta; bring to a boil.\nStep 4: Reduce heat; cover and simmer 10 minutes.\nStep 5: Return chicken to skillet; heat through.\nStep 6: Serve over Savory Pasta.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Chicken", "quantity": "1/2", "unit": "lb", "modifiers": "strips", "package_qty": "", "package_unit": ""}, {"name": "Canned Tomatoes", "quantity": "1", "unit": "can", "modifiers": "Cajun-style stewed", "package_qty": "14.5", "package_unit": "oz"}, {"name": "Bell Pepper", "quantity": "1", "unit": "whole", "modifiers": "medium, green, cut into strips", "package_qty": "", "package_unit": ""}, {"name": "Water", "quantity": "1/4", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Wyler's Chicken-Flavor Bouillon Granules", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "1/2", "unit": "tsp", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Pepper", "quantity": "1/4", "unit": "tsp", "modifiers": "red pepper flakes, optional", "package_qty": "", "package_unit": ""}, {"name": "Cooking Spray", "quantity": "1", "unit": "whole", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Pasta", "quantity": "1", "unit": "whole", "modifiers": "savory, cooked, for serving", "package_qty": "", "package_unit": ""}]}

modifier_results:
  [{"ingredient": "Chicken", "ingredient_id": 1086, "modifiers": ["strips"]}, {"ingredient": "Canned Tomatoes", "ingredient_id": 1831, "modifiers": ["Cajun-style stewed"]}, {"ingredient": "Pepper", "ingredient_id": 1152, "modifiers": ["red pepper flakes"]}, {"ingredient": "Pasta", "ingredient_id": 1289, "modifiers": ["savory"]}]


created_at: 2026-04-01 03:00:44.250013
status: partial
provider: claude
filename: Skinny_Pesto__Pasta.pdf
recipe_title: Skinny Pesto & Pasta
unmatched_items: ["Wyler's Chicken-Flavor Bouillon Granules", "Savory Pasta"]
modifier_results: [{"ingredient": "Parmesan Cheese", "ingredient_id": 894, "modifiers": ["nonfat"]}]
unit_warnings: []
resolution_tiers: {"exact": 5, "failed": 2}
raw_ai_response:
  {"title": "Skinny Pesto & Pasta", "description": "A light and flavorful pesto pasta made with fresh basil, pine nuts, and nonfat Parmesan, blended together and tossed with savory pasta. Only 3.5g of fat per serving.", "servings": 6, "prep_time": 10, "cook_time": 0, "cuisine": "Italian", "tags": ["Quick", "Light", "Low Calorie", "Few Ingredients", "Weeknight", "Family Friendly"], "culinary_type": "Main Course", "instructions": "Step 1: In a blender or food processor, combine all ingredients except Savory Pasta.\nStep 2: Blend until basil is finely chopped.\nStep 3: Toss with Savory Pasta and serve.", "has_ingredient_list": true, "extraction_confidence": "high", "ingredients": [{"name": "Basil", "quantity": "1/2", "unit": "cup", "modifiers": "fresh, rinsed, drained", "package_qty": "", "package_unit": ""}, {"name": "Water", "quantity": "1/2", "unit": "cup", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Parmesan Cheese", "quantity": "1/3", "unit": "cup", "modifiers": "nonfat, grated", "package_qty": "", "package_unit": ""}, {"name": "Pine Nuts", "quantity": "3", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Wyler's Chicken-Flavor Bouillon Granules", "quantity": "1", "unit": "tbsp", "modifiers": "", "package_qty": "", "package_unit": ""}, {"name": "Garlic", "quantity": "1", "unit": "tsp", "modifiers": "minced", "package_qty": "", "package_unit": ""}, {"name": "Savory Pasta", "quantity": "1", "unit": "package", "modifiers": "", "package_qty": "", "package_unit": ""}]}


# qa_session

started_at: 2026-03-27 16:06:29.706892
completed_at: 2026-03-27 19:29:26.544792
notes: minor bugs to be reviewed
smoke_results:
  {"route_dashboard": {"label": "GET /dashboard returns 200", "status": "pass", "detail": "route registered"}, "route_pantry": {"label": "GET /pantry returns 200", "status": "pass", "detail": "route registered"}, "route_planner": {"label": "GET /meal-planner returns 200", "status": "pass", "detail": "route registered"}, "route_shopping": {"label": "GET /shopping returns 200", "status": "pass", "detail": "route registered"}, "route_recipes": {"label": "GET /recipes returns 200", "status": "pass", "detail": "route registered"}, "route_changelog": {"label": "GET /changelog returns 200", "status": "pass", "detail": "route registered"}, "route_smoketest": {"label": "GET /smoketest returns 200", "status": "pass", "detail": "route registered"}, "db_demo_user": {"label": "Demo user exists and is active", "status": "pass", "detail": "demo id=10"}, "db_admin_user": {"label": "Admin user exists with admin role", "status": "pass", "detail": "admin exists"}, "db_recipes": {"label": "At least 1 recipe in system", "status": "pass", "detail": "19 recipes"}, "db_ingredients": {"label": "Ingredient table populated", "status": "pass", "detail": "769 ingredients"}, "db_units": {"label": "Unit table has entries", "status": "pass", "detail": "56 units"}, "db_clove_unit": {"label": "Clove unit exists in Unit table", "status": "pass", "detail": "clove found"}, "schema_is_demo": {"label": "user.is_demo column exists", "status": "pass", "detail": "is_demo found in user"}, "schema_culinary_type": {"label": "recipe.culinary_type column exists", "status": "pass", "detail": "culinary_type found in recipe"}, "schema_group_label": {"label": "recipe_ingredient_detail.group_label exists", "status": "pass", "detail": "group_label found in recipe_ingredient_detail"}, "schema_meal_type_sli": {"label": "shopping_list_item.meal_type exists", "status": "pass", "detail": "meal_type found in shopping_list_item"}, "schema_unit_sli": {"label": "shopping_list_item.unit exists", "status": "pass", "detail": "unit found in shopping_list_item"}, "schema_planned_meal": {"label": "planned_meal table exists", "status": "pass", "detail": "id found in planned_meal"}, "schema_modifier_notes": {"label": "pantry_item.modifier_notes exists (Phase 2 \u2014 expected pending)", "status": "pending", "detail": "Not yet built \u2014 Phase 2 Item 1"}, "data_no_orphan_pantry": {"label": "No orphaned pantry items", "status": "pass", "detail": "0 orphans"}, "data_recipes_typed": {"label": "All recipes have culinary_type", "status": "pass", "detail": "0 untyped"}, "data_no_bad_units": {"label": "No invalid units in pantry (cup/gallon raw)", "status": "pass", "detail": "all units normalised"}, "data_planned_meal_integrity": {"label": "All PlannedMealRecipe entries have valid recipe", "status": "pass", "detail": "all valid"}, "bp_social": {"label": "Social blueprint registered (26 routes)", "status": "pass", "detail": "23 social routes"}, "bp_admin": {"label": "Admin blueprint registered", "status": "pass", "detail": "66 admin routes"}}


started_at: 2026-03-27 19:29:26.621395
smoke_results:
  {"route_root": {"label": "GET / registered", "status": "pass", "detail": "registered: /"}, "route_dashboard": {"label": "GET /dashboard registered", "status": "pass", "detail": "registered: /dashboard"}, "route_recipes": {"label": "GET /recipes registered", "status": "pass", "detail": "registered: /recipes"}, "route_recipe_view": {"label": "GET /recipe/<id> registered", "status": "pass", "detail": "registered: /recipe/<int:recipe_id>"}, "route_upload": {"label": "GET /recipe/upload registered", "status": "pass", "detail": "registered: /recipe/upload"}, "route_edit": {"label": "GET /recipe/edit registered", "status": "pass", "detail": "registered: /recipe/edit/<int:recipe_id>"}, "route_pantry": {"label": "GET /pantry registered", "status": "pass", "detail": "registered: /pantry"}, "route_shopping": {"label": "GET /shopping registered", "status": "pass", "detail": "registered: /shopping"}, "route_planner": {"label": "GET /meal-planner registered", "status": "pass", "detail": "registered: /meal-planner"}, "route_changelog": {"label": "GET /changelog registered", "status": "pass", "detail": "registered: /changelog"}, "route_login": {"label": "GET /login registered", "status": "pass", "detail": "registered: /login"}, "route_register": {"label": "GET /register registered", "status": "pass", "detail": "registered: /register"}, "route_profile": {"label": "GET /profile registered", "status": "pass", "detail": "registered: /profile"}, "route_smoketest": {"label": "GET /smoketest registered", "status": "pass", "detail": "registered: /smoketest"}, "route_demo_login": {"label": "POST /demo-login registered", "status": "pass", "detail": "registered: /demo-login"}, "route_demo_logout": {"label": "GET /demo-logout registered", "status": "pass", "detail": "registered: /demo-logout"}, "db_admin_exists": {"label": "Admin user exists", "status": "pass", "detail": "1 admin(s)"}, "db_demo_exists": {"label": "Demo user exists and is_demo=True", "status": "pass", "detail": "demo user found"}, "db_no_pending_users": {"label": "No stuck pending registrations", "status": "pass", "detail": "0 pending"}, "db_recipes_exist": {"label": "Recipe table accessible", "status": "pass", "detail": "0 visible, 0 total"}, "db_recipes_unflagged": {"label": "No unexpected flagged recipes", "status": "pass", "detail": "0 flagged"}, "db_flagged_count": {"label": "Flagged recipe count", "status": "pass", "detail": "0 flagged"}, "db_recipes_typed": {"label": "All recipes have culinary_type_id set", "status": "pass", "detail": "0 untyped"}, "db_ingredients": {"label": "Ingredients table has 1000+ entries (CulinaryDB)", "status": "pass", "detail": "1050 ingredients"}, "db_units": {"label": "Units table has 50+ entries", "status": "pass", "detail": "56 units"}, "db_modifiers": {"label": "Modifiers table populated", "status": "pass", "detail": "143 modifiers"}, "db_modifier_cats": {"label": "Modifier categories exist", "status": "pass", "detail": "12 categories"}, "db_tags": {"label": "Tags table populated", "status": "pass", "detail": "42 tags"}, "db_culinary_types": {"label": "Recipes have culinary types assigned", "status": "pass", "detail": "0 recipes with culinary type"}, "db_no_orphan_pantry": {"label": "No orphaned pantry items (missing ingredient)", "status": "pass", "detail": "0 orphans"}, "db_no_orphan_planned": {"label": "No orphaned PlannedMealRecipe records", "status": "pass", "detail": "11 planned meals"}, "db_shopping_lists": {"label": "ShoppingList table accessible", "status": "pass", "detail": "1 shopping lists"}, "schema_user_is_demo": {"label": "user.is_demo exists", "status": "pass", "detail": "is_demo found in user"}, "schema_user_is_staff": {"label": "user.is_staff or role exists", "status": "pass", "detail": "role found in user"}, "schema_recipe_culinary_type": {"label": "recipe.culinary_type exists", "status": "pass", "detail": "culinary_type found in recipe"}, "schema_cuisine_is_active": {"label": "cuisine.is_active exists (Ph0.1)", "status": "pass", "detail": "is_active found in cuisine"}, "schema_cuisine_no_subcat": {"label": "cuisine.subcategory dropped (Ph0.1)", "status": "pass", "detail": "subcategory still exists"}, "schema_cooklog_no_rating": {"label": "cook_log.rating dropped (Ph0.1)", "status": "pass", "detail": "rating still exists"}, "schema_photo_no_is_cover": {"label": "recipe_photo.is_cover dropped (Ph0.1)", "status": "pass", "detail": "is_cover still exists"}, "schema_recipe_is_flagged": {"label": "recipe.is_flagged exists", "status": "pass", "detail": "is_flagged found in recipe"}, "schema_rid_group_label": {"label": "recipe_ingredient_detail.group_label exists", "status": "pass", "detail": "group_label found in recipe_ingredient_detail"}, "schema_rid_group_order": {"label": "recipe_ingredient_detail.group_order exists", "status": "pass", "detail": "group_order found in recipe_ingredient_detail"}, "schema_sli_meal_type": {"label": "shopping_list_item.meal_type exists", "status": "pass", "detail": "meal_type found in shopping_list_item"}, "schema_sli_unit": {"label": "shopping_list_item.unit exists", "status": "pass", "detail": "unit found in shopping_list_item"}, "schema_planned_meal": {"label": "planned_meal table exists", "status": "pass", "detail": "planned_meal exists"}, "schema_planned_meal_recipe": {"label": "planned_meal_recipe table exists", "status": "pass", "detail": "planned_meal_recipe exists"}, "schema_site_setting": {"label": "site_setting table exists", "status": "pass", "detail": "site_setting exists"}, "schema_tag": {"label": "tag table exists", "status": "pass", "detail": "tag exists"}, "schema_recipe_tag": {"label": "recipe_tag table exists", "status": "pass", "detail": "recipe_tag exists"}, "schema_qa_session": {"label": "qa_session table exists", "status": "pass", "detail": "qa_session exists"}, "schema_product": {"label": "product table exists (Ph0.2)", "status": "pass", "detail": "product exists"}, "schema_recipe_product": {"label": "recipe_product_detail exists (Ph0.2)", "status": "pass", "detail": "recipe_product_detail exists"}, "schema_pantry_product": {"label": "pantry_product table exists (Ph0.2)", "status": "pass", "detail": "pantry_product exists"}, "schema_rid_item_type": {"label": "recipe_ingredient_detail.item_type exists (Ph0.3)", "status": "pass", "detail": "item_type found in recipe_ingredient_detail"}, "schema_rid_product_id": {"label": "recipe_ingredient_detail.product_id exists (Ph0.3)", "status": "pass", "detail": "product_id found in recipe_ingredient_detail"}, "schema_product_off_id": {"label": "product.off_id exists (Ph0.3)", "status": "pass", "detail": "off_id found in product"}, "schema_product_off_barcode": {"label": "product.off_barcode exists (Ph0.3)", "status": "pass", "detail": "off_barcode found in product"}, "schema_ingredient_parent_id": {"label": "ingredient.parent_id exists (Chapter 2 \u2014 pending)", "status": "pass", "detail": "parent_id found in ingredient"}, "schema_pantry_modifier_notes": {"label": "pantry_item.modifier_notes exists (Chapter 2 \u2014 pending)", "status": "pass", "detail": "modifier_notes found in pantry_item"}, "toggle_db_count": {"label": "SiteSetting has 30+ entries", "status": "pass", "detail": "55 settings"}, "toggle_no_dupes": {"label": "No duplicate SiteSetting keys", "status": "pass", "detail": "55 rows / 55 unique"}, "toggle_recipes_on": {"label": "feature_recipe_view ON", "status": "pass", "detail": "feature_recipe_view=true (expected true)"}, "toggle_upload_on": {"label": "feature_upload ON", "status": "pass", "detail": "feature_upload=true (expected true)"}, "toggle_edit_on": {"label": "feature_recipe_edit ON", "status": "pass", "detail": "feature_recipe_edit=true (expected true)"}, "toggle_ai_import_on": {"label": "feature_ai_import ON", "status": "pass", "detail": "feature_ai_import=true (expected true)"}, "toggle_ratings_on": {"label": "feature_ratings ON", "status": "pass", "detail": "feature_ratings=true (expected true)"}, "toggle_changelog_on": {"label": "feature_changelog ON", "status": "pass", "detail": "feature_changelog=true (expected true)"}, "toggle_registration_on": {"label": "feature_registration ON", "status": "pass", "detail": "feature_registration=true (expected true)"}, "toggle_mealplan_on": {"label": "feature_mealplan ON", "status": "pass", "detail": "feature_mealplan=true (expected true)"}, "toggle_shopping_on": {"label": "feature_shopping_list ON", "status": "pass", "detail": "feature_shopping_list=true (expected true)"}, "toggle_shop_generate_on": {"label": "feature_shop_generate ON", "status": "pass", "detail": "feature_shop_generate=true (expected true)"}, "toggle_pantry_on": {"label": "feature_pantry ON", "status": "pass", "detail": "feature_pantry=true (expected true)"}, "toggle_pantry_add_on": {"label": "feature_pantry_add ON", "status": "pass", "detail": "feature_pantry_add=true (expected true)"}, "toggle_profile_on": {"label": "feature_profile_edit ON", "status": "pass", "detail": "feature_profile_edit=true (expected true)"}, "toggle_demo_on": {"label": "feature_demo ON", "status": "pass", "detail": "feature_demo=true (expected true)"}, "toggle_mod_bypass_on": {"label": "mod_bypass_features ON", "status": "pass", "detail": "mod_bypass_features=true (expected true)"}, "toggle_deduct_on": {"label": "feature_pantry_deduct ON (Ch.2.1 complete)", "status": "pass", "detail": "feature_pantry_deduct=true (expected true)"}, "toggle_shop_pantry_on": {"label": "feature_shop_pantry_link ON (Ch.2.1 complete)", "status": "pass", "detail": "feature_shop_pantry_link=true (expected true)"}, "toggle_discover_off": {"label": "discover_enabled OFF (placeholder)", "status": "pass", "detail": "discover_enabled=false (expected false)"}, "toggle_community_off": {"label": "community_enabled OFF (placeholder)", "status": "pass", "detail": "community_enabled=false (expected false)"}, "toggle_cook_mode_on": {"label": "feature_cook_mode ON (Chapter 2.3)", "status": "pass", "detail": "feature_cook_mode=true (expected true)"}, "toggle_alert_off": {"label": "alert_enabled OFF by default", "status": "pass", "detail": "alert_enabled=false (expected false)"}, "toggle_ai_claude": {"label": "ai_provider_claude configured", "status": "pass", "detail": "ai_provider_claude=true (expected true)"}, "infra_version_file": {"label": "VERSION file exists", "status": "pass", "detail": "0.9.3-alpha"}, "infra_changelog": {"label": "CHANGELOG.md exists", "status": "pass", "detail": "found"}, "infra_roadmap": {"label": "ROADMAP_v4.md exists", "status": "pass", "detail": "found"}, "infra_restore_doc": {"label": "RESTORE.md exists", "status": "pass", "detail": "found"}, "infra_backup_dir": {"label": "instance/backups/ directory exists", "status": "pass", "detail": "found"}, "infra_backup_exists": {"label": "At least 1 DB backup exists", "status": "pass", "detail": "22 backups"}, "infra_backup_script": {"label": "backup_db.sh exists", "status": "pass", "detail": "found"}, "infra_secret_key": {"label": "SECRET_KEY configured", "status": "pass", "detail": "env var set"}, "infra_version_format": {"label": "VERSION matches expected format", "status": "pass", "detail": "0.9.3-alpha"}, "data_planned_meal_integrity": {"label": "All PlannedMealRecipe entries have valid recipe", "status": "pass", "detail": "all valid"}, "bp_social": {"label": "Social blueprint registered (26 routes)", "status": "pass", "detail": "23 social routes"}, "bp_admin": {"label": "Admin blueprint registered", "status": "pass", "detail": "68 admin routes"}}


# qa_checklist_item

block: shopping
item_key: shp_06
status: fail
updated_at: 2026-03-27 19:11:34.891009
notes:
  is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3)


block: shopping
item_key: shp_08
status: fail
updated_at: 2026-03-27 19:12:52.482457
notes:
  various issues, here is one error... is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3)


# recipe

title: Banana Bread
cuisine: American
culinary_type: Bread & Pastry
source: ai
created_at: 2026-04-01 02:05:45.928828
pdf_filename: ai_1_20260401_020533_Banana_Bread.pdf
description:
  A classic American banana bread made with ripe mashed bananas and optional walnuts. Moist, tender, and perfect for using up overripe bananas.

instructions:
  Step 1: Preheat oven to 350 degrees F. Grease a 9x5 inch loaf pan.
  Step 2: In a large bowl, mix mashed bananas with melted butter.
  Step 3: Mix in sugar, beaten egg, and vanilla extract.
  Step 4: Sprinkle baking soda and salt over mixture and stir to combine.
  Step 5: Add flour and mix until just combined. Do not overmix.
  Step 6: Fold in walnuts if using.
  Step 7: Pour batter into prepared loaf pan.
  Step 8: Bake for 55-65 minutes until a toothpick inserted in center comes out clean.
  Step 9: Let cool in pan for 10 minutes then turn out onto a wire rack to cool completely.


title: New England Clam Chowder
cuisine: American
culinary_type: Soup
source: ai
created_at: 2026-04-01 02:11:53.040213
pdf_filename: batch_1_20260401_021153_New England Clam Chowder.pdf
description:
  A rich and creamy New England-style clam chowder made with tender potatoes, smoky bacon, and hearty clams in a velvety broth. A classic American comfort dish served with oyster crackers.

instructions:
  Step 1: Cook bacon in a large pot over medium heat until crispy. Remove bacon and set aside, leaving drippings in pot.
  Step 2: Add onion and celery to pot. Cook until softened, about 5 minutes.
  Step 3: Add garlic and cook 1 minute.
  Step 4: Sprinkle flour over vegetables and stir to coat. Cook 2 minutes.
  Step 5: Add chicken broth and reserved clam juice. Stir until smooth.
  Step 6: Add potatoes and thyme. Bring to a boil then reduce heat and simmer 15 minutes until potatoes are tender.
  Step 7: Stir in milk, heavy cream, and butter. Heat gently — do not boil.
  Step 8: Add clams and season with salt and white pepper.
  Step 9: Simmer 5 minutes. Garnish with bacon and fresh parsley.
  Step 10: Serve with oyster crackers.


title: Shrimp Scampi
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:12:10.930722
pdf_filename: batch_1_20260401_021210_Shrimp Scampi.pdf
description:
  A classic Italian-American dish featuring tender shrimp in a garlic butter white wine sauce tossed with linguine pasta. Ready in minutes and perfect for a quick weeknight dinner or date night.

instructions:
  Step 1: Cook linguine according to package directions. Reserve 1/2 cup pasta water before draining.
  Step 2: Pat shrimp dry with paper towels. Season with salt and pepper.
  Step 3: Heat olive oil and 2 tablespoons butter in a large skillet over medium-high heat.
  Step 4: Add shrimp in a single layer and cook 1-2 minutes per side until pink. Remove from pan.
  Step 5: Add remaining butter to pan. Add garlic and red pepper flakes. Cook 1 minute until fragrant.
  Step 6: Add white wine and lemon juice. Simmer 2 minutes.
  Step 7: Return shrimp to pan. Add drained pasta and toss to combine. Add pasta water as needed.
  Step 8: Remove from heat. Stir in fresh parsley.
  Step 9: Serve immediately garnished with extra parsley and lemon wedges.


title: French Onion Soup
cuisine: French
culinary_type: Soup
source: ai
created_at: 2026-04-01 02:12:27.944772
pdf_filename: batch_1_20260401_021227_French Onion Soup.pdf
description:
  A classic French soup featuring deeply caramelized onions in a rich beef and chicken broth, topped with toasted baguette slices and melted Gruyere cheese.

instructions:
  Step 1: Melt butter with olive oil in a large heavy pot over medium heat.
  Step 2: Add onions and cook, stirring occasionally, for 15 minutes until softened.
  Step 3: Add sugar and salt. Continue cooking, stirring often, for 30-40 minutes until onions are deeply caramelized and golden brown.
  Step 4: Sprinkle flour over onions and stir to coat. Cook 2 minutes.
  Step 5: Add white wine and stir to deglaze, scraping up any browned bits.
  Step 6: Add beef broth, chicken broth, Worcestershire sauce, bay leaf, and thyme. Bring to a boil then reduce heat and simmer 20 minutes.
  Step 7: Remove bay leaf. Season with salt and pepper.
  Step 8: Ladle soup into oven-safe bowls. Top each with 2 slices of toasted baguette.
  Step 9: Cover generously with shredded Gruyere cheese.
  Step 10: Broil until cheese is melted, bubbly, and lightly browned, about 3-4 minutes. Serve immediately.


title: Chicken Tikka Masala
cuisine: Indian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:13:21.684140
pdf_filename: batch_1_20260401_021321_Chicken Tikka Masala.pdf
description:
  A classic Indian dish featuring tender marinated chicken broiled until charred, then simmered in a rich, creamy tomato-based sauce spiced with cumin, paprika, and garam masala.

instructions:
  Step 1: Combine yogurt, lemon juice, cumin, paprika, turmeric, garam masala, and salt in a bowl. Add chicken and marinate at least 1 hour or overnight.
  Step 2: Thread chicken onto skewers or place on a baking sheet. Broil for 10-12 minutes until charred and cooked through. Set aside.
  Step 3: Melt butter in a large skillet over medium heat. Add onion and cook until golden, about 8 minutes.
  Step 4: Add garlic and ginger. Cook 2 minutes until fragrant.
  Step 5: Add cumin, paprika, and garam masala. Cook 1 minute.
  Step 6: Add crushed tomatoes and simmer 10 minutes.
  Step 7: Stir in heavy cream and simmer 5 minutes until sauce thickens.
  Step 8: Add cooked chicken and simmer 5 more minutes.
  Step 9: Garnish with fresh cilantro. Serve with rice or naan.


title: Beef Tacos
cuisine: Mexican
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:13:34.024084
pdf_filename: batch_1_20260401_021334_Beef Tacos.pdf
description:
  Classic Mexican beef tacos made with seasoned ground beef in crispy taco shells, topped with fresh vegetables, cheese, sour cream, and salsa. A quick and satisfying weeknight meal.

instructions:
  Step 1: Brown ground beef in a skillet over medium-high heat. Drain excess fat.
  Step 2: Add taco seasoning and water. Stir to combine.
  Step 3: Simmer for 5 minutes until liquid is absorbed and beef is well seasoned.
  Step 4: Warm taco shells according to package directions.
  Step 5: Fill each shell with seasoned beef.
  Step 6: Top with shredded cheese, lettuce, diced tomatoes, and onion.
  Step 7: Add a dollop of sour cream and salsa.
  Step 8: Serve with lime wedges.


title: Eggs Benedict
cuisine: American
culinary_type: Breakfast / Brunch
source: ai
created_at: 2026-04-01 02:13:48.243464
pdf_filename: batch_1_20260401_021348_Eggs Benedict.pdf
description:
  A classic American brunch dish featuring poached eggs and Canadian bacon on toasted English muffins, topped with rich homemade hollandaise sauce.

instructions:
  Step 1: Make hollandaise: Whisk egg yolks and lemon juice in a double boiler over simmering water until thickened.
  Step 2: Slowly drizzle in melted butter while whisking constantly until sauce is thick and creamy.
  Step 3: Season hollandaise with cayenne and salt. Keep warm.
  Step 4: Pan-fry Canadian bacon in a skillet until heated through. Set aside.
  Step 5: Fill a deep skillet with 3 inches of water. Add vinegar and bring to a gentle simmer.
  Step 6: Crack each egg into a small cup. Gently slide eggs into simmering water.
  Step 7: Poach eggs 3-4 minutes until whites are set but yolks are still runny.
  Step 8: Place toasted English muffin halves on plates. Top each with a slice of Canadian bacon.
  Step 9: Use a slotted spoon to remove poached eggs and place on top of bacon.
  Step 10: Spoon hollandaise sauce generously over each egg. Garnish with parsley. Serve immediately.


title: Classic Caesar Salad
cuisine: American
culinary_type: Salad
source: ai
created_at: 2026-04-01 02:31:48.342879
pdf_filename: batch_1_20260401_023148_Classic Caesar Salad.pdf
description:
  A classic Caesar salad featuring crisp romaine lettuce tossed in a rich, creamy homemade dressing with anchovies, Parmesan cheese, and crunchy croutons.

instructions:
  Step 1: In a large bowl, whisk together mayonnaise, lemon juice, garlic, Dijon mustard, Worcestershire sauce, anchovies, salt and pepper until smooth.
  Step 2: Add olive oil in a thin stream, whisking constantly until dressing is emulsified.
  Step 3: Add chopped romaine lettuce to the bowl and toss well to coat with dressing.
  Step 4: Add half the Parmesan cheese and toss again.
  Step 5: Top with croutons and remaining Parmesan cheese.
  Step 6: Serve immediately.


title: Baked Salmon in Foil with Garlic, Rosemary and Thyme
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:34:13.756465
pdf_filename: ai_1_20260401_023357_Baked_Salmon_With_Garlic_Rosemary__Thyme.pdf
description:
  A simple and delicious baked salmon fillet coated in melted ghee, garlic, and fresh herbs, wrapped in foil and finished under the broiler for a lightly crispy top.

instructions:
  Step 1: Preheat your oven to 400°F and line a large baking sheet with foil, extra long to wrap the salmon later on. Spray the foil with avocado oil cooking spray.
  Step 2: In a bowl, whisk together the ghee, garlic, rosemary, and thyme. Pat the salmon dry and sprinkle all over on both sides with sea salt and black pepper.
  Step 3: Pour the ghee mixture over the salmon to evenly coat, rubbing the ghee on the skin underneath too to coat (it will crisp up a little this way). Sprinkle the lemon juice over the top of the salmon.
  Step 4: Wrap the salmon with the foil, using extra to cover the top. Bake near the bottom of the preheated oven for about 18-20 minutes or until just cooked through (exact cook time will depend on thickness).
  Step 5: Unwrap the salmon so the top is completely exposed and switch the oven to broil. Place the unwrapped salmon under the broiler for about 3-4 minutes, watching it to prevent burning, until the top is browned to preference.
  Step 6: Remove from the oven, sprinkle with minced parsley and serve immediately. Store leftovers in a sealed container in the refrigerator for up to 3-4 days.


title: Breaded Parmesan Chicken
description: A filling, rich breaded chicken that is baked. A comfort food that is good with mashed potatoes.
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:37:48.817259
pdf_filename: ai_1_20260401_023735_Breaded_Parmesan_Chicken.pdf
instructions:
  Step 1: Preheat oven to 350 degrees F (175 degrees C).
  Step 2: In a small shallow dish combine the stuffing mix, cheese, parsley, curry powder and seasoning. Mix together.
  Step 3: In an 8x11 inch baking dish, melt the butter in the microwave. Dip the chicken breasts in the stuffing mixture, coating both sides of each breast.
  Step 4: Place chicken in baking dish and sprinkle any leftover stuffing mixture over the chicken. Bake in the preheated oven for 20 minutes, then turn chicken pieces over and bake for another 20 to 25 minutes or until chicken is cooked through. Enjoy!


title: Easy Weeknight Garlic Chicken Parmesan
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:38:36.506473
pdf_filename: ai_1_20260401_023822_Easy_Weeknight_Garlic_Chicken_Parmesan.pdf
description:
  A quick and easy weeknight dinner featuring crispy garlic butter-coated chicken breasts topped with pasta sauce and melted mozzarella cheese.

instructions:
  Step 1: In a small bowl, melt the butter and stir in the minced garlic. In a large bowl, stir together the crushed crackers, Parmesan cheese and Italian seasoning.
  Step 2: Dredge the chicken through the butter/garlic mixture.
  Step 3: Next dredge the cracker mixture coating the chicken thoroughly.
  Step 4: Bake in a 375 degree oven for 30-45 minutes or until chicken is done.
  Step 5: Remove from oven.
  Step 6: Top each chicken breast with 1/4 cup of pasta sauce in your choice of flavor.
  Step 7: Add the cheese slices, one per chicken breast or sprinkle 1/4 cup of shredded cheese on each breast.
  Step 8: Place back in the oven for about 5 minutes to melt cheese. Remove as soon as cheese has completely melted.
  Step 9: Serve!


title: Garlic Butter Baked Salmon
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:41:54.622063
pdf_filename: ai_1_20260401_024132_Garlic_Butter_Baked_Salmon.pdf
description:
  Sheet Pan Garlic Butter Baked Salmon with crispy potatoes, asparagus and a garlic butter sauce with a touch of lemon. A complete meal on one tray using minimal ingredients.

instructions:
  Step 1: Heat oven to 400°F | 200°C. On a large rimmed baking sheet, toss together potatoes with the oil, 1/2 tablespoon of garlic, 1/2 teaspoon salt, and 1/4 teaspoon pepper. Spread out in an even layer and roast for 15 minutes until they're just starting to soften and brown.
  Step 2: Push potatoes to one side of the sheet pan and arrange salmon down the centre. Rub salmon evenly with 1 1/2 tablespoons of the minced garlic and 2 tablespoons of parsley. Add the asparagus to the other side of the pan.
  Step 3: Combine 1/4 cup of lemon juice and 1/4 cup of the melted butter together and pour the mixture over the salmon and asparagus. Season everything with the remaining salt and pepper.
  Step 4: Return to oven and continue baking until the potatoes are golden and fork-tender and the salmon is opaque throughout, about 10 minutes. Optional: broil in the last 2 minutes for charred edges.
  Step 5: Meanwhile, in a small bowl, combine the remaining butter, garlic and lemon juice with the wine (or chicken stock). Serve with the salmon, veggies and lemon slices.


title: Garlic Butter Shrimp
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:42:47.808863
pdf_filename: ai_1_20260401_024235_Garlic_Butter_Shrimp.pdf
description:
  An amazing flavor combination of garlicky, buttery goodness. So elegant and easy to make in 20 minutes or less.

instructions:
  Step 1: Melt 2 tablespoons butter in a large skillet over medium high heat. Add shrimp, salt and pepper, to taste. Cook, stirring occasionally, until pink, about 2-3 minutes; set aside.
  Step 2: Add garlic to the skillet, and cook, stirring frequently, until fragrant, about 1 minute. Stir in chicken stock and lemon juice. Bring to a boil; reduce heat and simmer until reduced by half, about 1-2 minutes. Stir in remaining 6 tablespoons butter, 1 tablespoon at a time, until melted and smooth.
  Step 3: Stir in shrimp and gently toss to combine.
  Step 4: Serve immediately, garnished with parsley leaves, if desired.


title: Italian Crescent Casserole
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:43:32.450900
pdf_filename: ai_1_20260401_024319_Italian_Crescent_Casserole.pdf
description:
  A quick and easy casserole made with seasoned ground beef and pasta sauce, topped with crescent roll dough and melted Italian cheese blend.

instructions:
  Step 1: In skillet, mix cooked beef and pasta sauce. Heat over medium heat until warm.
  Step 2: Separate crescent dough into 8 triangles. Place dough in ungreased 9-inch glass pie plate in spoke pattern, with narrow tips overlapping rim of plate about 3 inches.
  Step 3: Press dough in side and bottom of pan to form crust and cover the pan. Sprinkle with 1 cup of the cheese over dough in the pan.
  Step 4: Spoon meat mixture evenly over cheese.
  Step 5: Bring tips of dough over filling to meet in center; do not overlap.
  Step 6: Sprinkle with remaining 1/2 cup cheese over the dish followed by the basil. Bake at 375°F 15 to 20 minutes.


title: Sun-Dried Tomato and Turkey Meatballs
cuisine: Italian
culinary_type: Appetizer
source: ai
created_at: 2026-04-01 02:44:27.962625
pdf_filename: ai_1_20260401_024413_Turkey_Meatballs.pdf
description:
  Flavorful mini turkey meatballs packed with sun-dried tomatoes, parmesan, and Italian herbs. Can be cooked on the stovetop or baked in the oven.

instructions:
  Step 1: Thoroughly combine all ingredients.
  Step 2: Form into balls (about a 1/2 inch for mini meatballs).
  Step 3: For smaller batches, cook with a little olive oil in a cast iron pan on the stovetop over medium-low heat for about six minutes a side. For large batches, bake on a sheet pan at 375°F for about 20-25 minutes, turning once if necessary.


title: Baked Halibut with Herb Crust
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:45:24.612427
pdf_filename: ai_1_20260401_024508_Baked_Halibut_with_Herb_Crust.pdf
description:
  Tender halibut fillets topped with a golden, herb-infused panko crust made with fresh parsley, dill, lemon zest, and Parmesan. Ready in about 25 minutes, with an air fryer adaptation included.

instructions:
  Step 1: Preheat oven to 400°F (200°C).
  Step 2: Pat halibut dry and season with salt and pepper.
  Step 3: In a bowl, mix panko, parsley, dill, lemon zest, Parmesan, and melted butter until crumbly and evenly coated.
  Step 4: Brush halibut fillets with olive oil, then press the breadcrumb mixture firmly onto the top of each fillet.
  Step 5: Place on a lightly greased baking sheet or in a parchment-lined dish.
  Step 6: Bake for 12–15 minutes, until the fish is opaque and flakes easily. The crust should be golden brown.
  Step 7: Serve immediately with lemon wedges.

  Air Fryer Adaptation:
  Step 1: Prep fillets exactly as in the herb-crust recipe.
  Step 2: Preheat air fryer to 380°F (193°C).
  Step 3: Cook fillets in a single layer for 8–10 minutes, crust-side up only (do not flip).
  Step 4: Check internal temperature — should reach 130–135°F (54–57°C). Rest for 2 minutes before serving.


title: Crispy Pepper and Ham Pizza
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:46:41.687676
pdf_filename: ai_1_20260401_024623_Crispy_pepper_and_ham_pizza.pdf
description:
  A homemade crispy pizza featuring a yeast-based crust topped with pizza sauce, ham, roasted red peppers, Gorgonzola, mozzarella, fresh basil, and minced garlic, baked on a pizza stone for golden edges.

instructions:
  Step 1: In a small bowl, dissolve yeast and sugar in warm water; let stand for 5 minutes.
  Step 2: In a medium bowl, stir together flour and salt.
  Step 3: Pour yeast mixture over flour mixture and mix well with a spoon until dough begins to pull away from sides of the bowl.
  Step 4: Preheat pizza stone in oven at 450°F for 15 minutes.
  Step 5: Turn dough onto floured surface and knead for 2 minutes, until smooth and elastic.
  Step 6: Sprinkle surface with corn meal and roll dough into a 12-inch circle.
  Step 7: Spread sauce evenly over crust, leaving a 1/2 inch edge.
  Step 8: Sprinkle with remaining toppings.
  Step 9: Carefully slide pizza onto hot stone.
  Step 10: Bake 10-14 minutes, until crisp and edges are golden.


title: Pepper Calzones
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:47:58.277709
pdf_filename: ai_1_20260401_024736_Pepper_calzones.pdf
description:
  A pizza-in-a-pocket recipe filled with ricotta cheese, bell peppers, and onions. Can be prepared ahead and refrigerated or frozen for a quick lunch.

instructions:
  Step 1: Make dough: Combine warm water and sugar in large bowl. Sprinkle yeast over top; let stand 10 minutes until creamy.
  Step 2: Stir in whole wheat flour with a large wooden spoon. Cover and let stand in a warm, draft-free place 30 to 40 minutes until mixture is slightly bubbly around edges.
  Step 3: Stir in olive oil and salt. Gradually stir in 1 1/2 cups all-purpose flour until dough forms. Add remaining flour as needed. Knead dough until smooth and elastic.
  Step 4: Make filling: Heat olive oil in a skillet over medium heat. Add chopped onions, red bell pepper, green bell pepper, and minced garlic. Cook until softened.
  Step 5: In a bowl, combine ricotta cheese, Romano or Parmesan cheese, oregano, salt, and pepper. Stir in cooked vegetable mixture.
  Step 6: Preheat oven to appropriate temperature. Divide dough into portions and roll each into a circle. Place filling on one half of each circle, fold over, and seal edges.
  Step 7: Place calzones on baking sheet coated with vegetable cooking spray. Bake 23 to 25 minutes until golden brown.


title: Pizza Crackers
cuisine: American
culinary_type: Snack
source: ai
created_at: 2026-04-01 02:48:35.483090
pdf_filename: ai_1_20260401_024826_Pizza_Crackers.pdf
description:
  Quick and easy pizza-inspired snack using whole-wheat crackers topped with marinara sauce, mozzarella cheese, and broccoli, broiled until melted.

instructions:
  Step 1: Heat broiler (or toaster oven). Place 8 square whole-wheat crackers on a broilerproof (or toaster-oven) baking sheet.
  Step 2: Dividing evenly, top crackers with 3 tablespoons jarred marinara sauce and 3 tablespoons shredded part-skim mozzarella cheese. Top half of the crackers with 1 tablespoon thawed frozen chopped broccoli.
  Step 3: Broil until cheese has melted, 2 to 3 minutes.


title: The Best Pizza Dough
cuisine: Italian
culinary_type: Bread & Pastry
source: ai
created_at: 2026-04-01 02:49:24.665103
pdf_filename: ai_1_20260401_024909_Pizza_Dough.pdf
description:
  A simple, versatile pizza dough recipe that yields two crusts with a perfectly smooth and elastic texture. Can be customized with dried herbs and works best when chilled overnight for superior flavor.

instructions:
  Step 1: In a small bowl, mix warm water and 1 teaspoon sugar; add yeast and whisk until dissolved. Let stand until bubbles form on surface.
  Step 2: In a large bowl, whisk 3 cups flour, salt, remaining 1 teaspoon sugar and, if desired, dried herbs. Make a well in center; add yeast mixture and oil. Stir until smooth. Add enough remaining flour to form a soft dough.
  Step 3: Turn onto a floured surface; knead, adding more flour to surface as needed until no longer sticky and dough is smooth and elastic, 6-8 minutes.
  Step 4: Place in a large greased bowl; turn once to grease top. Cover and let rise in a warm place for 30 minutes; transfer bowl to refrigerator and chill overnight.
  Step 5: Allow dough to come to room temperature, about 30 minutes, before rolling.


title: Pizza in a Split Crescent
cuisine: American
culinary_type: Sandwich
source: ai
created_at: 2026-04-01 02:49:57.113641
pdf_filename: ai_1_20260401_024945_Pizza_in_a_split_crescent.pdf
description:
  A quick and easy pizza-inspired sandwich made with Pillsbury crescent roll dough, pepperoni, spaghetti sauce, and mozzarella cheese. Baked until golden brown for a fun handheld meal.

instructions:
  Step 1: Press or roll each rectangle of dough to form a 7x5-inch rectangle on a cookie sheet.
  Step 2: Arrange 9 pepperoni slices in the center third of each rectangle.
  Step 3: Layer 1 tablespoon spaghetti sauce and 1 slice of mozzarella cheese over the pepperoni.
  Step 4: Fold short sides of dough to almost meet in center; securely pinch edges together, leaving the middle open.
  Step 5: Tuck 4 or 5 pepperoni slices into the middle opening.
  Step 6: Bake at 375°F for 13 to 16 minutes or until golden brown.


title: Pizzaria Uno's Pizza
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:51:08.040105
pdf_filename: ai_1_20260401_025042_Pizzaria_Unos_Pizza.pdf
description:
  A copycat recipe for Pizzaria Uno's famous deep-dish pizza, featuring a thick yeast crust topped with mozzarella, Italian sausage, tomatoes, and herbs.

instructions:
  Step 1: Generously brush a heavy 10 x 2-inch round cake pan or 10-inch springform pan with olive oil or cooking oil.
  Step 2: In large mixer bowl, sprinkle yeast into warm water. Stir till dissolved. Stir in 1 1/2 cups of the flour, the 1/3 cup oil, and 1/2 teaspoon salt. Beat at low speed 30 seconds, scraping bowl constantly. Beat for 2 minutes at high speed, scraping bowl often. Stir in as much of the remaining flour as you can.
  Step 3: Cover, let rise in warm place till double. Punch down. Let rest 5 minutes.
  Step 4: Turn dough into pan. Using oiled hands, spread dough evenly over bottom and partially up sides of pan. Cover; let rise till nearly double, about 30 minutes.
  Step 5: Arrange cheese slices in 1/4-inch thick layer on dough. Gently press sausage on cheese. Using hands, gently crush tomatoes into small pieces atop sausage. Sprinkle with herb and Parmesan.
  Step 6: Bake in a 500 degree oven for about 25 to 30 minutes or till edges of the crust are crisp and golden brown. If desired, sprinkle the pizza with sliced mushrooms or chopped green pepper during the last few minutes of baking time. Let the pizza stand 5 to 10 minutes before cutting.


title: Portobello Pizza
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:51:40.288305
pdf_filename: ai_1_20260401_025130_Portobello_pizza.pdf
description:
  A low-carb pizza alternative using large portobello mushroom caps as the base, topped with favorite pizza toppings and melted mozzarella cheese.

instructions:
  Step 1: Preheat oven to 375°F.
  Step 2: Rub portobello caps with oil. Place on a cookie sheet and bake 5 minutes on each side.
  Step 3: Remove from oven and let stand 5 minutes; leave oven on.
  Step 4: Add favorite pizza toppings; smother with cheese.
  Step 5: Return to oven for 5 minutes more, or until cheese is bubbly.


title: Puffy-Crust "Pizza"
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:52:13.072656
pdf_filename: ai_1_20260401_025159_Puffy-Crust_Pizza.pdf
description:
  A quick and easy pizza made with frozen puff pastry shells as the crust, topped with mozzarella, pepperoni, onion, and tomato.

instructions:
  Step 1: Let frozen puff-pastry shells stand at room temperature to thaw slightly.
  Step 2: On floured surface, stack puff-pastry shells, one on top of the other, pressing shells firmly together. With floured rolling pin, roll pastry into 12-inch round; let pastry rest at room temperature 15 minutes. Preheat oven to 450°F.
  Step 3: Place pastry round on ungreased cookie sheet; bake 10 minutes. With tip of small knife, cut slits in top of pastry to vent steam; bake 10 minutes.
  Step 4: Remove pastry from oven. Top with cheese, pepperoni, onion, and tomato. Bake until cheese is melted. Sprinkle top of "pizza" with parsley.


title: Angel Hair Pasta with Chicken
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:53:24.835234
pdf_filename: ai_1_20260401_025310_Angel_hair_pasta_with_chicken.pdf
description:
  A light and flavorful pasta dish featuring tender chicken breast, fresh vegetables, and angel hair pasta tossed in a savory chicken broth and basil sauce, topped with grated Parmesan cheese.

instructions:
  Step 1: Heat 1 tablespoon oil in a medium skillet over medium heat; add chicken. Cook, stirring, until chicken is cooked through, about 5 minutes. Remove from skillet and drain on paper towels.
  Step 2: Heat remaining oil in same skillet. Begin heating water for pasta. Add carrot to skillet; cook, stirring, for 4 minutes. Add broccoli and garlic to skillet; cook, stirring, for 2 minutes longer.
  Step 3: Cook pasta according to package directions. While pasta is cooking, add chicken broth, basil and Parmesan to skillet. Stir to combine. Return chicken to skillet. Reduce heat and simmer for 4 minutes.
  Step 4: Drain pasta. Place in a large serving bowl. Top with chicken and vegetable mixture. Serve immediately.


title: Baked Penne with Chicken and Sun-Dried Tomatoes
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:54:28.923730
pdf_filename: ai_1_20260401_025406_Baked_Panne_with_Chicken_and_Sun-Dried_Tomatoes.pdf
description:
  A hearty baked pasta dish with chicken, mushrooms, and sun-dried tomatoes in a creamy provolone and Parmesan sauce. Makes two baking dishes — serve one tonight and freeze the other for later.

instructions:
  Step 1: Preheat oven to 400 degrees F. Butter two shallow 2-quart baking dishes. In a large pot of boiling salted water, cook pasta 3 minutes short of al dente; drain pasta, and return to pot.
  Step 2: In a large nonstick skillet, heat oil over medium-high. Season chicken with salt and pepper; cook until opaque throughout, 3 to 5 minutes per side. Halve each piece lengthwise, then thinly slice crosswise.
  Step 3: In a 5-quart Dutch oven or heavy pot, melt butter over medium. Add flour and garlic; cook, whisking, 1 minute. While whisking, gradually add milk; bring to a simmer, whisking frequently. Add mushrooms and tomatoes; cook 1 minute. Off heat, gradually stir in provolone and 1/2 cup Parmesan.
  Step 4: Add chicken and pasta to pot; season with salt and pepper. Divide pasta mixture between baking dishes; sprinkle each with cup Parmesan.
  Step 5: Bake, uncovered, until top is golden and bubbling, about 25 minutes. Let stand 5 minutes before serving.
  Step 6: To make ahead, prepare through step 4; let cool. Cover tightly with foil, and freeze, up to 3 months. Preheat oven to 400 degrees F, and bake (still covered in foil) on a rimmed baking sheet until center is hot, about 1 1/2 hours. Remove foil; bake until golden, about 15 minutes more.


title: Chicken Mozzarella Pasta with Sun-Dried Tomatoes
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 02:55:13.772551
pdf_filename: ai_1_20260401_025444_Chicken_Mozzarella_Pasta_with_Sun-Dried_Tomatoes.pdf
description:
  A creamy, cheesy pasta dish featuring tender chicken breast, sun-dried tomatoes, and melted mozzarella in a rich half-and-half sauce, finished with fresh basil and red pepper flakes.

instructions:
  Step 1: Note: if using sun-dried tomatoes in oil (in a jar), make sure to drain sun-dried tomatoes from oil before using them. Reserve 2 tablespoons of this drained oil for sauteing as described below.
  Step 2: In a large pan, on high heat, sautee garlic and sun-dried tomatoes (drained from oil) in 2 tablespoons of oil (reserved from the sun-dried tomatoes jar) for 1 minute until garlic is fragrant. Remove sun-dried tomatoes from the pan, leaving the oil, and add chicken tenders, salted and lightly covered in paprika (for color) and cook on high heat for 1 minute on each side. Remove from heat.
  Step 3: Cook pasta according to package instructions. Reserve some cooked pasta water. Drain and rinse the pasta with cold water (to stop cooking).
  Step 4: Slice sun-dried tomatoes into smaller bits and add them back to the skillet with chicken. Add half and half and cheese to the skillet too, and bring to boil. Immediately reduce to simmer and cook, constantly stirring, until all cheese melts and creamy sauce forms. If the sauce is too thick - don't worry - you'll be adding some cooked pasta water soon. Add cooked pasta to the skillet with the creamy sauce, and stir to combine. Add basil, stir to combine.
  Step 5: Add about 1/2 cup reserved cooked pasta water because the creamy sauce will be too thick (do not add all water at once - you might need less or more of it). This will water down the thickness of the cheese sauce and make it creamier. Immediately, season the pasta with salt and more red pepper flakes, to taste, if needed. Let it simmer for a couple of minutes for flavors to combine.
  Step 6: Note: Make sure to salt the dish just enough to bring out the flavors of basil and sun-dried tomatoes.


title: Creole Chicken Pasta
cuisine: Cajun
culinary_type: Main Course
source: ai
created_at: 2026-04-01 03:00:22.528315
pdf_filename: ai_1_20260401_030009_Creole_Chicken_Pasta.pdf
description:
  A quick and flavorful Cajun-inspired skillet dish featuring chicken strips simmered with stewed tomatoes, green bell pepper, and bouillon, served over savory pasta.

instructions:
  Step 1: Coat a large nonstick skillet with cooking spray.
  Step 2: Brown chicken strips; remove from skillet.
  Step 3: Add remaining ingredients except Savory Pasta; bring to a boil.
  Step 4: Reduce heat; cover and simmer 10 minutes.
  Step 5: Return chicken to skillet; heat through.
  Step 6: Serve over Savory Pasta.

flag_notes:
  {"severity": "warning", "unmatched_ingredients": [{"raw_name": "Wyler's Chicken-Flavor Bouillon Granules", "item_type": "ingredient", "quantity": "1", "raw_unit": "tbsp", "matched_unit": "tbsp", "modifiers": "", "package_size": "", "order_index": 4}], "unmatched_modifiers": [{"ingredient": "Chicken", "ingredient_id": 1086, "modifiers": ["strips"]}, {"ingredient": "Canned Tomatoes", "ingredient_id": 1831, "modifiers": ["Cajun-style stewed"]}, {"ingredient": "Pepper", "ingredient_id": 1152, "modifiers": ["red pepper flakes"]}, {"ingredient": "Pasta", "ingredient_id": 1289, "modifiers": ["savory"]}], "unit_warnings": [], "message": "Unrecognized ingredients: Wyler's Chicken-Flavor Bouillon Granules. Unrecognized modifiers \u2014 Chicken: strips; Canned Tomatoes: Cajun-style stewed; Pepper: red pepper flakes; Pasta: savory"}


title: Skinny Pesto & Pasta
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 03:00:54.788443
pdf_filename: ai_1_20260401_030044_Skinny_Pesto__Pasta.pdf
description:
  A light and flavorful pesto pasta made with fresh basil, pine nuts, and nonfat Parmesan, blended together and tossed with savory pasta. Only 3.5g of fat per serving.

instructions:
  Step 1: In a blender or food processor, combine all ingredients except Savory Pasta.
  Step 2: Blend until basil is finely chopped.
  Step 3: Toss with Savory Pasta and serve.

flag_notes:
  {"severity": "warning", "unmatched_ingredients": [{"raw_name": "Wyler's Chicken-Flavor Bouillon Granules", "item_type": "ingredient", "quantity": "1", "raw_unit": "tbsp", "matched_unit": "tbsp", "modifiers": "", "package_size": "", "order_index": 4}], "unmatched_modifiers": [{"ingredient": "Parmesan Cheese", "ingredient_id": 894, "modifiers": ["nonfat"]}], "unit_warnings": [], "message": "Unrecognized ingredients: Wyler's Chicken-Flavor Bouillon Granules. Unrecognized modifiers \u2014 Parmesan Cheese: nonfat"}


title: Spicy Parmesan Chicken Pasta
cuisine: American
culinary_type: Main Course
source: ai
created_at: 2026-04-01 13:41:11.728447
pdf_filename: batch_1_20260401_134111_Spicy Parmesan Chicken Pasta.pdf
description:
  A flavorful pasta dish featuring marinated chicken breast tossed with penne, Parmesan cheese, and a spicy kick from red pepper flakes. Quick to prepare and perfect for a weeknight dinner.

instructions:
  Step 1: In a medium bowl, combine 1/3 cup olive oil, 1/4 cup Parmesan cheese, garlic, brown sugar, soy sauce and red pepper flakes. Add the diced chicken to the marinade and stir to coat chicken. Cover bowl with saran wrap and chill in fridge. Let marinate at least 30 minutes, or up to 8 hours.
  Step 2: In a large pot of boiling water, cook pasta according to package directions; drain well. Toss cooked pasta with 1 teaspoon olive oil and remaining Parmesan cheese.
  Step 3: Meanwhile, heat a large skillet over medium high heat. Add the chicken and marinade mixture. Cook and stir chicken for 10-12 minutes, or until chicken is no longer pink. Stir in the pasta and gently toss to combine. Season with salt and pepper.
  Step 4: Serve immediately with sliced green onion and extra Parmesan cheese.


title: Sun-Dried Tomato Sausage Spinach & Feta Frittata
cuisine: American
culinary_type: Breakfast / Brunch
source: ai
created_at: 2026-04-01 13:41:27.381974
pdf_filename: batch_1_20260401_134127_SUN-DRIED TOMATO SAUSAGE SPINACH & FETA FRITTATA.pdf
description:
  A hearty frittata made with sun-dried tomato sausage, fresh baby spinach, and creamy feta cheese. Perfect for breakfast or brunch, served in wedges.

instructions:
  Step 1: In a large nonstick frying pan, over medium high heat, melt the butter and sauté the onion about 5 minutes, until translucent.
  Step 2: Add the sausage and sauté about 3 minutes, until beginning to brown.
  Step 3: Add the spinach and sauté about 2 minutes, until just wilted.
  Step 4: In a mixing bowl, whisk the eggs with salt and pepper, to taste. Pour the eggs over the sausage mixture, stirring to combine.
  Step 5: Reduce the heat and top with the feta. Cover and cook 5-8 minutes more until the top is set.
  Step 6: Transfer to a plate and cut into wedges to serve.


title: Vegetable & Rotini Twist
cuisine: Italian
culinary_type: Main Course
source: ai
created_at: 2026-04-01 13:41:41.426395
pdf_filename: batch_1_20260401_134141_Vegetable & Rotini Twist.pdf
description:
  A light and flavorful pasta dish featuring rotini tossed with fresh sautéed vegetables, garlic, Italian seasoning, and bouillon. Ready in minutes and served with Parmesan cheese.

instructions:
  Step 1: In a large skillet, cook onion, garlic, and Italian seasoning in olive oil until tender.
  Step 2: Add vegetables, water, and bouillon. Cover and simmer 5 to 7 minutes or until vegetables are tender-crisp.
  Step 3: Toss vegetables with prepared Savory Pasta (rotini).
  Step 4: Serve immediately, with Parmesan cheese if desired.


# user

username: admin
role: admin
status: active
created_at: 2026-02-06 06:25:44.501937
last_login: 2026-03-30 15:29:29.947553
last_seen: 2026-04-01 13:42:03.114061
timezone: America/Los_Angeles
zip_code: 92626
preferred_ai_provider: claude
password_hash:
  scrypt:32768:8:1$L8YaqXAzLPBYmxm8$488d7ca4c61161c0c5f008071d3a0aad0d8c3b365e84f3c913770b8caeac6b7a18c40280c4dfa5d242b3eff3ba5bf276ba07a54716aec52ca64c8dbd059ef225

api_key_claude:
  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


username: mod
role: moderator
status: active
created_at: 2026-02-12 20:14:42.612040
last_login: 2026-03-27 20:54:12.366131
last_seen: 2026-03-27 20:54:53.473368
timezone: America/Los_Angeles
preferred_ai_provider: claude
password_hash:
  scrypt:32768:8:1$C2HkN8iwtFIIOprd$a2e7ee2e3f2bff22ee12bda64d6865ea432218d467f9e11239917a9311de98ad3c8e8dc5393463960fafffadf5681ca08a2aed09c66dd3ff7d305eb00cab420c


username: Spazz
email: josh@bardin.one
role: user
status: active
created_at: 2026-02-14 07:07:56.798185
last_login: 2026-02-13 23:07:56.898137
timezone: America/Los_Angeles
preferred_ai_provider: claude
password_hash:
  scrypt:32768:8:1$hzXmHgvENlB73MQV$9291c5d3f37834e9f76b318f5a8b13be2bf4153be370456c8293a02517ac105eac3abe8c95305a07cb297d477860464e47fc71ef93cb7d662b5964cc152d3589


username: ChefBeezy
email: joshua.v.bardin@me.com
role: user
status: active
created_at: 2026-02-19 00:21:43.074875
last_login: 2026-03-27 19:25:28.485665
last_seen: 2026-03-27 19:25:39.744980
timezone: America/Los_Angeles
preferred_ai_provider: claude
password_hash:
  scrypt:32768:8:1$3r8jiGJrfOSBXrKI$bc81978a9e0009841dcb63bd3a8d1f40e2dfda2bb52abdcb9c454f460ba39dd78a0c95e1120ec8fceba6dba38d08e7e528f1cab5dc6ecf6f7fcaf6ee6917bf5b


username: Aimkas
email: aim76@hotmail.com
role: user
status: active
created_at: 2026-02-19 00:27:32.679761
last_login: 2026-02-19 00:29:06.268293
timezone: America/Chicago
preferred_ai_provider: claude
password_hash:
  scrypt:32768:8:1$3p76Cl2nkycUYru1$00c48bb95e66824c8bfd523d62b220e55b711dffcad4414b000d3f86b70de76656b406e3841e19bf35bff78b668ce64b719ebbe13cb84c8315f097df7038d8da


username: Phaba
email: syncope.punchy.3q@icloud.com
role: user
status: active
created_at: 2026-02-19 01:36:22.538172
last_login: 2026-02-19 01:40:34.098165
timezone: America/Chicago
preferred_ai_provider: claude
password_hash:
  scrypt:32768:8:1$uKjpUtFGyPuSOq0g$41e57c455138b911f8c25da204af0fd8d52bc16c8b52397b902d160c38731c61ce79ebc1edb16fde949f0fab593de9d2a37f4879ba0fd1fc3e894cf2f6428f39


username: demo
email: demo@kitchencrate.local
role: user
status: active
created_at: 2026-03-26 19:57:17.662314
last_login: 2026-03-29 20:55:01.394888
last_seen: 2026-03-30 15:05:38.622069
timezone: America/Los_Angeles
preferred_ai_provider: claude
password_hash:
  scrypt:32768:8:1$oNiC51Mye1nXBl2E$1c5e6c3585471c360b248d98dbcf101fef475ef7fcadf5d25dfea5d930a1ba1e6eae753a7d40da68dddbbb4a7ee6dd87a24ea9ecac24e802d66e25b74528dede


