Skip to content

هيكل المشروع: ماذا يضع Claude Code في مشروعك

📚 التنقل في السلسلة: المقال السابق 12 تهيئة المشروع أرشدك لتشغيل /init لإنشاء أول CLAUDE.md لمشروعك. يتابع هذا المقال من هناك — بعد /init، ما الذي يحتويه مجلد .claude/ الذي ظهر بهدوء في مشروعك، ومن يتحكم به، وهل يجب إضافته إلى git.

يقال إن مجلد .claude «لا داعي للقلق بشأنه، سيتعامل معه بنفسه»، ولكن لنكن صادقين، فهم هذا المجلد هو ما يجعلك تستخدم Claude Code بحق.

لماذا نقول هذا؟ لأن كل ميزة متقدمة تقريبًا في هذه الأداة — من تخصيص الأوامر، والتحكم في الصلاحيات، والوكلاء الفرعيين، والمهارات — تظهر على القرص كملفات ومجلدات داخل .claude/. وإذا لم تفهم هيكلها، فعندما تواجه مشكلات مثل "لماذا لم تُفعل الصلاحيات التي قمت بتهيئتها؟" أو "لماذا لم تظهر الأوامر الخاصة بي لدى زملائي بعد سحبهم للكود؟"، فستقف مكتوف الأيدي.

عندما بدأت استخدام الأداة لأول مرة، قمت بخطأ ساذج: لتوفير الوقت، قمت بكتابة ملف تهيئة يحتوي على كلمة مرور قاعدة البيانات مباشرة داخل .claude/settings.json ورفعته مع git push. وعندما أدركت الخطأ، كانت المفاتيح قد سُجلت بالفعل في تاريخ المستودع — وانتهى بي الأمر بضرورة تغيير كلمة المرور وإعادة كتابة تاريخ git، مما أضاع مني نصف ساعة كاملة. لاحقًا فهمت أن مثل هذه الأشياء كان يجب وضعها في settings.local.json الذي يتجاهله Claude Code تلقائيًا عبر gitignore. ملف واحد وُضع في المكان الخطأ، وصنع فارقًا كبيرًا.

لا يهدف هذا المقال إلى تعليمك كيفية تهيئة كل ملف بالتفصيل (فهذا متروك للمقالات اللاحقة)، بل يهدف إلى شيء واحد: رسم خريطة شاملة لك، بحيث تعرف بمجرد النظر إلى أي ملف "ما هي وظيفته، وأين يوضع، وهل يخص المشروع أم يخصك أنت، وهل يجب رفعه أم لا".

بعد قراءة هذا المقال، ستحصل على:

  • خريطة شاملة لمجلد .claude/: ما الذي يتحكم به كل ملف / مجلد فرعي
  • الفرق الجوهري بين تهيئتي "على مستوى المشروع" و"على مستوى المستخدم" (تتبع المشروع vs تتبعك أنت)
  • جدول سريع: ما الذي يجب رفعه إلى git، وما الذي يجب إضافته إلى .gitignore
  • تطبيق عملي سريع لرؤية هذين المستويين من المجلدات بوضوح

01 افهم أمرًا واحدًا أولاً: لدى Claude Code "منزلين"

الخلاصة أولاً: تنقسم تهيئة Claude Code إلى مكانين — أحدهما يتبع المشروع، والآخر يتبعك أنت. بمجرد فهم هذه النقطة، سيسهل فهم كل ما يليها.

تشبيه: "خزانة ملفات المشروع" بالشركة مقابل "درج مكتبك الخاص". تحتوي خزانة ملفات المشروع (على مستوى المشروع) على أشياء يحتاج الجميع في هذا المشروع إلى رؤيتها — مواصفات المشروع، ومن يمكنه القيام بأي عمليات، ويمكن للمنضمين الجدد البدء مباشرة باتباع المواد الموجودة في الخزانة. أما درج مكتبك الخاص (على مستوى المستخدم) فيحتوي على عاداتك الشخصية — الاختصارات التي تفضلها، وتفضيلاتك الشخصية، والتي ستظل ترافقك حتى لو انتقلت إلى مشروع آخر.

وينعكس هذا على القرص في موقعين:

