صفاءSAFAA.IO
MODsafaa-dashboardكلمة التعليق: MOD

Dashboard

ماذا يفعل
لوحة جانبية داخل Claude Code: تكتب ‎/today فتنفتح وفيها منشورات اليوم، وأين وصل كل منشور: Script، وRender، والمراجعة، والنشر.
لمن
من ينشر محتوى بانتظام ويعمل في Claude Code، ويريد أن يرى حالة منشورات اليوم في مكان واحد.
متى تستعمله
عندما تجهّز أكثر من منشور في اليوم، وتريد أن تعرف أين وصل كل منشور دون أن تفتح كل ملف.
النتيجة
لوحة تقرأ ملفاً واحداً في مشروعك وتتحدّث وحدها خلال 3 ثوانٍ كلما عدّلته، وسطر حالة تحت الـPrompt بعدد ما نُشر وما هو جاهز. تقرأ فقط: لا تكتب ملفاً، ولا تنشر، ولا تراسل أحداً.

اقرأ قبل التشغيل

SAFETYالـMod يعمل بصلاحياتك، وليس في عزل (Sandbox). يقول الدليل الرسمي إن الـMod يستطيع أن يقرأ ملفاتك ويكتبها، ويشغّل برامج، ويتصل بالإنترنت. لذلك اقرأ الكود قبل أن تشغّله، وثبّت Mods من مصدر تثق به فقط. هذا الـMod يقرأ ملفاً واحداً فقط، والأمر claude plugin validate يعرض لك كل ما يستدعيه.

كيف تستعمله

  1. نزّل الملف وفك الضغط، واقرأ الكود في hooks/register.tsx، ثم شغّل هذا الأمر ليعرض لك كل ما يستدعيه الـMod: claude plugin validate safaa-dashboard
  2. في مجلد مشروعك، انسخ ملف المثال example/today.json إلى content/today.json، واكتب فيه منشوراتك.
  3. شغّل Claude Code من مجلد مشروعك بهذا الأمر، ثم اكتب /today: claude --plugin-dir /path/to/safaa-dashboard
  4. عدّل حالة أي منشور في الملف واحفظه، فتتحدّث اللوحة خلال 3 ثوانٍ. التفاصيل في ملف README داخل المجلد.
  5. للإيقاف: عطّله من تبويب Installed في /plugin، أو شغّل Claude Code بالخيار --safe-mode

نزّل الـMod

يحتاج Claude Code إصدار 2.1.287 أو أحدث في الـTerminal. ملف zip واحد فيه الكود وملف مثال وشرح بالعربية، وكل الملفات مفتوحة على GitHub.

TESTED · n=1نجح الفحص claude plugin validate، وtsc بلا أخطاء، و3 من 3 اختبارات، وتشغيل حي واحد في الـTerminal على Claude Code 2.1.300، ثم 2.1.301 لهذه النسخة (n=1). لم يُجرَّب في تطبيق Desktop ولا في VS Code. نتائج الفحص كاملة
التفاصيل كاملة، كما في المستودع

ماذا يفعل: Mod لـClaude Code. تكتب ‎/today فتنفتح لوحة جانبية فيها منشورات اليوم، وأين وصل كل منشور: Script، وRender، والمراجعة (Advisor)، والنشر.
البيانات من ملف واحد في مشروعك: content/today.json. تعدّل الملف بيدك، فتتحدّث اللوحة وحدها خلال 3 ثوانٍ.

لمن: من ينشر محتوى بانتظام ويعمل في Claude Code، ويريد أن يرى حالة منشورات اليوم دون أن يفتح كل ملف.

اقرأ هذا أولاً

الـMod كود يعمل داخل Claude Code بصلاحياتك، وليس في عزل (Sandbox). يقول الدليل الرسمي:
"Mods aren't sandboxed." و"A mod is code that runs with your permissions. It can read and write your files, start processes, and make network requests."

