الـ subagents في فصل ١٣ كانوا بيدوّروا ويقروا بس. طب لو عايز اتنين Claude يكتبوا كود في نفس الوقت؟ واحد يبني الـ admin، والتاني يبني الـ wishlist؟
لو الاتنين شغالين في نفس الفولدر، هيعدّلوا نفس الملفات ويبوّظوا شغل بعض. واحد يغيّر schema.ts والتاني يكتب فوقه، أو واحد يعمل git checkout لـ branch تاني والتاني شغال.
الـ worktree فولدر تاني على نفس الـ repo، وعليه branch لوحده. كل Claude بيشتغل في فولدر، فمحدش بيلمس ملفات التاني.
الفرق بين subagent و worktree
بيفصل الـ context. شغال على نفس الملفات، وغالبًا بيقرا وبس ويرجعلك بخلاصة.
بيفصل الملفات والـ branch. كل agent بيكتب كود في نسخة لوحده، وفي الآخر بتعمل merge.
إزاي تعمله
من جوه المشروع:
# فولدر جديد جنب المشروع، وعليه branch جديدgit worktree add ../atelier-admin -b feature/admingit worktree add ../atelier-wishlist -b feature/wishlist# تشوف كل الـ worktreesgit worktree list
وبعدين تفتح terminal لكل واحد، وتشغّل Claude جواه:
cd ../atelier-admin && claude# وفي terminal تانيcd ../atelier-wishlist && claude
كل Claude شايف فولدره بس، وبيعمل commits على الـ branch بتاعه. والإصدارات الجديدة من Claude Code فيها flag بيعمل الـ worktree ويفتح الجلسة فيه في خطوة واحدة، راجع الـ docs لاسمه.
حاجات هتقابلك
الـ worktree فيه الملفات اللي في Git بس، فـ:
- الـ dependencies مش موجودة: شغّل
pnpm installفي كل worktree. - ملف
.env.localمش موجود: لأنه برا Git. انسخه بنفسك. ومتخليش Claude يقراه، الـ deny rule شغالة هنا كمان لو.claude/settings.jsonمتعمله commit. - الـ dev server: لو الاتنين شغّلوا
pnpm devعلى port 3000 هيتخانقوا. ادّي كل واحد port، زيpnpm dev --port 3001. - الداتابيز واحدة: لو الاتنين بيعملوا migrations على نفس الداتابيز، هيلخبطوا بعض. اعمل الـ migrations في feature واحدة بس في الوقت ده، أو استخدم branch داتابيز لكل worktree لو الـ provider بيدعم ده (Neon مثلًا فيه branches).
اختار features مستقلة
في الآخر: راجع و merge واحدة واحدة
# بعد ما تراجع شغل الـ admingit checkout maingit merge feature/admin# امسح الـ worktree بعد ما خلصتgit worktree remove ../atelier-admingit branch -d feature/admin
راجع كل branch لوحده زي ما بتراجع أي شغل: git diff main...feature/admin، وشغّل التستات، وافتح الصفحة بعينك. اعمل merge لواحدة، وبعدين التانية. ولو حصل conflict، تقدر تطلب من Claude يحلّه، بس راجع الحل.
ابدأ باتنين بس. كل agent زيادة معناه مراجعة زيادة عليك إنت، وإنت اللي في الآخر بتقرر إيه يدخل main.