Mkhlab arabic-code-review

مراجعة كود عربي — راجع الكود مع فحص التعامل مع النصوص العربية وRTL والتعليقات العربية. استخدم عندما يطلب المستخدم مراجعة كود يتعامل مع العربي.

install
source · Clone the upstream repo
git clone https://github.com/Moshe-ship/mkhlab
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Moshe-ship/mkhlab "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/arabic-code-review" ~/.claude/skills/moshe-ship-mkhlab-arabic-code-review-a46103 && rm -rf "$T"
manifest: skills/arabic-code-review/SKILL.md
source content

مراجعة الكود العربي

مراجعة متخصصة للكود الذي يتعامل مع النصوص العربية.

الفحوصات

1. ترميز Unicode

  • هل الملفات محفوظة بـ UTF-8?
  • هل يتعامل مع BOM بشكل صحيح?
  • هل يعالج الحروف المركبة (combining characters)?

2. اتجاه النص (RTL)

  • هل يستخدم
    dir="rtl"
    في HTML?
  • هل CSS يستخدم
    direction: rtl
    و
    text-align: right
    ?
  • هل يستخدم Logical Properties (
    margin-inline-start
    بدل
    margin-left
    )?
  • هل الأيقونات والأسهم معكوسة؟

3. معالجة النصوص العربية

  • هل يتعامل مع التشكيل بشكل صحيح?
  • هل يعمل regex مع العربي? (
    \p{Arabic}
    بدل
    [a-zA-Z]
    )
  • هل الفرز (sorting) يستخدم
    Intl.Collator('ar')
    ?
  • هل البحث يطبّع الألف/الياء (أ/إ/آ → ا، ي → ى)?

4. الأرقام

  • هل يدعم الأرقام العربية (٠١٢٣٤٥٦٧٨٩)?
  • هل يستخدم
    toLocaleString('ar')
    للتنسيق?
  • هل التاريخ يدعم التقويم الهجري?

5. أخطاء شائعة

// ❌ خطأ: ما يشمل العربي
const isLetter = /[a-zA-Z]/.test(char);

// ✅ صح: يشمل كل اللغات
const isLetter = /\p{Letter}/u.test(char);

// ❌ خطأ: طول النص مع التشكيل
const len = text.length; // يحسب الحركات كحروف

// ✅ صح: تطبيع ثم حساب
const len = text.normalize('NFC').replace(/[\u064B-\u065F]/g, '').length;

// ❌ خطأ: فرز عربي
names.sort();

// ✅ صح: فرز بالعربي
names.sort(new Intl.Collator('ar').compare);

// ❌ خطأ: بحث بدون تطبيع
text.includes("محمد");

// ✅ صح: تطبيع الألف والتاء المربوطة
function normalizeArabic(t) {
  return t.replace(/[أإآ]/g, 'ا').replace(/ة/g, 'ه').replace(/ى/g, 'ي');
}
normalizeArabic(text).includes(normalizeArabic("محمد"));

صيغة المراجعة

🔎 مراجعة الكود العربي:

#الملفالمشكلةالخطورةالإصلاح
1file.js:12regex لا يدعم العربيعاليةاستخدم
\p{Letter}
...

التقييم: [X/10] جاهزية عربية

متى تستخدم

  • المستخدم يبني تطبيق عربي أو ثنائي اللغة
  • يطلب مراجعة كود يتعامل مع نصوص عربية
  • يسأل "هل الكود يدعم العربي بشكل صحيح?"