المعيار الأساسي / تنسيق وصفات Cookwala: وصفات تعمل مع Missions تحرير على GitHubماركداون

تُرجمت هذه الصفحة آليًا ولم يراجعها إنسان بعد. النص الإنجليزي هو المرجع؛ والتصحيحات مرحّب بها على GitHub. English

تنسيق وصفات Cookwala: وصفات تعمل مع Missions

الوصفة في Cookwala ليست مجرد قائمة من التعليمات. إنها معرفة طهي محمولة يقوم المخطط بتجميعها بناءً على مهمة محددة (household، الروبوتات، الأجهزة، الطاقة، الميزانية، الصحة، التوقيت) لتصبح خطة قابلة للتنفيذ. ثم يقوم الروبوت بتشغيل تلك الخطة، مع التكيف من خلال الطوارئ وplaybooks عندما يتغير الواقع.

المخطط: [recipe.schema.json](../schemas/recipe.schema.json). مثال كامل مشروح: [examples/shakshuka.cookwala.json](../examples/shakshuka.cookwala.json).

1. أربع طبقات (مقتبسة من نهج WHO SMART Guidelines) #

الطبقةما تحتويهمن يكتبهاأين توجد
R1 Narrativeنص الوصفة البشري، القصة، الملاحظات الثقافية، الصورالطهاة، الشيفات، fifi.cookingtext, dish.images
R2 Dish specما هو وما يجب أن يكون عليه الطبق: الهوية (أساسية مقابل مرنة)، الأهداف الحسية، التغذية، أسلوب التقديم والأكل، التخزين، فحوصات القبولمحررو الوصفات، بمساعدة الذكاء الاصطناعي، تمت مراجعتهاidentity, sensory, service, storage, nutrition, acceptance
R3 Executable IRطريقة مستقلة عن الجهاز: الصيغة (النسب + الأدوار)، مخطط العملية للعمليات المحددة بنوع مع شروط ما قبل/ما بعد حالة الطعام، شروط until، البدائل، قواعد التوقف المؤقت، أنماط الفشل، الإمكانيات، المخاطر، نقاط التحكم الحرجة (CCPs)، تجهيز البيئةخط تصدير البيانات + المراجعة؛ تم التحقق منها بواسطة المحاكي (V2)formula, ingredients, equipment, prep, process, safety
R4 Bound planوصفة R3 المجمعة لهذه الـ Mission: الكميات الدقيقة، المتغيرات المختارة، الجهات والأجهزة المعينة، الجدول الزمني، عقود الإيجار، المراقبون، خطط الطوارئالمخطط/المجمع، عند وقت التشغيلداخل الـ Mission (plan)، وليس في الكتالوج أبداً

مثل الكود المصدري والمترجم (compiler): الوصفة هي تمثيل وسيط قابل للنقل (R3 + R2). والمهمة هي الآلة المستهدفة. هذا ما يحافظ على صلاحية الوصفات مع تغير الروبوتات والذكاء الاصطناعي: المخطط الأفضل ينتج R4 أفضل من نفس الوصفة.

2. ماذا يفعل كل قسم في المهمة (Mission) #

