إنتقل إلى المحتوى الرئيسي

وضع RIPER-5 المتقدم لتقييد الوكيل في Cursor

Cursor RIPER-5 Mode

RIPER-5 هو إطار عمل للقيود أنشأته المجتمع، وقد ثبت أنه يقلل بشكل كبير من هلوسات الذكاء الاصطناعي والتعديلات غير المصرح بها على الكود. صُمم في الأصل لـ Claude 3.7، ويعمل بشكل استثنائي مع وضع الوكيل في Cursor. يشرح هذا الدليل المراحل الخمس وكيفية تنفيذها.

ما هو RIPER-5؟​

RIPER-5 يرمز إلى:

المرحلةالاسمالغرض
RResearch (بحث)جمع المعلومات دون إجراء تغييرات
IIdentify (تحديد)تحديد المشكلة أو المتطلب بدقة
PPlan (تخطيط)إنشاء خطة مفصلة ومعتمدة
EExecute (تنفيذ)تنفيذ الخطة المعتمدة فقط
RReview (مراجعة)التحقق واختبار التنفيذ

المراحل الخمس بالتفصيل​

المرحلة 1: بحث (R)​

القاعدة: للقراءة فقط. لا يُسمح بتعديل الملفات.

الإجراءات:

  • قراءة الملفات ذات الصلة
  • البحث في قاعدة الكود باستخدام Grep
  • تحليل الأنماط الموجودة
  • فهم التبعيات

الناتج: ملخص بحث مع النتائج

## اكتمال مرحلة البحث

### الملفات المحللة
- `src/auth/login.ts` - تدفق المصادقة الحالي
- `src/middleware/auth.ts` - التحقق من JWT
- `tests/auth.test.ts` - الاختبارات الموجودة

### النتائج الرئيسية
1. المصادقة تستخدم JWT مع انتهاء صلاحية 15 دقيقة
2. لا يوجد آلية لرمز التحديث
3. إعادة تعيين كلمة المرور غير منفذة
4. الاختبارات تغطي تسجيل الدخول وليس الحالات الحدية

### التبعيات
- jsonwebtoken: ^9.0.0
- bcrypt: ^5.1.0

المرحلة 2: تحديد (I)​

القاعدة: تحديد بيان المشكلة بدقة.

الإجراءات:

  • صياغة المشكلة بوضوح
  • تحديد معايير القبول
  • تحديد القيود
  • تدوين المخاطر المحتملة

الناتج: وثيقة تحديد المشكلة

## تحديد المشكلة

### بيان المشكلة
يتم تسجيل خروج المستخدمين بعد 15 دقيقة ويجب عليهم إعادة المصادقة.
هذا يخلق تجربة مستخدم سيئة للجلسات طويلة المدى.

### السبب الجذري
تنتهي صلاحية رموز JWT بعد 15 دقيقة بدون آلية تحديث.

### معايير القبول
- [ ] يبقى المستخدمون مسجلين الدخول لمدة 7 أيام
- [ ] تدوير رموز التحديث عند كل استخدام
- [ ] إبطال رموز التحديث القديمة
- [ ] يمكن للمستخدمين إلغاء جميع الجلسات

### القيود
- يجب الحفاظ على التوافق مع الإصدارات السابقة
- لا تغييرات كسرية على واجهة برمجة التطبيقات الموجودة
- يجب أن يعمل مع برنامج JWT الوسيط الموجود

### المخاطر
- سرقة الرمز إذا تم اختراق رموز التحديث
- تخزين قاعدة البيانات لتتبع الرموز

المرحلة 3: تخطيط (P)​

القاعدة: إنشاء خطة مفصلة خطوة بخطوة.

الإجراءات:

  • سرد جميع الملفات المراد تعديلها
  • تحديد التغييرات الدقيقة لكل ملف
  • تحديد استراتيجية الاختبار
  • تخطيط إجراء التراجع

الناتج: خطة تنفيذ مفصلة

## خطة التنفيذ

### الملفات المراد تعديلها

