لا ينبغي للوكلاء المختلفين الاستيلاء على نفس الشجرة.
"العزل حسب الدليل، والتنسيق حسب معرف المهمة." طائرتان لا تتداخلان مع بعضهما البعض.
مشكلة صعبة مع الوكلاء الموازيين
يسمح لك s09-s11 ببدء عدة زملاء في الفريق في نفس الوقت، ولكن هناك مأزق: جميعهم في نفس دليل العمل. تقوم أليس بتغيير auth.py، ويقوم بوب أيضًا بتغيير auth.py في نفس الوقت - تعارضات git، وارتباك الملفات، والتلوث المتبادل للاختبارات. ص>
الحل لـ s12 هو git Worktree: في نفس المستودع، يمكنك التحقق من فروع مختلفة في أدلة مختلفة من خلال git Worktree add. يحصل كل وكيل على شجرة العمل الخاصة به ويعمل في الدليل الخاص به، ويكون غير مرئي لبعضه البعض. ص>
my-repo/ # مساحة العمل الرئيسية (للرصاص) .أشجار العمل/ alice-auth/ # دليل عزل أليس (الفرع: وزن/أليس-auth) bob-api/ # دليل عزل بوب (الفرع: وزن/بوب-API) Index.json # سجل شجرة العمل events.jsonl # سجل أحداث دورة الحياة
تقسيم العمل في طائرتين
s12 قم بتقسيم النظام بشكل صريح إلى مستويين:
- مستوى التحكم: ملف JSON في
.tasks/. المهمة هي وحدة مجردة من "ما يجب فعله"، بما في ذلك التبعيات والمالك والحالة. لي> - مستوى التنفيذ: الدليل في
.worktrees/. Worktree هي الحاوية المادية لـ "مكان القيام بذلك"، دليل + فرع. لي>
يرتبط الاثنان بشكل ثنائي الاتجاه من خلال task.worktree وworktree.task_id. ص>
يسمح لك هذا النوع من الفصل بما يلي: إعادة استخدام آلية إدارة المهام مع تغيير بيئة التنفيذ (على سبيل المثال، ليس شجرة عمل git، بل حاوية عامل الإرساء). أو قم بتغيير آلية المهمة مع إعادة استخدام شجرة العمل (على سبيل المثال، ليس ملف JSON بل قاعدة بيانات). ص>
مظاهرة دورة الحياة
راجع الأمر بالكامل أدناه: إنشاء مهمة ← إنشاء شجرة عمل ← تشغيل الأوامر ← الاحتفاظ أو الإزالة. تحتوي كل خطوة على سجل سجل الأحداث (events.jsonl)، والذي يُستخدم لإمكانية الملاحظة في الإنتاج. ص>
keep vs remove
هناك نهايتان عندما تكمل شجرة العمل مهمتها:
إزالة:إزالة شجرة العمل --force، احذف الدليل. يتم أيضًا تنظيف الفروع بشكل عام. إنه يعادل "لا أريد هذا الاستكشاف بعد الآن." لي>الاحتفاظ: قم فقط بوضع علامة علىالحالة: محفوظفي.worktrees/index.json، ويتم الاحتفاظ بالدليل الفعلي. إنه يعادل "سأحصل على هذه النتيجة، انتظر حتى أقوم بدمجها." لي>
الوضع المشترك: يقوم الوكيل الفرعي بتشغيل إعادة بناء تجريبي ← يعمل بنتائج جيدة ← احتفاظ ← مراجعة بشرية ← دمج في الفرع الرئيسي ← إزالة يدويًا. تأثير ضعيف؟ فقط قم بإزالته ورميه بعيدًا. ص>