{"id":"b4e46aba-93b4-466e-8738-0ef302e15844","entityType":"agent","slug":"clawhub-voronindenis5-leftover-chef","name":"leftover-chef","canonicalUrl":"https://www.xpersona.co/agent/clawhub-voronindenis5-leftover-chef","canonicalPath":"/agent/clawhub-voronindenis5-leftover-chef","generatedAt":"2026-10-09T19:20:17.619Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T13:29:57.096Z","emptyReason":null},"description":"Suggests recipes based on leftover ingredients you already have. Takes a list of ingredients (from photo description, text, or voice) and generates recipes ranked by how completely they use what's available. Includes a 50+ recipe database and a Python matcher that flags missing ingredients. Skill: leftover-chef Owner: voronindenis5 Summary: Suggests recipes based on leftover ingredients you already have. Takes a list of ingredients (from photo description, text, or voice) and generates recipes ranked by how completely they use what's available. Includes a 50+ recipe database and a Python matcher that flags missing ingredients. Tags: latest:0.1.1 Version history: v0.1.1 | 2026-08-11T11:58:26.616Z | auto","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:leftover-chef","sourceUrl":"https://clawhub.ai/voronindenis5/leftover-chef","homepage":"https://clawhub.ai/voronindenis5/skills/leftover-chef","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/voronindenis5/leftover-chef","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/voronindenis5/skills/leftover-chef","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":68,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Suggests recipes based on leftover ingredients you already have. Takes a list of ingredients (from photo description, text, or voice) and generates recipes rank"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:29:57.096Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:29:57.096Z","emptyReason":null},"stars":null,"forks":null,"downloads":2563,"packageName":null,"latestVersion":"0.1.1","tractionLabel":"2.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:29:57.096Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T13:29:57.096Z","lastCrawledAt":"2026-10-09T13:29:57.096Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T13:29:57.096Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.1","createdAt":"2026-08-11T11:58:26.616Z","changelog":"- Removed the file skill-card.md. - No other functionality or documentation changes in this version.","fileCount":11,"zipByteSize":16606},{"version":"0.1.0","createdAt":"2026-08-05T19:49:14.091Z","changelog":"Initial release of Leftover Chef. - Suggests recipes based on leftover ingredients supplied by the user (text, photo description, or voice). - Built-in database of 50+ recipes, matched using a Python script that highlights missing ingredients. - Recipes are ranked by how completely your ingredients match each recipe. - Command-line usage with options for JSON output, limiting results, filtering by usage percent, and listing known ingredients or recipes. - Provides missing ingredient warnings and substitution suggestions to help reduce food waste.","fileCount":11,"zipByteSize":16644}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17b6amkd3wzqgg640v03a9r1n83gxs1:leftover-chef","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T19:20:17.617Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-voronindenis5-leftover-chef/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T13:29:57.096Z","emptyReason":null},"readme":"Skill: leftover-chef\n\nOwner: voronindenis5\n\nSummary: Suggests recipes based on leftover ingredients you already have. Takes a list of ingredients (from photo description, text, or voice) and generates recipes ranked by how completely they use what's available. Includes a 50+ recipe database and a Python matcher that flags missing ingredients.\n\nTags: latest:0.1.1\n\nVersion history:\n\nv0.1.1 | 2026-08-11T11:58:26.616Z | auto\n\n- Removed the file skill-card.md.\n- No other functionality or documentation changes in this version.\n\nv0.1.0 | 2026-08-05T19:49:14.091Z | auto\n\nInitial release of Leftover Chef.\n\n- Suggests recipes based on leftover ingredients supplied by the user (text, photo description, or voice).\n- Built-in database of 50+ recipes, matched using a Python script that highlights missing ingredients.\n- Recipes are ranked by how completely your ingredients match each recipe.\n- Command-line usage with options for JSON output, limiting results, filtering by usage percent, and listing known ingredients or recipes.\n- Provides missing ingredient warnings and substitution suggestions to help reduce food waste.\n\nArchive index:\n\nArchive v0.1.1: 11 files, 16606 bytes\n\nFiles: LICENSE (1070b), README.md (3416b), references (0b), references/recipes.md (3115b), references/substitutions.md (3131b), scripts (0b), scripts/leftover_chef.py (12242b), scripts/recipes_db.json (17355b), skill-card.md (1861b), SKILL.md (2835b), _meta.json (132b)\n\nFile v0.1.1:SKILL.md\n\n---\nname: leftover-chef\ndescription: >\n  Suggests recipes based on leftover ingredients you already have. Takes a list of\n  ingredients (from photo description, text, or voice) and generates recipes ranked\n  by how completely they use what's available. Includes a 50+ recipe database and a\n  Python matcher that flags missing ingredients.\nversion: 1.0.0\nauthor: Denis Voronin\nlicense: MIT\ntags:\n  - cooking\n  - recipes\n  - food-waste\n  - sustainability\n  - meal-planning\n---\n\n# Leftover Chef\n\nTurn random leftover ingredients into meals you can actually cook tonight.\n\n## When to use\n\n- The user lists ingredients they have (e.g. \"I have eggs, rice, and soy sauce\").\n- The user describes a fridge photo or voice inventory.\n- The user wants to reduce food waste by cooking with what's on hand.\n\n## How it works\n\n1. Collect the user's available ingredients as a simple list (comma or space separated).\n2. Run `scripts/leftover_chef.py` with the ingredients as arguments.\n3. The script matches against a built-in database of 50+ recipes (JSON, stdlib only).\n4. Recipes are ranked by **usage ratio**: how many of your ingredients the recipe uses\n   vs. how many the recipe needs that you don't have.\n5. Each result shows the recipe, which ingredients you have, which are missing, and a\n   usage percentage.\n\n## Usage\n\n### From the command line\n\n```bash\npython3 scripts/leftover_chef.py eggs rice soy sauce\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py chicken potato --json\npython3 scripts/leftover_chef.py tomato onion garlic --limit 3\n```\n\n### Options\n\n| Flag | Description |\n|------|-------------|\n| `--json` | Output results as JSON |\n| `--limit N` | Show top N matches (default 10) |\n| `--threshold P` | Minimum usage percent to show (default 0) |\n| `--list-ingredients` | Print all known ingredients |\n| `--list-recipes` | Print all recipe names |\n\n### Interpreting results\n\n- **Usage 100%**: you have every ingredient. Cook it now.\n- **Usage 70–99%**: you're missing 1–2 items — easy substitution or quick store run.\n- **Usage 40–69%**: partial match, listed for inspiration.\n- **Missing** items are printed with a warning so the agent can suggest substitutions.\n\n## Agent workflow\n\n1. Ask for or receive the ingredient list.\n2. Run the script and read the ranked output.\n3. Present the top 3–5 matches to the user with a short pitch for each.\n4. Offer substitution suggestions for any missing ingredients.\n5. Optionally read a full recipe from `references/recipes.md` for details.\n\n## Files\n\n- `scripts/leftover_chef.py` — main matcher script (Python 3, stdlib only)\n- `scripts/recipes_db.json` — embedded recipe database (50+ recipes)\n- `references/recipes.md` — detailed cooking notes for featured recipes\n- `references/substitutions.md` — common ingredient substitutions\n\nFile v0.1.1:README.md\n\n# Leftover Chef 🍳\n\nTurn random leftover ingredients into meals you can actually cook tonight.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## The Problem\n\nPeople throw away food because they don't know what to cook with random leftover ingredients. A fridge with eggs, rice, and half an onion becomes food waste instead of fried rice.\n\n## The Solution\n\n**Leftover Chef** is an agent skill that takes a list of ingredients you already have and matches them against a database of **57 recipes**, ranking each by **how completely it uses what you've got**. Recipes you can make right now bubble to the top. Recipes that are one or two items short come next, with clear missing-ingredient warnings.\n\n## Quick Start\n\n```bash\n# What can I cook with these?\npython3 scripts/leftover_chef.py egg rice soy sauce garlic onion\n\n# Get JSON output for programmatic use\npython3 scripts/leftover_chef.py chicken potato carrot --json\n\n# Show only recipes I can make 80%+ of\npython3 scripts/leftover_chef.py tomato onion garlic basil --threshold 80\n\n# Browse the database\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py --list-recipes\n```\n\n## Example Output\n\n```\n============================================================\n  🍳 LEFTOVER CHEF\n  Ingredients: egg, rice, soy sauce, garlic, onion\n  Matches found: 57\n============================================================\n\n  ★ You have everything for these — cook now!\n  1. Fried Rice  —  100% ingredients (5/5)\n     ████████████████████\n     Time: 20 min  Difficulty: easy  Cuisine: asian\n     ✓ Have: rice, egg, soy sauce, garlic, onion\n```\n\n## Features\n\n- **57 built-in recipes** across 10+ cuisines (Italian, Asian, Mexican, Indian, Middle Eastern, American, French, Greek, Spanish, British)\n- **Fuzzy ingredient matching** — \"eggs\" matches \"egg\", \"tomatoes\" matches \"tomato\", synonyms understood\n- **Usage ranking** — recipes sorted by what percentage of ingredients you have\n- **Missing-ingredient warnings** — always see what you'd need to grab from the store\n- **JSON mode** for integration with other tools\n- **Threshold filtering** — only show recipes above a certain match quality\n- **Stdlib only** — no pip installs, runs on any Python 3.6+\n\n## How Matching Works\n\n1. Your ingredients are **normalised** (lowercase, synonym resolution, singular/plural)\n2. Each recipe ingredient is checked against your available set with **fuzzy string matching**\n3. Recipes are scored: `usage_pct = (ingredients_you_have / total_ingredients) × 100`\n4. Results sorted by usage percentage (descending), then by fewer missing items\n\n## Recipe Database\n\nThe database (`scripts/recipes_db.json`) includes for each recipe:\n\n- Name, ingredient list, time, difficulty, cuisine, servings\n- Step-by-step cooking instructions\n\nRecipes span from 5-minute smoothies to 2-hour beef stew, and from easy scrambled eggs to hard risotto and shepherd's pie.\n\n## Files\n\n| File | Description |\n|------|-------------|\n| `SKILL.md` | Skill definition and agent workflow |\n| `scripts/leftover_chef.py` | Main matcher script |\n| `scripts/recipes_db.json` | Recipe database (57 recipes) |\n| `references/recipes.md` | Detailed cooking notes |\n| `references/substitutions.md` | Common ingredient substitutions |\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn75wwn4x6djaf28jbykeamazd81gtdp\",\n  \"slug\": \"leftover-chef\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1786449506616\n}\n\nFile v0.1.1:references/recipes.md\n\n# Recipe Notes\n\nDetailed cooking notes for featured recipes in the Leftover Chef database.\n\n## Quick Reference by Cuisine\n\n### Italian\n- **Pasta Aglio e Olio** — The classic 5-ingredient pasta. Use plenty of garlic and good olive oil. Reserve pasta water to emulsify.\n- **Margherita Pizza** — Use \"00\" flour if available. Get your oven as hot as possible. Fresh mozzarella makes a huge difference.\n- **Risotto** — Use Arborio or Carnaroli rice. Stir constantly and add stock gradually. The rice is done when creamy but still has a slight bite (al dente).\n- **Caprese Salad** — Use the ripest tomatoes you can find. Salt the tomatoes 10 minutes before assembling.\n\n### Asian\n- **Fried Rice** — Day-old cold rice is essential. Break up clumps before frying. High heat, fast cooking.\n- **Chicken Stir-Fry** — Prep all ingredients first (mise en place). Cook in batches to avoid steaming. Sear the chicken before adding vegetables.\n- **Pad Thai** — Soak rice noodles in warm (not hot) water until pliable. Don't over-soak or they'll turn mushy.\n\n### Mexican\n- **Guacamole** — Use Haas avocados. Keep the pit in the bowl to slow browning. Add lime juice immediately.\n- **Beef Tacos** — Warm tortillas on a dry comal or pan. Don't overfill.\n- **Chili Con Carne** — Better the next day. A square of dark chocolate adds depth.\n\n### Middle Eastern\n- **Shakshuka** — Don't overcook the eggs. The yolks should still be runny. Serve with crusty bread.\n- **Hummus** — Peel the chickpeas for the smoothest texture. Ice water while blending makes it fluffier.\n\n### Indian\n- **Chicken Curry** — Toast the curry powder briefly in oil to bloom the spices. Don't rush the onion base.\n\n### American\n- **Pancakes** — Don't overmix; lumps are fine. Let the batter rest 5 minutes. Flip only once when bubbles pop.\n- **Mac and Cheese** — Make a proper roux (butter + flour) before adding milk. Gruyère mixed with cheddar is excellent.\n- **Banana Bread** — The riper the bananas, the better. Dark, spotty skins are ideal.\n\n### French\n- **Crepes** — Let the batter rest 30 minutes. Use a non-stick pan. The first crepe is always a test.\n\n## Cooking Techniques\n\n### Sautéing vs. Frying\n- **Sauté**: medium-high heat, small amount of fat, food moved constantly.\n- **Pan-fry**: medium heat, more fat (¼ inch), food turned once or twice.\n- **Deep-fry**: 175-190°C, food fully submerged.\n\n### Knife Cuts Quick Reference\n| Cut | Size |\n|-----|------|\n| Brunoise | 3mm dice |\n| Small dice | 6mm |\n| Medium dice | 12mm |\n| Julienne | 3mm × 3mm × 5cm |\n| Chiffonade | thin ribbons (basil, etc.) |\n\n## Seasoning Tips\n- Salt pasta water \"like the sea\" — it's the only chance to season the pasta itself.\n- Acid (lemon, lime, vinegar) brightens dishes the way salt deepens them.\n- Toast whole spices in a dry pan for 30-60 seconds before grinding or using.\n\n## Storage Quick Guide\n- Cooked rice: refrigerate within 1 hour, use within 3 days.\n- Cooked chicken: 3-4 days refrigerated.\n- Tomatoes: keep at room temperature; refrigerating kills flavour.\n- Avocados: ripen on counter, then refrigerate up to 3 days.\n\nFile v0.1.1:references/substitutions.md\n\n# Ingredient Substitutions\n\nCommon substitutions the agent can suggest when ingredients are missing.\n\n## Dairy\n| Missing | Substitute |\n|---------|-----------|\n| Butter | Margarine, ghee, olive oil (for cooking), coconut oil |\n| Milk | Oat milk, soy milk, almond milk, water + extra butter |\n| Heavy cream | ¾ cup milk + ¼ cup melted butter |\n| Buttermilk | 1 cup milk + 1 tbsp lemon juice or vinegar (let sit 5 min) |\n| Sour cream | Plain yogurt, crème fraîche |\n| Cream cheese | Blended cottage cheese, mascarpone |\n| Parmesan | Pecorino Romano, Grana Padano, nutritional yeast (vegan) |\n\n## Eggs\n| Missing | Substitute (per egg) |\n|---------|----------------------|\n| Egg (baking) | 1 tbsp ground flax + 3 tbsp water; ½ mashed banana; ¼ cup applesauce |\n| Egg (binding) | 2 tbsp cornstarch + 2 tbsp water |\n| Egg (coating) | Milk or water dip before breading |\n\n## Flours & Starches\n| Missing | Substitute |\n|---------|-----------|\n| All-purpose flour | 1:1 gluten-free blend, spelt flour |\n| Breadcrumbs | Crushed crackers, oats, panko |\n| Cornstarch | Arrowroot powder, potato starch (2 tsp per 1 tbsp cornstarch) |\n| Baking powder | ¼ tsp baking soda + ½ tsp cream of tartar |\n\n## Oils & Fats\n| Missing | Substitute |\n|---------|-----------|\n| Olive oil | Canola oil, vegetable oil, grapeseed oil |\n| Sesame oil | Peanut oil + a dash of soy sauce |\n| Vegetable oil | Any neutral oil (canola, sunflower) |\n\n## Sugars\n| Missing | Substitute |\n|---------|-----------|\n| White sugar | Brown sugar, honey (use ¾ amount), maple syrup |\n| Brown sugar | 1 cup white sugar + 1 tbsp molasses |\n| Powdered sugar | Blend 1 cup white sugar + 1 tbsp cornstarch |\n\n## Herbs & Spices\n| Missing | Substitute |\n|---------|-----------|\n| Fresh basil | Dried basil (use ⅓ amount), fresh spinach + oregano |\n| Fresh parsley | Dried parsley (⅓), fresh cilantro |\n| Fresh ginger | ¼ tsp ground ginger per tbsp fresh; ginger paste |\n| Fresh garlic | ¼ tsp garlic powder per clove; 1 tsp pre-minced jar garlic |\n| Curry powder | Garam masala + turmeric |\n| Chili powder | Cayenne (use less!), paprika + cumin |\n\n## Proteins\n| Missing | Substitute |\n|---------|-----------|\n| Ground beef | Ground turkey, lentils, mushrooms + beans (vegetarian) |\n| Chicken | Turkey, firm tofu, chickpeas |\n| Fish | Another firm white fish; chicken breast |\n| Bacon | Smoked paprika + oil, turkey bacon, pancetta |\n\n## Vegetables\n| Missing | Substitute |\n|---------|-----------|\n| Bell pepper | Any colour pepper, celery + carrot |\n| Onion | Shallot, leek, scallion whites |\n| Tomato (fresh) | Canned diced tomato (drained), tomato puree |\n| Potato | Sweet potato, cauliflower (low-carb) |\n| Broccoli | Cauliflower, broccolini |\n\n## Pantry\n| Missing | Substitute |\n|---------|-----------|\n| White wine | Chicken/veg broth + 1 tsp lemon juice or vinegar |\n| Soy sauce | Tamari, coconut aminos, Worcestershire + salt |\n| Rice wine vinegar | Apple cider vinegar + pinch of sugar |\n| Chicken broth | Vegetable broth, water + bouillon cube |\n| Coconut milk | Heavy cream, yogurt thinned with milk |\n| Tahini | Peanut butter (smooth), sunflower seed butter |\n\nFile v0.1.1:scripts/recipes_db.json\n\n{\n  \"recipes\": [\n    {\"name\": \"Scrambled Eggs\", \"ingredients\": [\"egg\", \"butter\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Whisk eggs with salt and pepper. Melt butter in a pan over medium-low heat. Pour in eggs, stir gently until set.\"},\n    {\"name\": \"Fried Rice\", \"ingredients\": [\"rice\", \"egg\", \"soy sauce\", \"garlic\", \"onion\", \"oil\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Heat oil, fry garlic and onion. Add cold rice, stir-fry. Push rice aside, scramble egg. Mix, add soy sauce.\"},\n    {\"name\": \"Omelette\", \"ingredients\": [\"egg\", \"cheese\", \"butter\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"french\", \"servings\": 1, \"instructions\": \"Beat eggs with salt and pepper. Melt butter, pour eggs. When set, add cheese, fold.\"},\n    {\"name\": \"Pasta Aglio e Olio\", \"ingredients\": [\"pasta\", \"garlic\", \"olive oil\", \"chili flakes\", \"salt\", \"parsley\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 2, \"instructions\": \"Cook pasta. Sauté sliced garlic in olive oil with chili flakes. Toss pasta in oil, garnish with parsley.\"},\n    {\"name\": \"Tomato Soup\", \"ingredients\": [\"tomato\", \"onion\", \"garlic\", \"basil\", \"olive oil\", \"salt\", \"pepper\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Sauté onion and garlic in olive oil. Add chopped tomatoes, simmer 20 min. Blend, add basil, season.\"},\n    {\"name\": \"Grilled Cheese Sandwich\", \"ingredients\": [\"bread\", \"cheese\", \"butter\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 1, \"instructions\": \"Butter bread outsides. Place cheese between slices. Grill in a pan until golden on both sides.\"},\n    {\"name\": \"French Toast\", \"ingredients\": [\"bread\", \"egg\", \"milk\", \"sugar\", \"cinnamon\", \"butter\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"french\", \"servings\": 2, \"instructions\": \"Whisk eggs, milk, sugar, cinnamon. Dip bread, fry in butter until golden on both sides.\"},\n    {\"name\": \"Pancakes\", \"ingredients\": [\"flour\", \"egg\", \"milk\", \"sugar\", \"baking powder\", \"salt\", \"butter\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Mix dry and wet ingredients. Cook on a greased griddle until bubbles form, flip.\"},\n    {\"name\": \"Garlic Bread\", \"ingredients\": [\"bread\", \"garlic\", \"butter\", \"parsley\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Mix minced garlic, butter, and parsley. Spread on bread. Bake at 180C until golden.\"},\n    {\"name\": \"Caesar Salad\", \"ingredients\": [\"lettuce\", \"parmesan\", \"bread\", \"garlic\", \"lemon\", \"olive oil\", \"egg\"], \"time_min\": 20, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Make croutons from bread. Whisk egg yolk, lemon, garlic, olive oil for dressing. Toss with lettuce and parmesan.\"},\n    {\"name\": \"Mashed Potatoes\", \"ingredients\": [\"potato\", \"butter\", \"milk\", \"salt\", \"pepper\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Boil potatoes until tender. Mash with butter and milk. Season.\"},\n    {\"name\": \"Potato Soup\", \"ingredients\": [\"potato\", \"onion\", \"garlic\", \"milk\", \"butter\", \"salt\", \"pepper\"], \"time_min\": 40, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Sauté onion and garlic in butter. Add diced potatoes and water. Simmer until soft. Add milk, blend partially, season.\"},\n    {\"name\": \"Roasted Potatoes\", \"ingredients\": [\"potato\", \"olive oil\", \"salt\", \"pepper\", \"garlic\", \"rosemary\"], \"time_min\": 45, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 4, \"instructions\": \"Toss potato chunks with olive oil, garlic, rosemary, salt, pepper. Roast at 200C for 35 min.\"},\n    {\"name\": \"Chicken Stir-Fry\", \"ingredients\": [\"chicken\", \"soy sauce\", \"garlic\", \"ginger\", \"onion\", \"oil\", \"bell pepper\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Slice chicken, stir-fry in oil. Add garlic, ginger, onion, bell pepper. Season with soy sauce.\"},\n    {\"name\": \"Chicken Soup\", \"ingredients\": [\"chicken\", \"carrot\", \"onion\", \"garlic\", \"salt\", \"pepper\", \"water\"], \"time_min\": 60, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 6, \"instructions\": \"Simmer chicken with vegetables for 45 min. Shred chicken, return to pot, season.\"},\n    {\"name\": \"Chicken Curry\", \"ingredients\": [\"chicken\", \"onion\", \"garlic\", \"ginger\", \"curry powder\", \"tomato\", \"coconut milk\", \"oil\"], \"time_min\": 40, \"difficulty\": \"medium\", \"cuisine\": \"indian\", \"servings\": 4, \"instructions\": \"Sauté onion, garlic, ginger. Add curry powder, chicken, tomato. Simmer in coconut milk 20 min.\"},\n    {\"name\": \"Beef Tacos\", \"ingredients\": [\"ground beef\", \"onion\", \"garlic\", \"cumin\", \"tortilla\", \"cheese\", \"lettuce\", \"tomato\"], \"time_min\": 25, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Brown beef with onion, garlic, cumin. Serve in tortillas with cheese, lettuce, tomato.\"},\n    {\"name\": \"Spaghetti Bolognese\", \"ingredients\": [\"pasta\", \"ground beef\", \"tomato\", \"onion\", \"garlic\", \"olive oil\", \"oregano\", \"salt\"], \"time_min\": 45, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Sauté onion and garlic. Brown beef, add tomatoes and oregano. Simmer 30 min. Serve over pasta.\"},\n    {\"name\": \"Chili Con Carne\", \"ingredients\": [\"ground beef\", \"bean\", \"onion\", \"garlic\", \"tomato\", \"cumin\", \"chili powder\"], \"time_min\": 45, \"difficulty\": \"medium\", \"cuisine\": \"mexican\", \"servings\": 6, \"instructions\": \"Brown beef with onion and garlic. Add beans, tomatoes, cumin, chili powder. Simmer 30 min.\"},\n    {\"name\": \"Burrito Bowl\", \"ingredients\": [\"rice\", \"bean\", \"chicken\", \"tomato\", \"cheese\", \"lettuce\", \"avocado\", \"lime\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Cook rice. Assemble bowls with beans, chicken, tomato, cheese, lettuce, avocado. Squeeze lime.\"},\n    {\"name\": \"Quesadilla\", \"ingredients\": [\"tortilla\", \"cheese\", \"chicken\", \"onion\", \"bell pepper\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 2, \"instructions\": \"Place cheese, chicken, onion, pepper on tortilla. Fold, grill until cheese melts.\"},\n    {\"name\": \"Fajitas\", \"ingredients\": [\"chicken\", \"bell pepper\", \"onion\", \"tortilla\", \"lime\", \"garlic\", \"cumin\", \"oil\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Slice and stir-fry chicken, peppers, onion with garlic and cumin. Serve with tortillas and lime.\"},\n    {\"name\": \"Vegetable Stir-Fry\", \"ingredients\": [\"broccoli\", \"carrot\", \"bell pepper\", \"onion\", \"garlic\", \"soy sauce\", \"oil\", \"ginger\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Stir-fry vegetables in oil with garlic and ginger. Add soy sauce, toss.\"},\n    {\"name\": \"Vegetable Soup\", \"ingredients\": [\"carrot\", \"potato\", \"onion\", \"garlic\", \"tomato\", \"salt\", \"pepper\", \"water\"], \"time_min\": 40, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 6, \"instructions\": \"Sauté onion, garlic. Add chopped vegetables and water. Simmer 30 min, season.\"},\n    {\"name\": \"Caprese Salad\", \"ingredients\": [\"tomato\", \"mozzarella\", \"basil\", \"olive oil\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 2, \"instructions\": \"Slice tomato and mozzarella. Arrange with basil. Drizzle olive oil, season.\"},\n    {\"name\": \"Bruschetta\", \"ingredients\": [\"bread\", \"tomato\", \"garlic\", \"basil\", \"olive oil\", \"salt\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Toast bread. Top with diced tomato, garlic, basil, olive oil, salt.\"},\n    {\"name\": \"Guacamole\", \"ingredients\": [\"avocado\", \"lime\", \"onion\", \"tomato\", \"salt\", \"garlic\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"ingredients_detail\": \"2 ripe avocados\", \"instructions\": \"Mash avocado. Mix with diced onion, tomato, garlic, lime juice, salt.\"},\n    {\"name\": \"Salsa\", \"ingredients\": [\"tomato\", \"onion\", \"garlic\", \"lime\", \"cilantro\", \"salt\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Dice tomato, onion, garlic. Mix with lime juice, cilantro, salt.\"},\n    {\"name\": \"Hummus\", \"ingredients\": [\"chickpea\", \"tahini\", \"lemon\", \"garlic\", \"olive oil\", \"salt\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"middle eastern\", \"servings\": 4, \"instructions\": \"Blend chickpeas, tahini, lemon, garlic, olive oil, salt until smooth.\"},\n    {\"name\": \"Falafel\", \"ingredients\": [\"chickpea\", \"onion\", \"garlic\", \"cumin\", \"coriander\", \"flour\", \"oil\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"middle eastern\", \"servings\": 4, \"instructions\": \"Blend chickpeas with onion, garlic, spices. Form patties, deep-fry.\"},\n    {\"name\": \"Shakshuka\", \"ingredients\": [\"egg\", \"tomato\", \"onion\", \"garlic\", \"bell pepper\", \"cumin\", \"paprika\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"middle eastern\", \"servings\": 4, \"instructions\": \"Sauté onion, garlic, pepper. Add tomatoes, spices, simmer. Crack eggs on top, cover until set.\"},\n    {\"name\": \"Banana Bread\", \"ingredients\": [\"banana\", \"flour\", \"sugar\", \"egg\", \"butter\", \"baking soda\", \"salt\"], \"time_min\": 60, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 8, \"instructions\": \"Mash bananas. Mix with melted butter, sugar, egg. Fold in dry ingredients. Bake at 175C for 50 min.\"},\n    {\"name\": \"Apple Crumble\", \"ingredients\": [\"apple\", \"flour\", \"butter\", \"sugar\", \"cinnamon\", \"salt\"], \"time_min\": 45, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 6, \"instructions\": \"Slice apples into dish. Mix flour, butter, sugar, cinnamon for topping. Sprinkle, bake at 180C 30 min.\"},\n    {\"name\": \"Smoothie\", \"ingredients\": [\"banana\", \"milk\", \"yogurt\", \"honey\"], \"time_min\": 5, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Blend banana, milk, yogurt, honey until smooth.\"},\n    {\"name\": \"Yogurt Parfait\", \"ingredients\": [\"yogurt\", \"honey\", \"oats\", \"berry\"], \"time_min\": 5, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 1, \"instructions\": \"Layer yogurt, oats, berries, drizzle honey.\"},\n    {\"name\": \"Overnight Oats\", \"ingredients\": [\"oats\", \"milk\", \"honey\", \"banana\"], \"time_min\": 5, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 1, \"instructions\": \"Mix oats, milk, honey. Refrigerate overnight. Top with banana.\"},\n    {\"name\": \"Porridge\", \"ingredients\": [\"oats\", \"milk\", \"honey\", \"salt\", \"cinnamon\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 1, \"instructions\": \"Simmer oats in milk. Sweeten with honey, add cinnamon and salt.\"},\n    {\"name\": \"Egg Fried Rice\", \"ingredients\": [\"rice\", \"egg\", \"soy sauce\", \"onion\", \"oil\", \"pea\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 2, \"instructions\": \"Stir-fry onion, add rice, make well and scramble egg, add peas, season with soy sauce.\"},\n    {\"name\": \"Tuna Salad\", \"ingredients\": [\"tuna\", \"mayonnaise\", \"celery\", \"onion\", \"lemon\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 2, \"ingredients_detail\": \"1 can tuna\", \"instructions\": \"Mix tuna with mayo, diced celery, onion, lemon juice. Season.\"},\n    {\"name\": \"BLT Sandwich\", \"ingredients\": [\"bread\", \"bacon\", \"lettuce\", \"tomato\", \"mayonnaise\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 1, \"instructions\": \"Cook bacon. Toast bread, spread mayo. Layer bacon, lettuce, tomato.\"},\n    {\"name\": \"Bacon and Eggs\", \"ingredients\": [\"bacon\", \"egg\", \"salt\", \"pepper\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 1, \"instructions\": \"Fry bacon until crisp. Fry eggs in bacon fat. Season.\"},\n    {\"name\": \"Mac and Cheese\", \"ingredients\": [\"pasta\", \"cheese\", \"milk\", \"butter\", \"flour\", \"salt\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Cook pasta. Make roux with butter and flour, add milk, then cheese. Toss with pasta.\"},\n    {\"name\": \"Pizza Dough\", \"ingredients\": [\"flour\", \"yeast\", \"olive oil\", \"salt\", \"sugar\", \"water\"], \"time_min\": 90, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Mix flour, yeast, salt, sugar, oil, water. Knead, rise 1 hr, shape.\"},\n    {\"name\": \"Margherita Pizza\", \"ingredients\": [\"flour\", \"yeast\", \"tomato\", \"mozzarella\", \"basil\", \"olive oil\", \"salt\", \"water\"], \"time_min\": 90, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Make dough, top with tomato, mozzarella, basil, olive oil. Bake at maximum heat 10 min.\"},\n    {\"name\": \"Risotto\", \"ingredients\": [\"rice\", \"onion\", \"garlic\", \"butter\", \"parmesan\", \"white wine\", \"salt\"], \"time_min\": 35, \"difficulty\": \"hard\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Sauté onion, garlic. Toast rice, add wine. Gradually add stock. Finish with butter and parmesan.\"},\n    {\"name\": \"Gazpacho\", \"ingredients\": [\"tomato\", \"cucumber\", \"bell pepper\", \"onion\", \"garlic\", \"olive oil\", \"vinegar\", \"salt\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"spanish\", \"servings\": 4, \"instructions\": \"Blend tomato, cucumber, pepper, onion, garlic with olive oil and vinegar. Chill, serve cold.\"},\n    {\"name\": \"Greek Salad\", \"ingredients\": [\"tomato\", \"cucumber\", \"onion\", \"olive\", \"feta\", \"olive oil\", \"oregano\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"greek\", \"servings\": 4, \"instructions\": \"Chop vegetables, toss with olives and feta. Drizzle olive oil, sprinkle oregano.\"},\n    {\"name\": \"Coleslaw\", \"ingredients\": [\"cabbage\", \"carrot\", \"mayonnaise\", \"vinegar\", \"sugar\", \"salt\", \"pepper\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 6, \"instructions\": \"Shred cabbage and carrot. Mix with mayo, vinegar, sugar, seasonings.\"},\n    {\"name\": \"Pasta Pesto\", \"ingredients\": [\"pasta\", \"basil\", \"garlic\", \"pine nut\", \"parmesan\", \"olive oil\", \"salt\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Blend basil, garlic, pine nuts, parmesan, olive oil. Toss with cooked pasta.\"},\n    {\"name\": \"Meatballs\", \"ingredients\": [\"ground beef\", \"egg\", \"bread\", \"onion\", \"garlic\", \"salt\", \"pepper\", \"oil\"], \"time_min\": 45, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Mix beef, egg, soaked bread, onion, garlic. Form balls, bake or fry.\"},\n    {\"name\": \"Shepherd's Pie\", \"ingredients\": [\"ground beef\", \"onion\", \"carrot\", \"pea\", \"potato\", \"butter\", \"flour\", \"salt\"], \"time_min\": 60, \"difficulty\": \"hard\", \"cuisine\": \"british\", \"servings\": 6, \"instructions\": \"Cook beef with vegetables, thicken with flour. Top with mashed potatoes, bake 30 min.\"},\n    {\"name\": \"Fish Tacos\", \"ingredients\": [\"fish\", \"tortilla\", \"cabbage\", \"lime\", \"mayonnaise\", \"garlic\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"mexican\", \"servives\": 4, \"instructions\": \"Season and grill fish. Serve in tortillas with cabbage slaw, lime, garlic mayo.\"},\n    {\"name\": \"Salmon with Rice\", \"ingredients\": [\"salmon\", \"rice\", \"lemon\", \"butter\", \"salt\", \"pepper\", \"dill\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Cook rice. Pan-sear salmon in butter, squeeze lemon, season with dill.\"},\n    {\"name\": \"Beef Stew\", \"ingredients\": [\"beef\", \"potato\", \"carrot\", \"onion\", \"garlic\", \"flour\", \"tomato\", \"salt\", \"pepper\"], \"time_min\": 120, \"difficulty\": \"medium\", \"cuisine\": \"any\", \"servings\": 6, \"instructions\": \"Brown beef, dredged in flour. Add vegetables, tomatoes, water. Simmer 90 min.\"},\n    {\"name\": \"Crepes\", \"ingredients\": [\"flour\", \"egg\", \"milk\", \"butter\", \"sugar\", \"salt\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"french\", \"servings\": 4, \"instructions\": \"Whisk batter thin. Pour into hot buttered pan, swirl, flip after 1 min.\"},\n    {\"name\": \"Chicken Salad\", \"ingredients\": [\"chicken\", \"mayonnaise\", \"celery\", \"grape\", \"lettuce\", \"salt\", \"pepper\"], \"time_min\": 25, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Mix cooked shredded chicken with mayo, celery, grapes. Serve on lettuce.\"},\n    {\"name\": \"Egg Drop Soup\", \"ingredients\": [\"egg\", \"chicken broth\", \"ginger\", \"soy sauce\", \"cornstarch\", \"scallion\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Bring broth with ginger to boil. Thicken with cornstarch. Swirl in beaten egg, add soy sauce, top with scallion.\"},\n    {\"name\": \"Pad Thai\", \"ingredients\": [\"rice noodle\", \"egg\", \"shrimp\", \"bean sprout\", \"peanut\", \"lime\", \"soy sauce\", \"garlic\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Soak noodles. Stir-fry shrimp, garlic, push aside scramble egg. Add noodles, sprouts, sauce. Top with peanuts, lime.\"},\n    {\"name\": \"Stuffed Bell Peppers\", \"ingredients\": [\"bell pepper\", \"ground beef\", \"rice\", \"onion\", \"tomato\", \"cheese\", \"salt\"], \"time_min\": 60, \"difficulty\": \"medium\", \"cuisine\": \"any\", \"servings\": 4, \"instructions\": \"Mix cooked rice, beef, onion, tomato. Stuff peppers, top with cheese, bake 40 min.\"},\n    {\"name\": \"Banana Pancakes\", \"ingredients\": [\"banana\", \"egg\", \"oats\", \"honey\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Blend banana, eggs, oats. Cook on greased pan. Drizzle with honey.\"}\n  ]\n}\n\nFile v0.1.1:skill-card.md\n\n## Description:\n\nSuggests recipes based on leftover ingredients, ranking matches by how completely they use available ingredients and flagging missing items.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[voronindenis5](https://clawhub.ai/user/voronindenis5)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nExternal users and agents use this skill to turn text, voice, or photo-described ingredient inventories into ranked recipe suggestions and substitution guidance for missing items.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Recipe and substitution suggestions may not account for allergies, intolerances, dietary rules, or food-safety needs.\n\nMitigation: Ask users to confirm dietary constraints and food-safety requirements before using recommendations for real meals.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/voronindenis5/skills/leftover-chef)\n- [Server-resolved source repository](https://github.com/voronindenis5/leftover-chef)\n- [Recipe notes](references/recipes.md)\n- [Ingredient substitutions](references/substitutions.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, guidance]\n\n**Output Format:** [Markdown or plain text recipe recommendations, with optional JSON output from the matcher script]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Ranks recipe matches by available ingredient coverage and identifies missing ingredients.]\n\n## Skill Version(s):\n\n0.1.1 (source: ClawHub release metadata; artifact SKILL.md frontmatter reports 1.0.0)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.1:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Denis Voronin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nArchive v0.1.0: 11 files, 16644 bytes\n\nFiles: LICENSE (1070b), README.md (3416b), references (0b), references/recipes.md (3115b), references/substitutions.md (3131b), scripts (0b), scripts/leftover_chef.py (12242b), scripts/recipes_db.json (17355b), skill-card.md (1965b), SKILL.md (2835b), _meta.json (132b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: leftover-chef\ndescription: >\n  Suggests recipes based on leftover ingredients you already have. Takes a list of\n  ingredients (from photo description, text, or voice) and generates recipes ranked\n  by how completely they use what's available. Includes a 50+ recipe database and a\n  Python matcher that flags missing ingredients.\nversion: 1.0.0\nauthor: Denis Voronin\nlicense: MIT\ntags:\n  - cooking\n  - recipes\n  - food-waste\n  - sustainability\n  - meal-planning\n---\n\n# Leftover Chef\n\nTurn random leftover ingredients into meals you can actually cook tonight.\n\n## When to use\n\n- The user lists ingredients they have (e.g. \"I have eggs, rice, and soy sauce\").\n- The user describes a fridge photo or voice inventory.\n- The user wants to reduce food waste by cooking with what's on hand.\n\n## How it works\n\n1. Collect the user's available ingredients as a simple list (comma or space separated).\n2. Run `scripts/leftover_chef.py` with the ingredients as arguments.\n3. The script matches against a built-in database of 50+ recipes (JSON, stdlib only).\n4. Recipes are ranked by **usage ratio**: how many of your ingredients the recipe uses\n   vs. how many the recipe needs that you don't have.\n5. Each result shows the recipe, which ingredients you have, which are missing, and a\n   usage percentage.\n\n## Usage\n\n### From the command line\n\n```bash\npython3 scripts/leftover_chef.py eggs rice soy sauce\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py chicken potato --json\npython3 scripts/leftover_chef.py tomato onion garlic --limit 3\n```\n\n### Options\n\n| Flag | Description |\n|------|-------------|\n| `--json` | Output results as JSON |\n| `--limit N` | Show top N matches (default 10) |\n| `--threshold P` | Minimum usage percent to show (default 0) |\n| `--list-ingredients` | Print all known ingredients |\n| `--list-recipes` | Print all recipe names |\n\n### Interpreting results\n\n- **Usage 100%**: you have every ingredient. Cook it now.\n- **Usage 70–99%**: you're missing 1–2 items — easy substitution or quick store run.\n- **Usage 40–69%**: partial match, listed for inspiration.\n- **Missing** items are printed with a warning so the agent can suggest substitutions.\n\n## Agent workflow\n\n1. Ask for or receive the ingredient list.\n2. Run the script and read the ranked output.\n3. Present the top 3–5 matches to the user with a short pitch for each.\n4. Offer substitution suggestions for any missing ingredients.\n5. Optionally read a full recipe from `references/recipes.md` for details.\n\n## Files\n\n- `scripts/leftover_chef.py` — main matcher script (Python 3, stdlib only)\n- `scripts/recipes_db.json` — embedded recipe database (50+ recipes)\n- `references/recipes.md` — detailed cooking notes for featured recipes\n- `references/substitutions.md` — common ingredient substitutions\n\nFile v0.1.0:README.md\n\n# Leftover Chef 🍳\n\nTurn random leftover ingredients into meals you can actually cook tonight.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## The Problem\n\nPeople throw away food because they don't know what to cook with random leftover ingredients. A fridge with eggs, rice, and half an onion becomes food waste instead of fried rice.\n\n## The Solution\n\n**Leftover Chef** is an agent skill that takes a list of ingredients you already have and matches them against a database of **57 recipes**, ranking each by **how completely it uses what you've got**. Recipes you can make right now bubble to the top. Recipes that are one or two items short come next, with clear missing-ingredient warnings.\n\n## Quick Start\n\n```bash\n# What can I cook with these?\npython3 scripts/leftover_chef.py egg rice soy sauce garlic onion\n\n# Get JSON output for programmatic use\npython3 scripts/leftover_chef.py chicken potato carrot --json\n\n# Show only recipes I can make 80%+ of\npython3 scripts/leftover_chef.py tomato onion garlic basil --threshold 80\n\n# Browse the database\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py --list-recipes\n```\n\n## Example Output\n\n```\n============================================================\n  🍳 LEFTOVER CHEF\n  Ingredients: egg, rice, soy sauce, garlic, onion\n  Matches found: 57\n============================================================\n\n  ★ You have everything for these — cook now!\n  1. Fried Rice  —  100% ingredients (5/5)\n     ████████████████████\n     Time: 20 min  Difficulty: easy  Cuisine: asian\n     ✓ Have: rice, egg, soy sauce, garlic, onion\n```\n\n## Features\n\n- **57 built-in recipes** across 10+ cuisines (Italian, Asian, Mexican, Indian, Middle Eastern, American, French, Greek, Spanish, British)\n- **Fuzzy ingredient matching** — \"eggs\" matches \"egg\", \"tomatoes\" matches \"tomato\", synonyms understood\n- **Usage ranking** — recipes sorted by what percentage of ingredients you have\n- **Missing-ingredient warnings** — always see what you'd need to grab from the store\n- **JSON mode** for integration with other tools\n- **Threshold filtering** — only show recipes above a certain match quality\n- **Stdlib only** — no pip installs, runs on any Python 3.6+\n\n## How Matching Works\n\n1. Your ingredients are **normalised** (lowercase, synonym resolution, singular/plural)\n2. Each recipe ingredient is checked against your available set with **fuzzy string matching**\n3. Recipes are scored: `usage_pct = (ingredients_you_have / total_ingredients) × 100`\n4. Results sorted by usage percentage (descending), then by fewer missing items\n\n## Recipe Database\n\nThe database (`scripts/recipes_db.json`) includes for each recipe:\n\n- Name, ingredient list, time, difficulty, cuisine, servings\n- Step-by-step cooking instructions\n\nRecipes span from 5-minute smoothies to 2-hour beef stew, and from easy scrambled eggs to hard risotto and shepherd's pie.\n\n## Files\n\n| File | Description |\n|------|-------------|\n| `SKILL.md` | Skill definition and agent workflow |\n| `scripts/leftover_chef.py` | Main matcher script |\n| `scripts/recipes_db.json` | Recipe database (57 recipes) |\n| `references/recipes.md` | Detailed cooking notes |\n| `references/substitutions.md` | Common ingredient substitutions |\n\n## License\n\nMIT © Denis Voronin\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn75wwn4x6djaf28jbykeamazd81gtdp\",\n  \"slug\": \"leftover-chef\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1785959354091\n}\n\nFile v0.1.0:references/recipes.md\n\n# Recipe Notes\n\nDetailed cooking notes for featured recipes in the Leftover Chef database.\n\n## Quick Reference by Cuisine\n\n### Italian\n- **Pasta Aglio e Olio** — The classic 5-ingredient pasta. Use plenty of garlic and good olive oil. Reserve pasta water to emulsify.\n- **Margherita Pizza** — Use \"00\" flour if available. Get your oven as hot as possible. Fresh mozzarella makes a huge difference.\n- **Risotto** — Use Arborio or Carnaroli rice. Stir constantly and add stock gradually. The rice is done when creamy but still has a slight bite (al dente).\n- **Caprese Salad** — Use the ripest tomatoes you can find. Salt the tomatoes 10 minutes before assembling.\n\n### Asian\n- **Fried Rice** — Day-old cold rice is essential. Break up clumps before frying. High heat, fast cooking.\n- **Chicken Stir-Fry** — Prep all ingredients first (mise en place). Cook in batches to avoid steaming. Sear the chicken before adding vegetables.\n- **Pad Thai** — Soak rice noodles in warm (not hot) water until pliable. Don't over-soak or they'll turn mushy.\n\n### Mexican\n- **Guacamole** — Use Haas avocados. Keep the pit in the bowl to slow browning. Add lime juice immediately.\n- **Beef Tacos** — Warm tortillas on a dry comal or pan. Don't overfill.\n- **Chili Con Carne** — Better the next day. A square of dark chocolate adds depth.\n\n### Middle Eastern\n- **Shakshuka** — Don't overcook the eggs. The yolks should still be runny. Serve with crusty bread.\n- **Hummus** — Peel the chickpeas for the smoothest texture. Ice water while blending makes it fluffier.\n\n### Indian\n- **Chicken Curry** — Toast the curry powder briefly in oil to bloom the spices. Don't rush the onion base.\n\n### American\n- **Pancakes** — Don't overmix; lumps are fine. Let the batter rest 5 minutes. Flip only once when bubbles pop.\n- **Mac and Cheese** — Make a proper roux (butter + flour) before adding milk. Gruyère mixed with cheddar is excellent.\n- **Banana Bread** — The riper the bananas, the better. Dark, spotty skins are ideal.\n\n### French\n- **Crepes** — Let the batter rest 30 minutes. Use a non-stick pan. The first crepe is always a test.\n\n## Cooking Techniques\n\n### Sautéing vs. Frying\n- **Sauté**: medium-high heat, small amount of fat, food moved constantly.\n- **Pan-fry**: medium heat, more fat (¼ inch), food turned once or twice.\n- **Deep-fry**: 175-190°C, food fully submerged.\n\n### Knife Cuts Quick Reference\n| Cut | Size |\n|-----|------|\n| Brunoise | 3mm dice |\n| Small dice | 6mm |\n| Medium dice | 12mm |\n| Julienne | 3mm × 3mm × 5cm |\n| Chiffonade | thin ribbons (basil, etc.) |\n\n## Seasoning Tips\n- Salt pasta water \"like the sea\" — it's the only chance to season the pasta itself.\n- Acid (lemon, lime, vinegar) brightens dishes the way salt deepens them.\n- Toast whole spices in a dry pan for 30-60 seconds before grinding or using.\n\n## Storage Quick Guide\n- Cooked rice: refrigerate within 1 hour, use within 3 days.\n- Cooked chicken: 3-4 days refrigerated.\n- Tomatoes: keep at room temperature; refrigerating kills flavour.\n- Avocados: ripen on counter, then refrigerate up to 3 days.\n\nFile v0.1.0:references/substitutions.md\n\n# Ingredient Substitutions\n\nCommon substitutions the agent can suggest when ingredients are missing.\n\n## Dairy\n| Missing | Substitute |\n|---------|-----------|\n| Butter | Margarine, ghee, olive oil (for cooking), coconut oil |\n| Milk | Oat milk, soy milk, almond milk, water + extra butter |\n| Heavy cream | ¾ cup milk + ¼ cup melted butter |\n| Buttermilk | 1 cup milk + 1 tbsp lemon juice or vinegar (let sit 5 min) |\n| Sour cream | Plain yogurt, crème fraîche |\n| Cream cheese | Blended cottage cheese, mascarpone |\n| Parmesan | Pecorino Romano, Grana Padano, nutritional yeast (vegan) |\n\n## Eggs\n| Missing | Substitute (per egg) |\n|---------|----------------------|\n| Egg (baking) | 1 tbsp ground flax + 3 tbsp water; ½ mashed banana; ¼ cup applesauce |\n| Egg (binding) | 2 tbsp cornstarch + 2 tbsp water |\n| Egg (coating) | Milk or water dip before breading |\n\n## Flours & Starches\n| Missing | Substitute |\n|---------|-----------|\n| All-purpose flour | 1:1 gluten-free blend, spelt flour |\n| Breadcrumbs | Crushed crackers, oats, panko |\n| Cornstarch | Arrowroot powder, potato starch (2 tsp per 1 tbsp cornstarch) |\n| Baking powder | ¼ tsp baking soda + ½ tsp cream of tartar |\n\n## Oils & Fats\n| Missing | Substitute |\n|---------|-----------|\n| Olive oil | Canola oil, vegetable oil, grapeseed oil |\n| Sesame oil | Peanut oil + a dash of soy sauce |\n| Vegetable oil | Any neutral oil (canola, sunflower) |\n\n## Sugars\n| Missing | Substitute |\n|---------|-----------|\n| White sugar | Brown sugar, honey (use ¾ amount), maple syrup |\n| Brown sugar | 1 cup white sugar + 1 tbsp molasses |\n| Powdered sugar | Blend 1 cup white sugar + 1 tbsp cornstarch |\n\n## Herbs & Spices\n| Missing | Substitute |\n|---------|-----------|\n| Fresh basil | Dried basil (use ⅓ amount), fresh spinach + oregano |\n| Fresh parsley | Dried parsley (⅓), fresh cilantro |\n| Fresh ginger | ¼ tsp ground ginger per tbsp fresh; ginger paste |\n| Fresh garlic | ¼ tsp garlic powder per clove; 1 tsp pre-minced jar garlic |\n| Curry powder | Garam masala + turmeric |\n| Chili powder | Cayenne (use less!), paprika + cumin |\n\n## Proteins\n| Missing | Substitute |\n|---------|-----------|\n| Ground beef | Ground turkey, lentils, mushrooms + beans (vegetarian) |\n| Chicken | Turkey, firm tofu, chickpeas |\n| Fish | Another firm white fish; chicken breast |\n| Bacon | Smoked paprika + oil, turkey bacon, pancetta |\n\n## Vegetables\n| Missing | Substitute |\n|---------|-----------|\n| Bell pepper | Any colour pepper, celery + carrot |\n| Onion | Shallot, leek, scallion whites |\n| Tomato (fresh) | Canned diced tomato (drained), tomato puree |\n| Potato | Sweet potato, cauliflower (low-carb) |\n| Broccoli | Cauliflower, broccolini |\n\n## Pantry\n| Missing | Substitute |\n|---------|-----------|\n| White wine | Chicken/veg broth + 1 tsp lemon juice or vinegar |\n| Soy sauce | Tamari, coconut aminos, Worcestershire + salt |\n| Rice wine vinegar | Apple cider vinegar + pinch of sugar |\n| Chicken broth | Vegetable broth, water + bouillon cube |\n| Coconut milk | Heavy cream, yogurt thinned with milk |\n| Tahini | Peanut butter (smooth), sunflower seed butter |\n\nFile v0.1.0:scripts/recipes_db.json\n\n{\n  \"recipes\": [\n    {\"name\": \"Scrambled Eggs\", \"ingredients\": [\"egg\", \"butter\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Whisk eggs with salt and pepper. Melt butter in a pan over medium-low heat. Pour in eggs, stir gently until set.\"},\n    {\"name\": \"Fried Rice\", \"ingredients\": [\"rice\", \"egg\", \"soy sauce\", \"garlic\", \"onion\", \"oil\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Heat oil, fry garlic and onion. Add cold rice, stir-fry. Push rice aside, scramble egg. Mix, add soy sauce.\"},\n    {\"name\": \"Omelette\", \"ingredients\": [\"egg\", \"cheese\", \"butter\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"french\", \"servings\": 1, \"instructions\": \"Beat eggs with salt and pepper. Melt butter, pour eggs. When set, add cheese, fold.\"},\n    {\"name\": \"Pasta Aglio e Olio\", \"ingredients\": [\"pasta\", \"garlic\", \"olive oil\", \"chili flakes\", \"salt\", \"parsley\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 2, \"instructions\": \"Cook pasta. Sauté sliced garlic in olive oil with chili flakes. Toss pasta in oil, garnish with parsley.\"},\n    {\"name\": \"Tomato Soup\", \"ingredients\": [\"tomato\", \"onion\", \"garlic\", \"basil\", \"olive oil\", \"salt\", \"pepper\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Sauté onion and garlic in olive oil. Add chopped tomatoes, simmer 20 min. Blend, add basil, season.\"},\n    {\"name\": \"Grilled Cheese Sandwich\", \"ingredients\": [\"bread\", \"cheese\", \"butter\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 1, \"instructions\": \"Butter bread outsides. Place cheese between slices. Grill in a pan until golden on both sides.\"},\n    {\"name\": \"French Toast\", \"ingredients\": [\"bread\", \"egg\", \"milk\", \"sugar\", \"cinnamon\", \"butter\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"french\", \"servings\": 2, \"instructions\": \"Whisk eggs, milk, sugar, cinnamon. Dip bread, fry in butter until golden on both sides.\"},\n    {\"name\": \"Pancakes\", \"ingredients\": [\"flour\", \"egg\", \"milk\", \"sugar\", \"baking powder\", \"salt\", \"butter\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Mix dry and wet ingredients. Cook on a greased griddle until bubbles form, flip.\"},\n    {\"name\": \"Garlic Bread\", \"ingredients\": [\"bread\", \"garlic\", \"butter\", \"parsley\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Mix minced garlic, butter, and parsley. Spread on bread. Bake at 180C until golden.\"},\n    {\"name\": \"Caesar Salad\", \"ingredients\": [\"lettuce\", \"parmesan\", \"bread\", \"garlic\", \"lemon\", \"olive oil\", \"egg\"], \"time_min\": 20, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Make croutons from bread. Whisk egg yolk, lemon, garlic, olive oil for dressing. Toss with lettuce and parmesan.\"},\n    {\"name\": \"Mashed Potatoes\", \"ingredients\": [\"potato\", \"butter\", \"milk\", \"salt\", \"pepper\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Boil potatoes until tender. Mash with butter and milk. Season.\"},\n    {\"name\": \"Potato Soup\", \"ingredients\": [\"potato\", \"onion\", \"garlic\", \"milk\", \"butter\", \"salt\", \"pepper\"], \"time_min\": 40, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Sauté onion and garlic in butter. Add diced potatoes and water. Simmer until soft. Add milk, blend partially, season.\"},\n    {\"name\": \"Roasted Potatoes\", \"ingredients\": [\"potato\", \"olive oil\", \"salt\", \"pepper\", \"garlic\", \"rosemary\"], \"time_min\": 45, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 4, \"instructions\": \"Toss potato chunks with olive oil, garlic, rosemary, salt, pepper. Roast at 200C for 35 min.\"},\n    {\"name\": \"Chicken Stir-Fry\", \"ingredients\": [\"chicken\", \"soy sauce\", \"garlic\", \"ginger\", \"onion\", \"oil\", \"bell pepper\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Slice chicken, stir-fry in oil. Add garlic, ginger, onion, bell pepper. Season with soy sauce.\"},\n    {\"name\": \"Chicken Soup\", \"ingredients\": [\"chicken\", \"carrot\", \"onion\", \"garlic\", \"salt\", \"pepper\", \"water\"], \"time_min\": 60, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 6, \"instructions\": \"Simmer chicken with vegetables for 45 min. Shred chicken, return to pot, season.\"},\n    {\"name\": \"Chicken Curry\", \"ingredients\": [\"chicken\", \"onion\", \"garlic\", \"ginger\", \"curry powder\", \"tomato\", \"coconut milk\", \"oil\"], \"time_min\": 40, \"difficulty\": \"medium\", \"cuisine\": \"indian\", \"servings\": 4, \"instructions\": \"Sauté onion, garlic, ginger. Add curry powder, chicken, tomato. Simmer in coconut milk 20 min.\"},\n    {\"name\": \"Beef Tacos\", \"ingredients\": [\"ground beef\", \"onion\", \"garlic\", \"cumin\", \"tortilla\", \"cheese\", \"lettuce\", \"tomato\"], \"time_min\": 25, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Brown beef with onion, garlic, cumin. Serve in tortillas with cheese, lettuce, tomato.\"},\n    {\"name\": \"Spaghetti Bolognese\", \"ingredients\": [\"pasta\", \"ground beef\", \"tomato\", \"onion\", \"garlic\", \"olive oil\", \"oregano\", \"salt\"], \"time_min\": 45, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Sauté onion and garlic. Brown beef, add tomatoes and oregano. Simmer 30 min. Serve over pasta.\"},\n    {\"name\": \"Chili Con Carne\", \"ingredients\": [\"ground beef\", \"bean\", \"onion\", \"garlic\", \"tomato\", \"cumin\", \"chili powder\"], \"time_min\": 45, \"difficulty\": \"medium\", \"cuisine\": \"mexican\", \"servings\": 6, \"instructions\": \"Brown beef with onion and garlic. Add beans, tomatoes, cumin, chili powder. Simmer 30 min.\"},\n    {\"name\": \"Burrito Bowl\", \"ingredients\": [\"rice\", \"bean\", \"chicken\", \"tomato\", \"cheese\", \"lettuce\", \"avocado\", \"lime\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Cook rice. Assemble bowls with beans, chicken, tomato, cheese, lettuce, avocado. Squeeze lime.\"},\n    {\"name\": \"Quesadilla\", \"ingredients\": [\"tortilla\", \"cheese\", \"chicken\", \"onion\", \"bell pepper\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 2, \"instructions\": \"Place cheese, chicken, onion, pepper on tortilla. Fold, grill until cheese melts.\"},\n    {\"name\": \"Fajitas\", \"ingredients\": [\"chicken\", \"bell pepper\", \"onion\", \"tortilla\", \"lime\", \"garlic\", \"cumin\", \"oil\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Slice and stir-fry chicken, peppers, onion with garlic and cumin. Serve with tortillas and lime.\"},\n    {\"name\": \"Vegetable Stir-Fry\", \"ingredients\": [\"broccoli\", \"carrot\", \"bell pepper\", \"onion\", \"garlic\", \"soy sauce\", \"oil\", \"ginger\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Stir-fry vegetables in oil with garlic and ginger. Add soy sauce, toss.\"},\n    {\"name\": \"Vegetable Soup\", \"ingredients\": [\"carrot\", \"potato\", \"onion\", \"garlic\", \"tomato\", \"salt\", \"pepper\", \"water\"], \"time_min\": 40, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 6, \"instructions\": \"Sauté onion, garlic. Add chopped vegetables and water. Simmer 30 min, season.\"},\n    {\"name\": \"Caprese Salad\", \"ingredients\": [\"tomato\", \"mozzarella\", \"basil\", \"olive oil\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 2, \"instructions\": \"Slice tomato and mozzarella. Arrange with basil. Drizzle olive oil, season.\"},\n    {\"name\": \"Bruschetta\", \"ingredients\": [\"bread\", \"tomato\", \"garlic\", \"basil\", \"olive oil\", \"salt\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Toast bread. Top with diced tomato, garlic, basil, olive oil, salt.\"},\n    {\"name\": \"Guacamole\", \"ingredients\": [\"avocado\", \"lime\", \"onion\", \"tomato\", \"salt\", \"garlic\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"ingredients_detail\": \"2 ripe avocados\", \"instructions\": \"Mash avocado. Mix with diced onion, tomato, garlic, lime juice, salt.\"},\n    {\"name\": \"Salsa\", \"ingredients\": [\"tomato\", \"onion\", \"garlic\", \"lime\", \"cilantro\", \"salt\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"mexican\", \"servings\": 4, \"instructions\": \"Dice tomato, onion, garlic. Mix with lime juice, cilantro, salt.\"},\n    {\"name\": \"Hummus\", \"ingredients\": [\"chickpea\", \"tahini\", \"lemon\", \"garlic\", \"olive oil\", \"salt\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"middle eastern\", \"servings\": 4, \"instructions\": \"Blend chickpeas, tahini, lemon, garlic, olive oil, salt until smooth.\"},\n    {\"name\": \"Falafel\", \"ingredients\": [\"chickpea\", \"onion\", \"garlic\", \"cumin\", \"coriander\", \"flour\", \"oil\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"middle eastern\", \"servings\": 4, \"instructions\": \"Blend chickpeas with onion, garlic, spices. Form patties, deep-fry.\"},\n    {\"name\": \"Shakshuka\", \"ingredients\": [\"egg\", \"tomato\", \"onion\", \"garlic\", \"bell pepper\", \"cumin\", \"paprika\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"middle eastern\", \"servings\": 4, \"instructions\": \"Sauté onion, garlic, pepper. Add tomatoes, spices, simmer. Crack eggs on top, cover until set.\"},\n    {\"name\": \"Banana Bread\", \"ingredients\": [\"banana\", \"flour\", \"sugar\", \"egg\", \"butter\", \"baking soda\", \"salt\"], \"time_min\": 60, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 8, \"instructions\": \"Mash bananas. Mix with melted butter, sugar, egg. Fold in dry ingredients. Bake at 175C for 50 min.\"},\n    {\"name\": \"Apple Crumble\", \"ingredients\": [\"apple\", \"flour\", \"butter\", \"sugar\", \"cinnamon\", \"salt\"], \"time_min\": 45, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 6, \"instructions\": \"Slice apples into dish. Mix flour, butter, sugar, cinnamon for topping. Sprinkle, bake at 180C 30 min.\"},\n    {\"name\": \"Smoothie\", \"ingredients\": [\"banana\", \"milk\", \"yogurt\", \"honey\"], \"time_min\": 5, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Blend banana, milk, yogurt, honey until smooth.\"},\n    {\"name\": \"Yogurt Parfait\", \"ingredients\": [\"yogurt\", \"honey\", \"oats\", \"berry\"], \"time_min\": 5, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 1, \"instructions\": \"Layer yogurt, oats, berries, drizzle honey.\"},\n    {\"name\": \"Overnight Oats\", \"ingredients\": [\"oats\", \"milk\", \"honey\", \"banana\"], \"time_min\": 5, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 1, \"instructions\": \"Mix oats, milk, honey. Refrigerate overnight. Top with banana.\"},\n    {\"name\": \"Porridge\", \"ingredients\": [\"oats\", \"milk\", \"honey\", \"salt\", \"cinnamon\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 1, \"instructions\": \"Simmer oats in milk. Sweeten with honey, add cinnamon and salt.\"},\n    {\"name\": \"Egg Fried Rice\", \"ingredients\": [\"rice\", \"egg\", \"soy sauce\", \"onion\", \"oil\", \"pea\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 2, \"instructions\": \"Stir-fry onion, add rice, make well and scramble egg, add peas, season with soy sauce.\"},\n    {\"name\": \"Tuna Salad\", \"ingredients\": [\"tuna\", \"mayonnaise\", \"celery\", \"onion\", \"lemon\", \"salt\", \"pepper\"], \"time_min\": 10, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 2, \"ingredients_detail\": \"1 can tuna\", \"instructions\": \"Mix tuna with mayo, diced celery, onion, lemon juice. Season.\"},\n    {\"name\": \"BLT Sandwich\", \"ingredients\": [\"bread\", \"bacon\", \"lettuce\", \"tomato\", \"mayonnaise\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 1, \"instructions\": \"Cook bacon. Toast bread, spread mayo. Layer bacon, lettuce, tomato.\"},\n    {\"name\": \"Bacon and Eggs\", \"ingredients\": [\"bacon\", \"egg\", \"salt\", \"pepper\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 1, \"instructions\": \"Fry bacon until crisp. Fry eggs in bacon fat. Season.\"},\n    {\"name\": \"Mac and Cheese\", \"ingredients\": [\"pasta\", \"cheese\", \"milk\", \"butter\", \"flour\", \"salt\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Cook pasta. Make roux with butter and flour, add milk, then cheese. Toss with pasta.\"},\n    {\"name\": \"Pizza Dough\", \"ingredients\": [\"flour\", \"yeast\", \"olive oil\", \"salt\", \"sugar\", \"water\"], \"time_min\": 90, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Mix flour, yeast, salt, sugar, oil, water. Knead, rise 1 hr, shape.\"},\n    {\"name\": \"Margherita Pizza\", \"ingredients\": [\"flour\", \"yeast\", \"tomato\", \"mozzarella\", \"basil\", \"olive oil\", \"salt\", \"water\"], \"time_min\": 90, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Make dough, top with tomato, mozzarella, basil, olive oil. Bake at maximum heat 10 min.\"},\n    {\"name\": \"Risotto\", \"ingredients\": [\"rice\", \"onion\", \"garlic\", \"butter\", \"parmesan\", \"white wine\", \"salt\"], \"time_min\": 35, \"difficulty\": \"hard\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Sauté onion, garlic. Toast rice, add wine. Gradually add stock. Finish with butter and parmesan.\"},\n    {\"name\": \"Gazpacho\", \"ingredients\": [\"tomato\", \"cucumber\", \"bell pepper\", \"onion\", \"garlic\", \"olive oil\", \"vinegar\", \"salt\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"spanish\", \"servings\": 4, \"instructions\": \"Blend tomato, cucumber, pepper, onion, garlic with olive oil and vinegar. Chill, serve cold.\"},\n    {\"name\": \"Greek Salad\", \"ingredients\": [\"tomato\", \"cucumber\", \"onion\", \"olive\", \"feta\", \"olive oil\", \"oregano\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"greek\", \"servings\": 4, \"instructions\": \"Chop vegetables, toss with olives and feta. Drizzle olive oil, sprinkle oregano.\"},\n    {\"name\": \"Coleslaw\", \"ingredients\": [\"cabbage\", \"carrot\", \"mayonnaise\", \"vinegar\", \"sugar\", \"salt\", \"pepper\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 6, \"instructions\": \"Shred cabbage and carrot. Mix with mayo, vinegar, sugar, seasonings.\"},\n    {\"name\": \"Pasta Pesto\", \"ingredients\": [\"pasta\", \"basil\", \"garlic\", \"pine nut\", \"parmesan\", \"olive oil\", \"salt\"], \"time_min\": 20, \"difficulty\": \"easy\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Blend basil, garlic, pine nuts, parmesan, olive oil. Toss with cooked pasta.\"},\n    {\"name\": \"Meatballs\", \"ingredients\": [\"ground beef\", \"egg\", \"bread\", \"onion\", \"garlic\", \"salt\", \"pepper\", \"oil\"], \"time_min\": 45, \"difficulty\": \"medium\", \"cuisine\": \"italian\", \"servings\": 4, \"instructions\": \"Mix beef, egg, soaked bread, onion, garlic. Form balls, bake or fry.\"},\n    {\"name\": \"Shepherd's Pie\", \"ingredients\": [\"ground beef\", \"onion\", \"carrot\", \"pea\", \"potato\", \"butter\", \"flour\", \"salt\"], \"time_min\": 60, \"difficulty\": \"hard\", \"cuisine\": \"british\", \"servings\": 6, \"instructions\": \"Cook beef with vegetables, thicken with flour. Top with mashed potatoes, bake 30 min.\"},\n    {\"name\": \"Fish Tacos\", \"ingredients\": [\"fish\", \"tortilla\", \"cabbage\", \"lime\", \"mayonnaise\", \"garlic\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"mexican\", \"servives\": 4, \"instructions\": \"Season and grill fish. Serve in tortillas with cabbage slaw, lime, garlic mayo.\"},\n    {\"name\": \"Salmon with Rice\", \"ingredients\": [\"salmon\", \"rice\", \"lemon\", \"butter\", \"salt\", \"pepper\", \"dill\"], \"time_min\": 30, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Cook rice. Pan-sear salmon in butter, squeeze lemon, season with dill.\"},\n    {\"name\": \"Beef Stew\", \"ingredients\": [\"beef\", \"potato\", \"carrot\", \"onion\", \"garlic\", \"flour\", \"tomato\", \"salt\", \"pepper\"], \"time_min\": 120, \"difficulty\": \"medium\", \"cuisine\": \"any\", \"servings\": 6, \"instructions\": \"Brown beef, dredged in flour. Add vegetables, tomatoes, water. Simmer 90 min.\"},\n    {\"name\": \"Crepes\", \"ingredients\": [\"flour\", \"egg\", \"milk\", \"butter\", \"sugar\", \"salt\"], \"time_min\": 25, \"difficulty\": \"medium\", \"cuisine\": \"french\", \"servings\": 4, \"instructions\": \"Whisk batter thin. Pour into hot buttered pan, swirl, flip after 1 min.\"},\n    {\"name\": \"Chicken Salad\", \"ingredients\": [\"chicken\", \"mayonnaise\", \"celery\", \"grape\", \"lettuce\", \"salt\", \"pepper\"], \"time_min\": 25, \"difficulty\": \"easy\", \"cuisine\": \"american\", \"servings\": 4, \"instructions\": \"Mix cooked shredded chicken with mayo, celery, grapes. Serve on lettuce.\"},\n    {\"name\": \"Egg Drop Soup\", \"ingredients\": [\"egg\", \"chicken broth\", \"ginger\", \"soy sauce\", \"cornstarch\", \"scallion\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Bring broth with ginger to boil. Thicken with cornstarch. Swirl in beaten egg, add soy sauce, top with scallion.\"},\n    {\"name\": \"Pad Thai\", \"ingredients\": [\"rice noodle\", \"egg\", \"shrimp\", \"bean sprout\", \"peanut\", \"lime\", \"soy sauce\", \"garlic\"], \"time_min\": 30, \"difficulty\": \"medium\", \"cuisine\": \"asian\", \"servings\": 4, \"instructions\": \"Soak noodles. Stir-fry shrimp, garlic, push aside scramble egg. Add noodles, sprouts, sauce. Top with peanuts, lime.\"},\n    {\"name\": \"Stuffed Bell Peppers\", \"ingredients\": [\"bell pepper\", \"ground beef\", \"rice\", \"onion\", \"tomato\", \"cheese\", \"salt\"], \"time_min\": 60, \"difficulty\": \"medium\", \"cuisine\": \"any\", \"servings\": 4, \"instructions\": \"Mix cooked rice, beef, onion, tomato. Stuff peppers, top with cheese, bake 40 min.\"},\n    {\"name\": \"Banana Pancakes\", \"ingredients\": [\"banana\", \"egg\", \"oats\", \"honey\"], \"time_min\": 15, \"difficulty\": \"easy\", \"cuisine\": \"any\", \"servings\": 2, \"instructions\": \"Blend banana, eggs, oats. Cook on greased pan. Drizzle with honey.\"}\n  ]\n}\n\nFile v0.1.0:skill-card.md\n\n## Description:\n\nSuggests recipes based on leftover ingredients the user already has, ranking matches by how completely the available ingredients satisfy each recipe and flagging missing ingredients.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[voronindenis5](https://clawhub.ai/user/voronindenis5)\n\n### License/Terms of Use:\n\nMIT\n\n## Use Case:\n\nExternal users and agent developers use this skill to turn text, photo-description, or voice-derived ingredient lists into practical recipe suggestions, including missing ingredient notes and substitution ideas.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Substitution suggestions may be unsafe for people with allergies, intolerances, religious or dietary restrictions, or food-safety constraints.\n\nMitigation: Treat substitutions as suggestions only and ask the user to verify dietary restrictions, allergen exposure, and food safety before cooking.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/voronindenis5/skills/leftover-chef)\n- [Source repository](https://github.com/voronindenis5/leftover-chef)\n- [Recipe Notes](references/recipes.md)\n- [Ingredient Substitutions](references/substitutions.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, JSON, guidance]\n\n**Output Format:** [Markdown guidance with optional command-line output or JSON recipe matches]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Ranks recipe matches by usage percentage and includes available ingredients, missing ingredients, preparation metadata, and substitution guidance.]\n\n## Skill Version(s):\n\n0.1.0 (source: ClawHub release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v0.1.0:LICENSE\n\nMIT License\n\nCopyright (c) 2026 Denis Voronin\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","readmeExcerpt":"Skill: leftover-chef Owner: voronindenis5 Summary: Suggests recipes based on leftover ingredients you already have. Takes a list of ingredients (from photo description, text, or voice) and generates recipes ranked by how completely they use what's available. Includes a 50+ recipe database and a Python matcher that flags missing ingredients. Tags: latest:0.1.1 Version history: v0.1.1 | 2026-08-11T11:58:26.616Z | auto ","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/leftover_chef.py eggs rice soy sauce\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py chicken potato --json\npython3 scripts/leftover_chef.py tomato onion garlic --limit 3"},{"language":"bash","snippet":"# What can I cook with these?\npython3 scripts/leftover_chef.py egg rice soy sauce garlic onion\n\n# Get JSON output for programmatic use\npython3 scripts/leftover_chef.py chicken potato carrot --json\n\n# Show only recipes I can make 80%+ of\npython3 scripts/leftover_chef.py tomato onion garlic basil --threshold 80\n\n# Browse the database\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py --list-recipes"},{"language":"text","snippet":"============================================================\n  🍳 LEFTOVER CHEF\n  Ingredients: egg, rice, soy sauce, garlic, onion\n  Matches found: 57\n============================================================\n\n  ★ You have everything for these — cook now!\n  1. Fried Rice  —  100% ingredients (5/5)\n     ████████████████████\n     Time: 20 min  Difficulty: easy  Cuisine: asian\n     ✓ Have: rice, egg, soy sauce, garlic, onion"},{"language":"bash","snippet":"python3 scripts/leftover_chef.py eggs rice soy sauce\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py chicken potato --json\npython3 scripts/leftover_chef.py tomato onion garlic --limit 3"},{"language":"bash","snippet":"# What can I cook with these?\npython3 scripts/leftover_chef.py egg rice soy sauce garlic onion\n\n# Get JSON output for programmatic use\npython3 scripts/leftover_chef.py chicken potato carrot --json\n\n# Show only recipes I can make 80%+ of\npython3 scripts/leftover_chef.py tomato onion garlic basil --threshold 80\n\n# Browse the database\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py --list-recipes"},{"language":"text","snippet":"============================================================\n  🍳 LEFTOVER CHEF\n  Ingredients: egg, rice, soy sauce, garlic, onion\n  Matches found: 57\n============================================================\n\n  ★ You have everything for these — cook now!\n  1. Fried Rice  —  100% ingredients (5/5)\n     ████████████████████\n     Time: 20 min  Difficulty: easy  Cuisine: asian\n     ✓ Have: rice, egg, soy sauce, garlic, onion"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: leftover-chef\ndescription: >\n  Suggests recipes based on leftover ingredients you already have. Takes a list of\n  ingredients (from photo description, text, or voice) and generates recipes ranked\n  by how completely they use what's available. Includes a 50+ recipe database and a\n  Python matcher that flags missing ingredients.\nversion: 1.0.0\nauthor: Denis Voronin\nlicense: MIT\ntags:\n  - cooking\n  - recipes\n  - food-waste\n  - sustainability\n  - meal-planning\n---\n\n# Leftover Chef\n\nTurn random leftover ingredients into meals you can actually cook tonight.\n\n## When to use\n\n- The user lists ingredients they have (e.g. \"I have eggs, rice, and soy sauce\").\n- The user describes a fridge photo or voice inventory.\n- The user wants to reduce food waste by cooking with what's on hand.\n\n## How it works\n\n1. Collect the user's available ingredients as a simple list (comma or space separated).\n2. Run `scripts/leftover_chef.py` with the ingredients as arguments.\n3. The script matches against a built-in database of 50+ recipes (JSON, stdlib only).\n4. Recipes are ranked by **usage ratio**: how many of your ingredients the recipe uses\n   vs. how many the recipe needs that you don't have.\n5. Each result shows the recipe, which ingredients you have, which are missing, and a\n   usage percentage.\n\n## Usage\n\n### From the command line\n\n```bash\npython3 scripts/leftover_chef.py eggs rice soy sauce\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py chicken potato --json\npython3 scripts/leftover_chef.py tomato onion garlic --limit 3\n```\n\n### Options\n\n| Flag | Description |\n|------|-------------|\n| `--json` | Output results as JSON |\n| `--limit N` | Show top N matches (default 10) |\n| `--threshold P` | Minimum usage percent to show (default 0) |\n| `--list-ingredients` | Print all known ingredients |\n| `--list-recipes` | Print all recipe names |\n\n### Interpreting results\n\n- **Usage 100%**: you have every ingredient. Cook it now.\n- **Usage 70–99%**: you're missing 1–2 items — easy substitution or quick store run.\n- **Usage 40–69%**: partial match, listed for inspiration.\n- **Missing** items are printed with a warning so the agent can suggest substitutions.\n\n## Agent workflow\n\n1. Ask for or receive the ingredient list.\n2. Run the script and read the ranked output.\n3. Present the top 3–5 matches to the user with a short pitch for each.\n4. Offer substitution suggestions for any missing ingredients.\n5. Optionally read a full recipe from `references/recipes.md` for details.\n\n## Files\n\n- `scripts/leftover_chef.py` — main matcher script (Python 3, stdlib only)\n- `scripts/recipes_db.json` — embedded recipe database (50+ recipes)\n- `references/recipes.md` — detailed cooking notes for featured recipes\n- `references/substitutions.md` — common ingredient substitutions"},{"path":"README.md","content":"# Leftover Chef 🍳\n\nTurn random leftover ingredients into meals you can actually cook tonight.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n## The Problem\n\nPeople throw away food because they don't know what to cook with random leftover ingredients. A fridge with eggs, rice, and half an onion becomes food waste instead of fried rice.\n\n## The Solution\n\n**Leftover Chef** is an agent skill that takes a list of ingredients you already have and matches them against a database of **57 recipes**, ranking each by **how completely it uses what you've got**. Recipes you can make right now bubble to the top. Recipes that are one or two items short come next, with clear missing-ingredient warnings.\n\n## Quick Start\n\n```bash\n# What can I cook with these?\npython3 scripts/leftover_chef.py egg rice soy sauce garlic onion\n\n# Get JSON output for programmatic use\npython3 scripts/leftover_chef.py chicken potato carrot --json\n\n# Show only recipes I can make 80%+ of\npython3 scripts/leftover_chef.py tomato onion garlic basil --threshold 80\n\n# Browse the database\npython3 scripts/leftover_chef.py --list-ingredients\npython3 scripts/leftover_chef.py --list-recipes\n```\n\n## Example Output\n\n```\n============================================================\n  🍳 LEFTOVER CHEF\n  Ingredients: egg, rice, soy sauce, garlic, onion\n  Matches found: 57\n============================================================\n\n  ★ You have everything for these — cook now!\n  1. Fried Rice  —  100% ingredients (5/5)\n     ████████████████████\n     Time: 20 min  Difficulty: easy  Cuisine: asian\n     ✓ Have: rice, egg, soy sauce, garlic, onion\n```\n\n## Features\n\n- **57 built-in recipes** across 10+ cuisines (Italian, Asian, Mexican, Indian, Middle Eastern, American, French, Greek, Spanish, British)\n- **Fuzzy ingredient matching** — \"eggs\" matches \"egg\", \"tomatoes\" matches \"tomato\", synonyms understood\n- **Usage ranking** — recipes sorted by what percentage of ingredients you have\n- **Missing-ingredient warnings** — always see what you'd need to grab from the store\n- **JSON mode** for integration with other tools\n- **Threshold filtering** — only show recipes above a certain match quality\n- **Stdlib only** — no pip installs, runs on any Python 3.6+\n\n## How Matching Works\n\n1. Your ingredients are **normalised** (lowercase, synonym resolution, singular/plural)\n2. Each recipe ingredient is checked against your available set with **fuzzy string matching**\n3. Recipes are scored: `usage_pct = (ingredients_you_have / total_ingredients) × 100`\n4. Results sorted by usage percentage (descending), then by fewer missing items\n\n## Recipe Database\n\nThe database (`scripts/recipes_db.json`) includes for each recipe:\n\n- Name, ingredient list, time, difficulty, cuisine, servings\n- Step-by-step cooking instructions\n\nRecipes span from 5-minute smoothies to 2-hour beef stew, and from easy scrambled eggs to hard risotto and shepherd's pie.\n\n## Files\n\n| File | Descri"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn75wwn4x6djaf28jbykeamazd81gtdp\",\n  \"slug\": \"leftover-chef\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1786449506616\n}"},{"path":"references/recipes.md","content":"# Recipe Notes\n\nDetailed cooking notes for featured recipes in the Leftover Chef database.\n\n## Quick Reference by Cuisine\n\n### Italian\n- **Pasta Aglio e Olio** — The classic 5-ingredient pasta. Use plenty of garlic and good olive oil. Reserve pasta water to emulsify.\n- **Margherita Pizza** — Use \"00\" flour if available. Get your oven as hot as possible. Fresh mozzarella makes a huge difference.\n- **Risotto** — Use Arborio or Carnaroli rice. Stir constantly and add stock gradually. The rice is done when creamy but still has a slight bite (al dente).\n- **Caprese Salad** — Use the ripest tomatoes you can find. Salt the tomatoes 10 minutes before assembling.\n\n### Asian\n- **Fried Rice** — Day-old cold rice is essential. Break up clumps before frying. High heat, fast cooking.\n- **Chicken Stir-Fry** — Prep all ingredients first (mise en place). Cook in batches to avoid steaming. Sear the chicken before adding vegetables.\n- **Pad Thai** — Soak rice noodles in warm (not hot) water until pliable. Don't over-soak or they'll turn mushy.\n\n### Mexican\n- **Guacamole** — Use Haas avocados. Keep the pit in the bowl to slow browning. Add lime juice immediately.\n- **Beef Tacos** — Warm tortillas on a dry comal or pan. Don't overfill.\n- **Chili Con Carne** — Better the next day. A square of dark chocolate adds depth.\n\n### Middle Eastern\n- **Shakshuka** — Don't overcook the eggs. The yolks should still be runny. Serve with crusty bread.\n- **Hummus** — Peel the chickpeas for the smoothest texture. Ice water while blending makes it fluffier.\n\n### Indian\n- **Chicken Curry** — Toast the curry powder briefly in oil to bloom the spices. Don't rush the onion base.\n\n### American\n- **Pancakes** — Don't overmix; lumps are fine. Let the batter rest 5 minutes. Flip only once when bubbles pop.\n- **Mac and Cheese** — Make a proper roux (butter + flour) before adding milk. Gruyère mixed with cheddar is excellent.\n- **Banana Bread** — The riper the bananas, the better. Dark, spotty skins are ideal.\n\n### French\n- **Crepes** — Let the batter rest 30 minutes. Use a non-stick pan. The first crepe is always a test.\n\n## Cooking Techniques\n\n### Sautéing vs. Frying\n- **Sauté**: medium-high heat, small amount of fat, food moved constantly.\n- **Pan-fry**: medium heat, more fat (¼ inch), food turned once or twice.\n- **Deep-fry**: 175-190°C, food fully submerged.\n\n### Knife Cuts Quick Reference\n| Cut | Size |\n|-----|------|\n| Brunoise | 3mm dice |\n| Small dice | 6mm |\n| Medium dice | 12mm |\n| Julienne | 3mm × 3mm × 5cm |\n| Chiffonade | thin ribbons (basil, etc.) |\n\n## Seasoning Tips\n- Salt pasta water \"like the sea\" — it's the only chance to season the pasta itself.\n- Acid (lemon, lime, vinegar) brightens dishes the way salt deepens them.\n- Toast whole spices in a dry pan for 30-60 seconds before grinding or using.\n\n## Storage Quick Guide\n- Cooked rice: refrigerate within 1 hour, use within 3 days.\n- Cooked chicken: 3-4 days refrigerated.\n- Tomatoes: keep at room temperature; refrigerating kill"},{"path":"references/substitutions.md","content":"# Ingredient Substitutions\n\nCommon substitutions the agent can suggest when ingredients are missing.\n\n## Dairy\n| Missing | Substitute |\n|---------|-----------|\n| Butter | Margarine, ghee, olive oil (for cooking), coconut oil |\n| Milk | Oat milk, soy milk, almond milk, water + extra butter |\n| Heavy cream | ¾ cup milk + ¼ cup melted butter |\n| Buttermilk | 1 cup milk + 1 tbsp lemon juice or vinegar (let sit 5 min) |\n| Sour cream | Plain yogurt, crème fraîche |\n| Cream cheese | Blended cottage cheese, mascarpone |\n| Parmesan | Pecorino Romano, Grana Padano, nutritional yeast (vegan) |\n\n## Eggs\n| Missing | Substitute (per egg) |\n|---------|----------------------|\n| Egg (baking) | 1 tbsp ground flax + 3 tbsp water; ½ mashed banana; ¼ cup applesauce |\n| Egg (binding) | 2 tbsp cornstarch + 2 tbsp water |\n| Egg (coating) | Milk or water dip before breading |\n\n## Flours & Starches\n| Missing | Substitute |\n|---------|-----------|\n| All-purpose flour | 1:1 gluten-free blend, spelt flour |\n| Breadcrumbs | Crushed crackers, oats, panko |\n| Cornstarch | Arrowroot powder, potato starch (2 tsp per 1 tbsp cornstarch) |\n| Baking powder | ¼ tsp baking soda + ½ tsp cream of tartar |\n\n## Oils & Fats\n| Missing | Substitute |\n|---------|-----------|\n| Olive oil | Canola oil, vegetable oil, grapeseed oil |\n| Sesame oil | Peanut oil + a dash of soy sauce |\n| Vegetable oil | Any neutral oil (canola, sunflower) |\n\n## Sugars\n| Missing | Substitute |\n|---------|-----------|\n| White sugar | Brown sugar, honey (use ¾ amount), maple syrup |\n| Brown sugar | 1 cup white sugar + 1 tbsp molasses |\n| Powdered sugar | Blend 1 cup white sugar + 1 tbsp cornstarch |\n\n## Herbs & Spices\n| Missing | Substitute |\n|---------|-----------|\n| Fresh basil | Dried basil (use ⅓ amount), fresh spinach + oregano |\n| Fresh parsley | Dried parsley (⅓), fresh cilantro |\n| Fresh ginger | ¼ tsp ground ginger per tbsp fresh; ginger paste |\n| Fresh garlic | ¼ tsp garlic powder per clove; 1 tsp pre-minced jar garlic |\n| Curry powder | Garam masala + turmeric |\n| Chili powder | Cayenne (use less!), paprika + cumin |\n\n## Proteins\n| Missing | Substitute |\n|---------|-----------|\n| Ground beef | Ground turkey, lentils, mushrooms + beans (vegetarian) |\n| Chicken | Turkey, firm tofu, chickpeas |\n| Fish | Another firm white fish; chicken breast |\n| Bacon | Smoked paprika + oil, turkey bacon, pancetta |\n\n## Vegetables\n| Missing | Substitute |\n|---------|-----------|\n| Bell pepper | Any colour pepper, celery + carrot |\n| Onion | Shallot, leek, scallion whites |\n| Tomato (fresh) | Canned diced tomato (drained), tomato puree |\n| Potato | Sweet potato, cauliflower (low-carb) |\n| Broccoli | Cauliflower, broccolini |\n\n## Pantry\n| Missing | Substitute |\n|---------|-----------|\n| White wine | Chicken/veg broth + 1 tsp lemon juice or vinegar |\n| Soy sauce | Tamari, coconut aminos, Worcestershire + salt |\n| Rice wine vinegar | Apple cider vinegar + pinch of sugar |\n| Chicken broth | Vegetable broth, water + bouillon cube |\n"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Suggests recipes based on leftover ingredients you already have. Takes a list of ingredients (from photo description, text, or voice) and generates recipes ranked by how completely they use what's available. Includes a 50+ recipe database and a Python matcher that flags missing ingredients. Skill: leftover-chef Owner: voronindenis5 Summary: Suggests recipes based on leftover ingredients you already have. Takes a list of ingredients (from photo description, text, or voice) and generates recipes ranked by how completely they use what's available. Includes a 50+ recipe database and a Python matcher that flags missing ingredients. Tags: latest:0.1.1 Version history: v0.1.1 | 2026-08-11T11:58:26.616Z | auto","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1920,"uniquenessScore":51,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:29:57.096Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:29:57.096Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T19:20:17.619Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}