التحكم · فصل ٨

Plan mode

/plan · review the plan · Ctrl+G · approve · replan
🎯 الهدف: تخلي Claude يوريك خطته الأول لما القرار يبقى صعب ترجع فيه.

لحد دلوقتي، كل اللي بنيناه سهل يتغير. الصفحة الرئيسية مش عاجباك؟ أعد تصميمها. الكارت شكله غلط؟ عدّله.

لكن الداتابيز حاجة تانية: Postgres، و Drizzle، وجداول للمنتجات والـ categories والمخزون، و migrations. القرارات دي صعب ترجع فيها بعد ما تتنفذ.

أرخص مكان تصلّح فيه قرار غلط هو الخطة، مش بعد ما الكود يتكتب.

تدخل plan mode إزاي؟

  • اكتب /plan، أو دوس Shift+Tab لحد ما توصل لـ Plan، أو اختاره من الـ extension.
  • قبل شغلانة كبيرة زي دي، اعمل /clear الأول عشان تبدأ بـ context نضيف.

في plan mode، Claude يقدر يقرا، ويدوّر، ويعمل research. لكن مش هيعدّل الكود لحد ما توافق على الخطة.

البرومبت

الطلب في الكورس كان واضح ومحدود:

  • بص على المشروع، وخطط إزاي نبدّل بيانات المنتجات الحالية بداتابيز Postgres حقيقية باستخدام Drizzle.
  • محتاجين products و categories و stock بس.
  • ادرس الأول المتجر بيستخدم بيانات المنتجات إزاي، قبل ما تقرر شكل الـ schema.
  • من غير carts، ولا orders، ولا payments، ولا reviews، ولا wishlists، ولا product variants دلوقتي.
  • ورّيني الجداول، والعلاقات بينها، والملفات اللي هتتغير، وهتعمل الـ migration إزاي، والمتجر هيبدأ يقرا من الداتابيز إزاي.

ممكن تلاقيه بيشغّل subagent من نوع Explore عشان يدرس الكود، وتقدر تدخل عليه وتشوف بيعمل إيه. وممكن يرجعلك بأسئلة، زي: الـ stock يبقى رقم والحالة تتحسب منه؟ الصور تتحط في جدول لوحدها؟ جاوب عليها بنفسك، لأن دي قرارات بتاعتك إنت.

تراجع الخطة إزاي؟

لو وافقت على الخطة من غير ما تقراها، يبقى مكسبتش أي حاجة من plan mode. اسأل نفسك:

  • هيعمل أنهي جداول؟ والمنتجات هتتربط بالـ categories إزاي؟
  • المخزون هيتخزن فين وإزاي؟ والأسعار؟
  • الـ Drizzle schema هيبقى فين؟
  • أنهي ملفات هتتغير؟ وهيتأكد من النتيجة إزاي؟

الخطة الضعيفة شكلها كده: “ضيف داتابيز، ضيف منتجات، حدّث المتجر”. دي مش بتقولك أي حاجة. الخطة الكويسة بتسمّي أجزاء الكود اللي هتتغير بأساميها.

تقدر تطلب منه يكتب الخطة في ملف markdown عشان تقراها براحتك. أو دوس Ctrl+G تفتحها في المحرر وتعدّل فيها بنفسك. خد 5 أو 10 دقايق تراجعها كويس.

الموافقة بتخرجك من plan mode

لما توافق على الخطة، Claude مش بيفضل في وضع القراية بس. بتختار هيكمّل بأنهي mode (مثلًا Auto)، ويبدأ ينفذ. في الكورس نفّذ: إعداد Drizzle، وتلات جداول، والاتصال بالداتابيز، والـ migrations، و seed data، وربط المتجر بـ Postgres.

بعد التنفيذ، اطلب منه يحدّث CLAUDE.md بقواعد الداتابيز اللي اتقررت بس، زي أمر الـ seed ومكان الـ schema. خليه قصير، ومن غير حاجات Claude يقدر يعرفها من الكود. كده الملف بيكبر لأن المشروع أخد قرار حقيقي، مش عشان تكبّره وخلاص.

ولو لقيت Claude بيفترض نفس الحاجة الغلط كل ما يخطط، ده غالبًا معناه إن التعليمات عندك ناقصة أو غلط.

الـ DATABASE_URL

بعد التنفيذ، راجع

plan mode بيمسك الاتجاه الغلط بدري، بس مش بديل إنك تراجع اللي اتبنى. اطلب من Claude يوريك أهم التغييرات ويقولك تراجع إيه، أو بص على git diff.

ولو حسيت إنه بدأ يبعد عن الخطة، ارجع لـ plan mode وخطط من تاني بالمعلومة الجديدة. ده أحسن من إن الغلط ينتشر في المشروع وتنضّفه بعدين.

مش كل حاجة محتاجة plan

تغيير عنوان؟ زيادة مسافة؟ اطلبها على طول. plan mode للحاجات اللي طريقة تنفيذها نفسها محتاجة مراجعة: الداتابيز، والـ auth، والـ migrations، والـ refactor الكبير، وأي تغيير بيلمس كذا جزء في المشروع.

خلّصت الفصل لما

🧠 اختبر نفسك
١) ليه plan mode مناسب للداتابيز ومش مهم لكارت المنتج؟
لأن الـ schema والـ migration صعب ترجع فيهم. الكارت سهل يتعدّل في أي وقت.
٢) بعد ما توافق على الخطة، Claude بيفضل في plan mode؟
لا. الموافقة بتخرجه منه، وبتختار هو هيكمل التنفيذ بأنهي mode.
٣) Claude بيفترض مكان الـ schema القديم في كل خطة. تعمل إيه؟
التعليمات ناقصة أو غلط. حدّث CLAUDE.md بالمكان الجديد.