SSD Nodes Learn 🎉 VPS $5.50/ماہ سے
تعلیمی Matt Connorتحریر: Matt Connor

کتاب کو agent skill میں کیسے تبدیل کریں

PDF، EPUB یا اندرونی docs کو agent skill میں بدلیں جسے coding agent ضرورت پر لوڈ کرے۔ install، token budget، headless runs اور licensing سمیت مکمل طریقہ جانیں۔

ایک تکنیکی کتاب کو agent skill میں تبدیل کرنے سے کیا حاصل ہوتا ہے

تکنیکی کتاب کو agent skill میں تبدیل کرنے کے لیے converter کو PDF، EPUB، DOCX export یا اپنے پاس موجود اندرونی دستاویزات کے فولڈر پر چلائیں۔ یہ ایک skill directory بناتا ہے: ایک entry file جس میں نامزد frameworks اور chapters کا index ہوتا ہے، اور ہر chapter کے لیے ایک file ہوتی ہے جسے agent صرف اسی وقت پڑھتا ہے جب آپ کا سوال اس کا تقاضا کرے۔ کتاب context window میں شامل نہیں ہوتی۔ index شامل ہوتا ہے۔

یہ کام شروع سے agent skill لکھنے کے برعکس ہے، جہاں آپ پہلے سے معلوم procedure کو encode کرتے ہیں۔ یہاں knowledge موجود ہوتی ہے، لیکن کوئی اس تک رسائی حاصل نہیں کر سکتا: vendor کی 800 صفحات پر مشتمل PDF، یا ایسا handbook جسے لکھنے والا شخص ادارہ چھوڑنے کے بعد سے کھولا ہی نہ گیا ہو۔ اس کام میں compression اور indexing شامل ہیں۔ اگر skill کی اصطلاح آپ کے لیے نئی ہے تو پہلے agent skill کی اصل نوعیت پڑھیں۔

یہاں استعمال ہونے والا converter book-to-skill ہے، جو MIT-licensed skill ہے اور آپ کی اپنی machine پر چلتا ہے۔ August 2026 تک موجودہ tag v1.4.0 ہے۔ اس سے زیادہ اہم وہ structure ہے جو یہ تیار کرتا ہے، اور FAQ سے پہلے والا آخری section دکھاتا ہے کہ یہی structure دستی طور پر کیسے بنایا جائے۔

ٹوکن بجٹ ہی پورا ڈیزائن کیوں ہے

ایک context window میں چسپاں کی گئی کتاب ہر اس conversation میں اپنی مکمل جسامت کے برابر لاگت رکھتی ہے جس میں اسے درکار کیا جائے۔ کسی skill کی لاگت اس کی entry file ایک بار، اور اس کے علاوہ صرف وہ chapters ہیں جن سے سوال کا تعلق ہو۔ project اس سے بننے والی ہر file کے لیے بجٹ مقرر کرتا ہے۔

ChartDocumented token budget per generated file, book-to-skill v1.4.0
The data behind this chart
[
  {
    "label": "SKILL.md entry file",
    "tokens": "4,000"
  },
  {
    "label": "One chapter file",
    "tokens": "1,000"
  },
  {
    "label": "glossary.md",
    "tokens": "1,500"
  },
  {
    "label": "patterns.md",
    "tokens": "2,000"
  },
  {
    "label": "cheatsheet.md",
    "tokens": "1,000"
  }
]

entry file، SKILL.md، کو 4,000 tokens تک محدود رکھا جاتا ہے۔ اس میں نامزد frameworks اور chapter index شامل ہوتے ہیں۔ ہر chapter file تقریباً 1,000 tokens کی ہوتی ہے اور disk پر اس وقت تک موجود رہتی ہے جب تک کوئی اسے طلب نہ کرے۔ supporting files کا معاملہ بھی ایسا ہی ہے: glossary.md کے لیے 1,500 tokens، patterns.md کے لیے 2,000، اور cheatsheet.md کے لیے 1,000۔

