التحليلات الهندسية - التسليم والمطوّرون
تحوّل التحليلات الهندسية البيانات التي يجمعها AppArch أصلًا (طلبات الدمج، الفحوصات، عمليات النشر، التذاكر، الحوادث) إلى مقاييس تسليم. قاعدة واحدة تسري على كل شاشة: الرقم الذي لا يمكن قياسه يُعرض على أنه غير مُقاس، وليس صفرًا أبدًا، والسلسلتان المعروضتان جنبًا إلى جنب لا تُقدَّمان أبدًا على أنهما سبب ونتيجة.
بطاقة صحة المشروع (/reports/health)
Section titled “بطاقة صحة المشروع (/reports/health)”كل درجة تحتفظ بها المنصة لكل مشروع في بطاقة واحدة: ArchScan وArchSecurity والامتثال وGit Health والدرجة المشتقة من SonarQube (تقييمات الموثوقية والأمان وقابلية الصيانة مُحوَّلة A=100 … E=20)، كل منها آخر قيمة 0-100 للأداة أو شرطة إن لم تقيّم الأداة المشروع قط.
- التوافق - متوسط المصادر الموجودة، مع عددها دائماً (“من 3 مصادر”). ليس مؤشراً موزوناً ولا يعامل المصدر الغائب كصفر أبداً.
- قيّمه - كم مشروعاً نظرت إليه كل عدسة فعلاً.
- الأدوات تختلف - مشاريع يفترق فيها ArchScan ودرجة Sonar بعشرين نقطة أو أكثر، مع الاتجاه (“Sonar أرفق” / “Sonar أشد”). ليس حكماً على أي أداة؛ بل موضع للنظر.
- كل العدسات خضراء - كل مصدر مقيِّم عند 80 أو أكثر، بمصدرين على الأقل.
- نتائج خارجية - نتائج الأمان المفتوحة من GitLab وSonarQube لكل مشروع (الإجمالي، الحرجة، العالية) مدرجة كأعداد تحت درجة ArchSecurity؛ لا تدخل في التوافق أبداً. وتجمع بطاقة الحرجة المفتوحة عبر البطاقة كلها.
- خطوط اتجاه لكل مشروع لـ ArchScan وSonar في الفترة المختارة، وبوابة جودة Sonar، والتغطية والتكرار، ومرشّح مجموعة المشاريع.
MR Insights (/reports/mr-insights)
Section titled “MR Insights (/reports/mr-insights)”يُزامَن كل طلب دمج في كل مشروع متصل كل 30 دقيقة: المؤلف، الحالة، أوقات الفتح/الدمج/الإغلاق، من قام بالدمج، الحجم (الإضافات، الحذف، الملفات المتغيرة) ووقت المراجعة الأولى.
- الإنتاجية الأسبوعية - المفتوح والمدمج والمغلق أسبوعيًا.
- قائمة المخاطر - عمليات دمج مُقيَّمة بحسب الحجم والدمج الذاتي وغياب الموافقة وغياب تعليقات المراجعة؛ الأعلى أولًا.
- الأعراض - طلبات دمج كبيرة، انتظار مراجعة طويل، دمج ذاتي، دمج بلا مراجعة، مع الأرقام خلف كل منها.
- خريطة النشاط الحرارية - “متى يهبط العمل”: 7 أيام × 24 ساعة بالمنطقة الزمنية للقارئ، الفتح والدمج معًا. عمليات الدمج خارج الاثنين-الجمعة 08:00-19:59 بالتوقيت المحلي تُحصى على حدة - لا كحكم، بل كسؤال يُطرح.
- تغطية المراجعة - نسبة طلبات الدمج المدمجة (بتعليقات مُزامَنة) التي تلقّت تعليقاً بشرياً محسوباً واحداً على الأقل من شخص غير المؤلف؛ ما تبقّى دُمج بصمت. تعتمد على أحكام تعليقات المراجعة، فالإقرارات لا تُعدّ مراجعة.
أعمدة الموافقة تغطي فقط طلبات الدمج التي رآها ArchPilot.
تعليقات المراجعة (/reports/review-comments)
Section titled “تعليقات المراجعة (/reports/review-comments)”يُحفَظ كل تعليق بشري على طلب دمج مُزامَن بجانبه (GitLab وGitHub وBitbucket Cloud وAzure DevOps؛ أحداث النظام مثل “أضاف commit” وتعليقات ArchPilot نفسها لا تُحفَظ أبداً). السؤال الذي تجيب عنه الشاشة هو من يراجع فعلاً، والحكم على كل تعليق هو ما يُبقي العدّ صادقاً:
- لم يُحكم عليه - يُعدّ عمل مراجعة حتى يقول أحد خلاف ذلك.
- مراجعة - جوهري: سؤال، مشكلة، اقتراح، قرار.
- مستبعد - إقرار (“شكراً”، “حسناً سأفعل”، رمز تعبيري). خارج كل عدّ.
يضع مالك مساحة العمل أو مديرها الأحكام يدوياً. عند تفعيل إعدادات الوحدات > ArchPilot > تصنيف التعليقات المعلّقة بالذكاء الاصطناعي يحكم مزوّد الذكاء الاصطناعي الخاص بالتثبيت على التعليقات غير المحكومة كل 10 دقائق؛ ولا يُستبدَل حكم المدير أبداً. يظهر المفتاح فقط إذا كان مدير النسخة قد هيّأ مزوّد ذكاء اصطناعي وفعّل ميزة ذكاء اصطناعي واحدة على الأقل. تعرض بطاقة الذكاء الاصطناعي في الصفحة ما كلّفه التصنيف حتى الآن (الاستدعاءات، التعليقات المحكومة، رموز الإدخال والإخراج) وما فعله آخر استدعاء؛ ويمكن للمدير جدولة تمريرة فوراً عبر صنّف المعلّقة الآن (حتى 40 تعليقاً، استدعاءان للمزوّد). يستهلك التصنيف مفتاح الذكاء الاصطناعي الخاص بالتثبيت ويُحسَب من حصة المساعد.
تغذّي التعليقات المحسوبة بطاقة تعليقات المراجعة وتوزيع من يعلّق في MR Insights، وقيمة تعليقات المراجعة في ملف المطوّر. تعليقات مؤلف طلب الدمج على طلبه هو تُدرَج لكنها لا تُحسَب أبداً كمراجعة مقدَّمة.
AI Impact (/reports/ai-impact)
Section titled “AI Impact (/reports/ai-impact)”ما كلّفه مزوّد الذكاء الاصطناعي الخاص بالتثبيت لمساحة العمل هذه - شروح النتائج، وإجابات المساعد، واستدعاءات تصنيف تعليقات المراجعة (رموز الإدخال/الإخراج، إعادة التوليد، لكل مستخدم) إلى جانب ما تغيّر في الأسابيع نفسها: درجة ArchScan، كثافة نتائج ArchPilot، الميزات والإصلاحات المدمجة. تقولها حاشية الصفحة بوضوح: السلاسل تُعرض معًا، ولا يُدَّعى وجود سببية.
DORA (/reports/dora)
Section titled “DORA (/reports/dora)”تُعرض المقاييس الأربعة؛ الاثنان اللذان يحتاجان بيانات حوادث يبقيان فارغين حتى يُربط مصدر حوادث.
| المقياس | المصدر | ملاحظات |
|---|---|---|
| تكرار النشر | أحداث نشر الكتالوج (Argo CD وKubernetes وFlux) | وقت النشر ملاحظة بتأخير يصل إلى 10 دقائق، لا webhook. مصادر Kubernetes وحدها تبلّغ عن وسوم الصور لا الالتزامات، وتُحصى كغير قابلة للتتبع. |
| زمن التسليم | من الدمج (وقائع طلب الدمج) إلى النشر الذي يحمل الالتزام | لكل بيئة؛ المراجعة غير المطابقة مجهولة، وليست صفرًا أبدًا. يعرض تفصيل المراحل انتظار المراجعة وقيد المراجعة وانتظار الإطلاق؛ المرحلتان غير المقاستين تُرسمان بالرمادي. |
| معدل فشل التغييرات | الحوادث المفتوحة خلال ساعة من نشر الخدمة نفسها | ارتباط زمني، لا دليل سببية - والصفحة تقول ذلك. |
| زمن التعافي | من فتح الحادث إلى إغلاقه | المصدر نفسه. |
نطاقات النخبة/المرتفع/المتوسط/المنخفض تقريب للإيقاع الأسبوعي وتقف إلى جانب الرقم الحقيقي، لا بديلًا عنه. وسيطات المراحل مستقلة؛ لا يساوي مجموعها الوسيط الإجمالي.
تدفق التذاكر (/reports/issue-flow)
Section titled “تدفق التذاكر (/reports/issue-flow)”مع اتصال Jira، تُقرأ التذاكر كل 30 دقيقة ويُشتق التدفق من سجل تغييرات كل تذكرة: أول انتقال خارج new يبدأ العدّ، وآخر انتقال إلى done يوقفه. يُبلَّغ عن الإنتاجية وزمن الدورة والعمل الجاري والتقادم مع سبعة إنذارات (حمل WIP زائد، عمل جارٍ راكد، تراكم متقادم، عمل جارٍ غير مُسند، مُعاد فتحه، مثقل بالأخطاء، تغطية تدفق منخفضة). المهام الفرعية مستبعدة من الإنتاجية حتى لا يبدو فريق يقسّم كل قصة إلى ستة أسرع بست مرات.
مصادر الحوادث
Section titled “مصادر الحوادث”تُسحب حوادث Dynatrace وNew Relic إلى مساحة العمل وتُطابَق مع الخدمات بالاسم. الحوادث غير المطابقة تُحصى وتُعرض؛ والمنصة المتصلة التي لم تخزّن أي حادث تحصل على تحذير خاص بها، لأن رمزًا مقيّدًا بالحساب الخطأ يتحقق بشكل ممتاز ثم لا يغذّي شيئًا - وهو ما كان DORA سيقرؤه كمعدل فشل 0%.
سجل الامتثال وGit Health (/reports/score-history)
Section titled “سجل الامتثال وGit Health (/reports/score-history)”الدرجتان عبر الزمن. قيمة المشروع الأسبوعية هي آخر فحص ناجح في ذلك الأسبوع؛ والخط العام هو متوسط المشاريع المفحوصة في الأسبوع ويذكر عددها. الأسابيع بلا فحص فجوات ولا تُرحَّل أبداً. لكل مشروع: آخر درجة، والتغير بين أول وآخر فحص ضمن الفترة، وعدد الفحوص، وخط اتجاه؛ وتعرض البطاقات المتوسط الحالي ومتوسط التغير وعدد المشاريع التي تحسّنت أو تراجعت.
اتجاه نتائج الأمان (/reports/security-trend)
Section titled “اتجاه نتائج الأمان (/reports/security-trend)”نتائج GitLab وSonarQube كدورة حياة. تاريخ الاكتشاف هو تاريخ المزوّد؛ وتُعدّ النتيجة مغلقة عندما لا تعود المزامنة تراها مفتوحة (محلولة أو مرفوضة). من هذين التاريخين تعيد الصفحة بناء النتائج الجديدة والمغلقة والمفتوحة في نهاية كل أسبوع لكل مصدر - إعادة بناء لا معاينة، ولذلك يوجد سجل لأسابيع سابقة لأول فتح للصفحة. البطاقات: المفتوحة الآن (مع الحرجة)، الجديدة والمغلقة في الفترة، صافي التغير، وسيط أيام الإغلاق. جداول حسب المصدر والمشروع. فحوص ArchSecurity الخاصة بـ AppArch لقطات لكل تشغيل وتبقى خارج هذه الدورة.
دورة حياة قرارات البنية (/reports/adrs)
Section titled “دورة حياة قرارات البنية (/reports/adrs)”قرارات البنية كعملية: الأعداد حسب الحالة، المقترحات المفتوحة مع وسيط عمرها، القرارات شهرياً حسب النتيجة، متوسط الأيام من الإنشاء إلى القرار، نسبة القبول، القرارات المستبدَلة، الوسوم والتوزيع حسب المشروع. المقترحات الأقدم من 30 يوماً تُدرَج من الأقدم - فالمقترح الذي لا يبتّ فيه أحد قرار بحكم الإهمال.
الوصول مقابل المساهمة (/reports/developer-access)
Section titled “الوصول مقابل المساهمة (/reports/developer-access)”لكل مطوّر مُزامَن: المشاريع التي هو عضو فيها (بحسب المزوّد)، والتي كان نشطاً فيها خلال الفترة (فتح طلب دمج أو كتب تعليق مراجعة محسوباً)، والعضويات الخاملة - وصول بلا نشاط. والعكس أيضاً: مساهمات في مشاريع لا يدرجه المزوّد عضواً فيها. لا يُدّعى الخمول إلا في المشاريع التي زُومنت طلبات دمجها؛ وتذكر الصفحة عددها. حسابات الخدمة تُدرَج لكنها تُستبعد من البطاقات.
المطوّرون (/developers)
Section titled “المطوّرون (/developers)”كل شخص يلمس مستودعًا متصلًا (الأعضاء ومؤلفو طلبات الدمج) يُزامَن لكل مشروع، فقط في المشاريع التي فُعِّلت فيها مزامنة المطوّرين (معطّلة افتراضيًا). لكل مطوّر ملف (/developers/{id}) يعرض المشاريع التي يلمسها وطلبات الدمج التي كتبها ودرجة مراجعة قائمة على ArchPilot. تُكتشف البوتات من إشارات المزوّد وتُعلَّم كحسابات خدمة؛ يمكن وضع العلامة أو إزالتها يدويًا، والعلامة اليدوية لا تُستبدل بالمزامنة أبدًا.
ما تحتاجه
Section titled “ما تحتاجه”- بيانات اعتماد Git بصلاحية طلبات السحب لـ MR Insights وخريطة الحرارة والمطوّرين.
- مصدر نشر (Argo CD أو Kubernetes أو Flux) لتكرار النشر وزمن التسليم.
- Jira لتدفق التذاكر؛ Dynatrace أو New Relic لمعدل فشل التغييرات وزمن التعافي.
- يحتاج AI Impact إلى مزوّد الذكاء الاصطناعي الخاص بالتثبيت، الذي يضبطه المشغّل (الذكاء الاصطناعي)؛ ولا يوجد مفتاح لكل مساحة عمل.