Coding-Agent State Protocol

النموذج يحمل السياق. وCASP يُثبت أن الحالة صحيحة — في مواجهة git.

يحتفظ CASP بـصورة صحيحة دائماً لما عليه كل مشروع من مشاريعك فعلياً — في أي لحظة، مُتحقَّقاً منها مقابل git. عُد بعد أسبوع أو بعد أشهر، على أي حِزمة تقنية، عبر أي عدد من الوكلاء أو الجلسات أو الزملاء: افتحه فتجد الحالة صحيحة — وإلا فإن casp check يمنع عملية الدفع حتى تصبح كذلك.

فحص ما قبل الإقلاع + صندوق أسود لجلسات البرمجة بالذكاء الاصطناعي
$npm i -g @justethales/casp نسخ
عرض على GitHub
casp check — مُدقِّق الانحراف
01 / الخيط الذي تفقده مراراً

ملف حالة قديم يجعل وكيلك واثقاً ومخطئاً.

تعود إلى مشروع بعد أسبوع — أو تتنقّل بين خمسة في آن واحد. يقرأ الوكيل ملف حالة لم يعد يطابق الواقع، فيشرع بثقة في عمل سبق تسليمه، فتُهدر بعد ظهر يومك كاملاً في التراجع عنه.

اللوحات والبطاقات وجداول البيانات لا تنقذك: إعادة بناء السياق عملية يدوية، والوكيل لا يستطيع قراءة أيٍّ منها. يجب أن تكون الحالة قابلة للقراءة آلياً، أصيلة في git — وصحيحة على نحو قابل للإثبات.

يمنح CASP كل مشروع خيطاً واحداً يبقى من جلسة إلى أخرى — ولا يمكن أن ينحرف بصمت.
state.json ● DRIFTED
{
  "phase": "13 — camera streaming",
  "next_prompt": "phases/14-camera.md",
                  // shipped in v13.4
  "last_commit": "a1f3c9",
                  // not in git history
  "migrations": ["0001""0007"],
                  // git stops at 0006
}
02 / الفارق الحاسم

الجميع يُخزّن السياق. وCASP يتحقّق منه.

CASP هو الأساس الحتمي لحلقة التحقّق الذاتي — التحقّق الوحيد في «تحقّق من عملك» الذي ليس النموذج يدقّق نفسه: الحالة مقابل git، عند حدود الدفع التي لا يستطيع التحقّق داخل الحلقة بلوغها. المجال المجاور — Mem0 وLetta وZep ومشاريع «الذاكرة» الجديدة الأصيلة في git — كلها تُخزّن ما حدث؛ ولا يكاد أيٌّ منها يتحقّق من أن الحالة المخزَّنة ما زالت تطابق git. هذا التحقّق هو casp check — وهو إلزامي قبل كل عملية دفع.

انحراف next-prompt
مُكتشَف

يشير next_prompt إلى ملف سبق تسليمه — أو غير موجود أصلاً. يرفض CASP بدء الجلسة الخاطئة.

حقيقة git المرجعية
مفروضة

last_commit غائب عن السجلّ، قائمة الهجرات غير متزامنة، حالة غير مُودَعة — كلها تُفحص في مواجهة git نفسه، لا في مواجهة تخمين.

الدفع، ممنوع
حتمي

لا درجات تشابه تقريبية. بوّابة نجاح/فشل صارمة وقابلة للتكرار توقف عملية الدفع ما دامت الحالة كاذبة.

03 / إلى جانب بيئتك الحالية

git وطلبات الدمج والتكامل المستمر لا تعرف ما سيُسلَّم تالياً.

لا يستبدل CASP شيئاً في سير عملك. بل يسدّ الثغرة الوحيدة التي لا يغطّيها سواه — الحاضر المُتحقَّق منه للمشروع، في صورة يستطيع وكيلك قراءتها والتصرّف بناءً عليها.

Jira · Linear
النيّة
ما تعتزم فعله.
ينحرف عن الواقع، يعيش في السحابة، ولا يستطيع وكيلك قراءته بموثوقية.
CASP
الحاضر المُتحقَّق منه
أين يقف المشروع الآن — والخطوة التالية بالضبط، مُثبَتةً في مواجهة git.
قابل للقراءة آلياً، داخل المستودع، حتمي. الخيط الواحد الذي يتصرّف الوكلاء بناءً عليه.
git · PR · CI
السجلّ والتحقّق
ما الذي تغيّر · هل تمت مراجعته · هل يُبنى بنجاح.
سجلّ مثالي للماضي — وصامت عمّا يأتي تالياً.
04 / ثلاثة ملفات. خيط واحد.

البروتوكول بأكمله يتّسع داخل مستودعك.

لا قاعدة بيانات. لا خدمة. لا مخزن متّجهات. ثلاثة ملفات بسيطة يستطيع الوكيل قراءتها في السطر الأول من أي جلسة.

state.json
مصدر الحقيقة

قابل للقراءة آلياً، لكل مشروع: المرحلة الحالية، المرحلة التالية، الـnext-prompt الدقيق المطلوب تنفيذه، المراحل المُسلَّمة، الهجرات المُطبَّقة، آخر إيداع، معرّف آخر جلسة.

