نظام الذاكرة (memory): اجعله يتذكرك عبر الجلسات
📚 التنقل في السلسلة: في المقال السابق [24 الإضافات (Plugins)] تعلمنا كيفية حزم الإعدادات المتفرقة في إضافة يمكن تثبيتها وإيقافها بنقرة واحدة. سنتحدث في هذا المقال عن شيء أكثر عمقًا وهو: كيفية جعل Claude يتذكرك عبر الجلسات. ليس فقط من خلال ملف CLAUDE.md الذي تكتبه بيدك، بل أيضًا من خلال "مذكراته الخاصة" التي يجمعها أثناء عمله؛ فإذا صححت له شيئًا، فسيقوم بتدوينه سرًا ليتذكره تلقائيًا عند بدء العمل في المرة القادمة.
لنبدأ بمطب يقع فيه المبتدئون بسهولة.
عند اكتشاف ميزة "جعل Claude يتذكر الأشياء" لأول مرة، قد تشعر وكأنك وجدت كنزًا، وتبدأ في تخزين كل شيء فيه: كأن تضيف رقم المنفذ الذي قمت بتكوينه اليوم، أو اسم المتغير المؤقت الذي قمت بتغييره، أو حتى تفاصيل تُستخدم لمرة واحدة مثل "استخدم 8081 هذه المرة بدلاً من 8080". والمنطق وراء ذلك غالبًا هو "كلما تذكر أكثر، أصبح أذكى".
النتيجة؟ بعد أسبوعين عند فتح المشروع مرة أخرى، سيفاجئك بذكر منفذ 8081 المهمل منذ زمن، بالإضافة إلى بعض "التفضيلات" التي نسيت أنت نفسك سبب كتابتها. لقد قام بتخزين الكثير من المعلومات غير المفيدة، في حين ضاعت الأشياء التي كان يجب حقًا تذكرها.
هنا فقط ستدرك أن: الذاكرة ليست "كلما زادت كان أفضل"، بل تعني "تذكر ما يجب تذكره بدقة، وتجاهل ما لا يجب تذكره". التذكر الخاطئ أسوأ من عدم التذكر - لأنه سيقودك بشكل مضلل وبثقة تامة باستخدام معلومات قديمة.
في المقال [18 دليل استخدام CLAUDE.md] تحدثنا بالتفصيل عن كيفية كتابة CLAUDE.md، وفي [19 إدارة السياق] كررنا أن "الذاكرة التلقائية تستهلك السياق". ولكننا لم نوضح تمامًا كيف يتكامل هذان الجزءان ليشكلان "نظام ذاكرة" متكامل، وكيف تعمل تلك المذكرات التي يكتبها Claude بنفسه. سنكمل هذا النقص اليوم.
بعد قراءة هذا المقال، ستحصل على:
- فهم واضح لقسمي الذاكرة في Claude Code: CLAUDE.md الذي تكتبه أنت مقابل "الذاكرة التلقائية" التي يكتبها هو، ومن المسؤول عن ماذا في جدول واحد.
- معرفة الملف الذي تُحفظ فيه "الذاكرة التلقائية"، وكيف يتم تحميلها في السياق، وكيف تستخدم أمر
/memoryلتدقيقها وتعديلها وحذفها. - خطوات عملية لجعله يتذكر عنصرًا، ومعرفة مكان حفظه، وكيفية تفعليه تلقائيًا في المرة القادمة.
- قائمة "ما يجب وما لا يجب تذكره" لمساعدتك في تجنب مطب "تخزين كل شيء".
- توضيح حول إمكانية استخدام الاختصار القديم
#، وما هي الطريقة الصحيحة الرسمية حاليًا.
01 افهم أولاً: الذاكرة في الواقع نظامان وليس نظامًا واحدًا
الخلاصة أولاً: نظام "الذاكرة" في Claude Code هو نظامان متوازيان، نظام تكتبه أنت ونظام يكتبه هو، وكل منهما يعمل بشكل مستقل. يعتقد الكثيرون عند ذكر "الذاكرة" أنها تقتصر على CLAUDE.md، لكن هذا في الواقع مجرد النصف الأول.
توضيح: الملاحظات اللاصقة على حافة الشاشة. يوجد عادة نوعان من الأوراق على مكتبك. النوع الأول هو "قواعد العمل" المطبوعة بشكل رسمي والمثبتة بدبوس على اللوحة، والتي تحتوي على لوائح المشروع وإجراءات الالتزام (commit)، ويلتزم بها الجميع - وهذا هو CLAUDE.md. النوع الثاني هو الملاحظة اللاصقة التي تنزعها بسرعة وتكتب عليها "الخطأ (bug) السابق كان بسبب عدم مسح الذاكرة المؤقتة" وتلصقها على حافة الشاشة لتتذكرها لاحقًا بلمحة - هذه الملاحظات التي يكتبها لنفسه هي "الذاكرة التلقائية (auto-memory)". كلتا الورقتين أمام عينيك، لكن إحداهما تمثل "القواعد التي وضعتها أنا" والأخرى "الخبرات التي دونتها أنا".
الوثائق الرسمية تفصل بشكل واضح بين هذين النظامين، وقد لخصتها في هذا الجدول المقارن - وهو أهم ما يجب تذكره في هذا المقال:
| البعد | ملف CLAUDE.md | الذاكرة التلقائية (auto-memory) |
|---|---|---|
| من يكتبها | أنت (كتابة يدوية) | Claude (كتابة ذاتية) |
| ماذا تحتوي | التعليمات والقواعد | التجارب والأنماط التي تعلمها |
| المحتوى النموذجي | معايير البرمجة، سير العمل، معمارية المشروع | أوامر البناء، رؤى التصحيح، تفضيلاتك التي اكتشفها |
| متى تُحمل | في كل جلسة، تحميل كامل | في كل جلسة، ولكن تُحمل أول 200 سطر أو 25 كيلوبايت فقط |
| النطاق | مستوى المستخدم / المشروع / المحلي | نسخة واحدة لكل مستودع git (مشتركة بين جميع الـ worktrees) |
هل لاحظت الفرق الرئيسي؟ CLAUDE.md هو "كيف تريده أن يعمل"، أما الذاكرة التلقائية فهي "كيفية العمل التي اكتشفها بنفسه". إذا صححت له أن "تشغيل الاختبارات في هذا المشروع يتطلب تشغيل Redis محليًا أولاً"، فسوف يتذكر ذلك في المرة القادمة - ولن تحتاج إلى كتابته يدويًا في أي ملف، فهو يحفظه بنفسه.
وهناك قاعدة رسمية أخرى تم التأكيد عليها مرارًا وتكرارًا، ويجب استيعابها تمامًا:
يتعامل Claude معها كسياق، وليس كتكوين إلزامي. لمنع إجراء معين، بغض النظر عما يقرره Claude، يرجى استخدام PreToolUse hook بدلاً من ذلك.
ماذا يعني هذا؟ الذاكرة (بأي نظام كانت) ليست سوى "تلميحات لينة" للتأثير على ما يريد القيام به، وليست "قيودًا صارمة" تحدد ما يمكنه القيام به. هذا يتوافق مع استنتاجات مقال [20 الأذونات (Permissions)] - لمنع إجراء بشكل قاطع، يجب الاعتماد على قواعد الأذونات أو الـ hook، وكتابة عبارة "لا تقم بـ push" في الذاكرة لن تمنعه. الذاكرة مسؤولة عن "جعله يفهمك بشكل أفضل"، وليست مسؤولة عن "حراسة أفعالك".
💡 ملخص في جملة: الذاكرة تنقسم لنظامين - CLAUDE.md تكتب فيه القواعد يدويًا، والذاكرة التلقائية يدون فيها خبراته بنفسه؛ كلا النظامين يقدمان تلميحات لينة، ولحظر إجراء ما بشكل قاطع يجب الاعتماد على الأذونات أو hook، وليس بكتابته في الذاكرة فقط.