هذا الجزءأين يقعمن يؤثر عليهمع من يذهب
على مستوى المشروع (Project)./.claude/ داخل المشروعجميع المساهمين في هذا المستودعيتبع المشروع (يُرفع إلى git، ويُشارك مع الفريق)
على مستوى المستخدم (User)~/.claude/ في دليلك الرئيسيأنت، في جميع مشاريعكيتبعك أنت (على جهازك، ولا يُرفع أبدًا)

هنا مصطلحان نود توضيحهما أولاً:

نطاق المشروع (Project scope): تُخزن التهيئة في المستودع، وتدخل في git لتتم مشاركتها مع الفريق بأكمله. إذا قمت بتعديل القواعد ورفعتها، فستدخل حيز التنفيذ لدى زملائك بمجرد سحبهم للكود.

نطاق المستخدم (User scope): تُخزن التهيئة في الدليل الرئيسي لجهازك ~/.claude/، وتؤثر عليك أنت فقط، ولا تدخل أي مستودع أبدًا. أينما ذهبت لأي مشروع في الشركة، ستظل هذه التهيئة مرافقة لك.

على سبيل المثال: ضع التفضيلات الشخصية البحتة مثل "الرد باللغة العربية" أو "ما هي البادئة المستخدمة في رسائل commit" في ملف ~/.claude/CLAUDE.md على مستوى المستخدم — بهذه الطريقة، عند فتح أي مشروع، سيلتزم Claude بعاداتك. أما حقائق المشروع مثل "هذا المشروع يستخدم pnpm وليس npm"، فاكتبها في ./CLAUDE.md على مستوى المشروع، وارفعها لتتم مشاركتها مع الفريق بأكمله. فصل العادات الشخصية عن معايير المشروع منذ البداية يوفر عليك الكثير من العناء لاحقًا.

💡 خلاصة في جملة واحدة: لدى Claude Code "منزلين" — ./.claude/ في المشروع (يتبع المشروع، ويدخل في git، ويُشارك مع الفريق) و ~/.claude/ في الدليل الرئيسي (يتبعك أنت، ولا يدخل في git، ويؤثر عليك فقط).


02 افتح مجلد .claude/ على مستوى المشروع: ماذا يوجد بداخله

الآن دعنا نلقي نظرة على مجلد ./.claude/ داخل المشروع. في المشاريع النشطة، يبدو الهيكل كالتالي:

text
your-project/
├── CLAUDE.md                ← 项目说明书(也可放 .claude/CLAUDE.md)
├── CLAUDE.local.md          ← 你的个人项目偏好(进 .gitignore)
├── .mcp.json                ← 团队共享的 MCP 服务器配置(进 git)
└── .claude/
    ├── settings.json        ← 团队共享配置:权限、hooks、模型默认值
    ├── settings.local.json  ← 你的个人配置覆盖(自动 gitignore)
    ├── commands/            ← 自定义斜杠命令,每个 .md 一条 /命令
    ├── rules/               ← 模块化的项目规则(CLAUDE.md 拆出来的)
    ├── skills/              ← 技能:可被 /调用 或 Claude 自动调用的工作流
    └── agents/              ← 子代理:各有独立上下文的专项助手

دعنا نوضح وظيفة كل منها، حيث يركز هذا المقال فقط على "ما هي ومن يتحكم بها"، بينما سيتم شرح الاستخدامات المتقدمة في مقالات مخصصة لاحقًا:

CLAUDE.md —— دليل إرشادات المشروع. هو أول ملف يقرأه Claude عند دخوله المشروع في كل مرة. يُكتب هنا ما هو المشروع، وكيفية تشغيله، والاتفاقيات المتبعة. هناك فرق جوهري بينه وبين .claude/settings.json: ملف CLAUDE.md هو "توجيه" موجه لـ Claude (يقرأه ويحاول اتباعه قدر الإمكان ولكنه ليس قيدًا صارمًا)، بينما settings.json هو "تهيئة" يفرضها Claude Code إجباريًا.

تفصيل من الموقع الرسمي: يمكن وضع CLAUDE.md في الدليل الجذري للمشروع، أو في .claude/CLAUDE.md — الخيار الأخير يحافظ على نظافة الدليل الجذري للمشروع.