قسم الوصفةتستخدمه المهمة من أجل...
identity.essential / flexible / neverAddالبدائل، أوضاع الميزانية والحصص، تكييف النظام الغذائي: تغيير الأجزاء الـ flexible، وعدم تغيير الـ essentials أبداً، لتبقى الوجبة هي نفسها
formula (ratios, min/max, role, scaling)التوسيع الدقيق لأي عدد من الأشخاص، تقنين المكونات على مدار أسبوع، تمديد الميزانية، استهلاك ما هو متاح (إعادة التوسيع بناءً على المكون المحدود)
sensoryنقاط فحص الرؤية والرائحة والطعم؛ ملفات تعريف الطعم في الـ household context (ملح 2 مقابل 4)؛ قرارات إعادة الاستخدام والإصلاح
prep (tools, surfaces, clearFirst, advanceTasks)مهام تحضير البيئة: إذا كان الحوض أو الموقد مشغولاً، يضيف المخطط مهام "تنظيف، غسل، تجفيف"؛ يتم جدولة مهام النقع أو الإذابة قبل ساعات
process.nodes[] مع حالات الطعام pre/postالتخطيط (البدء فقط بما هو جاهز)، التحقق (هل أنتجت الخطوة الحالة المطلوبة؟)، الاستئناف بعد الانقطاعات
until, onTimeout, retryمعرفة متى تنتهي الخطوة وماذا تفعل عندما لا تنتهي
alternatives[] + energyالغاز مقابل الحث مقابل الفرن، موفر البطارية، المطابخ التي لا تحتوي على فرن، ساعات الهدوء
pause (pausable, safeState, maxPause, onExceeded)الانقطاعات: طفل يحتاج مساعدة، المالك يتصل، الكلب يوقع شيئاً ما. يضع الروبوت الخطوة في الـ safeState الخاص بها، ويتعامل مع الحدث، ثم يستأنف، أو يعيد التسخين، أو ينقذ أو يتخلص من الطعام بناءً على ميزانية الـ pause
failureModes (incident, detect, prevent, playbook)الكشف المبكر عن المشكلات المعروفة والـ playbook الدقيق للتعافي
affordances, spaceمطابقة الخطوات للروبوتات التي يمكنها القبض والرفع والوصول؛ إبقاء المناطق الساخنة بعيداً عن الأطفال
safety (hazards, CCPs, supervision, abort)نواة السلامة: الثوابت التي يجب أن يحافظ عليها كل مخطط
service (temps, vessel, accompaniments, tableware, eating style, portioning, packable)التقديم: ما يوضع على الطاولة، أو في الغرفة، أو في صندوق الغداء؛ التذكيرات وحدود الانتظار؛ أسلوب الأكل الثقافي
storageالبقايا، مهام الطهي المسبق وصندوق الغداء
acceptanceاختبارات الوصفة: تنتهي المهمة عندما تتحقق هذه الاختبارات
nutrition, costالحصص الشخصية، الميزانية، حصص الإغاثة

3. مثال: خطوة واحدة مع كل المرفقات #

json
{
  "id": "n7", "op": "cw.op.simmer",
  "inputs": ["aromatic_base", "tomato", "salt", "blackpepper"], "output": "sauce",
  "params": { "heat": "medium_low", "lid": "off", "target": { "sensor": "cw.sense.liquid_temp", "value": 94, "unit": "degC", "tolerance": 3 } },
  "until": { "any": [ { "sensor": "cw.sense.mass_loss_ratio", "gte": 0.25 }, { "vision": "cw.sense.sauce_coats_spoon" } ],
             "minTime": "PT10M", "maxTime": "PT18M" },
  "onTimeout": "extend",
  "pause": { "pausable": true, "safeState": ["heat_hold_low", "lid_ajar"], "maxPause": "PT45M", "onExceeded": "reheat_then_resume" },
  "failureModes": [
    { "incident": "cw.incident.too_salty", "likelihood": "low", "playbook": "cw.pb.too_salty_liquid" },
    { "incident": "cw.incident.too_thin", "likelihood": "medium", "playbook": "cw.pb.sauce_too_thin" } ],
  "alternatives": [ { "id": "gas", "op": "cw.op.simmer", "when": ["gas_only"], "timeFactor": 1.0, "quality": "same" } ],
  "hazards": ["hz_splatter", "hz_steam"], "attention": "monitor"
}

