# النمط: pipeline — معالجة روابط الوظائف المنتظرة (Second Brain) معالجة وفحص روابط الوظائف المخزنة في صندوق الوارد بملف `data/pipeline.md`. يقوم المستخدم بإضافة روابط الفرص التي تسترعي انتباهه في أي وقت، ثم يقوم بتشغيل الأمر `/career-ops pipeline` ليقوم النظام بمعالجتها وتقييمها بالكامل تلقائياً. --- ## مسار العمل التنفيذي 1. **قراءة الملف** `data/pipeline.md` ← البحث عن العناصر المحددة بـ `- [ ]` (غير المكتملة) في قسم "Pending" (الفرص المنتظرة). 2. **لكل رابط منتظر في القائمة**: a. حساب الرقم التسلسلي القادم للتقرير `REPORT_NUM` (بقراءة محتويات مجلد `reports/` وأخذ أكبر رقم مضافاً إليه 1). b. **استخراج تفاصيل متطلبات الوظيفة (JD)** باستخدام Playwright (`browser_navigate` + `browser_snapshot`) ← ثم استخدام WebFetch ← كخيار بديل أخير استخدام WebSearch. c. إذا كان الرابط غير قابل للوصول ← قم بتغيير العلامة إلى `- [!]` مع تدوين سبب الخطأ واستمر في معالجة الروابط الأخرى. d. **تنفيذ المسار التلقائي بالكامل**: تشغيل التقييم من A إلى G ← إنشاء ملف تقرير بصيغة md ← توليد ملف PDF للسيرة الذاتية المخصصة (فقط إذا كان التقييم 3.0 فما فوق) ← التوثيق الفوري في جدول التتبع. e. **نقل العنصر من قسم "Pending" إلى قسم "Processed" (المعالجة)** بصيغة: `- [x] #NNN | URL | Company | Role | Score/5 | PDF ✅/❌`. 3. **إذا كان هناك 3 روابط أو أكثر منتظرة**: قم بإطلاق وكلاء فرعيين بالتوازي (باستخدام أداة الوكلاء الفرعيين مع خيار التشغيل في الخلفية `run_in_background`) لرفع سرعة المعالجة للحد الأقصى. 4. **بعد اكتمال جميع التقييمات**: قم بتشغيل `node merge-tracker.mjs` لدمج جميع إضافات التتبع في ملف `data/applications.md` وتجنب التكرارات. 5. **في النهاية**: اعرض جدولاً يلخص الفرص التي تمت معالجتها: ```text | # | الشركة | الوظيفة | التقييم | السيرة الذاتية PDF | الإجراء المقترح | ``` --- ## هيكل وصيغة ملف pipeline.md ```markdown ## Pending - [ ] https://jobs.example.com/posting/123 - [ ] https://boards.greenhouse.io/company/jobs/456 | Company Inc | Senior PM - [!] https://private.url/job — Error: login required ## Processed - [x] #143 | https://jobs.example.com/posting/789 | Acme Corp | AI PM | 4.2/5 | PDF ✅ - [x] #144 | https://boards.greenhouse.io/xyz/jobs/012 | BigCo | SA | 2.1/5 | PDF ❌ ``` --- ## الاستخراج الذكي لمتطلبات الوظيفة (JD) من الرابط 1. **أداة Playwright (الخيار المفضل):** استخدام أداة التنقل وأخذ لقطة للصفحة (`browser_navigate` + `browser_snapshot`). تعمل بكفاءة عالية مع كافة تطبيقات الصفحة الواحدة (SPAs). 2. **أداة WebFetch (الخيار الاحتياطي الأول):** للصفحات الساكنة أو عند عدم توفر Playwright في البيئة المحلية. 3. **أداة WebSearch (الخيار الاحتياطي الأخير):** للبحث في المنصات الثانوية التي تقوم بنسخ وفهرسة الإعلان الأصلي للوظيفة. **حالات خاصة:** - **LinkedIn:** قد تطلب المنصة تسجيل الدخول لقراءة محتوى الوصف الوظيفي ← في هذه الحالة، ضع العلامة `[!]` واطلب من المستخدم نسخ ولصق نص الإعلان يدوياً في المحادثة. - **ملفات PDF:** إذا كان الرابط يشير مباشرة إلى ملف PDF، فاستخدم أداة قراءة الملفات مباشرة لقراءة محتوياته. - **البادئة `local:`:** لقراءة ملف محلي على الجهاز. مثال: `local:jds/linkedin-pm-ai.md` ← سيقوم النظام بفتح وقراءة الملف المحلي `jds/linkedin-pm-ai.md`. --- ## الترقيم التلقائي للتقارير 1. فحص وسرد كافة الملفات الموجودة في مجلد `reports/`. 2. استخراج الرقم التسلسلي من البادئة الخاصة بكل ملف (مثال: الملف `142-company...` يمثل الرقم 142). 3. تعيين الرقم الجديد للتقرير القادم = أكبر رقم تم العثور عليه مضافاً إليه 1. --- ## التحقق من مزامنة وتناسق البيانات قبل البدء في معالجة أي رابط، تحقق دائماً من سلامة ومزامنة مصادر البيانات وسيرتك الذاتية عن طريق تشغيل: ```bash node cv-sync-check.mjs ``` إذا تم اكتشاف أي عدم تطابق أو مشاكل في المزامنة، فقم بتنبيه وتحذير المستخدم فوراً قبل متابعة العمل.