Claude Code اور OpenCode: ایجنٹک کوڈنگ کا 90 منٹ کا مختصر عملی کورس
15 تصورات، حقیقی استعمال کا 80٪
ایک عملی مختصر کورس. کوئی filler نہیں، کوئی upsell نہیں. آخر تک آپ جان جائیں گے کہ کیا استعمال کرنا ہے، کب استعمال کرنا ہے، اور زیادہ کی ضرورت پر کس ٹول میں کہاں دیکھنا ہے.
وہ ایک نکتہ جو باقی سب کو سمجھنے میں مدد کرتا ہے: ایجنٹک کوڈنگ ایک سیاق و سباق کا نظم مسئلہ ہے جو کوڈنگ ٹول کا روپ دھارے ہوئے ہے. تقریبا ہر "advanced technique" ایک ہی بات پر آ کر رکتی ہے: صحیح وقت پر صحیح information کو ماڈل تک پہنچانا، اور غلط information کو باہر رکھنا. ہر حصہ کو اسی نظریے سے پڑھیں.
Prerequisite: AI Prompting میں 2026. یہ صفحہ فرض کرتا ہے کہ وہ thirteen تصورات پہلے ہی آپ کے پاس ہیں: colleague کی طرح brief دینا (تصور 1)، سیاق و سباق کو پورا کھیل سمجھنا (تصور 4)، سوچنے کا طریقہ (تصور 5)، غیر جانبدار framing (تصور 6)، دہرائیں چکر (تصور 7)، اور ماڈلز سے ماڈلز کو چیک کرانا (تصور 13). یہی اصل طریقہ کار ہے. یہ صفحہ دکھاتا ہے کہ جب ماڈل آپ کے filesystem کو touch کر سکتا ہے تو یہی طریقہ کار عملی طور پر کیسی نظر آتی ہے.
Claude Code اور OpenCode ایک ہی خیال کے دو implementations ہیں، زیادہ تر وہی اصطلاحات اور تھوڑے الگ کی بورڈ شارٹ کٹس کے ساتھ.
دو ٹولز، ایک نہیں. جان بوجھ کر. یہاں کی طریقہ کار کو کسی بھی ایک ٹول سے زیادہ قائم رہنا ہوگا. Pricing میں تبدیلیاں، access restrictions، ماڈل preferences، اور حکمت عملی سے متعلق shifts آپ کے سیکھے ہوئے سبق کو ضائع نہیں ہونے چاہییں. ہر تصور کو دونوں ٹولز میں دکھانا اس بات کا سب سے مضبوط test بھی ہے کہ کیا تصور اصلی ہے: اگر کوئی technique صرف Claude Code میں کام کرتی ہے، تو وہ Claude Code کی trick ہے; اگر وہ دونوں میں کام کرتی ہے (وہی شکل، الگ کی بورڈ شارٹ کٹس)، تو وہ ایجنٹک کوڈنگ کے اصل رویے کا ایک حصہ ہے. Claude Code کا استعمال کریں جب frontier ماڈل performance constraint ہو; OpenCode کا استعمال کریں جب flexibility، لاگت کنٹرول، یا openness ہو. OpenCode free ماڈلز کے ایک سیٹ کے ساتھ بھی آتا ہے جنہیں آپ account بنائے بغیر استعمال کر سکتے ہیں. آپ جو مہارتیں بناتے ہیں، وہ دونوں طریقوں سے وہی ہیں. یہی مقصد ہے، کوئی compromise نہیں.
April 2026 تک تازہ. دونوں ٹولز تیزی سے ship ہوتے ہیں: ترتیب schemas، کمانڈ names، اور انسٹال کمانڈز بدلتے رہتے ہیں. اگر آپ کے پاس ابھی تک ٹولز نہیں ہیں، تو انسٹالیشن instructions انہی docs صفحات پر ہیں: Claude Code، OpenCode. جب کسی اور چیز کے بارے میں شک ہو، تو وہ صفحات بھی شروع کرنے کے لیے بہترین جگہ ہیں.
دونوں ٹولز اکثر update ہوتے رہتے ہیں; اس لیے، کوئی بھی سیشن شروع کرنے سے پہلے، تازہ ترین نسخہ استعمال کرنے کے لیے
claude updateاورopencode upgradeکمانڈز دیں.
یہ فرض کیا گیا پس منظر: آپ کمانڈ سطر پر مانwas ہیں، آپ نے git استعمال کیا ہے، اور آپ نے پہلے JSON ترتیب پڑھی یا لکھی ہے. آپ کو LLM کوڈنگ ایجنٹس کے ساتھ پہلے کا تجربہ ہونے کی ضرورت نہیں ہے. یہ اسی کے لیے ہے. اگر آپ MCP، ہکس، یا LLMs اور external ٹولز کے درمیان پروٹوکول layer کے لیے بالکل نئے ہیں، تو آپ انہیں سیاق و سباق سے سمجھ جائیں گے جیسے جیسے ہم آگے بڑھیں گے.
اس صفحے پر، Claude Code اور OpenCode کے درمیان مختلف حصے میں ایک switcher ہے. ایک کو چنیں اور صفحے پر ہر switcher اس کے ساتھ sync ہو جائے گا; آپ کی پسند اگلے visits تک قائم رہے گی.
ایک مکمل worked مثال حصہ 6 میں ہے: ایک حقیقت پسندانہ کام شروع سے آخر تک، دو بار چلائیں کیا گیا، ہر ٹول میں ایک بار. اگر آپ definitions پڑھنے کے بجائے دیکھ کر بہتر سیکھتے ہیں، تو پہلے وہاں جائیں اور پھر واپس آئیں.
حصہ 1: بنیادیں
یہ پہلے تین تصورات دونوں ٹولز میں یکساں طریقے سے apply ہوتے ہیں. جہاں کمانڈز یا کی بورڈ شارٹ کٹس مختلف ہیں، وہاں فرق inline بتایا گیا ہے.
1. یہ ٹولز اصل میں کیا ہیں
زیادہ تر لوگوں کا mental ماڈل "ایک chatbot جو کوڈ جانتا ہے" ہے. یہ غلط ہے، اور یہی غلطی مسئلہ ہے.
ایک chatbot سوالوں کے جواب دیتا ہے. Claude Code اور OpenCode actions لیتے ہیں. وہ آپ کی فائلز پڑھتے ہیں، انہیں edit کرتے ہیں، آپ کی machine پر کمانڈز چلائیں کرتے ہیں، network hit کرتے ہیں، اور یہ سب ایک ساتھ جوڑتے ہیں جب تک ایک کام پورا نہ ہو جائے. آپ انہیں ایک brief دیتے ہیں، وہ کام کرتے ہیں، آپ جائزہ کرتے ہیں.
Mindset shift: سوال type کرنا بند کریں، briefs لکھنا شروع کریں. "کیسے کریں I شامل کریں auth?" ایک chatbot پرامپٹ ہے. "شامل کریں ای میل/password auth کو یہ Express ایپ استعمال کرتے ہوئے bcrypt اور JWT، store صارفین میں existing Postgres users جدول، لکھیں tests، don't touch OAuth کوڈ" ایک agentic-coding پرامپٹ ہے. دwasرا کام کرے گا؛ پہلا ایک wandering monologue دے گا.
یہ AI Prompting کے تصور 1 — ابتدائی صارف vs. ماہر صارف — کا وہی طریقہ ہے، بس PDFs کی جگہ فائلز ہیں. brief کی شکل وہی ہے؛ stakes زیادہ ہیں، کیونکہ اس بار ماڈل action لیتا ہے.
دونوں ٹولز defaults میں مختلف ہیں لیکن بنیادی اصول میں نہیں. Claude Code Anthropic کا ہے، Claude ماڈلز کے ساتھ آتا ہے، باہر کا box polished ہے. OpenCode اوپن سورس ہے، ماڈل-agnostic (Claude، GPT، Gemini، مقامی) ہے، اور ٹول-level اجازت تک configurable ہے. اپنی ماڈل preferences اور کتنا ترتیب کنٹرول آپ چاہتے ہیں اس کے مطابق ایک کا انتخاب کریں؛ یہ مختصر کورس کا باقی حصہ دونوں میں کام کرتا ہے.
ابھی تک کوئی بھی انسٹال نہیں کیا? آگے پڑھنے سے پہلے مستند one-liner لے لیں; اس کے بعد کے حصے یہ فرض کرتے ہیں کہ آپ ایک اہم press کر سکتے ہیں اور کچھ ہوتا ہوا دیکھ سکتے ہیں. Auth، IDE پلگ انز، اور troubleshooting official docs پر موجود ہیں.
# macOS / Linux / WSL — recommended (auto-updates)
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# macOS Homebrew (no auto-update — run `brew upgrade claude-code` periodically)
brew install --cask claude-code
# npm fallback
npm install -g @anthropic-ai/claude-code
مکمل reference: docs.claude.com/claude-کوڈ.
# All platforms — recommended
curl -fsSL https://opencode.ai/install | bash
# macOS Homebrew
brew install opencode
# npm / bun / pnpm / yarn
npm install -g opencode-ai
مکمل reference: opencode.ai/docs.
2. منصوبہ بندی کا طریقہ (سب سے کم استعمال ہونے والا feature)
implementations تھوڑی مختلف ہیں لیکن خیال ایک جیسا ہے: ماڈل کو کچھ بھی لکھنے دینے سے پہلے، اسے ایک لکھا ہوا منصوبہ بنانے پر مجبور کریں جسے آپ جائزہ کر سکیں.
Shift+Tab دبائیں اجازت طریقے میں cycle کرنے کے لیے. پہلی بار دبانے پر آپ auto-accept میں آ جائیں گے; دwasری بار دبانے پر آپ منصوبہ بندی کا طریقہ میں آ جائیں گے. منصوبہ بندی کا طریقہ میں، ماڈل پڑھیں کر سکتا ہے لیکن لکھیں نہیں کر سکتا: کوئی فائل edits نہیں، کوئی shell کمانڈز نہیں.
منصوبہ ایک الگ primary ایجنٹ ہے، طریقہ نہیں. Tab دبائیں primary ایجنٹس کے درمیان cycle کرنے کے لیے: Build (سارے ٹولز enabled ہیں) اور Plan (فائل edits اور bash default میں ask پر ہیں، اس کا مطلب ہے کہ ماڈل ان کی درخواست کر سکتا ہے لیکن وہ آپ کی منظوری کے پیچھے gated ہیں). معنوی طور پر نتیجہ ایک جیسا ہے: آپ کچھ بھی لکھنے سے پہلے investigate اور جائزہ کرتے ہیں.
دونوں صورتوں میں، یہ قدم آپ کو دو وجوہات کی وجہ سے slow کرتا ہے جو دراصل speedups ہیں:
- یہ غلط فہمیوں کو پکڑ لیتا ہے اس سے پہلے کہ وہ آپ کو نقصان پہنچائیں. منصوبہ ایک contract ہے. اگر ماڈل نے brief کو غلط سمجھا، تو آپ اسے منصوبہ میں دیکھتے ہیں، نہ کے ایک 200-سطر کے diff میں جسے آپ کو revert کرنا پڑے.
- یہ دwasری بار میں بہتر کوڈ بناتا ہے. ایک پہلے سے لکھا ہوا منصوبہ relevant سیاق و سباق (فائل paths، function names، intended طریقہ) کو ایک صاف آرٹفیکٹ میں compress کرتا ہے جس پر implementation phase بھرwasا کر سکتا ہے. منصوبہ کے بغیر، ماڈل ایک ساتھ استدلال اور writing کر رہا ہوتا ہے، اور استدلال ہار جاتی ہے.
انگوٹھے کا اصول: 10-منٹ سے زیادہ کی کوئی بھی تبدیلی پہلے منصوبہ بندی کا طریقہ سے گزرتی ہے. بڑے features کے لیے، ماڈل سے منصوبہ کو ایک markdown فائل (docs/plans/feature-x.md) میں save کرنے کو کہیں تاکہ آپ اسے بعد میں resume کر سکیں یا ایک fresh سیشن میں فراہم کرتا ہے کر سکیں.
منصوبہ بندی کا طریقہ ایک ہی move میں دو prompting تصورات کو جوڑ دیتا ہے: think مشکل (تصور 5) مگر ساتھ contract بھی ہوتا ہے، اور outline پہلے drafting (تصور 7) مگر filesystem کے ساتھ. Diff edit کرنے کے بجائے منصوبہ edit کریں.
3. اجازتیں کا ضبط
دونوں ٹولز action لینے سے پہلے منظوری مانگتے ہیں. دونوں آپ کو globally منظوریاں skip کرنے دیتے ہیں: Claude Code میں --dangerously-skip-permissions ہے، OpenCode آپ کو "permission": "allow" سیٹ کرنے دیتا ہے. ایسا نہ کریں، کم از کم شروع میں نہیں.
جو طریقہ کام کرتا ہے: کچھ سیشنز کے لیے manual شروع کریں، غور کریں کہ کون سے actions auto-approve کرنے کے لیے کافی safe ہیں، پھر اسے ترتیب میں لکھ لیں.
.claude/settings.json:
{
"permissions": {
"allow": [
"Read",
"Edit",
"Write",
"bash(npm test)",
"bash(npm run lint)",
"bash(npm run build)",
"bash(git status)",
"bash(git diff *)",
"bash(git log *)"
],
"deny": ["bash(rm -rf *)", "bash(npm publish *)", "bash(git push *)"]
}
}
opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"*": "ask",
"read": "allow",
"edit": "allow",
"bash": {
"*": "ask",
"npm test": "allow",
"npm run lint": "allow",
"npm run build": "allow",
"git status*": "allow",
"git diff*": "allow",
"git log*": "allow",
"rm -rf*": "deny",
"npm publish*": "deny",
"git push*": "deny"
}
}
}
OpenCode کا اجازت نظام زیادہ finer-grained ہے: آپ ٹول name (read، edit، bash، webfetch، skill، وغیرہ) پر اہم کرتے ہیں اور ہر ایک کو glob طریقے کے ساتھ scope کر سکتے ہیں. ہے میں ایک built-in doom_loop اجازت بھی ہے جو تب trigger ہوتی ہے جب ایک ہی ٹول call تین بار identical داخلہ کے ساتھ repeat ہو، جو stuck-چکر pathologies کو مفت میں پکڑ لیتی ہے.
پھر ایک notification helper انسٹال کریں. وہ طریقہ جو ایجنٹک کوڈنگ کو تیز محسwas کراتا ہے وہ تیز عمل درآمد نہیں ہے: یہ دور جانے کی صلاحیت ہے. ایک لمبا کام شروع کریں، دwasرے کام پر switch کریں، جب آپ کو ping کیا جائے تب واپس آئیں. اگر آپ کئی سیشنز متوازی میں چلاتے ہیں (ایک حقیقی چیز، اور ایک حقیقی productivity unlock)، تو notifications وہ طریقہ ہیں جس سے آپ track رکھتے ہیں کہ کس سیشن کو آپ کی ضرورت ہے.
Claude Code کے لیے cc-notify جیسے community helpers موجود ہیں. OpenCode کا ڈیسک ٹاپ ایپ نظام notifications native طور پر bhejta ہے؛ TUI کے لیے ایک پلگ ان لکھیں جو session.idle کو subscribe کرے اور osascript (macOS) یا notify-send (Linux) کو shell باہر کرے.
حصہ 2: سیاق و سباق management

