حلقة البناء الحقيقية — ومعرفة متى تُمسك زمام الأمور من الذكاء الاصطناعي بالضبط.
الوحدة 5 · حوّل المراحل إلى ميزاتٍ تعمل، شريحةً شريحة.
متوسّط البناء يتضمّن مختبرًا ~55 دقيقةالمتطلبات المسبقة: الوحدة 4 — snippet-vault بمرحلة M1 (إنشاء + عرض) مدموجةً في main.
البرمجة بالإحساس ليست طلبًا ضخمًا واحدًا — بل حلقةٌ محكمة تدور بها مرّاتٍ كثيرة في الساعة. كل دورةٍ تضيف قطعةً صغيرةً واحدة مُراجَعةً ومُودَعة:
الحلقة إيقاعك لبقيّة البناء. كل مرحلةٍ في SPEC.md تصير حفنةً من هذه الدورات. ولأنك تُودِع كل حالةٍ جيّدة، فإن دورةً سيّئة تبعد دائمًا git restore واحدًا عن الزوال.
يظنّ الناس أن المراجعة والإيداعات تبطئك. والعكس صحيح: الخطوات الصغيرة المُراجَعة تعني أنك نادرًا ما تصحّح لغزًا، لأن ما انكسر في آخر تغييرٍ صغير. السرعة تأتي من عدم التعثّر.
أكبر مهارةٍ منفردة في البرمجة بالإحساس هي تقطيع العمل صغيرًا. «ابنِ التطبيق كلّه» يعطيك كومةً لا تستطيع مراجعتها. «أضِف صندوق بحثٍ يرشّح القائمة بالعنوان» يعطيك تغييرًا تقرؤه في دقيقة.
| كبيرٌ جدًّا | شريحةٌ بالحجم الصحيح |
|---|---|
| «ابنِ خزنة المقتطفات.» | «أضِف نموذج إنشاء المقتطف وأرسله POST إلى الـAPI.» |
| «أضِف بحثًا ومرشّحاتٍ وترتيبًا ووسومًا.» | «أضِف صندوق بحثٍ يرشّح القائمة بالعنوان.» |
| «اجعله يبدو جميلًا.» | «نسّق قائمة المقتطفات كبطاقاتٍ بتباعد.» |
قطّعت العمل بالفعل في الوحدة 3. ابنِ مرحلةً واحدة (أو قصّةً واحدة ضمنها) لكل فرع، بالترتيب. حين تنجح كل معايير قبول القصّة، فقد اكتملت — انتقل للتالية.
المساعد سائقٌ سريع على الطريق السريع، وعبءٌ في موقفٍ ضيّق. المحترف يعرف متى يكفّ عن التفويض ويحرّر الشيفرة بنفسه. راقب هذه الإشارات:
| الإشارة | ماذا تفعل |
|---|---|
| فشل في الإصلاح نفسه مرّتين | أوقف الحلقة. اقرأ الشيفرة بنفسك وأصلح أو حدّد السطر بالضبط. |
| منطقٌ حسّاسٌ أمنيًّا أو ماليًّا | المصادقة، المدفوعات، الصلاحيات — اكتبها أو تحقّق منها يدويًّا. |
| منطقٌ دقيق يخطئه قليلًا باستمرار | اكتب اللبّ الصعب يدويًّا، ودع الذكاء الاصطناعي للقوالب حوله. |
| لا تفهم مخرجاته | لا تشحن ما لا تستطيع صيانته. بسّطه بنفسك أو اطلب شرحًا. |
| التغيير يتضخّم | تولَّ الأمر، قلّص النطاق، واستأنف الحلقة أصغر. |
إمساك الزمام ليس فشلًا — بل هو المهارة كلها. أفضل مبرمجي الإحساس يسلّمون بسلاسةٍ قطعًا صغيرةً محدّدة للذكاء الاصطناعي ويخطفون الزمام لحظة يبدأ بالتِيه. السيّارة سيّارتك.
حين ينكسر شيء، يكون المساعد ممتازًا — إن أحطته كتقرير خطأٍ جيّد بدل «إنه معطّل، أصلحه».
تأكّد أولًا أنك تستطيع إطلاق الخطأ بموثوقية. إصلاحٌ لا تستطيع التحقّق منه مقابل إعادة إنتاجٍ هو مجرّد تخمين — والذكاء الاصطناعي سيولّد تخميناتٍ واثقةً بسرور.
حين يدور المساعد أو يظلّ يخطئ، لا تعِد الطلب بشدّةٍ أكبر فحسب. غيّر الموقف:
| الحركة | متى |
|---|---|
| أعِد ضبط السياق | يناقض نفسه — ابدأ المهمّة من جديد (تآكل السياق من الوحدة 2). |
| صغّر الطلب | قسّم الشريحة إلى أصغر منها. |
| أعطِ مثالًا | أرِ المدخل/المخرج بالضبط أو ملفًّا مشابهًا يحاكيه. |
| اكتب اللبّ يدويًّا | اكتب الأسطر الخمسة الصعبة بنفسك، ثم دع الذكاء الاصطناعي يكمل حولها. |
ستأخذ خزنة المقتطفات من «إنشاء + عرض» إلى تطبيقٍ حقيقيٍّ يعمل — بإضافة البحث والحذف عبر حلقة البناء، وإمساك الزمام مرّةً على الأقل، وربط الواجهة بالـAPI من الطرف إلى الطرف.
مستودع snippet-vault من الوحدة 4 (M1 مدموجة)، ومساعدك، والتطبيقان يعملان (api/ وweb/).
اطلب شريحةً، راجع التغيير، شغّله، أودِع — مقابل معايير قبول M2 من SPEC.md:
تحقّق من كل معيار قبولٍ يدويًّا: الترشيح الحيّ، عدم حساسية حالة الأحرف، حالة الفراغ الودودة. أودِع عند الاخضرار.
اعثر على موضعٍ واحد ليست فيه مخرجات الذكاء الاصطناعي صحيحةً تمامًا (حالة حدّية، اسم، جزء أخرق) وأصلحه بنفسك يدويًّا بدل إعادة الطلب. دوّن ماذا ولماذا. ثم ادمج M2:
أدِر الحلقة ثانيةً: DELETE /snippets/:id في الـAPI وزرّ حذفٍ (مع تأكيد) في الواجهة. راجع، شغّل، تحقّق، أودِع، ثم ادمج في main.
والتطبيقان يعملان، في المتصفّح: أنشئ مقتطفًا، شاهده مُدرَجًا، ابحث عنه، واحذفه. هذا تطبيقٌ حقيقيٌّ يعمل — M1 حتى M3، حيًّا محليًّا.
في REFLECTION.md: أين أمسكت الزمام، ولماذا؟ أيّ معايير قبولٍ تحقّقت منها يدويًّا؟ ثم أودِعه.
مستودع snippet-vault بتطبيقٍ يعمل. تحقّق من نفسك قبل التسليم:
mainREFLECTION.md يدوّن أين أمسكت الزمام وما تحقّقت منه| المصطلح | المعنى المبسّط |
|---|---|
| حلقة البناء | اطلب → راجع → شغّل → أودِع، مكرّرةً بدوراتٍ صغيرة. |
| الشريحة | قطعة عملٍ صغيرة قائمة بذاتها تبنيها وتتحقّق منها دفعةً واحدة. |
| إمساك الزمام | الكفّ عن التفويض وتحرير الشيفرة يدويًّا حين يكون الذكاء الاصطناعي الأداة الخطأ. |
| السبب الجذري | السبب الكامن للعلّة، لا العَرَض فقط. |
| إعادة الإنتاج | إطلاق العلّة بموثوقيةٍ لتؤكّد أن الإصلاح يعمل فعلًا. |
| من الطرف إلى الطرف | المسار كلّه يعمل معًا — هنا، الواجهة → الـAPI → والعودة. |
حلقة البناء طبيعةً ثانية، والحُكم على متى تُمسك الزمام عند الحاجة، ومنهج تصحيحٍ يجد الأسباب الجذرية — وخزنة مقتطفاتٍ تعمل فعلًا من الطرف إلى الطرف: إنشاء وعرض وبحث وحذف، كلّها مدموجةٌ في main يعمل.
التالي: الوحدة 6 — اختبار الشيفرة المولّدة. تطبيقك يعمل حين تنقر فيه يدويًّا — لكن كيف تعرف أنه ما زال يعمل بعد تغيير الذكاء الاصطناعي التالي؟ نضيف اختباراتٍ آلية، أوّل شبكة أمانٍ حقيقية لـ«يعمل مرّة واحدة».