كيف توفّر 70% من توكنات Claude عبر وصول موجّه إلى الكود
أنشأ مطوّر أداة باستخدام PHP + SQLite لتحسين Claude Code عند العمل على المشاريع الكبيرة. يبني سكربتان، buildGraph وclaudeSearch، مخطط اعتماديات المشروع ويمنحان

قام أحد المطورين بإنشاء أداة توفر 70% من نافذة السياق الخاصة بـ Claude عند العمل مع المشاريع الكبيرة. بدلاً من قراءة الملفات بالكامل، يحصل وكيل الذكاء الاصطناعي على وصول موجه إلى الكود المطلوب — بالضبط ما يلزم للمهمة.
المشكلة: السياق الثمين يُهدر
يعرف Claude Code معمارية المشروع من CLAUDE.md ويفهم المسؤوليات المخصصة لكل ملف. لكن في الممارسة العملية، لا يزال الوكيل يقرأ الملفات بالكامل. إذا احتاج إلى طريقة واحدة — يقرأ الفئة بأكملها مع جميع طرقها. إذا احتاج إلى إيجاد مكان استدعاء الدالة — يقرأ مجلداً تلو الآخر بحثاً عن الأنماط. ينضب السياق بسرعة، ولم يتم إنجاز أي عمل مفيد حتى الآن.
السيناريو النمطي: يطلب المطور من Claude البحث عن حقل في كيان ما. يفتح الوكيل الملف بالكامل، بينما يحتاج فقط إلى أول 20 سطراً تحتوي على أوصاف الحقول والمُنشئ. أو أبسط: فهم هيكل العلاقات بين جداول قاعدة البيانات. يقرأ Claude ملفات SQL بالكامل، بينما كانت أسماء الجداول والمفاتيح كافية للإجابة.
النافذة السياقية هي المورد الأساسي عند العمل مع الذكاء الاصطناعي في المشاريع الكبيرة. من أصل 200K رمز، قد يُصرف 100K على قراءة كود كان يمكن الحصول عليه بذكاء أكثر.
الحل: رسم البيانات للتبعيات والوصول الموجه
أنشأ المطور نصي PHP يعملان معاً:
buildGraph.php — يفحص المشروع مرة واحدة وينشئ رسم بيانات للتبعيات في SQLite. يحلل كود PHP و JavaScript: يستخرج الفئات والطرق والدوال والاستيرادات وسلاسل الوراثة. التنفيذ تدريجي — في التشغيلات اللاحقة، يحدث فقط الملفات التي تغيرت. يستغرق هذا 100–200 ميلي ثانية لمشروع متوسط الحجم.
claudeSearch.php — واجهة سطر أوامر للوكلاء. بأمر واحد، يوفر Claude بالضبط ما يحتاجه:
- طريقة فئة معينة مع التوقيع والنص
- جميع الحقول والمُنشئ الخاص بالفئة
- سلسلة الوراثة بأكملها للكيان
- جميع استعلامات SQL لجدول معين
- قائمة بجميع استدعاءات الدوال عبر المشروع بأكمله
- التبعيات بين الوحدات
بدلاً من `Read(path/to/huge-file.php)`، يكتب Claude الآن `search("User", "fields")` ويحصل على 15 سطراً. بدلاً من قراءة ثلاثة مجلدات، يكتب `search("saveOrder()", "calls")` ويرى جميع الأماكن التي يُستخدم فيها هذا الأسلوب.
دعم اللغات والأداء
حالياً، تدعم الأداة بشكل كامل PHP و JavaScript. تمت إضافة دعم Go بالفعل. سيأتي دعم C لاحقاً. تعتبر سرعة التحليل حاسمة — يجب تحديث رسم البيانات بسرعة تعديل الكود من المطور. تحديثات تدريجية تحل هذه المشكلة: يحلل التمرير الأول المشروع بأكمله (قد يستغرق عدة ثوان على مستودع كبير)، وتحدث التمريرات اللاحقة الملفات المتغيرة فقط في 100–200 ميلي ثانية.
ما تقدمه عملياً
وفقاً لحسابات المطور، تقلل الأداة استهلاك الرموز بنسبة 70% لمشروع متوسط الحجم نموذجي. لا يعني هذا أن كل طلب فردي يوفر 70% — بل يعني أن السياق يُستخدم بكفاءة أعلى 3 مرات خلال جلسة تطوير واحدة. بدلاً من إنفاق 150K رمز على القراءة ثم 50K على العمل، يمكن للمطور إنفاق 70K على البحث و 80K على العمل.
تكون الأداة مفيدة بشكل خاص لمساعدات سطر الأوامر والروبوتات التي لا يمكنها رؤية نظام الملفات بنفسها. يصبح رسم البيانات مصدر الحقيقة حول بنية المشروع بالنسبة لهم.
ما يعنيه هذا
تشير الأداة إلى اتجاه: توسيع عمل Claude على المشاريع الكبيرة ليس فقط عن القرارات المعمارية و CLAUDE.md المكتوب بشكل جيد. ما يُحتاج إليه هو وصول ذكي إلى الكود. قراءة موجهة بدلاً من القراءة الكاملة. رسم بيانات بدلاً من نظام الملفات. عندما يصبح السياق قيداً، تحتاج إلى القراءة بناءً على ما تحتاجه فعلاً، وليس بناءً على حجم الكود.