جدول المحتويات
تسأل Claude Code هل قرأ CLAUDE.md، فيجيب بنعم، لكنه يتخطى الاختبارات التي حددتها. عندها ميّز بين تعليمات لم تصل إلى النموذج أصلاً، وتعليمات وصلته لكنه لم يلتزم بها. فالرد «قرأته» لا يثبت أيّاً من الحالتين.
وفي .cursor/rules الخاص بـCursor، و.github/copilot-instructions.md الخاص بـGitHub Copilot، وAGENTS.md الخاص بـCodex CLI، عليك أيضاً التحقق من موضع تحميل الملفات وشروط تطبيقها. طريقة تحميل الأداة للتعليمات والتزام النموذج بها مسألتان منفصلتان.
يتناول المقال خمسة أمور ينبغي فحصها، منها التحميل واستعادة التعليمات بعد ضغط المحادثة وتعارض التعليمات، مع خطوات للتشخيص وتحسينات عملية. اختصار النص وحده لا يضمن الالتزام. انقل الشروط القابلة للفحص آلياً إلى Hooks أو CI، واترك ما يحتاج إلى حكم بشري للمراجعة.
لماذا تُتجاهل القواعد
وكيف تضع ضوابط للتحقق
1. لماذا يتجاهل الذكاء الاصطناعي القواعد: خمسة أمور للفحص
1. الخلط بين إرشادات الطول وحدود التحميل
تستهلك التعليمات الطويلة السياق وتصعّب العثور على الشروط المهمة. توصي وثائق Claude Code بإبقاء كل ملف CLAUDE.md دون 200 سطر، لكن ذلك لا يعني توقف التحميل عند السطر 200. ميّز حد التحميل عن الالتزام بالتعليمات المحمّلة. فالوثائق لا تقرر حدوداً مثل «150 سطراً تضمن الالتزام» أو «يختفي الوسط بعد تجاوز 200 سطر».
2. الضغط التلقائي في الجلسات الطويلة
يضغط أمر /compact في Claude Code المحادثة، لكن ملف CLAUDE.md في جذر المشروع يُعاد تحميله من القرص وإدراجه في السياق بعد الضغط. أما ملفات CLAUDE.md في المجلدات الفرعية والقواعد الخاصة بمسارات محددة فتُعاد قراءتها عند قراءة الملفات المعنية. ميّز بين قرارات المحادثة وحدها، وتعليمات فرعية لم تُعد قراءتها بعد، وتعليمات حُمّلت ولم تُتّبع.
3. تعارض التعليمات ونطاقها
إذا اجتمعت «اختبر قبل إنشاء الكوميت» و«تخطّ الاختبارات هذه المرة»، فعلى الوكيل تحديد التعليمة التي تنطبق. الترتيب الزمني وحده لا يفسّر الأولوية؛ فالأحدث ليس بالضرورة أعلى أولوية. قارن تعليمات المشروع والتعليمات الشخصية والخاصة بالمجلدات، وحدّد من يحق له إقرار الاستثناءات. كتابة منع في CLAUDE.md لا تسحب بحد ذاتها إذن تنفيذ العملية.
4. قواعد غامضة أو متناقضة
مع التعليمات الذاتية أو المجردة مثل «اكتب بلطف» أو «تعامل مع الأمر بما يناسب»، يضع الذكاء الاصطناعي تفسيره الخاص، وقد يختلف عما تتوقعه. اجعل المطلوب قابلاً للتحقق، مثل «اكتب في ثلاثة أسطر كحد أقصى» أو «عند استخدام Slack API، استخدم chat.postMessage».
5. ملفات قواعد متضخمة أو مبعثرة
الرابط العادي من CLAUDE.md إلى SPEC.md لا يعني بالضرورة تحميل الملف المرتبط كاملاً عند البدء. يوسّع Claude Code استيرادات @path عند البدء، لكن محتواها يستهلك السياق أيضاً. فصل الملفات لتنظيمها يختلف عن تحميلها عند الحاجة فقط. وإذا تعارضت نسخ القواعد، فحدّد المصدر المعتمد ونطاق التطبيق.
تستند هذه الفروق إلى وثائق الذاكرة الرسمية في Claude Code، التي روجع نصها الأصلي في 21 سبتمبر 2026. اقرأ توصيات الطول بمعزل عن شرح ما يُستعاد بعد الضغط حتى لا تخطئ في تشخيص السبب.
2. كيف تتحقق من تطبيق القواعد
ابدأ بفحص الوضع الحالي. اطرح هذه الأسئلة على الذكاء الاصطناعي وراجع ردوده:
| السؤال | ما الذي تتحقق منه |
|---|---|
| «اسرد جميع قواعد CLAUDE.md في نقاط.» | قد تُسقط القائمة بعض القواعد. تحقق بصورة منفصلة من عرض تحميل الملفات ومن التغييرات الفعلية |
| «قبل كتابة الشيفرة، حدّد قواعد CLAUDE.md التي ستلتزم بها.» | استخدم هذا لمراجعة الشروط المهمة مسبقاً. التصريح أو غيابه لا يثبت تطبيق القاعدة |
| «اسرد الأفعال في الجولات الخمس الماضية التي قد تكون خالفت CLAUDE.md.» | اجعله بداية للمراجعة الذاتية، ثم قارنه بسجل الأوامر ورموز الخروج والملفات الناتجة |
حتى لو قال الذكاء الاصطناعي «قرأته» أو «فهمت»، فإن تطبيق التعليمات مسألة أخرى. تحقق من أدلة التحميل ومن نتائج التنفيذ معاً.
أربع خطوات لعزل السبب
- تحقق من نقطة الدخول. في Claude Code، افحص قسم Memory files في
/contextللتحقق من تحميل CLAUDE.md والقواعد. تأكد أيضاً من وجود الملف في المجلد المعني وعدم استبعاده بالإعدادات. التحميل المباشر لـAGENTS.md استثناء قد لا يظهر في هذه القائمة، لذا فغيابه وحده لا يثبت أنه لم يُقرأ. - فعّل شروط تطبيق القاعدة. للقواعد الخاصة بمسارات، اطلب من الوكيل قراءة ملف مطابق. إن لم يقرأه منذ الضغط، فقد لا تكون قواعده أُعيدت بعد. سجّل تعليمات البدء منفصلة عن التعليمات التي تُحمّل لعمل محدد.
- جرّب مهمة صغيرة بلا ضرر. اطلب تعديل عينة يمكن الاستغناء عنها، بقواعد مثل «سمّ الملف قبل تغييره» و«اذكر أمر الاختبار ورمز الخروج بعد التنفيذ». لا تجعل حذف بيانات الإنتاج أو النشر تجربةً. وإذا وضعت عبارة الاختبار السرية في السؤال نفسه، أمكن للوكيل الإجابة من دون قراءة ملف التعليمات، فلا تكون قد اختبرت التحميل.
- تحقق من النتيجة بصورة مستقلة. افحص الفروق بحثاً عن تغييرات غير متوقعة، وتأكد من تنفيذ الاختبارات المذكورة فعلاً ومن كفاية نطاق الفحص. نجاح تجربة واحدة لا يضمن كل العمليات اللاحقة. سجّل الإعدادات المتغيرة وإصدار الأداة والملفات المستهدفة، وأعد التحقق عند تغير الظروف.
مثلاً، إذا حمّل الوكيل قاعدة «اختبر قبل إنشاء الكوميت» ولم يشغّل الاختبارات، فلن يعالج نقل الملف وحده السبب. حدّد الاختبارات المطلوبة، ولا تعتبر خطوة الكوميت مكتملة من دون نتائجها. واشتراط فحوص CI قبل الدمج يوفر دليلاً يتجاوز تقرير الذكاء الاصطناعي نفسه.
إذا غاب CLAUDE.md المعني عن عرض التحميل، فصحّح موضع بدء الجلسة والإعدادات قبل زيادة التشديد في النص. وإذا استمرت المخالفات بعد تأكيد التحميل، فراجع دقة التعليمات وطريقة التحقق. يمنعك هذا الترتيب من تفسير كل إخفاق بأنه «نسيان الذكاء الاصطناعي».
3. حلول سريعة تجرّبها في خمس دقائق
1. افصل القواعد الدائمة عن التفاصيل التي تُقرأ عند الحاجة
ابدأ بالتوصية الرسمية لـClaude Code، وهي أقل من 200 سطر، لكن قلّل التكرار والشرح غير الضروري بدلاً من ملاحقة عدد الأسطر. مثلاً:
- القواعد الأساسية (10–20 سطراً) ← بداية CLAUDE.md
- مواصفات الخدمات التفصيلية ← ملفات SPEC-xxx.md منفصلة
- السجل والخلفية ← مجلد docs/
بعد نقل التفاصيل إلى ملف آخر، اذكر في ملف نقطة الدخول ما يجب قراءته قبل كل نوع من المهام. إذا استوردت كل ما يلزم لكل جلسة، فلن يقل سياق البدء بمجرد تقسيم الملفات. استخدم قواعد المسارات أو المهارات لتحميل التعليمات المشروطة عند الحاجة فقط.
2. أضف علامات للأولوية
تساعد علامات الأهمية البشر والذكاء الاصطناعي على فهم المقصود. لكن العلامات نفسها لا تفرض التنفيذ. يمكنك تعريفها هكذا:
- CRITICAL: قد تتسبب المخالفة بحادث في بيئة الإنتاج
- MUST: مطلوب دائماً
- SHOULD: متوقع في الأحوال المعتادة
- NICE TO HAVE: اختياري إذا سمح الوقت
تحدّد عبارة «CRITICAL: الاستعلامات المدمرة في قاعدة بيانات الإنتاج تتطلب موافقة مسبقة» العملية وشرط الموافقة. أما منع العمليات غير المصرح بها فعلياً فيحتاج أيضاً إلى إعدادات أذونات أو فحوص تسبق التنفيذ.
3. ذكّر بالقواعد في المحادثة
أضف في بداية الجلسة «اذكر أهم ثلاث قواعد قبل بدء العمل.» يتيح ذلك التحقق من الفهم، لكنه لا يضمن تشغيل الاختبارات. تحقق من النتائج بعد ذلك أيضاً.
4. أدرج شروط التحقق في الخطة
أدرج «التحقق من القواعد» في تتبع مهام وكيل الذكاء الاصطناعي، ووضّح شروط إكمال كل خطوة. اطلب الأمر ورمز الخروج والنطاق الذي لم يُختبر، بدلاً من عبارة «تم الاختبار» وحدها. علامة الاكتمال بلا أدلة لا تجعل العمل متحققاً منه.
4. ضوابط طويلة الأمد: Hooks والمراجعة والمهارات
حوّل الشروط القابلة للتقييم إلى سكربتات، واضبط أذونات العمليات من الإعدادات. Hooks وCI ومراجعة الذكاء الاصطناعي والمهارات تؤدي أدواراً مختلفة. تسميتها جميعاً «فرضاً آلياً» تحجب ما لا تفحصه.
1. فرض الفحوص باستخدام Claude Code Hooks
تتيح ميزة Hooks في Claude Code تشغيل سكربتات قبل استدعاءات أدوات محددة أو بعدها. ويمكن بها بناء آلية يوقف فيها النظام العملية حتى لو نسي الذكاء الاصطناعي القاعدة.
مثلاً، يمكن لخطّاف PreToolUse أن:
- يكشف الأوامر الخطرة (
rm -rfوgit push --force) قبل تشغيل أداةBashويمنعها - يفحص أذونات الملف المستهدف أو حالة قفله قبل تشغيل أداة
Edit - يشغّل اختبارات المشروع قبل إنشاء الكوميت ويمنعه إذا أخفقت
إذا أردت أن يمنع خطّاف PreToolUse العملية، فاجعله يعيد رمز الخروج 2 أو JSON الرفض المناسب. إذا أعاد اختبار فاشل الرمز 1 مع نص عادي فقط، فهذا خطأ غير مانع وتستمر العملية. يعمل PostToolUse بعدها، فلا يمثل آلية للتراجع عن عملية اكتملت بالفعل.
لا يمنع الخطّاف إلا ما يقيّمه سكربته عند الحدث المحدد في الإعدادات. مراقبة Edit وحدها لا تشمل الكتابة عبر الصدفة. كما أن مطابقة سلاسل نصية خطرة لا تغطي كل الحالات. اجمع الخطّافات مع الأذونات والعزل وCI، واختبر مدخلات ينبغي قبولها وأخرى ينبغي رفضها.
2. توزيع المسؤوليات على وكلاء فرعيين
استخدم قدرات الوكلاء الفرعيين في Claude Agent SDK أو Cursor لإنشاء وكيل مخصص لتدقيق القواعد. قد تكشف مراجعة وكيل آخر لشيفرة الوكيل الرئيسي نواقص من زاوية مختلفة. لكن يمكن أن يرتكب الاثنان الخطأ نفسه أو يغفلا المسألة نفسها.
زوّد المراجع بالقواعد المعنية والفروق والأدلة التي تنتظرها. المطالبة القصيرة لا تضمن ارتفاع معدل التعرف على القواعد. طابق كل ملاحظة مع الملفات الفعلية أو نتائج الاختبارات، واترك ما يخرج عن نطاق المراجع موسوماً بأنه غير متحقق منه.
3. استدعاء الإجراءات المتكررة عبر المهارات
في Claude Code، يمكنك وضع إجراء متكرر في .claude/skills/precommit/SKILL.md واستدعاؤه بأمرك الخاص /precommit. هذا مثال تنشئه أنت، وليس أمراً مدمجاً. ما زالت الملفات في المجلد القديم .claude/commands/ تعمل، لكن الوثائق الحالية تدمجها في المهارات. استدعاء الإجراء يختلف عن اجتياز جميع الفحوص، فراجع النتائج عند انتهائه.
راجع وثائق المهارات الرسمية لمعرفة مواضع الملفات وطريقة الاستدعاء. ضع الإجراء وشروط التحقق منه في المهارة، واطلب أدلة على تنفيذ الخطوات.
4. كشف المخالفات بسكربتات آلية
استخدم grep في CI أو خطّاف يسبق الكوميت لكشف الأنماط المحظورة. من أمثلتها:
- بقاء
console.logفي شيفرة الإنتاج - مفاتيح API مكتوبة مباشرة في الشيفرة
- غياب تعليقات حقوق النشر في بداية الملفات
لا تفحص السكربتات قواعد لم تُنفذ فيها ولا ملفات خارج نطاقها. اختبر الأمثلة الصحيحة والمخالفات وحالات فشل الجلب، واعرض عدد العناصر المفحوصة والمتروكة. فإذا تعذرت قراءة ملفين من عشرة مثلاً، فإن نجاح الثمانية الأخرى لا يعني «اجتياز جميع الملفات».
5. أفضل الممارسات حسب الأداة
نصائح لتصميم قواعد وكلاء الذكاء الاصطناعي
راجع وثائق قواعد Cursor وتعليمات GitHub Copilot المخصصة ودليل AGENTS.md من OpenAI لمعرفة شروط كل أداة. تستخدم تعليمات Copilot الخاصة بالمسارات ملفات *.instructions.md؛ تحقق من الدعم في كل ميزة. وحد Codex البالغ 32 KiB هو حد افتراضي مجمّع بالبايت، وليس بعدد الأحرف أو الأسطر.
المبدأ المشترك هو «الإيجاز والدقة ووضوح الأولويات». تختلف أسماء الملفات ومواضعها بين الأدوات، لكن مبادئ الكتابة متشابهة.
6. ثلاثة أنماط خاطئة في تصميم القواعد
1. «اتبع أفضل الممارسات من فضلك»
الطلب وحده لا يعرّف «أفضل الممارسات». حدّد الأساليب التي يعتمدها مشروعك وكيفية التحقق منها. ولعبارة «اختبر بما يناسب»، سمّ أوامر الاختبار المطلوبة وخطوة سير العمل التي يجب إيقافها إذا أخفقت.
2. تكرار القاعدة نفسها في ملفات متعددة
إذا وُضعت اصطلاحات الكوميت نفسها في CLAUDE.md وSPEC.md وREADME.md، فقد تتعارض النسخ الثلاث بعد التحديث. اختر مصدراً معتمداً واحداً واربط به من الملفات الأخرى.
3. كتابة «يجب قطعاً» في كل موضع
التشديد بالقدر نفسه على كل شرط يصعّب توصيل الأولويات. خصّص «CRITICAL» للشروط ذات العواقب الجسيمة فعلاً، واستخدم لغة عادية للباقي. تذكّر أن الإفراط في التشديد يفقده قيمته.
الخلاصة
عندما لا تُتّبع القواعد، افحص بالترتيب: شروط التحميل ← النطاق ← تعارض التعليمات ← نتائج التنفيذ. يُعاد إدراج CLAUDE.md الجذري بعد الضغط، فلا تفترض أن الضغط وحده سبب المشكلة. الإيجاز والتشديد ومراجعة الذكاء الاصطناعي وسائل مساعدة. ضع الشروط التي يمكن اختبارها بموثوقية في Hooks أو CI، وحدّد العمليات المسموح بها من إعدادات الأذونات.
دليل الاكتمال هو نتائج التنفيذ والمخرجات التي تغطي النطاق المطلوب، لا الرد «قرأته».
الأسئلة الشائعة
س1. ما الطول المثالي لملف CLAUDE.md؟
التوجيه الرسمي هو أقل من 200 سطر لكل ملف. ليس هذا حداً يتوقف عنده التحميل ولا ضماناً للالتزام. احتفظ بالقواعد المطلوبة كل مرة، وافصل التفاصيل مع شروط صريحة لقراءتها. استيراد تلك التفاصيل كلها من جديد لا يقلل سياق البدء.
س2. هل أستخدم .cursorrules أم .cursor/rules/*.mdc في Cursor؟
للإعداد الجديد، استخدم .cursor/rules/*.mdc. اجعل لكل ملف قاعدة واحدة، مع أنماط glob لتحديد نطاقها. أما الصيغة القديمة .cursorrules فهي ملف واحد قد يصعب تنظيمه عندما يكبر.
س3. هل تزيد القواعد الطويلة صرامة التنفيذ؟
الطول وحده لا يجعل القواعد أشد صرامة. قد تساعد إضافة الشروط والأمثلة اللازمة، لكن تجنب التكرار والتناقض. تحقق مما يُحمّل ومن الشروط التي يمكن فحصها فعلياً.
س4. ماذا لو استخدمت أدوات متعددة مثل Claude Code وCursor في مشروع واحد؟
احتفظ بمصدر معتمد واحد للقواعد المشتركة، مع نقاط دخول وإعدادات منفصلة لكل أداة. يدعم Codex وCursor ملف AGENTS.md. وفي Claude Code يمكن أيضاً استيراد @AGENTS.md من ملف CLAUDE.md يُحمّل فعلاً. لكن نطاق اكتشاف الملفات وإعدادات الاستبعاد يختلفان. وجود الملف المشترك في المشروع لا يثبت وصوله إلى كل أداة.
س5. هل يمكن أن يقول الذكاء الاصطناعي «قرأته» من دون أن يكون قد قرأه؟
الرد وحده لا يثبت أن الملف لم يُقرأ، ولا يثبت أنه قُرئ. استخدم خطوات التشخيص في هذا المقال لفحص عرض التحميل، وقارنه بالفروق ونتائج الاختبارات وسجل التنفيذ.