Part 5|第 24/30 篇
今日要做的事: 把 Day 22 有記憶回放的週三,收成一張六格 Result Card。煮完才寫下一句,沒有資料的格子留 N/A。
今天要解決的目的: 讓人不用打開 Firestore,也看得出這餐用了什麼、花了幾點、哪幾格根本沒有資料。
昨天的結算是五個數字。7 點、0 次意外採購、0 天超支。
那些數字是真的,但沒有人想為了一碗微波丼去點開
replay_runs。卡片只要回答:這餐煮完了沒有,以及哪幾件事其實還沒被量到。

| 項目 | 內容 |
|---|---|
| 產出 | D3 的六格 Result Card,外加煮完才出現的一句 |
| 這筆是誰 | Day 22 有記憶回放的週三,memory_D3,微波洋蔥雞肉蛋蓋飯 |
| Google 服務 | Firebase Auth。按下儲存,寫入 result_cards/memory_D3 |
| 照片 | 封面是 9 月那碗紅碗微波丼 |
「少買一點、適合今天」這種句子,四種問法都寫得出來。
週三這筆看得到的只有這些:電磁爐壞了,只剩微波爐;時間上限 30 分;預算是中。設備篩完,候選只剩微波丼。Gemini 那天沒有第二道可以選。
卡片寫的是這道菜過了哪幾關,以及哪幾關今天沒有資料。

順序固定成:
回放那天的條件
→ 照真實冰箱扣庫存
→ 六格
→ 最後才寫一句 tip
選菜的當下還不知道雞腿肉會不會在兩天內用掉。那句話如果出現在推薦旁邊,就是還沒煮就先慶功。
六格的定義:
| 格子 | D3 怎麼判 |
|---|---|
| Hard | 這道只用微波爐,當天也沒有過敏限制 |
| Budget | 實際點數不超過「中」。中是 4 點 |
| Time | 食譜上的分鐘不超過 30。這道是 16 分,是估計,不是碼表 |
| Pantry | 有沒有用到煮之前冰箱裡已經有的東西 |
| Chain | 冰箱裡有前一餐留下的半成品才判。這天沒有,所以是 N/A |
| Balance | 要有前幾天的餐點標籤。這次回放沒有,所以是 N/A |
美味另外放一行。沒有人打 1 到 5 分,所以是 N/A。
MEMORY_PICKS 是昨天網頁上有記憶的那五道,扣庫存仍走 Day 22 的 replay()。五天加總還是 7 點,跟昨天的結算一樣。
day23/
├─ index.html 五天可切換,預設 D3
├─ test.js 4 個測試
└─ src/
├─ card.js 六格跟 tip
├─ main.js 畫卡、登入、寫入 Firestore
└─ firebase.js
if (row.outcome !== "COOKED") {
return { hard_ok: null, budget_ok: null, time_ok: null, tip_card: null };
}
煮完之後,tip 寫的是這筆庫存接下來怎樣。D3 買了雞腿肉,採購表寫這包只放 2 天,所以那句是:
剛買的雞腿肉只放 2 天,下一餐先用它
這句是買完以後,用保存天數算出來的。

| 格子 | 結果 | 依據 |
|---|---|---|
| Hard | 過 | 候選 1 道。開火的菜在進模型前就被拿掉 |
| Budget | 過 | 雞腿肉 2 點、洋蔥 1 點、白飯 1 點,合計 4,等於上限 |
| Time | 過 | 16 分對上限 30 分。16 是食譜估計 |
| Pantry | 過 | 用了冰箱裡原有的 1 顆蛋。青江菜和袖珍菇沒碰到 |
| Chain | N/A | 前兩天煮的是透抽麵,沒有剩咖哩 |
| Balance | N/A | 沒有餐點標籤 |
Pantry 過,是因為用到既有的蛋。青江菜和袖珍菇那天沒進這道菜。袖珍菇是週四過期的。
美味是 N/A。
4 個測試鎖四件事:五天挑選跟昨天相同、花費仍是 7 點、D3 的六格跟上面這張表一致、沒煮完的列沒有 tip。

網頁上的 D3 跟這張表同一筆。左下角寫著已寫入 result_cards/memory_D3。

週三這張卡只證明四件事:設備關過了、花了 4 點沒有超支、估計時間在 30 分以內、用到一顆本來就有的蛋。Chain、Balance、美味都是 N/A。下一句話是煮完才寫的:雞腿肉只放兩天。
下一篇: 同一題考四次。直接問、拍冰箱、貼 JSON、DishFlow,各交一份答案。
memory_D3 會寫進 Firestore 的欄位run_id: memory_D3
recipe_title: 微波洋蔥雞肉蛋蓋飯
completed: true
hard_ok / budget_ok / time_ok / pantry_reuse_ok: true
chain_hit / balance_ok / deliciousness: null
points: 4
buy: chicken_thigh, onion, rice
reused: egg
tip_card.one_tip: 剛買的雞腿肉只放 2 天,下一餐先用它