في المستوى الخامس تعلّمت لماذا تضيف الأوامر المملّة إلى الـ allowlist: حين يتوقّف Claude عن السؤال عن git status للمرة الأربعين، تصبح الطلبات التي تراها فعلًا مستحيلة التجاهل. وعدناك بأنك سترى أين تعيش تلك القائمة حقًّا. هنا المكان.
الـ allowlist يعيش في ملف اسمه
settings.json، وفي كل مرة تختار فيها “Allow always” على طلب إذن، فأنت تكتب بهدوء سطرًا فيه.
كنت تكتبه بالفعل
إليك ما لا يدركه معظم الناس: حين يظهر طلب إذن في المحادثة وتنقر “Allow always” بدلًا من “Allow once” فقط، يكتب Claude تلك القاعدة في settings.json نيابة عنك. لعلّك كنت تبني allowlist منذ مدة دون أن تفتح ملفًّا واحدًا.
إذًا settings.json ليس ملف config مخيفًا عليك تأليفه من الصفر. إنه سجلّ لقرارات اتّخذتها بالفعل — والآن يمكنك قراءته وتعديله مباشرة.
كيف يبدو
افتحه في لوحة الملفات داخل التطبيق، فيقرأ قسم الـ permissions كأنه لغة طبيعية تقريبًا:
{
"permissions": {
"allow": [
"Bash(git status:*)",
"Bash(git diff:*)",
"Bash(ls:*)",
"Bash(npm test:*)"
],
"deny": [
"Bash(git push:*)"
]
}
}
allow هي القائمة الخضراء — شغّل هذه دون سؤال. وdeny هي القائمة الحمراء — لا تشغّل هذه أبدًا، ولا تسأل حتى. أيّ شيء ليس في أيّ من القائمتين يمرّ بحلقة «اسألني أولًا» المعتادة. يمكنك تعديل هذه يدويًّا: أضف سطرًا إلى allow فيتوقّف الطلب لذلك الأمر؛ أضف واحدًا إلى deny فلن يلمسه Claude.
(لا تقلق بشأن إتقان صيغة Bash(...) من الذاكرة — فالنقر على “Allow always” يكتبها لك بشكل صحيح، ويمكنك نسخ النمط. ويمكنك أيضًا أن تطلب من Claude في المحادثة فحسب: «أضِف git status إلى الـ allowlist لديّ.»)
أين يعيش إعداد “Ask permissions”
قابلت وضع “Ask permissions” في المستوى الخامس — الإعداد المنصوح به الذي يجعل Claude يستأذنك قبل أيّ شيء محفوف بالمخاطر. ذلك الاختيار، ومدى تكرار توقّف Claude للسؤال، هو إعداد أيضًا. يمكنك تبديله من قائمة الإعدادات داخل التطبيق دون تعديل أيّ ملف، أو تشغيل /config في المحادثة لفتح الضوابط نفسها. الـ allowlist ووضع الـ permission نصفان للقرص نفسه: الوضع يقرّر مدى حذر Claude، والـ allowlist ينحت الاستثناءات المملّة المحدّدة.
ثلاثة ملفات، الفكرة نفسها التي رأيتها طوال المستوى
settings.json يتبع التقسيم نفسه بين المشروع والشخصي كما في CLAUDE.md والـ commands:
.claude/settings.json— في الـ repo، مشترك مع الفريق. قواعد ينبغي أن تكون لدى الجميع.~/.claude/settings.json— مجلدك الرئيسي، ينطبق على كل مشروع، لك وحدك..claude/settings.local.json— في المشروع لكنه خاصّ بك (يتجاهله git). تعديلاتك الشخصية لـ repo واحد.
افتراضيًّا، يكتب “Allow always” في ملفّك المحلّي — فلا يُفرَض allowlist الشخصي على زملائك. إن أردت مشاركة قاعدة، فانقل ذلك السطر عن قصد إلى .claude/settings.json المُودَع (في لوحة الملفات، أو فقط اطلب من Claude أن يفعلها).
الافتراض الآمن: دع “Allow always” يبني قائمتك المحلّية الخاصة. ولا ترقِّ قاعدة إلى الملف المشترك إلا حين تقرّر أن الفريق كلّه ينبغي أن يحصل عليها.
الانضباط ما زال ساريًا
تعديل الملف يدويًّا أسرع من النقر، مما يسهّل التهوّر. قاعدة المستوى الخامس لم تتغيّر: لا تضف أمرًا إلى الـ allowlist إلا إذا كنت ستشغّله بنفسك دون تردّد، ونمِّ القائمة ببطء. الملف فقط يجعل القائمة مرئية — لا يغيّر ما يستحقّ أن يكون فيها.
في مسار
Power Track: نسخة الـ Terminal من Claude Code تقرأ ملفاتsettings.jsonنفسها. هناك يمكنك أيضًا تمرير allowlist في سطر الأوامر حين تشغّله (الـ flag باسم--allowedTools)، لكن القواعد الدائمة تعيش في هذه الملفات بالضبط — فكل ما تُعدّه على Desktop ينتقل معك، والعكس صحيح.
ما التالي
التقيت الآن كل مفتاح ضبط: CLAUDE.md، والـ memory، والـ slash commands، والـ settings. الدرس الأخير يجمعها كلّها في إعداد واحد مدّته عشرون دقيقة — Claude الشخصي الخاص بك، مُهيَّأً على الطريقة التي تعمل أنت بها.