GEMINI.md وإدارة الجلسات
استخدم ملفات سياق GEMINI.md لمنح Gemini معرفة دائمة بمشروعك، وأتقن حفظ الجلسات وإعادة الاستئناف للمهام المعقدة متعددة الجلسات.
استخدم ملفات سياق GEMINI.md لمنح Gemini معرفة دائمة بمشروعك، وأتقن حفظ الجلسات وإعادة الاستئناف للمهام المعقدة متعددة الجلسات.
GEMINI.md هو ملف Markdown تضعه في جذر مشروعك (أو أي مجلد) يقرأه Gemini CLI تلقائياً في بداية كل جلسة. إنه مكافئ CLAUDE.md في Claude Code — طريقة لمنح Gemini معرفة دائمة خاصة بالمشروع دون الحاجة إلى تكرارها في كل prompt.
# المشروع: StoreFront API
## نظرة عامة على البنية
REST API مبني بـ Fastify + TypeScript، منشور على Cloud Run.
PostgreSQL عبر Drizzle ORM. Redis للتخزين المؤقت والجلسات.
## أوامر التطوير
- `yarn dev` — تشغيل خادم التطوير مع hot reload (port 3001)
- `yarn test` — تشغيل اختبارات Vitest
- `yarn test:e2e` — تشغيل اختبارات Playwright على staging
- `yarn db:migrate` — تشغيل ترحيلات Drizzle المعلقة
- `yarn lint` — فحص ESLint + Prettier
## اتفاقيات الكود
- جميع معالجات المسارات في `src/routes/` — ملف واحد لكل مورد
- التحقق بـ Zod عند الحد الفاصل؛ بدون فحوصات runtime أعمق في الكود
- الوصول لقاعدة البيانات فقط عبر `src/db/` — لا SQL خام في المسارات
- استخدم `pino` للتسجيل المنظم؛ مستوى السجل من متغير `LOG_LEVEL`
## متغيرات البيئة
المطلوبة: DATABASE_URL, REDIS_URL, SESSION_SECRET, STRIPE_SECRET_KEY
الاختيارية: LOG_LEVEL (افتراضي: info), PORT (افتراضي: 3001)
## لا تفعل
- لا تُودع ملفات `.env`
- لا تستخدم `any` في TypeScript
- لا تتجاوز Zod للـ "راحة"عند تشغيل gemini في هذا المجلد، يقرأ GEMINI.md ويحمّله في نافذة السياق قبل رسالتك الأولى. جميع المحادثات في هذه الجلسة تبدأ بهذه المعرفة.
تتتالى ملفات GEMINI.md عبر هرم المجلدات. إذا كان لديك:
project/
GEMINI.md ← تُحمّل لأي جلسة في project/
src/
GEMINI.md ← تُحمّل أيضاً عند العمل في src/
src/api/
GEMINI.md ← تُحمّل أيضاً عند العمل في src/api/
تُدمج ملفات GEMINI.md المتعددة، مع أولوية للأعمق منها عند التعارض. استخدم ملفات GEMINI.md في المجلدات الفرعية للسياق الخاص بالمنطقة (مثل اتفاقيات خاصة بالـ API في src/api/GEMINI.md).
خلال الجلسة، يمكنك إضافة ملاحظات إلى GEMINI.md دون مغادرة REPL:
يُضاف هذا إلى قسم ## Gemini Added Memory في GEMINI.md، مما يجعله دائماً عبر الجلسات.
المهام المعقدة — ترحيل مخطط قاعدة البيانات، إعادة هيكلة وحدة، تصحيح حالة تعارض دقيقة — قد تستغرق ساعات وتمتد عبر محادثات متعددة. ميزة حفظ/تحميل الجلسة في Gemini CLI تتيح لك الإيقاف المؤقت والاستئناف دون فقدان السياق.
في أي نقطة من المحادثة:
/chat save db-migration-postgres-15
يحفظ Gemini تاريخ المحادثة الكامل ونتائج استدعاءات الأدوات ومحتويات الملفات المحمّلة في ~/.gemini/sessions/db-migration-postgres-15.json.
في جلسة طرفية جديدة أو في اليوم التالي:
gemini
/chat load db-migration-postgres-15
تستأنف المحادثة بالضبط من حيث توقفت مع الحفاظ على كل السياق.
/chat list
Saved sessions:
auth-refactor 34 messages منذ يومين
db-migration 67 messages منذ 5 أيام
setup-redis-cache 18 messages منذ أسبوع
تُخزَّن الجلسات محلياً في ~/.gemini/sessions/. يمكنك حذف القديمة منها يدوياً أو تبقى دائماً.
يمكنك تعريف أوامر slash مخصصة في GEMINI.md تحت قسم ## Commands:
## Commands
/review: راجع التغييرات المرحلية في git للصحة والأسلوب.
شغّل `git diff --cached` أولاً، ثم حلّل الفرق.
/release-notes: أنشئ ملاحظات الإصدار من سجل git منذ آخر tag.
شغّل `git log $(git describe --tags --abbrev=0)..HEAD --oneline`
وشكّل المخرجات كسجل تغييرات للمستخدمين.
/security-audit: تحقق من جميع معالجات المسارات بحثاً عن middleware المصادقة المفقود.
اقرأ كل ملف في src/routes/ وأبلغ عن أي منها لا يستدعي requireAuth().في REPL، كتابة /review يشغّل تعريف ذلك الأمر تلقائياً.
الأوامر المخصصة المعرّفة في GEMINI.md تخص نطاق الجلسة. تُحمّل عند بدء gemini في ذلك المجلد وتكون متاحة طوال الجلسة.
يمنح GEMINI.md كل جلسة Gemini فهماً مشتركاً ودائماً لمشروعك — لا حاجة لإعداد متكرر. حفظ الجلسات يتيح لك الإيقاف المؤقت واستئناف المهام المعقدة متعددة الأيام دون فقدان السياق. الأوامر المخصصة تحوّل الـ prompts المتكررة إلى اختصارات بكلمة واحدة. الوحدة التالية تغطي خوادم MCP والتكامل مع GitHub Actions لـ Gemini CLI.