食譜時間軸
將傳統食譜轉化為適合單一廚師執行的計畫。
食譜列表按照書寫順序排列。這個技能會將其重新渲染為執行順序——一個對應於時鐘的烹飪依賴圖。
計畫中的每一行同時回答三個問題:
- 我現在在哪? —— 累積位置
- 還有多久必須行動? —— 時間間隔標記
- 我現在有空嗎? —— 垂直分隔線的粗細
準備工作的基本原則:
盡可能晚地準備,盡可能早地開始
0. 第一步:模式與適用性
在進行任何操作前,請先對食譜進行分類。選擇錯誤的模式是最常見的失敗原因。
如果食譜少於 5 個動作,且沒有重要的時間安排或平行處理 —— 例如炒蛋、沙拉、冰沙 —— 建議使用簡單的編號序列,而非完整計畫,並用一句話說明為何完整計畫會是多餘的負擔。如果使用者明確要求時間軸格式,則仍然提供。 這個門檻是預設值,而非拒絕。
否則,選擇一種模式:
模式 A —— 時間軸(預設)
至少有一個超過 3 分鐘的時間間隔,且動作多於 6 個。適用於多數爐灶主菜、燉菜、濃湯、咖哩、義大利麵、烤盤晚餐。
模式 B —— 序列(注意力主導)
大部分間隔少於 90 秒:快炒、歐姆蛋、需要精準控溫的菜餚、快速煎炒——任何需要廚師持續待在鍋邊的料理。
模式 B 中沒有空閒時間,因此不要假裝有。輸出:
- 按照取用順序排列的備料清單 —— 所有東西在加熱前準備好並排列整齊,按照將被取用的順序列出。
- 一個加熱前的區塊,包含任何預熱門檻及其前置時間,位於序列時鐘之外。時鐘從食物接觸熱源時開始,而非鍋子接觸熱源時。
- 一個快速序列,附帶累積秒數和門檻,內部無
[+n]標記,也無備料任務。 - 明確的一行:「從加熱到上盤約需 N 分鐘,其間無暫停。以上所有東西必須先放在伸手可及之處。」
模式 B 是「不要在時鐘開始前傾倒所有備料」這個規則的例外。在這裡,傾倒備料是正確的。
模式 C —— 排程(等待主導)
實際工作僅佔總耗時的一小部分:烘焙、麵包、冷藏凝固甜點、發酵、舒肥、隔夜燉菜,以及任何需要數小時等待的料理。輸出以從上菜時間回推的工作階段,而非從零開始的連續時鐘。
混合模式
許多食譜是模式 A 帶有模式 C 的結尾——例如香蕉蛋糕是 20 分鐘的時間軸加上 70 分鐘的冷卻。渲染時間軸,然後加上一個烹飪完成後的章節。在結尾部分完成前,不要標記菜餚為完成。
修改既有計畫
當使用者修改一個已有計畫的食譜時——例如添加配菜、移除某個部分、設定上菜時間、將份量加倍——從原始來源重新執行整個技能。不要對先前的輸出進行局部修補。
計畫是一個圖,而非一個列表。一個新組件會改變合併後的動作列表,因此後續的標記會偏移;它也可能造成衝突、消耗最後一個空閒的準備時段、將第二個鍋子放到爐口上、超出鍋子的容量,或將餐點推至超過兩條工作線而需要以上菜時間為基準。局部編輯正是導致計畫內部不一致、過時標記指向已移動動作的原因。
重新執行成本很低。真正有成本的是失去先前執行的成果,因此請在一個先前保留的標題下明確保留:
- 使用者提供的、但原始來源中沒有的方法
- 他們設定的上菜時間、份數或容器數
- 他們對前次輸出所做的修正
- 他們提到自己會以不同方式做的任何事
明確列出這些事項,使其可以被修正,而非被默認假定。
然後,在新的計畫下方,新增一個簡短的變動項目列表——僅列出位置或注意力需求改變的項目,而非全部重新說明:
變動項目
- 大蒜 9 分鐘 → 11 分鐘(煮麵鍋現在從 4 分鐘開始)
- 22 分鐘處發生衝突:瀝水動作移至菠菜萎縮步驟之後
- 現在有兩個熱的組件,因此計畫以上菜時間為基準
使用者可能已在腦中記住舊的計畫。告訴他們什麼改變了,正是重新執行而非修補的重點。
1. 原始資料門檻
如果食譜中有食材列表,但缺少步驟,請停止。回報無法建立可靠的計畫。不要自行發明合理的食譜。
如果步驟存在但缺少時間(在部落格食譜和傳統食譜中非常常見),則繼續進行——但需按照第§7節標記推斷的持續時間,並讓每個由線索驅動的步驟以線索而非數字開頭。
2. 提取
從原始資料中擷取:標題、份數、食材、步驟、指定時間、溫度、設備、熟度判斷線索、配菜,以及任何指定的營養數據。
不要更改食材用量。
如果使用者要求調整食譜份量,請注意持續時間並非線性縮放——雙倍份量的食材會褐變更慢、可能需要更大的鍋子或需要分批處理(第§7節,重複循環)。
3. 營養資訊
每個輸出都應在靠近頂部、設備和食材列表之前,顯示份數、熱量與三大營養素。廚師根據此區塊決定是否製作這道菜。
## 營養資訊 *(計算值)*
- **熱量** 每份約 300 大卡 · 總計約 1,200 大卡
- **蛋白質** 13 公克 · **碳水化合物** 42 公克 · **脂肪** 9 公克
蛋白質、碳水化合物和脂肪是預設的三項。僅當原始資料有提供時,才列入膳食纖維、糖或鈉。務必同時顯示每份數量和總量。
來源,務必標示
(來自來源) —— 食譜本身提供了這些數字。直接引用其數值。不要重新計算,即使你自己的估計與之不符,也不要「修正」它們。
(計算值) —— 由你從食材列表中計算得出。切勿將這些數字呈現為食譜本身的數據。
省略 —— 食材無法支持任何估計。保留標題,並在列表中說明阻礙原因:
## 營養資訊
- **熱量** 無法估計 —— 「油炸用油」未提供
用量,且食材吸收的油脂是主導因素。
該標記應放在章節標題中,而不是放在列表下方的獨立行。獨立的標記行是孤立的:它既不屬於上方區塊也不屬於下方區塊,因此渲染器無法為其提供錨點,它會像下方章節的說明文字。任何無法容納在標題中的備註,應以一般文字行放在列表下方:「僅計算腰豆;白飯每份約增加 205 大卡。」
來源應使用文字表示,而非括號。括號應保留給 [+n] 標記,這些標記位於獨立欄位中;在標題中沒有欄位,括號會顯得像是機器輸出。
此區別類似於持續時間的 [+n] / [≈n] 區別,並遵循相同的規則:一個虛構的數字被呈現為有來源的數字,是忠實度的失敗。
份數
每份數值需要一個份數數量。
- 原始資料有說明 → 使用它。例如「分裝到 6 個容器」這樣的儲存說明即代表了份數。
- 未說明 → 根據總量推斷,並在列表下方說明:「份數按體積計算。」
- 無法推斷 → 僅顯示總量,並說明每份數值需要一個份數數量。
當原始資料僅提供每份數值時,將其乘以總份數是對其數字的算術運算,而非新的估計。這仍然標記為 (來自來源)。
當原始資料自相矛盾時
在回覆中提出一次,然後繼續進行。不要等待回答,也不要將協調後的結果渲染到計畫中——計畫是將被發布的內容,只看到一組數字的讀者不需要了解選擇背後的計算過程。
透過採用與食譜實際內容相符的數字來解決:食材列表為準,而非根據其他數量計算的表格。將其標記為 (來自來源),如同其他被說明的數字。
在計畫旁,一次性地:
食材列表中說帕馬森起司為 20–30 克,但第二個
營養成分表是根據 66 克計算的。我使用了
20–30 克的數字——如果你想要另一組數字請告知。
如果使用者回答,則根據他們的選擇重新執行。如果他們沒有回答,計畫已經成立,無需重新處理。
誠實估計
以下是導致食材列表估計錯誤的原因。每個都有其規則:
- 油炸用油 —— 只有被食材吸收的部分才計入,而非鍋中的總油量。淺炸和深炸大約吸收食物重量 10% 的油。如果食譜說「油炸用油」但未提供用量,則無法估計——應省略而非猜測。
- 丟棄的醃料 —— 約計四分之一,即附著在食物上的部分。
- 鹽水與加鹽的煮麵水 —— 大部分會被丟棄。除非原始資料追蹤鈉含量,否則忽略。
- 「鹽適量」、「油適量」 —— 計為零並說明。
- 修剪下來的部分、骨頭、殼、皮 —— 以可食用產量估計,而非購買重量。
- 收汁 —— 蒸發去除的是水,而非熱量。收汁後的醬汁熱量與收汁前相同。切勿因煨煮而縮減熱量數字。
- 酒精 —— 假設在燉煮菜餚中約保留一半,在未加熱的菜餚中幾乎全部保留。
- 食譜中未計入的配菜 —— 將其排除,並說明該數字僅適用於菜餚本身。
精確度紀律
食材列表的估計值,其誤差範圍至少為 ±15%。切勿以超出此範圍的精確度呈現:使用 ~520 大卡,而非 518 大卡。熱量四捨五入至最近的 10 大卡,巨量營養素四捨五入至最近的公克。不要在巨量營養素上給出範圍——硬性四捨五入,讓 (計算值) 承擔不確定性。原始資料給出的範圍則按原樣保留。
範圍
報告算術結果並停止。不要評論數字是高是低、建議替換以改變數字,或附上飲食建議——這些都不是此技能被要求做的事。去除原始資料本身帶有的任何評價性語言(例如「非常飽足」、「中等飽和脂肪」),只保留數字。
不要為已在原始資料門檻處失敗的食譜產生估計值。如果步驟不可信,數字也不可信。
4. 展開隱含的備料
食譜會省略顯而易見的執行步驟。對於每個動作,問:
當這個動作發生時,這個食材必須處於什麼物理狀態?
加入洋蔥 → 洋蔥必須切碎 → 建立備料任務。
加入番茄泥 但原始資料列出的是整顆番茄 → 建立:將番茄打成泥。
加入香料 但列出了五種香料 → 建立:量取香料。
常見的合理添加:切碎或切片辛香料;將薑和蒜剁碎或磨成泥;瀝乾並沖洗罐頭食品;洗米;量取香料;切柑橘類水果;切碎香草;打開包裝;在傾倒或瀝水前先放好容器;當食譜步驟依賴於此,將乳製品或雞蛋恢復至室溫。
執行推斷 vs 烹飪發明
允許 —— 推斷食譜步驟所預設的準備要求。
不允許 —— 添加原始資料中沒有的食材;在原始資料說切碎時改為打成泥;縮短指定的時間;更改溫度或技術;替代。
推斷準備工作。不要重寫菜餚。
5. 建立關係圖
主線
一個主要流程:具有最多順序依賴關係、需要最多干預、並決定其他所有流程何時開始的那個。
流程並非僅僅因為它們同時進行或使用不同容器就視為獨立組件。烹煮豆子、製作其瑪薩拉醬汁,然後混合它們,是一道菜、一條工作線。
分支,及其方法的來源
一個分支是真正獨立的餐點組件:米飯、義大利麵、馬鈴薯、蔬菜配菜、優格醬、另外製作的醬汁。從它實際應該開始的時間點開始,而非時鐘 0。
一個分支需要一個方法。 一個僅僅是「搭配建議」的說法不是一個分支:
原始資料只說「搭配米飯」—— 未提供方法:
## 搭配
米飯 —— 未提供方法。
使用者提供了方法 —— 允許分支,並註明:
米飯方法由您而非原始資料提供:
洗 · 煮沸 · 小火 + 加蓋 12 分鐘
10 分鐘 ├·······→ 🔪 洗米 · 放上鍋
方法可以來自原始資料、另一個食譜或使用者。當它來自使用者時,請在輸出中說明,以便讀者了解這些步驟的來源。切勿自行偽造方法。
閘門與停止條件
條件,而非持續時間。切勿僅靠時鐘進行。
◆ 當條件為真時繼續進行 —— ◆ 直到油泛油光、◆ 烤箱達到 200°C、◆ 水達到滾沸、◆ 麵團發酵至兩倍大、◆ 竹籤插入後乾淨取出
◇ 一旦條件為真立即停止 —— ◇ 剛剛混合均勻、◇ 出現第一點顏色、◇ 稍微不夠熟。與 ◆ 極性相反,混淆兩者會毀掉麵糊、蛋奶糊和乳化液。
🌡 內部溫度 —— 只要原始資料有給,就使用。這是一個閘門,絕非感官線索;它絕對凌駕於時鐘之上。
一個閘門也涵蓋了一個設置前提,如果錯過它,會使一步驟不可逆轉。將其放在該動作的上一行,而非內部:
│ ◆ 水槽旁放好杯子
23 分鐘 │ ● 保留 1 杯 · 瀝乾
餘熱烹調
烤肉、厚切肉塊和大型烘焙食品在離開熱源後會繼續烹煮 — 通常對於大塊肉或禽類升高 3–5°C,對非常大的塊狀物升高更多。當原始資料給出最終溫度時,請在該溫度減去餘熱升溫的數值時取出,並說明:
🌡 在 71°C 時取出 —— 靜置時會升至約 75°C
設備
注意共用的鍋子、爐口、烤箱空間和攪拌機。有兩種情況,它們是不同的:
共享 —— 兩者可以同時使用且溫度相同。注意負載並繼續進行。
衝突 —— 一次只能用一個,或溫度相互衝突。按以下順序解決:
- 溫度相差約 15°C 以內 —— 使用較高的溫度,並透過更早檢查較精緻物品的閘門來提前將其取出。
- 溫度差距更大 —— 安排順序。具有較長保溫容忍度的物品先進行並等待:烤肉可以愉快地靜置 20 分鐘,同時馬鈴薯在更高溫下變脆。
- 兩者都不可行 —— 說明衝突並提供選擇。不要默默地選擇其中一個。
另外,請標註容量:將最終體積相加,並在食譜需要...(後略)