الرسم البياني الموحد للسياق
يبني lean-ctx رسمًا بيانيًا موحدًا يربط الكود والالتزامات والاختبارات والمعرفة والمشكلات - مما يتيح توفير سياق واعٍ بالمهام وتحليل تأثير عميق.
أنواع العقد
يحتوي الرسم البياني على 8 أنواع من العقد تمثل جوانب مختلفة من مشروعك:
File ملفات المصدر التي يتتبعها المفهرس
Symbol الدوال والفئات والأنواع والمتغيرات
Module التجميعات المنطقية (الحزم والوحدات)
Commit التزامات Git مع الرسالة والبيانات الوصفية
Test دوال الاختبار وملفات الاختبار
CIRun تشغيلات خط أنابيب CI/CD والنتائج
Knowledge معرفة المشروع من ctx_session
Issue المشكلات والتذاكر المرتبطة بالكود
أنواع الحواف
تمثل الحواف العلاقات بين العقد. يتتبع lean-ctx 11 نوعًا من الحواف:
| نوع الحافة | المعنى | مثال |
|---|---|---|
Imports | ملف يستورد ملفًا آخر | A.ts → B.ts |
Calls | دالة تستدعي دالة أخرى | fn_a → fn_b |
Defines | وحدة تعرّف رمزًا | mod → fn |
TestedBy | ملف يتم اختباره بملف اختبار | utils.rs → test_utils.rs |
ChangedIn | ملف تم تعديله في التزام | file → commit |
MentionedIn | ملف مذكور في حقيقة معرفية | file → knowledge |
Affects | مشكلة تؤثر على ملف | issue → file |
Breaks | التزام يكسر اختبارًا | commit → test |
إثراء الرسم البياني
يوسع الإثراء رسم الكود البياني ببيانات من Git والاختبارات والمعرفة.
مفهرس تاريخ Git
يحلل التزامات Git الأخيرة (افتراضي: آخر 500) وينشئ عقد Commit مع حواف ChangedIn.
مفهرس الاختبارات
يكتشف ملفات الاختبار حسب اتفاقية التسمية ويربطها بملفات المصدر.
جسر المعرفة
يربط حقائق معرفة المشروع بالملفات المرجعية.
أوامر MCP
ctx_graph enrich # Enrich graph with git, tests, knowledge
ctx_graph build # Index code structure
ctx_graph status # Show node/edge counts Community Detection (Louvain)
The Louvain algorithm clusters files into communities based on their dependency relationships. Files that frequently import each other or share transitive dependencies are grouped together, enabling smarter context preloading and relevance scoring for task-driven queries.
PageRank
Computes file importance scores based on the dependency graph structure. Files imported by many others (structural hubs) receive higher PageRank, which is used by Spectral Relevance and Boltzmann Allocation to prioritize high-impact files during context assembly.
استعلامات السياق
استخدم استعلامات السياق المبنية على الرسم البياني للعثور على الملفات الأكثر صلة بأي مهمة.
الاستخدام
ctx_graph context "fix auth bug" # Find relevant files for task
ctx_graph related src/auth.rs # Connected files
ctx_graph impact src/auth.rs # Blast radius analysis
ctx_graph symbol src/auth.rs::verify # Symbol definition/usages كيف يعمل
- يستخرج الكلمات المفتاحية من وصف المهمة
- يطابق الكلمات المفتاحية مع أسماء الملفات ورسائل الالتزام
- يوسع النتائج عبر حواف الرسم البياني
- يعيد قائمة مرتبة بالملفات ذات الصلة مع سياق العلاقة
تصدير HTML تفاعلي
صدّر رسم التبعيات كملف HTML واحد مستقل. الملف الناتج يعمل بالكامل دون اتصال - افتحه في أي متصفح لاستكشاف قاعدة الكود بصرياً. لا حاجة لخادم، لا تبعيات، مجرد ملف HTML واحد.
الاستخدام
# Export full graph (all nodes)
lean-ctx graph export-html --out graph.html
# Limit to 100 most-connected nodes
lean-ctx graph export-html --out graph.html --max-nodes 100
# Custom project root
lean-ctx graph export-html --out graph.html --root /path/to/project الميزات التفاعلية
Search اكتب أي جزء من مسار الملف لتمييز العقد المطابقة فوراً
Pan & Zoom انقر واسحب للتحريك، مرر للتكبير. يعمل كخريطة.
Node Details انقر على أي عقدة لرؤية وارداتها ومعتمديها في الشريط الجانبي
Reverse Deps انقر بزر الماوس الأيمن على عقدة لتمييز جميع الملفات التي تعتمد عليها (تجاوز BFS)
PNG Export حمّل عرض اللوحة الحالي كصورة PNG بنقرة واحدة
Offline لا تبعيات خارجية. التطبيق بأكمله مضمّن في ملف HTML واحد.
نصائح
- استخدم --max-nodes للحفاظ على قابلية قراءة التصور للمشاريع الكبيرة (50–200 نطاق جيد)
- شغّل graph build أولاً لضمان تحديث الفهرس قبل التصدير
- ملف HTML آمن للمشاركة مع الزملاء - لا يحتوي على كود مصدري، فقط مسارات الملفات والعلاقات
- تمييز النقر بالزر الأيمن يعرض سلسلة التبعية العكسية الكاملة، مما يسهل تقييم نطاق تأثير التغييرات
واجهة لوحة المعلومات
| نقطة النهاية | الوصف |
|---|---|
/api/graph/stats | عدد العقد والحواف ومسار قاعدة البيانات |
/api/graph/enrich | تشغيل إثراء كامل للرسم البياني وإرجاع الإحصائيات |