الخلاصة

  • تفرض المراجعة 04 من مسودة AER-1 الفردية أن تُشتق أوراق سير العمل من receipt_id، بينما تبني الصفحة العامة أوراقها من seq:receipt_hash.
  • أعادت نقاط التحقق الخمس HTTP 200، وأعلنت الإيصالات الخمسة نجاح التحقق، وطابقت بصمات الخرج بيان سير العمل. أعادت خوارزمية الصفحة جذرها المنشور، لكن خوارزمية المسودة أعادت جذرًا آخر.
  • تتبع أدوات Python وRust وTypeScript في الالتزام المثبّت قاعدة المسودة. أما مجموعة الاختبارات ذات نتيجة 43/43 فما زالت تحمل وسم المراجعة -03 ولا تحتوي اختبارًا لجذر سير العمل.

المرساة تشهد على قيمة، لا تختار معناها

تعرض صفحة سير العمل العامة جذرًا هو a4b2fcb4684cec481e4ece889ed15c7d9e47e58d9ba4fb02ea354c0cb2ca44c4، وتعرض أيضًا مرساة Nostr بحالة جزئية. تبدو الصورة مكتملة: خمس خطوات، تحقق مستقل، جذر، ثم شاهد خارجي.

لكن الشاهد لا يرى القاعدة التي سبقت الجذر. وظيفته أن يسجل الالتزام الذي قُدّم إليه، لا أن يقرر هل كان يجب أن تُبنى الورقة من هوية الإيصال أم من ترتيبه وبصمة خرجه.

أُعيد فحص الخطوات الخمس مباشرة. استجابت جميع النقاط بنجاح. كان verified: true حاضرًا في كل استجابة، وطابقت بصمة الخرج في كل خطوة القيمة المسجلة في بيان سير العمل. ثم طُبقت قاعدة الصفحة: رقم الخطوة، ثم نقطتان رأسيتان، ثم بصمة الخرج بالأحرف الصغيرة؛ وتُهشّم بايتات UTF-8 الناتجة باستخدام SHA-256. بعد جمع الملخصات الخام وتكرار العقدة الأخيرة في المستوى الفردي، ظهر الجذر المنشور نفسه.

وعندما بقيت الخطوات والترتيب وقاعدة الآباء ومعالجة العدد الفردي كما هي، لكن أُنشئت الأوراق من بايتات UTF-8 الخاصة بـreceipt_id، أصبح الجذر 7c4817ca249edfeae259b98abf63ed38a31d9dbeebf5ee23139410a7a7f63b37.

هذه هي القاعدة التي تحددها المراجعة 04 من AER-1: A Portable Execution Receipt for AI Agent Tool Calls، المنشورة في 29 سبتمبر 2026. الوثيقة Internet-Draft فردية ذات نية Informational، وليست RFC ولا وثيقة اعتمدها فريق عمل في IETF. ومع ذلك، يبقى الاختلاف التشغيلي قابلًا لإعادة الإنتاج.

موضع الخلاف يسبق أول فرع

ليس اسم SHA-256 وصفًا كاملًا لشجرة Merkle. ينبغي معرفة البايتات التي تدخل الورقة، وترميزها، وطريقة جمع الأبناء، ومعالجة العقدة الفردية، وصيغة الناتج.

تقول المراجعة 04 إن الورقة هي SHA-256 لنص receipt_id بترميز UTF-8. وتوضح أنها أزالت السماح بالبنى البديلة لأن تعدد الجذور لسير عمل واحد يهدم التحقق بين التطبيقات. تصف البنية أولًا بأنها موصى بها، ثم تستخدم MUST لتلزم التطبيقات بها.

أما الصفحة العامة فتضع الترتيب وبصمة الخرج مباشرة داخل الورقة. لهذا الاختيار منطق: فهو يربط موقع الخطوة والتزام خرجها بالشجرة. ولخيار المسودة منطق آخر: الهوية الثابتة للإيصال هي وحدة سير العمل، ثم يحل المدقق كل إيصال ويتحقق منه على حدة.

لا يستطيع المنطق المعقول لكل خيار أن يجعلهما متطابقين. الجذر السداسي العشري لا يحمل وصف أوراقه. وإذا انتقل إلى مدقق أو نظام دفع أو قرار صلاحيات بلا ملف تعريف، فلن يعرف المستلم أي كائن وافق عليه.

الشيفرة العاملة تكشف مجموعتي توافق

في مستودع عام مثبّت عند الالتزام f3aacbb5cf7d00977fd107afc34fc24b08c4f569، تحسب وظيفة Python الأوراق من معرفات الإيصالات، ويهشّم Rust بايتات كل معرف، ويستخدم TypeScript ترميز UTF-8 للمعرف. الأدوات الثلاث تتفق مع المراجعة 04.