یہ بجٹ اس بات کے مطابق ہیں کہ Claude Code حقیقت میں context کیسے استعمال کرتا ہے۔ کسی skill کا description skill listing میں رہتا ہے، تاکہ model کو معلوم ہو کہ skill موجود ہے۔ skill invoke ہونے پر اس کا body load ہوتا ہے، اور load ہونے کے بعد session کے باقی حصے میں context میں رہتا ہے۔ اس لیے entry file کی ہر سطر بار بار آنے والی لاگت بنتی ہے۔ supporting files صرف اس وقت load ہوتی ہیں جب agent انہیں پڑھتا ہے۔ یہی per-chapter files کو کم لاگت بناتا ہے۔

entry-file کے اس عدد کے پیچھے ایک سخت حد بھی ہے۔ جب auto-compaction ایک طویل conversation کا خلاصہ بناتی ہے، تو Claude Code summary کے بعد ہر skill کی حالیہ ترین invocation دوبارہ attach کرتا ہے۔ ہر re-attached skill کے پہلے 5,000 tokens رکھے جاتے ہیں، جبکہ تمام re-attached skills کے لیے مشترکہ بجٹ 25,000 tokens ہوتا ہے۔ 5,000 tokens کے اندر آنے والی entry file compaction کے بعد مکمل محفوظ رہتی ہے۔ 20,000-token کی entry file اپنے پہلے quarter کے ساتھ واپس آتی ہے، اور آپ کو یہ معلوم نہیں ہوتا کہ باقی تین quarters میں سے کون سے حصے غائب ہوئے۔

یہ progressive disclosure ہے: ایک چھوٹا index جو ہمیشہ اپنی لاگت کے قابل رہتا ہے، جبکہ زیادہ تر مواد ایک ایسے دروازے کے پیچھے رکھا جاتا ہے جسے agent اپنی ضرورت کے وقت کھولتا ہے۔ Claude Code اپنی context window کا انتظام کیسے کرتا ہے اس accounting کی باقی تفصیل بیان کرتا ہے۔

اپنے VPS پر converter انسٹال کریں اور اسے ایک release پر pin کریں

یہ skill ایک git repository ہے۔ اسے اپنے استعمال کردہ agent کی skills directory میں clone کریں۔ directory کا نام slash command بن جاتا ہے، اس لیے clone path محض پسند کا معاملہ نہیں ہے۔

git clone --depth 1 --branch v1.4.0 \
  https://github.com/virgiliojr94/book-to-skill.git \
  ~/.claude/skills/book-to-skill

--branch ایک tag قبول کرتا ہے، اس لیے یہ v1.4.0 checkout کرتا ہے اور اس کے بعد کی کوئی چیز نہیں لیتا۔ اسے pin کریں، کیونکہ skill ان instructions کا مجموعہ ہے جن پر آپ کا agent عمل کرتا ہے، اور ان instructions میں غیر جائزہ شدہ تبدیلی اس چیز کو تبدیل کر دیتی ہے جو آپ کے server پر چلتی ہے۔ GitHub Copilot CLI اس کے بجائے ~/.copilot/skills/ پڑھتا ہے، جبکہ Amp ~/.agents/skills/ پڑھتا ہے۔

ایک one-line install بھی موجود ہے، npx skills add virgiliojr94/book-to-skill، جو موجودہ version fetch کرتا ہے۔ tool آزمانے کے لیے اسے استعمال کریں۔ جس چیز کو دوبارہ چلانا ہو، اس کے لیے pinned clone استعمال کریں۔

اب تصدیق کریں کہ اس machine پر کون سے extractors موجود ہیں:

cd ~/.claude/skills/book-to-skill
python3 scripts/extract.py --check

--check بتاتا ہے کہ کون سے extractors انسٹال ہیں، اور ہر missing extractor کے لیے install command دکھاتا ہے۔ اس package کے لیے Python 3.9 یا اس کے بعد کا version درکار ہے۔

