Loading blog posts...
Loading blog posts...
جاري التحميل...

يبدو أداء Claude Code مذهلاً في الدقائق العشر الأولى، ثم فجأة يبدأ في تجاهل القيود، أو تعديل الملفات الخاطئة، أو "نسيان" القرارات التي اتخذتها سابقاً. من واقع ما رأيت، هذا التراجع في الأداء لا يعني عادة أن النموذج "سيء"، بل يعود السبب غالباً إلى سوء إدارة "نافذة السياق" (Context Window) وغياب القواعد الثابتة الخاصة بالمستودع (Repo).
فيما يلي أفضل ممارسات استخدام Claude Code التي تعتمدها الفرق التقنية في عام 2026، مع أنماط جاهزة للنسخ وملف CLAUDE.md جاهز للإنتاج يساعد في الحفاظ على اتساق النتائج عبر الجلسات وبين المطورين.
إليك الحقيقة: أحد أكثر الأخطاء شيوعاً هو لصق سجل بناء (build log) يتكون من 2000 سطر وسؤال النموذج "ماذا حدث؟". سيحاول Claude الإجابة بالتأكيد، لكنك ببساطة تكون قد استهلكت معظم مساحة "نافذة السياق" على نصوص لن تكون مهمة بعد خمس دقائق.
bash ## Good workflow: summarize logs locally, then paste only the summary + a few critical lines pytest -q 2>&1 | tail -n 80 # Or capture full logs to a file and paste only the relevant excerpt pytest -q 2>&1 | tee /tmp/test.log rg -n "FAIL|ERROR|Traceback" /tmp/test.log | head -n 40
نافذة سياق النموذج محدودة، وتميل دقتها للانخفاض كلما امتلأت بسجل المحادثة والملفات الملصقة والمخرجات الطويلة. النتيجة العملية بسيطة جداً: تعامل مع السياق كما تتعامل مع الذاكرة العشوائية (RAM). احتفظ فقط بما يحتاجه الوكيل (Agent) لاتخاذ القرار التالي، وليس كل ما رأيته أثناء عملية التصحيح (رغم أن ذلك قد يكون مغرياً).
Tip
[!TIP] عندما تكون المخرجات طويلة، الصق ما يلي فقط: 1) الأمر الذي قمت بتشغيله، 2) سطر الخطأ الرئيسي، 3) 20 إلى 80 سطراً حول الخطأ، 4) ما حاولت فعله مسبقاً.
إذا كانت المهمة تتطلب عدة ملفات، لا تضعها كلها دفعة واحدة. قدم خريطة للمستودع أولاً، ثم اسحب فقط الملفات التي يطلبها Claude.
textRepo map: - apps/web: Next.js app, routes in app/ - packages/ui: shared components - packages/api: tRPC router + zod schemas Goal: fix login redirect loop in apps/web. Files likely involved: apps/web/middleware.ts, apps/web/app/login/page.tsx Do not touch: packages/ui
نمط "خريطة المستودع ثم الطلب" يبقي النموذج مركزاً على الهيكلية والقصد، بدلاً من الغرق في النصوص الخام. كما أنه يقلل من التعديلات العرضية في المناطق غير ذات الصلة لأن الحدود واضحة. للحصول على توجيهات رسمية حول هذا القيد، راجع Best Practices for Claude Code.
معظم حالات فشل Claude Code التي أراها في المستودعات الحقيقية تبدو هكذا: يحاول الوكيل أن يكون مفيداً فيقوم بتوسيع النطاق بصمت. الحل هو جعل الحدود "قابلة للتنفيذ" وليست مجرد تمنيات.
textTask: Add request-id propagation to our Node API. Scope: - Add `x-request-id` generation if missing. - Propagate to downstream fetch calls. Non-goals: - No logging changes. - No refactor of fetch wrapper. Acceptance criteria: - Unit test proves header is set and forwarded. - No public API shape changes. Required commands: - pnpm test --filter api
هذا الأسلوب ينجح لأنه يحول عبارة "افعل الشيء الصحيح" إلى قائمة مرجعية يمكن لـ Claude تحقيقها فعلياً. في الواقع، أنت تقلل الغموض، مما يعني أن الوكيل أقل عرضة لابتكار تغييرات إضافية فقط ليشعر بأنه "أنجز المهمة".
Warning
[!WARNING] إذا أهملت ذكر "Do not touch" (لا تلمس) و "Non-goals" (خارج الأهداف)، فغالباً ما يقوم Claude "بتنظيف" أسلوب الكود أو الأنواع (Types) عبر الملفات، مما يخلق فروقات (Diffs) مزعجة ويبطئ عملية المراجعة.
عادة أنصح بها بشدة: اطلب خطة قبل التعديل عندما يتجاوز التغيير حدود الوحدة البرمجية (Module boundaries).
textBefore coding: 1) List files you will change. 2) For each file, describe the minimal edit. 3) Confirm tests you will run. Wait for approval, then implement.
هذه الخطوة الواحدة تلتقط الكثير من أخطاء "الطبقة الخاطئة" مبكراً لأنك تستطيع رفض اختيارات الملفات قبل تطبيق أي تغييرات برمجية.
ابدأ بملف CLAUDE.md قصير، سهل المسح، وقابل للتنفيذ. لا تكتب "بياناً سياسياً" (Manifesto). اكتب القواعد التي تمنع الأخطاء المكلفة - تلك التي تكررها دائماً في مراجعات الكود (Code Review).
md## CLAUDE.md ## How to work in this repo - Default branch: `main` - Package manager: `pnpm` (do not use npm/yarn) - Node version: 20.x (see `.nvmrc`) - Formatting: run `pnpm lint` before final output ## Repo layout - `apps/web`: Next.js 15 app router - `apps/api`: Node API (Fastify) - `packages/shared`: shared types and utilities ## Do - Keep changes minimal and scoped to the task. - Add or update tests for behavior changes. - Prefer existing utilities over adding new dependencies. ## Don't - Do not rename public exports without approval. - Do not reformat unrelated files. - Do not change database migrations unless explicitly requested. ## Commands - Install: `pnpm i` - Tests: `pnpm test` - Web tests: `pnpm test --filter web` - API tests: `pnpm test --filter api` - Lint: `pnpm lint` - Typecheck: `pnpm typecheck` ## Code style rules - TypeScript: no `any` unless justified in a comment. - React: prefer server components unless client state is required. - Error handling: return typed errors, no stringly-typed error codes. ## PR checklist - Diff is minimal and matches scope. - Tests added/updated and passing. - No secrets in code or logs.
هذا الأمر مهم لأنه يحول "المعرفة القبلية" (Tribal Knowledge) إلى تعليمات دائمة تستمر عبر المحادثات وبين المطورين. يتبع Claude التعليمات بشكل هرمي، لذا يمكن لملف CLAUDE.md على مستوى المستودع تجاوز الافتراضات العامة مع الالتزام بمعايير المؤسسة (وهذا بالضبط ما تريده).
الفرق التي تبقي ملف CLAUDE.md قصيراً تحصل عادةً على التزام أفضل. المستندات الطويلة يتم تجاهلها لأنها صعبة المسح ومكلفة عند تحميلها في السياق. للحصول على أمثلة أعمق وأفكار حول الهيكلة، راجع The Complete Guide to CLAUDE.md، و Creating the Perfect CLAUDE.md for Claude Code، والأنماط المختارة في Awesome Claude.md.
أسرع طريقة للتوحيد القياسي هي إعداد من طبقتين: افتراضيات المؤسسة + تجاوزات المستودع (Repo Overrides). اجعل افتراضيات المؤسسة صغيرة وعالمية، ثم اترك لكل مستودع تحديد الأوامر، والتخطيطات، وقواعد "المنع" الصارمة.
md# [ORG] Claude defaults (share internally) ## Non-negotiables - Keep diffs small and reviewable. - Never change unrelated formatting. - Always state commands needed to validate changes. ## Output rules - Provide file paths for edits. - Include test commands to run. - If uncertain, ask one clarifying question, then proceed.
ثم في كل مستودع، يركز CLAUDE.md على ما هو فريد: قيود البنية، أوامر البناء، وعمليات إعادة الهيكلة (Refactors) المحظورة. هذا يمنع نمط الفشل الشائع حيث تتعارض "أفضل الممارسات" العامة مع واقع المستودع.
أحد الأنماط التي أفضلها (لأنها عملية) هو ترميز "ممرات إعادة الهيكلة الآمنة" بدلاً من حظر إعادة الهيكلة تماماً.
md## Safe refactors (allowed without extra approval) - Rename local variables inside a single function. - Extract helper functions within the same module. - Replace duplicated literals with existing constants. ## Refactors that require approval - Moving files across packages - Changing public exports - Introducing new runtime dependencies
هذا يجعل Claude أسرع لأنه لا يضطر للتخمين حول مستوى التغيير المقبول. كما أن المراجعة تصبح أسرع لأن شكل الـ Diff يطابق توقعات الفريق. لطرق النشر في الفرق وإعدادات "المهارات" المسبقة، راجع Claude Skills and CLAUDE.md: a practical 2026 guide for teams.
يعمل Claude Code بشكل أفضل عندما يتمكن من التحقق من التغييرات باستخدام أوامر حقيقية. قائمة الأدوات أدناه لا تتعلق بما هو "رائج"، بل بالحفاظ على حلقات التغذية الراجعة ضيقة (لأن الحلقات الضيقة هي ما يبقي الوكلاء صادقين).
يقوم Claude Code بتشغيل المهام داخل مشروعك ويمكنه تعديل الملفات، وتشغيل الاختبارات، والتكرار. هذا مهم لأن النموذج يمكنه إغلاق الدائرة من خلال التحقق من الافتراضات بالأوامر بدلاً من التخمين.
textClaude Code task format to paste into chat: - Goal: [ONE sentence] - Scope: [2-5 bullets] - Non-goals: [2-5 bullets] - Files: [explicit list or "ask first"] - Commands: [exact commands] - Acceptance criteria: [testable outcomes]
عندما تتبنى الفرق هذا التنسيق، فإنها تقلل من "انحراف الوكيل" (Agent Drift) حيث يغير النموذج طبقات إضافية ليشعر بالشمولية. كما يجعل مراجعة الـ PR أسرع لأن الـ Diff يتماشى مع النطاق المعلن.
التوثيق: Claude Code Best Practices
يقوم GitHub Actions بتشغيل نفس أوامر الاختبار والتدقيق (Lint) التي طُلب من Claude تشغيلها محلياً. هذا مهم لأنه يمنع مشكلة "إنه يعمل على جهازي" ويجبر الوكيل على احترام البوابات الحقيقية للمستودع.
yaml#.github/workflows/ci.yml name: ci on: [pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 9 - uses: actions/setup-node@v4 with: node-version-file: .nvmrc cache: pnpm - run: pnpm i --frozen-lockfile - run: pnpm lint - run: pnpm typecheck - run: pnpm test
لا تتجاوز الجزء الممل: طابق أوامر CLAUDE.md بدقة. إذا كان CLAUDE.md يقول pnpm typecheck ولكن الـ CI يشغل شيئاً آخر، فإن Claude "سينجح محلياً" ويفشل في الـ CI، وستضيع الوقت بلا سبب وجيه.
توقف خطافات ما قبل الالتزام (Pre-commit hooks) "انفجارات" التنسيق العرضية وإصلاحات الـ Lint المفقودة. هذا مهم لأن Claude قد يولد منطقاً صحيحاً لكنه يغفل قاعدة تنسيق أو استيراد يفرضها مستودعك (وهذا يحدث).
json// package.json { "lint-staged": { "*.{ts,tsx,js,jsx}": [ "eslint --fix", "prettier -w" ], "*.{md,json,yml,yaml}": [ "prettier -w" ] } }
هذا يقلل من ضجيج المراجعة ويحمي قاعدة "الحد الأدنى من الفروقات" (Minimal diff). كما يجعل مخرجات Claude أكثر قابلية للتنبؤ لأن شكل الـ Diff النهائي يتم فرضه ميكانيكياً.
يجد Ripgrep (rg) المراجع دون تحميل ملفات كاملة في المحادثة. هذا مهم لأنك تستطيع الإجابة على "أين يتم استخدام هذا؟" بـ 10 أسطر من المخرجات بدلاً من 500.
bash## Find where a header is set or forwarded rg -n "x-request-id|request[-_]?id" apps packages # Find the exact handler for a route rg -n "GET\\s+/login|/login" apps/web
النتيجة هي عدد أقل من "إغراق السياق" (Context dumps). يحصل Claude على مقتطفات مستهدفة، لذا فهو أقل عرضة لإجراء تعديلات واسعة.
أحياناً تكون أفضل الممارسات هي اختيار أداة مختلفة للمهمة.
| الأداة | أين تتألق | المقايضات (Trade-offs) | الأفضل لـ |
|---|---|---|---|
| Claude Code | تغييرات المستودع متعددة الخطوات مع الاختبارات | يحتاج لنطاق صارم لتجنب الانحراف | إعادة الهيكلة (Refactors)، شرائح الميزات |
| GitHub Copilot | الإكمال التلقائي والتعديلات السريعة | "ذاكرة مشروع" أقل ما لم يتم توجيهه | التعديلات الصغيرة، الكود النمطي (Boilerplate) |
| Cursor | سير عمل الوكيل داخل الـ IDE | من السهل الإفراط في التعديل بدون قواعد | واجهات المستخدم (UI)، التكرار السريع |
| ChatGPT (web/app) | التفكير الواسع والشروحات | أصعب في تشغيل أوامر المستودع | مناقشة البنية الهندسية |
إذا كانت المهمة "اشرح هذا الخطأ" أو "صمم واجهة"، فإن أداة الدردشة فقط غالباً ما تكون كافية. أما إذا كانت المهمة "غير الكود وأثبت أنه ينجح"، فإن Claude Code بالإضافة إلى الأوامر المفروضة هو عادة المسار الأكثر أماناً.