CLAUDE.local.md —— تفضيلات المشروع الشخصية الخاصة بك. توجيهات متراكبة فوق CLAUDE.md وتتعلق بك شخصيًا فقط، مثل "منفذ قاعدة البيانات المحلية الخاصة بي هو 5433". يجب إضافته يدويًا إلى .gitignore (سيقوم خيار التهيئة الشخصية عند تشغيل /init بمساعدتك في إضافته).

settings.json —— مركز التهيئة المشترك للفريق. يتحكم في ما إذا كان بإمكان Claude تنفيذ عمليات معينة أم لا (الأنشطة المسموح بها)، ومتى يتم تشغيل سكربتاتك (hooks)، ويمكنه أيضًا تعيين النموذج الافتراضي المستخدم في هذا المشروع. يدخل في git، وهو يمثل خط الأمان الأساسي للفريق.

settings.local.json —— تجاوز التهيئة الشخصية الخاص بك. له نفس تنسيق JSON المذكور أعلاه، ولكنه يؤثر عليك فقط ولا يتم رفعه. إذا كنت ترغب في السماح بصلاحية مؤقتة دون التأثير على زملائك، فاكتبها هنا. عندما يقوم Claude Code بكتابة هذا الملف لأول مرة، سيقوم تلقائيًا بتهيئة git لتجاهله — وهذا هو الملف الذي تحدثنا عنه في البداية والذي "كان ينبغي استخدامه ولكن تم تفويته".

هناك تفصيل أشار إليه الموقع الرسمي: يضيف قاعدة التجاهل إلى ملف ~/.config/git/ignore العالمي الخاص بك (وليس .gitignore الخاص بالمشروع)، لذلك لن تجد هذا السطر عند فحص ملف .gitignore للمشروع. إذا كنت تريد أن يتجاهله الفريق بأكمله، فعليك إضافة السطر بنفسك في ملف .gitignore للمشروع.

commands/ —— أوامر الشرطة المائلة المخصصة. كل ملف .md في هذا المجلد يتحول إلى أمر /filename. احفظ التوجيهات التي تكرر إدخالها كملف، وفي المرة القادمة يمكنك استدعاؤها بمجرد كتابة /. قامت الجهة الرسمية بتوحيد آليتي commands/ و skills/ في نفس النظام الأساسي. يُنصح باستخدام skills/ لإنشاء أوامر جديدة (فهي تدعم حزم الملفات المرفقة)، بينما تظل commands/ متوافقة ولكنها لم تعد المسار الموصى به.

rules/ —— قواعد المشروع المجزأة (الموديلية). عندما يصبح ملف CLAUDE.md طويلاً جدًا (توصي التوجيهات الرسمية بإبقائه أقل من 200 سطر)، يمكنك تقسيم القواعد حسب الموضوع إلى ملفات متعددة تحت مجلد rules/، مثل testing.md و api-design.md.

skills/ —— المهارات. كل مهارة عبارة عن مجلد فرعي يحتوي على ملف SKILL.md. يمكنك استدعاؤها يدويًا عبر /skill-name، كما يمكن لـ Claude تقدير وحسم ما إذا كان يجب استخدامها تلقائيًا بناءً على المهمة.

agents/ —— الوكلاء الفرعيون. يُعرف كل ملف .md مساعدًا متخصصًا يمتلك نافذة سياق مستقلة، بحيث لا تتداخل المحادثة الرئيسية معه. هذا مناسب للعمل المتوازي أو عزل المهام.

.mcp.json —— تهيئة خادم MCP المشترك للفريق. يُوضع في الدليل الجذري للمشروع، بالتوازي مع مجلد .claude/. يمكن تهيئة خادم MCP (Model Context Protocol) في مكانين: ملف .mcp.json هنا يدخل في git للمشاركة مع الفريق بأكمله، مثل أدوات قاعدة البيانات أو واجهات البرمجة التطبيقية (API) الداخلية التي يحتاجها الفريق؛ بينما تُخزن تهيئة MCP الشخصية (مثل الأدوات التي تستخدمها بمفردك) في ملف ~/.claude.json ولا تدخل أي مستودع. الفرق بينهما ببساطة هو: مشاركة المشروع مقابل الاستخدام الشخصي الخاص.

