كل شيء يعمل على أحسن ما يرام في المهامّ الصغيرة. تطلب، فينفّذ Claude، فتنظر في النتيجة. الحلقة سهلة إلى حدّ يجعل الناس ينقلونها كما هي إلى عمل لا تتّسع له — وهناك تضيع فترة الظهيرة.
والإخفاق محدّد ويستحقّ أن يُسمّى، لأنه لا يبدو إخفاقًا وهو يقع. تطلب شيئًا كبيرًا في جملة واحدة. فيبدأ Claude، وهو قادر وراغب، في البناء. وبعد عشرين دقيقة يقف أمامك قدر كبير من العمل، وهو بثقة وإتقان الشيء الخطأ. لم يتعطّل شيء. هو فقط أجاب عن سؤال لم تنتبه إلى أنك طرحته بغموض.
أولًا: هل هذه مهمة كبيرة فعلًا؟
الغريزة أن تقيس الحجم بعدد أسطر الكود. هذا هو المسطرة الخطأ — فتغيير حرف واحد قد يكون هائلًا، وتغيير مئتَي سطر قد يكون تافهًا.
المهمة كبيرة حين لا تستطيع أن تقول، في جملة واحدة، كيف يبدو الإنجاز بالضبط — لأن ثمّة قرارات تُتّخذ وأشياء لا يعرفها أحد بعد.
الحجم يسكن في القرارات والمجهولات. وأربع إشارات تفضحه:
- تمتدّ عبر عدّة ملفات. الملف الواحد فكرة واحدة عادةً. وستة ملفات هي ستة مواضع للخطأ الخفيّ.
- تحتوي قرارات حقيقية. أيّ library؟ أين ينبغي أن يعيش هذا؟ ماذا يحدث لمن سجّلوا سابقًا؟ إن كنت ستضطرّ إلى التوقّف والاختيار، فكذلك Claude — وسيختار نيابةً عنك إن تركته.
- فيها مجهولات. أشياء لا يستطيع أيّ منكما التنبّؤ بها دون أن ينظر. «ثمّة كود auth في مكان ما لكنني لا أعرف كيف يعمل.»
- لا تستطيع وصف الإنجاز في جملة. إن كان خطّ النهاية ضبابيًا عندك، فهو أضبب عند Claude.
إشارة واحدة ضوء أصفر. وإشارتان ضوء أحمر.
ولاحظ الفخّ: المهمة الكبيرة تبدو عادةً أقصر. «أضِف قسم مدوّنة» ثلاث كلمات تخفي أربعة قرارات. و«غيّر العنوان في الصفحة الرئيسية إلى اسمي» ثماني كلمات لا تخفي شيئًا. عدد الكلمات كاذب؛ وعدّ القرارات الخفيّة هو ما يقول لك الحقيقة.
خطِّط قبل أن تنفّذ
في اللحظة التي تتبيّن فيها الحجم، تكون رسالتك التالية ليست العمل. أن تطلب مهمة كبيرة على البارد يشبه أن تقول لمقاول «ابنِ لي مطبخًا» ثم تسافر في عطلة نهاية الأسبوع — ستعود إلى مطبخ، لكنه على الأرجح ليس مطبخك.
بدلًا من ذلك، احصل على خطة أولًا. الـ plan mode مصمَّم لهذا بالضبط: يقرأ Claude ويستكشف ويقترح مقاربة دون أن يمسّ شيئًا. أمّا آليّته — كيف تشغّله، وكيف يقف إلى جانب إعدادات الأذونات الأخرى — فتجدها في الأذونات و plan mode والبقاء مسيطرًا. ما يهمّ هنا هو الحساب، وهو مائل بما يكفي لحسم الجدال:
- كتابة الخطة تكلّف دقائق؛ وقراءتها تكلّفك ثلاثين ثانية.
- التراجع عن مهمة متعدّدة الملفات فشلت يكلّف فترة ظهيرة كاملة.
الاعتراض على خطة دائمًا أرخص من التراجع عن العمل. والـ plan mode ينقل الخلاف إلى أرخص لحظة ممكنة: قبل أن يوجد أيّ عمل. الغريزة نفسها التي تقيس قبل أن تقصّ. الدقائق الخمس في البداية ليست الجزء البطيء — الإعادة هي الجزء البطيء.
وتجاوزه في الأمور الصغيرة. قراءة خطة لإصلاح خطأ مطبعي طقوس خالصة. والإشارات الأربع أعلاه هي أيضًا إشارات الـ plan mode عندك.
ثم جادِل الخطة
وهنا الإخفاق الذي يهدر الخطة التي طلبتها للتوّ: تصلك مرقّمة بأناقة، وتبدو واثقة، فتوافق. ثم تقضي ساعة تصارع الشيء الذي وافقت عليه.
الخطة ليست عقدًا. هي مسوّدة، وقيمتها كلها في أن الجدال معها ما زال رخيصًا. الجدال هو المقصود؛ لا الموافقة.
اقرأها وأنت تبحث عن المتاعب. أربعة أشياء تمسحها بعينك:
- افتراضات خاطئة. خمّن شيئًا أنت تعرفه فعلًا. «سأضيف build step لتجميع الأنماط» — بينما موقعك HTML بسيط عن قصد بلا build step. لم يكن يعرف. الآن يعرف.
- حالات حدّية ناقصة. المسار السعيد مغطّى ولا شيء غيره. وماذا عن الحالة الفارغة؟ وحالة الخطأ؟ والصفحة التي لا منشورات فيها بعد؟
- Scope creep. الخطة «تتعاون» فتفعل أكثر ممّا طلبت — تعيد تنسيق صفحات مجاورة، وتعيد تسمية أشياء، وترتّب ملفًا لم تذكره قط.
- أشياء كان ينبغي أن يسأل عنها. أين يعيش هذا الملف؟ وما اسمه؟ صفحة واحدة أم عدّة؟ إن اختار Claude حيث كان ينبغي أن يسأل، فالخطة هي موضع الالتقاط.
ومثال مشتغَل، لأن الـ scope creep هو الأمهر في الاختباء. طلبت صفحة مدوّنة. فتعود الخطة:
- أضِف صفحة
blog.htmlمع منشورات نائبة. - أضِف رابط «Blog» إلى
index.html. - نسّق المنشورات لتطابق
styles.css. - رتّب معالج التواصل القديم في
server/index.jsما دمنا هنا.
الخطوات 1–3 هي المدوّنة. أمّا الخطوة 4 فتعيد كتابة الـ backend لديك، وهو ما لم تذكره قط. «تجاوز الخطوة 4 — لا تمسّ server/، اكتفِ بإضافة المدوّنة.» جملة واحدة، وقد تجنّبت للتوّ تصحيح نموذج تواصل معطوب بعد ساعة.
والاعتراض لا يحتاج صياغة خاصة، بل تحديدًا فقط: «أبقِه HTML وCSS بسيطًا، بلا build step»، «ضع المنشورات في blog.html واحد، لا ملفًا لكلٍّ منها»، «كيف تبدو الصفحة ولا منشورات فيها بعد؟». فيراجع Claude ويعرض عليك من جديد. وما زلت في الـ plan mode؛ ولم يتحرّك شيء. در معه ما شئت من الدورات — فالدوران هو العمل في هذه اللحظة.
قسّمها بنفسك
أحيانًا تقرأ الخطة فيقول حدسك لا — لا لأن خطوة منها خاطئة، بل لأنها خمس عشرة خطوة وأنت تدرك سلفًا أن ثلاثًا منها ستنحرف. والعلاج ليس خطة أفضل. بل خطة أصغر.
لا تدع مقطعًا واحدًا من العمل يطول أكثر ممّا تستطيع فحصه.
هذا هو الجزء الوحيد في هذه الصفحة الذي يخصّك أنت وحدك. الـ plan mode والقائمة يأتيان من Claude؛ أمّا تقرير حجم القضمة فقرارك أنت، وفيه يسكن كثير من المهارة الحقيقية.
فكّر في كل شريحة على أنها نقطة فحص. المهمة الكبيرة المنفَّذة دفعةً واحدة لها نقطة فحص واحدة بالضبط — النهاية — فإن كانت خاطئة كانت كلها خاطئة دفعةً واحدة. والمهمة نفسها في أربع شرائح لها أربع نقاط، فتظهر المشكلة عند الشريحة التي بدأت فيها. شرائح أكثر، ونقاط فحص أكثر، وأقلّ ما يُرمى.
ولاختيار الشريحة الأولى، ابحث عن أول قطعة يمكنك أن ترى نتيجتها وتفحصها وحدها. وهي في الغالب قطعة القراءة:
| الشريحة الأولى | ما تحصل عليه |
|---|---|
| شريحة أولى سيئة | «أضِف قسم المدوّنة كله.» فتجد نفسك تحدّق في صفحة جديدة وتعديلات على الصفحة الرئيسية وكومة CSS دون أن تدري أصحيح شيء منها. |
| شريحة أولى جيدة | «اعرض لي بالضبط الملفات التي ستمسّها وما الذي يتغيّر تقريبًا في كلٍّ منها — لا تعدّل شيئًا بعد.» لم يُعدَّل شيء، وصرت ترى مساحة السطح وتحكم أهي مهمة أنيقة من ثلاث خطوات أم مهمة مرعبة من ثلاثين. |
وما يقف في الطريق هو الطموح. أنت تريدها دفعةً واحدة — prompt واحد، ثم تمشي، ثم تعود إلى ميزة مكتملة. لكن رمية كبيرة واحدة تفشل تكلّف أكثر بكثير من ثلاث رميات صغيرة تنجح كلٌّ منها، ولهذا يكون المسار الذي يبدو بطيئًا هو الأسرع دائمًا تقريبًا. هو فقط لا يخبّئ إعادةً في نهايته.
راقب الـ TODO list
متى بدأ العمل في شيء متعدّد الخطوات، ظهرت في المحادثة قائمة عادةً — عناصر تنتقل من قيد الانتظار إلى قيد التنفيذ إلى منجَز. تلك هي الـ TODO list، وهي تفعل لك أكثر ممّا تبدو.
يكتبها Claude ليُبقي نفسه صادقًا: يعرض الخطوات، ويلتزم بها على الشاشة، ويشطبها كي لا يسقط شيء بهدوء. أمّا لك فهي الفرق بين مؤشّر دوّار ونافذة. ترى أين هو («الخطوة 3 من 5»)، وما الذي لم يصل إليه بعد، والأنفع من ذلك — المفاصل. فإن احتاج شيء إلى تصحيح، كانت المقاطعة بين عنصرين أنظف بكثير من المقاطعة داخل عنصر، والقائمة هي ما يريك تلك اللحظات.
وتصحيح واحد، لأنه يوقع الناس: القائمة ليست عقدًا. فمع تعلّم Claude أشياء أثناء المهمة قد يراجع عنصرًا، أو يضيف واحدًا لم يتوقّعه، أو يسقط واحدًا تبيّن أنه غير ضروري — وأنت تريد ذلك. لكن هذا يعني أن «الـ TODO قالت إنها ستفعل X» ليست ضمانة. لذا اقرأ القائمة حين تظهر. وإن كانت خطوة ناقصة أو خاطئة أو غير مرغوبة، فقل ذلك حينها. الاعتراض عند الخطوة 3 يكلّف جملة؛ والانتباه عند الخطوة 5 يكلّف إعادة.
قاطِع مبكرًا — التكلفة ليست ثابتة
Claude يعمل، وأنت تراقب، وثمّة شيء ليس على ما يرام. ملف خطأ، أو مقاربة تعرف أنها لن تنجح، أو ثقة مريبة بشأن أمر أنت متيقّن أنه غير صحيح. أوقفه. في تطبيق سطح المكتب ذلك زرّ الإيقاف على المهمة الجارية؛ وفي الـ Terminal هو Esc.
والانحراف يأتي بثلاثة أشكال يمكن تمييزها:
- اتجاه خاطئ. يحلّ مشكلة مختلفة قليلًا عن التي سألت عنها. أردت إصلاحًا؛ وهو يعيد التصميم.
- اتجاه صحيح، اختيار خاطئ. الملف صحيح والهدف صحيح، لكنه يستخدم library أو نمطًا لا تريده.
- دوران في المكان. يجرّب شيئًا فيفشل، فيجرّب الشيء نفسه تقريبًا مرة أخرى. مرّتان صدفة. وثلاث مرّات إشارة.
أيٌّ منها يكفي. ولست بحاجة إلى يقين — الحدس القوي يكفي، ما دام التوقّف لا يكلّف شيئًا وبإمكانك دائمًا أن تقول أكمِل.
وسبب كون «مبكرًا» هو اللعبة كلها أن تكلفة الانتظار ليست ثابتة، بل تتراكم مع كل ملف يُمَسّ. قاطِع في الدقيقة الأولى فتخسر جملة. وقاطِع في الدقيقة العاشرة فتخسر عشر دقائق من العمل إضافةً إلى وقت فكّ التشابك.
وما يمنع الناس هو المجاملة — إحساس خافت بأن المقاطعة قلّة أدب، كأن تقاطع أحدًا في منتصف جملته. دع ذلك. أن تشاهد آلة تبني الشيء الخطأ بعناية كي تكون مؤدَّبًا هو أغلى مجاملة في البرمجيات.
ثم أعِد التوجيه بإيجاز وتحديد: «أنت تعدّل الملف الخطأ — رابط المدوّنة يذهب في index.html». فيلتقط Claude من هناك؛ وما أنجزه سابقًا يبقى، ولك أن تُبقيه أو تتراجع عنه.
متى تكفّ عن الدفع وتبدأ من جديد
بعض المحادثات تفسد بطريقة لا ينقذها أيّ دفع. Claude مخطئ بثقة، أو يدور حول مقاربة معطوبة، أو متيقّن من وجود function غير موجودة — ويزداد الخيط ثقلًا وأقلّ نفعًا مع كل رسالة.
حين تعلق المحادثة، فإن مزيدًا من الرسائل يزيد الأمر سوءًا عادةً. توقّف وابدأ محادثة جديدة.
يبدو ذلك معكوسًا، والآليّة تفسّر لماذا هو ليس كذلك. كل ما قيل حتى الآن ما زال داخل المحادثة، بما في ذلك المنعطف الخاطئ قبل خمس رسائل. وكل ردّ جديد يتلوّن بذلك السياق، فأنت لا تصحّح صفحةً بيضاء — بل تكدّس تصحيحًا فوق كومة التباس متنامية، والكومة تغلب عادةً. الأمر أشبه بإعطاء إرشادات لشخص تاه وارتبك: بعد حدّ معيّن، لا تكون الإرشادات الإضافية إلا ضجيجًا إضافيًا.
فأنهِ المحادثة وافتح واحدة جديدة، لكن احمل معك فقط ما كان مهمًّا — النتيجة، والدرس:
«حاولت سابقًا إضافة المدوّنة بتعديل شريط التنقّل داخل كل صفحة، وظلّ الأمر يتشابك لأن الـ markup مكرّر عبر
index.htmlوabout.htmlوcontact.html. جرّب مقاربة مختلفة، ولا تمسّ سوىblog.htmlوindex.html.»
هذا يسلّم المحادثة الجديدة الاكتشافَ النافع دون الطرق المسدودة، ويضيف قيدًا أضيق فتقلّ سبل الضياع من جديد. إنها غريزة التقسيم مستخدَمةً إنقاذًا.
وما ينبغي تجاوزه هو الـ sunk cost. خمس عشرة دقيقة من المصارعة تبدو شيئًا سترميه — لكن تلك الدقائق علّمتك ما لا ينجح، وذلك يأتي معك. والمحادثة الجديدة المسلّحة بما تعلّمته ستتجاوز عادةً تلك التي ظللت ترعاها.
ومشكلة مختلفة تبدو كهذه: محادثة تسير على ما يرام تمامًا لكنها طالت وحسب، حتى بدأ Claude يُسقط تفاصيل حسمتها قبل ساعة. ذلك ليس خيطًا فاسدًا، بل context window ممتلئ، والعلاج أن ترتّب لا أن ترمي — /compact بدل /clear. والعلامة هي التوقيت: حادّ في البداية، ويبدأ الانزلاق بعد جلسة طويلة فقط. وهذا يخصّ كيف تدير الـ session جيدًا.
هل تكرّر بتقدّم، أم تدور في المكان؟
ثمّة نسخة أدقّ من المحادثة العالقة، وهي تُوقِع من يفعلون كل شيء آخر على نحو صحيح. تطلب إصلاحًا، ثم آخر، ثم إعادة هيكلة فوق ذلك، ثم مقاربة مختلفة لإعادة الهيكلة — وبعد ساعة لا تستطيع حقًّا أن تحدّد هل تقدّمت أم درت في دائرة.
إن لم تستطع أن تقول ما الذي ما زال خاطئًا في جملة واحدة، فأنت إمّا انتهيت وإمّا علقت. وكلاهما له الخطوة التالية نفسها: توقّف.
والإشارات، بترتيب تقريبي حسب موثوقيّتها:
- كل prompt جديد أقصر وأغمض من سابقه («اجعله يعمل وحسب»).
- تعيد سؤال الشيء نفسه بكلمات مختلفة.
- تراجعت عن التغيير نفسه مرّتين أو ثلاثًا.
- نسيت ما كانت المهمة الأصلية وستضطرّ إلى التمرير لأعلى لتتفقّدها.
- الـ diff ينمو في اتجاهات لا تذكر أنك طلبتها.
أيٌّ منها وحدها لا بأس بها. واثنتان معًا إشارة قوية. وثلاث هي الإنذار.
وإعادة الضبط لها شكل إعادة البدء أعلاه نفسه، وهي ليست انسحابًا: قرّر ما كان الهدف فعلًا واكتبه، وسجّل أين تقف الأمور الآن (اعمل لها commit، أو دوّن أيّ ملف في أيّ حال)، ثم ابدأ محادثة جديدة تحمل فيها الملف والهدف فقط. والمحادثة الجديدة بـ prompt نظيف تحسم عادةً في ثلاث دورات ما عجزت عنه خمس عشرة دورة من الانحراف.
سير العمل هو المهارة
انظر إلى الحركات. لا واحدة منها ذكية. الـ plan mode ضغطة مفتاح. وقراءة الخطة قراءة. والإيقاف مفتاح واحد. والتقسيم اختيار قضمة أصغر. ومنفردةً، لا شيء منها يبهر أحدًا.
أمّا مسلسلةً معًا فهي الفرق بين أن تسلّم Claude شيئًا كبيرًا وتأمل، وأن تسلّمه شيئًا كبيرًا وتقود. تبيَّن الحجم، وخطّط، وجادِل، وقسّم، وراقب القائمة، وقاطِع عند الانحراف، وضغّط حين يطول، وابدأ من جديد إن تعثّر فعلًا.
والنتيجة ليست أن المهامّ الكبيرة تصير أسهل. بل أنها تكفّ عن كونها رهانًا واحدًا وتصير سلسلة خطوات صغيرة قابلة للفحص — وهو الشيء نفسه الذي يفعله كل خبير مع العمل الكبير، في أيّ مجال، للسبب نفسه تمامًا.
المصطلحات
- TODO list todos · task list
- قائمة المهامّ الجارية التي يكتبها Claude لنفسه حين تتألّف المهمة من عدّة خطوات، وتظهر في المحادثة وعناصرها تنتقل من قيد الانتظار إلى قيد التنفيذ إلى منجَز. هي وسيلته لتنظيم عمل متعدّد الخطوات، ووسيلتك أنت لمراقبة العمل من الخارج.
- Scope creep
- توسّع العمل بهدوء إلى ما وراء ما طُلب فعلًا. في الخطة يبدو خطوةً إضافية متعاونة — رتّب المعالج القديم، أعِد تسمية هذه ما دمنا هنا، أعِد تنسيق الصفحة المجاورة — ملحقةً بطلب لم يذكر شيئًا من ذلك قط.
أسئلة يطرحها الناس
- آخر خطوة في الخطة هي «رتّب معالج التواصل القديم ما دمنا هنا». أهذه مشكلة؟
- نعم — هذا scope creep، وهو بالضبط ما وُجدت قراءة الخطة لأجله. طلبت شيئًا واحدًا فأضافت الخطة بهدوء إعادة كتابة كود لم تذكره قط. والتقاطه الآن يكلّف جملة («تجاوز الخطوة 4»). والتقاطه بعد تنفيذه يكلّفك جلسة تصحيح حين ينكسر شيء غير متّصل على نحو غامض.
- Claude في منتصف قائمة TODO من ستة عناصر، والعنصر 4 شيء لا أريده. متى أقول ذلك؟
- الآن، قبل أن يصل إليه. القائمة خطة حيّة يحقّ لك تعديلها، لا عقدًا أنت محبوس فيه — لكن Claude لا يعرف أن يراجعها ما لم تخبره. الكلام قبل العنصر 4 يكلّف جملة؛ والانتظار بعده يكلّف تراجعًا.
- جرّب Claude الإصلاح نفسه ثلاث مرات وواجه الخطأ نفسه في كل مرة. ماذا الآن؟
- توقّف وابدأ محادثة جديدة، واحمل الدرس معك («هذه المقاربة تفشل بسبب X — جرّب شيئًا مختلفًا»). فثلاثة إخفاقات متطابقة إشارة إلى أن السياق نفسه فسد: كل ردّ جديد مبنيّ على الالتباس نفسه، فيكون الدفع مجدّدًا هو الحركة الوحيدة التي لا تنجح بشكل موثوق.
- نسي Claude للتوّ قيدًا وضعته قبل ساعة، لكن العمل حتى الآن جيّد. هل أبدأ من جديد؟
- لا — استخدم
/compact. فالنسيان في وقت متأخّر من جلسة طويلة سليمة معناه context window ممتلئ لا model ضعيف. و/compactيحتفظ بملخّص لما يهمّ ويكمل المهمة نفسها؛ أمّا/clearفسيرمي الساعة الجيّدة التي بنيتها للتوّ. والعلامة هي التوقيت: حادّ في البداية، ويبدأ الانزلاق بعد جلسة طويلة فقط. - ما الشريحة الأولى الصحيحة لتغيير يمسّ صفحة جديدة والصفحة الرئيسية والأنماط؟
- شريحة القراءة: «اعرض لي بالضبط الملفات التي ستمسّها وما الذي يتغيّر في كلٍّ منها — لا تعدّل شيئًا بعد.» فأنت لا تعرف مساحة السطح بعد، وهذا ما ينبغي إثباته أولًا. والبدء بـ «ابنِ كل شيء» يتخطّى نقطة الفحص التي تخبرك أهي مهمة أنيقة من ثلاث خطوات أم مرعبة من ثلاثين.