عندما يبدأ Claude في التذبذب أو التغيير أكثر من اللازم، أنتقل إلى توجيهات "انضباط الفروقات" (Diff discipline). إنها بسيطة، لكنها تغير السلوك بسرعة.
استخدم هذا عندما يستمر النموذج في إعادة هيكلة كود غير ذي صلة.
textOnly make changes required to satisfy the acceptance criteria. If you touch a file, justify why it must change. Prefer adding code over moving code. Return a file-by-file patch plan before editing.
استخدم هذا عندما يستمر النموذج في طلب المزيد من السياق.
textAssume missing details are unknown. Ask at most 2 clarifying questions. If still blocked, propose 2 options with trade-offs and pick one to implement.
استخدم هذا عندما تكون الاختبارات بطيئة ويحاول Claude تخطيها.
textYou must run the fastest relevant test subset first. If it passes, run the full suite. Report the exact commands and summarized results.
تعمل هذه التوجيهات لأنها تحسن بشكل صريح التغييرات المحدودة والتحقق. بدون ذلك، يميل الوكيل إلى التحسين من أجل "الكمال" أو "الشمولية"، مما يتحول غالباً إلى زحف في النطاق (Scope creep).
لمزيد من أنماط المجتمع، راجع سلسلة المناقشة: What are your best practices for Claude Code in early 2026?
الهدف ليس "المزيد من الذكاء الاصطناعي". الهدف هو دورات مراجعة أقل وتراجعات (Regressions) أقل ناتجة عن تعديلات الوكيل.
| المقياس للتتبع | الهدف | كيفية القياس | ماذا يخبرك |
|---|---|---|---|
| جولات مراجعة الـ PR | 1-2 جولة | الجدول الزمني لـ GitHub PR | وضوح النطاق وجودة الـ Diff |
| معدل فشل الـ CI في الـ PRs الخاصة بالذكاء الاصطناعي | < 10% | تشغيلات Workflow الموسومة بالمؤلف | ما إذا كانت أوامر CLAUDE.md تطابق الـ CI |
| متوسط حجم الـ Diff | < 300 سطر | إحصائيات GitHub diff | ما إذا كانت قواعد "الحد الأدنى من الفروقات" فعالة |
| وقت الدمج (Time-to-merge) | يوم واحد (الوسيط) | من فتح الـ PR إلى الدمج | الإنتاجية من البداية للنهاية |
أظهرت بعض المؤسسات الهندسية المعروفة قيمة الحلقات الضيقة والأتمتة. أبلغت Netflix عن تقليص وقت النشر من ساعات إلى دقائق باستخدام أتمتة بأسلوب Spinnaker، وهو تحول جعل التغييرات الصغيرة والقابلة للتحقق هي المعيار. ناقشت Stripe الحفاظ على سرعة المطورين عالية من خلال أدوات داخلية قوية وحلقات تغذية راجعة سريعة للـ CI. وشاركت Shopify أن تقليل وقت الـ CI وتحسين موثوقية البناء يحسن مباشرة إنتاجية المطورين ويقلل مخاطر التغيير.
هذه الأمثلة ليست "مقاييس Claude"، لكنها تندرج تحت نفس المبدأ: كلما كانت حلقة التغذية الراجعة أسرع، كانت مجموعة التغييرات أصغر وأكثر أماناً.
إذا كان فريقك يقوم أيضاً بتحديث حزمة الويب، فإن نفس فلسفة "فروقات صغيرة، تحقق سريع" تنطبق على أطر العمل أيضاً. راجع Next.js 15: The Complete Guide to React's Most Powerful Framework للحصول على أنماط تبقي التغييرات قابلة للمراجعة في قواعد كود App Router.
ابدأ من هنا (خطوتك الأولى)
أضف ملف CLAUDE.md يحتوي فقط على: الأوامر، تخطيط المستودع، 5 قواعد "افعل" (Do)، و 5 قواعد "لا تفعل" (Don't).
مكاسب فورية (تأثير مباشر)
Scope (النطاق)، Non-goals (خارج الأهداف)، و Acceptance criteria (معايير القبول) في الرسالة الأولى.تعمق أكثر (لمن يريد المزيد)
CLAUDE.md، ثم افرضه في مراجعة الـ PR لمدة أسبوعين.CLAUDE.md ليطابق أوامر الـ CI الحقيقية.CLAUDE.md مختارة من العالم الحقيقي.استخدام Claude Code في عام 2026 لا يتعلق بالبراعة في كتابة التوجيهات (Prompts) بقدر ما يتعلق بالانضباط التشغيلي: حافظ على صغر حجم السياق، ضع حدوداً صارمة، واجعل أوامر التحقق غير قابلة للتجاوز. من واقع تجربتي، فإن الحفاظ على ملف CLAUDE.md هو التغيير الأعلى عائداً على الاستثمار (ROI) لأنه يحول "كيف نعمل هنا" إلى قواعد دائمة وسهلة المسح تنجو عبر الجلسات. الفرق التي تتعامل مع نافذة السياق كمورد نادر تحصل على فروقات (Diffs) أكثر دقة، ومفاجآت أقل في الـ CI، وعمليات دمج أسرع.