اگر cloning کے بعد autocomplete میں /book-to-skill ظاہر نہ ہو تو اپنا agent restart کریں۔ Claude Code ان skill directories کو monitor کرتا ہے جو session شروع ہونے کے وقت موجود تھیں، اس لیے ~/.claude/skills/ جسے آپ نے دو منٹ پہلے بنایا ہے، ابھی monitor نہیں ہو رہا۔

آپ کو حقیقت میں کن extractors کی ضرورت ہے؟

Python کے علاوہ کسی چیز کی ضرورت نہیں، کیونکہ ہر format کے لیے standard-library fallback موجود ہے۔ یہ fallbacks کم مؤثر ہیں، اور چھوٹے server پر وقت ان extractors کو install کرنے میں ضائع ہوتا ہے جن کی آپ کو ضرورت ہی نہیں تھی۔

  • pdftotext، جو poppler-utils package کا حصہ ہے، text-heavy PDFs سنبھالتا ہے اور تقریباً فوراً کام کرتا ہے۔ اسے sudo apt install poppler-utils کے ذریعے install کریں۔
  • pypdf اور pdfminer.six PDF کے لیے Python fallbacks ہیں۔
  • docling technical PDFs کے لیے ہے، جن کی اصل قدر tables اور code listings میں ہوتی ہے۔ project کے مطابق اس میں فی page تقریباً 1.5 seconds لگتے ہیں۔
  • ebooklib، beautifulsoup4 کے ساتھ، EPUB کو درست طور پر پڑھتا ہے۔ ان کے بغیر tool stdlib کے zipfile reader پر واپس چلا جاتا ہے۔
  • python-docx DOCX پڑھتا ہے اور striprtf RTF پڑھتا ہے۔
  • MOBI اور AZW files کے لیے Calibre کا ebook-convert درکار ہے۔
  • ocrmypdf scanned book پر OCR (optical character recognition) چلاتا ہے۔ ایسی book میں text layer بالکل نہیں ہوتی۔

Ubuntu 24.04 پر سادہ pip3 install pypdf یہ error دکھا کر رک جاتا ہے:

error: externally-managed-environment

یہ broken pip نہیں ہے۔ Ubuntu اور Debian system Python کو apt کے زیر انتظام قرار دیتے ہیں، اس لیے pip اس میں packages لکھنے سے انکار کرتا ہے۔ دو طریقے کام کرتے ہیں۔ sudo apt install poppler-utils ایک binary install کرتا ہے اور اسے pip کی ضرورت نہیں ہوتی، جبکہ pdftotext زیادہ تر نثری PDFs کو خود ہی سنبھال لیتا ہے۔ Python extractors کے لیے virtual environment بنائیں اور اپنے agent کو اسی کے اندر سے start کریں، تاکہ skill جس python3 کو call کرتی ہے وہی وہ interpreter ہو جس میں packages install ہیں۔

python3 -m venv ~/.venvs/book-to-skill
source ~/.venvs/book-to-skill/bin/activate
pip install "$HOME/.claude/skills/book-to-skill[pdf,epub,docx]"
claude

repository میں pdf، epub، docx، rtf، technical اور all extras declare کیے گئے ہیں، جہاں technical، docling ہے۔ project کے install page پر pip install "book-to-skill[pdf,epub,docx]" بھی دکھایا گیا ہے، لیکن August 2026 تک یہ نام PyPI پر published نہیں ہے، اس لیے اوپر دیے گئے طریقے کے مطابق اپنی checkout سے install کریں۔

docling کو اس وقت تک شامل نہ کریں جب تک کسی book کو اس کی ضرورت نہ ہو۔ یہ machine learning stack install کرتا ہے، اس لیے چھوٹے plan پر اسے install کرنے سے پہلے free disk space چیک کریں۔

دستاویزات کے فولڈر پر چلائیں، headless موڈ سمیت

کمانڈ ایک فائل، ایک فولڈر، ایک quoted glob، یا بیک وقت متعدد paths لیتی ہے۔ اس کے بعد optional skill name دیا جا سکتا ہے۔ ایک directory میں رکھی جانے والی ہر چیز قابلِ استعمال ہے، جس میں RFC set بھی شامل ہے۔ RFC سے مراد request for comments ہے، یعنی وہ documents جو internet protocols کی تعریف کرتے ہیں۔

