يمكن أن يحمّل Claude Code تعليمات المشروع من عدة أماكن في الوقت نفسه. إذا كنت تدير مشروعين لعميلين، تتيح جلسة جديدة في كل مجلد التحقق من ملفات التعليمات التي دخلت فعليًا إلى كل سياق. النتيجة المفيدة هي قائمتان مسجلتان بالملفات، وليست افتراضًا بأن المجلدات المتجاورة تفصل معلومات العملاء.
التغيير الرئيسي
ما الذي تغيّر: يحوّل هذا الدليل تسلسل تعليمات Claude Code الموثّق إلى مقارنة قابلة للتكرار بين مجلدي مشروعين قائمين ومصرح بهما. تسجّل الملفات المحمّلة عند التشغيل، ثم تتحقّق مما إذا ظهر ملف تعليمات متداخل بعد قراءة ملف مصرح بها.
لماذا يهم: يمكن أن يؤثر مجلد أب مشترك أو تعليمات شخصية أو استيراد أو قاعدة أو إعداد في المشروعين. /context يعرض ملفات الذاكرة المحمّلة في الجلسة الجارية، لتتمكن من تقصّي أي مسار غير متوقع قبل العمل على مشروع العميل.
ما ينبغي الانتباه إليه: لا تحدّ التعليمات المحمّلة من الملفات التي يستطيع Claude الوصول إليها، ولا تضمن اتباعه كل تعليماتك. راجع الحساب الفعلي والأذونات وعمليات الاستيراد وhooks وشروط استخدام البيانات قبل إرسال أي محتوى للعميل إلى المزوّد المختار.
ما تحتاج إليه
هذا الإجراء موجّه إلى مطوّر لديه إذن بفحص مستودعي عميلين قائمين وإعدادات Claude Code الخاصة بهما. احصل على تصريح منفصل لإرسال محتوى المشروع المحدد الذي تنوي استخدامه إلى حساب Claude أو المزوّد الذي اخترته. إذن تعديل الملفات المحلية وحده لا يحسم هذا القرار. تحتاج إلى وصول إلى الطرفية، وتثبيت Claude Code، وحساب أو مزوّد مؤهل، وملف قائم غير حساس في مجلد متداخل ضمن أحد المشروعين. راجع وثائق Anthropic حول الإعداد، التكلفة و استخدام البيانات للمسار الذي تستخدمه.
يوضّح المخطط أدناه المسارات المطلوب تحديدها؛ ولا يطلب إنشاء مشاريع عملاء جديدة. استبدل كل مسار توضيحي في الأوامر بالمسار الحقيقي المقابل المصرح به. وجود ملف CLAUDE.md في المجلد الأب اختياري، وينبغي ألا يتضمن إلا تعليمات معتمدة للمشروعين. يجب أن يكون الملف المتداخل والمستند غير الحساس ملائمين بالفعل لمسار معالجة بيانات الحساب المختار.
AUTHORIZED_PARENT/
CLAUDE.md optional shared instructions
project-A/
CLAUDE.md A's project instructions
project-B/
CLAUDE.md B's project instructions
subdir/
CLAUDE.md B's nested instructions
README.md authorized, nonsensitive read target1. حدّد مساري المشروعين
استخدم أحد الخيارين PowerShell أو Bash. اضبط المتغيرات على المجلدين الفعليين. تتطلب هذه الفحوص مسارات قائمة، وتقارن سلاسل المسارات الناتجة، وتتأكد من وجود هدف القراءة في B. قد يحتفظ أمر PowerShell Resolve-Path باسم مستعار لرابط رمزي أو junction؛ واختلاف السلاسل وحده لا يثبت وجود مشروعين فعليين مختلفين. افحص الروابط الرمزية وjunction في مساري التشغيل وسلاسل المجلدات الأب، واتبع أهدافها، وتأكد من أن A وB مشروعان منفصلان فعلًا قبل المتابعة. احتفظ بالمسارات وفحوص الأهداف وقوائم السياق التالية في سجل عمل خاص.
$a = (Resolve-Path -LiteralPath 'C:\actual\authorized\project-A' -ErrorAction Stop).Path
$b = (Resolve-Path -LiteralPath 'C:\actual\authorized\project-B' -ErrorAction Stop).Path
if (-not (Test-Path -LiteralPath $a -PathType Container)) { throw 'A must be an existing directory' }
if (-not (Test-Path -LiteralPath $b -PathType Container)) { throw 'B must be an existing directory' }
if ($a -eq $b) { throw 'A and B must be different directories' }
$target = Join-Path $b 'subdir/README.md'
if (-not (Test-Path -LiteralPath $target -PathType Leaf)) { throw 'Choose an existing authorized nonsensitive file in B/subdir' }
$a
$b
$targeta=$(realpath -- /actual/authorized/project-A) || exit 1
b=$(realpath -- /actual/authorized/project-B) || exit 1
test -d "$a" || { printf '%s\n' 'A must be an existing directory' >&2; exit 1; }
test -d "$b" || { printf '%s\n' 'B must be an existing directory' >&2; exit 1; }
test "$a" != "$b" || { printf '%s\n' 'A and B must be different directories' >&2; exit 1; }
target="$b/subdir/README.md"
test -f "$target" || { printf '%s\n' 'Choose an existing authorized nonsensitive file in B/subdir' >&2; exit 1; }
printf '%s\n' "$a" "$b" "$target"إذا لم يكن المشروعان في مجلد أب واحد، فسجّل سلسلة المجلدات الأب الفعلية لكل منهما على حدة. لا تستنتج وجود مجلد أب مشترك من الرسم.
2. راجع ما قد يُحمّل قبل فتح أي من المشروعين
لكل واحد من مجلدي التشغيل اللذين حُدّدا، افحص CLAUDE.md، .claude/CLAUDE.md، CLAUDE.local.md، AGENTS.md و .claude/AGENTS.md في ذلك المجلد وكل مجلد أب وصولًا إلى جذر نظام الملفات. افحص أيضًا التعليمات المُدارة لنظام التشغيل، و ~/.claude/CLAUDE.md، وقواعد المستخدم، وملفات المشروع .claude/rules/ . يذكر دليل الذاكرة أن ملفات CLAUDE.md المكتشفة تُجمع؛ فالملف الأقرب لا يمحو نص الملف في المجلد الأب. ويُحمّل الملف المتداخل CLAUDE.md عادةً بعد أن يقرأ Claude ملفًا آخر هناك أو يكتبه أو يعدّله. وقد تُحمّل القواعد المقيدة بمسارات عند الوصول إلى ملف مطابق.
تنتج هذه الأوامر التي تعرض المسارات فقط قائمة بالمجلدات الأب دون إظهار محتويات الملفات. راجع الملفات التي تعيدها ضمن صلاحيات مالكها المعني. كرّر ذلك باستخدام المتغيرين؛ وفي Bash تغطي الحلقة كليهما تلقائيًا.
foreach ($start in @($a, $b)) {
$dir = [System.IO.DirectoryInfo]::new($start)
while ($null -ne $dir) {
Get-Item -LiteralPath $dir.FullName -Force | Select-Object FullName,LinkType,Target
foreach ($name in @('CLAUDE.md', 'CLAUDE.local.md', 'AGENTS.md', '.claude/CLAUDE.md', '.claude/AGENTS.md')) {
$candidate = Join-Path $dir.FullName $name
if (Test-Path -LiteralPath $candidate -PathType Leaf) { $candidate }
}
$dir = $dir.Parent
}
}for start in "$a" "$b"; do
dir=$start
while :; do
for name in CLAUDE.md CLAUDE.local.md AGENTS.md .claude/CLAUDE.md .claude/AGENTS.md; do
test -f "$dir/$name" && printf '%s\n' "$dir/$name"
done
test "$dir" = / && break
dir=$(dirname -- "$dir")
done
doneاقرأ ملفات التعليمات الفعلية وعمليات استيرادها بصيغة @path ؛ وتُحل مسارات الاستيراد النسبية انطلاقًا من الملف الذي يحتويها. اتبع أي رابط رمزي أو junction في كل مسار تشغيل PowerShell وسلسلة المجلدات الأب، ثم راجع التسلسل المسمّى وتسلسل الهدف اللذين قد يؤثران في الجلسة. افحص أهداف الروابط الرمزية لملفات التعليمات وأنماط claudeMdExcludes . افحص .claude/settings.json، .claude/settings.local.json، وإعدادات المستخدم والإعدادات المُدارة، وأي خيارات تشغيل --settings أو --setting-sources ، وhooks المضبوطة، وحالة الثقة لكل مشروع. يمكن أن ينقل CLAUDE_CONFIG_DIR مجلد إعدادات المستخدم، لذا تحقّق منه قبل افتراض ~/.claude. راجع الأوامر التي يمكن أن يشغّلها hook قبل قبول الثقة بمساحة العمل. قد يطلب الاستيراد من خارج مجلد العمل موافقة؛ ولن يظهر الاستيراد المرفوض كما تتوقع. يشرح دليل الإعدادات أي طبقة توفر كل إعداد وأي إعدادات المشروع تنتظر منح الثقة.
تحقّق من خيار Project instructions في /config أو من إعداد الإضافة الخاص بالمستخدم أو بالإدارة. تصف وثائق Claude Code الحالية AGENTS.md بأنه بديل مشروط عند عدم وجود ملف CLAUDE.md أو CLAUDE.local.md مؤهل في المشروع أو المجلدات الأب؛ أما claude-md-and-agents-md فيحمّل الاثنين. يعتمد الدعم المباشر لـ AGENTS.md على الإصدار والإضافة المفعّلة. قد تتجاهله الإصدارات السابقة وبعض الإعدادات، ومنها المشكلة الخاصة بإصدار معين التي يتناولها تقرير BIG CHANGE عن علامة ميزة AGENTS.md. اعتمد على إصدارك وإعدادك الفعليين ونتيجة /context ، بدلًا من افتراض أنه يُحمّل دائمًا.
سجّل وسائط --add-dir و CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD كلًا على حدة. يوسّع --add-dir الوصول إلى الملفات؛ لكنه افتراضيًا لا يحمّل ملف CLAUDE.md لذلك المجلد الإضافي. يفعّل متغير البيئة تحميل التعليمات من المجلدات المضافة. تحقّق من الذاكرة التلقائية باستخدام /memory بوصفها قناة منفصلة: فقد تكون مشتركة بين worktrees والمجلدات الفرعية في مستودع واحد، ويمكن تجاوز موقع تخزينها. افحص الموقع والمحتوى الفعليين قبل تفسير المقارنة. لا تضع بيانات اعتماد أو حقائق غير منشورة للعميل في أمثلة التعليمات أو السجل العام.
قبل التشغيل، افحص قيم البيئة هذه في shell نفسه الذي ستستخدمه. تعني قيمة Bash الفارغة أن المتغير غير مضبوط أو فارغ؛ ولا يسرد PowerShell إلا المتغيرات الموجودة. لا تستبعد قيم shell هذه القيم الموجودة في ملفات الإعدادات، لذا تأكد من الإعدادات النشطة داخل كل جلسة.
Get-Item Env:CLAUDE_CONFIG_DIR,Env:CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD -ErrorAction SilentlyContinue | Select-Object Name,Valueprintf 'CLAUDE_CONFIG_DIR=%s\n' "${CLAUDE_CONFIG_DIR-}"
printf 'CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=%s\n' "${CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD-}"3. ابدأ جلسة جديدة في المشروع A
سجّل claude --version وأمر التشغيل الدقيق. ابدأ عملية جديدة من A، دون --resume أو --continue. لا تقبل الثقة إلا بعد مراجعة الإعدادات وhooks. شغّل /context قبل أن تطلب من Claude فتح B أو أي ملف متداخل. سجّل المسارات الدقيقة تحت ملفات الذاكرة والقواعد؛ واستخدم القائمة للتحقق من وجود الملفات، لا لاستنتاج ترتيب إدراجها. استخدم /memory لفحص إدخالات الذاكرة الشخصية وذاكرة المشروع والذاكرة التلقائية المعروضة وموقع تخزينها. ثم اخرج من الجلسة.
claude --version
Set-Location -LiteralPath $a -ErrorAction Stop
claudeclaude --version
cd -- "$a" && claudeداخل Claude Code، يحدّد /status مصادر الإعدادات النشطة، ويعرض /permissions قواعد الأدوات الحالية ومصادرها. سجّلها إلى جانب قائمة التعليمات:
/context
/memory
/status
/permissions
/exitتوقّع ظهور تعليمات A والمجلدات الأب المشتركة المنطبقة، وفقًا للإعدادات والاستثناءات التي راجعتها. ينبغي ألا يكون ملف خاص بـB ضمن تسلسل تشغيل A. إذا ظهر عبر استيراد أو رابط أو مجلد مضاف أو قناة أخرى، فسجّل تلك الآلية. غيابه لا يثبت أن ملفات B غير قابلة للوصول.
4. ابدأ جلسة منفصلة في المشروع B، ثم اقرأ ملفًا متداخلًا واحدًا
استخدم عملية Claude Code جديدة في B بالإصدار المثبّت ومسار الحساب أو المزوّد نفسيهما. سجّل /context و /memory قبل أي قراءة متداخلة. اطلب من Claude قراءة الملف المحدد غير الحساس المعتمد فقط. تأكد داخل الجلسة من حدوث القراءة، ثم شغّل /context مرة أخرى وقارن وجود المسارات. تتوقع قاعدة التحميل في الدليل أن ملف B subdir/CLAUDE.md ينضم إلى السياق بعد وصول Claude إلى ملف آخر في ذلك المجلد، ما لم يغيّر إعداد أو استثناء أو سلوك خاص بالإصدار النتيجة.
Set-Location -LiteralPath $b -ErrorAction Stop
claudecd -- "$b" && claudeداخل Claude Code، لا تستبدل طلب القراءة إلا إذا كان للهدف المصرح به مسار نسبي مختلف:
/context
/memory
/status
/permissions
Read only subdir/README.md. Tell me whether that exact file was read; do not open other files or display its contents.
/context
/exitقد يطلب Claude Code إذنًا لاستخدام أداة أو يقترح إجراءً آخر. وافق فقط على القراءة المحددة المصرح بها، وتأكد من أن الأداة فتحت ذلك الملف فعلًا. الرد الذي يدّعي قراءته ليس دليلًا كافيًا بمفرده.
5. قارن القوائم وفسّر الاختلافات
احتفظ بجدول خاص يضم مساري A وB المحددين، وجذور المستودعات، وإصدار Claude Code، ومسار الحساب أو المزوّد، وأوامر التشغيل، وحالة الثقة، ومصادر الإعدادات، والمجلدات الإضافية، ومسارات ملفات التعليمات والقواعد، وعمليات الاستيراد، ومواقع الذاكرة التلقائية، وقوائم /context الثلاث المرصودة: A عند التشغيل، وB قبل القراءة، وB بعدها. علّم كل ملف متوقع بأنه موجود أو غائب أو غير مفسّر. لا تنسخ نص تعليمات العميل إلى تقرير عام.
إذا غاب ملف متوقع، فتحقّق أولًا من مجلد التشغيل ومسار الملف الفعلي. ثم افحص إعداد Project instructions والإضافة والإصدار و claudeMdExcludes، --setting-sources، وعمليات الاستيراد والموافقة على الاستيراد الخارجي، وأنماط مسارات القواعد، والروابط الرمزية، والقراءة المتداخلة المؤكدة. إذا ظهر ملف غير متوقع، فتتبّعه عبر المجلدات الأب وتعليمات المستخدم أو الإدارة وعمليات الاستيراد والقواعد وhooks وتحميل ذاكرة المجلدات الإضافية والذاكرة التلقائية. قد يكون الاشتراك في مجلد أب أو تعليمات شخصية مقصودًا؛ ويحدد أصلها ومحتواها ما إذا كانت مناسبة للمشروعين.
لا تغيّر تعليمات أو إعدادًا إلا بتصريح العميل المعني. راجع diff المقترح، وحافظ على القيود القائمة، وكرّر الرصد في جلستين جديدتين بعد التغيير. إذا لم تستطع تفسير مسار أو لم يكن لديك إذن بفحص قناة تسهم في السياق، فأوقف عمل العميل مؤقتًا واطلب من مالكه أو مسؤول النظام معالجة هذا الغموض المحدد.
يكتمل التمرين عندما تملك قائمتي تشغيل مسجلتين، وقائمة B الموثّقة قبل القراءة المتداخلة وبعدها، وتفسيرًا لكل مسار غير متوقع ذي أهمية. وهذا يثبت وجود التعليمات المرصود في تلك الجلسات. لكنه لا يثبت حدًا للسرية أو عزلًا للوصول إلى الملفات أو ضمانًا للطاعة أو الترتيب الدقيق الذي استخدم به النموذج التعليمات. لفحص محادثة قائمة ومتابعتها، راجع دليل سياق جلسة Claude Code المنفصل لدينا.
تعتمد رسوم الحساب وحدود الاستخدام على الخطة والمصادقة والمزوّد. راجع دليل التكلفة من Anthropic لمعرفة الشروط الحالية. أُعدّ هذا المقال من الوثائق: لم تفحص BIG CHANGE ملفات عملاء، ولم تشغّل جلسات Claude للمقارنة بين A وB، ولم تختبر نتيجة نموذج أو تقِس الوقت أو التكلفة.
المصادر وقراءات إضافية
- Anthropic، «كيف يتذكر Claude مشروعك»: نطاقات التعليمات وعمليات الاستيراد والتحميل المتداخل و
AGENTS.mdوالقواعد والاستثناءات والمجلدات المضافة والذاكرة التلقائية و/memory. يمكن أن تتغير الخيارات الدقيقة باختلاف إصدارات Claude Code. - Anthropic، «ملفات الإعدادات وترتيب الأولوية»: إعدادات المستخدم والمشروع والإعدادات المحلية والمُدارة، بما فيها
/statusوإعدادات الثقة وhooks. - Anthropic، «تهيئة الأذونات»:
/permissionsيعرض قواعد الأدوات النشطة ومصادرها؛ ولا يفرض نص التعليمات نفسه قيود الوصول إلى الأدوات. - Anthropic، «استكشاف نافذة السياق»:
/contextيعرض ملفات الذاكرة المحمّلة في جلسة حية؛ ولا يثبت وجودها المعروض ترتيب إدراجها. - Anthropic، الإعداد والتكاليف واستخدام البيانات: تأكد من متطلبات التثبيت والحساب؛ واقرأ أيضًا شروط التكلفة و استخدام البيانات المنفصلة لمسارك.