لذلك اقرأ الكود قبل أن تشغّله. الكود كله في ملف واحد: hooks/register.tsx.
وشغّل هذا الأمر، فيعرض لك كل ما يستدعيه الـMod:

claude plugin validate safaa-dashboard

هذا الـMod يقرأ فقط. في فحصنا ظهرت هذه الاستدعاءات وحدها: clock.every وclock.now وcommand.register وfs.read وstate.get/set وui.open وui.resolve وui.status. لا يكتب ملفاً، ولا يتصل بالإنترنت، ولا يشغّل برامج، ولا ينشر، ولا يراسل أحداً.

المتطلبات

  • Claude Code إصدار 2.1.287 أو أحدث في الـTerminal (من الدليل الرسمي). تحقق بالأمر: claude --version
  • جرّبناه في الـTerminal فقط. لم نجرّبه في تطبيق Desktop ولا في VS Code.

التثبيت

  1. نزّل safaa-dashboard.zip وفك الضغط، فيظهر مجلد safaa-dashboard.
  2. اقرأ الكود وشغّل claude plugin validate كما في الأعلى.
  3. في مجلد مشروعك، أنشئ ملف البيانات من المثال:
    bash mkdir -p content cp /path/to/safaa-dashboard/example/today.json content/today.json

  4. شغّل Claude Code من مجلد مشروعك مع الـMod:
    bash claude --plugin-dir /path/to/safaa-dashboard

  5. اكتب ‎/today فتنفتح اللوحة. وتحت الـPrompt سطر حالة مثل: «اليوم: 0/3 نُشر · 1 جاهز».

يظهر الـMod في ‎/plugin باسمه الداخلي safaa-today.

أين يقرأ الملف

المسار content/today.json نسبي للمجلد الذي شغّلت منه Claude Code. إذا شغّلته من مجلد آخر، تقول اللوحة: content/today.json not found.
تريد مساراً آخر؟ غيّر هذا السطر في hooks/register.tsx:

const FILE = 'content/today.json'

كيف تعدّل الحالات

افتح content/today.json وعدّل الحقول، ثم احفظ. اللوحة تقرأ الملف كل 3 ثوانٍ.

الحقل القيم
date تاريخ اليوم، يظهر في أعلى اللوحة
id اسم قصير لا يتكرر لكل منشور
title عنوان المنشور
kind نوعه، مثل Reel أو Carousel
script وrender todo أو draft أو done
advisor todo أو pass أو fail، ومعه score رقم اختياري
posted true بعد أن تنشر بنفسك فقط

العلامات في اللوحة: ● تم، ◐ مسودة، · لم يبدأ، ✕ لم ينجح.
المنشور «جاهز» في سطر الحالة عندما يكون advisor = pass وrender = done ولم يُنشر بعد.
إذا كان في الملف خطأ في صيغة JSON، تعرض اللوحة رسالة الخطأ بدل المنشورات.

الإيقاف

  • من تبويب Installed في ‎/plugin: عطّل الـMod أو احذفه.
  • أو شغّل Claude Code بالخيار ‎--safe-mode، فلا يعمل أي Mod في تلك الجلسة.

للمطوّرين

  • الاختبارات: claude plugin test safaa-dashboard (3 اختبارات في tests/).
  • فحص الأنواع: tsc -p safaa-dashboard --noEmit. يحتاج ملفات الأنواع التي يكتبها Claude Code في .claude-plugin/types/ عندما يحمّل الـMod أول مرة، وهي ليست داخل الـzip.

حالة الاختبار

claude plugin validate نجح، وtsc بلا أخطاء، وclaude plugin test نجح 3 من 3، وتشغيل حي واحد في الـTerminal (n=1). التفاصيل وما لم يُجرَّب في نتائج الفحص.

المصدر: دليل Claude Code الرسمي، صفحتا Mods (قُرئتا في 15 أكتوبر 2026):
https://code.claude.com/docs/en/plugins/mods/overview
https://code.claude.com/docs/en/plugins/mods/create

من SAFAA.IO · رخصة MIT