تمام. قبل ما تكمل مع Claude بـ “Allow all edits”، لازم تثبت نقطة رجوع (Backup Commit) وتفصل “الشغل الجديد” عن “الأساس” لأن عندك تغييرات ضخمة + ملفات جديدة كتير + حذف ملفات. ده لو حصل غلط هتضيع بسهولة.
1) اعمل Commit “Snapshot” دلوقتي (أفضل حل)
نفّذ بالترتيب:
cd F:\dev\ai
git add -A
git commit -m "snapshot: before claude full-control session"
بعدها:
git status
لازم يقول: working tree clean
لو الـ commit رفض بسبب اسم/إيميل git، نفّذ مرة واحدة:
git config --global user.name "Ahmed Shehab"
git config --global user.email "ahmed@example.com"
وبعدين كرر commit.
2) مهم: أنت قلت “ارجاع version = 1.2.0 وحذف التحديثات”
الواقع: عندك ملفات migrations جديدة كتير + Dockerfile + DESIGN_SYSTEM.md + CLAUDE.md… إلخ.
قبل ما تطلب “حذف كل التحديثات”، لازم تحدد معناها عمليًا:
هل تقصد ترجع الريبو لحالة v1.2.0 الأصلية بالكامل؟
لو نعم: ده معناه غالبًا Reset/Checkout لنسخة قديمة أو Tag.
ولا تقصد “حذف وحدات معيّنة” فقط؟ (زي BOQ/WBS/IPC/Primavera… إلخ)
أنت سابقًا طلبت حذف وحدات بعينها، وده حصل. إنما “حذف كل التحديثات” معناها أوسع جدًا.
لو عايز رجوع كامل لآخر نسخة stable على GitHub:
git fetch
git reset --hard origin/main
git clean -fd
⚠️ ده هيمسح كل التغييرات والملفات الجديدة (بما فيها اللي أنت محتاجه). لذلك ما تعملوش إلا لو ده هدفك فعلًا.
بما إنك عايز تطويرات (بروفايل، عداد معدات… إلخ)، فالأصح: نثبت Snapshot ثم نكمّل تطوير.
3) بعد الـ Snapshot: خلّي Claude يشتغل “مرحلة مرحلة”
أنت دلوقتي جاهز تبعتله برومبت مُحكم — ده نص عملي ومباشر (انسخه له):
أنت مسؤول عن هذا الريبو، لكن ممنوع تعمل أي تعديل قبل ما تعمل التالي:
1) اقرأ git status واعتبر أن عندنا Snapshot commit جاهز للرجوع.
2) اعمل خطة تنفيذ على 3 مراحل فقط، وكل مرحلة:
- List الملفات التي ستتغير
- لماذا ستتغير
- كيف سنختبرها
قيود صارمة:
- لا تحذف أي ملفات/مجلدات إضافية بدون طلب صريح.
- لا تعدل migrations أو dependencies أو .env.
- أي تعديل UI يجب أن يكون عبر design system / CSS shared فقط.
ابدأ الآن بفحص:
A) سبب مشاكل تسجيل الدخول المحتملة (DB mismatch / user seed / create-admin CLI).
B) تأكيد قاعدة بيانات واحدة instance/construction.db وعدم وجود أي تشتت.
C) تأكيد وجود admin user وإنشاءه لو غير موجود عبر CLI command آمن.
ثم انتظر مني كلمة: "نفّذ المرحلة 1".
4) نقطة مهمة من اللي عندك في git status
أنت عندك:
deleted: ملفات QA كثيرة + بوابات قديمة (كويس لو ده مقصود)
untracked: migrations كثيرة + Dockerfile + design system files
قبل ما تعتمد على Claude “في كل حاجة”، خليه ما يلمسش migrations الجديدة دي إلا لو أنت طالب.
5) لو هدفك الآن: “تثبيت النظام” + “إنشاء Admin” بسرعة
بعد ما تعمل snapshot، نفّذ يدويًا اختبار بسيط (عشان تتأكد أن بيئة بايثون شغالة):
python -c "from app import create_app; app=create_app(); print('OK', app.config.get('SQLALCHEMY_DATABASE_URI'))"
ده هيطبع DB URI اللي السيرفر بيستخدمه.
لو طلع غير instance/construction.db يبقى لازم نثبت الـ DATABASE_URL.
الخلاصة
اعمل
git add -A+git commitالآن.بعدها شغّل أمر طباعة DB URI.
بعدها ابعت لClaude البرومبت المرحلي.
لو نفذت الـ commit وظهر لك أي Error (خصوصًا user.name/email أو hooks)، انسخلي نص الخطأ وأنا أديك الأمر الدقيق لإصلاحه.