💡 خلاصة في جملة واحدة: في مجلد .claude/ على مستوى المشروع، يُعتبر CLAUDE.md / rules/ بمثابة "توجيهات" موجهة لـ Claude، بينما يعد settings.json تهيئة "يفرضها" Claude Code إجباريًا، وتعد commands/ و skills/ و agents/ "امتدادات" تقوم بتثبيتها له.


03 نفس المجلدات، توجد منها نسخة أيضًا في ~/.claude/

هذه هي النقطة الأكثر إرباكًا للمبتدئين، لكنها في الواقع الأبسط: أسماء المجلدات المذكورة أعلاه توجد نسخة مطابقة لها تقريبًا في مجلد ~/.claude/ على مستوى المستخدم.

توجد مجلدات commands/ و rules/ و skills/ و agents/ و CLAUDE.md و settings.json في المشروع، وتوجد أيضًا في ~/.claude/. والفرق الوحيد هو:

(يحتوي مجلد ~/.claude/ على مستوى المستخدم أيضًا على مجلدات فريدة لا توجد على مستوى المشروع — مثل themes/ و keybindings.json و output-styles/ و workflows/ وغيرها، والتي سنشرحها بالتفصيل في مقالات لاحقة.)

ما يتم وضعه تحت ~/.claude/ يسري على جميع مشاريعك؛ وما يتم وضعه تحت ./.claude/ الخاص بالمشروع يسري على هذا المشروع فقط.

إليك مثالين للتوضيح:

  • أمر مثل /commit-zh (لإنشاء رسائل commit باللغة الصينية)، عند وضعه في ~/.claude/commands/يمكن استخدامه في أي مشروع دون الحاجة لإعادة تهيئته في كل مشروع.
  • أما أمر مثل "النشر إلى البيئة الاختبارية للشركة"، فهو مرتبط بوضوح بهذا المشروع فقط، لذا يُوضع في مجلد .claude/commands/ الخاص بالمشروع ويُرفع ليستخدمه الفريق بأكمله.

بالإضافة إلى هذه المجلدات "التوأم"، هناك ملفان في الدليل الرئيسي ~/ يظهران فقط على مستوى المستخدم ولا تحتاج للمسهما يدويًا تقريبًا، يكفي أن تعرفهما فقط:

الملف / المجلدأين يقعما هوهل تحتاج للتحكم به
~/.claude.jsonالدليل الرئيسيحالة التطبيق: حالة تسجيل الدخول (OAuth session)، السمات، خوادم MCP الشخصية، سجلات الثقة لكل مشروع وتفضيلات واجهة المستخدم (UI)لا تلمسه تقريبًا، يتم تغييره عبر /config
~/.claude/projects/على مستوى المستخدمسجلات الجلسات لكل مشروع؛ تُحفظ الذاكرة التلقائية في مجلدها الفرعي <Project>/memory/لا تحتاج لكتابته، يقوم النظام بصيانته تلقائيًا

كلمة إضافية هنا حول الذاكرة التلقائية (auto memory): هي و CLAUDE.md نظامان منفصلان تمامًا. ملف CLAUDE.md هو ما تكتبه أنت لتوجيه Claude؛ أما الذاكرة التلقائية فهي ملاحظات يكتبها Claude لنفسه (مثل فهمه لأوامر البناء لديك، أو العقبات التي واجهتها)، وتُخزن تحت ~/.claude/projects/<Project>/memory/ لتُستخدم عبر الجلسات المختلفة. لا تخلط بين الاثنين: أحدهما تكتبه أنت والآخر يكتبه هو.

💡 خلاصة في جملة واحدة: مجلدات مثل commands/ و skills/ توجد منها نسختان على مستوى المشروع ومستوى المستخدم، والفرق الوحيد هو هل "تتحكم بمشروع واحد" أم "تتحكم بجميع مشاريعك"؛ بينما يعد ~/.claude.json و ~/.claude/projects/ حصرًا على مستوى المستخدم ولا تحتاج للمسهما يدويًا تقريبًا.


04 ما الذي يدخل في git وما الذي يجب ألا ترفعه أبدًا

هذا القسم هو الأكثر عملية، وفيه وقع خطأ تسريب المفاتيح المذكور في البداية. إليك القاعدة الذهبية أولاً: أي شيء يحتوي على "local" أو يحتوي على مفاتيح سرية لا يدخل في git أبدًا.