/book-to-skill ~/library/platform-docs/ platform-handbook
/book-to-skill "~/books/*.epub" my-library
/book-to-skill ~/papers/paper1.pdf ~/notes/export.txt unified-research

glob کو quote کریں تاکہ skill کے اسے دیکھنے سے پہلے shell اسے expand نہ کرے۔ کمانڈ کو کسی موجودہ skill directory پر چلانے سے نئے sources اسی skill میں شامل ہو جاتے ہیں، دوسرا skill نہیں بنتا۔

Interactive run آپ سے سوالات کرتا ہے۔ مواد technical ہے یا text-heavy، اس سے extractor کا انتخاب ہوتا ہے۔ آپ reference depth چاہتے ہیں یا study depth، اس سے ہر chapter کا budget طے ہوتا ہے۔ skill کا نام کیا ہونا چاہیے، اور اسے skills root میں کہاں رکھا جائے۔ Generation سے پہلے یہ token اور وقت کا تخمینہ بھی دکھاتا ہے، پھر آپ کی تصدیق کا انتظار کرتا ہے۔

Headless run میں ان سوالات کے جواب دینے والا کوئی شخص موجود نہیں ہوتا۔ User-invocable skills claude -p میں کام کرتی ہیں۔ Prompt string میں slash command شامل کریں، اور Claude Code run شروع ہونے سے پہلے اسے expand کر دیتا ہے۔ اس لیے سوالات کے جواب اسی prompt میں دیں۔

claude -p "/book-to-skill ~/library/platform-docs/ platform-handbook
The sources are technical. Use reference depth. Write the skill to
~/.claude/skills/. Do not publish it to GitHub. Proceed without asking me." \
  --allowedTools "Bash,Read,Write,Edit"

--allowedTools run کے لیے درکار tools کو پہلے سے approve کرتا ہے، کیونکہ terminal کے بغیر permission prompt ایسا run ہے جو کبھی مکمل نہیں ہوتا۔ --output-format json شامل کرنے سے نتیجے میں total_cost_usd آ جاتا ہے۔ یہ client-side estimate ہوتا ہے، آپ کے bill کا حصہ نہیں۔

Extraction کے دوران کوئی بھی model source کو پڑھنے سے پہلے تمام sources کو /tmp کے تحت ایک temporary work directory میں یکجا کیا جاتا ہے۔ Run کے آخری مرحلے میں یہ directory حذف کر دی جاتی ہے۔ اگر کسی source کی extraction ناکام ہو جائے تو اسے skip کر دیا جاتا ہے، تاکہ batch جاری رہ سکے۔ اس کا مطلب ہے کہ run کم files پڑھنے کے باوجود success report کر سکتا ہے۔ Final report میں file inventory کو folder میں موجود files سے ملائیں۔ Missing chapter عموماً missing source کی وجہ سے ہوتا ہے۔

Run کے لیے ایسا server منتخب کریں جسے agent کے حوالے کرنے میں آپ کو اطمینان ہو۔ VPS پر Claude Code محفوظ طریقے سے چلانا میں permissions سے متعلق پہلو بیان کیے گئے ہیں۔

آؤٹ پٹ کہاں جاتا ہے تاکہ آپ کا coding agent اسے تلاش کر سکے

تیار کردہ skill ایک skills root میں محفوظ ہوتی ہے۔ ان میں سے دو اہم ہیں۔

  • ~/.claude/skills/<skill-name>/ ذاتی ہوتا ہے اور اس مشین کے ہر project میں دستیاب رہتا ہے۔
  • .claude/skills/<skill-name>/ repository کے اندر رہتا ہے اور repository کے ساتھ منتقل ہوتا ہے۔

