ٹرمینل AI کے لیے خودکار اپ ڈیٹ ہونے والا نالج بیس

میں اپنا زیادہ تر دن ٹرمینل میں ایک AI کوڈنگ اسسٹنٹ کے ساتھ گزارتا ہوں۔

میں اکثر ایک سیشن کے دوران مشکل مسائل حل کرتا ہوں۔ مجھے کوئی پیچیدہ حل یا کوئی مخصوص کنفیگ سیٹنگ مل جاتی ہے۔ پھر میں ٹیب بند کر دیتا ہوں اور وہ معلومات غائب ہو جاتی ہیں۔ ایک ماہ بعد، میں بالکل وہی مسئلہ دوبارہ حل کرتا ہوں۔

میں نے Claude Code hooks کا استعمال کرتے ہوئے ایک ایسا سسٹم بنایا ہے تاکہ میرا اسسٹنٹ اپنے نوٹس خود برقرار رکھ سکے۔

یہ سسٹم تین حصوں پر مشتمل ہے:

  • سیاق و سباق (context) فراہم کرنے کے لیے ہر پرامپٹ پر ایک چھوٹے Markdown نالج بیس کو تلاش کرنا۔
  • سیشن ختم ہونے پر مفید نوٹس محفوظ کرنا۔
  • سیشن شروع ہوتے وقت انڈیکس لوڈ کرنا۔

یہاں بتایا گیا ہے کہ اسے اپنے ورک فلو کو سست کیے بغیر کیسے بنایا جائے۔

  1. معلومات حاصل کرنے کے لیے UserPromptSubmit کا استعمال کریں

یہ hook ہر بار چلتا ہے جب آپ کوئی پرامپٹ بھیجتے ہیں۔ یہ آپ کی تحریر وصول کرتا ہے اور ماڈل کے جواب دینے سے پہلے سیاق و سباق شامل کر سکتا ہے۔

ماڈل کو یہ فیصلہ نہ کرنے دیں کہ اسے آپ کے نوٹس کب دیکھنے ہیں۔ متعلقہ فائلیں تلاش کرنے کے لیے grep جیسی تیز سرچ کا استعمال کریں۔ صرف بہترین پانچ نتائج شامل کریں۔ اس سے عمل 100ms سے کم وقت میں مکمل رہتا ہے۔

سرچ hooks کے لیے دو اصول:

  • اسے سستا رکھیں۔ ابتدائی تلاش کے لیے LLM کے بجائے grep کا استعمال کریں۔
  • اسے مختصر رکھیں۔ صرف عنوانات اور فائل کے راستے (paths) شامل کریں۔ اگر ماڈل کو مزید تفصیل کی ضرورت ہو تو وہ فائل کھول سکتا ہے۔
  1. بھاری کاموں کے لیے Stop hook سے بچیں

Stop hook ہر بار چلتا ہے جب اسسٹنٹ جواب مکمل کرتا ہے۔ اگر آپ یہاں کوئی طویل کام چلائیں گے، تو آپ کا اسسٹنٹ سست ہو جائے گا۔ 30 مرحلوں والا ایک سیشن 30 بھاری کاموں کو ٹرگر کرے گا۔

اس کے بجائے، پورے سیشن کو ایک بار محفوظ کرنے کے لیے SessionEnd کا استعمال کریں۔

  1. SessionEnd کی حد کو حل کریں

SessionEnd نان بلاکنگ (non-blocking) ہے۔ اگر آپ یہاں کوئی طویل بیک گراؤنڈ ٹاسک شروع کرتے ہیں، تو سیشن بند ہوتے ہی سسٹم اسے ختم کر سکتا ہے۔

اس کا حل دو hooks کا استعمال کرنا ہے:

  • SessionEnd: ٹرانسکرپٹ کے راستے کو تیزی سے ایک کیو (queue) فائل میں شامل کریں۔
  • SessionStart: اس کیو کو خالی کریں اور بھاری کیپچر ٹاسک کو بیک گراؤنڈ میں چلائیں۔

چونکہ اگلا سیشن فعال ہوتا ہے، اس لیے بیک گراؤنڈ پروسیس جاری رہے گا۔

  1. لامتناہی لوپس (infinite loops) سے بچیں

جب آپ نوٹس لکھنے کے لیے ایک ہیڈ لیس (headless) AI شروع کرتے ہیں، تو یہ آپ کے ماحول (environment) کو ورثے میں لیتا ہے۔ اس کا مطلب ہے کہ نیا AI اپنے خود کے hooks کو ٹرگر کرے گا۔ اس سے AI کالز کا ایک لامتناہی لوپ بن جاتا ہے۔

ہمیشہ اپنے اسکرپٹس کے شروع میں ایک ریکرشن گارڈ (recursion guard) شامل کریں:

[ -n "$KB_CAPTURE" ] && exit 0

جب آپ اپنا بیک گراؤنڈ کیپچر ٹاسک شروع کریں تو KB_CAPTURE=1 سیٹ کریں۔

سیٹ اپ کا خلاصہ:

  • فوری سیاق و سباق شامل کرنے کے لیے UserPromptSubmit کا استعمال کریں۔
  • ٹاسکوں کو کیو (enqueue) کرنے کے لیے SessionEnd کا استعمال کریں۔
  • اصل کام کرنے کے لیے SessionStart کا استعمال کریں۔
  • پیسے بچانے کے لیے نوٹس کا خلاصہ کرنے کے لیے ایک سستا ماڈل استعمال کریں۔

ایک بار کسی مسئلے کو دوبارہ حل کرنے سے بچنا، بہت سے کیپچرز کے اخراجات پورے کر دیتا ہے۔

Source: https://dev.to/just_an_electron/a-self-updating-knowledge-base-for-my-terminal-ai-assistant-claude-code-hooks-28jb

Optional learning community: https://t.me/GyaanSetuAi