#### 1. `src/models/refresh-token.ts` (جديد)
```typescript
// مخطط لرموز التحديث
// الحقول: id, userId, token, createdAt, expiresAt, revoked

2. src/services/auth.ts (تعديل)​

  • إضافة دالة createRefreshToken()
  • إضافة دالة rotateRefreshToken()
  • إضافة دالة revokeAllUserTokens()

3. src/routes/auth.ts (تعديل)​

  • إضافة نقطة نهاية POST /refresh
  • إضافة نقطة نهاية POST /revoke

4. src/middleware/auth.ts (تعديل)​

  • تحديث التحقق من JWT لدعم جلسات أطول

خطة الاختبار​

  1. اختبارات وحدة لتدوير الرموز
  2. اختبارات تكامل لتدفق التحديث
  3. اختبارات أمان لإلغاء الرموز

خطة التراجع​

  1. إزالة نموذج رمز التحديث
  2. التراجع عن تغييرات خدمة المصادقة
  3. إزالة نقاط النهاية الجديدة

### المرحلة 4: تنفيذ (E)

**القاعدة**: تنفيذ المخطط فقط.

**الإجراءات**:
- إجراء التغييرات المخططة
- اتباع الخطة بالضبط
- الإبلاغ عن التقدم بعد كل ملف
- التوقف إذا احتاجت الخطة لمراجعة

**الناتج**: تنفيذ مع تتبع التقدم

```markdown
## مرحلة التنفيذ

### التقدم
- [x] تم إنشاء `src/models/refresh-token.ts`
- [x] تم تعديل `src/services/auth.ts`
- [ ] تعديل `src/routes/auth.ts` (قيد التنفيذ)
- [ ] تحديث `src/middleware/auth.ts`

### التغييرات المجراة
1. إضافة نموذج RefreshToken مع الحقول
2. تنفيذ منطق تدوير الرموز
3. إضافة دعم الإلغاء

### التالي
- إضافة نقطة نهاية التحديث
- تحديث البرنامج الوسيط

المرحلة 5: مراجعة (R)​

القاعدة: التحقق من أن كل شيء يعمل كما هو مخطط.

الإجراءات:

  • تشغيل جميع الاختبارات
  • التحقق من الانحدارات
  • التحقق من معايير القبول
  • توثيق أي انحرافات

الناتج: تقرير المراجعة

## مرحلة المراجعة

### الاختبارات
- [x] اجتياز اختبارات الوحدة (15/15)
- [x] اجتياز اختبارات التكامل (8/8)
- [x] اجتياز اختبارات الأمان (5/5)

### معايير القبول
- [x] يبقى المستخدمون مسجلين الدخول لمدة 7 أيام
- [x] تدوير رموز التحديث عند كل استخدام
- [x] إبطال رموز التحديث القديمة
- [x] يمكن للمستخدمين إلغاء جميع الجلسات

### الانحدارات
- لم يتم الكشف عن أي انحدار

### الانحرافات عن الخطة
- إضافة مهمة cron لتنظيف الرموز (ليست في الخطة الأصلية)
- السبب: منع تضخم قاعدة البيانات من الرموز المنتهية الصلاحية

إعداد RIPER-5 في Cursor​

الخطوة 1: إنشاء ملف القواعد​

أنشئ .cursor/rules/riper5-mode.mdc:

---
description: 'وضع القيود المتقدم RIPER-5'
globs: ['**/*']
alwaysApply: true
---

# وضع RIPER-5

يجب عليك اتباع سير عمل RIPER-5 لجميع المهام.

## تسلسل المراحل
1. **بحث** - القراءة والتحليل فقط
2. **تحديد** - تعريف المشكلة
3. **تخطيط** - إنشاء خطة مفصلة
4. **تنفيذ** - تنفيذ الخطة فقط
5. **مراجعة** - التحقق والاختبار

## قواعد المراحل

### مرحلة البحث
- استخدام أدوات Read و Grep و Search فقط
- لا تعديل للملفات
- لا توليد للكود
- تقديم النتائج بتنسيق منظم