now.md
للبشر

«أين أنا الآن» على شاشة واحدة. افتحه، فتستعيد الخيط في خمس ثوانٍ — دون تنقيب.

roadmap.md
ما سيُسلَّم تالياً

المراحل الثلاث التالية المطلوب تسليمها إضافةً إلى لوحة نتائج للمراحل. يعرف الوكيل دائماً ترتيب العمل.

القوالب بوّابات، لا إرشادات.  القوالب القياسية session-prompt وsession-log وaudit-brief تجعل كل جلسة — بشرية كانت أم وكيلاً — تُنتج مخرجات بالشكل نفسه. البنية مفروضة، لا مقترحة.
05 / خطِّط مرّة واحدة، وسلِّم على شرائح

أنت تكتب الخطة مرّة واحدة. ووكيلك هو من يسأل عن التالي.

حوِّل مواصفاتك إلى طابور من موجِّهات الجلسات — كلّ واحد منها ملفّ في مستودعك يعلن ما الذي يسبقه. يسلّم casp next رأس هذا الطابور إلى وكيلك، ويرفض أن يسلّمه شريحة سبق تسليمها.

casp next يطبع الموجِّه فحسب. ولا ينفّذه أبداً — التنفيذ من عمل وكيلك. CASP هو الجزء الذي يجعل هذا التسليم جديراً بالثقة، لا منظِّم تنفيذ.

docs/plan/sessions/ — الطابور 2 shipped · 3 queued
PHASE-AUTH-GATE.mdnext_after: —shipped
PHASE-BILLING-CORE.mdnext_after: auth-gateshipped
PHASE-AUDIT-LOG.mdnext_after: team-rolesqueued
PHASE-API-DOCS.mdnext_after: audit-logqueued

في نهاية كلّ جلسة، يُلحق وكيلك السجلّ، ويُحدّث الحالة، ويكتب الموجِّه التالي في الطابور — تعدّل سطراً بدل أن تحرّر من الصفر. ولوحة نتائج المراحل تبقى في roadmap.md، فيعرف أيّ وكيل ترتيب العمل.

roadmap.md — لوحة نتائج المراحل 13 مُسلَّمة 22 إجمالاً
10apiمحرّك المزامنة الفوريةمُسلَّمة
11mobileإشعارات الدفعمُسلَّمة
12mobileتخزين مؤقت بأولوية العمل دون اتصالمُسلَّمة
13webصلاحيات الفريقمُسلَّمة
15apiالفوترة لكل مقعدفي الانتظار
16mobileتسجيل الدخول بالقياسات الحيويةفي الانتظار
/ في الإنتاج

ليس عرضاً تجريبياً. منتجان قيد التشغيل يعملان على CASP اليوم.

كل رقم أدناه مقروء مباشرةً من state.json الخاص بكل مشروع — الملف نفسه الذي يقرأه الوكيل، المُتحقَّق منه في مواجهة git عند آخر عملية دفع. بلا حسابات تسويقية.

LIVE

نظام ERP لإدارة الأساطيل موجَّه للعملاء، لشركة نقل في ساحل العاج — ويب + هاتف، متعدّد الوحدات، متعدّد الأدوار: السائقون، المركبات، الامتثال، الصندوق، الورشة، المنازعات، المحاسبة.

25+
مرحلة مُسلَّمة
20+
هجرة مُتتبَّعة
6
جلسات في يوم واحد

كل وحدة مرحلة مُتحقَّق منها. يقرأ الوكيل قمرة القيادة، ويشغّل المرحلة التالية من next_prompt، ولم يُعد قط تسليم وحدة سبق تسليمها — حتى في يومٍ من ست جلسات.

LIVE

المنصة الداخلية للعمليات وتنسيق الإطلاق لدى ZeroSuite — خريطة طريق تمتدّ على عدة أشهر يعمل عليها فريق حقيقي، مع تحكّم في وضع الإطلاق وقائمة أعمال متأخّرة مُتتبَّعة لما بعد الإطلاق.

41
مرحلة مُسلَّمة
17
هجرة
3
مشغّلون

خيط واحد مُتحقَّق منه عبر أكثر من 40 مرحلة وثلاثة أشخاص — إضافةً إلى 58 عنصراً مؤجَّلاً صراحةً إلى ما بعد الإطلاق، لم يُفقد أيٌّ منها. هذه هي حالة «المشروع الكبير متعدّد المستخدمين» التي صُمِّم CASP من أجلها.

البروتوكول نفسه، ومنتجان مختلفان جداً. قمرة القيادة هي الشيء الوحيد المشترك بينهما.

06 / حالة، لا ذاكرة

CASP ليس طبقة ذاكرة للذكاء الاصطناعي.

أدوات الذاكرة تتذكّر مَن أنت. أما CASP فيتتبّع أين يقف مشروعك — ويُثبت ذلك. مخرَج مختلف، وعملية مختلفة، وعطل مختلف يحول دونه.

