Phase 3 - Recipe ingestion

The immediate design goal is to preserve upstream ingredient lines exactly as provided so the system can safely layer parsing, rendering, and override logic on top later. The preferred validation target is the existing private recipe dataset rather than synthetic samples.

key rule 

Best practical choice - Flask

The Flask recipe viewer reads recipes_normalized.jsonl, displays preserved ingredient lines
alongside a session-only editable override copy, and shows a plain-text preview plus a 
mailto: link for emailing the current edits. 

Original data remains untouched; overrides are stored only in the Flask session and are not yet persisted.

 

Flask it is

SPEC-1-Recipe Seed Export and Loader

SPEC-1-Recipe Ingredient Line Ingestion Fidelity

Background

Your recipe reader needs to support ingredient-aware behavior such as swaps, overrides, and structured parsing. Right now, ingredient data is being lost or collapsed, which breaks downstream behaviors. In the example shown, ingredient_lines_raw is empty even though the recipe clearly references ingredients in the body, and the override result degrades to a single structured ingredient (broccoli) rather than operating against preserved source lines.

Pages