Thinking. Not yet a spec.
Linked spec: none yet — write when thinking is settled.
Melu's moat is user learning data. The Family Profile is the engine that makes every plan more accurate over time. But the profile has to be seeded at onboarding — which means the onboarding experience is the first personalization event, and it has to be good enough to generate a trustworthy first plan without feeling like a form.
The core tension: we need enough data to personalize well, but every question we ask adds friction and risks the user not completing onboarding.
The onboarding personalization agent is a structured chat that interviews the family and outputs a JSON Family Profile object. That object is the input to every subsequent plan generation call.
It is not a form. It does not ask one question per screen. It converses, infers where it can, and only asks what it cannot infer.
Fields the onboarding agent must populate:
| Field | Source | Notes |
|---|---|---|
| Family size | Asked | Adults + kids |
| Kids' ages | Asked | Drives simplicity and portion logic |
| Dietary restrictions | Asked | Allergies, avoidances, lifestyle |
| Cuisine preferences | Asked + inferred | What they like, what they won't eat |
| Skill level | Inferred or asked | Drives recipe complexity |
| Equipment | Asked lightly | Instant Pot, grill, no wok, etc. |
| Time constraints | Asked | Weeknight time budget |
| Disliked ingredients | Asked | Explicit vetoes |
| Flavor preferences | Inferred | Mild vs bold, comfort vs adventurous |
Fields populated over time (not at onboarding):