ان میں سے کسی ایک کے اندر SKILL.md، ایک chapters/ directory جس میں ہر chapter کے لیے ایک file، اور معاون files موجود ہوتی ہیں۔ directory کا نام command ہوتا ہے، اس لیے ~/.claude/skills/platform-handbook/ سے /platform-handbook ملتا ہے، اور آپ اس کے بعد کوئی topic یا سادہ سوال لکھ سکتے ہیں۔

root کا انتخاب سہولت کے بجائے licensing کی بنیاد پر کریں۔ جس skill کو آپ کی خریدی ہوئی book سے تیار کیا گیا ہو، وہ آپ کی personal directory میں ہونی چاہیے۔ جس skill کو آپ کی اپنی team کی لکھی ہوئی documentation سے تیار کیا گیا ہو، وہ repository میں ہونی چاہیے۔ اس کے بعد متعدد repositories میں ایک skill شیئر کرنا اگلا مسئلہ بن جاتا ہے۔

آپ کی شامل کردہ ہر skill کے ساتھ ایک لاگت بڑھتی ہے۔ ہر skill کی description skill listing میں رہتی ہے تاکہ model اس کے استعمال کا فیصلہ کر سکے، ہر entry کے لیے مشترکہ description text کو 1,536 characters تک محدود کیا جاتا ہے، اور پوری listing کے لیے بھی ایک budget ہوتا ہے۔ دس book skills کا مطلب ہے کہ دس descriptions اس budget کے لیے ایک دوسرے سے مقابلہ کرتی ہیں۔ جن skills کو آپ ہمیشہ نام سے call کرتے ہیں، ان کے generated frontmatter میں ایک line شامل کریں:

---
name: platform-handbook
description: Frameworks and chapter index from the internal platform handbook.
disable-model-invocation: true
---

disable-model-invocation: true کے ساتھ description context سے مکمل طور پر باہر رہتی ہے، جبکہ /platform-handbook ٹائپ کرنے پر skill پھر بھی مکمل طور پر load ہو جاتی ہے۔ اس طرح automatic discovery ختم ہو جاتی ہے، لیکن context window زیادہ صاف رہتی ہے۔

لائسنس: MIT converter کا احاطہ کرتا ہے، کتاب کا نہیں

اس بارے میں بالکل واضح رہیں، کیونکہ یہاں خرابی تکنیکی نہیں ہے۔

  • MIT license converter کے code اور اس کی skill definition کا احاطہ کرتا ہے۔ یہ اس document کے بارے میں کچھ نہیں کہتا جو آپ اسے دیتے ہیں۔
  • اپنی خریدی ہوئی کتاب کو اپنے زیرِ اختیار hardware پر converter کے ذریعے چلانا، اپنی copy سے notes بنانا ہے۔
  • نتیجہ publish کرنا distribution ہے، اور tool کا MIT license آپ کو کسی دوسرے کی کتاب سے ماخوذ مواد distribute کرنے کا حق نہیں دیتا۔
  • Output ایک derivative work ہے۔ Frameworks اور chapters کے takeaways بھی source سے تشکیل پاتے ہیں، اور derivative work اب بھی source کے copyright کے تابع ہوتا ہے۔
  • جس material کو آپ redistribute نہیں کر سکتے، اس سے بنائی گئی skill اسی machine پر رہتی ہے جس نے اسے بنایا ہے۔ یہ public repository یا shared team marketplace کے لیے نہیں ہے۔
  • Source آپ کی ملکیت ہو یا openly licensed ہو تو publish کریں: مثلاً آپ کی team کی لکھی ہوئی documentation، یا ایسا standard جس کی terms redistribution کی اجازت دیتی ہوں۔

Tool اسی اصول کے مطابق بنایا گیا ہے۔ اس میں کسی کتاب کا content شامل نہیں ہوتا، extraction مقامی طور پر چلتی ہے، اور اس کا publish step repository visibility کو ایک الگ سوال کے طور پر پوچھتا ہے۔ یہ سوال صرف عین لفظ public یا private قبول کرتا ہے، کسی option کا اندازہ نہیں لگاتا۔ اس prompt کو licensing decision سمجھیں، کیونکہ حقیقتاً یہ وہی فیصلہ ہے۔

