أول edit حقيقي لك
تريد أن ترى diff قبل أن تقرأ عنه؟ جرّب المعاينة التفاعلية ← — عدّل سطرًا واحدًا في متصفّحك وشاهد الأخضر والأحمر يظهر مباشرة. دقيقتان، بلا أيّ إعداد.
في المستوى الرابع صرت مرتاحًا في سؤال Claude عن الكود — ماذا يفعل هذا، وأين عُرِّف ذاك، ولماذا كُتب بهذه الطريقة. هذا المستوى هو الخطوة التالية: أن تطلب من Claude أن يغيّر الكود.
عندما يريد Claude تغيير ملف، فإنه يقترح التغيير أولًا. أنت تراه. أنت تقرّر. لا يتحرك الملف حتى تقول نعم.
تلك القاعدة الواحدة هي أساس كل درس لاحق في هذا المستوى. تمسّك بها.
كيف يبدو الـ edit فعليًا
تطلب شيئًا محددًا:
أعد تسمية المتغير `usr` إلى `user` في src/auth.ts
rename the variable `usr` to `user` in src/auth.ts
يقرأ Claude الملف، ويحسب التغيير، ثم يتوقف ليُريك ما يريد كتابته — ليس فقرة تصف التغيير، بل الفرق الفعلي سطرًا بسطر بين ما هو موجود الآن وما يريد وضعه مكانه. يُسمّى هذا الفرق diff، والدرس التالي مكرّس بالكامل لقراءته.
إمّا أن تقبله، وإمّا ألّا تفعل.
السائح في مقابل المتعاون
في المستوى الرابع كنت سائحًا. تتجوّل في الـ codebase وتطرح الأسئلة. لم يكن بمقدور أي شيء تقوله أن يُعطب شيئًا — أسوأ ما قد يحدث هو إجابة خاطئة.
هذا المستوى مختلف. أنت الآن تعدّل ملفات حقيقية. الـ blast radius حقيقي.
لكن لاحظ ما لم يتغيّر: Claude لا يزال لا يغيّر أي شيء دون إذنك. تلك البوابة موجودة دائمًا. العمل يتغيّر — لكن نموذج الثقة لا يتغيّر.
عن الـ permission prompt
سترى الـ permission prompt (من الدرس 2.6) في كل مرة يريد فيها Claude الكتابة إلى ملف في هذا المستوى. للآن: اقرأ ما يُريك إيّاه، وانقر allow once إن بدا الأمر سليمًا، ثم تابع.
المستوى السادس هو القصة الكاملة لمتى توسّع تلك البوابة، ومتى تُبقيها ضيّقة، وما الذي لا تسمح به أبدًا دون تفكير. أمّا في المستوى الخامس، فالوضع الافتراضي. تغيير واحد في كل مرة. allow once.
ما التالي
سيُريك Claude الـ diffs باستمرار من هنا فصاعدًا. الدرس التالي هو القراءة الفعلية — ماذا يعني + و−، وما context lines، ولماذا تصفّح الـ diff ليس كقراءته.