Coroid لا يستخدم وكيلاً واحدًا متعدد الاستخدامات. كل مرحلة من وصف المهمة إلى pull request يتم التعامل معها بواسطة وكيل لديه مهمة محددة ومجموعة أدوات محدودة بشكل متعمد.
القيود هي الهدف من ذلك. الوكيل الذي لا يستطيع كتابة الكود لا يمكنه أن يكتب الكود عن طريق الخطأ.
الأدوار
| الدور | المرحلة | هل يمكنه تعديل كودك؟ |
|---|---|---|
| المعماري | المواصفات والخطة | لا |
| مطور | بناء | نعم |
| ضمان الجودة | التحقق | لا |
| المراجع | مراجعة | لا |
| مختبر الويب | التحقق، تدفقات المتصفح | لا |
| المستكشف | البحث، أي مرحلة | لا |
| محلل التبعيات | التحليل | لا |
الأربعة الأولى تشكل خط الإنتاج الذي تراه في كل مهمة، وبهذا الترتيب:
المعماري ← مطور ← ضمان الجودة ← المراجع
دور واحد فقط — وهو دور المطور — يمكنه تغيير الملفات في مستودعك. أما باقي الوكلاء فهم يقرؤون ويشغلون ويرسلون تقارير أو ينشئون مهام متابعة.
المعماري
يحول وصفك إلى مواصفات، ثم تحويل المواصفات إلى خطة. يقرأ الكود المصدري ليضع الخطة في سياق ما هو موجود فعليًا، لكنه لا يكتب أي كود.
النتيجة النهائية هي ما توافق عليه قبل بدء عملية البناء.
مطور
يقوم بالعمل: يقرأ الكود ذا الصلة، ويُجري التغييرات، ويكتب أو يحدّث الاختبارات، ثم يشغّلها محليًا في بيئة العمل حتى تمر بنجاح.
عندما مراجع يرسل النتائج، فإن مطور هو الدور الذي يتعامل معها.
ضمان الجودة
يقوم بعمليات التحقق بشكل مستقل عن الوكيل الذي كتب الكود — مجموعة الاختبارات الخاصة بك، وبوابات الجودة المُعدّة للمشروع، ومعايير القبول المحددة في المواصفات.
يقدم ضمان الجودة حكمه النهائي. لا يقوم بإصلاح ما يجده؛ حيث تُعاد الأخطاء إلى مطور كعمل إعادة صياغة.
مراجع
يقرأ الاختلافات النهائية ويُنتج النتائج، مع تطبيق أي قواعد مراجعة قامت منظمتك بإعدادها. تُوجّه النتائج إما إلى المطور كعمل إعادة صياغة أو تُرفق بـ pull request لعرضها عليك.
مختبر ويب
يستخدم متصفحًا حقيقيًا للتفاعل مع معاينة تشغيل تطبيقك لفحص سير العمليات من البداية إلى النهاية. يُستخدم هذا عندما لا يمكن استنتاج سلوك معين من الكود وحده.
مستكشف
دور بحثي للقراءة فقط. تستخدمه الوكلات الأخرى للإجابة على أسئلة حول قاعدة الكود دون تحميل كل شيء في سياقها الخاص — مثل "أين يتم التعامل مع عمليات المصادقة؟"، "ما الذي يستدعي هذه الدالة؟".
محلل التبعيات
يفحص التبعيات وكيفية انتشار التغييرات عبر قاعدة الكود، بما في ذلك عبر المشاريع التي تم تكوين تبعيات بينها.
لماذا يهم هذا التقسيم؟
ينتج عن تقسيم العمل بهذه الطريقة ثلاث خصائص:
- التحقق مستقل. الوكيل الذي يتحقق من العمل ليس هو الوكيل الذي كتبه، لذا ليس له مصلحة في النتيجة.
- نطاق التأثير محدود. دور المطور فقط هو الذي يملك أدوات كتابة الكود، لذا لا يمكن لخطأ في المراجعة أو التحليل أن يفسد مستودعك.
- كل دور يستخدم نموذجًا مناسبًا له. التخطيط يستفيد من اتساع المعرفة العالمية؛ بينما كتابة كود قابل للتجميع تتطلب شيئًا آخر. و AI profile يحتوي على نموذج واحد لكل دور لهذا السبب بالتحديد.
التالي
العودة إلى كيف تتحول مهمة إلى pull request للاطلاع على المراحل التي تُطابق هذه الأدوار، أو ما هو Coroid للحصول على نظرة عامة مختصرة.