週間食事プラン
プランはLucaのローカルWebアプリ(Ciboセクション)から読み取られます。そのため、JSONファイルは以下のスキーマに厳密に従う必要があります。
読み取る入力
profilo.md— 目標、除外する食品、好み、食事数、サプリメント。frigo.json— すでに家にあるもの(賞味期限を含む):優先的に使用します。冷蔵庫とパントリーの両方が含まれます。フィールドdoveは"frigo"または"dispensa"の値を持ちます(欠落している場合:炭水化物、油脂、缶詰はパントリー、残りは冷蔵庫)。spesa.json— 現在の買い物リスト:冷蔵庫とともにプランのベースになります。impostazioni.json—target.kcalとtarget.proteine_g。calendarioはトレーニング日を知るため。sempre_in_casa(例:塩、油:常にあり、買い物リストには含めない)。piani-pasti/内の最後のファイル — 同じ料理を繰り返さないため。log/misure.json— 体重の傾向からポーションの調整が必要かどうかを判断するため。
frigo.jsonまたはimpostazioni.jsonがまだ存在しない場合は、それらなしで進めます。
LucaはWebアプリからもプランを編集します(食事の追加、変更、削除、食べたものとしてマーク)。その週のファイルが既に存在する場合は、それをベースにします:"fatto": trueが設定された食事には触れず、Lucaが書いた食事は、特に依頼がない限り上書きしません。不足している日または食事のみを補完します。
ルール
- 冷蔵庫を優先、次に買い物:
frigo.jsonにあるアイテムを優先して使用し、特に賞味期限が近いものから使います。その後、買い物リストを使用します。材料の少なくとも80-90%は冷蔵庫+買い物リストから調達します。不足分はda_comprare_extraに、簡単な理由とともに追加します。 - 一貫性のある名前: 材料には
frigo.json/spesa.jsonで使用されているのと同じ名前を使用します(例:「Petto di pollo」であり「pollo」ではない)。これにより、Webアプリが何がすでに家にあるかを認識できます。 - 廃棄ゼロ: 傷みやすい食材(野菜、肉、生魚)は最初の数日で使用します。賢い残り物を計画します:一度調理して二度使います。
- 定義、適度なカロリー不足: 主要な食事ごとにタンパク質を、たくさんの野菜を、炭水化物を(
calendarioのトレーニング日にはより多く)含めます。食事を抜いたり、過激なプランは避けます。1日をtarget.kcalとtarget.proteine_gに近づけます。 - 目安のポーション: 実用的な単位(握り拳、手のひら、大さじ、「中サイズの鶏胸肉1枚」)を使用し、主要な炭水化物にのみグラム数を括弧内に示します。
- 多様性: Lucaは毎日喜んで料理をするので、シンプルだが異なるレシピを、同じ料理は週に最大2回までとします。以前のプランで気に入った料理を、同じ料理名で再提案できます(Webアプリはそれらをレシピブックに収集します)。
- 週末: Lucaは週末に外食します(少なくとも週に1回ピザ):それらの食事は計画に入れないか、ノートに「外食」と示します。
profilo.mdで示されている除外食品は常に尊重します。
買い物、冷蔵庫、パントリー(Webアプリと同じルール)
Webアプリは、シンプルなルールでプラン、買い物、在庫を同期させています。あなたもそれに従うことで、ファイルの一貫性が保たれます。
- プランを書き終えた後、
spesa.jsonを更新します:今日以降のまだ食べていない食事の材料のうち、frigo.json(冷蔵庫またはパントリー)になく、sempre_in_casaになく、まだリストにないものについて、{ "nome", "categoria", "quantita": "", "auto": true }のアイテムを追加します。auto: trueは「プランのために追加された」ことを意味します:Webアプリは食事が変更された場合に自動的にそれを削除します。autoのないアイテムには触れません(Lucaが書いたものです)。 da_comprare_extraはオプションの提案用(例:魚の調味料用レモン)であり、食事に必要な材料用ではありません。- 名前: Webアプリは大文字小文字とアクセントを区別せず、単数形=複数形(「uovo」=「uova」)として比較しますが、「pollo」と「petto di pollo」は異なるものとして扱われます。
frigo.json/spesa.jsonと同じ名前を使用します。 - Lucaが食事を食べたと伝えたとき:
"fatto": trueを設定し、冷蔵庫(FRIGO)にある材料をfrigo.jsonから削除し(パントリーはそのまま)、それらを食事の"consumati"に保存します(削除されたアイテムをそのままの状態で)。これにより、LucaがWebアプリでチェックを外した場合に、アイテムが戻ります。 - Lucaが買い物をしたと伝えたとき: 購入したアイテムを
spesa.jsonから削除し、dove(炭水化物、油脂、缶詰は"dispensa"、残りは"frigo")と、わかればscadenzaを付けてfrigo.jsonに追加します。
ミニレシピ
各食事にはricettaフィールドがあります:3〜5ステップの短い手順(各行1つ)の配列で、目安の調理時間を含めます。明白な手順(「盛り付ける」)は含めません。料理が前日の残り物を使用する場合は、最初のステップでそれを示します。
ファイルスキーマ
{
"settimana": "AAAA-Www",
"kcal_giorno_indicative": 2150,
"giorni": [
{
"giorno": "lunedì",
"pasti": [
{
"tipo": "pranzo",
"piatto": "Riso con pollo e zucchine",
"ingredienti": [{ "nome": "Riso basmati", "porzione": "1 pugno abbondante (~80 g)" }],
"ricetta": ["Cuoci il riso in acqua salata (circa 12 min)", "…"],
"note": "",
"fatto": true
}
]
}
],
"da_comprare_extra": [{ "nome": "Limoni", "categoria": "frutta", "quantita": "2", "motivo": "per condire il pesce" }]
}
giorno: 小文字の曜日名(lunedì … domenica)。tipo: pranzo、cena、colazione、spuntinoのいずれか。da_comprare_extraのcategoria:proteine、carboidrati、verdure、frutta、latticini、grassi、dispensa、altroのいずれか。fattoはオプションです:既に食べた食事に対してのみtrue(LucaがWebアプリで設定するか、あなたが食べたものを伝えられたときに設定)。未来の食事では省略します。consumatiはオプションです:食べた食事にのみ存在し、冷蔵庫から取り出されたアイテムを含みます(上記参照)。変更しないでください。- 他のフィールドは追加しないでください。
出力
- プランを
piani-pasti/AAAA-Www.json(ISO週)に保存します。上記のスキーマに厳密に従います。 - 不足している材料で
spesa.jsonを更新します(「買い物、冷蔵庫、パントリー」を参照)。 - チャットには短い概要を表示します:日ごとに1行で主要な料理を示し、次に買い物リストに追加したもの、
da_comprare_extraリスト、2〜3の準備のアドバイス(事前に調理すべきもの)を表示します。プランはWebアプリのCiboセクションですでに表示されていることをLucaに思い出させます。