# ‎/lagune-prove: إثبات مفهوم للدفاع فقط

> حوّل كل ملاحظة مكتشفة إلى إثبات مفهوم (PoC) قابل للتشغيل، للدفاع فقط، مع نشرة أمنية من أجل الإفصاح المسؤول.

Canonical: https://lagune.ai/ar-AE/docs/commands/prove
اللغة: ar-AE
الأصل: https://lagune.ai/docs/commands/prove
آخر تحديث: 2026-11-09

🧪 حوّل كل ملاحظة مكتشفة إلى دليل قابل للتشغيل، للدفاع فقط، من أجل الإفصاح المسؤول.

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

**نصيحة**

تبقى اختبارات **Lagune** معزولة تحت `.lagune/`، بعيدًا عن مجموعة اختباراتك.

## طريقة الاستخدام

**كل الملاحظات**

```prompt
/lagune-prove
```

**ملاحظة محددة بالاسم**

اطّلع على أسماء الملاحظات المتتبَّعة بالفعل:

```prompt
npx lagune read list --findings

# Findings
#   ...
#   • SQL injection في البحث عن المستخدم
#   ...
```

```prompt
# ثم أثبت إحداها
/lagune-prove SQL injection في البحث عن المستخدم
```

## آلية العمل

يقرأ الكود المصدري الذي تشير إليه كل ملاحظة، ويكتب مجلدًا لكل ملاحظة مُثبتة تحت `.lagune/proofs/`، يحتوي على ملفين بالضبط:

| الملف                         | ما هو                                                                                                                           |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `report.test.mjs` (أو `.cjs`) | الاختبار. يعمل على Poku إن كان مشروعك يستخدمه بالفعل، وإلا فعلى مشغّل الاختبارات الأصلي في Node.js، فلا يحتاج إلى تثبيت أي شيء. |
| `report.md`                   | نشرة أمنية مكتفية بذاتها: الخطورة، والأثر، وطريقة إعادة إنتاج المشكلة، وأمر التشغيل، ويمكن قراءتها وحدها.                       |

الإثباتات مكتوبة دائمًا بلغة JavaScript، فتبقى قابلة للنقل أيًا كانت لغة مشروعك. ويربط فهرس `README.md` كل الإثباتات ويوفّر أمرًا واحدًا لتشغيلها كلها.

**نصيحة**

- إنه **اختياري ومستقل**: ليس من المراحل الخمس، ولا جزءًا من سلسلة التتبع.
- لا يكتب إلا داخل `.lagune/proofs/` ولا يمسّ أبدًا مُخرَجات المراحل أو الكود، الذي يقرؤه فقط.
- الملاحظة التي لا يعيد اختبارها إنتاج المشكلة لا تحصل على إثبات، ويخبرك بأن تشغّل [`/lagune-detect`](https://lagune.ai/ar-AE/docs/commands/detect) على ذلك الموضع لمواءمته مع الواقع الحالي.
- تشغيله مجددًا يوائم الإثباتات مع الواقع الحالي: يُحذف مجلد الملاحظة التي زالت أو لم تعد تُعاد إنتاجها.

**ملاحظة**

**لا يعمل إلا عندما تستدعيه:** لا يبدؤه الوكيل من تلقاء نفسه أبدًا.

**يبني على detect**

يقرأ prove خريطة detect الناتجة عن [`/lagune-detect`](https://lagune.ai/ar-AE/docs/commands/detect)، لذلك شغّل detect أولًا.

## للدفاع فقط، وبتصريح

قبل توليد أي شيء، يتأكد من أنك مصرّح لك باختبار الهدف، ويرفض أي طلب لأداة استغلال عاملة أو payload هجومي أو تهرّب من الاكتشاف. يُظهر الإثبات السلوك الآمن، ولا يُخرج أبدًا مدخلًا هجوميًا.

## من الإثبات إلى الإفصاح

ملفا كل ملاحظة مُثبتة مكانهما معًا في **GitHub Gist خاص** للإبلاغ عن الثغرة. فهما دليل على مشكلة قائمة لم يُفصح عنها، لذلك يُبقيهما ملف `.gitignore` داخل `.lagune/proofs/` خارج كل commit: شاركهما عبر ذلك الـ Gist فقط حتى يحلّ المشرفون المشكلة.

ويبقى إغلاق الملاحظة في سلسلة **Lagune** مهمة [`/lagune-harden`](https://lagune.ai/ar-AE/docs/commands/harden) و [`/lagune-verify`](https://lagune.ai/ar-AE/docs/commands/verify): ينتج prove الأدلة، ولا يُغلق شيئًا.

## الأسئلة الشائعة

### هل يولّد Lagune أدوات استغلال؟

لا. يكتب ‎/lagune-prove أدلة للدفاع فقط: اختبارًا يتحقق من المسار الآمن، فيفشل ما دامت المشكلة قائمة وينجح بعد إصلاح الكود، إضافة إلى نشرة أمنية من أجل الإفصاح المسؤول.

### ماذا ينتج prove؟

ملفين لكل ملاحظة: اختبارًا (report.test.mjs أو ‎.cjs) ونشرة أمنية (report.md).

### كيف أفصح بمسؤولية عن خلل وجده Lagune؟

يكتب prove نشرة أمنية مكتفية بذاتها يمكنك مشاركتها عبر قناة خاصة مثل GitHub Gist خاص، وفق مبادئ الإفصاح المسؤول.
