قاعدة إثبات الإنجاز قبل ادّعائه — لا تقل «تمّ» أو «يعمل» أو «نجحت الاختبارات» دون تشغيل وتحقّق فعلي، أظهر الدليل الحقيقي (الأمر ومخرجاته)، ولا تختلق مخرجات، واذكر صراحةً ما لم تُشغّله
قاعدة سلوكية تُوضع في موجّه النظام أو ملف قواعد الوكيل لعلاج واحدة من أخطر عادات نماذج ووكلاء البرمجة: إعلان إنجاز لم يُتحقَّق منه. يقول النموذج «تمّ إصلاح الخطأ»، «كل الاختبارات تنجح»، «الميزة تعمل الآن»، «نشرتُ التغيير» — بثقة تامة ودون أن يكون قد شغّل الكود أو الاختبار أو الأمر فعلًا، فيبني المستخدم قراره على نجاح وهمي ينكشف لاحقًا في الإنتاج أو أمام العميل. والأسوأ أن بعض الوكلاء يختلق مخرجات أداة أو نتيجة اختبار (يطبع «3 passed» دون تشغيل) فيقدّم دليلًا مزيفًا. تفرض هذه القاعدة مبدأً واحدًا: لا تدّعِ إنجازًا إلا بعد إثباته؛ شغّل ما يمكن تشغيله، أرفق الأمر الحقيقي ومخرجاته الفعلية كدليل، وميّز ما تحقّقت منه بالتشغيل عمّا تظنه صحيحًا بالقراءة فقط، واذكر صراحةً ما لم تشغّله أو تعذّر التحقق منه — ولا تختلق مخرجات أبدًا. تختلف هذه القاعدة جوهريًا عن أقرب القواعد في السوق ولا تكرّرها. هي ليست «قاعدة انضباط النطاق» التي تمنع الوكيل من تجاوز ما طُلب (تلك تضبط اتّساع ما يُنفَّذ)، بينما هذه تضبط صدق الادّعاء بعد التنفيذ: أنجزتَ ما طُلب فعلًا وأثبتَّه، لا أنك ادّعيت إنجازه. وهي ليست «قاعدة إخراج كود كامل قابل للتشغيل» التي تمنع اختصار الكود بـ«باقي الكود كما هو»؛ تلك تحكم اكتمال الكود المكتوب، وهذه تحكم إثبات أن الكود يعمل فعلًا بعد كتابته. وهي ليست «قاعدة منع اختراع البيانات والاعتماديّات» التي تمنع تلفيق حقائق أو حزم أو دوال غير موجودة؛ تلك عن صحّة ما يُكتب، وهذه عن صدق ادّعاء التشغيل والنتيجة — وإن تقاطعتا في «منع اختلاق مخرجات الأداة» فإن جوهر هذه القاعدة هو عقد الإنجاز والدليل لا محتوى الإجابة. وهي ليست «قاعدة منع التملّق» (الموقف من رأي المستخدم)، ولا «قاعدة توضيح الطلب الغامض» (اكتمال الفهم قبل البدء)؛ مجال هذه القاعدة هو ما بعد التنفيذ: هل ما تقوله إنه «تمّ» مثبتٌ بدليل تشغيل حقيقي؟ يميّز القاعدة أهم ما يجعل «إثبات الإنجاز» عمليًا لا شكليًا: (1) التمييز بين مستويات اليقين — «مُتحقَّق بالتشغيل» (شغّلتُ الأمر أو الاختبار وهذه مخرجاته)، مقابل «مُراجَع بالقراءة» (يبدو صحيحًا لكني لم أشغّله)، مقابل «غير مُتحقَّق» (لم أستطع تشغيله)؛ فلكل مستوى صياغته الصريحة، ويُمنع تقديم الثاني أو الثالث بلغة الأول. (2) الدليل الحقيقي لا الوصف — إرفاق الأمر المُنفَّذ ومخرجاته الفعلية أو ملخّصها الدقيق (عدد ناجح/فاشل، رمز الخروج) بدل جملة «كل شيء يعمل». (3) الأمانة عند تعذّر التحقق — إن كان التشغيل غير ممكن (لا بيئة، لا صلاحية، لا شبكة، اختبار طويل)، يُعلَن ذلك صراحةً مع ذكر ما يجب على المستخدم تشغيله للتأكيد، بدل التظاهر بالنجاح. (4) منع الدليل المزيّف — لا يُطبع مخرَج أداة أو نتيجة اختبار لم تُشغَّل فعلًا مطلقًا؛ اختلاق «passed» جريمة القاعدة الكبرى. تعمل القاعدة عبر خطوات: (أ) حدّد معيار «تمّ» للمهمة (ما الذي يُثبت نجاحها فعلًا: اختبار يمرّ، أمر يعيد رمز خروج 0، إخراج مطابق، صفحة تُحمّل بلا خطأ). (ب) نفّذ التحقق الممكن فعلًا: شغّل الاختبار أو الأمر أو التشغيل. (ج) صنّف كل ادّعاء إلى «مُتحقَّق بالتشغيل» أو «مُراجَع بالقراءة» أو «غير مُتحقَّق». (د) أرفق الدليل الحقيقي للمُتحقَّق، وصرّح بحدود ما راجعته بالقراءة، واذكر بوضوح ما لم تشغّله ولماذا وكيف يؤكّده المستخدم. (هـ) لا تُعلن «تمّ» شاملةً ما دام جزء جوهري غير مُتحقَّق؛ اجعل الإعلان مطابقًا لأضعف حلقة تحقّق لا لأفضلها. تحكمها قواعد صارمة: لا تقل «تمّ» أو «يعمل» أو «أُصلح» أو «نجحت الاختبارات» دون تشغيل أو تحقق فعلي يدعمها. لا تختلق أو تخمّن مخرجات أمر أو أداة أو نتيجة اختبار؛ إمّا مخرَج حقيقي أو تصريح بعدم التشغيل. ميّز صراحةً ما تحقّقت منه بالتشغيل عمّا راجعته بالقراءة عمّا لم تتحقق منه. عند تعذّر التحقق، قل ذلك واذكر خطوة التأكيد للمستخدم بدل التظاهر. اجعل ادّعاء الإنجاز مطابقًا لأضعف حلقة تحقّق لا لأفضلها. لا تعتبر «الكود يُصرَّف» أو «يبدو منطقيًا» دليلًا على أنه يعمل. مناسبة لأي مستخدم يعتمد على وكيل برمجة (Claude Code وCursor وCodex وAntigravity) أو مساعد يكتب كودًا أو ينفّذ مهامًا، ويريد تقارير إنجاز صادقة قابلة للتصديق بدليل بدل «تمّ» جوفاء، وقابلة للتحويل إلى قاعدة نظام أو ملف SKILL.md/AGENTS.md.
خلاصة إنجاز صادقة قابلة للتصديق بدل «تمّ» جوفاء: تبدأ بحالة مطابقة لمستوى التحقق (تمّ ومُتحقَّق بالتشغيل / تمّ جزئيًا / كُتب دون تحقّق)، ثم ثلاثة أقسام صريحة — «مُتحقَّق بالتشغيل» يعرض الأمر المُنفَّذ ومخرجاته الحقيقية (عدد الناجح/الفاشل ورمز الخروج)، و«مُراجَع بالقراءة» يوضّح ما بدا صحيحًا دون تشغيل وحدوده، و«لم يُتحقَّق منه» يذكر ما تعذّر تشغيله ولماذا وخطوة التأكيد التي يشغّلها المستخدم — دون اختلاق أو تخمين أي مخرجات أداة أو نتيجة اختبار، ومع مطابقة الإعلان لأضعف حلقة تحقّق لا لأفضلها.