CASP
طبقات الذاكرة · Mem0 / Letta / «soul» الأصيلة في git
ما الذي يحمله
حالة تنفيذ المشروع
حقائق المستخدم وتفضيلاته
العملية الأساسية
يتحقّق في مواجهة git
يُخزّن ويستدعي
عند التعارض
فحص حتمي في مواجهة الحقيقة المرجعية
تخمين تشابه تقريبي
متى يعمل
بوّابة متزامنة — تمنع عملية الدفع
استدعاء غير متزامن / مؤجَّل
هل يغادر جهازك
أبداً · بلا قياس عن بُعد
متغيّر / سحابي
07 / منصّة الأوامر

خمسة أفعال. تُكتب بلا عناء.

مقطع واحد، بلا تجانس لفظي، وهي نفسها في الإنجليزية أو الفرنسية أو الإسبانية.

casp initيُنشئ طبقة الاستمرارية في أي مستودع.
casp statusلقطة على شاشة واحدة: المرحلة، التالية، ما الذي سُلِّم.
casp checkمُدقِّق الانحراف. إلزامي قبل كل عملية دفع.
casp nextيبدأ الجلسة التالية تلقائياً من state.next_prompt.
casp new promptيُولّد session-prompt تحت البوّابة من القالب القياسي.
casp new logيفتح session-log بالشكل المشترك لكل جلسة.
08 / في محرّرك

أوامر سلاش أصيلة لوكيلك.

يوفّر CASP أوامر سلاش لـClaude Code كي تعيش الحالة حيث تعمل أصلاً.

/casp

حالة للقراءة فقط — يقرأ الوكيل الخيط الحالي قبل أن يكتب سطراً واحداً.

/next

يبدأ الجلسة التالية تلقائياً مباشرةً من state.next_prompt. لا نسخ ولصق، ولا تخمين.

يعمل مع Claude Code · Cursor · Aider · Continue — أي أداة تقرأ الملفات.

09 / لمؤسسات الهندسة

حين يعمل الوكلاء دون إشراف، يصبح الانحراف مشكلة أسطول.

وكيل واحد يفعل الشيء الخطأ يكلّف بعد ظهر يوم. مئة وكيل يفعلونه عبر مئة مستودع يكلّفون ربع سنة. CASP هو الحاجز الواقي الحتمي الذي تُدرجه في حلقة الأتمتة — بالشكل نفسه في كل مشروع.

فحص حالة CI إلزامي

يحتلّ casp check الموضع نفسه الذي يحتلّه الفحص اللغوي والاختبارات. الحالة الكاذبة لا يمكن دمجها — يُمنع الانحراف على مستوى المؤسسة، لا يُترك لانضباط أحد.

حاجز واقٍ لأساطيل الوكلاء

الوكلاء المستقلّون يضاعفون الأخطاء. يسلّم CASP كلّاً منهم الخيط المُتحقَّق منه نفسه ليقرأه، والبوّابة الصارمة نفسها قبل أن يدفع. أتمتة بلا ضريبة العمل المكرَّر.

مسار تدقيق، مجاناً

كل انتقال للحالة هو إيداع في git. سجلّ كامل قابل للمقارنة وللتراجع لكيفية تقدّم كل مشروع — git log هو مسار الامتثال لديك.

يجتاز أمن المعلومات بحُكم التصميم

محلي بالكامل، بلا قياس عن بُعد، لا سحابة، لا حساب. لا شيء لتدقيقه، لا شيء لتسريبه. المراجعة الأمنية سطر واحد: إنه لا يغادر الجهاز أبداً.

.github/workflows/ci.yml
jobs:
  state-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }   # casp checks against full git history
      - run: npx @justethales/casp check       # ✗ fails the build the moment state drifts

بروتوكول واحد، كل مستودع. الشكل المُتحقَّق منه نفسه، على نطاق المؤسسة.

10 / العقد

حازم عن قصد.

يكسب البروتوكول قبوله بكونه قابلاً للتوقّع. هذه القواعد لا تنثني.

P01

تحقّق من الحالة، لا من النيّة

يفحص CASP ما هو عليه مستودعك، لا ما قصدت فعله أبداً. الحقائق في مواجهة git، في كل مرة.

P02

القوالب بوّابات

المخرجات القياسية مفروضة، لا مقترحة. كل جلسة تخرج بالشكل نفسه.

P03

check قبل كل عملية دفع

المُدقِّق ليس اختيارياً. الحالة الكاذبة لا تصل أبداً إلى مستودعك البعيد.

P04

لا شيء يغادر جهازك

حتمي، أصيل في git، محلي بالكامل. بلا قياس عن بُعد. لا سحابة، لا حساب، لا فاتورة.

في الإنتاج خلال دقيقتين

امنح كل مشروع خيطاً لا يستطيع وكيلك أن يفقده.

ثبّت، هيّئ، فيقرأ وكيلك الحقيقة في سطره الأول.

  terminal
$ npm i -g @justethales/casp
$ casp init          # scaffold the layer
$ casp status        # where am I right now
$ casp check         # prove the state is true