---
name: homemade-recipes
description: Build homemade recipes from scratch — marinades, salsas, sauces, dressings, rubs, or any dish — especially when the user wants to work flexibly with whatever ingredients they have on hand rather than follow a rigid recipe. Use this whenever the user asks to make/create/whip up a marinade, salsa, sauce, dressing, glaze, rub, or dish from scratch, mentions ingredients they have available and wants suggestions, or asks how to balance/fix a flavor (too acidic, too bland, too spicy, needs more body). Trigger even if they don't say the word "recipe."
---

# Homemade Recipes

Cooking from scratch is a constraint-satisfaction problem: known ingredients (fixed), unknown quantities (free variables), flavor balance (objective function). The goal isn't to hand over a rigid recipe — it's to give a solid base ratio the user can adjust by feel, plus the substitution logic so a missing ingredient doesn't stall them out.

## Step 1: Get the essentials

Don't over-interview — one or two questions max, then start cooking (figuratively). Only ask what's not already implied by the request:

1. **What's the dish/category?** (marinade, salsa, sauce, dressing, rub, or a full dish)
2. **What's the protein/base it's going on, or what ingredients are already in hand?**

Skip questions if the user already answered them in the request ("chicken marinade with what's in my fridge: soy sauce, garlic, honey" — that's everything needed to start).

## Step 2: Start from a base ratio, not a fixed recipe

Every marinade, salsa, sauce, and dressing is built from a small number of functional roles. Give the user the *ratio*, not just a list — that's what makes it adaptable to whatever's on hand.

| Category | Roles | Starting ratio |
|---|---|---|
| Marinade | acid : fat : salt : aromatics/sweet | 1 : 3 : (to taste) : (to taste) |
| Vinaigrette/dressing | acid : fat | 1 : 3 |
| Salsa | base veg/fruit : acid : aromatics : salt/heat | bulk : 1 part acid : to taste |
| Pan/simmer sauce | liquid : thickener (if needed) : fat/finish | scale to volume, thickener ~1 tbsp starch per cup liquid |
| Dry rub | salt : sugar : spices | 1 : 1 : 2–3 (adjust to protein) |

Fill each role with whatever the user has — lime, vinegar, or citrus all satisfy "acid"; oil, yogurt, or coconut milk all satisfy "fat." This is the core move: map their pantry onto the roles, don't ask them to buy things.

For a full dish (not just a component), use the same roles/ratio thinking for whatever sauce or dressing anchors it, then build the dish around technique (sear, braise, roast) rather than a strict recipe.

## Step 3: Adjust for taste, not just theory

If the user describes a problem with an existing mix ("too acidic," "flat," "too spicy," "thin"), diagnose by role, don't just suggest more of one thing:

- **Flat/one-note** → usually missing salt or acid, not more of the main flavor
- **Too acidic/sharp** → add fat or a touch of sweet to round it out, don't just dilute
- **Too spicy** → fat or dairy (if applicable) or sugar/acid, dilution is a last resort
- **Thin/watery** → reduce, add thickener, or add a fat/emulsifier
- **Too salty** → acid or a bit of sweet can offset perception; more volume dilutes as a last resort

## Step 4: Output format

Use judgement based on the request:

- **Quick/casual ask, or the user is clearly improvising in the kitchen right now** → answer inline in chat: base ratio, quantities scaled to what they mentioned, 2–3 sentences of technique, done. Don't pad with headers or a wall of text.
- **A fuller recipe with multiple steps, or the user wants to save/reference it later** → use the recipe card tool (interactive, adjustable servings) so they can scale it later without re-asking.
- Default to inline chat when unsure — it's lower overhead and matches how people actually cook.

## Step 5: Substitution logic

When an ingredient is missing, substitute by **role**, not by name:
- Acid: lime ↔ lemon ↔ vinegar (adjust intensity — vinegar is usually sharper)
- Fat: olive oil ↔ neutral oil ↔ yogurt/mayo (changes richness/creaminess, not just fat content)
- Aromatics: garlic ↔ shallot ↔ onion ↔ ginger (changes flavor profile, flag this rather than pretending it's a 1:1 swap)
- Heat: fresh chili ↔ dried chili flake ↔ hot sauce (adjust quantity down for concentrated forms)

Always name what the substitution changes (sharper, milder, thinner) rather than presenting it as a silent swap.
