Claude Code: نظام الذاكرة
آخر تحديث: 2026-08-31
نظام الذاكرة يضمن أن Claude Code لا يبدأ من الصفر كل مرة — فهو يتذكر تفضيلاتك واتفاقيات مشروعك والقرارات السابقة.
💡 نصيحة: ذاكرة Claude Code ثلاث طبقات: جلسة (المحادثة الحالية)، مشروع (CLAUDE.md)، وشخصية (التفضيلات العامة). الذاكرة بين الجلسات تعتمد بشكل أساسي على CLAUDE.md.
📋 المتطلبات السابقة: الفصل 14 - نظام الإضافات
1. ما ستتعلمه
- بنية الذاكرة ثلاثية الطبقات
- آليات ذاكرة الجلسة
- أفضل ممارسات ذاكرة المشروع (CLAUDE.md)
- تهيئة الذاكرة الشخصية
- استراتيجيات إدارة الذاكرة
2. نموذج الذاكرة ثلاثية الطبقات
| الطبقة | الاستمرارية | النطاق | موقع التخزين |
|---|---|---|---|
| الذاكرة الشخصية | دائمة | جميع المشاريع | ~/.claude/CLAUDE.md |
| ذاكرة المشروع | دائمة | المشروع الحالي | project/CLAUDE.md |
| ذاكرة الجلسة | مؤقتة | الجلسة الحالية | الذاكرة (غير محفوظة) |
(1) أولوية الذاكرة
TEXT
📖 للعرض فقط
ذاكرة المشروع > الذاكرة الشخصية > ذاكرة الجلسة
عند تعارض CLAUDE.md الخاص بالمشروع مع العام، يتفوق المشروع.
▶ مثال 1: تعاون الطبقات الثلاث للذاكرة
TEXT
📖 للعرض فقط
# الذاكرة العامة (~/.claude/CLAUDE.md)
"أفضّل الوضع الصارم لـ TypeScript، الدوال أقل من 20 سطراً"
# ذاكرة المشروع (project/CLAUDE.md)
"هذا المشروع يستخدم JavaScript (وليس TypeScript)، الدوال حتى 50 سطراً"
# النتيجة: Claude Code يُولّد كود JavaScript، دوال أقل من 50 سطراً
# ذاكرة المشروع تتجاوز الذاكرة الشخصية
3. ذاكرة الجلسة
(1) إدارة سجل المحادثات
| العملية | الأمر | الوصف |
|---|---|---|
| عرض السجل | /history |
عرض سجل محادثة الجلسة الحالية |
| ضغط السجل | /compact |
ضغط المحادثة لتقليل Tokens |
| مسح السجل | /clear |
مسح المحادثة، البدء من جديد |
| استئناف الجلسة | claude --resume |
استئناف آخر جلسة |
(2) ميزات الذاكرة داخل الجلسة
TEXT
📖 للعرض فقط
# Claude Code يتذكر المحادثة السابقة خلال الجلسة
> أنشئ UserService
[تم الإنشاء]
> أضف وظيفة إعادة تعيين كلمة المرور إليه
[Claude Code يتذكر أين UserService، يعدّل مباشرة]
> أضف التحقق من البريد الإلكتروني أيضاً
[لا يزال يتذكر سياق UserService]
(3) قيود ذاكرة الجلسة
TEXT
📖 للعرض فقط
# بعد انتهاء الجلسة، لا يُحفظ سجل المحادثات
# الجلسة 1: "أفضّل أسلوب البرمجة الوظيفية"
# الجلسة 2: قد يُولّد كوداً غير وظيفي — لا يتذكر التفضيل
# الحل: اكتب التفضيلات في CLAUDE.md
4. ذاكرة المشروع (CLAUDE.md)
(1) CLAUDE.md كحامل للذاكرة
MARKDOWN
# CLAUDE.md
## اتفاقيات المشروع (ذاكرة مستمرة)
- استخدام الوضع الصارم لـ TypeScript
- تنسيق استجابة API: { code, data, message }
- الأخطاء تستخدم صنف AppError
- إطار الاختبار: Vitest
## العمل المنجز (ذاكرة التقدم)
- ✅ وحدة مصادقة المستخدم (JWT)
- ✅ نظام صلاحيات الأدوار (RBAC)
- 🔄 وحدة إدارة الطلبات (قيد التنفيذ)
- ❌ تكامل الدفع (لم يبدأ)
## سجلات القرارات التقنية (ذاكرة القرارات)
- 2026-08-15: اختيار ذاكرة التخزين المؤقت Redis بدلاً من الذاكرة المدمجة (حاجة لدعم العناقيد)
- 2026-08-20: استخدام Prisma بدلاً من TypeORM (أمان أنواع أفضل)
- 2026-08-25: المبالغ تستخدم أعداداً صحيحة بالسنت (تجنب أخطاء الفاصلة العائمة)
▶ مثال 2: اجعل Claude Code يتذكر القرارات
TEXT
📖 للعرض فقط
> تذكر: وحدة الدفع تستخدم Stripe SDK، وليس استدعاءات REST API المباشرة
Claude Code:
→ تحديث CLAUDE.md...
→ أُضيف: "تكامل الدفع يستخدم Stripe SDK (وليس استدعاءات REST المباشرة)"
# في الجلسات اللاحقة:
> نفّذ وظيفة استرداد الدفع
Claude Code:
→ [القراءة من CLAUDE.md] استخدام Stripe SDK
→ إنشاء payment.service.ts باستخدام Stripe SDK ✅
5. الذاكرة الشخصية
(1) تهيئة التفضيلات العامة
MARKDOWN
<!-- ~/.claude/CLAUDE.md -->
## تفضيلات البرمجة
- الوضع الصارم لـ TypeScript
- تفضيل const، تجنب let و var
- الدوال لا تتجاوز 30 سطراً
- إضافة تعليقات JSDoc
- استخدام ES Module
## تفضيلات الاختبار
- أسلوب describe/it (وليس test())
- تسمية الاختبار: should + فعل + شرط
- محاكاة التبعيات الخارجية، وليس الوحدات الداخلية
## تفضيلات Git
- تنسيق الالتزام: conventional commits
- كل نقطة ميزة التزام منفصل
## ما لا يعجبني
- ❌ لا تستخدم any كنوع
- ❌ لا تستخدم console.log للتنقيح
- ❌ لا تتجاهل أخطاء TypeScript
6. استراتيجية إدارة الذاكرة
(1) قائمة صيانة الذاكرة
| التكرار | العملية | الوصف |
|---|---|---|
| كل مرة | اكتب القرارات المهمة في CLAUDE.md | الخيارات التقنية، قرارات البنية |
| أسبوعياً | حدّث ذاكرة التقدم | مكتمل/قيد التنفيذ/لم يبدأ |
| شهرياً | نظّف الذاكرة القديمة | أزل الاتفاقيات التي لم تعد سارية |
| عند تبديل المشروع | تحقّق من CLAUDE.md الخاص بالمشروع | تأكد من توافق الاتفاقيات مع الواقع |
❓ أسئلة شائعة
س هل يتذكر Claude Code ما أقوله تلقائياً؟
ج فقط ضمن الجلسة الحالية. بين الجلسات يتطلب الكتابة في CLAUDE.md. يمكنك قول "تذكر هذا التفضيل" وسيحاول Claude Code تحديث CLAUDE.md.
س هل CLAUDE.md الطويل يؤثر على الأداء؟
ج نعم. CLAUDE.md يُحمّل كل جلسة؛ أبقِه أقل من 150 سطراً. انقل المحتوى غير ذي الصلة إلى مستندات أخرى.
س كيف يتشارك عدة مطورين CLAUDE.md الخاص بالمشروع؟
ج أودع CLAUDE.md الخاص بالمشروع في git لمشاركة الفريق. التفضيلات الشخصية توضع في CLAUDE.md العام، ولا تُودع.
س هل يمكن أن تُفقد الذاكرة؟
ج ذاكرة الجلسة تختفي عند انتهائها. CLAUDE.md يستمر في نظام الملفات ما لم يُحذف.
س كيف أحدّد الحد الفاصل بين الذاكرة الشخصية وذاكرة المشروع؟
ج الذاكرة الشخصية: أسلوب البرمجة وتفضيلات الأدوات (عامة). ذاكرة المشروع: الحزمة التقنية وقواعد العمل (خاصة بالمشروع).
📖 ملخص
- الذاكرة ثلاث طبقات: شخصية (تفضيلات عامة)، مشروع (CLAUDE.md)، جلسة (سجل المحادثات)
- ذاكرة الجلسة مؤقتة؛ وذاكرة المشروع/الشخصية مستمرة
- CLAUDE.md هو أهم حامل للذاكرة لاتفاقيات المشروع والقرارات التقنية
- ذاكرة المشروع > الذاكرة الشخصية > ذاكرة الجلسة
- صيانة دورية: اكتب القرارات، حدّث التقدم، نظّف المحتوى القديم
📝 تمارين
- أساسي (⭐): هيّئ CLAUDE.md العام بثلاث تفضيلات برمجية، وتحقق في مشروع جديد.
- متوسط (⭐⭐): حافظ على سجلات القرارات التقنية في CLAUDE.md الخاص بالمشروع، وقارن بين وجودها وغيابها.
- متقدم (⭐⭐⭐): صمّم استراتيجية إدارة ذاكرة تضمن عدم تعارض CLAUDE.md لخمسة أعضاء فريق وبقائهم متزامنين.