فهرس المحتويات
- 1. ما المقصود بـ "Bypass" أصلاً؟
- 2. السبب الحقيقي: نظام الأذونات ذو الطبقتين
- 3. الطبقة الأولى: واجهة أذونات الأدوات (قابلة للتحكم بـ Bypass)
- 4. الطبقة الثانية: الحكم الأمني للذكاء الاصطناعي (غير قابلة للتحكم بـ Bypass)
- 5. العمليات التي يطلب فيها Claude التأكيد من تلقاء نفسه
- 6. لماذا طبقتان؟ فلسفة التصميم
- 7. طرق عملية لتقليل طلبات التأكيد
- 8. ملخص
- الأسئلة الشائعة
لقد ضبطت خيار --dangerously-skip-permissions في Claude Code، غير أن Claude لا يزال يرسل رسائل في المحادثة يسأل فيها "هل يمكنني تنفيذ هذه العملية؟". هل تبدو هذه الحالة مألوفة؟
قد يتبادر إلى ذهنك أن "الـ bypass لا يعمل"، لكن هذا ليس ما يجري. فنظام أذونات Claude Code يتكون من طبقتين مستقلتين، ووضع bypass لا يتحكم إلا في إحداهما.
تتناول هذه المقالة كل شيء، من "ما هو الـ bypass فعلاً" إلى الفرق بين طبقتي الأذونات، وأنواع العمليات التي يطلب فيها Claude التأكيد من تلقاء نفسه، والطرق العملية لتقليل طلبات التأكيد عند العمل بشكل آلي.
1. ما المقصود بـ "Bypass" أصلاً؟
في مجال البرمجيات، يعني "bypass" (التجاوز) تخطي عملية التأكيد أو الموافقة المعتادة والمضي قدماً مباشرةً. تخيّل زر "اشتر الآن" في موقع تسوق الذي يتجاوز شاشة المراجعة — هذا بالضبط تجاوز لتدفق التأكيد.
في الوضع الافتراضي لـ Claude Code، تظهر نافذة تأكيد قبل تنفيذ أي تعديل على ملف أو تشغيل أي أمر في الصدفة.
# الوضع الافتراضي: تأكيد قبل كل إجراء
$ claude
> Please fix index.js
[Claude] May I edit this file? [y/n]
وضع تجاوز الأذونات يتخطى (يتجاوز) تدفق التأكيد هذا.
# وضع Bypass: لا تظهر نوافذ التأكيد
$ claude --dangerously-skip-permissions
# أو
$ claude --permission-mode bypass
لاحظ أن الخيار يتضمن كلمة dangerously (بخطورة). تُحدد Anthropic هذا الوضع بوضوح على أنه مخصص للحاويات أو البيئات المعزولة فقط، وليس موصى به للتطوير المحلي اليومي. للاطلاع على تفاصيل مخاطر وضع bypass، راجع وضع تجاوز أذونات Claude Code: المخاطر والاستخدام الآمن.
2. السبب الحقيقي: نظام الأذونات ذو الطبقتين
الإجابة على سؤال "لماذا يظهر التأكيد حتى مع تفعيل bypass" هي أن نظام أذونات Claude Code مبني على طبقتين مستقلتين.
الخلط بين هاتين الطبقتين هو جذر سوء الفهم القائل بأن "الـ bypass لا يعمل". لنستعرض كل طبقة بالتفصيل.
3. الطبقة الأولى: واجهة أذونات الأدوات (قابلة للتحكم بـ Bypass)
الطبقة الأولى هي نافذة التأكيد التي تظهر قبل تنفيذ الأداة — واجهة المستخدم التفاعلية التي تظهر عندما يكون Claude Code على وشك تعديل ملف أو تشغيل أمر في الصدفة.
| الأداة | مثال على نافذة التأكيد |
|---|---|
| تعديل الملف | "هل يمكنني تعديل index.js؟" |
| تنفيذ Bash | "هل يمكنني تشغيل npm install؟" |
| الوصول للويب | "هل يمكنني الوصول إلى https://...؟" |
هذه بالضبط هي الطبقة التي يعطّلها وضع bypass. عند استخدام --dangerously-skip-permissions، لا تظهر أي من هذه النوافذ ويمكن لـ Claude تنفيذ الأدوات بحرية. بهذا المعنى، يعمل وضع bypass بشكل صحيح.
ملاحظة: هناك 5 أوضاع للأذونات
يمتلك Claude Code خمسة أوضاع للأذونات: default (الافتراضي)، وacceptEdits (قبول التعديلات)، وplan (التخطيط)، وauto (تلقائي)، وbypassPermissions (تجاوز الأذونات). يُعدّ وضع bypass (bypassPermissions) الأقل تقييداً. لمعرفة تفاصيل كل وضع، راجع شرح وضع bypass.
4. الطبقة الثانية: الحكم الأمني للذكاء الاصطناعي (غير قابلة للتحكم بـ Bypass)
الطبقة الثانية هي الحكم الأمني المستقل لـ Claude، وهي منفصلة تماماً عن واجهة تأكيد الأدوات.
عندما يرى Claude أن عملية ما قد تترتب عليها عواقب مهمة، فإنه يرسل رسالة تأكيد في المحادثة كنص عادي. هذا ليس آلية تنفيذ أداة — بل هو السلوك الحواري لـ Claude بوصفه ذكاءً اصطناعياً.
--dangerously-skip-permissions يتخطى نوافذ واجهة الطبقة الأولى، لكنه لا يؤثر على حكم الذكاء الاصطناعي في الطبقة الثانية — لأن الطبقة الثانية مبدأ سلوكي مدمج في نموذج Claude ذاته.
سوء الفهم الشائع
"فعّلت وضع bypass لكن Claude توقف → الـ bypass لا يعمل"
→ الأدق أن يُقال: "واجهة الطبقة الأولى معطّلة، لكن الحكم الأمني للطبقة الثانية يطلب التأكيد." الـ bypass يعمل بشكل صحيح تماماً.
5. العمليات التي يطلب فيها Claude التأكيد من تلقاء نفسه
تندرج معايير Claude الداخلية لـ"ينبغي لي التأكيد على هذا" ضمن ثلاث فئات رئيسية.
① عدم القابلية للتراجع
العمليات التي لا يمكن التراجع عنها تجعل Claude أكثر حذراً. الحذف الدائم للملفات، وgit push --force، وDROP TABLE أبرز الأمثلة على ذلك. ولأن الأخطاء يصعب تداركها، يتوقف Claude ويسأل.
② نطاق التأثير
الإجراءات التي تؤثر على بيئات الإنتاج أو عدد كبير من الملفات أو مستخدمين آخرين تستدعي مزيداً من التأكيدات. تغيير ملف محلي واحد نادراً ما يثير سؤالاً؛ أما تعديل مخطط قاعدة بيانات الإنتاج فيكاد يستدعي التأكيد في كل مرة.
③ المخاطر الأمنية
العمليات التي ترسل ملفات .env أو رموز المصادقة أو مفاتيح API إلى الخارج يصنّفها Claude على أنها مخاطر أمنية عالية، فيسأل قبل المضي قدماً.
هذه الأحكام مدمجة في نموذج الذكاء الاصطناعي الخاص بـ Claude ولا يمكن إيقافها بالكامل عبر الإعدادات. لمزيد من المعلومات حول تصميم عمل وكلاء الذكاء الاصطناعي بأمان، راجع ما هو وكيل الذكاء الاصطناعي؟.
6. لماذا طبقتان؟ فلسفة التصميم
إليك تشبيهاً يجعل تصميم الطبقتين سهل الفهم.
تخيّل أنك توظّف مقاولاً لتجديد غرفة وتعطيه مفتاحاً احتياطياً، قائلاً له "يمكنك فعل ما تحتاج إليه". هذا يعادل منح أذونات الأدوات.
لكن عندما يكون المقاول على وشك هدم جدار ويسأل "هل هذا جدار حامل؟ هل أنت متأكد من أنك تريد إزالته؟" — فهو يسأل بناءً على حكمه المهني الخاص، لا لأنه فقد المفتاح.
إعطاؤه المفتاح لا يوقف المقاول عن التفكير. حكمه المهني ووعيه بالسلامة يعملان باستقلالية تامة عن المفتاح.
يعمل Claude بالطريقة ذاتها. وضع bypass يمنح Claude "مفتاح استخدام الأدوات"، لكنه لا يوقف حكم الذكاء الاصطناعي لـ Claude. في الواقع، توقف Claude قبل العمليات عالية المخاطر هو ميزة أمان مقصودة، وليس عطلاً.
7. طرق عملية لتقليل طلبات التأكيد
في مسارات CI/CD وسيناريوهات الأتمتة الأخرى، قد تحتاج إلى أن يُكمل Claude المهام دون توقف. فيما يلي أكثر الأساليب فاعلية.
الأسلوب الأول: استخدام CLAUDE.md لتوفير السياق
أنشئ ملف CLAUDE.md في جذر مشروعك موضحاً فيه البيئة والقيود. عندما يفهم Claude أن "هذه بيئة آمنة معزولة"، تنخفض وتيرة التأكيد بشكل ملحوظ.
# About This Environment
This repository runs inside a CI/CD pipeline test environment.
- Runtime: fully isolated Docker container
- Production impact: none
- All changes are rollback-safe
Please proceed without asking for extra confirmation.
الأسلوب الثاني: إعطاء تعليمات صغيرة ومحددة
التعليمات المبهمة تزيد من حالة عدم اليقين لدى Claude وتثير المزيد من التأكيدات.
| نوع التعليمات | مثال | معدل التأكيد |
|---|---|---|
| مبهم | "نظّف هذا المشروع" | مرتفع |
| محدد | "احذف جميع ملفات .log داخل /tmp/" | منخفض |
| مبهم | "انشر التطبيق" | مرتفع |
| محدد | "شغّل npm run deploy:staging على بيئة staging" | منخفض |
الأسلوب الثالث: جرّب وضع Auto أولاً
قبل اللجوء إلى وضع bypass الكامل، جرّب وضع auto. يشغّل مصنّف أمان في الخلفية مع الموافقة التلقائية على معظم العمليات. إذا كان سبب استخدامك لـ bypass هو فقط "لقد سئمت من طلبات التأكيد"، فقد يكون وضع auto كافياً.
تحذير مهم
لا يمكن لأي إعداد أن يُقلّل حكم Claude الأمني إلى صفر مطلق. هذا أمر مقصود — وليس خطأً أو قيداً. بالنسبة للعمليات عالية المخاطر، يُعدّ طلب Claude للتأكيد سلوكاً صحيحاً. تقبّله باعتباره جزءاً من التصميم.
8. ملخص
| العنصر | التفاصيل |
|---|---|
| ما هو الـ bypass | تخطي نوافذ تأكيد ما قبل الأداة (الطبقة الأولى) |
| ما يعطّله الـ bypass | واجهة أذونات الأدوات ("هل يمكنني تشغيل هذا الأمر؟") |
| ما لا يعطّله الـ bypass | الحكم الأمني للذكاء الاصطناعي في Claude (التأكيد المرسل كنص محادثة) |
| معايير تأكيد Claude | عدم القابلية للتراجع، نطاق التأثير، المخاطر الأمنية |
| كيفية تقليل التأكيدات | سياق CLAUDE.md / تعليمات محددة / وضع auto |
| سبب وجود طبقتين | إذن الأداة والحكم الأمني للذكاء الاصطناعي مفهومان منفصلان جوهرياً |
عندما يطلب Claude التأكيد حتى في وضع bypass، هذا لا يعني أن الـ bypass توقف عن العمل — بل إن نظامين مستقلين يؤديان دورهما ببساطة. إن فهم هذا الفرق يساعدك على التنبؤ بدقة بسلوك Claude Code واستخدامه بكفاءة أعلى.
لفهم الاختلافات بين منتجات Claude المختلفة، راجع Claude.ai مقابل Claude Code: ما الفرق؟.
الأسئلة الشائعة
هل يمكنني الحصول على صفر تأكيدات مع وضع bypass؟
يمكنك تعطيل نوافذ واجهة تنفيذ الأدوات (الطبقة الأولى)، لكن لا يمكنك القضاء كلياً على تأكيدات الحكم الأمني للطبقة الثانية. هذه ميزة أمان مقصودة. غير أن توثيق بيئتك بعناية في CLAUDE.md وإعطاء تعليمات محددة يمكن أن يُقلّل بشكل كبير من وتيرة سؤال Claude.
هل طلب Claude للتأكيد يُعدّ خطأً تقنياً؟
لا. وضع bypass يتخطى واجهة أذونات الأدوات، لا الحكم الأمني للذكاء الاصطناعي في Claude. توقف Claude قبل العمليات غير القابلة للتراجع أو بيئات الإنتاج أو البيانات الحساسة هو سلوك أمان مقصود — وليس عطلاً. إنه ليس "عدم عمل الـ bypass"، بل "نظامان يعملان باستقلالية."
كيف أمنع Claude من التوقف في مسارات CI/CD؟
ثلاثة أشياء تفيد كثيراً: ① صرّح صراحةً في CLAUDE.md أو system prompt بأن "هذه بيئة CI/CD معزولة تماماً وجميع العمليات تعمل بأمان"، ② أعط تعليمات مهام صغيرة ومحددة (التعليمات المبهمة تثير مزيداً من التأكيدات)، ③ ادمج وضع bypass مع عزل حاوية Docker. لاحظ أن بعض التوقف قد يظل يحدث حتى مع تطبيق الثلاثة معاً.
هل يمكنني التمييز بصرياً بين نافذة الأداة وتأكيد Claude؟
نعم. تظهر نوافذ أذونات الطبقة الأولى في طرفية Claude Code كواجهة تفاعلية مثل "Allow bash command? [y/n]". أما تأكيدات الحكم الأمني للطبقة الثانية فتظهر كنص محادثة عادي من Claude (مثل "سيؤدي هذا إلى تعديل قاعدة بيانات الإنتاج — هل أنت متأكد؟"). تنسيق العرض مختلف تماماً، لذا يسهل التمييز بينهما بمجرد التعوّد على ذلك.