رفتن به محتوا

گسترشِ Claude Code

Claude Code مدلی که درباره‌ی کدت استدلال می‌کند را با ابزارهای داخلی برای عملیاتِ فایل، جستجو، اجرا و دسترسی به وب ترکیب می‌کند. ابزارهای داخلی بیشترِ کارهای کدنویسی را پوشش می‌دهند. این راهنما لایه‌ی توسعه را پوشش می‌دهد: قابلیت‌هایی که اضافه می‌کنی تا آنچه Claude می‌داند را سفارشی کنی، آن را به سرویس‌های بیرونی وصل کنی و ورک‌فلوها را خودکار کنی.

تازه به Claude Code آمده‌ای؟ با CLAUDE.md برای قراردادهای پروژه شروع کن، سپس سایر افزونه‌ها را همان‌طور که تریگرهای مشخص پیش می‌آیند اضافه کن.

افزونه‌ها به بخش‌های مختلفِ حلقه‌ی ایجنتیک وصل می‌شوند:

  • CLAUDE.md کانتکستِ پایدار اضافه می‌کند که Claude هر نشست می‌بیند
  • Skills دانشِ بازاستفاده‌پذیر و ورک‌فلوهای قابلِ‌فراخوانی اضافه می‌کند
  • Code intelligence Claude را به یک language server وصل می‌کند برای پیمایشِ سطحِ نماد و خطاهای نوعِ زنده
  • MCP Claude را به سرویس‌ها و ابزارهای بیرونی وصل می‌کند
  • Subagents حلقه‌های خودشان را در کانتکستِ ایزوله اجرا می‌کنند و خلاصه‌ها را برمی‌گردانند
  • Agent teams چندین نشستِ مستقل را با تسک‌های مشترک و پیام‌رسانیِ نظیربه‌نظیر هماهنگ می‌کنند
  • Hooks روی رویدادهای چرخه‌ی عمر شلیک می‌شوند و می‌توانند یک اسکریپت، درخواستِ HTTP، پرامپت یا ساب‌ایجنت اجرا کنند
  • Plugins و marketplaceها این قابلیت‌ها را بسته‌بندی و توزیع می‌کنند

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ها و ساب‌ایجنت‌ها مسائلِ متفاوتی را حل می‌کنند:

  • Skills محتوای بازاستفاده‌پذیری هستند که می‌توانی در هر کانتکستی بارگذاری کنی
  • Subagents کارگرهای ایزوله‌ای هستند که جدا از گفتگوی اصلی‌ات اجرا می‌شوند
جنبهSkillSubagent
چیستدستورالعمل، دانش یا ورک‌فلوهای بازاستفاده‌پذیرکارگرِ ایزوله با کانتکستِ خودش
مزیتِ کلیدیاشتراکِ محتوا بین کانتکست‌هاایزولاسیونِ کانتکست. کار جدا اتفاق می‌افتد، فقط خلاصه برمی‌گردد
اثر بر پنجره‌ی کانتکستبه پنجره‌ی اصلی‌ات اضافه می‌شوداز پنجره‌ای جداگانه با توکن‌های ورودی و خروجیِ خودش استفاده می‌کند
بهترین برایمطالبِ مرجع، ورک‌فلوهای قابلِ‌فراخوانیتسک‌هایی که فایل‌های زیادی می‌خوانند، کارِ موازی، کارگرهای تخصصی

skillها می‌توانند مرجع یا اکشن باشند. skillهای مرجع دانشی فراهم می‌کنند که Claude در سراسرِ نشستت استفاده می‌کند (مثل راهنمای سبکِ APIات). skillهای اکشن به Claude می‌گویند کارِ مشخصی انجام دهد (مثلِ /deploy که ورک‌فلوی استقرارت را اجرا می‌کند).

وقتی به ایزولاسیونِ کانتکست نیاز داری یا وقتی پنجره‌ی کانتکستت دارد پر می‌شود، از یک ساب‌ایجنت استفاده کن. ساب‌ایجنت ممکن است ده‌ها فایل بخواند یا جستجوهای گسترده اجرا کند، اما گفتگوی اصلی‌ات فقط یک خلاصه دریافت می‌کند. چون کارِ ساب‌ایجنت کانتکستِ اصلی‌ات را مصرف نمی‌کند، این وقتی هم مفید است که نیازی نداری کارِ میانی قابلِ‌مشاهده بماند. ساب‌ایجنت‌های سفارشی می‌توانند دستورالعمل‌های خودشان را داشته باشند و skillها را از پیش بارگذاری کنند.

می‌توانند ترکیب شوند. یک ساب‌ایجنت می‌تواند skillهای مشخصی را از پیش بارگذاری کند (فیلدِ skills:). یک skill می‌تواند با context: fork در کانتکستِ ایزوله اجرا شود. برای جزئیات Skills را ببین.

