هذه التدوينة هي محتوى تم تقديمه كعرض تقديمي لحالة 'هندسة الهارنس' في نقابة Dabakodan Dao Lab Vibe Coding في 2 مايو 2026.
Nextain هي شركة تقوم بتطوير ودعم التقنيات المتعلقة بتحويل الذكاء الاصطناعي (AX) للشركات التي تمتلك منتجات برمجية. وقد تولت Nextain إدارة تشغيل نظام Onmam.com، وهو بوابة الكنائس الكورية، وتعمل على مهام AX. نحن نعمل على نقل الأنظمة القديمة الموجودة في مركز IDC السابق، وإعداد بيئة تسمح بتطوير وتشغيل المشاريع القائمة على الوكلاء، ونقوم بأعمال الاستقرار وتحسين الوظائف. نظرًا لكونه نظامًا قديمًا، فقد واجهنا بعض التجارب والأخطاء، ونحن نطبق naia-business-adk على Onmam.com، مما يجسد خبرة الشركة وتقنياتها. وقد تمت مشاركة هذه التجربة كحالة توضيحية لهندسة الهارنس في هذا الحدث.

رسالة هذا المقال في سطر واحد "الأهم من استخدام الذكاء الاصطناعي بشكل جيد هو إنشاء بيئة لا يرتكب فيها الذكاء الاصطناعي أخطاء."
1. أولاً، مقدمة عن خدمتنا
Onmam.com — منصة إدارة الكنائس التي تستخدمها 13,876 كنيسة في جميع أنحاء البلاد
www.onmam.com ← البحث عن كنيسة، بوابة الأعضاء
home.onmam.com ← تطبيق القناة (محتوى/دفع)
{اسم_الكنيسة}.onmam.com ← صفحة الكنيسة الفردية
البنية التحتية: خوادم IDC قديمة → الانتهاء من النقل الكامل إلى GCP (جوجل كلاود) في أبريل 2026 قاعدة البيانات: بيانات 13,876 كنيسة × Cloud SQL
2. لنبدأ بحادثة واحدة
"في أحد أيام أبريل 2026"
الساعة 11 صباحًا. فجأة، توقف جميع خدمات Onmam.com عن الاستجابة.
المستخدمون: "لماذا الموقع لا يعمل؟"
عند تتبع السبب — وجدنا أن الكود المسؤول عن استعلام قائمة لوحة الإعلانات في ملف يُدعى Board.php.
-- الاستعلام الذي سبب المشكلة (مبسط)
SELECT * FROM boards
JOIN (
SELECT bbs_id, COUNT(*) FROM all_boards GROUP BY bbs_id -- ← هذه هي المشكلة
) AS summary ON boards.id = summary.bbs_id
WHERE church_id = ?
هذا الاستعلام الواحد كان يقوم بمسح كامل لبيانات 13,876 كنيسة في كل مرة. عندما تزايدت حركة المرور، تم تنفيذ 145 استعلامًا متزامنًا يستغرق كل منها 600-800 ثانية → شلل كامل للخادم.
ما علاقة هذا بالذكاء الاصطناعي؟
ربما كان مطور بشري هو من كتب هذا الكود في البداية. لكن اليوم، يكتب المطورون مثل هذا الكود بالتعاون مع الذكاء الاصطناعي.
المشكلة هي — الذكاء الاصطناعي لا يعرف "كيف يعمل هذا الكود في بيئة تضم 13,876 كنيسة". يركز الذكاء الاصطناعي على تنفيذ الوظيفة المطلوبة، ولا يعرف سياق خدمتنا.
لذا بدأ المطورون في التفكير: "كيف نمنع الذكاء الاصطناعي من كتابة الكود دون معرفة خدمتنا؟"
3. هندسة الهارنس — شرح في 30 ثانية
تمامًا كما تحتاج إلى لجام وسرج (Harness) للتحكم في الحصان،
يحتاج وكيل الذكاء الاصطناعي أيضًا إلى قيود وإرشادات وآليات تحقق.
الوكيل = النموذج + الهارنس
الهارنس = تصميم بيئة عمل الذكاء الاصطناعي بأكملها
الأمر ليس مجرد "طرح أسئلة جيدة على الذكاء الاصطناعي". إنه تصميم نظام يمنع الذكاء الاصطناعي من ارتكاب نفس الأخطاء هيكليًا عندما يخطئ.
4. الهارنسات التي تم إنشاؤها فعليًا في Onmam.com
[هارنس #1] AGENTS.md — "خريطة خدمتنا" التي تُعطى للذكاء الاصطناعي
alpha-adk/
├── CLAUDE.md ← ملف يجب على الذكاء الاصطناعي قراءته عند بدء الجلسة
├── AGENTS.md ← قائمة بقواعد المشروع
└── .agents/
└── context/
└── agents-rules.json ← قواعد التشغيل المحددة
يجب على الذكاء الاصطناعي قراءة هذه الملفات قبل لمس كود Onmam.com. تحتوي هذه الملفات على ما يلي:
- "يجب إجراء الاختبارات وتعديلات الكود فقط في بيئة alpha"
- "home.onmam.com هو تطبيق قناة منفصل وليس بوابة"
- "نمط الجداول المشتقة من GROUP BY في Board.php ممنوع منعًا باتًا"
ذلك العطل السابق؟ الآن، إذا حاول الذكاء الاصطناعي كتابة نفس النمط، فسيتوقف عند رؤية هذه القواعد.
[هارنس #2] Hooks — "آليات الأمان" التي تعمل قبل وبعد تصرفات الذكاء الاصطناعي
الخطافات (Hooks) التي تعمل حاليًا في مساحة العمل هذه:
مباشرة قبل أن ينفذ الذكاء الاصطناعي أمر Bash →
✓ pr-guard.js : منع دمج طلبات السحب (PR) بدون مراجعة
✓ commit-guard.js : منع الالتزامات (commits) التي تنتهك القواعد
✓ deploy-guard.js : منع النشر على خادم الإنتاج بدون موافقة
✓ git-push-guard.js : منع git push بدون موافقة
✓ destructive-git-guard.js : منع الأوامر التدميرية مثل git reset --hard
مباشرة قبل أن يعدل الذكاء الاصطناعي ملفًا →
✓ prod-gateway-guard.js : منع استخدام مفاتيح API للإنتاج في ملفات بيئة التطوير
✓ design-doc-guard.js : منع التعديل غير المصرح به لوثائق التصميم
مباشرة بعد أن يعدل الذكاء الاصطناعي ملفًا →
✓ cascade-check.js : التحقق من الملفات المتأثرة بشكل متسلسل بالملف المعدل
مثال عملي لـ deploy-guard.js:
محاولة الذكاء الاصطناعي لتنفيذ أمر نشر الإنتاج:
$ gcloud run deploy onmam-web ...
→ [Harness] منع أمر نشر الإنتاج: gcloud run deploy
المشروع: onmam-web
يتطلب نشر الإنتاج موافقة مسبقة.
طريقة الموافقة: إضافة عنصر موافقة إلى .claude/deploy/approvals.json
الذكاء الاصطناعي لا ينفذ نشر الإنتاج مباشرة.
حتى لو حاول الذكاء الاصطناعي عن طريق الخطأ، أو بشكل مفرط، تحميل شيء ما إلى خادم الإنتاج، فسيتم حجبه ماديًا.
[هارنس #3] بيئة Alpha — ملعب مخصص لتجارب الذكاء الاصطناعي
الإنتاج (Production) : www.onmam.com ← تستخدمه الكنائس الفعلية
التجهيز (Staging) : staging.onmampick.org ← التحقق النهائي قبل النشر
ألفا (Alpha) : luke-*-alpha.onmampick.org ← مساحة للعمل مع الذكاء الاصطناعي
القاعدة: جميع الأعمال مع الذكاء الاصطناعي تتم فقط في بيئة alpha.
لماذا هذا مهم — ما حدث بالفعل في 29 أبريل 2026:
أخطأ الذكاء الاصطناعي في اعتبار
home.onmam.comتطبيقportalوكتب إعدادات vhost خاطئة. نظرًا لأنها كانت بيئة alpha → لم يكن هناك تأثير على الخدمة الفعلية. تم تسجيل هذا الخطأ في AGENTS.md → لن يرتكب الذكاء الاصطناعي نفس الخطأ مرة أخرى.
جوهر الهارنس يكمن هنا: إذا حدث خطأ → يتم تسجيله في الهارنس → يصبح ارتكاب نفس الخطأ مستحيلًا هيكليًا في المرة القادمة.
[هارنس #4] Skills — "أدواتنا الخاصة" التي تُعطى للذكاء الاصطناعي
skills/
├── email/ ← إرسال بريد إلكتروني (يتضمن المستلمين، قواعد SMTP)
├── sms/ ← إرسال رسائل SMS
├── web-monitoring/ ← مراقبة حالة الخدمة
└── service-management/ ← أوامر تشغيل الخدمة
إذا طلب الذكاء الاصطناعي "أرسل لي بريدًا إلكترونيًا" — فإنه يقرأ ملف المهارة هذا ويعرف تلقائيًا لمن، وبأي تنسيق، وبأي خادم SMTP يجب إرساله. لا حاجة للسؤال في كل مرة "ما هو عنوان البريد الإلكتروني للمستلم؟".
5. لماذا يهتم المطورون بهذا؟
"مشاكل عصر التطوير بدون الذكاء الاصطناعي"
الاعتماد على القدرات الفردية للمطورين ← تنخفض الجودة إذا غاب المطورون ذوو الخبرة
يجب اكتشاف الأخطاء بمراجعة الكود ← يجب أن يراجعها البشر يدويًا
"مشاكل الفريق الذي لديه ذكاء اصطناعي ولكن بدون هارنس"
الذكاء الاصطناعي يولد الكود بسرعة ولكن → لا يعرف سياق خدمتنا
يكرر نفس الأخطاء → الذكاء الاصطناعي يصنع الأخطاء والبشر يصلحونها
الذكاء الاصطناعي يمكنه الوصول مباشرة إلى خادم الإنتاج → لا أحد يعلم متى سيحدث حادث
"الفريق الذي لديه ذكاء اصطناعي + هارنس"
الذكاء الاصطناعي يكتب الكود وهو يعرف قواعدنا ← توليد مع سياق
عند حدوث خطأ، يتم تسجيله في الهارنس ← منع هيكلي لنفس الخطأ
الوصول إلى الإنتاج يوافق عليه البشر ← استقلالية آمنة
باستعارة تعبير Toss:
"يرفع الهارنس الحد الأدنى لإنتاجية المنظمة بأكملها. لا يعتمد على القدرات الفردية، ويحقق جميع أعضاء الفريق نتائج تتجاوز مستوى معين."
6. ملخص — ما نود إيصاله لغير المطورين
في عصر الذكاء الاصطناعي، يتغير تعريف "القيام بعمل جيد".
سابقًا: المطور الذي يكتب الكود جيدًا الآن: المطور الذي يصمم بيئة جيدة للذكاء الاصطناعي لكتابة الكود
جوهر تصميم هذه البيئة هو هندسة الهارنس.
وهذا ليس مجرد حديث للمطورين.
الهارنس الذي يمكن لغير المطورين القيام به:
→ كتابة قواعد العمل بوضوح في وثائق
→ تعريف "ما هو مسموح به وما هو غير مسموح به" للذكاء الاصطناعي
→ تسجيل "لماذا أخطأ الذكاء الاصطناعي" عندما يرتكب خطأ
= هذا بحد ذاته هو بداية هندسة الهارنس
نظرة سريعة على هيكل هارنس Onmam.com
alpha-adk/
├── CLAUDE.md ← [دليل] قراءة إلزامية عند بدء جلسة الذكاء الاصطناعي
├── AGENTS.md ← [دليل] قواعد المشروع (مصدر الحقيقة)
├── .agents/context/
│ └── agents-rules.json ← [دليل] قواعد التشغيل المحددة
├── .claude/
│ ├── hooks/
│ │ ├── deploy-guard.js ← [مستشعر] منع نشر الإنتاج
│ │ ├── prod-gateway-guard.js← [مستشعر] منع مفتاح API للإنتاج
│ │ ├── commit-guard.js ← [مستشعر] التحقق من قواعد الالتزام
│ │ ├── pr-guard.js ← [مستشعر] فرض موافقة طلب السحب
│ │ ├── session-inject.js ← [مستشعر] حقن السياق في كل جلسة
│ │ └── cascade-check.js ← [مستشعر] التحقق من التأثير المتسلسل بعد التعديل
│ └── settings.json ← [إذن] إعدادات تنفيذ الخطافات
├── skills/
│ ├── email/ ← [أداة] مهارة إرسال البريد الإلكتروني
│ ├── web-monitoring/ ← [أداة] مراقبة الخدمة
│ └── service-management/ ← [أداة] أوامر تشغيل الخدمة
└── data-private/memory/ ← [حلقة تغذية راجعة] تسجيل الأخطاء ← منع تكرارها
├── project_onmam_incidents.md ← تسجيل نمط عطل Board.php
├── project_onmam_app_structure.md← تسجيل خطأ home≠portal
└── feedback_alpha_only.md ← تسجيل قواعد alpha المخصصة
الهارنس = مجموعة هذه الملفات يتم الالتزام بها جميعًا في مستودع Git. يتم تجميع كل سياق الفريق! في الكود.