بوريس شيرني — الراجل اللي عمل Claude Code نفسه في Anthropic — اتكلم في thread على X عن بعض النصايح وأهم الممارسات اللي بيشتغل بيهم يومياً وهو بيستعمل Claude ولكن النصايح دي ممكن نعتبرها إنها حجر أساس في التعامل مع الـ AI Driven Development 🚀

1. شغّل 5 instances في نفس الوقت

بوريس مش بيشتغل بـ Claude Code بـ Instance واحدة. ولكن هو بيفتح 5 sessions في نفس الوقت في الـ terminal، وكل session بتكون في git checkout منفصل للـ repo نفسه. وبناء على ده علشان يقدر يواكب بين الـ 5 sessions بيرقّم الـ tabs من 1 لـ 5 وبيشغّل الـ system notifications عشان يعرف لما أي Claude Session تحتاج رأيه.

~/repo-1 $ # Tab 1: Working on feature ~/repo-2 $ # Tab 2: Running tests ~/repo-3 $ # Tab 3: Code review ~/repo-4 $ # Tab 4: Debugging ~/repo-5 $ # Tab 5: Documentation
الفكرة بسيطة: كل session بتاخد وقت، فبدل ما تستنى واحدة تخلص وتفضل مستني، شغّل 5 وروح اعمل حاجة أي حاجة تانية.

2. استعمل الـ web + mobile في نفس الوقت

بالإضافة للـ terminal، هو بيشغّل 5 لـ 10 sessions تانيين على الـ claude.ai/code — من المتصفح. وكمان بيعمل handoff بينهم بسهولة بالـ & command أو الـ --teleport flag.

& — Background a session
--teleport — Switch contexts between local and web

وفيه حاجة تانية: بيبدأ الـ sessions من موبايله الصبح، وبعدين لما يجي يقعد على اللابتوب يكمل من المكان اللي وقف فيه. يعني نقدر نقول إن Claude بيشتغل حتى وهو نايم 🤣

3. Opus 4.5 مع الـ Thinking Mode

ناس كتير بتشتغل بـ Sonnet عشان أسرع وأرخص. ولكن بوريس عنده وجهة نظر مختلفة — هو دايماً بيستخدم Opus 4.5 مع الـ thinking mode.

فمنطقه: أينعم هو أكبر وأبطأ ولكن هو أحسن في الـ tool use وبيحتاج توجيه أقل، وكده كده في الآخر بيخلص الشغل بشكل أسرع من اللي بيستخدم نموذج أصغر ويفضل يصحح وراه كل شوية.

4. CLAUDE.md مشترك للفريق كله

الفريق بيعمل CLAUDE.md واحد محطوط في الـ git، والكل بيضيف فيه كذا مرة في الأسبوع. كل ما Claude يعمل غلطة، بيضيفوها في الـ CLAUDE.md عشان متتكررش تاني.

claude-cli $ cat CLAUDE.md # Development Workflow **Always use `bun`, not `npm`.** # 1. Make changes # 2. Typecheck (fast) bun run typecheck # 3. Run tests bun run test -- -t "test name" # Single suite bun run test:file -- "glob" # Specific files # 4. Lint before committing bun run lint:file -- "file1.ts" # Specific files bun run lint # All files # 5. Before creating PR bun run lint:claude && bun run test

فنقدر نعتبر ده نوع من الذاكرة المرجعية — مش بس للكود، ولكن لـ Claude نفسه.

5. @.claude في الـ Code Review

بوريس بيعمل @.claude mentions على الـ PRs عشان يضيف learnings جديدة للـ CLAUDE.md كجزء من الـ PR نفسه.

مثلاً:

// Example PR comment: nit: use a string literal, not ts enum @claude add to CLAUDE.md to never use enums, always prefer literal unions

واداله اسم: "Compounding Engineering" — يعني كل PR بيخلي Claude أحسن في الـ PR الجاي. نقدر نعتبرها عملية Iterative لتحسين Claude وتدريبه أكتر على الـ Conventions والـ Repo الخاصة بالفريق.

6. دايمًا ابدأ بالـ Plan Mode

معظم الـ sessions بيبدأها بالـ Plan mode (shift+tab مرتين). بيفضل يعدّل على الـ plan مع Claude أكتر من مرة لحد ما يوصل لـ Plan محكمة وراضي عنها، وبعدين يحوّل Claude للـ auto-accept.

الفكرة ببساطة: plan كويس = إن Claude بيعمل الشغل من أول مرة بدون تصحيحات ولف كتير.

7. Slash Commands للحاجات اللي بتتكرر

أي workflow بيعمله أكتر من مرة في اليوم، بيحوّله لـ slash command. الـ commands دي محطوطة في .claude/commands/ وموجودة في الـ git للفريق كله.