Internal handbooks میں ایک دوسرا مسئلہ بھی ہوتا ہے۔ ان میں credentials اکثر لوگوں کے اعتراف سے زیادہ موجود ہوتے ہیں، اور converter ایسی PDF کو، جسے کوئی نہیں کھولتا، ایسی file میں بدل دیتا ہے جسے آپ کا agent ضرورت کے وقت پڑھ سکتا ہے۔ Generated files کو commit کرنے سے پہلے ایک بار پڑھیں، اور اپنے AI agents سے secrets باہر رکھنے کا طریقہ دیکھیں۔

ایک conversion کی لاگت کتنی ہے؟

ذیل کے اعداد و شمار ہماری پیمائش کے بجائے project کی شائع کردہ اپنی پیمائش پر مبنی ہیں۔

ChartCost to convert one full-length book, as published by the project
The data behind this chart
[
  {
    "label": "Think Python 2",
    "cost_usd": 0.88
  },
  {
    "label": "Working Backwards",
    "cost_usd": 0.96
  },
  {
    "label": "Pro Git",
    "cost_usd": 1.23
  },
  {
    "label": "Moby-Dick",
    "cost_usd": 1.42
  }
]

project کی جانب سے ناپی گئی 4 books میں، ایک conversion کی لاگت 0.88 سے 1.42 US dollars کے درمیان رہی، جبکہ Pro Git کے لیے یہ لاگت 1.23 تھی۔ یہ اعداد و شمار Claude Sonnet 4.5 پر ناپے گئے۔ token counts tiktoken سے حاصل کیے گئے، cl100k_base استعمال کیا گیا، اور یہ اعداد project کے docs/performance.md میں August 2026 تک شائع ہیں۔ آپ کی اپنی لاگت آپ کے model اور prices کے مطابق بدلے گی۔

project یہ بھی دستاویز کرتا ہے کہ skill سے ایک سوال کا جواب دینے کے لیے پورے book کو context میں paste کرنے کے مقابلے میں 24 سے 51 گنا کم tokens درکار ہوتے ہیں۔ اسے saving کی عمومی صورت سمجھیں، ضمانت نہ سمجھیں، کیونکہ اس کا انحصار book اور سوال دونوں پر ہے۔ بنیادی structural نکتہ بہرحال برقرار رہتا ہے: conversion کی ادائیگی ایک بار ہوتی ہے، جبکہ context dump کی ادائیگی ہر اس conversation میں دوبارہ ہوتی ہے جس میں book درکار ہو۔

PDF paste کرنے یا RAG index بنانے کے بجائے کیا کریں؟

ایک سوال اور ایک دستاویز کے لیے paste کرنا مؤثر ہے، اور یہی درست طریقہ ہے۔ لیکن جب اسی کتاب کی منگل کو اور پھر جمعہ کو ضرورت پڑے تو یہ طریقہ مناسب نہیں رہتا، کیونکہ ہر بار اس کا پورا حجم استعمال ہوتا ہے۔

Retrieval، یا RAG (retrieval augmented generation)، query کے وقت تلاش کرتا ہے اور آپ کے الفاظ سے مطابقت رکھنے والے اقتباسات واپس کرتا ہے۔ جب آپ کو عین متعلقہ جملہ درکار ہو تو یہ طریقہ مؤثر ہے۔ لیکن جب مفید معلومات پورے chapter میں پھیلے ہوئے کسی framework کی صورت میں ہوں تو یہ کم مؤثر ہے، کیونکہ کوئی ایک اقتباس اسے مکمل طور پر شامل نہیں کرتا۔ Skill یہ extraction conversion کے وقت ایک بار انجام دیتا ہے اور اقتباسات کے بجائے structure محفوظ کرتا ہے۔

