⚖️ أثبت أن كل إصلاح مطبّق يصمد، بقراءة الكود ومقابلته بما سجّلته مرحلة harden، ثم أغلق نهائيًا ما يصمد منها.
طريقة الاستخدام
- تحقق من كل شيء
- حدّد المسارات
- حسب الأولوية
/lagune-verify
/lagune-verify src/routes/upload.ts
/lagune-verify Critical و High
آلية العمل
تقرأ الكود في كل موضع سجّلته مرحلة harden وتتأكد من أنه يطابق الادعاء فعلًا. والإثبات هو تلك المقابلة، الكود مقابل السجل. ويحصل كل ضابط على واحد من ثلاثة أحكام:
| الحكم | المعنى |
|---|---|
| ✅ Risk closed | يفعل الكود بالضبط ما يدّعيه السجل. |
| ❌ Risk not closed | ما زال الضابط مفتوحًا. وتعيدك verify إلى harden. |
| ❓ Cannot tell from the code | الدليل غير ظاهر في الكود وحده. |
ثم يُخرَج الخطر الذي ثبت إغلاقه من السلسلة، بعد تأكيدك. على سبيل المثال:
- رفع الملفات (الحكم: ✅ Risk closed)
- كيف أُثبت: قُرئ الـ handler الخاص بالرفع، وتبيّن أنه يكتشف النوع الحقيقي للملف من محتواه، ويفرض حدًا للحجم، ويرفض أي شيء آخر، تمامًا كما يدّعي السجل.
- الدليل: الدالة
handleUpload، التي تكتشف النوع الحقيقي للملف من محتواه.
وإن لم يُغلق الخطر، تقول verify ذلك بوضوح وتعيدك إلى /lagune-harden، لأن الإصلاح ما زال مفتوحًا.
- تبني بالكامل على سجل التحصين.
- لا تقرأ الكود إلا للحكم عليه، ولا تُضعف ضابطًا أبدًا ولا تعيد كتابة الكود ليجتاز الحكم.
- تشغيلها مجددًا يوائم الأحكام مع الواقع الحالي: تختفي الأحكام القديمة، ويُنبَّه مجددًا إلى الخطر الذي لم يعد مغلقًا.
- حين يثبت إغلاق خطر، تسأل مرة واحدة، ثم تزيل تلك الملاحظة من السلسلة كلها (detect و plan و harden والتتبع).
- لا تكتب تقريرًا خاصًا بها: يبقى كل حكم في كتلة ضابطه داخل
.lagune/memory/harden.md، حيث تقرؤه مرحلة harden في التشغيل التالي.
تبني مرحلة verify على /lagune-harden.
الدورة تُغلق
حين يُخرَج كل ما هو ضمن النطاق من السلسلة، تستقر الدورة. ولا تُفتح مجددًا إلا عند تغيّر الكود. الأمان قابل للإغلاق، لذلك للمسار حالة نهائية، لا حلقة لا تنتهي.
الأسئلة الشائعة
يقرأ /lagune-verify الكود ويقابله بما سجّلته مرحلة harden، ويعيد واحدًا من ثلاثة أحكام: Risk closed أو Risk not closed أو Cannot tell from the code.
حين تُثبت verify إغلاق خطر، تُخرَج الملاحظة: تُزال من السلسلة كلها، بعد تأكيدك، فلا يُعاد معالجتها.
نعم. منهجية SDH قابلة للإغلاق: الملاحظة التي ثبت إغلاقها تُخرَج من السلسلة، لذلك للمسار حالة نهائية، لا حلقة لا تنتهي.