> /commit-push-pr  /commit-push-pr Commit, push, and open a PR

ميزة قوية: الـ slash commands تقدر تاخد bash commands جوّاها عشان تحسب حاجات (زي git status) قبل ما Claude يبدأ، من غير ما يعمل extra Model calls.

8. استعمال الـ Subagents للـ Workflows الشائعة

بوريس بيفكر في الـ subagents كـ automations للـ PR workflows. عنده agents زي:

  • code-simplifier — بينظف الكود بعد ما Claude يخلص
  • verify-app — بيعمل end-to-end testing مفصّل
▼ .claude ▼ agents ↓ build-validator.md ↓ code-architect.md ↓ code-simplifier.md ↓ oncall-guide.md ↓ verify-app.md

9. PostToolUse Hooks للـ Formatting

الفريق عامل PostToolUse hook بيعمل auto-format للكود اللي كتبه Claude بعد كل write أو edit .. كده كده Claude بيكتب كود منسق بنسبة 90٪ من الوقت، ولكن الـ hook بيغطي الـ 10٪ اللي ممكن تكسر الـ CI.

"PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "bun run format || true" } ] } ]

10. Pre-allow الـ permissions الآمنة

بدل --dangerously-skip-permissions اللي بيـ skip كل الحماية، بوريس بيستخدم /permissions علشان يضيف الـ commands الآمنة اللي عارف إنها تمام — زي bun run test وbun run build وغيرهم. بدل ما كل شوية Claude يسأله على الـ permissions.

> /permissions Permissions: Allow Ask Deny Workspace Claude Code won't ask before using allowed tools. ↑ 12. Bash(bq query:*) 13. Bash(bun run build:*) 14. Bash(bun run lint:file:*) 15. Bash(bun run test:*) 16. Bash(bun run test:file:*) 17. Bash(bun run typecheck:*) 18. Bash(bun test:*) 19. Bash(cc:*) 20. Bash(comm:*) > 21. Bash(find:*)

11. Tool Integrations — Claude بيشتغل بأدواتك

Claude Code عنده بيستخدم الأدوات بتاعته بشكل تلقائي وسهل زي:

  • Slack (عن طريق MCP server) — بيسيرش ويبعت messages
  • BigQuery — بيـ run queries بالـ CLI
  • Sentry — بياخد error logs ويقدر يعرف المشكلة فين علطول

وكل ده من غير أي تدخل بشري. أنت بس بتكلم Claude وهو بيقوم بده بالنيابة عنك.

claude-cli-2 $ cat .mcp.json { "mcpServers": { "slack": { "type": "http", "url": "https://slack.mcp.anthropic.com/mcp" } } }

12. Long-running tasks

للـ tasks اللي بتاخد وقت طويل، بوريس بيخلّي Claude يشتغل من غير ما يوقف:

  • Claude يعمل verify بـ background agent لما يخلص ويبعتNotification على سبيل المثال.
  • agent Stop hook لـ checks محددة ، فمثلا لو Claude احتاج Permission أو Input ممكن يكلم Script ويشوف ويقرر علطول هل مفروض يكمل ولا يستنى.
  • plugins زي ralph-wiggum للـ sandboxed environments خصوصا لما Claude بيكون كل شوية هيسأل على الـ Permissions فبالشكل ده ممكن نعمل على --dangerously-skip-permissions الـ sandboxed environments لإننا عارفين إن مفيش حاجة خطيرة خايفين إن Claude ممكن ياخد عليها action.

13. أهم نصيحة: خلّي Claude يتحقق من شغله

ودي هي أهم نصيحة من بوريس:

"أهم حاجة عشان Claude يدّي نتيجة كويسة: هو إنك تديله طريقة يتحقق بيها من شغله. فلو عنده feedback loop، سعتها الـ quality بتتضاعف ٢ لـ ٣ مرات."

فبوريس بيستخدم Claude Chrome extension — عشان بيفتح الـ browser، ويعمل test للـ UI changes، وبيعدّل ويفضل يـ iterate لحد ما كل حاجة تبقى مظبوطة والـ verification مظبوط.

ومش بالضرورة إن لازم browser — ممكن يكون bash commands، test suite، simulator، أي حاجة بتدّي Claude feedback على شغله.

في الختام

ده كان الجزء الأول من النصايح اللي بوريس نشرها وشاركها مع الناس عشان يحسنوا من طريقة استعمالهم لـ Claude .. ناس كتير بتستعمل Claude Code وبتلاقي نتايجه غير مرغوبة — وده لإن في الأغلب مفكروش في الـ workflow بالشكل ده قبل كده.