حقیقت پسندانہ حد یہ ہے کہ generated skill ایک model کی تیار کردہ، کچھ معلومات کھو دینے والی summary ہوتی ہے۔ یہ مطالعے میں مدد دیتی ہے، لیکن اصل ماخذ بدستور اصل ماخذ رہتا ہے۔ جب عین الفاظ کی قانونی یا protocol اہمیت ہو تو PDF محفوظ رکھیں اور اسی سے quote کریں۔ Skills کا MCP servers اور rules files کے ساتھ تقابل میں بتایا گیا ہے کہ ہر طریقہ کہاں موزوں ہے۔

خرابی کے طریقے اور نظر آنے والے strings

Scanned PDF سے کچھ حاصل نہیں ہوتا۔ Extractor ابتدائی صفحات میں text layer تلاش کرتا ہے۔ اگر یہ layer موجود نہ ہو تو 400 صفحات کی images پر کارروائی جاری رکھنے کے بجائے وضاحت کے ساتھ رک جاتا ہے۔ پہلے ocrmypdf input.pdf output.pdf چلائیں، پھر اس کی output file فراہم کریں۔

pip انسٹال کرنے سے انکار کرتا ہے۔ Ubuntu 24.04 پر error: externally-managed-environment system Python کو محفوظ رکھنے کے لیے apt کی عائد کردہ پابندی ہے۔ اوپر بیان کردہ virtual environment استعمال کریں، یا poppler-utils انسٹال کریں اور pip کو مکمل طور پر چھوڑ دیں۔

Chapters غلط نکلتے ہیں۔ Chapter detection واضح headings تلاش کرتا ہے، جیسے Chapter 7 اور اس کی مختلف زبانوں والی صورتیں۔ اگر کتاب میں صرف section titles یا roman numerals استعمال ہوئے ہوں تو chapters کی تقسیم غلط ہو سکتی ہے۔ اس کا حل یہ ہے کہ run کو بتایا جائے کہ chapters کہاں سے شروع ہوتے ہیں، بجائے اس کے کہ detection پر انحصار کیا جائے۔

Command موجود نہیں ہے۔ Autocomplete میں /book-to-skill کا نہ آنا ظاہر کرتا ہے کہ skills directory آپ کا session شروع ہونے کے بعد بنائی گئی تھی۔ Agent restart کریں۔

Docling بہت زیادہ وقت لیتا ہے۔ تقریباً 1.5 seconds فی page کی رفتار سے یہ طویل کتاب کے لیے کئی minutes کا CPU time لے سکتا ہے۔ Shared server پر یہ run آپ کی میزبانی میں موجود دیگر تمام services کے وسائل کے لیے مقابلہ کرتا ہے۔ جب run content type کے بارے میں پوچھے تو "text-heavy" کا جواب دیں، یا --mode text استعمال کریں جب آپ خود scripts/extract.py چلا رہے ہوں۔ --mode technical وہ جواب ہے جو docling منتخب کرتا ہے۔

کوئی source خاموشی سے غائب ہو جاتا ہے۔ جس file کو پڑھا نہ جا سکے اسے skip کر دیا جاتا ہے تاکہ batch مکمل ہو سکے۔ اس کے بعد run آپ کی فراہم کردہ sources سے کم تعداد پر success رپورٹ کرتا ہے۔ اس کا واحد ریکارڈ final report میں موجود file inventory دکھاتی ہے۔

یہی طریقہ دستی طور پر اپنائیں

یہ tool سہولت فراہم کرتا ہے۔ اصل اہمیت structure کی ہے، اور text editor آپ کے زیرِ ملکیت کسی بھی reference material کے لیے یہی structure بنا سکتا ہے۔

  1. ایک entry file لکھیں اور اسے تقریباً 4,000 tokens کے قریب رکھیں، جتنے tokens converter ہدف بناتا ہے۔ اس میں named concepts کو ان کی exact formulations کے ساتھ شامل کریں، اور ایک index بھی رکھیں جس میں ہر detail file اور اس میں موجود topics کی فہرست ہو۔
  2. مواد کو تقریباً 1,000 tokens کی files میں تقسیم کریں۔ ہر file میں ایک topic رکھیں، اور نام ایسا رکھیں کہ صرف filename دیکھ کر معلوم ہو جائے کہ اس میں کیا ہے۔
  3. entry file میں ان تمام files کی وضاحت کریں، اس جملے میں جو بتاتا ہے کہ انہیں کب پڑھنا ہے۔

