قبل ما تبدأ أي feature، بص إنت في أنهي mode، لأن الـ mode هو اللي بيحدد Claude هياخد قد إيه حرية.
بيسألك قبل أي حاجة محتاجة موافقتك. كويس أول مرة عشان تفهم هو بيعمل إيه.
تعديل الملفات العادي بيعدّي من غير ما يسألك كل مرة.
- Plan: بيقرا ويفكر ويخطط، بس مش بيعدّل الكود لحد ما توافق على الخطة.
- Auto: بيوافق لنفسه على حاجات كتير، بعد ما يتأكد إنها ماشية مع اللي إنت طلبته.
وفيه modes تانية للشغل المقفول أو المعزول أكتر، بس مش محتاجها دلوقتي. بتبدّل بين الـ modes بـ Shift+Tab في الترمينال، أو من تحت في الـ extension.
لو إنت على Auto ومش شايف أسئلة كتير، ده مش معناه إن الـ permissions مش شغالة. معناه إنك مديه حرية أكتر.
ليه محتاج permissions أصلًا؟
لو اشتغلت بـ Manual، هتلاقيه بيسألك على كل حاجة: أفتح الموقع ده؟ أعمل web search؟ أعدّل الملف ده؟ وبعد شوية هتقول: هو أنا لازم أوافق على كل حاجة كل مرة؟
هنا الـ permissions بتفيد. إنت اللي بتقرر إيه يتعمل لوحده، وإيه يسألك عليه الأول، وإيه ممنوع خالص.
allow و ask و deny
- allow: يعمل الحاجة دي من غير ما يسألك.
- ask: لازم يقف ويستنى موافقتك.
- deny: Claude Code نفسه بيمنعها.
لو أكتر من rule انطبقوا على نفس الحاجة، بيبص عليهم بالترتيب ده: deny الأول، بعدين ask، بعدين allow. يعني الـ deny دايمًا بيكسب.
/permissions بيوريك كل الـ rules اللي عندك دلوقتي.
ولما Claude يسألك، هتلاقي اختيار “وافق المرة دي بس” واختيار “متسألنيش تاني”. ده مفيد، لأن مش منطقي توافق على pnpm build للمرة الـ 15. بس متدوسش “متسألنيش تاني” على كل حاجة من غير ما تفهم إنت بتسمح بإيه.
الـ settings بتاعة المتجر
الـ permissions بتاعة المشروع بتتكتب في .claude/settings.json:
{ "permissions": { "allow": ["Bash(pnpm build)", "Bash(pnpm test)", "Bash(git status)"], "ask": ["Bash(git push*)"], "deny": ["Read(.env)", "Read(.env.*)"] }}كده الأوامر العادية زي build و test و git status بتعدّي من غير ما يسألك. الـ git push بيسألك الأول. وملفات الـ .env ممنوع يقراها. الشكل الدقيق للـ patterns راجعه في الـ docs.
الفرق بين CLAUDE.md والـ permissions
يعني CLAUDE.md لحاجات زي “استخدم الـ design system الموجود”. والـ permissions لحاجات زي “الملف ده ممنوع تقراه”.
جرّب القفل بنفسك
متعملش الـ rule وتفترض إنها شغالة. انسخ .env.example لملف .env، وحط فيه باسورد وهمي، وبعدين اطلب من Claude يقراه.
المفروض يرد إنه مش قادر، لأن الملف ممنوع في الـ permissions. وفي الكورس Claude قال كمان إنه مش هيحاول يلف حوالين المنع بأمر cat، لأن الـ rule واضح إنها على محتوى الملف.
الهدف مش إنك تلغي كل الأسئلة. الهدف إنك تشيل الأسئلة المملة اللي فاهمها، وتفضل متحكم في الحاجات المهمة. وصاحب الكورس بيقول إن الـ Auto mode بقى كويس لدرجة إنه بيسيبه شغال أغلب الوقت.