### مرحلة التحديد
- صياغة المشكلة بوضوح
- تحديد معايير القبول
- سرد القيود
- تحديد المخاطر

### مرحلة التخطيط
- سرد جميع الملفات المراد تعديلها
- عرض التغييرات الدقيقة لكل ملف
- تضمين استراتيجية الاختبار
- تضمين خطة التراجع
- انتظار موافقة المستخدم

### مرحلة التنفيذ
- تنفيذ التغييرات المخططة فقط
- الإبلاغ بعد كل ملف
- طلب التوضيح إذا واجهت صعوبة
- لا تعديلات غير مخططة

### مرحلة المراجعة
- تشغيل جميع الاختبارات
- التحقق من معايير القبول
- التحقق من الانحدارات
- توثيق الانحرافات

## حاسم
- لا تتخطى المراحل أبدًا
- لا تعدل الملفات في مرحلة البحث
- لا تضف تغييرات غير مخططة في مرحلة التنفيذ
- احصل دائمًا على الموافقة قبل مرحلة التنفيذ

الخطوة 2: الإضافة إلى موجه النظام​

في إعدادات Cursor:

## سير عمل RIPER-5

لكل مهمة، يجب عليك اتباع هذه المراحل الخمس:

1. **بحث**: القراءة والتحليل دون تغييرات
2. **تحديد**: تعريف المشكلة بدقة
3. **تخطيط**: إنشاء خطة تنفيذ مفصلة
4. **تنفيذ**: تنفيذ الخطة المعتمدة فقط
5. **مراجعة**: التحقق من أن كل شيء يعمل

لا يمكنك الانتقال إلى المرحلة التالية دون إكمال المرحلة الحالية.
لا يمكنك تعديل الملفات خلال مراحل البحث أو التحديد.
لا يمكنك إضافة تغييرات غير مخططة خلال مرحلة التنفيذ.

الخطوة 3: التدرب على مهمة بسيطة​

ابدأ بمهمة صغيرة للتعرف على الوضع:

[مهمة] أضف دالة مساعدة لتنسيق التواريخ.

اتبع RIPER-5:
1. ابحث في معالجة التواريخ الموجودة
2. حدد ما هو مطلوب
3. خطط للتنفيذ
4. نفذ بعد موافقتي
5. راجع النتيجة

متقدم: RIPER-5 مع نقاط التحقق​

تكامل Git​

# قبل البدء (مرحلة البحث)
git checkout -b feature/riper5-task
git commit -m "checkpoint: before RIPER-5 implementation"

# بعد مرحلة البحث
git add research-notes.md
git commit -m "riper5: research complete"

# بعد مرحلة التخطيط (قبل الموافقة)
git add plan.md
git commit -m "riper5: plan created, awaiting approval"

# بعد مرحلة التنفيذ
git add -A
git commit -m "riper5: implementation complete"

# بعد مرحلة المراجعة
git commit -m "riper5: review passed, tests green"

قياس الفعالية​

تتبع هذه المقاييس:

المقياسقبل RIPER-5بعد RIPER-5
التغييرات غير المصرح بهامرتفعتقريبًا صفر
معدل الموافقة على الخططغير متاح>90%
معدل اجتياز الاختبارات بعد التغييرات60%95%
تكرار التراجعمرتفعمنخفض
رضا المستخدممتباينمرتفع

التحديات الشائعة​

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

مرجع سريع​

[بداية RIPER-5]

المرحلة 1/5: بحث
[الوكيل يقرأ ويحلل]

المرحلة 2/5: تحديد
[الوكيل يحدد المشكلة]

المرحلة 3/5: تخطيط
[الوكيل ينشئ الخطة]
[المستخدم: اعتماد أو تعديل]

المرحلة 4/5: تنفيذ
[الوكيل ينفذ]

المرحلة 5/5: مراجعة
[الوكيل يتحقق]

[انتهاء RIPER-5]

موارد ذات صلة​