الدليل › Slima MCP › حماية الملفات المهيكلة: كيف تقرأ الرفض

حماية الملفات المهيكلة: كيف تقرأ الرفض

آخر تحديث 9/09/2026 · قراءة 6 دقيقة

في سطر واحد: كيف تقرأ رفضًا من MCP — أيّها يعني «استخدم أداة أخرى»، وأيّها يعني «هذا يحتاج خطة اشتراك»، وأيّها يعني «أبدًا».

ما الذي يحلّه هذا

كل حالات الرفض تبدو جدرانًا، وهي ليست كذلك. أخطاء MCP في Slima تحمل رموزًا مختلفة عن قصد، لأن الخطوة التالية مختلفة تمامًا: مرةً أداة أخرى، ومرةً أن تطلب من المؤلف أن يفعلها في التطبيق، ومرةً اشتراك. والـ AI الذي لا يفرّق بينها يفعل أسوأ ما يمكن: يعيد النداء نفسه حرفيًا.

لماذا تُحرَس الملفات المهيكلة أصلًا

حين يوجّه مدرب AI داخل التطبيق كتابةً كاملة إلى ملف .beats، توقفه الواجهة، والثمن نداءٌ واحد ضائع.

أما عبر MCP فالكتابة نفسها كانت ستنجح. ملف .beats يحمل فصولًا وإيقاعات وبطاقات فصول سحبها المؤلف إليه؛ رأى الـ AI جزءًا من ذلك وأعاد المستند كله. الملف يفتح كالمعتاد، وقطعة من عمل المؤلف اختفت، ولم يظهر أي خطأ.

لذلك تسكن البوابة في الخادم، لا في وصف الأداة وحده. الوصف نصيحةٌ لنموذج؛ ورفض الخادم هو الضمان.

أربع حالات رفض ستصادفها

الرمز الحالة معناه الخطوة التالية
AI_READONLY_FILE_TYPE 403 هذا النوع ليس ممّا يجوز لـ AI أن يكتبه كاملًا في الأنواع المهيكلة الخمسة، تذكر الرسالة أداة update_* التي تستخدمها بدلًا من ذلك. أما .character / .location / .json / .yaml فلا مسار بديل لها: اقرأ الملف، ثم صِف التعديل الذي توصي به
SUBSCRIPTION_REQUIRED 403 هذه القدرة تخصّ خطط الاشتراك القراءة غير مقيّدة. اقرأ الملف، وقل بوضوح ما كنت ستغيّره، وللمؤلف أن ينفّذ التغيير أو أن يشترك فيدع الـ AI ينفّذه
INVALID_PATH 400 كتاب قديم من استوديو السيناريو، والكتابة وقعت خارج شجرة التخطيط اكتب تحت .script_studio/planning/ بدلًا من ذلك، أو سلّم الأمر إلى المؤلف
FOLDER_NOT_EMPTY 422 المجلد الذي طلبت حذفه ما زال فيه أشياء إن كنت تعني الشجرة كلها فعلًا، أعد الإرسال مع recursive: true. ليست مشكلة صلاحيات، بل مشكلة «ما طلبته أكبر من الذي قلته»

الرمزان 403 مختلفان عن قصد، لأن أحدهما يقول «الترقية تفتح هذا» والآخر يقول «لا شيء يفتح هذا». وبرمز واحد لا يستطيع الـ AI أن يميّز بين أن يذكر الاشتراك وأن يكفّ عن السؤال ويتحوّل إلى وصف التعديل بالكلمات.

الرفض هو الجواب

أخطاء MCP في Slima مكتوبة ليصلح الـ AI المشكلة من الرسالة وحدها، لا ليخمّن:

  • مُعرّف غير موجود ← الرسالة تسرد المُعرّفات الحقيقية
  • مستوى مكان غير موجود ← الرسالة تسرد المستويات الحقيقية
  • حقل من العملية «ب» أُرسل إلى العملية «أ» ← الرسالة تقول لمن يخصّ ذلك الحقل
  • slug دليل خاطئ ← الردّ يحمل قائمة الأدلة كاملة
  • intent أطول من اللازم ← الرسالة تشرح أنه يصير اسم الـ commit، فوجب أن يكون سطرًا واحدًا

وهذا يجعل القاعدة بسيطة: اقرأ الخطأ وافعل ما يقوله. الفشل مرةً يكلّف جولةً واحدة. أما التخمين مرةً ثانية فقد يكلّف بيانات المؤلف.

ما لا تفعله هذه البوابة

  • لا تجعل الملف للقراءة فقط. المؤلف يحرّره كما يشاء في التطبيق. هذا يوقف الكتابة الكاملة القادمة من الخارج فحسب.
  • لا تقيّد القراءة. الأنواع المهيكلة الخمسة كلها مقروءة، على أي حساب.
  • لا تمنع الإنشاء. create_file يعمل على تلك الامتدادات؛ يُتجاهَل المحتوى ويكتب الخادم هيكلًا فارغًا.
  • ليست خطوة مراجعة. التغييرات القادمة عبر MCP تتخطّى مراجعة البطاقة المتقطّعة، لكنها commits — ظاهرة تمامًا في سجل الإصدارات وقابلة للتراجع تمامًا.

الحذف يتبع قاعدة الكتابة نفسها

حذف ملف .map وتعديله يخضعان للبوابة ذاتها: كلاهما يخصّ خطط الاشتراك. قاعدةٌ واحدة أسهل في التذكّر، وهي تستبعد عبثًا حقيقيًا — أن يحذف وكيلُ حسابٍ مجاني ملفًا لم يكن يستطيع إنشاءه ولا تغييره.

كتب استوديو السيناريو القديمة

إن كان لديك واحد منها، فهو يتبع مجموعة قواعد منفصلة قائمة على المسارات: المنطقة الوحيدة القابلة للكتابة هي شجرة .script_studio/planning/، بينما series.json و*.character و*.scene و*.storyline و*.note و*.location كلها للقراءة فقط عبر MCP، وكذلك علامة .script_studio/planning/.initialized.

شجرة التخطيط تلك هي مكان مسوّدات الـ AI: المخطّطات، وملاحظات البحث، والمقترحات. ولتغيير مشهد نفسه، اكتب المقترح هناك ودع المؤلف يطبّقه في التطبيق. ولمعرفة قواعد كتاب بعينه بدقة، اقرأ المورد slima://books/{book_token}/schema — انظر استعلام مخطّط الكتاب عبر المورد.

ذات صلة

جرّبه في Slima

افتح التطبيق وطبّق الخطوات على كتابك. ابدأ مجانًا، من دون بطاقة ائتمان.

افتح Slima
هل كان هذا مفيدًا؟