الدروس السابقة علّمتك تشغيل الأداة، وجعل الصفحة جميلة، ثم سليمة من الداخل. هذا الدرس عن السقف الذي تقف عنده بعد ذلك: الفرق لم يعد في الأداة ولا في النموذج، بل في هندسة ما تعطيه للوكيل، وفي قدرتك على الحكم على ما يُخرجه.
لماذا يتوقّف عملك عند المستوى نفسه؟#
إن كان الوكيل يفهمك، والصفحات تخرج جيدة، وتعرف إصلاح ما ينكسر، فقد وصلت إلى سقف الاستخدام. وهذا السقف لا يُكسر إلا بشيء واحد: أن تكفّ عن معاملة الوكيل كـ«شخص تحادثه»، وتبدأ في معاملته كـنظام تصمّمه.
المستخدم العادي
يفتح محادثة ويكتب طلبًا، ثم يصحّح عشرين مرة، ثم يعيد لصق الألوان والقواعد في كل محادثة جديدة.
المهندس
يجهّز البيئة قبل أن يكتب حرفًا: ملف قواعد، وملف مواصفات، وسياق منقّى، ومعيار قبول مكتوب. ثم يكتب طلبًا من سطرين، فيحصل على نتيجة أفضل من عشرين محاولة.
المهارات السبع#
سبعة تحوّلات في طريقة عملك
الوكيل لا يقرأ مشروعك كله ولا يتذكّر كل شيء؛ إنه يعمل على «نافذة» محدودة من النصوص: رسائلك، والملفات التي أشرت إليها، وجزء من ردوده. هذه النافذة مورد محدود، وأهم مهارة أن تقرّر ما يدخلها وما يبقى خارجها.
والخطأ الشائع ظنّ أن الكلام الأكثر يعني نتيجة أفضل. العكس هو الصحيح: المحادثة الطويلة المليئة بمحاولات فاشلة تشتّت الوكيل فيعود إلى أخطاء صحّحتها قبل ساعة. هذه الظاهرة اسمها تلوّث السياق، وعلاجها ليس أمرًا أذكى، بل محادثة جديدة.
- استخدم @ دائمًا: أشِر إلى الملف المقصود بدل «الملف السابق».
- الصق الجزء المعطوب فقط حين تسأل عن خلل، لا الملف كله.
- ابدأ محادثة جديدة عند تغيير المهمة، لا عند تغيير السؤال.
- غيّرت النموذج؟ أعد لصق المواصفات.
- علامة التلوّث: عاد الوكيل إلى خطأ صحّحته من قبل. أغلق وافتح محادثة جديدة، ولا تجادله.
حتى الآن تلصق وصفة التصميم في أول كل محادثة. هذا عمل يدوي يُنسى، وأول ما تنساه تجد صفحة بلون مختلف عن كل صفحاتك. الحلّ أن تعيش القواعد في المجلّد لا في المحادثة.
تقرأ بيئات التطوير الوكيلية ملف قواعد من المشروع تلقائيًّا وتحقنه في كل طلب. الاسم يختلف بحسب الإصدار: النسخ الحديثة تقرأ AGENTS.md في جذر المشروع، وهناك أيضًا مجلّد .cursor/rules، والنسخ الأقدم تستخدم .cursorrules. المبدأ واحد مهما تغيّر الاسم.
القاعدة الذهبية: اكتب القيود لا التمنّيات. «اجعل التصميم جميلًا» ليست قاعدة. «اللون المميّز للإجراءات فقط، وزرّ ممتلئ واحد في الشاشة» قاعدة؛ لأنها قابلة للفحص.
# قواعد مشروع: ___ اسم المشروع ## اللغة والاتجاه - كل المحتوى بالعربية الفصحى، والصفحة dir="rtl" وlang="ar". - المصطلحات الإنجليزية داخل النص توضع في عنصر dir="ltr". ## نظام التصميم (لا يُخالَف) - الألوان: أساسي ___ · مميّز ___ · خلفية ___، وتُعرَّف متغيّراتٍ في :root ولا تُكتب مباشرة. - خط واحد بسلّم أحجام ثابت. - المسافات: مضاعفات 8px حصرًا. - نصف قطر واحد للبطاقات وواحد للأزرار، وظل واحد في المشروع كله. - اللون المميّز للإجراءات فقط، وزرّ ممتلئ واحد في كل شاشة. ## معايير الكود الإلزامية - ملف HTML واحد مكتفٍ ذاتيًّا، دون مكتبات خارجية. - HTML دلالي، وlabel لكل حقل، وحلقة تركيز ظاهرة. - textContent لكل قيمة من المستخدم، ولا innerHTML. - صفر تمرير أفقي على 390px، وأهداف لمس 48px. ## طريقة العمل معي - اكتب خطة قبل أي تنفيذ وانتظر موافقتي. - إن كان بند غامضًا فاسألني قبل أن تفترض. - لا تعدّل خارج نطاق الطلب.
أغلب فشل الوكلاء ليس فشل تنفيذ، بل فشل تحديد. حين تقول «اعمل حاسبة تسعير» يضطرّ الوكيل إلى اتخاذ عشرين قرارًا مكانك: ترتيب العمليات، والتقريب، والحدّ الأدنى، وسلوك القيم الفارغة. وسيتّخذها كلها، لكن ليس بالضرورة كما تريد، وغالبًا ستكتشف ذلك بعد أن تكتمل الصفحة.
طلب غامض
«اعمل صفحة حجز فيها مواعيد متاحة، والعميل يختار ويؤكّد.» النتيجة تعمل، وفيها عشرة قرارات لم ترها.
مواصفة محدّدة
«ساعات العمل 10ص–8م، وآخر موعد ينتهي قبل الإغلاق بمدّة الخدمة. الجمعة معطّلة. تغيير الخدمة يعيد توليد المواعيد ويصفّر الاختيار السابق.» نتيجة قابلة للمحاسبة.
# مواصفة: ___ اسم الشاشة ## 1 · الهدف في جملة من يستخدمها، ولماذا، وما الفعل الوحيد الناجح. ## 2 · المدخلات لكل حقل: الاسم · النوع · إلزامي أم لا · النطاق المسموح · رسالة الخطأ. ## 3 · المعادلات وترتيب العمليات المعادلة كاملة بالترتيب حرفيًّا، وأين يحدث التقريب ولأي خانة. مثال: المجموع ← ناقص الخصم ← الصافي ← الضريبة على الصافي ← الإجمالي. الحساب على القيم الكاملة، والتقريب عند العرض فقط. ## 4 · القواعد وأولوياتها عند التعارض مرقّمة: القاعدة 1 تغلب القاعدة 2 ... ## 5 · الحالات الأربع فارغة · تحميل · خطأ · نجاح، ونصّ كلٍّ منها. ## 6 · الحالات الحدّية القيم عند الحدود بالضبط، والصفر، والسالب، والنص الطويل، والضغط المتكرر. ## 7 · معايير القبول بنود قابلة للحكم عليها بنعم أو لا. ## 8 · خارج النطاق ما لن تفعله هذه النسخة صراحةً.
سير العمل: اكتب specs.md بيدك (أهم عشرين دقيقة في المشروع). ثم: «اقرأ @specs.md واكتب خطة تنفيذ بلا كود». راجع الخطة وصحّحها؛ فأرخص تصحيح ما يحدث قبل الكود. ثم: «نفّذ المواصفة بندًا بندًا، وإن وجدت بندًا غامضًا فاسألني قبل أن تفترض».
يقول الوكيل «تم» بالثقة نفسها سواء نفّذ صحيحًا أم خطأً؛ لأنه يصف نيّته لا نتيجته. المهارة أن تغلق الحلقة: لا تقبل «تم» إجابةً، واطلب دليلًا. وأقوى صيغة للدليل أن يراجع الوكيل عمله مقابل معيار مكتوب. «راجع الكود» تعيد إليك مجاملات؛ و«راجع الكود مقابل هذه البنود واحدًا واحدًا» تعيد إليك الحقيقة.
راجع تنفيذك مقابل معايير القبول في @specs.md بندًا بندًا. لكل بند اكتب سطرًا واحدًا بهذه الصيغة حصرًا: [البند] — متحقّق / غير متحقّق / متحقّق جزئيًّا — الموقع في الكود (اسم الدالة أو رقم السطر) — ملاحظة في عشر كلمات. قواعد إلزامية: - لا تصلح أي شيء في هذا الرد؛ التقرير فقط. - إن كان بند غير متحقّق فاذكره صراحةً ولا تبرّره. - إن لم تستطع التحقّق من بند برمجيًّا فاكتب «يحتاج اختبارًا يدويًّا» واذكر خطوات الاختبار. - في نهاية التقرير اذكر أي حالة حدّية لم تغطّها المواصفة ويحتمل أن تكسر الصفحة.
والصيغة الأقوى: اجعله يهاجم عمله بنفسه قبل أن تهاجمه أنت.
تصرّف الآن كمختبِر جودة مهمّته كسر هذه الصفحة، لا كمطوّر يدافع عنها. اكتب عشر حالات اختبار يُرجَّح أن تفشل فيها الصفحة، مرتّبة من الأخطر إلى الأقل. لكل حالة: ما سيفعله المستخدم بالضبط، والنتيجة المتوقّعة، والنتيجة الفعلية المرجّحة في الكود الحالي. ركّز على: القيم عند الحدود تمامًا · الصفر والسالب · النصوص العربية الطويلة جدًّا · الضغط المتكرر السريع · التواريخ الفائتة · القوائم الفارغة · تغيير اختيار سابق بعد بناء ما يليه. لا تصلح شيئًا الآن.
حين تجد خللًا وتقول للوكيل «أصلحه»، تمنحه رخصة لتغيير أي شيء حتى يختفي العَرَض. وهذا أخطر ما يمكنك فعله: العَرَض يختفي فعلًا، والسبب يبقى، ويظهر من مكان آخر بعد أسبوع.
المنهج الصحيح ثلاث مراحل منفصلة، ولا تنتقل إلى مرحلة قبل إنهاء سابقتها:
العَرَض
ما فعلته ← ما توقّعته ← ما حدث فعلًا. بالأرقام والخطوات، دون تفسير ولا تخمين.
الفرضية
السبب المرجّح في سطر محدّد، وكيف نثبته أو ننفيه، دون أي تعديل بعد.
الإصلاح
أضيق تعديل ممكن يعالج السبب، ثم إعادة اختبار للعَرَض ولما حوله.
لا تعدّل أي شيء في هذا الرد. العَرَض: - ما فعلته: ___ - ما توقّعته: ___ - ما حدث فعلًا: ___ المطلوب: 1. اذكر ثلاثة أسباب محتملة مرتّبة بالاحتمالية، ولكل سبب السطر أو الدالة المسؤولة. 2. لكل سبب: كيف أتحقّق منه بنفسي في أقل من دقيقة؟ 3. اختر السبب الأرجح واشرح لماذا ترجّحه على الآخرين. 4. صف الإصلاح المقترح بالكلمات فقط، واذكر ما قد ينكسر بسببه في مكان آخر. سأراجع تحليلك ثم أطلب التنفيذ. لا تكتب كودًا الآن.
الفرق (diff) آخر خط دفاع بينك وبين كود لا تفهمه. وأغلب المتعلّمين يضغطون «قبول» بعد نظرة سريعة. المهارة ليست أن تقرأ كل سطر، بل أن تعرف عمّا تبحث.
خمسة أسئلة قبل أي قبول:
- هل حجم التعديل معقول للطلب؟ طلبت تغيير لون فجاءك 80 سطرًا؟ ارفض واطلب أضيق.
- هل حُذف شيء لم تقصد حذفه؟ الأحمر أخطر من الأخضر؛ ابحث عن تحقّق أو حالة حُذفت.
- هل ظهرت أرقام أو ألوان جديدة خارج النظام؟ قيمة مكتوبة مباشرة بدل المتغيّر بداية تفكّك النظام.
- هل أُضيفت مكتبة أو ملف؟ ممنوع في مشروع مكتفٍ ذاتيًّا إلا إن طلبته.
- هل ما زال الجزء الذي كان يعمل يعمل؟ الإصلاح الذي يكسر شيئًا آخر ليس إصلاحًا.
الردّ المتسرّع
قبول ← الصفحة انكسرت ← «أرجعها كما كانت» ← الوكيل يصلح فوق الكارثة ← الملف أسوأ من البداية.
الردّ المنضبط
رفض ← استعادة نقطة الرجوع ← أمر أضيق بمواصفة أدق ← تنفيذ ← مراجعة ← قبول.
هناك نقطة يصبح فيها استعمال الوكيل أبطأ من أن تفعل الشيء بنفسك، ومعرفة هذه النقطة مهارة لا ضعف.
| الحالة | الأفضل | لماذا |
|---|---|---|
| بناء أول نسخة من شاشة كاملة بمواصفة جاهزة | الوكيل | مهمة واسعة، وأعلى عائد |
| تغيير قيمة أو لون أو نص تعرف سطره | يدويًّا | الكتابة أسرع من كتابة الأمر |
| تعديل محدود على جزء حدّدته | التعديل المضمّن | نطاق مغلق، وخطر وتكلفة أقل |
| خلل غامض لا تعرف مصدره | المحادثة | التشخيص حوار، لا تعديل |
| توحيد قيم مكرّرة في الملف كله | الوكيل | تعديل متعدّد المواضع، وهذا ما يتفوّق فيه |
| محاولتان متتاليتان فشلتا في الشيء نفسه | توقّف | المشكلة في المواصفة لا في التنفيذ |
والقاعدة الأهم: لا تسلّم كودًا لا تفهمه. لا يلزم أن تستطيع كتابته من الصفر، لكن يلزم أن تعرف ما يفعله كل جزء ولماذا هو موجود؛ فأنت من سيُسأل عنه في التعديل القادم، لا الوكيل.
سبعة ملفات قبل أول سطر كود#
الفرق بين من يفتح Cursor ويكتب طلبًا، ومن يفتحه وعنده هذه الملفات جاهزة، هو الفرق بين نصف يوم عمل ونصف ساعة. أربعة تُكتب قبل البدء، واثنان أثناء العمل، وواحد عند التسليم.
my-project/ ├── AGENTS.md # القواعد الدائمة، تسري على كل محادثة ├── specs.md # المواصفة: القرارات قبل الكود ├── content.ar.md # المحتوى والبيانات الحقيقية ├── test-cases.md # القيم الشريرة وحالات الاختبار ├── prompt_log.md # سجل المحاولات، يُكتب أثناء العمل ├── diagnosis.md # سجل الأعطال، يُكتب أثناء العمل ├── handoff.md # رسالة التسليم والقرارات └── index.html # الناتج: آخر ملف يظهر في المجلّد
لاحظ أن ملف الكود آخر ملف. هذا ليس شكلًا، بل ترتيب التفكير: من يبدأ بـ index.html يقضي بقية اليوم يصلح قرارات اتُّخذت دونه.
الملفات الأربعة الباقية
الغرض: منع «عنوان تجريبي» و«Lorem ipsum». التصميم الذي لا ينجح إلا مع محتوى مثالي تصميم فاشل، والعميل يكتشف ذلك أول ما يضع كلامه الحقيقي. هذا أكثر ملف يستهين به المتعلّمون، وهو يكشف نصف مشكلات التصميم قبل وقوعها: العنوان الذي يلتفّ على سطرين، والاسم الإنجليزي وسط السطر العربي، والرقم الذي يكسر عمود الجدول.
يوضع فيه: كل نص سيظهر بصيغته النهائية، وبيانات واقعية متفاوتة عمدًا: أطول عنوان متوقّع، وأقصره، واسم إنجليزي، ورقم كبير. ويُمنع فيه: النصوص الوهمية، والبيانات المتساوية الطول التي تخفي مشكلات التخطيط.
# محتوى: ___ اسم الشاشة ## النصوص الثابتة - العنوان الرئيسي: ___ - العنوان الفرعي: ___ - نص الزرّ الأساسي: ___ - نصوص الحالات (فارغة / تحميل / نجاح / خطأ): ___ ## رسائل الأخطاء كما ستظهر - حقل فارغ: ___ - صيغة غير صحيحة: ___ - تجاوز الحد: ___ ## بيانات تجريبية واقعية ومتفاوتة عمدًا | ___ | ___ | ___ | |---|---|---| | أقصر مدخل ممكن | | | | مدخل متوسط طبيعي | | | | أطول عنوان عربي متوقّع في الواقع | | | | مدخل يحتوي اسمًا إنجليزيًّا ورقمًا كبيرًا | | |
الغرض: أن تكتب كيف ستكسر الصفحة قبل أن تبنيها. هذا الملف ما تحوّله لاحقًا إلى أمر التحقّق، وهو الفرق بين أن تختبر بمزاجك وأن تختبر بمنهج. ويُمنع فيه: «اختبر الصفحة». الحالة التي لا يُحكم عليها بنعم أو لا ليست حالة اختبار.
# حالات الاختبار: ___ اسم الشاشة | # | الفعل بالضبط | المتوقّع | الفعلي | ✅/❌ | |---|---|---|---|---| | 1 | إرسال والحقول كلها فارغة | رسالة عربية أسفل كل حقل مطلوب، والتركيز ينتقل لأول حقل | | | | 2 | مسافات فقط في حقل مطلوب | يُرفض كأنه فارغ | | | | 3 | قيمة سالبة أو صفر | تُرفض برسالة تشرح النطاق المسموح | | | | 4 | حروف في حقل رقمي | تُرفض دون ظهور NaN في أي مكان | | | | 5 | القيمة عند الحد بالضبط | تُعامَل بحسب المواصفة حرفيًّا | | | | 6 | نص عربي من 500 حرف | لا يكسر التخطيط | | | | 7 | الضغط على الإرسال عشر مرات بسرعة | يُنفَّذ مرة واحدة | | | | 8 | تغيير اختيار سابق بعد بناء ما يليه | يُصفَّر ما بُني عليه | | | | 9 | عرض 390px | صفر تمرير أفقي | | | | 10 | التنقّل بـ Tab فقط | كل عنصر يُصل إليه ويُشغَّل | | |
سجل المحاولات يجعل مهارتك تتراكم بدل أن تتبخّر؛ فالأمر الذي نجح اليوم ستنساه بعد أسبوع، إلا إن كُتب ومعه سبب نجاحه. ويُكتب أثناء العمل لا من الذاكرة آخر اليوم؛ فالسجل المكتوب بأثر رجعي قصة لا سجل.
سجل الأعطال يفرض عليك منهج المهارة الخامسة. وأهم سطر فيه «الدرس المستفاد»؛ لأنه ما يمنع تكرار العطل في المشروع التالي.
# سجل الأوامر: ___ المشروع ## المحاولة 1 — [المهمة] - النموذج: ___ - الأمر: ___ - النتيجة: ___ - المشكلة في الناتج: ___ - التعديل في المحاولة التالية وسببه: ___ ## المحاولة 2 — [المهمة نفسها بنطاق أضيق] - النموذج: ___ - ما غيّرته في الصياغة: ___ - النتيجة: ___ --- ## خلاصة الجلسة - أنجح صيغة استخدمتها: ___ - أسوأ صيغة ولماذا فشلت: ___ - متى بدأت محادثة جديدة ولماذا: ___ - قاعدة أضيفها إلى AGENTS.md: ___
# سجل الأعطال: ___ المشروع ## عطل 1 - العَرَض: ما فعلته ___ / ما توقّعته ___ / ما حدث فعلًا ___ - خطوات إعادة الإنتاج: 1) ___ 2) ___ 3) ___ - الفرضية: السبب المرجّح في ___ (الدالة/السطر) - كيف تحقّقت منها: ___ - الإصلاح: ___ - ما كان يمكن أن ينكسر بسببه وفحصته: ___ - الدرس المستفاد (بصيغة قاعدة عامة): ___
الغرض: هذا الملف ما يفرّق بين من يرسل ملفًا ومن يسلّم عملًا. العميل لن يقرأ كودك، بل هذه الرسالة، وعليها يحكم عليك. ويُمنع فيه: المصطلحات التقنية، والاعتذارات، و«الصفحة كاملة بلا أي مشكلات». الوضوح يبني ثقة أكثر من الكمال المزعوم.
# تسليم: ___ اسم الشاشة ## ما تمّ تنفيذه ___ في فقرة واحدة بلغة العميل لا بلغة المطوّر. ## قرارات اتخذتها نيابةً عنك كان في طلبك نقاط تحتمل أكثر من تفسير، وهذه اختياراتي وسببها: 1. ___ — اخترت ___ لأن ___. وإن كان المقصود غير ذلك فالتعديل بسيط. 2. ___ ## يحتاج قرارًا منك - ___ ## حدود النسخة الحالية ___ بصراحة (مثال: البيانات محفوظة في متصفّحك فقط ولا تُشارَك بين الأجهزة). ## كيف تستخدمها 1. ___ 2. ___
المهارات السبع في مسار واحد#
تجهيز البيئة
مجلّد مستقل، وملف قواعد فيه نظام التصميم والمعايير الإلزامية، وفتح المجلّد من Cursor.
كتابة المواصفة
specs.md بيدك: المدخلات بنطاقاتها، والمعادلات بترتيبها، والقواعد بأولوياتها، والحالات الأربع والحدّية، ومعايير القبول، وخارج النطاق.
خطة بلا كود
التصحيح هنا يكلّف دقيقة؛ وبعد الكود يكلّف ساعة.
تنفيذ بسياق نظيف
محادثة مخصّصة للمهمة، بالنموذج المناسب، وبإشارة @ إلى الملفات المعنية.
مراجعة الفروق
الأسئلة الخمسة قبل أي قبول؛ وأي تعديل أوسع من الطلب يُرفض.
حلقة التحقّق
أمر التحقّق بندًا بندًا، ثم الأمر العدائي، ثم تختبر بيدك ما وُصف بأنه «يحتاج اختبارًا يدويًّا».
مراجعة الجودة الستة
المعايير الستة غير المرئية تحوّل «يعمل» إلى «قابل للتسليم».
التسليم والتوثيق
الملف، والمواصفة، وسجل الأوامر، ورسالة تسليم مهنية.
المشروع: «مِرصاد»، فاحص جودة ترجمة يعمل في المتصفّح#
ليس صفحة عرض، بل أداة من الفئة التي تدفع مكاتب الترجمة فيها اشتراكات شهرية، نبنيها في ملف HTML واحد دون خادم ولا مكتبات ولا إنترنت. يلصق المستخدم نصّين متقابلين (المصدر والترجمة) ومسردًا اختياريًّا، فتفحص الأداة كل مقطع آليًّا وتُخرج تقريرًا بالمشكلات مصنّفة بالخطورة، وكل ذلك في متصفّحه دون أن تغادر بياناته جهازه.
مشروع حقيقي
هذا ما تفعله أدوات ضمان جودة الترجمة المعروفة، بنسخة مصغّرة بنيتها أنت.
يجمع كل المعايير
تطبيع عربي، ونص ثنائي الاتجاه، والحالات الأربع، وتحصين المدخلات، والرموز، والطباعة.
لا خادم ولا API
منطق خالص؛ فكل قرار فيه من مواصفتك أنت، لا من «الوكيل عمله».
لملف أعمالك
مخرَج يوضع في ملف الأعمال ويُعرض على مكتب ترجمة فعلًا.
محرّك الفحص: ثمانية فحوص#
كل فحص يولّد «مشكلة» لها: رقم المقطع، ونوع الفحص، ودرجة الخطورة، ووصف عربي.
| # | الفحص | الخطورة | المنطق المطلوب |
|---|---|---|---|
| 1 | مقطع غير مترجم | خطير | الهدف فارغ بعد trim، أو مطابق للمصدر حرفيًّا |
| 2 | عدم تطابق الأرقام | خطير | استخراج الأرقام من الطرفين ومقارنتها مجموعاتٍ، مع تطبيع الأرقام العربية المشرقية ٠١٢٣ إلى 0123 قبل المقارنة |
| 3 | مخالفة المسرد | خطير | إن وُجد مصطلح المسرد في المصدر فيجب أن توجد ترجمته المعتمدة في الهدف، بمطابقة مطبَّعة |
| 4 | عدم اتساق داخلي | تحذير | المقطع المصدر نفسه مترجم بأكثر من صيغة في الملف |
| 5 | رموز نائبة مفقودة | خطير | رموز مثل {0} أو %s في المصدر وغائبة عن الهدف |
| 6 | أقواس غير متوازنة | تحذير | عدّ الأقواس وعلامات التنصيص في الهدف والتأكّد من إغلاقها |
| 7 | مسافات وترقيم | ملاحظة | مسافة مزدوجة، أو مسافة قبل علامة ترقيم، أو غيابها بعدها |
| 8 | طول غير متناسب | ملاحظة | الهدف أطول من المصدر بنسبة يحدّدها المستخدم |
الواجهة: عمودان للّصق (مقطع في كل سطر) وخانة مسرد بصيغة «مصطلح = ترجمة» وإعدادات الحدود. مؤشّرات علوية: عدد المقاطع، والمشكلات بكل درجة، ونسبة سلامة بمعادلة تكتبها في المواصفة. جدول مشكلات يعرض المصدر والهدف متجاورين مع تمييز الجزء المشكوك فيه. تصفية بالخطورة وبنوع الفحص معًا. زرّ «مقبول» يستبعد المشكلة من العدّ ويُبقيها موسومة. طباعة تقرير A4 وتنزيل CSV.
الفخاخ المدفونة: هنا يتفاوت المستوى
فخاخ منطقية
- الأرقام المشرقية: المصدر فيه 2026 والهدف فيه ٢٠٢٦؛ تطابق أم مخالفة؟ قرارك يُكتب في المواصفة.
- اختلاف عدد الأسطر: المصدر 12 سطرًا والهدف 10؛ المحاذاة الخاطئة تفسد كل النتائج.
- التطبيع في المسرد: «الإجراء» في المسرد و«الاجراء» في النص يجب أن يتطابقا (همزات، وتاء مربوطة، وتشكيل).
- نسبة السلامة: تُحسب على المقاطع أم على المشكلات؟ وهل تدخل المشكلات المقبولة في الحساب؟
فخاخ تقنية
- ثنائية الاتجاه: مصدر إنجليزي وهدف عربي في صف واحد؛ كل عمود بـ dir مستقل، والرموز النائبة تظهر صحيحة.
- التمييز داخل النص: يُبنى بالـ DOM لا بـ innerHTML؛ فالنص آتٍ من المستخدم.
- الأداء: 500 مقطع × 8 فحوص. إن أُعيد الفحص مع كل ضغطة على التصفية تجمّدت الصفحة؛ افصل الفحص عن العرض.
- تصدير CSV: نص عربي وفواصل داخل الوصف؛ يحتاج تهريبًا صحيحًا وترميزًا يُفتح في Excel.
خطة البناء على خمس مراحل#
المواصفة (15 دقيقة)
لا كود. قرار الأرقام المشرقية، وقرار اختلاف عدد الأسطر، ومعادلة نسبة السلامة، وأولويات الخطورة عند تداخل فحصين على المقطع نفسه.
الهيكل والإدخال والجدول (20 دقيقة)
الشكل كاملًا بنظام التصميم من AGENTS.md، وتقسيم المدخل إلى مقاطع، والجدول ثنائي اللغة بـ dir مستقل لكل عمود، دون أي فحص بعد.
أول ثلاثة فحوص (25 دقيقة)
غير المترجم، والأرقام، والمسرد. كل فحص دالة مستقلة تأخذ مقطعًا وتُرجع قائمة مشكلات؛ وهذه البنية تجعل إضافة الخمسة الباقية سطرين لكلٍّ منها.
باقي الفحوص والتصفية والمؤشّرات (20 دقيقة)
الخمسة الباقية، والتصفية المتزامنة، والحالات الأربع، وفصل الفحص عن العرض.
التصدير والتحقّق (20 دقيقة)
طباعة A4 وتصدير CSV، ثم أمر التحقّق بندًا بندًا والأمر العدائي.
@AGENTS.md @specs.md @content.ar.md اقرأ الملفات الثلاثة أولًا، ثم نفّذ المرحلة الثانية فقط من خطة المشروع ولا تتجاوزها: الهيكل ومنطقة الإدخال وجدول المقاطع ثنائي اللغة، بلا أي منطق فحص في هذه المرحلة. المتطلبات: - ملف HTML واحد مكتفٍ ذاتيًّا، بنظام التصميم المعرّف في AGENTS.md حرفيًّا. - منطقة إدخال: حقلان نصّيان كبيران للمصدر والهدف (كل سطر مقطع)، وحقل ثالث للمسرد بصيغة «مصطلح = ترجمة». - عند الضغط على «تحليل»: قسّم النصّين إلى مقاطع مع تجاهل الأسطر الفارغة، وإن اختلف عدد المقاطع فاعرض تنبيهًا واضحًا بحسب قرار المواصفة. - جدول ثنائي اللغة: عمود المصدر dir="ltr" وعمود الهدف dir="rtl"، وكل قيمة تُدرج بـ textContent. - الحالات الأربع للجدول، وصفر تمرير أفقي على 390px. اكتب الخطة أولًا وانتظر موافقتي.
بيانات العرض بأخطاء مزروعة#
الصقها أول ما تعمل الأداة: كل سطر فيه عطل مقصود من نوع مختلف، ولحظة ظهور التقرير صحيحًا هي لحظة «الانبهار».
The agreement shall enter into force on 15 March 2026.
The Contractor shall deliver 3 copies of the report.
Please contact us at support@example.com for assistance.
The total amount is {0} EGP including 14% VAT.
The Party may terminate this Agreement (with notice) at any time.
The Contractor shall deliver 3 copies of the report.
This clause is governed by the laws of the Arab Republic of Egypt.
All rights reserved.يدخل الاتفاق حيّز النفاذ في ١٥ مارس ٢٠٢٦. يسلّم المقاول نسختين من التقرير. Please contact us at support@example.com for assistance. المبلغ الإجمالي هو ___ جنيهًا شاملًا ضريبة القيمة المضافة بنسبة 14%. يجوز للطرف إنهاء هذا الاتفاق (بعد إخطار في أي وقت. يقوم المقاول بتوريد ٣ نسخ من التقرير. يخضع هذا البند لقوانين جمهورية مصر العربية ، وذلك على النحو المبيّن في هذا الاتفاق وفي أي ملاحق لاحقة له.
Agreement = اتفاق Contractor = المقاول Party = الطرف report = تقرير VAT = ضريبة القيمة المضافة
مفتاح الأعطال المزروعة
- السطر 2: الرقم 3 صار «نسختين» ← عدم تطابق أرقام.
- السطر 3: غير مترجم إطلاقًا ← مقطع غير مترجم.
- السطر 4: الرمز النائب {0} اختفى ← رمز نائب مفقود.
- السطر 5: قوس مفتوح دون إغلاق ← أقواس غير متوازنة.
- السطر 6: المصدر نفسه للسطر 2 مترجم بصيغة أخرى ← عدم اتساق داخلي.
- السطر 7: مسافة مزدوجة ومسافة قبل الفاصلة ← ترقيم؛ والهدف أطول كثيرًا ← طول غير متناسب.
- السطر 8: غائب تمامًا ← اختلاف عدد الأسطر (فخ المحاذاة).
التكليف#
ليس مشروعًا جديدًا: ارجع إلى مشروعك السابق ومرّره على هذا المسار كاملًا.
- AGENTS.md لمشروعك بنظام التصميم والمعايير الإلزامية.
- specs.md كاملة بأقسامها الثمانية.
- diagnosis.md لتشخيص أعطال صفحة معطوبة.
- مشروعك بعد تمريره على معايير الجودة الستة.
- تقرير التحقّق الذي أعاده الوكيل بندًا بندًا، بأخطائه ونواقصه.
معايير التقييم
سبع جمل تلخّص الدرس#
- السياق مورد تديره؛ القليل المنقّى أقوى من الكثير المكوّم.
- أي كلام تكرّره مكانه ملف قواعد، لا ذاكرتك.
- أي قرار غير مكتوب في المواصفة سيتّخذه الوكيل مكانك.
- «تم» ليست نتيجة؛ النتيجة تقرير بندًا بندًا بمواقعه في الكود.
- لا تطلب إصلاح سبب لم تفهمه؛ سيخفي الوكيل العَرَض ويترك السبب.
- الأحمر في الفرق أخطر من الأخضر؛ ما يُحذف يمرّ في صمت.
- الفشل مرتين في النقطة نفسها يعني أن المشكلة في المواصفة لا في التنفيذ.
اختبر فهمك
عاد الوكيل إلى خطأ صحّحته قبل ساعة في المحادثة نفسها. ما التصرّف الأفضل؟
هذه علامة تلوّث السياق، وعلاجها محادثة نظيفة لا جدال أطول.
اختبر فهمك
أيّ هذه قاعدة صالحة لملف AGENTS.md؟
القاعدة الصالحة قيد يمكن فحصه بالعين أو بالكود.
اختبر فهمك
فشلت محاولتان متتاليتان في إصلاح النقطة نفسها. ما الخطوة التالية؟
تكرار الفشل في النقطة نفسها يدلّ على خلل في التحديد لا في التنفيذ.