سجل المهام
سجل المهام
Section titled “سجل المهام”وُلد من حادثة حيّة (2026-08-27). ردّ المستخدم بـ*“أكمل التالي”* على مسح جارٍ لأسماء العلامات التجارية. كان نص تلك الدورة قد قُطع للتوّ إلى شذرة من 158 حرفًا بسبب توقف في منتصف البث، فأصبحت أعلى إشارة متبقية في الموجِّه هي بيئة العمل المحيطة (“uncommitted changes…”) — فحلّ النموذج كلمة “التالي” إلى
git commitلإعدادات لا صلة لها بالأمر. ولم تظهر بطاقة موافقة لأن نافذة YOLO لمدة 4 ساعات كانت ما تزال نشطة.يجعل السجل هذا الصنف كله مستحيلًا بنيويًا: المتابعات القصيرة تُحلّ مقابل حالة مهام دائمة، لا مقابل النص أبدًا؛ والمتابعات غير المحسومة لا تُنتج إلا سؤالًا؛ وتعديلات المستودع تمر بالبوابة دائمًا، حتى في YOLO.
سجل نشط واحد لكل محادثة، مخزَّن في قاعدة بيانات SQLite خاصة به
(kazma-data/task_ledgers.db بصيغة WAL) — لا داخل نص الدردشة أبدًا:
| الحقل | المعنى |
|---|---|
goal | المهمة في جملة واحدة (تُزرع من أول رسالة ≥40 حرفًا لديك؛ ويصقلها الوكيل عبر الأداة). |
steps | الخطة المعلنة — كل خطوة بحالة pending / running / done / failed ونتيجة في سطر واحد. |
next_action | هدف الربط: الخطوة التالية التي أعلنها الوكيل بنفسه. |
findings | نتائج دائمة تستحق الإبقاء (مثل قائمة الأسماء الخضراء). |
open_questions | تفرّعات غير محسومة يُسأل المستخدم عنها. |
ولأنه يعيش في SQLite، فإنه ينجو من إعادة التشغيل، وتحديث المتصفح، والردود المقطوعة، والجلسات الجديدة — فلا يمكن لأخطاء النص أن تفسد سطح الحلّ.
كيف يبقى محدَّثًا
Section titled “كيف يبقى محدَّثًا”كاتبان، دون أي استدعاءات LLM إضافية:
- الاستخراج الحتمي — سياج
```planفي كل ردّ للمساعد يصبح خطوات السجل، وسطر النية المعلنة الختامي — “الآن المسح الاجتماعي لـ X، Y، Z”، “Next: …”، “التالي: …” — يصبحnext_action(أنماط إنجليزية وعربية؛ آخر إعلان هو الفائز، لأن الوكيل يعيد الإعلان كلما أعاد التخطيط). - أداة
task_ledger_update— يصون الوكيل الهدف والخطوة التالية والنتائج وحالة الخطوات عمدًا. صيانة السجل هي طريقته لجعل “التالي” غير ملتبس.
كيف يُحلّ القصد
Section titled “كيف يُحلّ القصد”عندما تكون رسالتك متابعة قصيرة (“proceed”، “next”، “continue”، كمّل، تابع)، يستشير المُشرف السجل قبل أن تعمل الدورة:
- توجد خطوة تالية معلنة → ربط ملزم. ينصّ سياق الدورة صراحةً على أيّ خطوة يعنيها “التالي” — “CONTINUATION BINDING: this means ‘the social sweep for potensfit, acerfit, voimfit’” — مع بند إفلات صريح كي تتجاوزه المهمة الجديدة حقًّا.
- لا خطوة تالية معلنة → توضيح بنيوي. تُقفل الدورة على سؤال توضيحي واحد وتُسحب كل الأدوات منها لتلك الدورة — لا يستطيع الوكيل فيزيائيًا التصرف بناءً على تخمين. سوء القراءة يكلّف سؤالًا واحدًا، لا فعلًا أبدًا.
- تحوّل الموضوع → إحلال. التحوّل المكتشف يعلّم السجل القديم مُحلًّى (يُحفظ للتاريخ) ويُزرع سجل جديد تلقائيًا.
نطاق الضرر
Section titled “نطاق الضرر”حدّان صارمان حتى يبقى سوء الفهم الحقيقي نفسه رخيصًا:
- أوامر git الكتابية تمر بالبوابة دائمًا.
git commitوpushوmergeوrebaseوresetوcheckout --وrestoreوcleanوrmوأشباهها تتطلب بطاقة موافقة على كل مسار تنفيذ (عامل أدوات الرسم وسجل swarm/IDE) — لا يستطيع YOLO الموافقة عليها تلقائيًا. أما git القرائي (statusوlogوdiff) فمعفى. - نوافذ YOLO ساعة واحدة افتراضيًا (كانت 4). تجاوز ذلك عبر
KAZMA_YOLO_TTL_SECONDS(0/off= بلا انتهاء) إن احتجت حقًّا إلى مدة أطول.
ملاحظات تشغيلية
Section titled “ملاحظات تشغيلية”- المخزن بأفضل جهد ولا يرفع استثناءً أبدًا — السجل المعطوب يتدهور إلى “لا سجل”، لا إلى دورة فاشلة.
- السجلات لكل خيط محادثة؛ ويُحتفظ بتاريخ السجلات المُحلّاة لكل خيط.
- التوصيل موجود في
kazma_core/agent/task_ledger.pyوالمُشرف (graph_supervisor.py)؛ والاختبارات فيtests/test_task_ledger.py. - ذو صلة: طبقة الالتزام (البوابات الدلالية) والأمان والسلامة (مستويات HITL).

