المنشأ هو سجل لقطعة عمل واحدة: مهمة، أو خطة، أو مهمة ضمن خطة، أو حزمة عمل. يُجيب هذا السجل على الأسئلة التي يجب أن تُجاب عنها التغييرات بعد دمجها: من أين جاءت، ومن طلبها، ومن يملكها، ومن قرر ما تم تنفيذه ولماذا، وما تم تسليمه.
Coroid يُنشئ هذا السجل من الأحداث التي تحدث أثناء مرور العمل عبر مصنع البرمجيات: المحادثة أو الطلب الذي بدأه، والوثائق التي وافق عليها الأشخاص، والقرارات التي اتخذوها، بالإضافة إلى طلبات السحب والالتزامات التي نفذتها. يمكنك رؤية نفس السجل في البوابة، وفي طلبات السحب والالتزامات، كما تقرأه الوكلات العاملة على المهمة أيضًا.
ما الذي يوضحه المنشأ؟
- المنشأ. ما الذي بدأ العمل، مع رابط يعيدك إليه: محادثة دردشة، أو مراجعة Prepare Work، أو طلب عمل جديد، أو مسألة مستوردة أو عبر ويب هوك، أو خطاف، أو جدول زمني، أو عميل MCP، أو API، أو نتيجة فحص أو تقرير، أو خطة أو مهمة رئيسية.
- الطالب والمالك. الشخص الذي طلب العمل، والذي يملكه الآن. عندما يصل العمل عبر حساب خدمة أو من شخص خارج مؤسستك، مثل صاحب مسألة GitHub، يذكر المنشأ اسم ذلك الحساب أو الشخص. لا يقوم Coroid أبدًا بملء معلومات يضطر للتخمين بشأنها.
- القرارات. عمليات الموافقة، وطلبات التغيير، وبدء التنفيذ، والتوقف، وإعادة المحاولة، والدمج، والتجاوزات، وتغيير الملكية، وكل ذلك مع ذكر من اتخذ القرار، ومتى، والسبب عند وجوده.
- النقاش. الرسائل من الأشخاص التي شكلت العمل: مقتطفات قصيرة من المحادثة التي نشأت منها ومن التعليقات على وثائقها، مع ذكر مؤلف كل منها ورابط إليه.
- التسليم. طلبات السحب، والالتزامات، ونتائج اختبارات الجودة، وقرارات المراجعة، والأدلة ذات الصلة.
المهمة التي تنتمي إلى خطة ما تشارك المنشأ والطالب الخاص بالخطة. كما تعرض منشأتها سلسلة الترتيب الزمني: المهمة، وخطتها، وحزمة العمل، والحديث أو الطلب الذي نشأت منه.
ملخص أولاً
كل عرض لصفحة المنشأ يبدأ بملخص، حتى تتمكن من معرفة الغرض من العمل ومن يقف وراءه في لمحة بصرية:
- النية: يوضح الغرض من العمل وأسبابه في فقرة مختصرة. يتم استخلاصه من النية المعتمدة، أو من المواصفات المعتمدة، أو من الطلب الأصلي، أو من وصف المهمة أو الخطة. وتظهر أسفلها معلومات عن مصدره.
- الطالب: الشخص أو حساب الخدمة أو الطرف الخارجي الذي قدم الطلب.
- مالك: الشخص المسؤول عن العمل حالياً. وهو الشخص الذي تم نقل العمل إليه آخر مرة، أو الشخص المُعيّن للمهمة، أو مالك المحادثة التي نشأ منها الطلب، أو الطالب نفسه.
- تمت الموافقة من قبل: الأشخاص الذين وافقوا على الغرض منها والمواصفات وخطة التنفيذ، بالإضافة إلى الخطة نفسها، مع توضيح الدور الذي لعبوه في عملية الموافقة.
- قرارات رئيسية: ما يصل إلى خمس من أحدث القرارات التي اتخذها الأشخاص مع ذكر السبب وراء كل قرار.
الأشخاص المدرجون كموافقين هم دائمًا بشر؛ أما الموافقات التي سجلها Coroid تلقائيًا فهي غير مدرجة؛ يمكنك الاطلاع على ذلك في قرارات تلقائية.
أين يمكنك رؤيته؟
في البوابة
افتح مهمة أو خطة في مصنع Coroid ووسّع قسم المنشأ الخاص بها؛ ستجد هذه الأقسام أسفل ملخص العمل:
- المنشأ: مصدر العمل، مع رابط يعيدك إلى المحادثة أو الطلب أو المسألة أو التقرير.
- السلسلة الوراثية: الخطة ووحدة العمل التي تنتمي إليها المهمة، عندما تكون جزءًا من خطة.
- القرارات: مرتبة من الأقدم إلى الأحدث، وكل قرار له سببه. تعرض السجلات التاريخية آخر ثمانية قرارات، وبنقرة واحدة يمكن عرض باقي القرارات.
- المناقشة: الرسائل التي شكلت مسار العمل، مرتبة من الأحدث إلى الأقدم.
- التسليم: طلبات السحب ومن قام بدمجها، والالتزامات، ونتائج فحص الجودة، المراجعات والأدلة.
يرغب العملاء في حفظ عمليات البحث وتلقي إشعارات عند تطابق عناصر جديدة معها. الإصدار الأول يرسل تنبيهات عبر البريد الإلكتروني فقط، لما يصل إلى 10 عمليات بحث محفوظة لكل حساب.
من النية المعتمدة
- الجهة المطلبة
- مايا ليندكفيست
- المالك
- مايا ليندكفيست
- تمت الموافقة عليه بواسطة
- سام أوكافورمالك المنتج
- بريا شاهالموافق الفني
- تمت الموافقةسام أوكافورمالك المنتج
هذا ما طلبه العملاء؛ إشعارات الدفع يمكن تأجيلها.
- تم البدءمايا ليندكفيست
يجب إطلاقه قبل حملة الربيع.
- تمت الموافقةمايا ليندكفيستتلقائي
تمت الموافقة على عقد التسليم تلقائيًا من الخطة المعتمدة.
- حكم الاختبارتمت الموافقةوكيل الاختبار
تم التحقق من جميع معايير القبول الستة.
- تم الدمجسام أوكافور
9c1e4a7f023f2b7d1a9cالتزام الوكيلcoroid/saved-search-alerts9c1e4a7f02التزام الدمج
المنشأ لمهمة في المصنع: الملخص أولًا، ثم المحادثة التي انبثقت منها، والقرارات وأسبابها، مع تسجيل أحدها تلقائيًا، وpull request وعمليات الإيداع التي أنجزتها. بيانات توضيحية.
تظهر نسخة مختصرة في علامة تبويب التفاصيل الخاصة بمهمة ما وفي مراجعة ترويج الخطة، مع رابط إلى سجل المنشأ الكامل.
يتم تحديد صلاحيات الوصول وفقًا لطبيعة العمل نفسه؛ يتطلب سجل المنشأ لمهمة ما صلاحية قراءة لمشروعها، بينما يكون سجل المنشأ للخطة مرئيًا على مستوى المؤسسة بأكملها، تمامًا مثل الخطة نفسها.
في طلبات السحب
كل مهمة أو خطة أو إصدار يتم إنشاؤه عبر pull request Coroid يحتوي على قسم للمنشأ. يبدأ هذا القسم بنفس ملخص العمل: الغرض منه، التفاصيل، من طلبه، من يملكه، من وافق عليه، والقرارات الرئيسية. تليها معلومات عن المنشأ وروابطه، ثم سجل التغييرات، والقرارات المتخذة، ونتائج التسليم، بالإضافة إلى رابط لفتح المهمة ضمن Coroid.
Coroid يقوم بصياغة الأقسام الأخرى المرتبطة به: ملخص عن التغيير، رابط إلى المهمة وأدلة مراجعتها، معايير القبول، بالإضافة إلى حالة اختبارات الجودة والمراجعة.
Coroid يمتلك فقط الأقسام التي يُحدّدها بتعليقات مخفية في الوصف. عندما يقوم بتحديث pull request، مثل بعد إعادة العمل عليه، فإنه يستبدل تلك الأقسام ويحتفظ بكل ما كتبته أنت أو المراجعون بالضبط كما هو. وعندما لا تتناسب السجلات الطويلة مع المساحة المتاحة، فإن أقدم القرارات تُزال أولاً، ويذكر القسم أن المزيد من التفاصيل متوفرة في Coroid.
يسرد pull request للإصدار كل pull request مُضمّن: ما الذي يسلّمه، ومن طلبه، ومن وافق عليه، وذلك حسب ترتيب الدمج.
في الالتزامات
كل التزام ينشئه Coroid يختتم بملحقات تحدد العمل الذي ينتمي إليه:
Coroid-Task: 3f6e2b1c-7d4a-4c1e-9b2f-0a8d5e6c7b91
Coroid-Plan: 8a41b7c3-25d0-4f6b-a1e9-6c3d2b7f4e05
Coroid-Requested-By: Maya Lindqvist
Coroid-Origin: prepare_workوبناءً على نوع العمل، تحدد الالتزامات أيضًا مهمة الخطة، أو حزمة العمل، أو تشغيل الوكيل، أو التصحيح، أو الإصدار. تحتوي ملحقات طالب الطلب على اسم فقط، وليس عنوان بريد إلكتروني.
Coroid هو مُلتزم كل التزامٍ يقوم به. عندما يُؤلف التزامٌ باستخدام حساب شخص متصل، فإن Coroid يضيف نفسه أيضًا كمؤلف مشارك.
Co-authored-by: Coroid <ai@coroid.ai>Coroid يحتفظ أيضًا بخريطة خاصة به تربط كل التزامٍ بمهمته أو خطته. عندما يتم دمج طلب السحب الذي فتحه Coroid في GitHub أو GitLab، فإن Coroid يسجل التزام الدمج أو الدمج المضغوط الذي تم إرساله، حتى لا يفقد الدمج المضغوط هذا الارتباط.
للوكلاء
تلخص أمر العمل الخاص بكل وكيل على مهمة ما المنشأ الخاص بها: سبب وجود العمل، من طلبه، من يملكه وما تم اتخاذه من قرارات. عندما يحتاج الوكيل إلى مزيد من التفاصيل، يمكنه قراءة السجل الكامل، قسمًا تلو الآخر.
المواصفات لا تزال هي الحاكمة. عندما تتعارض معلومات المنشأ مع المواصفات، يتبع الوكيل المواصفات ويذكر الصراع في تقريره بدلاً من اتخاذ قرار بشكل صامت. الرسائل والأسباب التي يكتبها الأشخاص تمر عبر مرشح حقن التعليمات الخاص بـ Coroid قبل أن يقرأها الوكيل، والنص الذي يعلم المرشح بوجوده يتم حجبه.
ما لا يُرسل أبدًا إلى مضيف Git الخاص بك
لا يتم كتابة نص الدردشة أبدًا في pull request أو في الالتزام. تحمل طلبات السحب أسماء الأشخاص وأدوارهم وقراراتهم وأسبابهم والروابط المتعلقة بها. تظهر المناقشة فقط من خلال عدد الرسائل ومن كتبها، مع رابط إلى محادثة الدردشة في Coroid. لا يتم كتابة عناوين البريد الإلكتروني؛ يظهر الأشخاص بأسمائهم فقط.
روابط فقط
بشكل افتراضي، يتضمن قسم المنشأ في pull request فقرة القصد والقرارات الرئيسية والأسباب التي ذكرها الأشخاص. يمكن للمنظمة اختيار عرض روابط فقط، وفي هذه الحالة يحتوي القسم على من طلب العمل ومن يملكه ومن وافق عليه والقرارات والروابط العائدة إلى Coroid، مع استبعاد فقرة القصد والقرارات الرئيسية وكل الأسباب.
اختر خيار عرض روابط فقط عندما يكون المستودع متاحًا للعامة ويمكن لأشخاص غير مصرح لهم بقراءة مبررات المنتج الاطلاع عليه. ينطبق هذا الخيار على طلبات السحب التي يفتحها أو يحدّثها Coroid بعد تفعيله، ولا يوجد شاشة إعدادات لهذا الغرض حتى الآن. اتصل بنا لتحويل منظمتك إلى وضع عرض الروابط فقط.
القرارات وأسبابها
يسجل Coroid من اتخذ كل قرار أثناء سير العمل: الموافقات على القصد والمواصفات والخطط، بالإضافة إلى عمليات التأهيل وبدء العمل وإيقافه وإعادة محاولته وإنهائه يدويًا، وعمليات الدمج والدمج الإجباري، وتجاوز القواعد، وموافقات الإصدار، وتغييرات من يملك المهمة أو يشارك في الدردشة، بالإضافة إلى أحكام وكلاء مراجعة الجودة والمراجعة والمنسق.
عندما توافق على خطة ما وتبدأ تنفيذها، أو توقف مهمة أو تحاول إعادة تشغيلها، تطلب عملية التأكيد سببًا اختياريًا يصل طوله إلى 2,000 حرف. يتم حفظ هذا السبب مع اسمك في سجل المنشأ الخاص بالعمل، ويظهر في طلبات السحب ما لم تستخدم منظمتك خيار عرض الروابط فقط. جملة واحدة تكفي؛ فعبارة مثل «طلب العملاء هذا قبل حملة الربيع» توضح للقارئ التالي أكثر من مجرد إشارة إلى الموافقة. يتطلب الدمج الإجباري سببًا مكتوبًا، ويتم تسجيله بنفس الطريقة.
قرارات تلقائية
بعض القرارات يتم تسجيلها نيابةً عن شخص ما بدلاً من أن يتخذها ذلك الشخص بنفسه. يتم الموافقة تلقائيًا على عقد تسليم مهمة الخطة بناءً على الخطة المعتمدة، وإذا تمت الموافقة على خطة ما دون تدخل شخص، يعتبر مُنشئها ممثلًا عنه. تُصنّف الجداول الزمنية هذه القرارات تحت عنوان «تلقائية»، ولا تُحتسب أبدًا كموافقة من شخص.
تظهر القرارات التي يتخذها الوكلاء، مثل أحكام مراجعة الجودة والمراجعة وقرارات المنسق، تحت اسم الوكيل مع ملخص القرار الذي اتخذه.
إضافة سياق إلى مهمة قيد التنفيذ
يمكنك إبلاغ الوكلاء ببعض المعلومات أثناء تنفيذ مهمة ما دون إيقافها. افتح علامة تبويب النشاط الخاصة بالمهمة واختر خيار "إضافة سياق" بجانب النشاط الجاري. اكتب ما يجب أن يعرفه الوكلاء، بحد أقصى 2000 حرف، ثم أكّد.
- عندما يكون وكيل ما قيد التشغيل، سيقرأ رسالتك في دورته التالية. أما المنسق الذي ينتظر وصول وكيل آخر، فسيستيقظ لقراءة الرسالة.
- وعندما لا يكون أي وكيل قيد التشغيل، فإن الوكيل التالي الذي يبدأ العمل سيقرأ الرسالة.
تُسجل الرسالة في سجل المنشأ الخاص بالمهمة كقرار من نوع "تمت إضافة سياق"، مع ذكر اسمك. ولا تغيّر هذه الرسالة ما يجب على المهمة تسليمه؛ فإذا تعارضت رسالتك مع المواصفات، سيبلغ الوكيل عن هذا التعارض بدلاً من اتخاذ قرار صامت. ولتغيير النتيجة، عليك تعديل المواصفات أو إعادة المهمة كعمل معاد تصميمه.
تتطلب عملية إضافة السياق صلاحيات كتابة في مشروع المهمة. ولا تتوفر هذه الإمكانية للمهام المكتملة أو الملغاة.
تتبع مسار الكود إلى العمل المرتبط به
يمكنك البدء من سطر برمجي واحد واكتشاف العمل الذي أضافه إلى الكود. يؤديك المنفذ والوكلاء وعملاء MCP وGit إلى ذلك المكان.
لماذا يوجد هذا هنا؟
في مراجعة الكود الخاصة بمهمة ما، يحتوي كل جزء يؤثر على أسطر موجودة مسبقًا على هذا الزر. يقوم باستعراض الالتزامات التي غيّرت هذه الأسطر آخر مرة في الفرع المستهدف، ويُظهر مصدر كل منها:
- تم إنشاؤه بواسطة Coroid: المهمة أو الخطة، مع الغرض منها، والشخص الذي طلبها ووافق عليها، والقرارات الرئيسية، بالإضافة إلى رابط إلى سجل المنشأ الكامل.
- تم إنشاؤه خارج Coroid: لا توجد مهمة أو خطة توضح سبب إجراء هذا التغيير، لذا ستظهر معلومات المؤلف والتاريخ فقط.
الملف الذي يضيفه التغيير لا يحتوي على أسطر سابقة، لذا لا يتوفر له زر.
باستخدام وكيل أو عميل MCP
يطرح الوكلاء وعملاء MCP نفس السؤال باستخدام أداة واحدة. تأخذ هذه الأداة ملفًا، وإذا رغبت، نطاق سطر معين وفرعًا أو علامة أو التزامًا. تعيد الأداة كل نطاق سطر مع الالتزام الذي غيّر محتواه آخر مرة. بالنسبة لالتزام Coroid، تعيد الأداة أيضًا المهمة أو الخطة المرتبطة به وتلخص المنشأ الخاص بها. تُسمى هذه الأداة
explain_code.
- الوكلاء: تستخدم وكلاء المطور والمراجع والمنسق في Coroid هذه الأداة قبل تغيير أو حذف كود غير واضح الغرض منه.
- عملاء MCP: تعد هذه أداة للقراءة فقط، لذا تتطلب دور المراجع والنطاق التالي:
mcp.read. تعمل هذه الأداة فقط في المشاريع التي يمكن للاتصال الوصول إليها، وتسمح بـ 30 مكالمة في الدقيقة.
باستخدام Git
كل التزام تقوم به Coroid يُسمّي العمل المرتبط به في حقول الملاحظات الخاصة به، لذا يمكن لـ Git أن يساعدك في الوصول إليه أيضًا:
git blame -L 120,120 src/search/alerts.ts # the commit that last changed line 120
git log -1 <sha> # its Coroid-Task or Coroid-Plan trailerثم افتح تلك المهمة أو الخطة في البوابة للاطلاع على المنشأ الخاص بها:
- مهمة:
https://client.coroid.ai/factory/task:<task id>?panel=provenance - خطّة:
https://client.coroid.ai/factory/<plan id>#provenance
لإجراء عملية دمج أو دمج مضغوط، افتح pull request الذي نشأت منه هذه المهمة. يوجد قسم المنشأ الخاص به يربط بـ Coroid.
تصدير المنشأ
يحتوي اللوحة على زرين للتنزيل في الأعلى. تنزّل صيغة Markdown المنشأ كوثيقة تبدأ بملخص؛ وتكون بنفس شكل قسم pull request مع ذكر الأسباب دون نصوص الدردشة. أما JSON فتنزّل السجل الكامل بما في ذلك مقتطفات النقاش، لاستخدامها في سجلاتك الشخصية أو أدواتك. احتفظ بملف JSON بخصوصية تضاهي خصوصية الدردشة التي يقتبس منها.
لم يتم تسجيل الأصل
Coroid يقوم بتسجيل المنشأ للأعمال التي تم إنشاؤها بعد إطلاق هذه الميزة. أما الأعمال الأقدم، فإنها تعرض هذه الرسالة بدلاً من توضيح مصدرها:
لم يُسجَّل الأصل. أُنشئ هذا العمل قبل أن يسجّل Coroid المنشأ.
عندما يتعرف Coroid على مصدر من سجلات سابقة، مثل المحادثة التي نشأت منها خطة ما أو التقرير المرتبط بها، فإن اللوحة تعرضه كمصدر معروف. القرارات التي تم تسجيلها مسبقًا، مثل عمليات الموافقة على المستندات، تظل ظاهرة؛ وقد تكون قرارات أخرى غير موجودة.
تم إعادة بناء أصل من نوع "مستمد" من سجلات سابقة، ولم يتم تسجيله عند إنشاء المهمة.