أما JavaScript العامل في الصفحة فيستخرج بصمة الخرج ويكوّن seq:hash. الصفحة منسجمة داخليًا مع شرحها؛ لذلك تعيد جذرها. الانقسام ليس بين شيفرة صحيحة ووثيقة خيالية، بل بين سطحين عامين يعملان ضمن مجموعتي توافق مختلفتين.

أولوية الشيفرة العاملة، في تصور Lu Heng، لا تعني أن التطبيق المنشور يحصل على سلطة معيارية تلقائية. معناها أن الواقع يُقاس بما يُنفذ ويُعتمد. وبالمثل، لا تغيّر مسودة جديدة الإيصالات التاريخية بمجرد نشرها. يلزم تقارب الوثيقة والمتجهات والمكتبات والسطح المنشور.

ينبغي أن تكون المواصفة الأولية المشتركة صغيرة، لكن لا يجوز حذف قاعدة لازمة للتحقق المحلي. تعريف الورقة جزء من الحد الأدنى. إذا اضطر المدقق إلى سؤال مشغل الخدمة عن معنى الجذر، فقد بقيت السلطة مركزية رغم استخدام التشفير.

نتيجة 43/43 لا تشمل سؤالًا لم يُطرح

يفيد المستودع بأن سبعة مشغلات لغوية اجتازت 43 اختبارًا من 43. تسرد وثيقة التنفيذ نطاق تلك الاختبارات: حقول الإيصال، UUID، الوقت، Base64 وUTF-8 الصارمان، التزامات الخرج، طبقات المنشأ، ملف المنتج، المراسي الاختيارية، ودورات الإصدار والتحقق.

لا تذكر الوثيقة سير العمل. ويعرّف فهرس المتجهات نفسه بأنه خاص بالمراجعة -03. لا يوجد متجه باسم يشير إلى workflow أو Merkle أو تسلسل خطوات أو تكرار عقدة فردية.

يمكن إذن للغات السبع أن تنجح تمامًا من دون بناء جذر سير عمل واحد. النتيجة صحيحة ضمن أسئلتها؛ استخدامها كدليل على وظيفة جديدة هو الخطأ.

ينبغي لمتجه المراجعة 04 أن يثبت المعرفات الخمسة، ومدخل كل ورقة، وملخصها، والمستويات الوسيطة، وتكرار الورقة الخامسة، والجذر النهائي. ثم يجب أن تمر به الصفحة الفعلية وواجهة API وكل لغة مدعومة.

ست طبقات لا تختصرها كلمة «موثّق»

سلامة كل خطوة تعني تطابق البايتات مع التزامها. مطابقة البيان تعني أن بصمة نقطة التحقق هي البصمة المعروضة. دلالة الورقة تعني أن المدقق اختار الحقل المحدد في بنية مسماة. توافق الجذر يعني أن تطبيقًا آخر للبنية نفسها وصل إلى النتيجة ذاتها. الشهادة الخارجية تعني أن طرفًا آخر سجل الالتزام. أما الأثر الخارجي فيعني أن فعل الأداة أحدث النتيجة الواقعية المطلوبة.

أثبت المثال العام الطبقتين الأوليين واتساق بنيته المحلية. المرساة تضيف شاهدًا على قيمة مختارة، لكنها لا تحسم نزاع الدلالة.

ولا ترفع الشجرة منزلة المنشأ. خطوة أبلغ عنها وكيل خارجي تظل بلاغًا. ما رآه وسيط لا يصبح حقيقة خارج نطاقه. استعلام سعر لا يصبح صفقة منفذة.

لهذا يجب أن تكمل الواجهة الجملة: بايتات متحققة، خطوة متحققة، جذر متوافق مع البنية المحددة، مرساة منشورة، أو أثر خارجي مؤكد. اللون الأخضر وحده ينقل مسؤولية التفسير إلى المستخدم التالي.

جواز سفر للجذر

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

وينبغي لقرار القبول أن يسجل نسخة السياسة وصاحب القرار. الغرض هو الحفاظ على الإجابة: من قبل أي شجرة وبأي قاعدة؟

إذا انتقلت الخدمة من seq:receipt_hash إلى receipt_id، فلا تعيد حساب التاريخ بصمت. يجب حفظ الجذر القديم ونشر التزام لاحق ذي إصدار، وحساب الجذرين بوضوح أثناء الانتقال. الاعتماد الحقيقي يحدث عندما تنتقل التطبيقات والمستخدمون، لا عندما تعيد وثيقة جديدة تسمية الماضي.

المصادر والحدود

جُمّدت الملاحظة في 30 سبتمبر 2026 بتوقيت شنغهاي. وهي تثبت فرقًا قابلًا للإعادة بين المراجعة 04 والتزام عام ثابت والصفحة العامة وقت الرصد. لا تثبت احتيالًا أو ضعفًا في SHA-256 أو اختراقًا أو فشل أثر خارجي أو اعتمادًا واسعًا أو تأييدًا من IETF. اقتصر فحص الشيفرة على أدوات سير العمل في Python وRust وTypeScript. قد تتغير المسودة والخدمة.