Step 3 وہ مرحلہ ہے جسے لوگ چھوڑ دیتے ہیں، اور یہی مرحلہ اس طریقے کو مؤثر بناتا ہے۔ agent یہ فیصلہ index پڑھ کر کرتا ہے کہ کون سی file کھولنی ہے۔ اس لیے جس file کی index میں وضاحت نہ ہو، agent اسے کبھی نہیں کھولتا۔ index اصل product ہے، جبکہ chapter files storage ہیں۔

entry file کو compaction budget کے اندر رکھیں، تو پوری structure طویل session کے دوران برقرار رہتی ہے۔ یہ اصول اس وقت بھی لاگو ہوتا ہے جب files converter نے لکھی ہوں، اور اس وقت بھی جب آپ نے خود لکھی ہوں۔

FAQ

کیا میں اپنی خریدی ہوئی کتاب سے تیار کردہ skill شائع کر سکتا ہوں؟

نہیں، جب تک اس کتاب کا license دوبارہ تقسیم کی اجازت نہ دے۔ converter کا MIT license صرف converter کے code پر لاگو ہوتا ہے، اس مواد پر نہیں جو آپ اسے فراہم کرتے ہیں، اور تیار کردہ skill کتاب کا derivative work ہوتا ہے۔ اسے اپنی مشین پر ~/.claude/skills/ میں رکھیں۔ اپنی لکھی ہوئی documentation یا openly licensed sources کے لیے اشاعت درست ہے۔ tool repository visibility کے بارے میں الگ سوال بھی کرتا ہے اور صرف سادہ public یا private قبول کرتا ہے، تاکہ فیصلہ سوچ سمجھ کر کیا جائے۔

کیا مجھے docling کی ضرورت ہے، یا pdftotext کافی ہے؟

poppler-utils سے pdftotext نثری مواد کے لیے کافی ہے اور تقریباً فوراً مکمل ہو جاتا ہے۔ جب کتاب کی اصل قدر اس کے tables اور code listings میں ہو تو docling install کریں، کیونکہ سادہ text extractor عین یہی مواد چھوڑ دیتا ہے۔ اس کا نقصان رفتار ہے: project کے مطابق docling ہر page پر تقریباً 1.5 seconds لیتا ہے، اس لیے 300-page manual کو VPS پر process کرنے میں CPU کے کئی minutes لگ سکتے ہیں۔

میرے VPS پر externally-managed-environment کی وجہ سے pip کیوں fail ہوتا ہے؟

Ubuntu 24.04 اور موجودہ Debian system Python کو apt کے زیر انتظام mark کرتے ہیں، اس لیے pip اس میں install کرنے سے انکار کرتا ہے اور error: externally-managed-environment دکھاتا ہے۔ python3 -m venv ~/.venvs/book-to-skill سے virtual environment بنائیں، اسے activate کریں، extractors وہیں install کریں، پھر اسی shell سے اپنا agent شروع کریں۔ skill python3 کو call کرتی ہے، اس لیے یہ آپ کے PATH میں موجود interpreter استعمال کرتی ہے، جو اب virtual environment والا interpreter ہے۔

میری generated skill slash command کے طور پر کیوں ظاہر نہیں ہوتی؟

اس کی دو وجوہات ہیں۔ command name directory name سے آتا ہے، اس لیے skill کو ~/.claude/skills/<name>/SKILL.md یا .claude/skills/<name>/SKILL.md پر موجود ہونا چاہیے، اور SKILL.md بالکل اسی طرح لکھا ہونا چاہیے۔ اگر path درست ہے تو agent restart کریں۔ Claude Code ان skill directories کے اندر کی edits خود اٹھا لیتا ہے جنہیں وہ پہلے سے monitor کر رہا ہو، لیکن session شروع ہونے کے بعد بنائی گئی skills directory کو بالکل monitor نہیں کیا جا رہا ہوتا۔