لماذا يتم رفع بعضها وعدم رفع البعض الآخر؟ المنطق بسيط للغاية — ما يحتاج الفريق لمشاركته يتم رفعه، وما يتعلق بك أو بجهازك فقط لا يتم رفعه.

تشبيه: الأشياء الموجودة في خزانة ملفات المشروع يجب تسجيلها وتخزينها (تدخل في git)، بينما محتويات درج مكتبك الشخصية لا تحتاج لتسليمها.

إليك جدول تصنيف الملفات الشائعة حسب ملاءمتها للرفع إلى git:

الملف / المجلدهل يدخل في git؟لماذا
CLAUDE.md✅ نعمتوثيق المشروع المشترك للفريق
.claude/settings.json✅ نعمالصلاحيات المشتركة للفريق / قاعدة التهيئة الأساسية
.claude/commands/*.md✅ نعمالأوامر القياسية المعاد استخدامها من قبل الفريق
.claude/rules/*.md✅ نعمالقواعد المجزأة المشتركة للفريق
.claude/skills/ و .claude/agents/✅ نعمالمهارات والوكلاء الفرعيون المشتركون للفريق
.claude/settings.local.json❌ لاتجاوز شخصي؛ يقوم Claude Code بتجاهله تلقائيًا في gitignore
CLAUDE.local.md❌ لاتفضيلات المشروع الشخصية؛ تحتاج لإضافته يدويًا إلى .gitignore
أي ملف يحتوي على مفاتيح سرية / token / كلمات مرور❌ لا أبدًادخوله إلى تاريخ المستودع يعني تسريبه مباشرة

بعض التنبيهات العملية:

لا داعي للقلق بشأن gitignore لملف settings.local.json. تشير الوثائق الرسمية بوضوح إلى أن Claude Code عند إنشائه لهذا الملف سيقوم تلقائيًا بتهيئة git لتجاهله. إذا كنت تريد السماح بصلاحية مؤقتة محليًا، فإن كتابتها هنا هي الخيار الأكثر أمانًا.

ملف CLAUDE.local.md يتطلب منك إضافته بنفسك إلى .gitignore. هو يختلف عن settings.local.json ولا يتم تجاهله تلقائيًا — سيساعدك اختيار الخيار "الشخصي" عند تشغيل /init بمساعدتك في إضافته، وإلا تذكر أن تضيف سطرًا له يدويًا.

لا تقم بكتابة المفاتيح السرية مباشرة في أي ملف تهيئة أبدًا. الطريقة الموصى بها رسميًا هي الإشارة إليها عبر متغيرات البيئة في التهيئة، مثل كتابة ${GITHUB_TOKEN} بدلاً من لصق الـ token صراحة — يقرأ Claude Code القيمة من بيئة shell الخاصة بك عند التشغيل، وبذلك لا يتم كتابة الـ token في الملف أبدًا. يجب تنفيذ هذه النصيحة بصرامة.

💡 خلاصة في جملة واحدة: الملفات المشتركة للفريق (CLAUDE.md و settings.json و commands/ وغيرها) تدخل في git؛ أما الملفات التي تحتوي على "local" وأي ملف يحتوي على مفاتيح سرية فلا تُرفع أبدًا — يتم تجاهل settings.local.json تلقائيًا بواسطة النظام، بينما يتطلب CLAUDE.local.md منك إضافته يدويًا.


05 عند تعارض التهيئة من نتبع: توضيح الأولويات في رسم توضيحي

قد تتبادر إلى ذهنك مسألة: إذا تم تعيين نفس الخيار في ملف settings.json على مستوى المستخدم وملف settings.json على مستوى المشروع، فمن نتبع؟

ترتيب الأولويات الرسمي هو كالتالي (من الأعلى إلى الأقل):

text
Managed(组织托管,最高,谁都盖不住)

命令行参数(--permission-mode 这类,仅当次会话)

Local(settings.local.json)

Project(项目 settings.json)

User(用户 ~/.claude/settings.json,最低)

قاعدة الحفظ: كلما كان الخيار أكثر "تحديدًا" وأقرب إلى "العملية الحالية"، زادت أولويته. المدار من قبل المؤسسة > المحدد مؤقتًا في سطر الأوامر حاليًا > المحلي لمشروعك الحالي > المشترك في المشروع > الافتراضي العام الخاص بك.

مجلد .claude: على مستوى المشروع مقابل مستوى المستخدم

يضع هذا الرسم التوضيحي الهيكلين جنبًا إلى جنب: على اليسار مجلد .claude/ على مستوى المشروع (يتبع المشروع، ويدخل في git عند الحاجة لمشاركته مع الفريق)، وعلى اليمين مجلد ~/.claude/ على مستوى المستخدم (يتبعك أنت شخصيًا، ويتحكم في جميع مشاريعك) — تذكر ما يتحكم به كل هيكل لتجنب الارتباك لاحقًا عند وضع التهيئة.

ولكن هناك فخ سهل الوقوع فيه للغاية يجب توضيحه بشكل منفصل — ليست كل الإعدادات تتبع منطق "التجاوز والغطاء":

نوع الإعدادعند وجوده في مستويات متعددة في وقت واحدمثال
القيم القياسية (Scalar) (قيمة واحدة)يتم أخذ الأكثر تحديدًا، وتجاوز الباقيmodel: إذا تم تعيينه في المشروع، يُستخدم الخاص بالمشروع
قيم المصفوفات (Array) (قائمة)يتم الدمج عبر المستويات المختلفة وليس التجاوزpermissions.allow: تراكب الخاص بالمستخدم + الخاص بالمشروع + المحلي

هذا الاختلاف قد يتسبب في حدوث مشاكل بسهولة: لقد واجهت هذا بنفسي مرة — قمت برفض (deny) أمر معين في ملف settings.json على مستوى المستخدم، واعتقدت أنه سيتم تعطيله عالميًا من الآن فصاعدًا، ولكن عند الانتقال إلى مشروع آخر تم تشغيله دون مشاكل. ظللت أحدق في التهيئة لفترة طويلة دون أن أفهم السبب. اتضح لي لاحقًا أن قواعد الصلاحيات يتم دمجها وليست تجاوزية؛ فإذا كانت مسموحة (allow) على مستوى المشروع، فستُدمج مع قواعد مستوى المستخدم لتقييمها معًا. لذلك لا تتوقع حظر الصلاحيات بضربة واحدة عبر مستوى المستخدم، بل يجب فهم قواعد الدمج جيدًا.

💡 خلاصة في جملة واحدة: ترتيب الأولويات من الأعلى إلى الأقل هو Managed ← سطر الأوامر ← Local ← Project ← User؛ ولكن يجب التمييز — القيم القياسية مثل model يتم "تجاوزها"، بينما قيم المصفوفات مثل permissions.allow يتم "دمجها وتراكبها".


06 عملي: عاين الهيكلين بنفسك

رؤية المجلدات بنفسك أفضل بكثير من مجرد النظر إلى الرسومات. الأوامر التالية هي للقراءة فقط دون كتابة، وهي آمنة تمامًا، ويمكنك اتباعها لرؤية "المنزلين" بوضوح.

الخطوة الأولى: تفحص مجلد ~/.claude/ على مستوى المستخدم في دليلك الرئيسي

افتح الطرفية واكتب (Mac / Linux):

bash
ls -a ~/.claude

لـ Windows PowerShell استخدم:

powershell
dir $HOME\.claude

النتيجة المتوقعة: ستظهر لك ملفات ومجلدات مثل settings.json و projects وربما commands و skills وغيرها — يعتمد وجودها على مدى استخدامك لـ Claude Code. طالما ظهرت هذه العناصر، فهذا يعني أن مجلد مستوى المستخدم موجود وفعال بالفعل.

الخطوة الثانية: تفحص مجلد .claude/ على مستوى المشروع داخل أحد المشاريع

انتقال عبر الأمر cd إلى أي مشروع قمت بتشغيل Claude Code فيه (إذا لم يكن لديك واحد، ارجع إلى المقال السابق واستخدم /init لإنشائه)، ثم:

bash
ls -a .claude

النتيجة المتوقعة: سترى على الأقل ملف settings.local.json (إذا كنت قد وافقت على صلاحيات سابقًا)، وربما settings.json. هذه هي "خزانة ملفات" مستوى المشروع، وهي مستقلة تمامًا عن تلك الموجودة في الدليل الرئيسي.

الخطوة الثالثة: التحقق من أن settings.local.json متجاهل بالفعل بواسطة git

داخل هذا المشروع (يجب أن يكون مستودع git)، اكتب:

bash
git check-ignore .claude/settings.local.json

النتيجة المتوقعة: ستقوم الطرفية بإرجاع مسار الملف (.claude/settings.local.json)، مما يثبت أنه تم تجاهله بالفعل بواسطة git — وهو ما يفعله Claude Code تلقائيًا من أجلك. إذا لم يظهر أي مخرج، فهذا يعني أنه لم يتم تجاهله، ويُفضل إضافته يدويًا إلى ملف .gitignore.

الخطوة الرابعة (اختياري): إلقاء نظرة على دليل إرشادات المشروع

bash
cat CLAUDE.md

(لـ Windows PowerShell استخدم type CLAUDE.md)

النتيجة المتوقعة: ستتم طباعة المحتوى الذي تم إنشاؤه بواسطة /init في المقال السابق. هذا هو الملف الأول الذي يقرأه Claude في كل مرة يدخل فيها إلى المشروع، والآن عرفت أين يقع.

⚠️ تنبيه: أمر git check-ignore يكون ذا معنى فقط داخل مستودعات git. إذا لم يتم تشغيل git init في المشروع بعد، فسيظهر خطأ fatal: not a git repository، لذا قم بتحويله لمستودع git أولاً ثم حاول مجددًا.

💡 خلاصة في جملة واحدة: الأمر ls -a ~/.claude لعرض مستوى المستخدم، والأمر ls -a .claude لعرض مستوى المشروع، والأمر git check-ignore .claude/settings.local.json للتحقق من التجاهل — ثلاثة أوامر للقراءة فقط تعرض لك "المنزلين" وملفات التجاهل بوضوح في آن واحد.


07 ملخص

في هذا المقال قمنا باستكشاف "محتويات وممتلكات" Claude Code في المشروع. دعنا نراجعها معًا بالتفصيل:

ما يجب تذكرهما هو بالتفصيل
المنزلانمجلد ./.claude/ في المشروع (يتبع المشروع، ويدخل في git) + مجلد ~/.claude/ في الدليل الرئيسي (يتبعك، ولا يدخل في git)
التوجيهات مقابل التهيئةملف CLAUDE.md / مجلد rules/ هي توجيهات لـ Claude؛ وملف settings.json هو تهيئة تُفرض إجباريًا
المجلدات التوأممجلدات commands/ و skills/ و agents/ توجد نسختان منها على مستوى المشروع ومستوى المستخدم، والفرق هو هل تتحكم في مشروع واحد أم في الجميع
الخط الأحمر لـ gitأي شيء يحتوي على "local" أو مفاتيح سرية لا يُرفع أبدًا؛ ويتجاهل النظام settings.local.json تلقائيًا
الأولوياتالمدار من المؤسسة ← سطر الأوامر ← Local ← Project ← User؛ تجاوز للقيم القياسية، ودمج وتراكب للمصفوفات

من المفترض الآن أن تكون قادرًا على: فتح أي مشروع، وإلقاء نظرة على أي ملف داخل مجلد .claude/ ومعرفة وظيفته، وهل يتبع المشروع أم يتبعك شخصيًا، وهل يجب رفعه أم لا؛ وكذلك معرفة لمن تكون الأولوية عند حدوث تعارض في التهيئة. هذه الخريطة الشاملة هي الأساس لجميع المقالات المخصصة القادمة — ففي الدروس التالية عند تعلم كيفية تفصيل تهيئة settings.json وكتابة CLAUDE.md بشكل فعال وإنشاء المهارات والوكلاء الفرعيين، ستتمكن دائمًا من تحديد موقع كل منها على هذه الخريطة.


المقال التالي 14 "واجهة التفاعل والاختصارات" — بعد أن فهمنا خريطة هيكل المجلدات "الساكنة",حان الوقت للتعرف على "لوحة تشغيل" Claude Code. سيأخذك المقال القادم في جولة للتعرف على كل جزء في تلك الواجهة، والتدرب على الاختصارات الأكثر شيوعًا لتصبح جزءًا من ذاكرتك العضلية لتكتب بسرعة وثبات.


القراءة الموصى بها