الذاكرة وملف CLAUDE.md
امنح Claude معرفة دائمة بمشروعك عبر ملف CLAUDE.md الذي يُحمَّل تلقائيًا في كل جلسة.
امنح Claude معرفة دائمة بمشروعك عبر ملف CLAUDE.md الذي يُحمَّل تلقائيًا في كل جلسة.
افتراضيًا، يبدأ Claude Code كل جلسة بدون أي معرفة مسبقة بمشروعك. لا يعلم بأسلوب التسمية المعتمد لديك، ولا بالملفات التي يجب تجنبها، ولا بالقواعد التجارية المخبأة في كودبيسك. سيتعين عليك شرح كل هذا من جديد في كل مرة.
CLAUDE.md يحل هذه المشكلة. إنه ملف Markdown يقرأه Claude Code تلقائيًا عند البدء، في كل جلسة، قبل أن تكتب أي شيء. فكّر فيه كـ system prompt دائم لمشروعك.
ضعه في جذر المستودع:
my-project/
CLAUDE.md ← ذاكرة مستوى المشروع
src/
package.json
يقرأه Claude عند التشغيل. لا إعداد إضافي مطلوب.
إليك قالبًا واقعيًا:
# المشروع: لوحة تحكم Acme
## المكدّس التقني
- Next.js 16 (App Router، TypeScript صارم)
- Tailwind CSS v4 — بدون tailwind.config.js
- Supabase (PostgreSQL، Row-Level Security مفعّل)
- النشر على Vercel
## معايير الكود
- استخدم `const` بدلًا من `let` كلما أمكن
- يجب أن تعالج جميع الدوال غير المتزامنة الأخطاء بـ try/catch
- لا تستخدم `any` أبدًا — فضّل `unknown` وضّق النوع
- المكونات في `components/`، ملف واحد لكل مكوّن
- استخدم `yarn` وليس `npm`
## الاختبار
- اختبارات الوحدة: Vitest
- اختبارات E2E: Playwright في `e2e/`
- شغّل `yarn test` قبل أي commit
## الإجراءات المحظورة
- لا تعدّل `supabase/migrations/` — الـ migrations غير قابلة للتعديل
- لا تحذف تعليمات `"use client"` بدون استشارة
- لا تُضمّن ملفات `.env` أو الأسرار في المستودع
## ملاحظات معمارية
- المصادقة تعتمد على Supabase Auth — لا تبنِ نظام مصادقة مخصصًا
- جميع استعلامات قاعدة البيانات تمر عبر `lib/db.ts` — لا تستورد supabase مباشرةً في المكونات| الفئة | أمثلة | |---|---| | المكدّس التقني | الإطار، قاعدة البيانات، مكتبة CSS، خادم النشر | | معايير الكود | أسلوب التسمية، ترتيب الاستيراد، الأنماط المفضلة | | إعداد الاختبار | منفّذ الاختبارات، كيفية تشغيلها، متطلبات التغطية | | الإجراءات المحظورة | الملفات التي لا تُلمس، الأنماط الواجب تجنبها | | ملاحظات معمارية | قرارات التصميم الرئيسية، الثوابت المهمة | | المصطلحات | مفردات خاصة بالنطاق قد يسيء Claude فهمها |
عند تشغيل claude في مجلد المشروع:
CLAUDE.mdلا تحتاج للإشارة إلى CLAUDE.md صراحةً. يُحمَّل دائمًا تلقائيًا.
للتفضيلات التي تسري على جميع مشاريعك (ليس مشروعًا بعينه)، أنشئ CLAUDE.md على مستوى المستخدم:
mkdir -p ~/.claude
touch ~/.claude/CLAUDE.md# التفضيلات العامة
- أفضّل مكونات React الدالّية على مكونات الفئات
- استخدم TypeScript دائمًا — لا JavaScript عادي
- منفّذ الاختبارات الافتراضي هو Vitest ما لم يُحدَّد غير ذلك
- أفضّل الأنواع الصريحة على الدوال المُصدَّرةيُدمج الملفان معًا. ملف مستوى المشروع له الأولوية عند التعارض.
اتبع ملف CLAUDE.md إلى مستودعك. عندما يستنسخ زملاؤك المشروع ويشغّلون claude، يحصلون على نفس السياق تلقائيًا — بدون إعداد إضافي.
git add CLAUDE.md
git commit -m "chore: إضافة ذاكرة المشروع CLAUDE.md"هذا يجعل CLAUDE.md وثيقةً حية. حين يتغير مكدّسك أو يُتخذ قرار معماري جديد، حدّثه كما تحدّث ملف README.
لا تضع مفاتيح API أو كلمات مرور أو رموز في CLAUDE.md أبدًا. إنه ملف مُتبَّع في المستودع مرئي لكل من لديه صلاحية وصول. استخدم متغيرات البيئة للأسرار.
إذا بدا أن Claude يتجاهل CLAUDE.md:
# تحقق أن Claude وجده
claude --print "ما الذي يقوله CLAUDE.md عن معايير الكود؟"إذا كان الرد فارغًا، تحقق من:
CLAUDE.md (حساس لحالة الأحرف)claude من داخل مجلد المشروع (أو أي مجلد فرعي منه)CLAUDE.md هو أكثر ما يمكن إضافته للمشروع أثرًا في إنتاجية Claude Code. ملف CLAUDE.md واحد مكتوب بعناية يُلغي عشرات التفسيرات المتكررة أسبوعيًا. الوحدة التالية تتناول الـ Hooks — استدعاءات دورة الحياة التي تتيح لـ Claude تشغيل أوامر shell تلقائيًا قبل استخدام الأدوات وبعدها.