4. تجميع وصفة لمهمة (ما يفعله المخطط) #

  1. اختر المتغير: النظام الغذائي، القوام (IDDSI)، المعدات، الطاقة، ونمط الاختيار من alternatives. يجب أن تظل العناصر الأساسية للهوية قائمة.
  2. المقياس: من formula والحصص، الحصص لكل شخص (HEALTH.md)، المكون المحدِد، أو أفق الحصة. التوابل بشكل دون خطي، والوقت حسب أس exponent الكتلة.
  3. الاستبدال ضمن الأدوار، مع احترام identity.neverAdd والمواد المسببة للحساسية، والحزم الغذائية والمخزون.
  4. تجهيز البيئة: قارن prep مع جوانب مساحة المهمة (هل الحوض ممتلئ؟ هل الموقد مشغول؟ هل اللوح متسخ؟) وأضف مهام الترتيب، الغسيل، التجفيف، والتحضير. جدولة advanceTasks (النقع، الإذابة، التتبيل، التسخين المسبق).
  5. الربط: تعيين كل عقدة للروبوتات، أو الأجهزة، أو البشر بناءً على الإمكانيات والقدرات. استئجار المواقد، الأوعية، والمناطق. إرفاق أجهزة المراقبة (القدر الذكي، وقت الوصول المتوقع للتوصيل، كاشف الدخان).
  6. الجدولة عكسياً من وقت التقديم، مع احترام ميزانيات التوقف، وحدود البطارية والطاقة، ساعات الهدوء في household context، ونوافذ مشاركة المطبخ.
  7. إرفاق الطوارئ: failureModes وقواعد pause لكل عقدة، بالإضافة إلى سياسات المهمة العالمية (الانقطاعات، وجود طفل أو حيوان أليف بالقرب من الموقد، مراقب الموقد، مراقب التلف).
  8. التحقق: فحص المخطط (schema) + الفحص الدلالي، حزم السياسات، تغطية CCP، dry run للمحاكي، ثوابت مكدس الأولويات (PROTOCOL §7.2).
  9. إصدار R4 في plan المهمة، وتوقيعه، وتسليمه للروبوت.

5. التأليف والتحويل #

  • من fifi.cooking: يقوم مسار EXPORT-FIFI بإنشاء R1 + R2 + R3. الأقسام الجديدة (identity, sensory, formula, prep, service, pause, failureModes, affordances) يتم إنشاؤها بواسطة نماذج محلية من النص الحالي ويتم التحقق منها بواسطة أدوات التحقق (validators) ومراجعة بشرية مختارة.
  • من الويب: cookwala convert --from schema-org ← R1/R2 (V0)، ثم نفس عملية الإثراء.
  • إلى تنسيقات أخرى: schema.org Recipe (R1/R2 لمحركات البحث)، Cooklang (تعديل بشري)، PDDL أو المنطق الزمني (مخططو الأبحاث) يمكن جميعها أن تُنشأ من R3.
  • يدوياً: يقوم cookwala init recipe ببناء جميع الطبقات؛ ويقوم cookwala validate و cookwala simulate بالتحقق منها.
  • الإصدارات: المراجعات غير قابلة للتغيير ومُشفرة (hashed). تسجل الفروع (Forks) قيمة meta.derivedFrom. يتم اقتراح patches الوصفة (من أدلة العمل أو الملاحظات) كفروقات (diffs) ولا يتم ترقيتها إلا بعد المراجعة والأدلة.

6. لغة نص الخطوة #

تُكتب جمل الخطوات لشخص أولاً ويتم تحليلها بواسطة آلة ثانياً. يستخدم نص الخطوات باللغة العربية في وصفات الأمثلة صيغة الأمر للمؤنث (قطّعي، سخّني)، وهو العرف الشائع في كتب الطبخ المصرية؛ وهو اختيار متعمد وليس سهواً، وقد يستخدم الناشر صيغة المبني للمجهول المحايدة جنسياً (تُقطَّع البصلة) بدلاً من ذلك. تحمل حقول op و params و until المعنى؛ أما الجملة فهي للطاهي.

7. لماذا يظل هذا مواكباً للمستقبل #

  • تصف الوصفات نتائج وقيود الطعام، وليس الحركات. الروبوتات الجديدة والذكاء الاصطناعي الجديد ينتجان خطط R4 أفضل من نفس R3.
  • جميع الأقسام الجديدة اختيارية وإضافية. وصفة V0 (R1 فقط) لا تزال تعمل للطهي البشري الموجه؛ كل طبقة مضافة تفتح المزيد من الأتمتة.
  • الحقول غير المعروفة x- تمر كما هي. يمكن للموردين والطهاة والهيئات الصحية توسيع الوصفات دون كسر أي شيء.
  • تسمح فحوصات القبول لأي منفذ، بشري أو روبوت، بإثبات أن الطبق خرج بشكل صحيح، وهي الطريقة التي ترتقي بها الوصفات إلى V3 مع أدلة ميدانية.