كل محادثة تبدأ من الصفر. هذا هو التصميم — يرى Claude هذه المحادثة لا محادثة الأسبوع الماضي — وهو أمر لا بأس به حتى تنتبه إلى أنك شرحت الحقائق الخمس نفسها عن مشروعك للمرة الرابعة هذا الشهر. أي أداة تستخدمها لتشغيله. أي مجلد مُولَّد آليًا ولا ينبغي تعديله. ذلك الملف الواحد المليء ببيانات عملاء حقيقية الذي لا يقربه أحد. إعادة كتابة ذلك ليست ضريبة صغيرة؛ إنها الضريبة نفسها، إلى الأبد.
ملف CLAUDE.md هو الحلّ، وهو متواضع عن قصد: ملف نصّي عادي يجلس داخل مشروعك، يقرأه Claude في بداية كل محادثة، فتكون تلك الحقائق الثابتة موجودة ببساطة منذ الرسالة الأولى. إنه المكان المخصّص لما يصحّ عن المشروع بغضّ النظر عمّا تسأل عنه اليوم — الـ stack، والأعراف المتّبعة، والأوامر، وقائمة ما لا يُمَسّ.
الانضباط الوحيد الذي يهمّ هنا هو أن تُبقيه قصيرًا ومحدّدًا. ولأنه يُقرأ من جديد في كل محادثة دون استثناء، فإن أي غموض أو ترهّل فيه تكلفة تدفعها مرارًا وتكرارًا — وملف طويل من النصائح العامة يزحم الأسطر الأربعة التي تهمّ فعلًا. والطريقة الطبيعية لتنميته تفاعلية لا استباقية: حين تجد نفسك تصحّح الشيء نفسه للمرة الثانية، اكتبه حتى لا تكون هناك مرة ثالثة.
لا تحتاج terminal لأيّ من هذا. في Claude Desktop أسهل بداية هي أن تطلب ذلك في المحادثة — «جهّز CLAUDE.md لهذا المشروع» — فيقرأ Claude ما هو موجود ويصوغ لك نسخة أولى تستطيع تعديلها في لوحة الملفات مثل أي ملف نصّي آخر. وأمر /init أدناه يفعل الشيء نفسه إن كنت تفضّل كتابته.
ثلاثة مواضع، وهي تتراكم
الـ CLAUDE.md في المجلد الأعلى من مشروعك هو الحالة الشائعة، لا الوحيدة. فالملف نفسه يعمل في ثلاثة مواضع، والفرق بينها هو على من ومتى ينطبق:
- المشروع —
CLAUDE.mdفي أعلى الـ repository. عن هذا المشروع: كيف تشغّله، وأعرافه، وقائمة ما لا يُمَسّ. وهو مُلتزَم، فيقرأ Claude لدى كل زميل النسخة نفسها. - الشخصي —
CLAUDE.mdفي مجلدك الرئيسي، على~/.claude/CLAUDE.md. غير مرتبط بأيّ مشروع؛ ينطبق على كل مشروع تفتحه، وعلى جهازك وحده. وهو موضع «كيف تحبّ أنت أن تعمل» — «اشرح تعليلك قبل التغييرات الكبيرة»، «عرِّف المصطلحات حين تستخدمها»، «أبقِ الإجابات قصيرة». ولا يراه أحد غيرك. - المتداخل —
CLAUDE.mdأعمق داخل مشروع كبير، يلتقطه Claude حين يعمل على ملفات في ذلك الجزء من الشجرة. ومعظم الناس لا يحتاجونه أبدًا؛ فهو لـ codebases كبيرة مختلطة تختلف قواعد إحدى زواياها.
والجزء الذي يستحقّ المعرفة أنها لا يلغي بعضها بعضًا، بل تتركّب. فحين تعمل في مشروع، يقرأ Claude ملفك الشخصي وملف المشروع وأيّ ملف متداخل ينطبق، كلها معًا — فتركب «أبقِ الإجابات قصيرة» فوق «HTML بسيط، لا تمسّ messages.json». التفضيلات العامة في البيت، وحقائق المشروع في الـ repo، وتتطابق الطبقات بنظافة.
وقاعدة الاختيار: هل يريد كل زميل هذا؟ فالمشروع. أهو عن كيفية عملك أنت في كل مكان؟ فالشخصي. أيهمّ فقط داخل زاوية من repo ضخم؟ فالمتداخل. وعند الشكّ، مستوى المشروع هو الافتراضي الآمن — ويمكنك دائمًا نقل سطر إلى ملفك الشخصي لاحقًا.
الـ memory هي النصف الآخر، والدليل أدناه موجود لأن الناس يخلطون بين الاثنين باستمرار. الفصل بينهما مسألة ملكية: CLAUDE.md ملف تكتبه أنت وتعمل له commit، فيسافر مع المشروع ويقرأ Claude الخاص بكل زميل الملف نفسه. أمّا الـ memory فملاحظات يحتفظ بها Claude بشكل خاص عن طريقتك أنت في العمل، تتراكم بهدوء مع الوقت ولا تُشارَك أبدًا. حقائق المشروع مكانها الأول؛ والعادات الشخصية مكانها الثاني. وأثر هذا الفصل على الفريق هو الجزء المثير — فمن ينضمّ حديثًا ويعمل clone للـ repository يجد Claude يعرف المشروع سلفًا، ولهذا فإن الـ context الثابت هو في حقيقته سؤال دليل تشغيل الفريق بقدر ما هو سؤال شخصي.
كيف يعمل هذا داخل Claude
يُخلط بينه وبين
أمران يخلط الناس بينهما هنا، والفرق الذي يهمّ فعلًا.
كيف تفعلها
-
/memoryافتح ملفات CLAUDE.md الخاصة بالـ memory لإضافة تعليمات دائمة. -
/initاجعل Claude يدرس مشروعك ويكتب له ملف CLAUDE.md.