mirror of
https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools.git
synced 2026-06-17 23:09:35 +00:00
Add Cursor skills and Dealix slash-command docs; hook guard scripts; ops checklists for staging gates A-D and PAID_BETA_READY verification; daily GTM and pilot/Proof Pack playbooks; cross-link command board, START_HERE, and execution pack. PR acceptance template includes local smoke and pytest results. Co-authored-by: Cursor <cursoragent@cursor.com>
355 lines
15 KiB
Markdown
355 lines
15 KiB
Markdown
# Runbook واحد — من Private Beta جاهزة إلى أول Proof Pack
|
||
|
||
**الهدف ليس «نبني أكثر». الهدف:**
|
||
|
||
```text
|
||
Private Beta جاهزة → Staging شغال → PAID_BETA_READY → أول عميل/التزام → Proof Pack → بعدها نقرر ماذا نبني
|
||
```
|
||
|
||
**مواد جاهزة للتنفيذ اليومي:**
|
||
Layer 13 (بوابة عامة) → [`PUBLIC_LAUNCH_READINESS.md`](PUBLIC_LAUNCH_READINESS.md)
|
||
Layer 14 (بريد + battlecards + ديمو ١٢ دقيقة) → [`sales-kit/START_HERE.md`](sales-kit/START_HERE.md) (قسم Layer 14)
|
||
|
||
**مراجع تقنية:** [`POST_MERGE_VERIFICATION.md`](POST_MERGE_VERIFICATION.md) · [`BRANCH_PROTECTION_AND_CI.md`](BRANCH_PROTECTION_AND_CI.md) · [`STAGING_DEPLOYMENT.md`](STAGING_DEPLOYMENT.md) · [`ops/RAILWAY_AI_COMPANY_BIND.md`](ops/RAILWAY_AI_COMPANY_BIND.md)
|
||
|
||
**تشغيل متعدد الوكلاء (Claude Work / Cursor):** [`ops/DEALIX_ACTIVE_COMMAND_BOARD.md`](ops/DEALIX_ACTIVE_COMMAND_BOARD.md) · [`ops/EXECUTION_GOVERNANCE_PACK.md`](ops/EXECUTION_GOVERNANCE_PACK.md) · [`ops/STAGING_PAID_BETA_READY_ONE_SHOT.md`](ops/STAGING_PAID_BETA_READY_ONE_SHOT.md) · [`ops/STAGING_WORKFLOW_GITHUB.md`](ops/STAGING_WORKFLOW_GITHUB.md) · [`ops/COMMERCIAL_CLOSE_COPY_CHECKLIST.md`](ops/COMMERCIAL_CLOSE_COPY_CHECKLIST.md)
|
||
|
||
---
|
||
|
||
## المرحلة A — إغلاق GitHub (حماية الفرع)
|
||
|
||
| الخطوة | ماذا تفعل |
|
||
|--------|-----------|
|
||
| A1 | على الريبو: **Settings → Branches → Add rule** للفرع المحمي (مثلاً `ai-company` أو `main` حسب سياسة شركتك). |
|
||
| A2 | فعّل: **Require a pull request before merging**، **Require status checks to pass**، **Require branches to be up to date before merging**، **Require conversation resolution** (إن كان الفريق يستخدمها)، **Block force pushes**، **Block deletions**. |
|
||
|
||
**Checks المطلوبة (Dealix API CI):** اختر الأسماء **كما تظهر في واجهة GitHub** بعد أول تشغيل ناجح للـ workflow — عادة:
|
||
|
||
- `pytest`
|
||
- `smoke_inprocess`
|
||
- `launch_readiness`
|
||
|
||
إن ظهرت مُسبوقة باسم الـ workflow (مثل `Dealix API CI / pytest`)، اختر نفس الصيغة. إذا كان عندك check باسم `test` فقط من workflow آخر، **طابق ما يظهر عندك فعلاً** — لا تضف اسماً لا يُشغَّل على الـ PR. انظر أيضاً قسم «تفرّد أسماء الـ jobs» في [`BRANCH_PROTECTION_AND_CI.md`](BRANCH_PROTECTION_AND_CI.md).
|
||
|
||
**علامة نجاح A:**
|
||
|
||
```text
|
||
الفرع المحمي لا يقبل merge بدون PR + checks خضراء
|
||
لا force push ولا حذف للفرع المحمي
|
||
```
|
||
|
||
مرجع GitHub: [Troubleshooting required status checks](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks)
|
||
|
||
---
|
||
|
||
## المرحلة B — Railway Staging (رابط حقيقي)
|
||
|
||
| الخطوة | ماذا تفعل |
|
||
|--------|-----------|
|
||
| B1 | Railway: **New Project → Deploy from GitHub** → الريبو `VoXc2/system-prompts-and-models-of-ai-tools` → الفرع **`ai-company`** (أو فرع النشر المعتمد). |
|
||
| B2 | **Service Root / Root Directory:** `dealix` (حزمة التطبيق). |
|
||
| B3 | **Variables (ابدأ بآمنة، بدون live keys):** `APP_ENV=staging`، `WHATSAPP_ALLOW_LIVE_SEND=false`، `MOYASAR_MODE=sandbox`، `PYTHONUNBUFFERED=1` — وأي مفاتيح LLM/DB حسب [`go-to-market/railway_vars_template.txt`](go-to-market/railway_vars_template.txt) أو [`STAGING_DEPLOYMENT.md`](STAGING_DEPLOYMENT.md). |
|
||
| B4 | **Start Command:** `uvicorn api.main:app --host 0.0.0.0 --port $PORT` |
|
||
| B5 | **Healthcheck Path:** `/health` |
|
||
|
||
**علامة نجاح B:**
|
||
|
||
```text
|
||
Deployment = Active
|
||
GET /health → 200
|
||
```
|
||
|
||
التطبيق يجب أن يستمع على `0.0.0.0` والمنفذ الذي يحقنه المضيف (مثل `$PORT` على Railway). مرجع: [Railway Healthchecks](https://docs.railway.com/reference/healthchecks)
|
||
|
||
---
|
||
|
||
## المرحلة C — فحص Staging من جهازك
|
||
|
||
بعد أن يكون لديك **Base URL** بدون شرطة مائلة أخيرة:
|
||
|
||
```bash
|
||
cd dealix
|
||
set STAGING_BASE_URL=https://YOUR-STAGING-URL.example # Windows PowerShell: $env:STAGING_BASE_URL="https://..."
|
||
python scripts/smoke_staging.py --base-url "%STAGING_BASE_URL%" # أو: --base-url $env:STAGING_BASE_URL
|
||
python scripts/launch_readiness_check.py --base-url "%STAGING_BASE_URL%"
|
||
```
|
||
|
||
(Linux/macOS: `export STAGING_BASE_URL=...` ثم نفس الأوامر بدون `%`.)
|
||
|
||
إذا فرض الـ staging مفتاح API: عيّن `STAGING_API_KEY` (يُرسل كـ `X-API-Key`) — انظر تعليقات [`scripts/smoke_staging.py`](../scripts/smoke_staging.py).
|
||
|
||
**علامة نجاح C:**
|
||
|
||
```text
|
||
smoke_staging.py ينتهي بنجاح (exit 0)
|
||
launch_readiness_check.py → VERDICT: PAID_BETA_READY و exit 0
|
||
```
|
||
|
||
**إذا ظهر NO_GO:** لا تبيع، لا رابط دفع، لا Pilot — عالج سبب الفشل (مسار، متغيرات، landing، إلخ) ثم أعد التشغيل.
|
||
|
||
---
|
||
|
||
## المرحلة D — GitHub Secret + Workflow
|
||
|
||
| الخطوة | ماذا تفعل |
|
||
|--------|-----------|
|
||
| D1 | **Settings → Secrets and variables → Actions → New repository secret** → `STAGING_BASE_URL` = `https://your-staging-host` (بدون `/` زائدة في النهاية إن أمكن). |
|
||
| D2 | **Actions → Dealix staging smoke → Run workflow** (يدوي `workflow_dispatch`). |
|
||
|
||
الـ workflow يشغّل [`dealix-staging-smoke.yml`](../../.github/workflows/dealix-staging-smoke.yml): `smoke_staging.py` ثم `launch_readiness_check.py --base-url "$STAGING_BASE_URL"`.
|
||
|
||
**علامة نجاح D:**
|
||
|
||
```text
|
||
Workflow أخضر عندما يكون STAGING_BASE_URL مضبوطاً
|
||
نفس PAID_BETA_READY من CI كما من جهازك
|
||
```
|
||
|
||
---
|
||
|
||
## المرحلة E — Moyasar (أول دخل بدون Billing API كامل)
|
||
|
||
| الخطوة | ماذا تفعل |
|
||
|--------|-----------|
|
||
| E1 | من **Moyasar Dashboard**: إنشاء **Invoice** — المبلغ **499 SAR**، وصف واضح (مثلاً: Dealix Private Beta Pilot — 7 days)، صلاحية مناسبة (مثلاً 7 أيام). |
|
||
| E2 | أرسل رابط الدفع عبر قناة موثوقة (إيميل أو رسالة **يدوية** مع opt-in). |
|
||
|
||
**ملاحظة وحدات API (للمستقبل):** في API غالباً المبلغ بالهللات؛ 499 ريال = `49900` هللة. راجع وثائق Moyasar الرسمية عند الربط البرمجي. مرجع مساعد: [Moyasar Dashboard: Invoice](https://help.moyasar.com/en/article/moyasar-dashboard-invoice-rf3kyd/)
|
||
|
||
**نص جاهز للعميل (مقتبس — عدّل حسب سياسة شركتك):**
|
||
|
||
```text
|
||
تمام، نبدأ Pilot لمدة 7 أيام بـ 499 ريال.
|
||
يشمل: 10 فرص مناسبة، رسائل عربية جاهزة للمراجعة، فحص مخاطر القنوات، خطة متابعة 7 أيام، Proof Pack مختصر.
|
||
بعد الدفع أحتاج: رابط الموقع، القطاع، المدينة، العرض الرئيسي، وصف العميل المثالي.
|
||
```
|
||
|
||
**علامة نجاح E:**
|
||
|
||
```text
|
||
فاتورة/رابط دفع جاهز + عميل استلم الرابط
|
||
```
|
||
|
||
---
|
||
|
||
## المرحلة F — مبيعات اليوم (تنفيذ يدوي آمن)
|
||
|
||
**هدف يوم واحد:**
|
||
|
||
```text
|
||
25 تواصل يدوي
|
||
5 follow-ups
|
||
1 منشور LinkedIn + 1 منشور X (أو منصة واحدة إن كان الوقت ضيقاً)
|
||
1 محادثة شريك
|
||
1 محاولة حجز ديمو
|
||
```
|
||
|
||
**قواعد:** لا scraping، لا auto-DM، لا واتساب بارد جماعي. التزم بسياسة المنصات — مثلاً LinkedIn يحدّ من برمجيات الالتقاط والإرسال غير الأصيل. مرجع: [LinkedIn — prohibited software and extensions](https://www.linkedin.com/help/linkedin/answer/a1341387/prohibited-software-and-extensions)
|
||
|
||
**تقسيم الـ 25:**
|
||
|
||
```text
|
||
10 وكالات B2B / مسوقين
|
||
5 شركات تدريب
|
||
5 B2B SaaS أو خدمات تقنية
|
||
5 خدمات محلية
|
||
```
|
||
|
||
**قوالب مختصرة** (طوّرها من [`sales-kit/layer14_email_sequences_4x7_ar.md`](sales-kit/layer14_email_sequences_4x7_ar.md)):
|
||
|
||
- **وكالة:** Beta محدودة + Pilot مشترك على عميل حقيقي + ديمو 15 دقيقة؟
|
||
- **شركة:** 10 فرص + رسائل عربية + موافقة قبل أي تواصل + Proof Pack + Diagnostic مجاني؟
|
||
|
||
**Follow-up مقترح:** عينة صغيرة (3 فرص + رسالة واحدة + قناة) بدل ديمو كامل إن احتجت تخفيف الاحتكاك.
|
||
|
||
**علامة نجاح F:**
|
||
|
||
```text
|
||
25 لمسة مُسجّلة في الـ Operating Board (انظر المرحلة G)
|
||
0 إجراءات غير آمنة (لا live send بدون موافقة وسياسة)
|
||
```
|
||
|
||
---
|
||
|
||
## المرحلة G — Operating Board (جدول تتبّع)
|
||
|
||
1. أنشئ Google Sheet: **`Dealix Paid Beta Operating Board`**.
|
||
2. الصف الأول (عناوين أعمدة):
|
||
|
||
```text
|
||
company,person,segment,channel,message_sent_at,reply_status,demo_booked,diagnostic_sent,pilot_offered,invoice_sent,paid_or_commitment,proof_pack_sent,next_step,notes
|
||
```
|
||
|
||
3. نهاية اليوم — سجل الأرقام في **Daily Scorecard** (من مجلد `dealix`):
|
||
|
||
```bash
|
||
python scripts/paid_beta_daily_scorecard.py --messages 25 --replies 0 --demos 0 --pilots 0 --payments 0 --proof-packs 0
|
||
```
|
||
|
||
مع نتائج فعلية (مثال):
|
||
|
||
```bash
|
||
python scripts/paid_beta_daily_scorecard.py --messages 25 --replies 4 --demos 2 --pilots 1 --payments 1 --proof-packs 0 --json
|
||
```
|
||
|
||
**يوم جيد (مؤشرات تقريبية):**
|
||
|
||
```text
|
||
25 messages
|
||
3–5 replies
|
||
1–2 demos
|
||
1 pilot offered
|
||
0 unsafe actions
|
||
```
|
||
|
||
**علامة نجاح G:** الصفوف مكتملة + scorecard يعكس الواقع.
|
||
|
||
---
|
||
|
||
## المرحلة H — ديمو ١٢ دقيقة (خط زمني للمكالمة)
|
||
|
||
| الوقت | ماذا تقول / تعرض |
|
||
|--------|-------------------|
|
||
| 0–2 | المشكلة: بيانات وقنوات لكن لا وضوح في من + ماذا + متى + كيف تُثبت النتيجة. |
|
||
| 2–4 | Dealix: هدف نمو → خدمة واضحة → فرص، رسائل، موافقات، متابعة، Proof. |
|
||
| 4–7 | ثلاث خدمات فقط كأمثلة: First 10 Opportunities، List Intelligence، Growth OS Pilot (اضبط الأسماء مع كتالوجكم). |
|
||
| 7–9 | لا واتساب بارد، لا سحب LinkedIn، لا live بدون موافقة — draft وapproval-first. |
|
||
| 9–11 | Pilot 7 أيام بـ 499 ريال (أو العرض المعتمد عندكم). |
|
||
| 11–12 | «تبغى رابط الدفع ونبدأ اليوم؟» |
|
||
|
||
**سكربت مفصّل + اعتراضات:** [`sales-kit/layer14_demo_12min_script_ar.md`](sales-kit/layer14_demo_12min_script_ar.md) · جدول الدقائق: [`DEMO_SCRIPT_12_MINUTES.md`](DEMO_SCRIPT_12_MINUTES.md)
|
||
|
||
---
|
||
|
||
## المرحلة I — أول Pilot خلال ٤٨ ساعة
|
||
|
||
### أول ٣٠ دقيقة — Intake (اطلب)
|
||
|
||
```text
|
||
company_name, website, sector, city, offer, ideal_customer, average_deal_value,
|
||
has_contact_list, preferred_channels, current_sales_process
|
||
```
|
||
|
||
### خلال ٢٤ ساعة — Diagnostic (سلّم)
|
||
|
||
```text
|
||
3 فرص، 1 رسالة عربية، 1 مخاطرة، 1 توصية خدمة
|
||
```
|
||
|
||
### خلال ٤٨ ساعة — Pilot ٤٩٩ (سلّم)
|
||
|
||
```text
|
||
10 فرص، why-now لكل فرصة، صاحب قرار محتمل، قناة مقترحة، رسالة عربية،
|
||
مخاطرة/contactability، خطة متابعة 7 أيام، Proof Pack مختصر
|
||
```
|
||
|
||
**علامة نجاح I:** عميل استلم Diagnostic ثم حزمة Pilot ضمن الإطار الزمني المتفق عليه.
|
||
|
||
---
|
||
|
||
## المرحلة J — Proof Pack (هيكل التقرير)
|
||
|
||
```text
|
||
Dealix Proof Pack — Week 1
|
||
|
||
Client:
|
||
Service:
|
||
Period:
|
||
|
||
1. What was created
|
||
- opportunities_created:
|
||
- drafts_created:
|
||
- followups_created:
|
||
|
||
2. What was protected
|
||
- risks_blocked:
|
||
- unsafe_channels_avoided:
|
||
|
||
3. What needs approval
|
||
- approvals_needed:
|
||
- recommended_next_actions:
|
||
|
||
4. Revenue impact estimate
|
||
- potential_pipeline_sar:
|
||
- confidence:
|
||
|
||
5. Next step
|
||
- upgrade recommendation:
|
||
```
|
||
|
||
**رسالة تسليم مختصرة:** ملخص النقاط الأربع (فرص، رسائل، مخاطر ممنوعة، قناة، توصية تالية) + عرض ترقية منطقي إن وُجد.
|
||
|
||
**علامة نجاح J:** عميل استلم Proof Pack **مكتوباً ومُرسلاً** ويمكنه إعادة توجيهه داخل شركته.
|
||
|
||
---
|
||
|
||
## المرحلة K — بعد أول Pilot
|
||
|
||
| الحالة | ماذا تعرض / تسأل |
|
||
|--------|------------------|
|
||
| دفع + رضا | Growth OS شهري (مثلاً 2,999 ريال) — حدّد البنود مع كتالوج الخدمات والـ SLA. |
|
||
| لم يدفع | سؤال واحد: «هل المشكلة السعر، التوقيت، الثقة، أم وضوح القيمة؟» — **لا تبنِ ميزة جديدة** قبل فهم السبب. |
|
||
| وكالة مهتمة | Agency Partner Pilot: عميل واحد من طرفهم، Proof Pack بشعار مشترك، تقسيم ربح / referral. |
|
||
|
||
---
|
||
|
||
## المرحلة L — متى تبني كود جديد؟
|
||
|
||
فقط إذا تحقق **واحد** مما يلي:
|
||
|
||
```text
|
||
عميل مدفوع طلب نفس الشيء مرتين
|
||
3 pilots تعثروا لنفس السبب
|
||
التشغيل اليدوي يستهلك وقتاً واضحاً
|
||
Proof Pack يحتاج أتمتة لتسليم أسرع
|
||
Staging فشل بسبب bug حقيقي وليس إعداداً فقط
|
||
```
|
||
|
||
**قواعد الـ PR:** صغير، اختبار واضح، لا تغيير ضخم، لا «ميزة عامة» بدون طلب متكرر.
|
||
|
||
---
|
||
|
||
## تعريف «الإغلاق الكامل»
|
||
|
||
### تقني + تشغيلي
|
||
|
||
```text
|
||
GitHub: فرع محمي + checks مطلوبة
|
||
Railway staging: Active + /health = 200
|
||
PAID_BETA_READY من launch_readiness_check على staging
|
||
Staging smoke workflow أخضر (عند ضبط STAGING_BASE_URL)
|
||
```
|
||
|
||
### تجاري (Paid Beta «حقيقية»)
|
||
|
||
```text
|
||
PAID_BETA_READY
|
||
+ أول دفع أو commitment واضح
|
||
+ أول Proof Pack مُسلَّم للعميل
|
||
```
|
||
|
||
### حزمة يوم التنفيذ (مواد جاهزة)
|
||
|
||
```text
|
||
25 outreach + Operating Board + scorecard
|
||
ديمو 12 دقيقة (سكربت Layer 14)
|
||
تسلسلات بريد + battlecards (Layer 14)
|
||
Moyasar invoice جاهز للإرسال
|
||
```
|
||
|
||
---
|
||
|
||
## خريطة سريعة: أين الملف؟
|
||
|
||
| موضوع | ملف |
|
||
|--------|------|
|
||
| تحقق بعد الدمج محلياً | [`POST_MERGE_VERIFICATION.md`](POST_MERGE_VERIFICATION.md) |
|
||
| حماية الفرع وأسماء الـ CI jobs | [`BRANCH_PROTECTION_AND_CI.md`](BRANCH_PROTECTION_AND_CI.md) |
|
||
| Railway + ربط الريبو | [`ops/RAILWAY_AI_COMPANY_BIND.md`](ops/RAILWAY_AI_COMPANY_BIND.md) |
|
||
| بوابة Public Launch (Layer 13) | [`PUBLIC_LAUNCH_READINESS.md`](PUBLIC_LAUNCH_READINESS.md) |
|
||
| بريد 4×7 + battlecards + ديمو | [`sales-kit/START_HERE.md`](sales-kit/START_HERE.md) |
|
||
|
||
---
|
||
|
||
*آخر تحديث للهيكل: 2026-05-01 — طابق الأوامر مع نسخة السكربتات في الريبو عند التنفيذ.*
|