CLAUDE.md
کانتکست، قراردادها و دستورالعملهای پروژه را ذخیره کن
Claude Code مدلی که دربارهی کدت استدلال میکند را با ابزارهای داخلی برای عملیاتِ فایل، جستجو، اجرا و دسترسی به وب ترکیب میکند. ابزارهای داخلی بیشترِ کارهای کدنویسی را پوشش میدهند. این راهنما لایهی توسعه را پوشش میدهد: قابلیتهایی که اضافه میکنی تا آنچه Claude میداند را سفارشی کنی، آن را به سرویسهای بیرونی وصل کنی و ورکفلوها را خودکار کنی.
تازه به Claude Code آمدهای؟ با CLAUDE.md برای قراردادهای پروژه شروع کن، سپس سایر افزونهها را همانطور که تریگرهای مشخص پیش میآیند اضافه کن.
افزونهها به بخشهای مختلفِ حلقهی ایجنتیک وصل میشوند:
Skills انعطافپذیرترین افزونه هستند. یک skill یک فایلِ markdown است که شاملِ دانش، ورکفلو یا دستورالعمل است. میتوانی skillها را با دستوری مثل /deploy فراخوانی کنی، یا Claude میتواند هنگام مرتبط بودن آنها را خودکار بارگذاری کند. skillها میتوانند در گفتگوی جاریات یا در کانتکستِ ایزوله از طریقِ سابایجنتها اجرا شوند.
قابلیتها طیفی دارند: از کانتکستِ همیشهفعال که Claude هر نشست میبیند، تا تواناییهای on-demand که تو یا Claude میتوانید فراخوانی کنید، تا خودکارسازیِ پسزمینه که روی رویدادهای مشخص اجرا میشود. جدولِ زیر نشان میدهد چه چیزهایی در دسترس است و هر کدام کی منطقی است.
| قابلیت | چه میکند | کِی استفاده شود | مثال |
|---|---|---|---|
| CLAUDE.md | کانتکستِ پایدار که هر گفتگو بارگذاری میشود | قراردادهای پروژه، قوانینِ «همیشه X را انجام بده» | «از pnpm استفاده کن نه npm. قبل از کامیت تستها را اجرا کن.» |
| Skill | دستورالعمل، دانش و ورکفلوهایی که Claude میتواند استفاده کند | محتوای بازاستفادهپذیر، اسناد مرجع، کارهای تکرارپذیر | /deploy چکلیستِ استقرارت را اجرا میکند؛ skillِ مستنداتِ API با الگوهای endpoint |
| Subagent | کانتکستِ اجرای ایزوله که نتایجِ خلاصهشده برمیگرداند | ایزولاسیونِ کانتکست، کارهای موازی، کارگرهای تخصصی | تسکِ تحقیقاتی که فایلهای زیادی میخواند اما فقط یافتههای کلیدی را برمیگرداند |
| Agent teams | هماهنگیِ چندین نشستِ مستقلِ Claude Code | تحقیقِ موازی، توسعهی قابلیتِ جدید، دیباگ با فرضیههای رقیب | spawn کردنِ بازبینها برای بررسیِ همزمانِ امنیت، کارایی و تستها |
| Code intelligence | پیمایش و تشخیصِ language-server | زبانهای نوعدار، کدبیسهای بزرگ که grep در آنها کند یا نادقیق است | پرش به تعریفِ یک نماد بهجای خواندنِ کلِ فایل |
| MCP | اتصال به سرویسهای بیرونی | داده یا اکشنهای بیرونی | کوئری زدن به دیتابیست، پست در Slack، کنترلِ مرورگر |
| Hook | اسکریپت، درخواستِ HTTP، پرامپت یا سابایجنت که با رویدادها تریگر میشود | خودکارسازیای که باید روی هر رویدادِ منطبق اجرا شود | اجرای ESLint پس از هر ویرایشِ فایل |
Plugins لایهی بستهبندی هستند. یک plugin بستهای از skillها، hookها، سابایجنتها و سرورهای MCP را در یک واحدِ نصبشدنیِ واحد گرد میآورد. skillهای plugin namespace میخورند (مثل /my-plugin:review) تا چندین plugin بتوانند همزیستی کنند. وقتی میخواهی همان راهاندازی را در چند مخزن بازاستفاده کنی یا از طریقِ یک marketplace به دیگران توزیع کنی، از pluginها استفاده کن.
لازم نیست همهچیز را از همان ابتدا پیکربندی کنی. هر قابلیت یک تریگرِ قابلِتشخیص دارد، و بیشترِ تیمها آنها را تقریباً به این ترتیب اضافه میکنند:
| تریگر | اضافه کن |
|---|---|
| Claude یک قرارداد یا دستور را دو بار اشتباه میکند | به CLAUDE.md اضافهاش کن |
| مدام همان پرامپت را برای شروعِ یک تسک تایپ میکنی | آن را بهعنوانِ یک skillِ قابلِفراخوانی توسطِ کاربر ذخیره کن |
| برای سومین بار همان playbook یا رویهی چندمرحلهای را در چت میچسبانی | آن را بهصورتِ یک skill ثبت کن |
| مدام داده را از تبِ مرورگری که Claude نمیبیند کپی میکنی | آن سیستم را بهعنوانِ یک سرورِ MCP وصل کن |
| Claude فایلهای زیادی میخواند تا بیابد یک نماد کجا تعریف یا استفاده شده | یک پلاگینِ code intelligence برای زبانت نصب کن |
| یک کارِ جانبی گفتگویت را با خروجیای که دیگر به آن رجوع نمیکنی پر میکند | آن را از طریقِ یک سابایجنت هدایت کن |
| میخواهی هر بار بدون پرسیدن اتفاقی بیفتد | یک hook بنویس |
| یک مخزنِ دوم به همان راهاندازی نیاز دارد | آن را بهعنوانِ یک plugin بستهبندی کن |
همان تریگرها به تو میگویند کی آنچه را که داری بهروزرسانی کنی. یک اشتباهِ تکرارشونده یا یک کامنتِ بازبینیِ مکرر، یک ویرایشِ CLAUDE.md است، نه یک اصلاحِ یکباره در چت. ورکفلویی که مدام دستی تنظیمش میکنی، یک skill است که به بازنگریِ دیگری نیاز دارد.
برخی قابلیتها ممکن است شبیه بهنظر برسند. اینجا میبینی چطور آنها را از هم تشخیص دهی.
skillها و سابایجنتها مسائلِ متفاوتی را حل میکنند:
| جنبه | Skill | Subagent |
|---|---|---|
| چیست | دستورالعمل، دانش یا ورکفلوهای بازاستفادهپذیر | کارگرِ ایزوله با کانتکستِ خودش |
| مزیتِ کلیدی | اشتراکِ محتوا بین کانتکستها | ایزولاسیونِ کانتکست. کار جدا اتفاق میافتد، فقط خلاصه برمیگردد |
| اثر بر پنجرهی کانتکست | به پنجرهی اصلیات اضافه میشود | از پنجرهای جداگانه با توکنهای ورودی و خروجیِ خودش استفاده میکند |
| بهترین برای | مطالبِ مرجع، ورکفلوهای قابلِفراخوانی | تسکهایی که فایلهای زیادی میخوانند، کارِ موازی، کارگرهای تخصصی |
skillها میتوانند مرجع یا اکشن باشند. skillهای مرجع دانشی فراهم میکنند که Claude در سراسرِ نشستت استفاده میکند (مثل راهنمای سبکِ APIات). skillهای اکشن به Claude میگویند کارِ مشخصی انجام دهد (مثلِ /deploy که ورکفلوی استقرارت را اجرا میکند).
وقتی به ایزولاسیونِ کانتکست نیاز داری یا وقتی پنجرهی کانتکستت دارد پر میشود، از یک سابایجنت استفاده کن. سابایجنت ممکن است دهها فایل بخواند یا جستجوهای گسترده اجرا کند، اما گفتگوی اصلیات فقط یک خلاصه دریافت میکند. چون کارِ سابایجنت کانتکستِ اصلیات را مصرف نمیکند، این وقتی هم مفید است که نیازی نداری کارِ میانی قابلِمشاهده بماند. سابایجنتهای سفارشی میتوانند دستورالعملهای خودشان را داشته باشند و skillها را از پیش بارگذاری کنند.
میتوانند ترکیب شوند. یک سابایجنت میتواند skillهای مشخصی را از پیش بارگذاری کند (فیلدِ skills:). یک skill میتواند با context: fork در کانتکستِ ایزوله اجرا شود. برای جزئیات Skills را ببین.
هر دو دستورالعمل ذخیره میکنند، اما متفاوت بارگذاری میشوند و اهدافِ متفاوتی دارند.
| جنبه | CLAUDE.md | Skill |
|---|---|---|
| بارگذاری | هر نشست، خودکار | on-demand |
| میتواند فایل شامل کند | بله، با importهای @path | بله، با importهای @path |
| میتواند ورکفلو تریگر کند | خیر | بله، با /<name> |
| بهترین برای | قوانینِ «همیشه X را انجام بده» | مطالبِ مرجع، ورکفلوهای قابلِفراخوانی |
اگر Claude باید همیشه آن را بداند، در CLAUDE.md بگذار: قراردادهای کدنویسی، دستورهای build، ساختارِ پروژه، قوانینِ «هرگز X را انجام نده».
اگر مطالبِ مرجعی است که Claude گاهی به آن نیاز دارد (مستنداتِ API، راهنماهای سبک) یا ورکفلویی که با /<name> تریگر میکنی (deploy, review, release)، در یک skill بگذار.
قاعدهی سرانگشتی: CLAUDE.md را زیرِ ۲۰۰ خط نگه دار. اگر دارد بزرگ میشود، محتوای مرجع را به skillها منتقل کن یا به فایلهای .claude/rules/ تقسیمش کن.
هر سه دستورالعمل ذخیره میکنند، اما متفاوت بارگذاری میشوند:
| جنبه | CLAUDE.md | .claude/rules/ | Skill |
|---|---|---|---|
| بارگذاری | هر نشست | هر نشست، یا هنگام باز شدنِ فایلهای منطبق | on-demand، هنگام فراخوانی یا مرتبط بودن |
| دامنه | کلِ پروژه | میتواند به مسیرهای فایل محدود شود | مختصِ تسک |
| بهترین برای | قراردادهای هسته و دستورهای build | راهنماهای مختصِ زبان یا مختصِ پوشه | مطالبِ مرجع، ورکفلوهای تکرارپذیر |
برای دستورالعملهایی که هر نشست نیاز دارد از CLAUDE.md استفاده کن: دستورهای build، قراردادهای تست، معماریِ پروژه.
از rules استفاده کن تا CLAUDE.md متمرکز بماند. ruleها با frontmatterِ paths فقط وقتی بارگذاری میشوند که Claude با فایلهای منطبق کار کند، و این کانتکست را صرفهجویی میکند.
از skills برای محتوایی استفاده کن که Claude فقط گاهی به آن نیاز دارد، مثل مستنداتِ API یا یک چکلیستِ استقرار که با /<name> تریگرش میکنی.
هر دو کار را موازی میکنند، اما از نظرِ معماری متفاوتاند:
| جنبه | Subagent | Agent team |
|---|---|---|
| کانتکست | پنجرهی کانتکستِ خودش؛ نتایج به فراخوان برمیگردد | پنجرهی کانتکستِ خودش؛ کاملاً مستقل |
| ارتباط | فقط به ایجنتِ اصلی نتایج گزارش میدهد | همتیمیها مستقیماً به هم پیام میدهند |
| هماهنگی | ایجنتِ اصلی همهی کار را مدیریت میکند | فهرستِ تسکِ مشترک با خودهماهنگی |
| بهترین برای | تسکهای متمرکز که فقط نتیجه مهم است | کارِ پیچیده که به بحث و همکاری نیاز دارد |
| هزینهی توکن | پایینتر: نتایج به کانتکستِ اصلی خلاصه میشوند | بالاتر: هر همتیمی یک نمونهی جدای Claude است |
وقتی به یک کارگرِ سریع و متمرکز نیاز داری از یک سابایجنت استفاده کن: تحقیق دربارهی یک پرسش، تأییدِ یک ادعا، بازبینیِ یک فایل. سابایجنت کار را انجام میدهد و یک خلاصه برمیگرداند. گفتگوی اصلیات تمیز میماند.
وقتی همتیمیها باید یافتهها را به اشتراک بگذارند، همدیگر را به چالش بکشند و مستقل هماهنگ شوند، از یک agent team استفاده کن. agent teamها برای تحقیق با فرضیههای رقیب، بازبینیِ موازیِ کد و توسعهی قابلیتِ جدید که هر همتیمی بخشِ جدایی را در اختیار دارد بهتریناند.
نقطهی گذار: اگر سابایجنتهای موازی اجرا میکنی ولی به محدودیتهای کانتکست میخوری، یا اگر سابایجنتهایت باید با هم ارتباط برقرار کنند، agent teamها گامِ طبیعیِ بعدیاند.
MCP کلود را به سرویسهای بیرونی وصل میکند. skillها آنچه Claude میداند را گسترش میدهند، از جمله نحوهی استفادهی مؤثر از آن سرویسها.
| جنبه | MCP | Skill |
|---|---|---|
| چیست | پروتکلی برای اتصال به سرویسهای بیرونی | دانش، ورکفلوها و مطالبِ مرجع |
| فراهم میکند | ابزارها و دسترسی به داده | دانش، ورکفلوها، مطالبِ مرجع |
| مثالها | یکپارچگیِ Slack، کوئریهای دیتابیس، کنترلِ مرورگر | چکلیستِ بازبینیِ کد، ورکفلوی deploy، راهنمای سبکِ API |
اینها مسائلِ متفاوتی را حل میکنند و خوب با هم کار میکنند:
MCP به Claude ابزارهای ساختهشده برای یک سیستمِ بیرونی میدهد، با اتصال و احرازِ هویتی که سرور آن را مدیریت میکند.
Skills به Claude دانشی دربارهی نحوهی استفادهی مؤثر از آن ابزارها میدهند، بهعلاوهی ورکفلوهایی که میتوانی با /<name> تریگر کنی. یک skill ممکن است شِمای دیتابیسِ تیمت و الگوهای کوئری را شامل شود، یا یک ورکفلوی /post-to-slack با قوانینِ قالببندیِ پیامِ تیمت.
مثال: یک سرورِ MCP کلود را به دیتابیست وصل میکند. یک skill مدلِ دادهات، الگوهای کوئریِ رایج و اینکه برای کارهای مختلف کدام جدولها را استفاده کند به Claude میآموزد.
یک hook روی رویدادِ چرخهی عمر شلیک میشود؛ یک skill در کانتکست بارگذاری میشود تا Claude آن را اعمال کند.
| جنبه | Hook | Skill |
|---|---|---|
| اجرا میکند | یک دستورِ shell، درخواستِ HTTP، پرامپتِ LLM یا سابایجنت | دستورالعملهایی که Claude میخواند و دنبال میکند |
| تریگر میشود با | رویدادهای چرخهی عمر مثل PostToolUse یا SessionStart | تایپ کردنِ /<name> توسطِ تو، یا تطبیقِ توضیحات با تسکت توسطِ Claude |
| قطعیت | همیشه روی رویدادش شلیک میشود؛ تریگر تضمینشده است | Claude دستورالعملها را تفسیر میکند؛ نتیجه میتواند متفاوت باشد |
| هزینهی کانتکست | صفر، مگر اینکه hook خروجی برگرداند | توضیحات هر نشست بارگذاری میشود؛ محتوای کامل هنگام استفاده |
| بهترین برای | لینت پس از ویرایش، مسدود کردنِ دستورهای ناامن، لاگگیری، نوتیفیکیشن | ورکفلوهایی که به استدلال نیاز دارند، مطالبِ مرجع، تسکهای چندمرحلهای |
وقتی اکشن باید هر بار به یک شکل انجام شود و نیازی به فکر کردنِ Claude ندارد، از یک hook استفاده کن. مثلاً: فرمتکردن هنگام ذخیره، ردِ rm -rf /، پست یک پیامِ Slack وقتی نشستی پایان مییابد.
وقتی Claude باید تصمیم بگیرد چطور گامها را اعمال کند، یا وقتی محتوا دانش است نه اسکریپت، از یک skill استفاده کن. مثلاً: یک چکلیستِ /release، راهنمای سبکِ APIات، یک playbookِ دیباگ.
گاردریلها را در hookها بگذار. دستورالعملی مثل «هرگز .env را ویرایش نکن» در CLAUDE.md یا یک skill یک درخواست است، نه یک تضمین. یک hookِ PreToolUse که ویرایش را مسدود میکند، اجبار است. اگر قاعدهای باید هر بار برقرار بماند، آن را بهجای یک دستورالعملِ پرامپت، یک hook کن.
خروجیِ hook در کانتکست مینشیند. یک hookِ PostToolUse که لینترت را اجرا میکند نتایج را بهصورتِ متنی که Claude میخواند بازمیگرداند؛ یک skillِ /fix-lint به Claude میگوید چطور آنها را حل کند.
قابلیتها میتوانند در چند سطح تعریف شوند: سطحِ کاربر، هر-پروژه، از طریقِ pluginها، یا از طریقِ سیاستهای مدیریتشده. همچنین میتوانی فایلهای CLAUDE.md را در زیرپوشهها تو در تو کنی یا skillها را در پکیجهای مشخصی از یک monorepo قرار دهی. وقتی همان قابلیت در چند سطح وجود دارد، اینطور لایه میشوند:
هر افزونه مسئلهی متفاوتی را حل میکند: CLAUDE.md کانتکستِ همیشهفعال را به عهده دارد، skillها دانش و ورکفلوهای on-demand را، MCP اتصالهای بیرونی را، سابایجنتها ایزولاسیون را، و hookها خودکارسازی را. راهاندازیهای واقعی آنها را بر اساسِ ورکفلوی تو ترکیب میکنند.
برای مثال، ممکن است از CLAUDE.md برای قراردادهای پروژه، یک skill برای ورکفلوی استقرارت، MCP برای اتصال به دیتابیست و یک hook برای اجرای لینت پس از هر ویرایش استفاده کنی. هر قابلیت آنچه در آن بهترین است را به عهده میگیرد.
| الگو | چطور کار میکند | مثال |
|---|---|---|
| Skill + MCP | MCP اتصال را فراهم میکند؛ یک skill به Claude میآموزد چطور خوب از آن استفاده کند | MCP به دیتابیست وصل میشود، یک skill شِما و الگوهای کوئریت را مستند میکند |
| Skill + Subagent | یک skill سابایجنتهایی برای کارِ موازی spawn میکند | skillِ /audit سابایجنتهای امنیت، کارایی و سبک را راه میاندازد که در کانتکستِ ایزوله کار میکنند |
| CLAUDE.md + Skills | CLAUDE.md قوانینِ همیشهفعال را نگه میدارد؛ skillها مطالبِ مرجعِ on-demand را نگه میدارند | CLAUDE.md میگوید «قراردادهای APIمان را دنبال کن»، یک skill راهنمای کاملِ سبکِ API را دارد |
| Hook + MCP | یک hook اکشنهای بیرونی را از طریقِ MCP تریگر میکند | hookِ پس از ویرایش وقتی Claude فایلهای حیاتی را تغییر میدهد یک نوتیفیکیشنِ Slack میفرستد |
هر قابلیتی که اضافه میکنی بخشی از کانتکستِ Claude را مصرف میکند. زیادهروی میتواند پنجرهی کانتکستت را پر کند، اما میتواند نویزی هم اضافه کند که Claude را کماثرتر میکند؛ ممکن است skillها درست تریگر نشوند، یا Claude ردِ قراردادهایت را گم کند. درکِ این توازنها به تو کمک میکند راهاندازیِ مؤثری بسازی. برای نمایی تعاملی از اینکه این قابلیتها چطور در یک نشستِ در حالِ اجرا ترکیب میشوند، کاوشِ پنجرهی کانتکست را ببین.
هر قابلیت استراتژیِ بارگذاری و هزینهی کانتکستِ متفاوتی دارد:
| قابلیت | کِی بارگذاری میشود | چه بارگذاری میشود | هزینهی کانتکست |
|---|---|---|---|
| CLAUDE.md | آغازِ نشست | محتوای کامل | هر درخواست |
| Skills | آغازِ نشست + هنگام استفاده | توضیحات در آغاز، محتوای کامل هنگام استفاده | پایین (توضیحات در هر درخواست)* |
| سرورهای MCP | آغازِ نشست | نام ابزارها؛ شِمای کامل on-demand | پایین تا وقتی ابزاری استفاده شود |
| Code intelligence | پس از ویرایشِ فایل و on-demand | تشخیصها پس از ویرایش؛ محلِ نمادها هنگام جستجو | پایین؛ خواندنِ فایل را جای دیگر کاهش میدهد |
| Subagents | هنگام spawn شدن | کانتکستِ تازه با skillهای مشخص | ایزوله از نشستِ اصلی |
| Hooks | هنگام تریگر | هیچچیز (بیرونی اجرا میشود) | صفر، مگر اینکه hook کانتکستِ اضافی برگرداند |
*بهصورت پیشفرض، توضیحاتِ skill در آغازِ نشست بارگذاری میشوند تا Claude بتواند تصمیم بگیرد کی از آنها استفاده کند. disable-model-invocation: true را در frontmatterِ یک skill تنظیم کن تا آن را بهکلی از Claude پنهان کنی، تا وقتی خودت دستی فراخوانش کنی. این هزینهی کانتکست را برای skillهایی که فقط خودت تریگر میکنی به صفر میرساند. برای skillی که خودت ننوشتهای، skillOverrides را در تنظیمات بگذار تا همین کار را بدون ویرایشِ فایلش انجام دهی.
هر قابلیت در نقاطِ متفاوتی از نشستت بارگذاری میشود. تبهای زیر توضیح میدهند هر کدام کی بارگذاری میشود و چه چیزی به کانتکست میرود.
کِی: آغازِ نشست
چه بارگذاری میشود: محتوای کاملِ همهی فایلهای CLAUDE.md (سطوحِ managed، user و project).
وراثت: Claude فایلهای CLAUDE.md را از دایرکتوریِ کاریات تا ریشه میخواند، و آنهایی که در زیرپوشهها تو در تو هستند را همانطور که به آن فایلها دسترسی مییابد کشف میکند. برای جزئیات نحوهی بارگذاریِ فایلهای CLAUDE.md را ببین.
skillها تواناییهای اضافی در جعبهابزارِ Claude هستند. میتوانند مطالبِ مرجع باشند (مثل یک راهنمای سبکِ API) یا ورکفلوهای قابلِفراخوانی که با /<name> تریگرشان میکنی (مثلِ /deploy). Claude Code شاملِ skillهای همراه مثلِ /code-review، /batch و /debug است که بدونِ تنظیمِ اضافه کار میکنند. میتوانی مالِ خودت را هم بسازی. Claude هنگام مناسب بودن از skillها استفاده میکند، یا میتوانی یکی را مستقیم فراخوانی کنی.
کِی: به پیکربندیِ skill بستگی دارد. بهصورت پیشفرض، توضیحات در آغازِ نشست و محتوای کامل هنگام استفاده بارگذاری میشود. برای skillهای فقط-کاربر (disable-model-invocation: true)، تا وقتی فراخوانشان نکنی هیچچیز بارگذاری نمیشود.
چه بارگذاری میشود: برای skillهای قابلِفراخوانیِ مدل، Claude نامها و توضیحات را در هر درخواست میبیند. وقتی یک skill را با /<name> فراخوانی میکنی یا Claude خودکار بارگذاریاش میکند، محتوای کامل به گفتگویت بارگذاری میشود.
چطور Claude skillها را انتخاب میکند: Claude تسکت را با توضیحاتِ skill تطبیق میدهد تا تصمیم بگیرد کدام مرتبطاند. اگر توضیحات مبهم یا همپوشان باشند، Claude ممکن است skillِ اشتباه را بارگذاری کند یا یکی که کمک میکرد را از دست بدهد. برای اینکه به Claude بگویی از یک skillِ مشخص استفاده کند، آن را با /<name> فراخوانی کن. skillهای با disable-model-invocation: true تا وقتی فراخوانشان نکنی برای Claude نامرئیاند.
هزینهی کانتکست: پایین تا هنگام استفاده. skillهای فقط-کاربر تا فراخوانی هزینهی صفر دارند.
در سابایجنتها: skillها در سابایجنتها متفاوت کار میکنند. بهجای بارگذاریِ on-demand، skillهای فهرستشده در فیلدِ skillsِ سابایجنت در آغاز بهطور کامل در کانتکستش از پیش بارگذاری میشوند. سابایجنتها همچنان میتوانند skillهای فهرستنشدهی project، user و plugin را از طریقِ ابزارِ Skill کشف و فراخوانی کنند.
کِی: آغازِ نشست.
چه بارگذاری میشود: نام ابزارها از سرورهای متصل. شِمای کاملِ JSON تا وقتی Claude به ابزارِ مشخصی نیاز داشته باشد به تعویق میافتد.
هزینهی کانتکست: جستجوی ابزار بهصورت پیشفرض روشن است، پس ابزارهای بیکارِ MCP کانتکستِ ناچیزی مصرف میکنند.
کِی: پس از ویرایشِ فایل، و on-demand وقتی Claude کد را پیمایش میکند.
چه بارگذاری میشود: خطاها و هشدارهای نوع پس از هر ویرایشِ فایل. اطلاعاتِ تعریف، ارجاع و نوع وقتی Claude یک نماد را جستجو میکند.
هزینهی کانتکست: پایین. جستجوی نماد اغلب جایگزینِ خواندنِ گستردهی فایل میشود، پس مصرفِ خالصِ کانتکست میتواند کاهش یابد.
کِی: on-demand، وقتی تو یا Claude یکی را برای یک تسک spawn میکنید.
چه بارگذاری میشود: کانتکستِ تازه و ایزوله شاملِ:
skills:ِ ایجنتهزینهی کانتکست: ایزوله از نشستِ اصلی. سابایجنتها تاریخچهی گفتگو یا skillهای فراخواندهشدهات را به ارث نمیبرند.
کِی: هنگام تریگر. hookها روی رویدادهای مشخصِ چرخهی عمر مثلِ اجرای ابزار، مرزهای نشست، ثبتِ پرامپت، درخواستهای دسترسی و فشردهسازی شلیک میشوند. برای فهرستِ کامل Hooks را ببین.
چه بارگذاری میشود: بهصورت پیشفرض هیچچیز. hookها بیرون از گفتگوی اصلی اجرا میشوند.
هزینهی کانتکست: صفر، مگر اینکه hook خروجیای برگرداند که بهصورتِ پیام به گفتگویت اضافه شود.
هر قابلیت راهنمای خودش را با دستورالعملهای راهاندازی، مثالها و گزینههای پیکربندی دارد.
CLAUDE.md
کانتکست، قراردادها و دستورالعملهای پروژه را ذخیره کن
Skills
به Claude تخصصِ حوزهای و ورکفلوهای بازاستفادهپذیر بده
Subagents
کار را به کانتکستِ ایزوله بسپار
Agent teams
چندین نشست را که موازی کار میکنند هماهنگ کن
MCP
Claude را به سرویسهای بیرونی وصل کن
Hooks
اکشنها را با hookها خودکار کن
Plugins
مجموعههای قابلیت را بستهبندی و به اشتراک بگذار
Marketplaces
مجموعههای plugin را میزبانی و توزیع کن