قابلیت‌ها می‌توانند در چند سطح تعریف شوند: سطحِ کاربر، هر-پروژه، از طریقِ pluginها، یا از طریقِ سیاست‌های مدیریت‌شده. همچنین می‌توانی فایل‌های CLAUDE.md را در زیرپوشه‌ها تو در تو کنی یا skillها را در پکیج‌های مشخصی از یک monorepo قرار دهی. وقتی همان قابلیت در چند سطح وجود دارد، این‌طور لایه می‌شوند:

  • فایل‌های CLAUDE.md افزایشی‌اند: همه‌ی سطوح هم‌زمان به کانتکستِ Claude محتوا می‌افزایند. فایل‌های دایرکتوریِ کاری‌ات و بالاتر هنگام راه‌اندازی بارگذاری می‌شوند؛ زیرپوشه‌ها همان‌طور که در آن‌ها کار می‌کنی بارگذاری می‌شوند. وقتی دستورالعمل‌ها در تضادند، Claude با قضاوت آن‌ها را آشتی می‌دهد، و معمولاً دستورالعمل‌های مشخص‌تر اولویت می‌گیرند. نحوه‌ی بارگذاریِ فایل‌های CLAUDE.md را ببین.
  • Skills و subagents بر اساسِ نام بازنویسی می‌شوند: وقتی همان نام در چند سطح هست، یک تعریف بر اساسِ اولویت برنده می‌شود (managed > user > project برای skillها؛ managed > پرچمِ CLI > project > user > plugin برای ساب‌ایجنت‌ها). skillهای plugin برای جلوگیری از تضاد namespace می‌خورند. کشفِ skill و دامنه‌ی ساب‌ایجنت را ببین.
  • سرورهای MCP بر اساسِ نام بازنویسی می‌شوند: local > project > user. دامنه‌ی MCP را ببین.
  • Hooks ادغام می‌شوند: همه‌ی hookهای ثبت‌شده صرف‌نظر از منبع، برای رویدادهای منطبقشان شلیک می‌شوند. hooks را ببین.

هر افزونه مسئله‌ی متفاوتی را حل می‌کند: CLAUDE.md کانتکستِ همیشه‌فعال را به عهده دارد، skillها دانش و ورک‌فلوهای on-demand را، MCP اتصال‌های بیرونی را، ساب‌ایجنت‌ها ایزولاسیون را، و hookها خودکارسازی را. راه‌اندازی‌های واقعی آن‌ها را بر اساسِ ورک‌فلوی تو ترکیب می‌کنند.

برای مثال، ممکن است از CLAUDE.md برای قراردادهای پروژه، یک skill برای ورک‌فلوی استقرارت، MCP برای اتصال به دیتابیست و یک hook برای اجرای لینت پس از هر ویرایش استفاده کنی. هر قابلیت آنچه در آن بهترین است را به عهده می‌گیرد.

الگوچطور کار می‌کندمثال
Skill + MCPMCP اتصال را فراهم می‌کند؛ یک skill به Claude می‌آموزد چطور خوب از آن استفاده کندMCP به دیتابیست وصل می‌شود، یک skill شِما و الگوهای کوئریت را مستند می‌کند
Skill + Subagentیک skill ساب‌ایجنت‌هایی برای کارِ موازی spawn می‌کندskillِ /audit ساب‌ایجنت‌های امنیت، کارایی و سبک را راه می‌اندازد که در کانتکستِ ایزوله کار می‌کنند
CLAUDE.md + SkillsCLAUDE.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 را در تنظیمات بگذار تا همین کار را بدون ویرایشِ فایلش انجام دهی.

هر قابلیت در نقاطِ متفاوتی از نشستت بارگذاری می‌شود. تب‌های زیر توضیح می‌دهند هر کدام کی بارگذاری می‌شود و چه چیزی به کانتکست می‌رود.

Context loading: CLAUDE.md loads at session start and stays in every request. MCP tool names load at start with full schemas deferred until use. Skills load descriptions at start, full content on invocation. Subagents get isolated context. Hooks run externally.

کِی: آغازِ نشست

چه بارگذاری می‌شود: محتوای کاملِ همه‌ی فایل‌های CLAUDE.md (سطوحِ managed، user و project).

وراثت: Claude فایل‌های CLAUDE.md را از دایرکتوریِ کاری‌ات تا ریشه می‌خواند، و آن‌هایی که در زیرپوشه‌ها تو در تو هستند را همان‌طور که به آن فایل‌ها دسترسی می‌یابد کشف می‌کند. برای جزئیات نحوه‌ی بارگذاریِ فایل‌های CLAUDE.md را ببین.

هر قابلیت راهنمای خودش را با دستورالعمل‌های راه‌اندازی، مثال‌ها و گزینه‌های پیکربندی دارد.

CLAUDE.md

کانتکست، قراردادها و دستورالعمل‌های پروژه را ذخیره کن

Skills

به Claude تخصصِ حوزه‌ای و ورک‌فلوهای بازاستفاده‌پذیر بده

Subagents

کار را به کانتکستِ ایزوله بسپار

Agent teams

چندین نشست را که موازی کار می‌کنند هماهنگ کن

MCP

Claude را به سرویس‌های بیرونی وصل کن

Hooks

اکشن‌ها را با hookها خودکار کن

Plugins

مجموعه‌های قابلیت را بسته‌بندی و به اشتراک بگذار

Marketplaces

مجموعه‌های plugin را میزبانی و توزیع کن