یہ مختصر کورس کا سب سے اہم حصہ ہے. اگر آپ صرف ایک حصہ دل میں اتاریں، تو یہی ہونا چاہیے. یہاں کی ہر بات دونوں ٹولز پر یکساں apply ہوتی ہے; صرف کمانڈ names کبھی کبھی مختلف ہوتی ہیں.
4. سیاق و سباق کی خرابی واقعی ہوتا ہے
سیاق و سباق window وہ text کی مقدار ہے جو ماڈل ایک وقت میں hold کر سکتا ہے. Modern ماڈلز کے پاس بڑے windows ہوتے ہیں: ہزاروں tokens، کبھی کبھی ایک million تک. یہ بےحد لگتا ہے. لیکن ایسا نہیں ہے.
دو چیزیں سمجھنے کے لیے:
حقیقی usage window کو آپ کی سوچ سے زیادہ تیزی سے بھر دیتا ہے. کچھ کوڈ فائلز، ایک stack trace، کچھ docs جو آپ نے paste کیے، اور ایک 30-turn گفتگو آپ کے notice کرنے سے پہلے ہزاروں tokens کھا جائیں گے. آپ کا laptop fuel gauge نہیں دکھاتا.
Recall window کے بھرنے سے بہت پہلے خراب ہو جاتی ہے. Studies (اور آپ کا اپنا experience، اگر آپ توجہ دیں) دکھاتے ہیں کے جیسے جیسے token counts بڑھتے ہیں، ماڈل سیاق و سباق میں پہلے کی خاص details یاد رکھنے میں نمایاں طور پر خراب ہو جاتا ہے. ماڈل ٹھیک سے نہیں بھولتا. یہ صرف اس information کو صحیح طریقے سے weight کرنا بند کر دیتا ہے. Symptoms: یہ ایک constraint کو نظر انداز کرتا ہے جو آپ ne 20 messages پہلے بتایا تھا، وہ کام دہراتا ہے جو پہلے ہی کر چکا تھا، ایک function signature کو hallucinate کرتا ہے جو پہلے صحیح تھا.
ایک financial dimension بھی ہے. ہر message پورے سیاق و سباق کی گنجائش کو دوبارہ bill کرتا ہے: ایک خرابی دور کرنا سیشن کے دوران بیس بار ping کی گئی 50K-token گفتگو ایک million tokens کا داخلہ ہے، جو ہر turn پر charge ہوتا ہے. Per-token APIs پر (زیادہ تر OpenCode setups، raw Anthropic API) یہ wallet damage ہے; سبسکرپشن tiers پر (Claude Code Pro/Max) یہ rate-limit hits کے طور پر دکھتا ہے. دونوں صورتوں میں، bloated سیاق و سباق آپ کا بجٹ تبھی drain کرتا ہے جب آپ کو سب سے زیادہ کام کرنے کی ضرورت ہوتی ہے.
Takeaway unromantic لیکن عملی ہے: کم سیاق و سباق، سوچ سمجھ کر استعمال کیا گیا، اس زیادہ سیاق و سباق سے بہتر ہے جو umeed میں dump کیا گیا ho.
5. /clear اور /compact
دو کمانڈز، دو situations.
Conversation wipe کریں اور نئے سرے سے شروع کریں. جب کسی غیر متعلقہ کام پر switch کریں تب استعمال کریں. پرانا سیاق و سباق غیر ضروری شور ہے جو نئے کام کو صرف confuse کرے گا.
- Claude Code:
/clear - OpenCode:
/new(جسے/clearبھی کہتے ہیں)
Conversation کو summarize کریں، summary رکھیں، باقی discard کریں. جب آپ کسی ایک لمبے کام میں گہرے ہوں اور سیاق و سباق زیادہ ہو رہا ہو، لیکن آپ thread نہیں کھو سکتے، تب استعمال کریں.
- دونوں ٹولز:
/compact(OpenCode میں، جسے/summarizeبھی کہتے ہیں)
آپ رہنمائی کر سکتے ہیں کے compact میں کیا رکھنا ہے: /compact keep the API contract decisions and current file paths.
یہ دونوں interchangeable نہیں ہیں. /clear کا مطلب "نیا گفتگو" ہے. /compact کا مطلب "وہی گفتگو، کم baggage" ہے. غلط انتخاب یا تو اہم سیاق و سباق کھو دیتا ہے یا بیکار سیاق و سباق کو باقی رکھتا ہے.
6. سیشنز resume کریں
Conversations save ہو جاتی ہیں. دونوں ٹولز آپ کو resume کرنے دیتے ہیں، خیال وہی ہے، کمانڈ الگ:
- Claude Code:
claude --resumeاور list سے ایک سیشن چنیں. - OpenCode:
/sessions(جسے/resumeبھی کہتے ہیں) TUI کے اندر saved سیشنز کے درمیان switch کرنے کے لیے.
دو طریقے جہاں یہ اہم ہوتا ہے:
- کل سے شروع کریں. لمبے features شاذ ہی ایک sitting میں پورے ہوں. resume آپ کو ماڈل کی پروجیکٹ کی working memory کھوئے بغیر رکنے دیتا ہے.
- Multiple branches چلائیں. کسی بھی سیشن کو resume کریں، صرف آخری والے کو نہیں. آپ ایک سیشن میں بیک اینڈ کام پر گہرا کام کر سکتے ہیں اور دwasرا فرنٹ اینڈ پر، اور ان کے بیچ switch کر سکتے ہیں.
اگر آپ کے پاس saved منصوبہ فائل (docs/plans/feature-x.md) ہے، تو ایک fresh سیشن کو بھی ایک message میں رفتار تک لایا جا سکتا ہے: "پڑھیں docs/منصوبے/feature-x.md اور continue سے step 4." resume زیادہ تیز ہے، لیکن منصوبہ فائل safety net ہے.
Conversation rewind دونوں میں موجود ہے، لیکن فائل تبدیلیاں پر وہ مختلف ہیں. Claude Code میں، Esc دو بار دبائیں (double-tap Esc) اپنی پچھلی صارف messages کی list کھولنے کے لیے; ایک کو چنیں اور سیشن اس point سے fork ہو جائے گا، اس کے بعد جو کچھ بھی آیا وہ drop ہو جائے گا. یہ گفتگو کو rewind کرتا ہے لیکن ماڈل ne disk پر جو فائل edits کیے ہیں انہیں revert نہیں کرتا. OpenCode ایک ایک قدم آگے بڑھتا ہے: /undo آخری صارف message کو rewind کرتا ہے اور اس turn سے فائل تبدیلیاں کو revert کرتا ہے (یہ کے تحت hood git کا استعمال کرتا ہے، اس لیے آپ کا پروجیکٹ ایک git repo ہونا چاہیے). /redo آخری /undo کو reverse کرتا ہے. اگر آپ ایک خراب پرامپٹ کے بعد خود کو ایک گہری مشکل میں پاتے ہیں اور گفتگو اور اپنی فائلز دونوں کو ایک ہی move میں roll back کرنا چاہتے ہیں، تو OpenCode کا /undo اصلی bonus ہے; اگر آپ کو صرف گفتگو کو redirect کرنا ہے جبکہ تازہ فائل state کو قائم رکھتے ہوئے، تو Claude Code کا Esc Esc زیادہ تیز ہے.
تین کمانڈز کے لیے فوری فیصلہ قاعدہ:
Diagnostic: جب سیاق و سباق خراب ہو جائے
سیاق و سباق کی خرابی کے ظاہر علامات ہوتے ہیں. ان میں سے کسی پر بھی نظر رکھیں:
- ماڈل بار بار apologize کرنا شروع کر دیتا ہے بغیر progress کیے.
- یہ کوڈ کہ اسی block کو دوبارہ لکھتا ہے بغیر کسی meaningful تبدیلیاں کے.
- یہ ان بدلنے والی چیزیں، فائلز، یا functions کا reference دیتا ہے جو موجود نہیں ہیں.
- یہ اس constraint کے خلاف ہے جو آپ ne پہلے اسی سیشن میں بتایا تھا.
- ہر response لمبا، زیادہ gair-wazeh، اور زیادہ adab-bhara ہوتا جاتا ہے.
جب آپ یہ دیکھیں، typing بند کریں. "بس ایک اور وضاحت والا پرامپٹ" دینے کی عادت غلط ہے؛ یہ صرف مزید خراب سیاق و سباق کو ایسے سیاق و سباق میں شامل کرتی ہے جو پہلے ہی خراب ہو چکا ہے. صحیح طریقہ reset کرنا اور دوبارہ brief دینا ہے. اگر گفتگو میں کوئی مفیڈ core بچانا ہو تو /compact چلائیں، اور اگر واقعی نئے سرے سے شروع کرنا ہو تو /clear (یا OpenCode کا /new) استعمال کریں. پانچ منٹ کا reset اس ماڈل کے ساتھ ایک گھنٹے کی بحث سے بہتر ہے جس کا سیاق و سباق زہریلا ہو چکا ہے.
تشخیص: جب سیاق و سباق کی لاگت اچانک بڑھ جائے
لاگت کا نظم دراصل سیاق و سباق کا نظم ہے؛ فرق صرف یہ ہے کہ ایک کا اثر آپ کو بل میں محسwas ہوتا ہے۔ ہر turn میں پورا سیاق و سباق دوبارہ گنا جاتا ہے، اس لیے جو غیر ضروری بھرمار یادداشت کو کمزور کرتی ہے وہی خرچ بھی بڑھاتی ہے۔ زیادہ تر غیر متوقع بل ان چند علامات میں سے کسی ایک سے آتے ہیں، چاہے آپ کون سا provider استعمال کر رہے ہوں:
Symptom: token usage spiked suddenly mid-session
→ Cause: rules file or system prompt changed, breaking cache hits.
Fix: revert the change, or accept the cache miss as a one-time cost.
Symptom: each turn costs noticeably more than the previous one
→ Cause: context is growing without bound. Files keep getting read in,
exploration output is accumulating, conversation is long.
Fix: /compact with a "keep architectural decisions and current
file paths" hint.
Symptom: model is over-explaining, producing walls of text
→ Cause: reasoning effort is too high for the task; or the prompt
invites narration.
Fix: turn the reasoning effort down; ask for "code only,
minimal commentary."
Symptom: monthly bill is much higher than expected
→ Cause: running a frontier-tier model on tasks an economy-tier
model would handle correctly.
Fix: route mechanical work (codemods, tests, formatting) to the
cheaper tier; reserve the frontier model for planning and
hard reasoning. See Part 8 Pattern 1 for the split.
Symptom: cache hits suddenly dropped from ~70% to ~10%
→ Cause: the system prompt, CLAUDE.md, or the first user message
changed structure. Cache matches prefixes byte-for-byte.
Fix: stabilize what comes first; let the variable content
come later.
ان میں سے زیادہ تر مسائل ایک ہی ترتیب تبدیلی سے سنبھل جاتے ہیں۔ اصل اصول وہی ہے جو اس حصے میں بار بار سامنے آیا ہے: محدود، مستحکم، اور صاف سیاق و سباق پھیلے ہوئے سیاق و سباق سے سستا بھی ہوتا ہے اور بہتر یاد بھی رہتا ہے، ہر turn پر۔
حصہ 3: قواعد File
7. CLAUDE.md / AGENTS.md، اچھی طرح سے کیا گیا
دونوں ٹولز ہر سیشن کے شروع میں ایک project-root markdown فائل کو سیاق و سباق میں load کرتے ہیں. یہ project-level نظام پرامپٹ کے سب سے قریب ہے.
Claude Code CLAUDE.md استعمال کرتا ہے. OpenCode AGENTS.md استعمال کرتا ہے. Migrators کے لیے، OpenCode CLAUDE.md کو بھی ایک fallback کے طور پر پڑھتا ہے جب کوئی AGENTS.md موجود نہیں ہوتا; اگر دونوں فائلز موجود ہیں، تو AGENTS.md jeet جاتا ہے اور CLAUDE.md کو نظر انداز کر دیا جاتا ہے. اگر آپ ne پہلے سے ایک CLAUDE.md maintain کیا ہے، تو OpenCode اسے اٹھا lega جب تک آپ OPENCODE_DISABLE_CLAUDE_CODE=1 سیٹ نہیں کرتے پوری طرح سے opt باہر کرنے کے لیے. Partial disable کے لیے، OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 صرف قواعد-فائل fallback کو skip کرتا ہے اور OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 صرف مہارتیں fallback کو skip کرتا ہے. یہ دونوں ٹولز کے درمیان سب سے بڑا portability کامیابی ہے.
جو غلطی تقریبا ہر کوئی کرتا ہے وہ یہ ہے کہ اس فائل کو documentation کی طرح treat کرنا، اس میں ڈھانچے کے overviews، مکمل کوڈنگ معیارات، اور codebase کی ہر چھوٹی بڑی بات بھر دینا۔ نتیجہ یہ ہوتا ہے کہ ایک 20،000-token فائل آپ کا سیاق و سباق بجٹ ہر کام پر کھا جاتی ہے، ان کام سمیت جہاں اس کا 90% غیر متعلقہ ہوتا ہے۔ حصہ 2 سے یاد رکھیں: اس فائل میں جو کچھ بھی ہے اس کی قیمت ہر ایک message پر ادا کی جاتی ہے، چاہے وہ متعلقہ ہو یا نہیں۔
صحیح ماڈل جدول کا contents ہے، encyclopedia نہیں. تقریبا ~2،500 tokens سے کم کا ہدف رکھیں. گہرے سیاق و سباق کا حوالہ دیں جو demand پر load ہوتا ہے:
CLAUDE.md. @filename syntax متعلقہ ہونے پر referenced فائلز کو auto-load کرتا ہے:
# Project: my-app
## Stack
Next.js 14, TypeScript, Postgres, Drizzle ORM.
## Commands
- `npm run dev`: start local server
- `npm test`: run vitest
- `npm run db:migrate`: apply migrations
## Critical rules
- Never edit files in `src/generated/`. They're rebuilt by codegen.
- All API routes use the auth middleware in `src/lib/auth.ts`.
- See @docs/conventions.md for naming and folder rules.
- See @docs/db-schema.md for table structure.
AGENTS.md. وہی ڈھانچہ، لیکن OpenCode @filename میں AGENTS.md references کو auto-parse نہیں کرتا. آپ یا تو ماڈل کو انہیں demand پر load کرنے کو کہتے ہیں (خود AGENTS.md میں) یا انہیں opencode.json میں instructions کے تحت list کرتے ہیں:
# Project: my-app
## Stack
Next.js 14, TypeScript, Postgres, Drizzle ORM.
## Commands
- `npm run dev`: start local server
- `npm test`: run vitest
- `npm run db:migrate`: apply migrations
## Critical rules
- Never edit files in `src/generated/`. They're rebuilt by codegen.
- All API routes use the auth middleware in `src/lib/auth.ts`.
## External references
When you encounter @docs/conventions.md or @docs/db-schema.md, load them
on a need-to-know basis with the read tool. Do not preemptively load all
references; only load what's relevant to the current task.
یا، زیادہ صاف طریقے سے، انہیں opencode.json میں list کریں:
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["docs/conventions.md", "docs/db-schema.md"]
}
یہی طریقہ non-سافٹ ویئر پروجیکٹس کے لیے بھی کام کرتا ہے. ایک consultant جو رپورٹس لکھ رہا ہو، ایک استاد جو سبق منصوبے بنا رہا ہو، یا ایک small-کاروبار مالک جو عملی کام چلا رہا ہو: قواعد فائل کا صحیح ماڈل "جدول کا contents، نہیں encyclopedia" ہے، domain کوئی بھی ہو. writing/content پروجیکٹ کے لیے مثال (CLAUDE.md یا AGENTS.md، یہی طریقہ):
# Project: blog-and-newsletter
## What this is
A folder of drafts, research, and published posts. I write a weekly newsletter and occasional long-form posts.
## Where things live
- `drafts/`: in-progress posts, one per file
- `research/`: source notes and clippings, organized by topic
- `published/`: shipped posts (do not edit)
## Critical rules
- Never edit anything in `published/`. Fixes go in a new draft with a correction note.
- Footnotes go in `[brackets]` inline; we resolve them to numbered footnotes only at publish time.
- Tone: conversational, no bullet lists in body copy.
my-app نسخہ jaise hi اصول: tight، declarative، صرف وہ چیزیں جو ماڈل فولڈر کو دیکھ کر infer نہیں کر سکتا.
ہر اس سطر کے لیے جو آپ شامل کریں کرنے کا سوچ رہے ہیں، پوچھیں: "اگر میں اس کو delete کر دوں، تو کیا ماڈل ایسی غلطی کرے گا جو وہ ورنہ نہیں کرتا؟" اگر نہیں، تو delete کر دیں. ماڈل کو TypeScript استعمال کریں کرنے کو نہ بتائیں: وہ .ts فائلز دیکھ سکتا ہے. اسے وہ چیزیں بتائیں جو وہ infer نہیں کر سکتا: codegen فولڈر، auth طریقہ، وہ چیزیں جنہوں نے آپ کو پہلے پریشان کیا ہے۔
یہ فائل اصل ناکامیاں سے بننی چاہیے، خیالی ناکامیاں سے نہیں. اسے git میں commit کریں. اپنی ٹیم کو اس میں اضافہ کرنے دیں.
اگر آپ شروع سے شروع کریں کر رہے ہیں، تو کسی بھی ٹول میں /init چلائیں کریں. ماڈل آپ کے پروجیکٹ کو scan کرتا ہے اور فائل مسودہ کرتا ہے. پھر be-rehmi سے وہ parts delete کر دیں jinki آپ کو ضرورت نہیں ہے.
حصہ 4: اپنے ٹول کو personalize کرنا
دونوں ٹولز میں چار extension types ہیں. فیصلہ tree ایک جیسا ہے:
ان میں سے ہر ایک سیاق و سباق کا نظم ٹول ہے. custom کمانڈز اور مہارتیں ضرورت کے مطابق صحیح سیاق و سباق inject کرتے ہیں. hooks اور پلگ انز قواعد کو enforce کرتے ہیں بغیر tokens خرچ کیے ماڈل کے "یاد رکھنے" پر. subagents سیاق و سباق کو quarantine کرتے ہیں تاکہ وہ آپ کے مرکزی thread میں leak نہ ho. مسئلہ وہی، طریقے الگ.
8. Slash کمانڈز
ایک slash کمانڈ ایک saved پرامپٹ ہے جس کا ایک yaadgar shortcut ہوتا ہے. دونوں ٹولز inko سپورٹ کرتے ہیں، بہت ملتے جلتے طریقوں سے.
Markdown فائلز .claude/commands/ (پروجیکٹ) یا ~/.claude/commands/ (ذاتی) میں. مثال .claude/commands/review.md:
Review the current diff for:
1. Bugs and edge cases
2. Test coverage gaps
3. Naming and readability
4. Adherence to @docs/conventions.md
Be specific. Quote the lines you're commenting on.
Markdown فائلز .opencode/commands/ (پروجیکٹ) یا ~/.config/opencode/commands/ (ذاتی) میں، جو بہتر behavior کے لیے optional YAML فرنٹ میٹر کے ساتھ ہیں. مثال .opencode/commands/review.md:
---
description: "Claude Code اور OpenCode پر 45-minute، 15-concept کا مختصر تعارف. vocabulary تقریبا ایک جیسی ہے، keybinds تھوڑے مختلف ہیں؛ یہی skills دونوں tools کے درمیان transfer ہوتی ہیں."
agent: plan
subtask: true
---
Review the current diff for:
1. Bugs and edge cases
2. Test coverage gaps
3. Naming and readability
4. Adherence to docs/conventions.md
Be specific. Quote the lines you're commenting on.
دونوں /review کے طور پر invoke ہوتے ہیں. دونوں $ARGUMENTS کو سپورٹ کرتے ہیں (اور OpenCode positional $1، $2، وغیرہ شامل کریں کرتا ہے). OpenCode بھی !`shell کمانڈ` کو سپورٹ کرتا ہے تاکہ command نتیجہ پرامپٹ میں inject ہو سکے، اور ایجنٹ: منصوبہ / subtask: true فرنٹ میٹر کمانڈ کو ایک خاص ایجنٹ تک route کرنے یا اسے ایک ذیلی ایجنٹ میں چلانے کے لیے استعمال ہوتا ہے. یہ جائزہ ورک فلو کو آپ کے مرکزی سیاق و سباق سے باہر rakhne کے لیے مفیڈ ہے.
ایک non-سافٹ ویئر مثال. زیادہ تر ٹیمیں کے daily ritual کے لیے ایک /standup کمانڈ. Isko .claude/commands/standup.md (یا .opencode/commands/standup.md) کے طور پر save کریں:
Read yesterday's note in `journal/`. Produce a 4-line standup:
1. What I shipped yesterday (1 line)
2. What I'm working on today (1 line)
3. Blockers (1 line, "none" if clear)
4. One thing I learned (1 line)
Tone: telegraphic. No filler.
اب /standup جب بھی آپ اس کو type کرتے ہیں، کل کے notes سے ایک صاف حالت update بناتا ہے۔ اوپر دیے گئے /review جیسا ہی ہے، بس ایک الگ domain ہے۔ یہی trick /digest (ای میلز کے ایک فولڈر کو action items میں بدلنا)، /draft-reply (اس path پر موجود ای میل کا ایک ادب سے جواب لکھنا)، یا کوئی بھی ایسا کام جس کے لیے آپ خود کو دو بار سے زیادہ ایک ہی instructions type کرتے ہوئے پاتے ہیں، کے لیے کام کرتا ہے۔
دونوں ٹولز میں ایک متحد test: اگر آپ خود کو دو بار سے زیادہ ایک ہی instructions type کرتے ہوئے پاتے ہیں، تو وہ ایک کمانڈ ہونا چاہیے.
Note (Claude Code، 2026): 2026 تک، slash کمانڈز اور مہارتیں کو yakja کر دیا گیا ہے. فائلز
.claude/commands/میں اب بھی کام کرتی ہیں اور slash کمانڈز کے طور پر دکھائی dengi، لیکن نیا کام تیزی سے.claude/skills/میں ja رہا ہے کیونکہ مہارتیں زیادہ سپورٹ کرتی ہیں (auto-invocation، ذیلی ایجنٹ عمل درآمد، فائل-path filters). دونوں کو ایک continuum کے طور پر samjhein.
9. مہارتیں
ایک مہارت ایک custom کمانڈ کا بڑا bhai ہے. وہی خیال، packaged expertise، لیکن تین اہم upgrades کے ساتھ جو دونوں ٹولز کے درمیان بنیادی طور پر yaksa ہیں:
- Auto-invocation. ماڈل ہر سیشن کے شروع میں مہارت descriptions کو پڑھتا ہے اور جب کوئی کام مطابق کرتا ہے تو صحیح مہارت کو invoke کرتا ہے.
- Progressive disclosure. ایک مہارت میں
SKILL.mdفائل ہوتی ہے (جو entry point ہے) اور وہ اسی فولڈر میں دwasری فائلز کو reference کر سکتی ہے. صرفSKILL.mdپہلے load ہوتی ہے; باقی demand پر load ہوتی ہیں. یہ سیاق و سباق کا نظم اصول ہے جسے ایک فائل format میں badal دیا گیا ہے. - frontmatter controls.
SKILL.mdکے top پر موجود YAML behavior کو configure کرتا ہے.
File format converge ہو گیا. ایک ٹول کے لیے لکھی گئی مہارت دwasرے میں زیادہ تر کام کرتی ہے.
.claude/skills/extract-transcript/SKILL.md:
---
name: extract-transcript
description: "Claude Code اور OpenCode پر 45-minute، 15-concept کا مختصر تعارف. vocabulary تقریبا ایک جیسی ہے، keybinds تھوڑے مختلف ہیں؛ یہی skills دونوں tools کے درمیان transfer ہوتی ہیں."
---
# Extract YouTube transcript
1. Take the URL from the user's message.
2. Run `yt-dlp --skip-download --write-auto-sub --sub-format vtt "$URL"`.
3. Convert the VTT to plain text: strip timestamps, deduplicate overlapping captions.
4. Save to `transcripts/{video-id}.txt`.
For formatting conventions (paragraph breaks, speaker labels), see `references/style.md`.
.opencode/skills/extract-transcript/SKILL.md:
---
name: extract-transcript
description: "Claude Code اور OpenCode پر 45-minute، 15-concept کا مختصر تعارف. vocabulary تقریبا ایک جیسی ہے، keybinds تھوڑے مختلف ہیں؛ یہی skills دونوں tools کے درمیان transfer ہوتی ہیں."
---
# Extract YouTube transcript
1. Take the URL from the user's message.
2. Run `yt-dlp --skip-download --write-auto-sub --sub-format vtt "$URL"`.
3. Convert the VTT to plain text: strip timestamps, deduplicate overlapping captions.
4. Save to `transcripts/{video-id}.txt`.
For formatting conventions (paragraph breaks, speaker labels), see `references/style.md`.
ہاں، وہ byte-identical ہیں. OpenCode ~/.claude/skills/ اور .claude/skills/ کو fallbacks کے طور پر بھی پڑھیں کرتا ہے، اس لیے کوئی بھی مہارت جو آپ ne Claude Code کے لیے پہلے hi لکھی ہے، وہ OpenCode میں بغیر کسی tabdeeli کے کام کرتی ہے.
Description سب سے ضروری field ہے: یہ وہ ہے جو ماڈل استعمال کریں کرتا ہے یہ decide کرنے کے لیے کے مہارت apply ہوتی ہے یا نہیں. Vague descriptions ("videos میں مدد کرتا ہے") ہر چیز پر فعال ہو جاتی ہیں; جبکہ specific ones ("جب صارف YouTube لنک فراہم کریں kare تب استعمال کریں کریں...") صرف تب فعال ہو جاتی ہیں جب وہ relevant ہوں.
SKILL.md کو خود مختصر رکھیں: تقریبا 200 lines سے کم ایک اچھا قاعدہ ہے. گہرائی کو اسی directory میں reference فائلز میں daalein اور ان کو لنک کریں. اس طریقے سے ایک فوری کام صرف overview کے لیے pay کرتا ہے; ایک deep کام اپنی ضرورت کے مطابق references کو pull کر سکتا ہے.
مہارتیں scratch سے نہ لکھیں. Claude Code ایک skill-creator مہارت کے ساتھ آتا ہے جو نئے مہارتیں کو صحیح طریقے سے scaffold کرتا ہے. کیونکہ OpenCode ~/.claude/skills/ کو fallback کے طور پر پڑھیں کرتا ہے، وہی skill-creator OpenCode میں بھی load ہوتا ہے: ہے کو ایک بار انسٹال کریں اور دونوں ٹولز ہے کو invoke کر سکتے ہیں. (Note: فائل discovery shared ہے، لیکن مہارت bodies جو Claude Code-specific ٹولز کو reference کرتی ہیں انہیں OpenCode میں ٹھیک سے چلانے کے لیے تھوڑی edits کی ضرورت ہو سکتی ہے. نئے ایجنٹس کے لیے، جو OpenCode میں ایک الگ تصور ہیں، interactive ایجنٹ scaffolder کے لیے opencode agent create استعمال کریں کریں.)
ایک اور طریقہ: چھوٹی مہارتیں کو chain کریں، monoliths نہ بنائیں. ایک "weekly content digest" مہارت جو تحقیق کرتی ہے، لکھتی ہے، format کرتی ہے، اور ایک ہی بار میں جائزہ کرتی ہے، وہ maintain کرنا زیادہ مشکل ہے اور ہر step پر char الگ مہارتیں (research، draft، format، review) سے badتر ہے جو ایک دwasرے کو hand off کرتی ہیں. ہینڈ آف عام طور پر filesystem-mediated ہوتا ہے: research اپنا نتیجہ tmp/research.md میں لکھتا ہے، پھر draft کو اس سے پڑھیں کرنے کی ہدایت دی جاتی ہے; draft tmp/draft.md میں لکھتا ہے، اور اسی طرح. آپ ماڈل کو انہیں sequence میں چلانے کے لیے بھی پرامپٹ کر سکتے ہیں ("تحقیق مہارت استعمال کریں کریں، پھر نتیجہ سے ایک post مسودہ کریں")، لیکن فائل-مبنی pipeline /clear کے paar زیادہ پائیدار ہے اور خرابی دور کرنا کرنا آسان ہے. دونوں صورتوں میں، ہر مہارت اپنے step پر focused رہتی ہے. Reusability اچھی ہے، لیکن اصل فائدہ per-step سیاق و سباق isolation ہے: format مہارت کو تحقیق notes load کرنے کی ضرورت نہیں، اور research مہارت کو formatting conventions کے بارے میں janne کی ضرورت نہیں. وہی اصول جو ذیلی ایجنٹس میں ہے، لیکن چھوٹی granularity پر apply کیا گیا ہے.
10. hooks (Claude Code) / پلگ انز (OpenCode)
مہارتیں probabilistic ہیں: ماڈل decide کرتا ہے کے انہیں invoke کرنا ہے یا نہیں. hooks اور پلگ انز deterministic ہیں: وہ specific events پر fire ہوتے ہیں، ہر بار، کوئی ماڈل judgment shamil نہیں ہوتا.
یہ وہ جگہ ہے جہاں دونوں ٹولز کی عملی صورتیں سب سے زیادہ الگ ہوتی ہیں. خیال وہی ہے، machinery الگ ہے.
hooks shell کمانڈز ہیں جو .claude/settings.json میں lifecycle events سے attached ہوتے ہیں. بڑے events: SessionStart، UserPromptSubmit، PreToolUse (exit کوڈ 2 blocks)، PostToolUse. مثال: rm -rf کو block کریں چاہے ماڈل جو بھی کر رہا ہو:
{
"hooks": {
"PreToolUse": [
{
"matcher": "bash",
"command": "if echo \"$TOOL_INPUT\" | grep -q 'rm -rf'; then echo 'Blocked dangerous command' >&2; exit 2; fi"
}
]
}
}
پلگ انز JavaScript یا TypeScript modules ہیں جو .opencode/plugins/ میں ہوتے ہیں اور events کو programmatically subscribe کرتے ہیں. نتیجہ وہی ہے، زیادہ expressive. وہی مثال:
// .opencode/plugins/block-dangerous.js
export const BlockDangerousPlugin = async () => {
return {
"tool.execute.before": async (input, output) => {
if (input.tool === "bash" && output.args.command?.includes("rm -rf")) {
throw new Error("Blocked dangerous command");
}
},
};
};
OpenCode پلگ انز کو ایک زیادہ richer event سیٹ تک access hasil ہے: session.created، session.idle، session.compacted، tool.execute.before، tool.execute.after، permission.asked، file.edited، اور بہت کچھ. وہ ماحول بدلنے والی چیزیں inject کر سکتے ہیں، custom ٹولز شامل کریں کر سکتے ہیں، compaction پرامپٹ کو override کر سکتے ہیں، اور notifications bhej سکتے ہیں.
ایک non-سافٹ ویئر مثال: aise مسودے ship نہ کریں jin میں ابھی بھی placeholder markers ہوں. Farz کریں آپ کبھی کبھی مسودے میں [TODO] یا [FIX] markers chhor دیتے ہیں اور publish کرنے سے پہلے انہیں resolve کرنا bhool جاتے ہیں. ایک ہک published/ میں کسی بھی لکھیں کو block کر سکتا ہے اگر فائل میں ابھی بھی ایک placeholder موجود ہو:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"command": "if echo \"$TOOL_INPUT\" | grep -qE '\\[TODO\\]|\\[FIX\\]' && echo \"$TOOL_INPUT\" | grep -q '\"path\": \"published/'; then echo 'Refusing to publish draft with TODO/FIX markers' >&2; exit 2; fi"
}
]
}
}
rm -rf block جیسی ہی شکل، مگر الگ domain۔ ماڈل فائل لکھتا ہے، ہک چیک کرتا ہے، اور اگر کوئی placeholder leak ہو گیا، تو لکھیں block ہو جاتی ہے اور ماڈل کو فائل ship ہونے سے پہلے اسے resolve کرنا پڑتا ہے۔
یہ trade-off حقیقی ہے: OpenCode پلگ انز زیادہ capable ہیں; Claude Code ہکس زیادہ سادہ ہیں.
جو کوئی بھی bash likh سکتا ہے، وہ five منٹ میں ایک Claude Code ہک likh سکتا ہے اور استعمال کریں Node toolchain کے bagair ایک repo میں ship کر سکتا ہے. OpenCode پلگ انز کو Bun یا Node، npm dependencies، اور TypeScript یا JavaScript fluency کی ضرورت ہوتی ہے. ایک one-line چیک ("block rm -rf") کے لیے، shell لاگت میں jeet جاتا ہے. کسی بھی aisi چیز کے لیے جسے structured logging، async کام، یا multiple event سبسکرپشنز کی ضرورت ہو، JS/TS module اصل میں زیادہ cleaner ہے. وہ ٹول چنیں جس کے constraints ہے چیز سے مطابق کرتے ہیں جو آپ بنا رہے ہیں.
پروڈکشن codebases پر ان ٹولز کو چلانے والے لوگوں سے ایک مفیڈ طریقہ: لکھیں وقت پر block نہ کریں، commit وقت پر block کریں. ماڈل کو اپنا کام ختم کرنے دیں (mid-edit میں interrupt کرنا اسے confuse کرتا ہے) اور commit step پر ایک ہک/پلگ ان چلائیں جو چیک kare کے tests pass ہو رہے ہیں، types چیک ہو رہے ہیں، formatter ٹھیک ہے. اگر کچھ fail ہوتا ہے، تو ماڈل کو واپس ایک fix چکر میں مجبور کریں.
Hooks/پلگ انز ان cheezon کے لیے استعمال کریں jin کا 100% واقعی ہونا ضروری ہے. مہارتیں ان cheezon کے لیے استعمال کریں جنہیں آپ چاہتے ہیں کہ ماڈل زیادہ تر وقت یاد rakhe.
11. subagents
ایک ذیلی ایجنٹ ایک isolated ایجنٹ instance ہے جس کا اپنا سیاق و سباق کی گنجائش ہوتا ہے. آپ استعمال کریں ایک کام نمائندہ کرتے ہیں; وہ private میں کام کرتا ہے; وہ ایک summary واپس کرتا ہے. اس کی فائل searches، لوگ dumps، اور exploratory reads کبھی بھی آپ کے مرکزی thread کو touch نہیں کرتے.
سیاق و سباق-management کے lihaz سے یہ کیوں ضروری ہے: سب سے زیادہ سیاق و سباق-poisoning چیز جو آپ کر سکتے ہیں وہ ہے "codebase کو explore کرنا یہ janne کے لیے کے X کہاں ہوتا ہے." اس طرح کا کام darjanon فائلز کو سیاق و سباق میں khinch لیتا ہے، jin میں سے زیادہ تر کی آپ کو ضرورت نہیں ہوتی. Ise ایک ذیلی ایجنٹ میں کرنے کا matlab ہے کہ آپ کا میں سیشن صرف نتیجہ dekhta ہے ("X src/services/billing.ts:142 میں ہوتا ہے")، تلاش نہیں.
دونوں ٹولز ایک read-only Explore ذیلی ایجنٹ کے ساتھ آتے ہیں (دwasروں کے ilawa; OpenCode ایک General ذیلی ایجنٹ بھی ship کرتا ہے زیادہ بڑے delegated کام کے لیے) جو آپ کے مرکزی thread کو pollute کیے bagair codebase exploration کو handle کرتا ہے. Claude Code میں، منصوبہ بندی کا طریقہ auto-delegate کرتا ہے Explore کو: آپ زیادہ تر ise soche bagair استعمال کریں ge، اور ماڈل خود بھی پوچھے jane پر منصوبہ بندی کا طریقہ میں self-enter کر سکتا ہے. OpenCode میں، منصوبہ ایجنٹ ذیلی ایجنٹس کو اسی طرح auto-invoke کر سکتا ہے (ذیلی ایجنٹ نمائندگی ایک normal primary-ایجنٹ صلاحیت ہے)، یا آپ ise @explore کے ساتھ explicitly call کر سکتے ہیں; منصوبہ بندی کا طریقہ میں خود enter کرنا، تاہم، Tab کے zariye ایک deliberate صارف action ہے.
custom ذیلی ایجنٹس کے لیے:
.claude/agents/doc-fetcher.md:
---
name: doc-fetcher
description: "Claude Code اور OpenCode پر 45-minute، 15-concept کا مختصر تعارف. vocabulary تقریبا ایک جیسی ہے، keybinds تھوڑے مختلف ہیں؛ یہی skills دونوں tools کے درمیان transfer ہوتی ہیں."
tools: WebFetch, Read, Write
---
You are a documentation researcher. Given a library name and a topic, fetch the official docs, extract only the API surface relevant to the topic, and write a focused summary to `tmp/docs-{library}.md`. Don't paste full pages: extract the patterns and signatures we need.
.opencode/agents/doc-fetcher.md:
---
description: "Claude Code اور OpenCode پر 45-minute، 15-concept کا مختصر تعارف. vocabulary تقریبا ایک جیسی ہے، keybinds تھوڑے مختلف ہیں؛ یہی skills دونوں tools کے درمیان transfer ہوتی ہیں."
mode: subagent
permission:
edit: ask
bash: deny
webfetch: allow
---
You are a documentation researcher. Given a library name and a topic, fetch the official docs, extract only the API surface relevant to the topic, and write a focused summary to `tmp/docs-{library}.md`. Don't paste full pages: extract the patterns and signatures we need.
ایک non-سافٹ ویئر مثال: ایک تحقیق ذیلی ایجنٹ. Farz کریں آپ کے پاس لمبی PDFs (industry رپورٹس، قانونی contracts، academic papers) کا ایک فولڈر ہے اور آپ چاہتے ہیں کے ایجنٹ ایک focused summary extract kare پورے دستاویز کو اپنی میں thread میں laaye بغیر:
---
name: pdf-summarizer
description: "Claude Code اور OpenCode پر 45-minute، 15-concept کا مختصر تعارف. vocabulary تقریبا ایک جیسی ہے، keybinds تھوڑے مختلف ہیں؛ یہی skills دونوں tools کے درمیان transfer ہوتی ہیں."
tools: Read, Write
---
You are a research summarizer. Given a PDF path and a question, read the document, extract only the passages relevant to the question, and write a focused summary to `tmp/summary-{pdf-name}.md`. Do not paste full pages: pull out the patterns, claims, and quotes the user actually needs.
اوپر دیے گئے doc-fetcher جیسی ہی شکل، مگر الگ domain۔ 200-صفحہ PDF آپ کی گفتگو سے باہر رہتی ہے؛ صرف جواب واپس آتا ہے۔
Invocation صلاحیت سے زیادہ style میں مختلف ہے: دونوں ٹولز description کی بنیاد پر ذیلی ایجنٹس کو auto-invoke کرتے ہیں اور دونوں explicit invocation کو سپورٹ کرتے ہیں. OpenCode @subagent-name کو autocomplete میں ایک first-class invocation کے طور پر دکھاتا ہے، جو explicit form کو زیادہ qabil-e-rasai بناتا ہے; Claude Code description-based auto-pick پر زیادہ inhisaar کرتا ہے. بنیادی اکائیاں وہی ہیں، تھوڑے الگ defaults ہیں کہ آپ kitni bar کس کو استعمال کریں ge.
عام qanoon، دونوں میں یکساں: اگر کسی کام میں بہت زیادہ مطالعہ shamil ہے جو final جواب سے mutaliq نہیں ہوگی، تو وہ ایک ذیلی ایجنٹ میں shamil ہے.
حصہ 5: Duniya سے جڑنا
12. MCP، imandari سے استعمال کیا گیا
MCP (ماڈل سیاق و سباق پروٹوکول) external ٹولز (Slack، Notion، آپ کا ڈیٹا بیس، gitHub، یا کچھ بھی) کو expose کرنے کا ایک standardized طریقہ ہے ایجنٹ کو. Claude Code اور OpenCode دونوں ایک ہی پروٹوکول کا استعمال کرتے ہوئے MCP کو سپورٹ کرتے ہیں. ایک کے لیے لکھا گیا server دwasرے میں کام کرتا ہے.
configuration کا shape cosmetically مختلف ہے:
عام طور پر CLI کے zariye configure کیا جاتا ہے (claude mcp add ...) یا .claude/settings.json میں.
opencode.json میں declare کیا گیا ہے:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
},
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}
دونوں ٹولز میں یہ pitch حقیقی ہے: ایجنٹ کو آپ کے ٹولز سے جوڑتا کرنے کا matlab ہے کہ وہ آپ کے کام پر عمل کر سکتا ہے، صرف اس کے بارے میں بات نہیں کر سکتا. ایک Linear ticket پڑھنہ، ایک Slack update post کرنا، پروڈکشن read-replicas کو query کرنا: سب munasib ہیں.
دونوں ٹولز پر lagu ہونے wali ایماندار شرط یہ ہے: MCP ہمیشہ صحیح جواب نہیں ہوتا، اور کچھ تجربہ کار صارفین ne زیادہ MCP استعمال کرنے کے بجائے سادہ CLIs کو ترجیح دی ہے. وجہ یہ ہے: ایک MCP server underlying ٹول کو عملی کام کے ایک fixed سیٹ میں abstract کرتا ہے، اور ہر operation ٹول descriptions میں پہلے سے hi ایک سیاق و سباق لاگت pay کرتا ہے. ایک CLI صرف ایک CLI ہے: ایجنٹ uski --help پڑھ سکتا ہے، flags compose کر سکتا ہے، نتائج pipe کر سکتا ہے، اور improvise کر سکتا ہے. Stateless ٹولز (gitHub، AWS، Jira) کے لیے، gh، aws، اور jira CLIs اکثر ان کے MCP equivalents سے زیادہ flexible ہوتے ہیں.
OpenCode کے docs میں یہ بات واضح طور پر کہی گئی ہے: "MCP servers آپ کے سیاق و سباق میں اضافہ کرتے ہیں، اس لیے انہیں enable کرتے وقت احتیاط کرنی چاہیے. کچھ MCP servers، جیسے gitHub MCP server، بہت زیادہ tokens شامل کریں کرتے ہیں اور آسانی سے سیاق و سباق limit سے آگے جا سکتے ہیں."
ایک مفیڈ working ماڈل: MCP کو stateful یا auth-heavy services کے لیے استعمال کریں جہاں پروٹوکول layer اصل میں کام کر رہا ہو (Playwright ایک مثالی مثال ہے: browser سیشن منظم کرنا مشکل ہے). باقی سب کے لیے CLIs استعمال کریں. Das MCP servers صرف اس لیے انسٹال نہ کریں کیونکہ وہ موجود ہیں; ایک تب انسٹال کریں جب کوئی اصل وجہ ho.
حصہ 6: ایک مکمل مثال، دو بار
یہ وہ حصہ ہے جس کی طرف باقی مختصر کورس اشارہ کرتا ہے. ایک حقیقی کام، ہر تصور، دونوں ٹولز. وہی aath faisle، ایک بار Claude Code میں اور ایک بار OpenCode میں دکھائے گئے ہیں، side کے ذریعے side، تاکہ آپ دیکھ sakein کے اصل میں کتنا کم فرق ہے.
آپ کوڈ کی ایک بھی سطر نہیں likhenge. کوئی بھی shakhs جس کے پاس laptop اور فائلز کا ایک فولڈر ہو، وہ ساتھ chal سکتا ہے: ایک مینیجر، ایک استاد، ایک small-bاسیness مالک، ایک student. یہ کام ایک چھوٹی ٹیم کے meeting notes استعمال کرتا ہے، لیکن یہ school committee، volunteer group، freelance practice، یا لوگوں کہ کسی بھی aise group کے لیے اسی طرح کام کرتا ہے جو notes رکھتے ہیں اور unse action items nikalne کی ضرورت ہوتی ہے.
آپ کا کام
آپ کے پاس notes/ naam کا ایک فولڈر ہے jismein پانچ فائلز ہیں: آپ کی ٹیم کے pichle hafte کے meeting notes. وہ ganda ہیں. کچھ meetings میں action items ## عملی نکات کے tehat list کیے گئے ہیں. کچھ ## Todos استعمال کرتے ہیں. ایک lowercase ## todo استعمال کرتا ہے. کچھ action items کو dusre حصے کے اندر گہرائی میں chhupa دیتے ہیں. کچھ bullets [private] یا [HR] tag کیے گئے ہیں اور انہیں public نہیں ہونا چاہیے.
آپ کو ایک clean فائل، weekly-actions.md، چاہیے جو ہر action item کو list کرے، اسے مالک کے حساب سے group کرے، اور اس meeting کا لنک بھی دے جہاں سے وہ آیا ہے. کوئی private چیز leak نہیں ہونی چاہیے. کچھ بھی گم نہیں ہونا چاہیے. اور اگر کوئی deadline public holiday پر آتی ہے، تو warning بھی چاہیے.
📁 Get five starter فائلز پہلا (click کو expand)
شروع کرنے سے پہلے انہیں notes/ فولڈر میں copy کریں۔ یہ مثال ان کے اردگرد بنائی گئی ہے: ہر فائل کا ایک خاص role ہے، اس لیے اگر آپ ایک کو skip کرتے ہیں، تو نیچے دیے گئے steps میں سے ایک کام کرنا بند کر دے گا۔ (اگر آپ کو فولڈر سیٹ up کرنے کا دل نہیں کرتا، تو آپ پانچ فائلز کو سیدھے اپنے ٹول کے chat میں paste کر سکتے ہیں اور اسے کہہ سکتے ہیں کہ وہ انہیں notes/ کے contents سمجھے۔)
notes/2026-12-07-monday-team-meeting.md
# Monday Team Meeting - 2026-12-07
Attendees: @sara, @diego, @priya, @marcus
## Discussion
Reviewed last month's customer satisfaction scores. Renewals are down slightly in the small-business segment.
## Action Items
- @sara: draft a revised welcome email by Dec 18
- @diego: check spam-folder reports with our email vendor by Dec 16
- @marcus: pull renewal numbers for the last two quarters and share with the team
- @sara: finalize offer terms for the new account manager [HR]
notes/2026-12-08-customer-feedback.md
# Customer Feedback Review - 2026-12-08
Attendees: @sara, @amara, @marcus
## Summary
Read through the top twenty customer comments from last week. Three themes came up: pricing page is confusing, the call-back service is slow, and the FAQ on the website is out of date.
## Todos
- rewrite the pricing page in plain language
- @marcus: log a complaint with the call center vendor about response times
- look into why the FAQ has not been updated in six months
- @amara: draft a customer note explaining the upcoming changes
- review all printed brochures for outdated photos and pricing
notes/2026-12-08-q1-planning.md
# Q1 2027 Planning - 2026-12-08
Attendees: @sara, @diego, @amara, @lukas
## Initiatives
We walked through the four candidate initiatives for Q1.
### Year-end promotional campaign
Time-bound: wraps before the holiday break.
#### Action Items
- @amara: finalize the year-end promotional brochure by Dec 25
- @lukas: confirm placement with paid media partners by Dec 20
### Onboarding overhaul
Top priority next quarter.
## todo
- @diego: write the project brief by Jan 15
- @sara: own messaging and visual direction
notes/2026-12-09-all-hands-prep.md
# All-Hands Prep - 2026-12-09
Attendees: @sara, @marcus
## Agenda
Walked through the December all-hands agenda. Most slides are in good shape; a couple still need owners.
## Next Steps
- @marcus: set up the video call and record a practice run
- @sara: finalize the Q4 numbers slide
- @sara: prepare the bonus and compensation talking points [private]
- @marcus: book the venue for the team holiday dinner
notes/2026-12-11-vendor-review.md
# Vendor Review - 2026-12-11
Attendees: @sara, @amara, external partner
## Summary
Confidential contract negotiation with our printing and fulfillment vendor. Details under NDA.
## Action Items
- @sara: circulate the revised contract to the vendor [private]
- @amara: draft the internal announcement once terms are agreed [private]
- @sara: review the legal redlines on the new pricing schedule [private]
کیسے تو پڑھیں یہ حصہ
ہر کا eight سیاق و سباق کا نظم فیصلے سے یہ باب gets ایک numbered step below. ہر step has وہی shape:
- کیا آپ کریں: exact thing آپ type یا press
- کیوں: ایک paragraph on کیا یہ فیصلہ ہے buying آپ
- کیا تبدیلیاں میں OpenCode: نسخہ کے لیے دwasرا ٹول
If ایک step says "identical میں OpenCode" آپ سکتا ہے skip کہ سطر اور move on.
فیصلہ 1: Trim قواعد فائل
کیا آپ کریں (Claude Code). کھولیں Claude Code میں آپ کا پروجیکٹ فولڈر. چلائیں /init. یہ بناتا ہے ایک فائل called CLAUDE.md کہ ہے much too long. Delete زیادہ تر کا یہ. Leave صرف یہ:
# weekly-rollup
## Layout
- `notes/`: meeting notes, one file per meeting
- `weekly-actions.md`: the rollup we are creating
- `plans/weekly-rollup-plan.md`: the plan we will save and reuse
## Critical rules
- Action items can appear under `## Action Items`, `## Todos`, `## Next Steps`, or `## todo` (one meeting uses lowercase). Look at all heading levels, not just the top.
- Owners are written as `@name`. Items with no owner go to an "Unassigned" section.
- Never include any bullet tagged `[private]` or `[HR]`.
کیوں. یہ فائل ہے پڑھیں پر شروع کریں کا every message. کوئی بھی چیز آپ put یہاں لاگتیں آپ، ہر turn. اس لیے آپ رکھیں یہ short: صرف things ماڈل نہیں کر سکتا figure باہر کے ذریعے looking پر فولڈر itself. پرائیویسی قاعدہ، especially، ہے something یہ نہیں کر سکتا guess.
کیا تبدیلیاں میں OpenCode. فائل ہے named AGENTS.md بجائے کا CLAUDE.md. وہی content، وہی purpose. (اور if آپ پہلے ہی رکھتے ہیں ایک CLAUDE.md سے پہلے، OpenCode گا پڑھیں کہ too; آپ کریں نہیں رکھتے ہیں کو rename کوئی بھی چیز.)
فیصلہ 2: منصوبہ پہلے writing
کیا آپ کریں (Claude Code). Press Shift+Tab twice. یہ puts ماڈل میں plan mode: یہ سکتا ہے پڑھیں آپ کا فائلز مگر نہیں کر سکتا تبدیلی کوئی بھی چیز. پھر type:
Read every file in notes/. Produce weekly-actions.md grouped by
owner. For each item include the action, the source filename, and
the meeting date. Skip anything tagged [private] or [HR]. Do not
lose any action items.
ماڈل thinks کے لیے ایک منٹ، پھر آتا ہے back کے ساتھ ایک لکھا گیا منصوبہ describing exactly کیا یہ intends کو کریں.
کیوں. یہ ہے زیادہ تر underused feature میں either ٹول. مطالعہ ایک منصوبہ لیتا ہے 30 seconds. Reverting ایک bad تبدیلی لیتا ہے much longer. آپ ہمیشہ چاہتے ہیں منصوبہ پہلا.
کیا تبدیلیاں میں OpenCode. Press Tab کو switch سے Build ایجنٹ کو Plan ایجنٹ. brief اور result ہیں identical; صرف keystroke differs.
فیصلہ 3: Push back on منصوبہ
کیا آپ کریں (Claude Code). پڑھیں منصوبہ carefully. دو things گا probably be wrong کے ساتھ یہ.
پہلا: یہ گا صرف mention top-level headings (## Action Items، ## Todos). مگر ایک کا آپ کا meeting فائلز ( Q1 planning notes) hides action items اندر ### Year-end promotional campaign، کے ساتھ ایک #### Action Items underneath. منصوبہ would miss those.
second: یہ گا نہیں کہتے ہیں کیا کو کریں کے ساتھ action items کہ رکھتے ہیں نہیں مالک (نہیں @name اگلا کو انہیں، like customer-رائے فائل's "rewrite قیمتوں کا تعین صفحہ میں plain زبان"). Those would silently disappear.
آپ push back:
Two changes. (1) Look at all heading levels, not just the top.
Some action items live under sub-headings. (2) Items without an
owner go to an "Unassigned" section at the bottom; never drop
them.
ماڈل updates منصوبہ. آپ پوچھیں یہ کو save final منصوبہ کو plans/weekly-rollup-plan.md اس لیے آپ سکتا ہے reuse یہ اگلا Friday.
کیوں. منصوبہ ہے ایک contract. آپ catch problems یہاں، جب they لاگت آپ nothing، نہیں بعد فائل has پہلے ہی been لکھا گیا اور آپ رکھتے ہیں کو clean up.
کیا تبدیلیاں میں OpenCode. IDEntical.
فیصلہ 4: Let یہ کریں کام
کیا آپ کریں (Claude Code). Press Shift+Tab کو leave منصوبہ بندی کا طریقہ. Tell ماڈل کو جائیں ahead.
یہ reads five فائلز. یہ writes weekly-actions.md. یہ گروہ items کے ذریعے مالک. یہ drops [private] اور [HR] bullets. یہ puts orphan items میں ایک Unassigned حصہ. آپ watch یہ happen.
کیوں. Up کو یہ point آپ رکھتے ہیں been careful. اب آپ let یہ کام. کیونکہ آپ planned، کام ہے mostly درست on پہلا try.
کیا تبدیلیاں میں OpenCode. آپ گا be asked کو approve ہر فائل لکھیں پہلا وقت. آپ سکتا ہے کہتے ہیں yes، یا آپ سکتا ہے pre-approve عام actions میں opencode.json کو بنائیں later چلتا ہے smoother.
فیصلہ 5: Summarize جب گفتگو gets long
کیا آپ کریں (Claude Code). گفتگو ہے اب long. ماڈل has پڑھیں ہر meeting note، اور ایک lot کا کہ raw content ہے اب بھی sitting میں اس کا memory، including some کا private bullets یہ correctly skipped. آپ کریں نہیں ضرورت any کا کہ anymore. آپ type:
/compact keep the heading rules, the owner list, and the
private/HR exclusion rule
گفتگو gets summarized down کو just parts آپ told یہ کو رکھیں.
کیوں. ایک long، cluttered گفتگو بناتا ہے ماڈل worse، نہیں بہتر. یہ بھی لاگتیں زیادہ. آپ واضح باہر کیا ہے نہیں longer relevant، especially private content، کون سا چاہیے نہیں sit میں memory longer than یہ ضرورت ہے کو.
کیا تبدیلیاں میں OpenCode. IDEntical کمانڈ.
فیصلہ 6: سیٹ ایک safety net کے لیے committing
کیا آپ کریں (Claude Code). پہلے آپ save آپ کا کام کو git، آپ چاہتے ہیں کو بنائیں sure نہیں meeting got accidentally skipped. آپ پوچھیں ماڈل کو شامل کریں ایک hook: ایک چھوٹا safety net کہ چلتا ہے automatically پہلے ہر commit. ماڈل writes ترتیب میں .claude/settings.json. آپ کریں نہیں ضرورت کو پڑھیں کوڈ; ماڈل writes یہ. کیا یہ کرتا ہے ہے سادہ: پہلے any git commit ہے allowed کو چلائیں، ہک checks کہ ہر meeting فائل ہے mentioned somewhere میں rollup. If ایک ہے missing، یہ blocks commit.
ہک ماڈل writes (آپ کریں نہیں ضرورت کو پڑھیں یہ)
{
"hooks": {
"PreToolUse": [
{
"matcher": "bash(git commit *)",
"command": "for f in notes/*.md; do grep -q \"$(basename $f)\" weekly-actions.md || { echo \"Missing: $f\" >&2; exit 2; }; done"
}
]
}
}
ماڈل tries کو commit. safety net blocks یہ: ایک meeting (notes/2026-12-11-vendor-review.md) was completely skipped، کیونکہ ہر action item میں کہ meeting was tagged [private]. ماڈل reads error، fixes rollup کے ذریعے adding ایک one-line note ("All items confidential، دیکھیں meeting مالک")، اور tries کو commit again. یہ وقت یہ کام کرتا ہے.
آپ did nothing during یہ چکر. safety net caught mistake اور ماڈل fixed itself.
کیوں. Things آپ چاہتے ہیں کو be true every single time چاہیے نہیں depend on ماڈل remembering. They چاہیے be checked automatically.
کیا تبدیلیاں میں OpenCode. OpenCode calls یہ plugins بجائے کا ہکس، اور they ہیں لکھا گیا بطور ایک چھوٹا JavaScript فائل. وہی خیال، وہی نتیجہ، اور ماڈل writes فائل کے لیے آپ، just like میں Claude Code.
پلگ ان ماڈل writes (آپ کریں نہیں ضرورت کو پڑھیں یہ either)
// .opencode/plugins/check-rollup-complete.js
import { readdirSync, readFileSync } from "fs";
export const CheckRollupCompletePlugin = async ({ $ }) => {
return {
"tool.execute.before": async (input, output) => {
if (
input.tool === "bash" &&
output.args.command?.startsWith("git commit")
) {
const rollup = readFileSync("weekly-actions.md", "utf8");
const missing = readdirSync("notes")
.filter((f) => f.endsWith(".md"))
.filter((f) => !rollup.includes(f));
if (missing.length) {
throw new Error(`Missing from rollup: ${missing.join(", ")}`);
}
}
},
};
};
thing کو notice ہے کہ behavior ہے identical: missing فائل، commit blocked، ماڈل fixes itself.
فیصلہ 7: Send ایک side-کام کو ایک helper
کیا آپ کریں (Claude Code). Some action items رکھتے ہیں deadlines like "کے ذریعے Dec 25" یا "پہلے year-end." آپ چاہتے ہیں کو flag any کہ fall on ایک public holiday اس لیے owners سکتا ہے adjust. آپ type:
Use the doc-fetcher helper to look up the 2026 international
public holidays list and write the dates to tmp/holidays-2026.md.
ایک separate helper goes off، fetches ایک long صفحہ سے ویب، extracts صرف dates، اور writes انہیں کو ایک چھوٹا فائل. آپ کا مرکزی گفتگو صرف sees چھوٹا فائل، نہیں long صفحہ.
ماڈل پھر reads deadlines میں آپ کا rollup، cross-references holidays، اور adds ایک note: ⚠ falls on Christmas Day اگلا کو brochure deadline.
کیوں. Going کو fetch ایک ویب صفحہ directly would رکھتے ہیں dumped صفحات کا text میں آپ کا گفتگو، making یہ slow اور cluttered. Sending ایک helper کو کریں یہ بجائے means صرف answer آتا ہے back، نہیں noise.
کیا تبدیلیاں میں OpenCode. آپ سکتا ہے type @doc-fetcher directly کو call helper; یہ دکھاتا ہے up میں autocomplete. وہی helper، easier کو invoke.
فیصلہ 8: Save کیا آپ learned
کیا آپ کریں (Claude Code). یہ ہے ایک Friday ritual; آپ گا کریں یہ ہر week. آپ کریں نہیں چاہتے ہیں کو remember all کا یہ فیصلے اگلا Friday. اس لیے آپ پوچھیں ماڈل کو save انہیں بطور ایک skill:
Create a skill at ~/.claude/skills/weekly-meeting-rollup/SKILL.md
based on what we just did. Include: the four heading variants,
the all-headings rule, the private/HR exclusion, the Unassigned
section, the missing-file check, and the holiday cross-reference.
اگلا Friday، آپ گا just type "کریں weekly rollup" اور ماڈل گا pull یہ مہارت میں automatically. ہر فیصلہ آپ بنایا گیا today، applied کے لیے free.
کیوں. یہ ہے payoff. کام آپ did یہ week was نہیں just کے لیے یہ week; یہ taught ماڈل کیسے کو کریں یہ کام forever.
کیا تبدیلیاں میں OpenCode. مہارت saves کو ایک slightly مختلف فولڈر (~/.config/opencode/skills/...)، مگر فائل itself ہے byte-for-byte identical. Copy یہ درمیان دو ٹولز اور یہ کام کرتا ہے میں دونوں. کہ ہے strongest possible proof کا باب's thesis.
کیا just happened
دیکھیں back پر eight steps. None کا انہیں required آپ کو لکھیں کوڈ. None کا انہیں required آپ کو جانیں کیا ایک API ہے. کیا آپ اصل میں did was eight چھوٹا acts کا managing ماڈل's attention: telling یہ کیا کو دیکھیں پر، جب کو منصوبہ، جب کو forget، جب کو نمائندہ، جب کو stop trusting itself، اور جب کو remember.
یہی اس پورے باب کا خلاصہ ہے۔
اور دیکھیں پر کیسے little differed درمیان دو ٹولز:
- ایک مختلف filename کے لیے قواعد فائل (
CLAUDE.mdvsAGENTS.md) - ایک مختلف keystroke کو enter منصوبہ بندی کا طریقہ (
Shift+TabvsTab) - ایک مختلف زبان کے لیے safety-net فائل (JSON vs JavaScript)
- ایک مختلف فولڈر کے لیے مہارت پر end (مگر same فائل)
بس یہی ہے۔
thinking ہے ٹول. configs ہیں decoration. سیکھیں کو think یہ طریقہ اور آپ کا مہارتیں survive whichever ٹول wins.
Part 7: کہاں کو چلائیں یہ، اور کیسے کو grow
13. terminal، IDE، یا desktop?
دونوں ٹولز چلائیں میں several places.
Claude Code: ٹرمینل، VS کوڈ / JetBrains پلگ انز، Claude ڈیسک ٹاپ ایپ، اور کلاؤڈ-hosted variants کے لیے async کام.
OpenCode: ٹرمینل (TUI ہے flagship)، ڈیسک ٹاپ ایپ (ان beta on macOS/Windows/Linux)، IDE extension via ACP سپورٹ، ویب interface via SDK، plus gitHub اور gitLab integrations.
چنیں مبنی on کیا آپ're doing. کے لیے greenfield development کے ساتھ lots کا فائل editing، IDE پلگ انز ہیں مشکل کو beat: آپ watch diff happen. کے لیے long-running کام کہاں آپ چاہتے ہیں notifications اور متوازی سیشنز، ٹرمینل ہے fine. کے لیے non-coding کام اور scheduled jobs، ڈیسک ٹاپ ایپس ہیں زیادہ pleasant.
مضبوط recommendation، میں either ٹول: شروع کریں میں ٹرمینل یا ایک IDE پلگ ان. Once آپ understand کیا کا happening underneath (کون سا فائلز ماڈل reads، کون سا کمانڈز یہ چلتا ہے، کون سا فیصلے یہ بناتا ہے)، ہر دwasرا interface بن جاتا ہے ایک thin wrapper آپ سکتا ہے پڑھیں کے ذریعے. If آپ شروع کریں میں ایک heavily abstracted UI، آپ'll struggle کو خرابی دور کرنا جب things جائیں sideways، کیونکہ آپ won't جانیں کیا can جائیں sideways.
14. تعمیر ایک ذاتی سیاق و سباق library، slowly
Once آپ رکھتے ہیں ایک few پروجیکٹس استعمال کرتے ہوئے either ٹول، آپ'll notice آپ're writing similar things میں ہر قواعد فائل: آپ کا کوڈ style، آپ کا commit conventions، آپ کا testing philosophy. Stop copy-pasting.
Put shared parts میں آپ کا home ترتیب اور reference انہیں سے ہر پروجیکٹ کا قواعد فائل:
~/.claude/:
# CLAUDE.md
@~/.claude/style/typescript.md
@~/.claude/style/commits.md
## Project-specific
[only the things unique to this project]
~/.config/opencode/:
// ~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["style/typescript.md", "style/commits.md"]
}
Plus ایک project-specific AGENTS.md کے لیے کیا کا unique کو کہ پروجیکٹ.
وہی خیال کام کرتا ہے کے لیے مہارتیں. ایک commit-message مہارت یا code-review مہارت میں ~/.claude/skills/ (کون سا OpenCode بھی reads) یا ~/.config/opencode/skills/ ہے دستیاب everywhere automatically.
طریقہ کار: don't pre-تعمیر یہ. یہ کا tempting کو spend ایک Saturday designing perfect ذاتی سیٹ اپ. Resist. ہر entry چاہیے come سے ایک حقیقی ناکامی: ایک moment کہاں ماڈل got something wrong، یا آپ typed وہی thing کے لیے third وقت. تعمیر سے regret، نہیں سے imagination. library کہ grows سے حقیقی friction ہے چھوٹا اور useful; ایک ڈیزائن کیا گیا میں advance ہے بڑا اور ignored.
15. memory beyond basics
Built-in resume + ایک well-tended قواعد فائل covers زیادہ تر لوگ زیادہ تر کا وقت. If آپ ضرورت زیادہ (تلاش across past conversations، persistent پروجیکٹ notes، علم کہ survives /clear)، آپ رکھتے ہیں options:
- ایک
notes/فولڈر میں پروجیکٹ، کے ساتھ ایجنٹ writing structured notes بعد major کام. سستا، پائیدار، greppable. Surprisingly effective. کام کرتا ہے میں دونوں ٹولز بغیر any سیٹ اپ. - ایک memory MCP server. Several exist; they دیں ایجنٹ ایک explicit save/recall API. کام کرتا ہے میں دونوں ٹولز.
- Vector تلاش پر آپ کا گفتگو history کے لیے "رکھتے ہیں I solved یہ پہلے" queries. ٹول-specific عملی صورتیں exist; چیک نظام صفحات.
چنیں مبنی on کیا آپ اصل میں چاہتے ہیں کو remember. If یہ کا "فیصلے اور gotchas کے لیے یہ codebase،" ایک notes/ فولڈر ہے enough. If یہ کا "everything I've ever told ماڈل across all پروجیکٹس،" آپ چاہتے ہیں something heavier. Don't انسٹال بنیادی ڈھانچا آپ don't رکھتے ہیں ایک problem کے لیے.
Part 8: Composing Claude Code اور OpenCode
earlier parts treated Claude Code اور OpenCode بطور alternatives — چنیں ایک، سیکھیں یہ. کہ framing was deliberate: ہر تصور ضرورت ہے کو بنائیں sense میں either ٹول پہلے آپ complicate things. مگر once آپ رکھتے ہیں بنیادی اصول، زیادہ interesting سوال ہے composition. دو ٹولز استعمال ہوا together on وہی پروجیکٹ ہیں نہیں just ایک fallback میں case ایک fails. They're ایک مختلف طریقہ کا working — اور بنیادی طریقہ کا استعمال کرتے ہوئے انہیں together ہیں worth ان کا اپنا part.
substrate: git worktrees
پہلے طریقے، operational layer کہ بناتا ہے any کا یہ safe.
دونوں ٹولز سپورٹ متوازی سیشنز، مگر if دو ایجنٹس edit وہی فائل پر وہی وقت، last لکھیں wins اور آپ get stomped diffs. fix ہے git worktrees: ہر worktree ہے ایک checked-out copy کا آپ کا repo پر ایک مختلف branch، sharing وہی .git directory. دو ایجنٹس میں دو worktrees سکتا ہے edit مختلف فائلز میں متوازی بغیر ever touching وہی path.
# from your main repo directory
git worktree add ../myproject-backend feature/auth-core
git worktree add ../myproject-frontend feature/auth-ui
# now you have two parallel working dirs, two branches
cd ../myproject-backend && claude
# in another terminal
cd ../myproject-frontend && opencode
Remove worktrees کے ساتھ git worktree remove ../myproject-backend جب کام ہے مکمل.
فائل-edit قاعدہ، میں three tiers:
| نمونہ | Verdict |
|---|---|
| دو سیشنز editing وہی فائل simultaneously | Bad — last لکھیں wins، دwasرا سیشن's edits ہیں lost |
| دو سیشنز editing مختلف directories | اچھا — نہیں contention، متوازی speedup ہے حقیقی |
| ایک سیشن edits، commits، hands off کو دwasرا | Acceptable — commit ہے ہینڈ آف آرٹفیکٹ |
قاعدہ کا thumb: شروع کریں کے ساتھ ایک سیشن per کام. شامل کریں ایک second صرف جب آپ سکتا ہے clearly point پر کون سا فائلز ہر سیشن owns. cognitive لاگت کا سیاق و سباق-switching درمیان دو agentic سیشنز ہے حقیقی; یہ کا صرف ایک کامیابی جب کام genuinely partitions.
shared layer کہ بناتا ہے any کا یہ کام ہے پروجیکٹ کا قواعد اور مہارتیں. دونوں ٹولز پڑھیں وہی CLAUDE.md اور وہی .claude/skills/ directory (تصورات 7 اور 9 cover یہ). ایک حقیقت کا مستند ماخذ کے لیے پروجیکٹ conventions; دو ٹولز consuming یہ.
نمونہ 1: منصوبہ / Execute split
مہنگا cognitive کام میں ایجنٹک کوڈنگ ہے planning — مطالعہ codebase، deciding طریقہ، anticipating edge cases. سستا mechanical کام ہے implementing ایک منصوبہ کہ پہلے ہی موجود ہے. Pricing reflects یہ: frontier-tier ماڈلز لاگت roughly ایک order کا magnitude زیادہ per token than economy-tier ماڈلز، اور they earn کہ price on planning، نہیں on implementation.
composition:
- کھولیں Claude Code میں منصوبہ بندی کا طریقہ (تصور 2). state brief. Let یہ پیدا کریں ایک منصوبہ.
- Save منصوبہ کو
docs/plans/feature-x.md. - کھولیں OpenCode میں ایک separate worktree، pointed پر ایک economy ماڈل (Part 9 has سیٹ اپ). پہلا message:
read docs/plans/feature-x.md and implement it. - OpenCode کرتا ہے فائل edits، چلتا ہے tests، fixes lint.
- (Optional) کھولیں Claude Code again کو جائزہ diff پہلے merge.
منصوبہ فائل ہے contract. یہ survives سیشن loss، encodes ڈھانچے سے متعلق فیصلے، اور lets سستا سیشن کام بغیر redoing مہنگا thinking. یہ طریقہ alone often delivers زیادہ تر کا لاگت savings ٹیمیں hope کو get سے "switching کو ایک cheaper ماڈل،" بغیر losing معیار کا frontier-ماڈل planning.
نمونہ 2: Cross-ماڈل جائزہ
مختلف ماڈلز رکھتے ہیں مختلف blind spots. ایک ماڈل کہ wrote ایک piece کا کوڈ ہے worst possible reviewer کے لیے کہ کوڈ، کیونکہ یہ has وہی blind spots کہ produced original. ایک ماڈل سے ایک مختلف family — مختلف training ڈیٹا، مختلف استدلال habits — گا catch things author missed.
composition:
- ٹول ایک (any ماڈل) implements ایک feature on اس کا اپنا worktree.
- ٹول B (مختلف ماڈل، خیالlly مختلف family) reads diff اور writes ایک تنقیدی جائزہ کو
docs/reviews/feature-x.md. reviewer کرتا ہے نہیں edit; یہ پیدا کرتا ہے text. - ٹول ایک reads جائزہ اور decides کون سا points کو act on.
یہ ہے زیادہ useful than یہ sounds. Reviewers running on سستا economy ماڈلز catch surprising amounts کا حقیقی قدر: missing edge cases، سیکیورٹی oversights، naming inconsistencies، dead کوڈ. dollar لاگت کا running ایک جائزہ pass ہے چھوٹا; وقت لاگت کا catching ایک bug بعد merge ہے بڑا.
طریقہ کام کرتا ہے بہترین جب reviewer اور implementer come سے مختلف ماڈل families — Claude reviewing Claude misses کیا GPT یا DeepSeek would catch، اور vice versa. Same-family جائزہ ہے اب بھی بہتر than نہیں جائزہ، مگر قدر ہے میں diversity، نہیں act.
نمونہ 3: Architect / IC role split
کے لیے ٹیمیں یا classes کے ساتھ mixed seniority، dual-ٹول سیٹ اپ سکتا ہے map onto roles بجائے کا کام.
- Architect tier. Senior developers، instructors، lead engineers running Claude Code on frontier-tier ماڈلز. Smaller seat count، higher per-seat لاگت، مگر کام justifies یہ.
- IC tier. Junior developers، students، contributors running OpenCode on economy-tier ماڈلز. بڑا seat count، much lower per-seat لاگت، plenty کا صلاحیت کے لیے well-specified کام.
دونوں tiers پڑھیں وہی CLAUDE.md، وہی .claude/skills/، وہی docs/plans/. (OpenCode reads دونوں CLAUDE.md اور .claude/skills/ بطور fallbacks — تصورات 7 اور 9 cover بنیادی طریقہ.) ایک حقیقت کا مستند ماخذ کے لیے پروجیکٹ conventions، دو tiers کا صلاحیت consuming یہ.
طریقہ کہ lets ایک ٹیم کا fifty move کے ساتھ rigor کا ایک ٹیم کا ten: architects پیدا کریں منصوبے اور مہارتیں; ICs implement کے خلاف انہیں; جائزے flow back up.
کیا stays single-ٹول
Composition has overhead. دو ٹولز means دو configs، دو اجازت lists، دو notification setups. کے لیے زیادہ تر short کام — ایک single function، ایک فوری refactor، ایک bug fix — ایک single سیشن ہے زیادہ تیز، simpler، اور cheaper than orchestrating across ٹولز.
Reach کے لیے composition جب کام ہے بڑا enough کہ planning ہے genuinely separable سے implementation، جب لاگت کا ایک frontier ماڈل on entire کام would be wasteful، یا جب قدر کا ایک independent جائزہ pass exceeds اس کا لاگت. کے لیے everything else، single-سیشن طریقہ کار سے Parts 1–7 ہے درست move.
configs ہیں decoration. تصورات ہیں ٹول. Composition ہے just کیا ہوتا ہے جب آپ stop treating ایک ٹول اور ایک ماڈل بطور unit کا کام، اور شروع کریں treating the ایجنٹک کوڈنگ session بطور unit بجائے.
Part 9: Running OpenCode on economy-tier ماڈلز
shape کا یہ part: لاگت ہے constraint، OpenCode ہے ٹول، اور پر وقت کا writing DeepSeek V4 Pro اور DeepSeek V4 Flash ہیں running مثال کے لیے "economy tier." جب specific ماڈل names تبدیلی — اور they گا — framing میں یہ part اب بھی applies. economics رکھتے ہیں decisively shifted میں favor کا running زیادہ تر کوڈنگ کام on سستا، capable، open-weight ماڈلز. یہ part ہے کے بارے میں doing کہ اچھی طرح.
یہ کیوں اہم ہے: ہر token ہے paid، ہر turn
single نکتہ کہ turns affordability سے ایک constraint میں ایک طریقہ کار:
بطور تصور 4 noted، ہر turn re-bills whole سیاق و سباق. یہاں کا لاگت dimension کا کہ fact: twenty turns میں ایک سیشن کے ساتھ 50K tokens کا سیاق و سباق، آپ've پہلے ہی paid کے لیے ایک million tokens کا داخلہ — اور کہ کا پہلے counting ماڈل's responses. fuel gauge isn't visible، مگر meter ہے running ہر turn.
Three numbers worth internalizing:
- نتیجہ tokens لاگت زیادہ than داخلہ tokens — typically 2–10× زیادہ، depending on provider اور tier. ایک ماڈل کہ "thinks باہر loud" پہلے answering ہے paying مکمل نتیجہ rates کے لیے thinking. Concise پرامپٹس اور concise نظام instructions matter کے لیے وہی وجہ ایک چھوٹا dinner bill matters: یہ کا نہیں ایک مہنگا item، یہ کا multiplication across ہر meal.
- Cache hits ہیں essentially free. زیادہ تر providers offer ایک steep discount (often 90%+) on داخلہ tokens کہ مطابق ایک previously-seen prefix. Stable نظام پرامپٹس، stable قواعد فائلز، اور stable مہارت loadings ہیں کیا trigger cache hits. یہ ہے mechanical وجہ
CLAUDE.mdطریقہ کار سے تصور 7 matters: ایک tight، stable قواعد فائل ہے cached اور re-cached پر ایک fraction کا لاگت; ایک churning، bloated ایک gets re-billed ہر turn پر مکمل price. - subagents ہیں token-multipliers. ایک ذیلی ایجنٹ کہ reads thirty فائلز کو summarize ایک paragraph has پڑھیں those فائلز; آپ pay کے لیے انہیں. summary ہے سستا; کام کو پیدا کریں یہ isn't. subagents ہیں اب بھی worth استعمال کرتے ہوئے — they رکھیں noise باہر کا مرکزی thread — مگر they aren't free.
Cost طریقہ کار اور سیاق و سباق طریقہ کار ہیں وہی طریقہ کار. آپ just feel ایک کا انہیں میں آپ کا wallet.
مطالعہ meter:
- Claude Code:
/costدکھاتا ہے سیشن token usage اور ایک dollar estimate. - OpenCode: حالت bar دکھاتا ہے running token counts; بہت سے providers expose per-call لاگت میں response payload.
قاعدہ کا thumb: glance پر meter پر شروع کریں کا ایک سیشن اور again halfway کے ذریعے. If second number ہے زیادہ than triple پہلا، آپ کا سیاق و سباق has bloated اور آپ کا اگلا /compact یا /clear ہے overdue.
دو tiers، ایک routing فیصلہ
ماڈلز cluster میں دو functional tiers، regardless کا provider:
Frontier tier — maximum استدلال صلاحیت، slowest، زیادہ تر مہنگا. Worth استعمال کرتے ہوئے جب کام درکار ہے حقیقی ڈھانچے سے متعلق judgment، جب ایک economy ماڈل has پہلے ہی failed once، جب آپ're debugging something subtle، یا جب ایک wrong جواب ہے costly کو discover later.
Economy tier — مضبوط on well-specified کام، تیز، سستا. Worth استعمال کرتے ہوئے جب کام ہے mechanical، جب وہاں کا ایک existing منصوبہ کو follow، جب آپ're generating tests یا boilerplate، جب آپ're iterating on چھوٹا تبدیلیاں.
mistake students بنائیں ہے staying on whichever tier ان کا ٹول defaults کو. ایک frontier ماڈل implementing ایک clearly-specified منصوبہ ہے paying premium rates کے لیے کام ایک economy ماڈل would کریں correctly. ایک economy ماڈل attempting مشکل ڈھانچہ سے scratch ہے producing shallow منصوبے کہ اگلا سیشن has کو throw away.
دو routing طریقے کہ matter:
- منصوبہ on frontier، implement on economy. استعمال کریں Claude Code میں منصوبہ بندی کا طریقہ کو پیدا کریں ایک لکھا گیا منصوبہ. Save یہ کو
docs/plans/feature-x.md. کھولیں OpenCode pointed پر ایک economy ماڈل اور کہتے ہیں "implementdocs/plans/feature-x.md." یہ ہے وہی Plan/Execute طریقہ سے Part 8، نمونہ 1. - Escalate on visible ناکامی. چلائیں economy کے ذریعے default. جب ماڈل پیدا کرتا ہے wrong جوابات، repeats itself، یا visibly struggles، switch کو frontier کے لیے کہ turn یا کہ subtask. Switch back جب مشکل part ہے مکمل. وہی طریقہ ایک انجینئرنگ ٹیم استعمال کرتا ہے: junior devs implement، senior devs unblock.
استدلال-effort knobs
زیادہ تر modern ماڈلز — including DeepSeek V4 Pro اور V4 Flash — expose ایک کنٹرول پر کیسے much internal "thinking" ماڈل کرتا ہے پہلے answering. names vary (reasoning_effort، thinking budget، xhigh / high / medium / low) مگر mechanic ہے وہی: زیادہ thinking equals زیادہ نتیجہ tokens، equals زیادہ لاگت اور latency، میں exchange کے لیے بہتر جوابات on مشکل problems.
بہت سے ٹولز default یہ کو high کیونکہ vendors چاہتے ہیں ان کا ماڈل کو دیکھیں اچھا میں benchmarks. کے لیے routine کام، کہ کا wasteful. کے لیے مشکل problems، یہ کا درست. مہارت ہے matching knob کو کام:
- Low / medium — mechanical edits، doc updates، formatting، سادہ refactors، generating tests. Burning extra tokens on thinking buys nothing.
- High — planning ایک feature، debugging tricky issues، deciding ڈھانچہ، reviewing کے لیے subtle bugs. حقیقی استدلال ہے required.
- Maximum (xhigh / extended) — novel algorithms، مشکل correctness proofs، debugging کہ has پہلے ہی failed پر high. استعمال کریں sparingly. لاگت gap درمیان high اور xhigh ہے often 3–10×، اور معیار gap ہے much smaller کے لیے زیادہ تر کام.
Pointing OpenCode پر DeepSeek V4
DeepSeek V4 ships میں دو variants. V4 Pro ہے frontier-comparable ماڈل — statistically tied کے ساتھ leading closed-ماخذ ماڈلز on کوڈنگ benchmarks پر ایک fraction کا لاگت. V4 Flash ہے economy workhorse — ڈیزائن کیا گیا کے لیے تیز inference اور high-throughput ایجنٹ workloads، جبکہ keeping مضبوط استدلال اور کوڈنگ ability. دونوں ship کے ساتھ ایک 1M-token سیاق و سباق کی گنجائش اور MIT-licensed کھولیں weights.
12× داخلہ price difference درمیان Flash اور Pro پر standard قیمتوں کا تعین ہے بڑا enough کو تبدیلی پروڈکٹ economics. کے لیے زیادہ تر کوڈنگ کام — implementation، tests، doc updates، codemods — V4 Flash ہے default. Reach کے لیے V4 Pro جب کام warrants frontier صلاحیت.
Verify exact NPM module name اور DeepSeek ماڈل strings کے خلاف
opencode.ai/docs/providersاور DeepSeek ماڈل card پہلے copying — schema below ہے structurally درست مگر vendor-specific fields drift درمیان releases.
configuration via DeepSeek API directly — opencode.json:
{
"provider": {
"deepseek": {
"npm": "@ai-sdk/deepseek",
"options": {
"baseURL": "https://api.deepseek.com/v1",
"apiKey": "{env:DEEPSEEK_API_KEY}"
},
"models": {
"deepseek-v4-flash": { "name": "DeepSeek V4 Flash" },
"deepseek-v4-pro": { "name": "DeepSeek V4 Pro" }
}
}
},
"model": "deepseek/deepseek-v4-flash"
}
configuration via OpenRouter (if آپ چاہتے ہیں unified billing across multiple providers):
{
"provider": {
"openrouter": {
"options": { "apiKey": "{env:OPENROUTER_API_KEY}" }
}
},
"model": "openrouter/deepseek/deepseek-v4-flash"
}
سیٹ API اہم بطور ایک ماحول variable میں آپ کا shell rather than committing یہ کو ترتیب فائل. Switch ماڈلز per-سیشن اندر OpenCode استعمال کرتے ہوئے /models.
OpenCode docs اور DeepSeek API docs ہیں مستند ذرائع جب ترتیب details تبدیلی; shapes above گا drift.
ایک sharp edge worth knowing
If آپ کا curriculum involves self-hosting V4 (running یہ locally via vLLM یا similar rather than calling API)، وہاں ہے نہیں standard HuggingFace Jinja chat template کے لیے V4. Naive tokenizer pipelines کہ فرض کرنا ایک گا silently پیدا کریں malformed پرامپٹس. استعمال کریں encoding scripts کہ ship کے ساتھ ماڈل on HuggingFace، نہیں ایک generic chat template. یہ bites students who try کو self-host پہلے مطالعہ ماڈل card.
کے لیے everyone استعمال کرتے ہوئے hosted API، یہ doesn't apply.
Cost-related ناکامی طریقے
Five symptoms cover زیادہ تر کا surprise bills students گا دیکھیں میں ان کا پہلا three months:
Symptom: token usage spiked suddenly mid-session
→ Cause: rules file or system prompt changed, breaking cache hits.
Fix: revert the change, or accept the cache miss as a one-time cost.
Symptom: each turn costs noticeably more than the previous one
→ Cause: context is growing without bound. Files keep getting read in,
exploration output is accumulating, conversation is long.
Fix: /compact with a "keep architectural decisions and current
file paths" hint.
Symptom: model is over-explaining, producing walls of text
→ Cause: reasoning effort is too high for the task; or the prompt
invites narration.
Fix: turn down the reasoning knob; ask for "code only,
minimal commentary."
Symptom: monthly bill is much higher than expected
→ Cause: running V4 Pro on tasks V4 Flash would handle correctly.
Fix: route mechanical work to Flash; reserve Pro for planning
and hard reasoning.
Symptom: cache hits suddenly dropped from ~70% to ~10%
→ Cause: the system prompt, CLAUDE.md, or the first user message
changed structure. Cache matches prefixes byte-for-byte.
Fix: stabilize what comes first; let the variable content
come later.
زیادہ تر ہیں recoverable میں ایک single ترتیب تبدیلی.
ایک realistic لاگت expectation
ایک moderate student running OpenCode on V4 Flash — ایک 90-منٹ سیشن per دن، five days ایک week، کے ساتھ reasonable سیاق و سباق طریقہ کار — چاہیے expect کو spend ایک few dollars ایک month بعد ان کا initial sign-up grant چلتا ہے باہر. ایک heavy student running بڑا contexts اور multiple سیشنز per دن might spend ten کو twenty. students who blow past یہ numbers رکھتے ہیں almost ہمیشہ skipped لاگت-طریقہ کار content above: bloated قواعد فائلز، نہیں /compact طریقہ کار، frontier ماڈل استعمال ہوا کے ذریعے default، dumping codebases میں سیاق و سباق ہر turn.
طریقہ کار taught میں یہ part ہے difference درمیان ایک curriculum کہ students experience بطور nearly free اور ایک they experience بطور مہنگا. وہی ماڈلز، وہی کام، بہت مختلف bills.
اس میں واقعی اچھے کیسے بنیں
صرف یہ مختصر کورس پڑھ لینے سے آپ ایجنٹک کوڈنگ میں اچھے نہیں بن جاتے. اصل مہارت اسے استعمال کرنے سے آتی ہے، اور راستہ کچھ یوں بنتا ہے:
آپ آغاز manual طریقہ سے کرتے ہیں. پھر رگڑ محسwas ہوتی ہے: ہر منظوری پرامپٹ، ہر بار یہ سوچنا کہ "رکو، اسے X کیوں نہیں معلوم؟" یہی رگڑ اصل curriculum ہے. اس رگڑ کا ہر ٹکڑا اوپر کے پندرہ تصورات میں سے کسی ایک سے جا ملتا ہے:
- "کیوں کرتا ہے یہ رکھیں forgetting auth طریقہ?" → قواعد فائل ہے missing یا bloated.
- "کیوں did یہ just delete my migrations فولڈر?" → اجازتیں weren't tight enough.
- "کیوں ہے یہ اس لیے slow بعد ایک hour?" → سیاق و سباق کی خرابی; آپ needed
/compact. - "کیوں am I typing وہی thing ہر Monday?" → کہ کا ایک مہارت.
- "کیوں did my tests pass locally مگر break میں CI?" → کہ کا ایک ہک یا پلگ ان.
- "کیوں کرتا ہے exploring codebase ہمیشہ pollute my گفتگو?" → کہ کا ایک ذیلی ایجنٹ.
ہر مسئلے کا جواب تب بنائیں جب وہ واقعی سامنے آئے، پہلے سے نہیں. آپ کی قواعد فائل پہلے دس لائنوں کی ہونی چاہیے، پھر بارہ، پھر بیس: ہر نئی لائن کسی ایسی غلطی کے بدلے آئے جسے اب وہ روک دیتی ہے. آپ کے مہارتیں فولڈر میں پہلے ایک مہارت ہو، پھر دس. آپ کے ہکس/پلگ انز اس لیے موجود ہوں کہ ان کے بغیر واقعی کچھ ٹوٹا تھا، صرف اس لیے نہیں کہ کسی نے کہا ہکس طاقتور ہوتے ہیں.
اصل 80/20 یہ نہیں کہ آپ پندرہ تصورات زبانی یاد کر لیں. اصل بات یہ ہے کہ آپ فورا پہچان سکیں کہ دیا گیا مسئلہ کس تصور سے متعلق ہے، تاکہ آپ سیدھا درست ٹول کی طرف جائیں. یہی پہچان اصل مہارت ہے، اور یہ صرف اس وقت بنتی ہے جب آپ ایجنٹک کوڈنگ ٹولز کو حقیقی کام میں کامیاب ہوتے اور ناکام ہوتے دیکھتے رہتے ہیں.
Portability dividend. جب یہ پہچان ایک ٹول میں بن جاتی ہے تو وہ ساتھ منتقل ہوتی ہے. اوپر دیا گیا friction-to-تصور map Claude Code اور OpenCode دونوں میں ایک جیسا ہے. شروع کرنے کے لیے ایک چنیں، اس کی specific ترتیب سیکھیں، اور جس لمحے آپ switch کرنے کا فیصلہ کریں (لاگت، ماڈل preference، license، یا کسی ایسے نئے ٹول کی وجہ سے جو ابھی موجود بھی نہیں) آپ کا علم آپ کے ساتھ جاتا ہے. Configs بدلتی ہیں. سوچنے کا طریقہ نہیں بدلتا.
ایک پروجیکٹ سے شروع کریں. ہر non-trivial کام کے لیے منصوبہ بندی کا طریقہ استعمال کریں. اپنے سیاق و سباق پر نظر رکھیں. باقی چیزیں خود بنتی چلی جائیں گی.
فوری حوالہ
15 تصورات ایک سطر میں ہر
- یہ ٹولز صرف جواب نہیں دیتے، actions بھی لیتے ہیں. سوال نہیں، briefs لکھیں.
- منصوبہ بندی کا طریقہ (Shift+تب میں CC، تب کو منصوبہ ایجنٹ میں OC). Read-only investigation پہلے any writes.
- اجازتیں کا ضبط. آغاز manual رکھیں، پھر وقت کے ساتھ allow/deny کو ترتیب میں لکھیں.
rm -rfکو کبھی auto-approve نہ کریں. - سیاق و سباق rot ہے حقیقی. Recall degrades long پہلے window fills، اور ہر turn re-bills whole سیاق و سباق.
/clearvs/compact. نیا کام vs وہی کام lighter. چنیں wrong اور آپ lose wrong thing.- Resume سیشنز. چنیں up کہاں آپ left off بغیر re-explaining; pair کے ساتھ saved منصوبہ فائلز.
CLAUDE.md/AGENTS.mdہے ایک جدول کا contents. کے تحت ~2،500 tokens، references load on demand.- Slash کمانڈز. Saved پرامپٹس آپ trigger کے ذریعے name جب آپ رکھیں typing وہی thing.
- مہارتیں. Saved expertise ماڈل auto-invokes کے ذریعے description; progressive disclosure via
SKILL.mdplus references. - hooks (CC) / پلگ انز (OC). Deterministic حفاظتی حدود on lifecycle events. نہیں optional کے لیے پروڈکشن.
- subagents. Isolated سیاق و سباق کی گنجائشیں کے لیے noisy reads (codebase exploration، doc fetching).
- MCP، استعمال ہوا carefully. Standard پروٹوکول کے لیے external ٹولز; CLIs often beat MCP کے لیے stateless services.
- کہاں کو چلائیں. شروع کریں میں ٹرمینل یا IDE پلگ ان اس لیے آپ سکتا ہے دیکھیں کیا ایجنٹ ہے doing.
- ذاتی سیاق و سباق library، slowly. Share configs across پروجیکٹس; تعمیر سے regret، نہیں imagination.
- memory beyond basics. Built-in resume + اچھا قواعد فائل ہے enough کے لیے زیادہ تر.
notes/فولڈر if آپ ضرورت زیادہ.
Commands کا فوری خلاصہ
| چاہتے ہیں کو... | Claude Code | OpenCode |
|---|---|---|
| Initialize پروجیکٹ قواعد فائل | /init | /init |
| Enter منصوبہ بندی کا طریقہ | Shift+Tab (twice) | Tab (cycle کو منصوبہ ایجنٹ) |
| Wipe گفتگو، شروع کریں fresh | /clear | /new (یا /clear) |
| Summarize اور continue | /compact | /compact (یا /summarize) |
| Resume ایک saved سیشن | claude --resume | /sessions (یا /resume) |
| Jump back کو ایک previous message | Esc Esc | /undo (بھی reverts فائلز) |
| Undo last message + فائل تبدیلیاں | (نہیں bundled) | /undo (ضرورت ہے git) |
Redo (reverse last /undo) | (نہیں bundled) | /redo |
| Share سیشن | /share | /share |
File locations کا فوری خلاصہ
| کیا | Claude Code | OpenCode |
|---|---|---|
| پروجیکٹ قواعد | CLAUDE.md | AGENTS.md (بھی reads CLAUDE.md بطور fallback) |
| پروجیکٹ اجازتیں | .claude/settings.json | opencode.json |
| پروجیکٹ کمانڈز | .claude/commands/*.md | .opencode/commands/*.md |
| پروجیکٹ مہارتیں | .claude/skills/<name>/SKILL.md | .opencode/skills/<name>/SKILL.md (also reads .claude/skills/) |
| پروجیکٹ ہکس/پلگ انز | .claude/settings.json (hooks block) | .opencode/plugins/*.{js,ts} |
| پروجیکٹ ذیلی ایجنٹس | .claude/agents/*.md | .opencode/agents/*.md |
| ذاتی/عالمی قواعد | ~/.claude/CLAUDE.md | ~/.config/opencode/AGENTS.md |
| ذاتی کمانڈز/مہارتیں/ایجنٹس | ~/.claude/{commands,skills,agents}/ | ~/.config/opencode/{commands,skills,agents}/ |
| MCP servers | .claude/settings.json (mcp block) | opencode.json (mcp block) |
Extension type فیصلہ tree
Need to do the same thing repeatedly, manually?
→ Slash command (CC) / Custom command (OC)
Want the model to apply expertise automatically when a task matches?
→ Skill
Need something to happen every single time, no model judgment?
→ Hook (CC) / Plugin (OC)
Need a chunk of work done in isolation so it doesn't pollute main context?
→ Subagent
جب کچھ غلط محسwas ہو
Model apologizing without progress, rewriting the same code,
hallucinating variables, contradicting earlier constraints?
→ Context is poisoned. Stop typing. Run /compact or /clear.
Don't try to fix it with another prompt.
Flashcards کی مطالعاتی مدد
Quiz: پندرہ تصورات پر 50 سوالات
یہ ایک جامع bank ہے جو مختصر کورس کے ہر تصور کو cover کرتا ہے. ہر سیشن میں 18 سوالات کی نئی batch دکھائی جاتی ہے، اس لیے دوبارہ attempt کرنے پر آپ کو نیا material ملتا ہے. اوپر اپنا ٹول منتخب کریں تاکہ جوابات آپ کی toolchain کے مطابق رہیں.