توضح هذه الصورة مساري الذاكرة بشكل متوازٍ: على اليسار CLAUDE.md المكتوب يدويًا والذي يُحمل بالكامل في السياق (قواعد المشروع)؛ وعلى اليمين الذاكرة التلقائية التي يدونها Claude بنفسه في MEMORY.md أثناء العمل وتُقرأ منها أول 200 سطر في الجلسة التالية تلقائيًا (الملاحظات الشخصية). يتدفق كلا المسارين في النهاية إلى "نافذة السياق الخاصة بالجلسة الجديدة"، ليتذكرك بمجرد بدء العمل.
02 موقع CLAUDE.md في نظام الذاكرة
شرحنا بالتفصيل طريقة كتابة CLAUDE.md في المقال [18]، وسنكتفي هنا بإضافة دوره في "نظام الذاكرة" - فهو بمثابة "دليل العمل" الثابت الذي يجب على الجميع قراءته.
توضيح: بالعودة لمثال الورقتين بجانب الشاشة، CLAUDE.md هو الورقة المثبتة بدبوس. ليس الملاحظة اللاصقة الممزقة بسرعة، بل هو الدليل الرسمي المطبوع والمثبت بإحكام. لذا فإن له عدة ميزات تختلف تمامًا عن الذاكرة التلقائية: تكتبها أنت، وتُشارك مع الفريق عبر التحكم في الإصدارات، وتُحمل بالكامل في كل جلسة، ومحتواها عبارة عن "قواعد" وليس "تجارب".
قسمت الوثائق الرسمية CLAUDE.md إلى مستويات واضحة، بترتيب التحميل (من الأعم إلى الأخص) كالتالي:
| المستوى | الموقع | ينطبق على |
|---|---|---|
| مستوى سياسة الاستضافة | macOS: /Library/Application Support/ClaudeCode/CLAUDE.mdLinux/WSL: /etc/claude-code/CLAUDE.md | يُوزع مركزيًا من قبل تكنولوجيا المعلومات في الشركة، وعادة لا يمس المستخدم الشخصي |
| مستوى المستخدم | ~/.claude/CLAUDE.md | تفضيلاتك الشخصية في جميع مشاريعك |
| مستوى المشروع | ./CLAUDE.md أو ./.claude/CLAUDE.md | هذا المشروع، ومشارك مع الفريق (يدخل في git) |
| المستوى المحلي | ./CLAUDE.local.md | هذا المشروع، ولك أنت فقط (يدخل في .gitignore) |
هنا نجد فرقًا جوهريًا عن الذاكرة التلقائية، ويجب على المبتدئين حفظه جيدًا:
ملف CLAUDE.md يُحمل بالكامل بغض النظر عن طوله، بينما الذاكرة التلقائية لها حد أقصى. تقول الوثائق الرسمية - "يتم تحميل ملف CLAUDE.md بالكامل بغض النظر عن طوله". ولهذا نصحناك مرارًا في المقال [18] بإبقائه أقل من 200 سطر: المشكلة ليست في إمكانية التحميل، بل إنه كلما طال الملف استهلك المزيد من السياق، وأصبحت نسبة التزامه به أضعف. أما الذاكرة التلقائية فتعمل بالعكس، فلها حد أقصى صارم (سيُشرح في القسم التالي)، ولا يتم تحميل أي جزء يتجاوزه.
في الممارسة العملية، يمكن تقسيم العمل بوضوح: "إذا كانت هذه قاعدة صارمة تحددها أنت" فاكتبها في CLAUDE.md، و"إذا كان شيئًا يمكنه اكتشافه وتراكمه بنفسه" فاتركه للذاكرة التلقائية. مثال: قاعدة "استخدم pnpm فقط لإدارة التبعيات" يجب كتابتها يدويًا في CLAUDE.md؛ بينما "اختبار هذا المشروع يحتاج لتشغيل Redis" هو أمر يمكنه اكتشافه بنفسه، ويكفي تصحيحه مرة واحدة ليحفظه تلقائيًا ولست بحاجة لكتابته.
💡 ملخص في جملة: CLAUDE.md هو "دليل العمل الرسمي والمثبت" في نظام الذاكرة - تكتبه أنت، ويشاركه الفريق، ويُحمل بالكامل، ويحتوي على قواعد؛ وموقعه مختلف تمامًا عن "الذاكرة التلقائية" التي يدون فيها ملاحظاته الخاصة.
03 الذاكرة التلقائية: المذكرات التي يكتبها بنفسه
وصلنا إلى الأهم، وهو الموضوع الرئيسي المؤجل من المقال [18] - الذاكرة التلقائية (auto-memory)، المذكرات التي يكتبها Claude لنفسه أثناء عمله.
ℹ️ الذاكرة التلقائية تتطلب إصدار Claude Code v2.1.59 أو أعلى، وتكون مفعلة افتراضيًا. اكتب
claude --versionللتحقق من إصدارك؛ وإذا كان قديمًا قم بتحديثه (راجع طريقة التحديث في [02 التثبيت]).
توضيح: الزميل القديم الذي طالت فترة عملك معه. إذا عملت مع زميل لفترة من الزمن، فهناك أشياء لن تحتاج إلى تكرارها - سيحفظها في عقله: "البناء في هذا المشروع يتم عبر make build وليس npm build" "الخطأ العشوائي السابق كان بسبب إعدادات المنطقة الزمنية". وعند مواجهة أمر مشابه، سيتذكره من تلقاء نفسه. لا تحتاج إلى الشرح، فهو يتراكم لديه أثناء العمل - الذاكرة التلقائية هي قدرة Claude على "التعلم الذاتي".
ماذا يسجل بالضبط؟ القائمة التي يوفرها المستند الرسمي: أوامر البناء، رؤى تصحيح الأخطاء، ملاحظات المعمارية، تفضيلات نمط الكود، وعادات سير العمل. لاحظ تصميمًا أساسيًا هنا - هو لا يسجل كل جلسة، بل "بناءً على ما إذا كانت هذه المعلومة مفيدة في المحادثات المستقبلية، يقرر ما إذا كانت تستحق التسجيل". ولن يسجل التفاصيل التي تستخدم لمرة واحدة (وهذا ما يعالج مشكلة "تخزين كل شيء").
كيف يسجلها فعليًا؟ يتم تشغيلها بطريقتين:
الطريقة الأولى، تطلب منه ذلك صراحةً. في المحادثة يمكنك القول "استخدم دائمًا pnpm في هذا المشروع، وليس npm" أو "تذكر أن اختبار API يحتاج إلى تشغيل Redis محليًا"، وسيقوم بحفظها في الذاكرة التلقائية. بناءً على النص الرسمي:
عندما تطلب من Claude تذكر بعض المحتويات، مثل "استخدم pnpm دائمًا بدلاً من npm" أو "تذكر أن اختبار API يتطلب نسخة محلية من Redis"، يحفظها Claude في الذاكرة التلقائية.
الطريقة الثانية، يتعلم بنفسه من تصحيحاتك. لا تحتاج لقول "تذكر" صراحةً، يكفي أن تصحح له مرة واحدة - مثلاً، إذا استخدم npm test وقلت له "هذا المشروع يستخدم pnpm test" - فإنه سيقيم هذه المعلومة كمفيدة للمستقبل، ويقوم بتسجيلها بنفسه. هذا هو أفضل ما في الذاكرة التلقائية: أنت تعمل بشكل طبيعي، وتصحح له بشكل طبيعي، وهو يراكم المعلومات في الخلفية، دون الحاجة لخطوات إضافية.
كيف تعرف أنه يسجل؟ راقب إشعارات الواجهة. يوضح المستند أنه عندما ترى عبارة "Writing memory" أو "Recalled memory" تظهر في واجهة Claude Code، فهذا يعني أنه يقوم بالكتابة في مذكراته، أو القراءة منها.
💡 ملخص في جملة: الذاكرة التلقائية هي الملاحظات اللاصقة التي يكتبها Claude لنفسه - عندما تطلب منه ذلك، أو عندما يتعلم من تصحيحك، وهو يسجل فقط ما "يصلح للاستخدام المستقبلي"؛ عندما ترى إشعار "Writing/Recalled memory" في الواجهة، فهذا يعني أنه يكتب أو يقرأ من المذكرات.
04 أين يتم حفظها، وكيف يتم تحميلها في السياق
سيقوم هذا القسم بحل المشكلتين الأكثر عملية: أين يُخزن ملف المذكرات هذا بالضبط؟ وكيف يُدرج في السياق لكي "يتذكر" Claude؟ النصف الثاني من القسم يتوافق بشكل جيد مع إدارة السياق الموضحة في المقال [19].
تم تحديد موقع التخزين رسميًا - فكل مشروع له مسار ذاكرة مستقل:
~/.claude/projects/<project>/memory/
├── MEMORY.md # الفهرس المختصر، يتم تحميله في كل جلسة
├── debugging.md # ملاحظات تفصيلية متعلقة بتصحيح الأخطاء
├── api-conventions.md # قرارات تصميم API
└── ... # ملفات مواضيعية أخرى ينشئها Claude بنفسهدعنا نحلل هذه النقاط:
MEMORY.md هو المدخل والفهرس. يعمل كصفحة الـ "فهرس" في الملاحظات اللاصقة، يستخدمه Claude لتتبع "ماذا سجلت حتى الآن". سيقوم بنقل التفاصيل إلى ملفات مواضيعية مثل debugging.md أو api-conventions.md، لمنع MEMORY.md من التمدد بشكل مفرط.
اسم <project> يعتمد على مستودع git. لذلك - جميع الـ worktrees والأدلة الفرعية لنفس المستودع تشارك هذا الإصدار من الذاكرة التلقائية. يختلف هذا عن CLAUDE.md (حيث يتم تجميع CLAUDE.md بناءً على شجرة الدليل).
إنها محلية للجهاز، ولا تتزامن عبر الأجهزة. ما تم تسجيله في هذا الكمبيوتر، لن ينتقل لكمبيوتر آخر. ولا تتوقع إضافتها لـ git - بل تبقى في مجلد ~/.claude المحلي الخاص بك.
نأتي الآن لـ الآلية الأكثر أهمية للفهم - كيف يتم تحميلها في السياق، وهو ما تحدده الوثائق بصرامة:
يتم تحميل أول 200 سطر أو 25 كيلوبايت من
MEMORY.md(أيهما أقرب) في بداية كل محادثة. المحتوى الذي يتجاوز هذا الحد لا يتم تحميله في بداية الجلسة.
بكلمات أبسط، هناك ثلاثة معانٍ:
- في كل جلسة جديدة، تُقرأ تلقائيًا أول 200 سطر من
MEMORY.md(أو 25 كيلوبايت، أيهما يكتمل أولاً). هذا هو مبدأ عمل ميزة "التذكر عبر الجلسات" - فما تم تدوينه في المرة السابقة، يتم إدراجه تلقائيًا في سياق بداية الجلسة الحالية. - الأجزاء التي تتجاوز 200 سطر / 25 كيلوبايت لا يتم تحميلها في البداية. لذلك سيحافظ Claude بفعالية على اختصار
MEMORY.md، وينقل التفاصيل الدقيقة إلى ملفات المواضيع. - لا يتم تحميل ملفات المواضيع (
debugging.mdوغيرها) في البداية، بل يقرأها باستخدام أداة الملفات عند الحاجة - تمامًا كما شرحنا في المقال [18] حول "التحميل عند الطلب لملفات CLAUDE.md في الأدلة الفرعية".
وبوضع قواعد التحميل لكل من CLAUDE.md والذاكرة التلقائية معًا في مقارنة، يصبح الفرق واضحًا:
| CLAUDE.md | الذاكرة التلقائية MEMORY.md | |
|---|---|---|
| مقدار ما يتم تحميله | الكل، مهما كان طوله | أول 200 سطر / 25 كيلوبايت فقط |
| الأجزاء المتجاوزة للحد | يتم تحميلها بالكامل (لذا ننصح بالاختصار) | لا تُحمل في البداية، وتُقرأ عند الحاجة |
| من يحافظ على الاختصار | تحذفه يدويًا | Claude يقوم بتقسيمه تلقائيًا |
إذا فهمت هذا الحد الأقصى، فستعرف لماذا لا تؤدي الذاكرة إلى "تضخم" السياق - لأن الذاكرة التلقائية مزودة تلقائيًا ببوابة الـ 200 سطر، في حين أن بوابة CLAUDE.md يجب أن تتحكم بها أنت.
💡 ملخص في جملة: تُحفظ الذاكرة التلقائية في
~/.claude/projects/<project>/memory/MEMORY.md، مفصولة بحسب مستودع git ومحلية للجهاز، وتتشارك الـ worktree فيها؛ في كل بداية جلسة، تُقرأ فقط أول 200 سطر / 25 كيلوبايت، وما زاد يُقسم لملفات مواضيعية تُقرأ عند الحاجة - لذلك لها حد أقصى طبيعي، ولن تتسبب في تضخم السياق.
05 أمر /memory: المراجعة، التعديل، التشغيل/الإيقاف بحزمة واحدة
أكثر نقطة مقلقة في الذاكرة التلقائية هي - إذا كان يكتبها بنفسه، ماذا نفعل إذا أخطأ أو سجل معلومة قديمة؟ (مطب منفذ 8081 المذكور في البداية جاء من هنا.) الحل الرسمي هو أمر واحد: /memory.
توضيح: رزمة الملاحظات التي يمكن فتحها في أي وقت. المذكرات التي يكتبها ليست صندوقًا أسودًا، بل يمكنك فتحها للاطلاع في أي وقت، وإلغاء ما تريد متى شئت. /memory يمثل حركة "فتح رزمة الملاحظات".
يُنفذ هذا الأمر ثلاث مهام داخل الجلسة عند كتابته:
- يعرض قائمة بجميع ملفات الذاكرة المحملة في الجلسة الحالية - وتشمل CLAUDE.md، CLAUDE.local.md، ملفات القواعد، وكذلك الذاكرة التلقائية. إذا شككت في أنه "يتذكر شيئًا خاطئًا"، استخدم هذا أولاً للتحقق مما تم تحميله فعليًا.
- يوفر مدخلًا لفتح مجلد الذاكرة التلقائية - بنقرة واحدة تدخل إلى مجلد
memory/، وتكون جميع الملفات هناك بصيغة markdown الخالصة، يمكنك قراءتها وتعديلها وحذفها في أي وقت. إذا تذكر مسارًا خاطئًا، يمكنك ببساطة حذف ذلك السطر. - يعمل كمفتاح تبديل للذاكرة التلقائية - إذا كنت لا تريده أن يستمر في التسجيل التلقائي، يمكنك إيقاف ذلك من هنا.
إلى جانب استخدام /memory داخل الجلسة، هناك طريقتان رسميتان لـ "قفل المفتاح":
إيقاف الذاكرة التلقائية من settings.json (على مستوى المشروع، ويكون الإعداد فعالاً بشكل دائم):
{
"autoMemoryEnabled": false
}أو إيقافها مؤقتًا باستخدام متغير البيئة (بتعيين CLAUDE_CODE_DISABLE_AUTO_MEMORY=1).
من المهم أن تتبنى هذه العادة: كل فترة قصيرة، استخدم الأمر /memory لفتح وقراءة المذكرات الخاصة بمشروعك سريعًا. غالبًا ما ستجد بعض السجلات التي كان يجب حذفها مبكرًا - مثل منفذ تم تغييره، أو اتفاقية واجهة تم التخلي عنها، أو "تفضيلات" كتبتها أنت نفسك لم تعد تفهمها. القيام بذلك لن يستغرق دقيقتين، وسيحميك من استخدام المعلومات القديمة لتضليلك مستقبلاً. هذا بالتحديد هو الدرس الذي يمكن استخلاصه من مطب 8081.
💡 ملخص في جملة: يقدم الأمر
/memoryنظام الذاكرة بالكامل - يعرض الملفات المحملة، ويفتح المجلد للقراءة والتعديل والحذف، ويتحكم في تشغيل وإيقاف الذاكرة التلقائية؛ إن الفتح والمراجعة الدورية وتفريغ السجلات القديمة، هي أبسط طريقة لحل مشكلة "تذكره لأشياء خاطئة".
06 ما يجب تسجيله، وما لا يجب: لا تكرر مطب "تخزين كل شيء"
بعد الانتهاء من شرح الآليات، نصل للحكم العملي الأهم - ما الذي يستحق تسجيله، وما الذي يجب ألا تدعه يسجله. هذا القسم مليء بالخبرات المكتسبة بثمن غالٍ من الأخطاء.
الخبر الجيد هو أن الذاكرة التلقائية مضبوطة افتراضيًا لتقييد نفسها (تسجل فقط ما "سيكون مفيدًا لاحقًا"). لكن عندما تطلب منه بنشاط أن يسجل شيئًا، يجب أن تتحكم في ذلك بنفسك - إذا قلت "تذكر كذا"، فعادةً سيسجله بالفعل، وتحديد جدوى ذلك متروك لك كليًا.
إليك جدول المقارنة المباشر، الجانب الأيمن يحتوي على ما يجب تسجيله، والجانب الأيسر يحتوي على ما ستندم على تسجيله:
| ❌ لا تدعه يسجل (يُستخدم لمرة / سيتغير / حساس) | ✅ يستحق التسجيل (مستقر / متكرر الاستخدام / خاص بالمشروع) |
|---|---|
| "هذه المرة استخدم منفذ 8081 أولاً" (يُستخدم لمرة) | "أمر البناء هو make build وليس npm build" |
"تغيير هذا المتغير مؤقتًا إلى tmp" (مؤقت) | "يتطلب اختبار هذا المشروع بدء تشغيل Redis محليًا" |
| "سنعمل على هذا الإصدار هكذا الآن" (سيتغير قريبًا) | "الخطأ العشوائي في المرة السابقة كان بسبب عدم ضبط المنطقة الزمنية" (رؤى تصحيح الأخطاء) |
| كلمات مرور قواعد البيانات / مفاتيح API / الـ token (حساس!) | "توحيد التواريخ ليكون بتنسيق ISO 8601" (تفضيلات الاتفاقيات) |
| "أقوم الآن بضبط صفحة تسجيل الدخول" (حالة مؤقتة لهذه الجلسة) | "توجد جميع أوامر المصادقة داخل src/auth/" (حقائق المعمارية) |
تتضمن قواعد اتخاذ القرار ثلاث نقاط رئيسية، يمكنك تلخيصها في ثلاث كلمات فقط:
الأولى "هل ستتغير؟". لا تسجل الأشياء المستخدمة لمرة واحدة، أو الأشياء التي على وشك أن تتغير، أو التي تتخذ موقف "سنعمل هكذا الآن" - لأن صلاحيتها ستكون أقصر من جلسة العمل الحالية، وتسجيلها سيكون بمثابة حفر مطبات للمستقبل. مثال 8081 هو حالة نموذجية، فهو مفيد لحظة ضبطه فقط، وخلال يومين سيكون مضللاً.
الثانية "هل يمكن إعادة استخدامها؟". المعلومات الخاصة بالجلسة الحالية ("أعمل الآن على X")، لا تسجلها؛ المعلومات التي ستكون قابلة للاستخدام في المرة القادمة، والمرة التي تليها (أوامر البناء، حقائق المعمارية، الأخطاء السابقة)، هي التي تستحق التسجيل.
الثالثة "هل هي حساسة؟". وهذا يعتبر خطًا أحمر - كلمات المرور، و token، ومفاتيح API يجب ألا تدخل أبدًا إلى أي من ملفات الذاكرة. الذاكرة التلقائية تُحفظ بنص واضح بصيغة markdown على القرص الصلب الخاص بك، وكتابة المفاتيح فيها يعني حفظها في نص واضح في القرص. وهذا يتوافق مع القيود الأمنية الشاملة: لا تدخل المعلومات الحساسة في الكود، ولا في التزام (commit)، ولا في السجلات، وبالتالي لا تدخلها في الذاكرة.
لذلك، قبل السماح له بتسجيل شيء ما، اسأل نفسك هذه الأسئلة الثلاثة: هل ستتغير؟ هل سأحتاجها مستقبلاً؟ هل هي حساسة؟ إذا اجتازت هذه الأسئلة الثلاث، فاسمح له بتسجيلها. بمراقبة هذه النقاط الثلاث، ستكون مذكراته أكثر تنظيمًا وأمانًا، ولن تستخدم المعلومات القديمة لتضليلك.
💡 ملخص في جملة: قبل التسجيل اسأل نفسك: لا تسجل الأشياء المتغيرة، ولا الأشياء المستخدمة لمرة واحدة، والأشياء الحساسة محظورة كليًا؛ سجل الحقائق والخبرات التي تكون "مستقرة، متكررة، وخاصة بالمشروع"، ولا تخزن كل شيء.
07 هل لا يزال استخدام الاختصار القديم # ممكنًا الآن
ℹ️ يُعد
#ممارسة قديمة للمراحل الأولى، والإصدارات الجديدة لا تستخدم هذا التفاعل. لا تزال بعض الدروس ومقاطع الفيديو القديمة تعلم "استخدام#في البداية لإضافة الذاكرة بسرعة"، انسى الأمر ببساطة. المدخل الصحيح الحالي: قل "تذكر كذا" ليُحفظ في الذاكرة التلقائية، وقل "أضفه لـ CLAUDE.md" ليُحفظ في إرشادات git، واستخدم أمر/memoryللتدقيق والتعديل والحذف.من المطبات الشائعة التي يقع فيها المبتدئون: عند قول "تذكر كذا"، يتم الاحتفاظ به تلقائياً في الذاكرة التلقائية (الجهاز المحلي) كإعداد افتراضي، وهذا لا يعادل إضافته إلى CLAUDE.md (يضاف إلى git، ويتم مشاركته مع الفريق). ليتمكن أعضاء الفريق من الاطلاع على قاعدة معينة، يجب القول بوضوح "أضفه إلى CLAUDE.md". الاختلاف البسيط في العبارة يؤدي لفرق شاسع في نطاق المشاركة.
💡 ملخص في جملة:
#أصبح قديمًا فلا تستخدمه؛ "تذكر كذا" يحفظ في الذاكرة التلقائية، و"أضفه لـ CLAUDE.md" يحفظ في git - إنهما أمران مختلفان، وإن كنت تود مشاركته فيلزم التوضيح الشامل.
08 التدريب العملي: تسجيل شيء، معرفة مكانه، والتفعيل التلقائي في المرة القادمة
القراءة وحدها لا تكفي. في ما يلي سآخذك في جولة كاملة خطوة بخطوة: دعه يسجل معلومة → تأكد من تخزينها في ملف الذاكرة التلقائية → تحقق من تفعيلها تلقائيًا في الجلسة التالية. وهذا بأقل مثال ممكن، دون الاعتماد على أية بيئات معقدة.
ℹ️ الشرط المسبق:
claude --versionأكبر من أو يساوي v2.1.59، ولم يتم إيقاف الذاكرة التلقائية (تكون مفعلة افتراضيًا).
الخطوة الأولى: أنشئ مشروعًا تجريبيًا صغيرًا، وشغّل Claude (لأنظمة Mac / Linux)
mkdir memory-demo
cd memory-demo
claudeالمتوقع: دخول واجهة جلسة Claude Code، وفي الأسفل يوجد صندوق الإدخال.
الخطوة الثانية: دعه يسجل شيئًا
اكتب في صندوق الإدخال (مع استخدام "أمر بناء" نموذجي يستحق التسجيل):
تذكر: أمر البناء في هذا المشروع هو make build، وليس npm buildالمتوقع: سيرد Claude بأنه قد سجّله، وسيظهر على الواجهة إشعار مثل "Writing memory" - ورؤية هذا الإشعار يعني أنه يكتب في مذكراته حقًا.
الخطوة الثالثة: استخدم /memory للتحقق من الملف الذي حُفظ فيه
مباشرةً بعد ذلك، اكتب:
/memoryالمتوقع: ستنبثق واجهة إدارة الذاكرة، تُدرج جميع ملفات الذاكرة التي تم تحميلها في الجلسة الحالية. ستتمكن من رؤية مدخل الذاكرة التلقائية، وبالنقر عليه يمكنك رؤية ملف MEMORY.md، والذي سيحتوي على سجل make build الذي ذكرناه للتو. رؤيته في هذا الملف = انتقل هذا السجل من "مجرد محادثة" إلى "مذكرة فعلية على القرص الصلب".
وإذا أردت التحقق من ذلك مباشرة من سطر الأوامر، افتح طرفية (Terminal) أخرى واكتب:
cat ~/.claude/projects/*memory-demo*/memory/MEMORY.mdالمتوقع: في المخرجات ستتمكن من رؤية أمر البناء الذي سُجل للتو (اسم الـ <project> في المسار الفعلي سيعتمد على دليلك، واستخدام * للبحث العشوائي كافٍ). نص markdown نقي يمكن قراءته بسهولة بنظرة واحدة.
الخطوة الرابعة: التحقق من التفعيل التلقائي في الجلسة التالية
تعتبر هذه الخطوة بالغة الأهمية - أهمية الذاكرة تكمن في قدرتها على العمل "عبر الجلسات". اخرج من الجلسة الحالية:
/exitثم قم بإعادة تشغيله من جديد، واسأله عن شيء يعتمد على تلك الذاكرة:
claudeاكتب بعد الدخول:
كيف أقوم ببناء هذا المشروع؟المتوقع: سيخبرك مباشرة باستخدام أمر make build (دون التخمين العشوائي باقتراح npm build) - ومن المرجح أنك سترى إشعار "Recalled memory"، وهو ما يوضح أنه قرأ ما سجله في المرة السابقة من دفتر الملاحظات. تمكنه من الإجابة الصحيحة في الجلسة الجديدة = الذاكرة عبر الجلسات تعمل بكفاءة تامة، مبروك!
الخطوة الخامسة (اختيارية): احذف هذا السجل للتحقق من أن عملية الحذف فعالة
اكتب الأمر /memory، وادخل مجلد الذاكرة التلقائية، وقم بمسح أمر make build ثم احفظه. عندما تسأل في المرة القادمة "كيفية البناء"، فإنه لن يُصر على make build بثقة مطلقة - السجل الخاطئ تم مسحه بسهولة، وهذه هي بالذات الصلاحية التي يمنحها لك أمر /memory بـ "فتحه وتعديله".
بعد إجراء هذه الخطوات الخمس، ستكون قد تحققت بنفسك من كامل العملية: "تسجيل معلومة → كتابتها على القرص الصلب → تذكرها تلقائياً عبر الجلسات → وإجراء تدقيق أو مسح في أي وقت". أية استخدامات أخرى مستقبلاً للذاكرة ستعتمد بشكل أساسي على هذه الآلية.
💡 ملخص في جملة: قل "تذكر كذا" → تحقق من ظهور إشعار "Writing memory" → راجع
MEMORY.mdمن خلال/memoryأوcat→ اخرج وادخل مجدداً ولاحظ إجابته الصحيحة بناء على "Recalled memory" → احذفها أو عدلها من خلال/memoryإذا لزم الأمر. إتمام هذه الدورة بنفسك أفضل من حفظ عشر نظريات.
09 الخلاصة
في هذا المقال قمنا بتوضيح كل جوانب نظام الذاكرة في Claude Code من البداية - إنه ليس نظامًا واحدًا بل نظامان يعملان بالتوازي؛ والهدف ليس بتكديس الذاكرة بالمعلومات بل الاحتفاظ بما هو مهم بوضوح وبدقة.
دعونا نربط النقاط الرئيسية ونسترجعها معًا:
| ما تحتاج لمعرفته | الاستنتاج |
|---|---|
| أقسام الذاكرة | نظامان: CLAUDE.md لتدوين القواعد اليدوية + الذاكرة التلقائية لتسجيل تجاربه الخاصة |
| كيف تفرق بينهما | من يكتبه، هل يحتفظ بقواعد أم تجارب، هل يُحمل كاملاً أم بحد أقصى - يتضح في جدول الميزات |
| أين تُخزن الذاكرة التلقائية | في المسار ~/.claude/projects/<project>/memory/MEMORY.md، ويُخزن حسب مستودع git ومحليًا |
| كيفية تحميله | يقرأ في بداية الجلسة أول 200 سطر أو 25 كيلوبايت من MEMORY.md فقط، ويقسم الزائد في مواضيع محددة للطلب |
| كيفية التدقيق والتعديل | استخدام /memory: لسرد الملفات المحملة، قراءة وتعديل المجلد، وتفعيل أو إيقاف الذاكرة التلقائية |
| ما يُحفظ وما لا يُحفظ | تجاوز المراحل الثلاث: التغيير المؤقت، والاستخدام لمرة واحدة، والمعلومات الحساسة - تجنب تسجيلها نهائياً |
استخدام رمز # | رمز قديم ولا يعمل، بدلاً منه يُستخدم "تذكر كذا" للذاكرة التلقائية و"أضفه إلى CLAUDE.md" لمستودع git |
يجب أن تتمكن الآن من: التفرقة بين مهام وأماكن تخزين CLAUDE.md والذاكرة التلقائية وكيفية تحميل كل منهما؛ أن تأمر Claude بحفظ شيء والتحقق من حفظه في الملف المناسب؛ ومسح الملاحظات القديمة والمغلوطة عبر /memory؛ والتمييز بين المعلومات التي يجدر تسجيلها والتي لا يجدر تسجيلها. بشكل أدق - يُمكنك الآن توجيه Claude ليـ "يحفظ ما يجب تذكره، وينسى ما يجب نسيانه"، وتتجنب فوضى الذاكرة والمعلومات الغير مجدية التي تشوش الأداء.
الذاكرة بصورتها الطبيعية تعني تجميع Claude لـ "حقائق سلبية" - عبر تصحيحاتك وتراكم الملاحظات. إلا أن قدراته أعمق من مجرد التذكر.
المقال التالي 26 "مهارات الوكلاء (Agent Skills)" - الذاكرة هنا لـ "استرجاع الحقائق سلبياً"، بينما المهارات هي عبارة عن "حزم القدرات النشطة": يمكنك تجميع مجموعة من المهام المتكررة وحزمها كـ "مهارة مخصصة" لتطلبها منه عند الحاجة. إذا اعتبرنا أن الذاكرة تساعده "على فهمك جيدًا"، فإن المهارات ستجعله قادراً على الإنجاز ببراعة أكثر. وكتمرين فكري بسيط: كلاهما يعتمد على أسلوب "التجهيز المسبق لـ Claude"، متى ستختار "تذكر قاعدة معينة" مقابل "تعلم مهارة معينة"، وما التوقيت المناسب لكل منهما؟