Skip to content

Recipe corrections and 4:6 variant additions (validated against source techniques) #1

@hessius

Description

@hessius

Summary

While implementing MeticAI's guided pour-over recipe mode I cross-referenced all bundled OPOS examples against the original source techniques and found a number of inaccuracies. This issue documents the corrections so the OPOS spec examples can be updated to match the verified originals.


1. Tetsu Kasuya 4:6 Method — Variants clarification

The spec example shows five equal 60g pours. This is valid but represents only the stronger end of the 4:6 technique. Kasuya's original explanation describes the final 60% as adjustable — the number of equal-weight pours controls strength.

Proposed update: Document all three canonical variants:

Variant Sweetness pours (40%) Strength pours (60%) Steps
Lighter 2 × 60g 1 × 180g 5
Standard 2 × 60g 2 × 90g 7
Stronger 2 × 60g 3 × 60g 9

The spec could either show all three or document the variants in a note. At minimum the existing example should be labelled as the "Stronger" variant to avoid confusion.


2. James Hoffmann V2 — Missing mid-bloom swirl + corrected main pours

The spec compresses the technique into a single large bloom step and then two 100g pours. The actual technique uses:

  1. A short bloom pour (50g, ~10s only)
  2. A swirl at 10–15s (missing from spec)
  3. A 30s rest (wait until 0:45 total)
  4. Four equal 50g pours at roughly 0:45, 1:10, 1:30, 1:50, each with a 10s pause

Current spec (incorrect):

{ "step": 1, "action": "bloom", "water_g": 50, "duration_s": 45, "notes": "2x-3x coffee weight, swirl gently" },
{ "step": 2, "action": "pour",  "water_g": 100, "duration_s": 30, "notes": "Pour to 150g total" },
{ "step": 3, "action": "wait",  "duration_s": 10 },
{ "step": 4, "action": "pour",  "water_g": 100, "duration_s": 30, "notes": "Pour to 250g total" },
{ "step": 5, "action": "swirl", "duration_s": 5,  "notes": "Gentle swirl to flatten bed" },
{ "step": 6, "action": "wait",  "duration_s": 90, "notes": "Allow to drain completely" }

Corrected:

{ "step": 1,  "action": "bloom", "water_g": 50, "duration_s": 10, "notes": "Pour 50g to bloom" },
{ "step": 2,  "action": "swirl", "duration_s": 5,  "notes": "Gently swirl at 10–15s" },
{ "step": 3,  "action": "wait",  "duration_s": 30, "notes": "Finish bloom — wait until 0:45" },
{ "step": 4,  "action": "pour",  "water_g": 50, "duration_s": 15, "notes": "Pour to 100g total (40% weight)" },
{ "step": 5,  "action": "wait",  "duration_s": 10 },
{ "step": 6,  "action": "pour",  "water_g": 50, "duration_s": 10, "notes": "Pour to 150g total (60% weight)" },
{ "step": 7,  "action": "wait",  "duration_s": 10 },
{ "step": 8,  "action": "pour",  "water_g": 50, "duration_s": 10, "notes": "Pour to 200g total (80% weight)" },
{ "step": 9,  "action": "wait",  "duration_s": 10 },
{ "step": 10, "action": "pour",  "water_g": 50, "duration_s": 10, "notes": "Pour to 250g total (100% weight)" },
{ "step": 11, "action": "swirl", "duration_s": 5,  "notes": "Gently swirl to flatten the bed" },
{ "step": 12, "action": "wait",  "duration_s": 60, "notes": "Allow to drain completely" }

3. Lance Hedrick Single Pour — Missing wet WDT step

The spec omits the wet WDT (distribution tool) stir that is central to the technique. The bloom also uses an incorrect total duration (60s combined) rather than the correct split: pour 10s → stir 10s → wait 80s (total bloom ~1:40).

Current spec (incorrect):

{ "step": 1, "action": "bloom", "water_g": 60, "duration_s": 60, "notes": "3x coffee weight bloom" },
{ "step": 2, "action": "pour",  "water_g": 280, "duration_s": 120, "flow_rate": "steady", "notes": "Single continuous pour, center only" }

Corrected:

{ "step": 1, "action": "bloom", "water_g": 60,  "duration_s": 10,  "notes": "Pour 60g (3× dose) to saturate all grounds evenly" },
{ "step": 2, "action": "stir",  "duration_s": 10,  "notes": "Wet WDT — stir through grounds with a WDT tool or chopstick to break all dry pockets" },
{ "step": 3, "action": "wait",  "duration_s": 80,  "notes": "Wait — total bloom ~1:40" },
{ "step": 4, "action": "pour",  "water_g": 280, "duration_s": 120, "flow_rate": "steady", "notes": "Single continuous centre pour to 340g — maintain height for turbulence" }

4. Tetsu Kasuya God/Devil (Hario Switch) — Incorrect pour volumes and missing temperature transition

The spec shows a single 100g open-valve pour then closes the valve and pours 180g. The correct technique uses two open-valve pours and critically requires a kettle temperature drop from 90°C to 70°C during the second pour. The timing and the dual-temperature nature of the technique are defining characteristics.

Current spec (incorrect):

{ "step": 1, "action": "pour", "water_g": 100, "duration_s": 15,  "valve_state": "open",   "notes": "Hot percolation phase" },
{ "step": 2, "action": "wait", "duration_s": 30,  "valve_state": "closed", "notes": "Close valve" },
{ "step": 3, "action": "pour", "water_g": 180, "duration_s": 20,  "valve_state": "closed", "notes": "Immersion phase" },
{ "step": 4, "action": "wait", "duration_s": 120, "valve_state": "closed", "notes": "Steep and cool" },
{ "step": 5, "action": "wait", "duration_s": 60,  "valve_state": "open",   "notes": "Open valve, drain" }

Corrected:

{ "step": 1, "action": "pour", "water_g": 60,  "duration_s": 15, "valve_state": "open",   "notes": "Valve OPEN — pour 60g at 90°C" },
{ "step": 2, "action": "wait", "duration_s": 15, "valve_state": "open",   "notes": "Wait — valve remains open, percolating" },
{ "step": 3, "action": "pour", "water_g": 60,  "duration_s": 20, "valve_state": "open",   "notes": "Pour 60g more to 120g total at 90°C — begin lowering kettle to 70°C now" },
{ "step": 4, "action": "wait", "duration_s": 25, "valve_state": "open",   "notes": "Wait until ~1:15; ensure water is at 70°C before next step" },
{ "step": 5, "action": "pour", "water_g": 160, "duration_s": 25, "valve_state": "closed", "notes": "CLOSE valve, then pour 160g at 70°C to 280g total — immersion phase begins" },
{ "step": 6, "action": "wait", "duration_s": 30, "valve_state": "closed", "notes": "Steep with valve closed" },
{ "step": 7, "action": "wait", "duration_s": 60, "valve_state": "open",   "notes": "OPEN valve — drain. Aim to complete by 3-minute mark." }

Scott Rao V60 — also noted for completeness

The MeticAI spec also contained an incorrect version which was corrected:

  • Original bloom combined pour + swirl into a single step
  • Main pours were unequal (140g + 130g) and used flow_rate: "slow" — source technique uses fast pours
  • Wait drain threshold was ~70% drained; source says ~50%

These changes may not require OPOS spec updates if Rao V60 is not documented there, but noting for completeness.


References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions