تصور کنید با تایپ یک دستور ساده مثل /deploy-staging در ترمینال، یک توالی عملیاتی فعال شود که در آن Claude Code بهطور خودکار تغییرات کد (diff) را استخراج کند، تستها را اجرا نماید، ایمیج داکر را بسازد و آن را بدون دخالت دستی به سرور بفرستد. این سطح از اتوماسیون با معرفی قابلیت Skills (مهارتها) در Claude Code ممکن شده است تا این ابزار از یک دستیار عمومی به یک ابزار تخصصی و شخصیسازی شده برای هر پروژه تبدیل شود.
این قابلیت در واقع یک لایه شخصیسازی است که اجازه میدهد رویههای سختگیرانهای تعریف کنید تا مدل دقیقاً همان مراحل را طی کند. این رویکرد ریسک توهم (Hallucination) — شبیه به دوستی که خاطرهای را با اطمینان اما اشتباه تعریف میکند — را که در پرامپتهای باز و بدون ساختار وجود دارد، بهشدت کاهش میدهد. همانطور که در پوشش پیشین ما از اتوماسیون مدیریت فایل توسط کاربران غیرفنی دیدیم، حالا Skills عقربه را به سمت اتوماسیون حرفهای مهندسی نرمافزار حرکت داده است. در حالی که اتوماسیونهای پایه صرفاً فایلها را مدیریت میکنند، Skills کل چرخه حیات نرمافزار را مدیریت میکنند.
اکوسیستم افزونهها
برای درک درست Skills، باید آن را از سایر نقاط توسعه و گسترش در Claude Code متمایز کرد. طبق مستندات، این ابزار از چهار مکانیزم متمایز برای مدیریت زمینه (Context) استفاده میکند که در لحظات مختلفی وارد جریان پردازش میشوند:
- CLAUDE.md: دانش دائمی پروژه که در هر پرامپت بارگذاری میشود. هزینه توکن بالایی دارد اما برای تعریف قوانین کلی، الگوهای کدنویسی و دادههای دسترسی ضروری است.
- Skills: رویههای برحسب تقاضا که با دستورات
/یا قصد خاص کاربر فعال میشوند. تا زمان فراخوانی، هزینه توکنی ندارند و برای رویههای گامبهگام، استقرارها (Deployments) و چکلیستها ایدهآل هستند. - Hooks: اسکریپتهای رویدادمحور (مثلاً هنگام ذخیره فایل یا پایان جلسه) که بهطور خودکار از طریق bash اجرا میشوند. اینها برای Linting، کامیتهای خودکار یا مسدود کردن دستورات خطرناک به کار میروند.
- MCP (پروتکل زمینه مدل): ادغامهای ابزارمحور برای APIهای خارجی، API گیتهاب و پایگاهدادهها. هزینه این بخش به حجم پاسخ دریافتی بستگی دارد.

کالبدشکافی یک Skill
مهارتها در دایرکتوری .claude/skills/ قرار میگیرند. Claude Code بهطور خودکار این پوشه، دایرکتوریهای والد تا ریشه مخزن (Repo Root) و همچنین پوشه سراسری ~/.claude/skills/ را اسکن میکند تا مهارتها را شناسایی کند. بر اساس بررسی فنی، هر تغییر در فایل SKILL.md بدون نیاز به ریاستارت، در همان جلسه جاری اعمال میشود.
هر مهارت نیازمند یک زیرپوشه اختصاصی است که حاوی یک فایل SKILL.md باشد. این فایل به دو بخش تقسیم میشود: یک بخش متادیتای YAML در ابتدا (Frontmatter) و بدنه دستورالعملها به زبان Markdown.


جزئیات متاداتا (Frontmatter)
فیلدهای کلیدی در بخش YAML رفتار مهارت را بهدقت کنترل میکنند:
- name: نامی که در منوی
/skillsنمایش داده میشود. اگر تعریف نشود، بهطور پیشفرض نام پوشه (با جایگزینی خط تیره با فاصله) قرار میگیرد. - description: یک فیلد حیاتی (تا ۱۵۳۶ کاراکتر) که شرح میدهد مهارت چه کاری انجام میدهد. Claude از این متن برای فعالسازی خودکار مهارت استفاده میکند.
- when_to_use: زمینه اضافی برای زمانی که مهارت باید فعال شود.
- argument-hint: راهنمایی برای تکمیل خودکار (مثلاً
[issue-num] [branch]). - arguments: نگاشت متغیرهای نامگذاری شده (مثلاً
[issue_num, branch]) که در قالب$issue_numو$branchقابل دسترسی هستند. - allowed-tools: ابزارهایی که در زمان اجرای مهارت، نیازی به تایید کاربر ندارند (مثلاً
Bash(git *)یاBash(gh *)). - disallowed-tools: فیلدی پیشرفته برای مسدود کردن ابزارهای خاص در حین اجرای مهارت.
- model: امکان تغییر مدل سراسری (مثلاً انتخاب بین
sonnet،opusیاhaiku). - effort: تعیین سطح تلاش مدل که شامل مقادیر
low،medium،high،xhighیاmaxاست. - disable-model-invocation: اگر
trueباشد، مهارت نمیتواند بهطور خودکار فعال شود و حتماً نیاز به دستور دستی/دارد. - user-invocable: اگر
falseباشد، مهارت از منوی/پنهان شده و فقط توسط Claude در پسزمینه استفاده میشود. - paths: الگوهای Glob (مثلاً
src/**/*.ts) که باعث میشوند مهارت فقط هنگام کار با فایلهای منطبق بارگذاری شود. - shell: تعیین نوع شل؛
bash(پیشفرض) یاpowershellبرای کاربران ویندوز.
تزریق پویای زمینه
قدرتمندترین ویژگی Skills، «تزریق پویای زمینه» (Dynamic Context Injection) است. با استفاده از سینتکس خاص (مثلاً !'gh pr diff $0')، ابزار یک دستور شل را اجرا کرده و خروجی زنده را پیش از آنکه مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب میدهد — درخواست را ببیند، به پرامپت تزریق میکند.

به این ترتیب، هوش مصنوعی دیگر نیازی به حدس زدن وضعیت مخزن ندارد و خروجی واقعی گیت یا لاگهای سرور را بهعنوان یک پیشوند واقعی (Factual Prefix) به دستورالعملهای خود دریافت میکند. این فرآیند همگام (Synchronous) است؛ یعنی اگر دستور زمانبر باشد (مثل بیلد کامل پروژه)، کاربر باید منتظر بماند. برای عملیات طولانی، بهتر است دستور به عنوان یک گام در بدنه مهارت اجرا شود، نه از طریق تزریق.
توسعهدهندگان میتوانند از آرگومانهای نامگذاری شده (مثلاً arguments: [issue_num, branch]) استفاده کنند تا این دستورات را پارامتریک کنند و فراخوانیهایی مثل /fix-github-issue 1234 main را ممکن سازند.

متغیرهای داده زنده
هنگام تزریق دادهها، متغیرهای محیطی متعددی در دسترس هستند:
- $ARGUMENTS: تمام آرگومانها بهصورت یک رشته واحد.
- $0, $1: میانبر برای آرگومان اول و دوم.
- $variable_name: متغیرهای نامگذاری شده که در فیلد
argumentsتعریف شدهاند. - ${CLAUDE_SESSION_ID}: شناسه جلسه جاری.
- ${CLAUDE_SKILL_DIR}: مسیر مطلق دایرکتوری مهارت.
- ${CLAUDE_EFFORT}: سطح تلاش فعلی مدل.
عاملهای فرعی ایزوله از طریق Context Forking
برای کارهای سنگین، Skills از قابلیت context: fork پشتیبانی میکنند. این ویژگی یک عامل (Agent) فرعی و ایزوله ایجاد میکند که بدون تاریخچه گفتگوهای فعلی عمل میکند تا زمینه اصلی چت در طول بازسازیهای گسترده یا پژوهشهای عمیق شلوغ نشود. نتیجه نهایی سپس به عنوان پاسخ مهارت به جلسه اصلی بازگردانده میشود.

کاربران میتوانند نوع عامل را برای این فورکها مشخص کنند:
- Explore: دسترسی فقط-خواندنی (Glob, Grep, Read و Bash فقط-خواندنی) برای تحلیل کد و جستوجو.
- Plan: دسترسی فقط-خواندنی با تمرکز بر طراحی راهکارها بدون پیادهسازی.
- General-purpose: دسترسی کامل خواندن/نوشتن برای کارهای پیچیده که نیازمند تغییر فایلها در محیط ایزوله است.
نکته: یک مهارت با context: fork باید یک وظیفه (Task) مشخص برای انجام تعریف کند. اگر فقط حاوی مستندات مرجع باشد و اکشنی نداشته باشد، نتیجه خالی برمیگرداند.
نمونههای کاربردی پیادهسازی
چند مورد استفاده با ارزش بالا، کاربردی بودن این سیستم را نشان میدهد:
- summarize-changes: یک مهارت برای گزارش روزانه کار. این ابزار
git diff --stat HEADوgit log --oneline -5را اجرا میکند تا یک خلاصه موجز برای مدیران، لیستی از کارهای تکمیل شده و یک پیام Conventional Commit پیشنهادی تولید کند. - deploy-staging: یک مهارت با ریسک بالا که از
disable-model-invocation: trueاستفاده میکند. این مهارت ابتدا شاخه (Branch) و تگهای فعلی را بررسی میکند،npm run test -- --ciرا اجرا میکند، ایمیج داکر میسازد، آن را به رجیستری میفرستد و کوبرنتیز را از طریقkubectl set imageبهروزرسانی میکند. - generate-migration: یک مهارت دیتابیس که
models.pyو تاریخچه مهاجرتها را تحلیل میکند. تغییرات را پیشنهاد میدهد،makemigrationsرا اجرا میکند و SQL نهایی را از طریقsqlmigrateارائه میدهد، در حالی که درباره محدودیتهایNOT NULLیا عملیاتDROPهشدار میدهد. - explain-code: استفاده از
context: forkو عاملExplore. کل فایل را میخواند و وابستگیها را ردیابی میکند تا نحوه عملکرد یک تابع، شامل حالتهای خاص (Edge Cases) و پیشنهادات بازسازی را بدون آلوده کردن جلسه اصلی توضیح دهد. - setup-project: یک مهارت برای Onboarding که نسخههای Node.js، Python و Docker را بررسی میکند، فایل
.env.exampleرا به.envکپی میکند،docker compose up -dرا اجرا کرده و مهاجرتهای دیتابیس را انجام میدهد.

محدودیتهای فنی و چرخه حیات
مهارتها بهطور دائمی در زمینه باقی نمیمانند. پس از فراخوانی، تا زمان فشردهسازی خودکار جلسه باقی میمانند. در هنگام فشردهسازی، تنها ۵۰۰۰ توکن اول یک مهارت حفظ میشود. اگر مهارت پس از یک جلسه طولانی رفتار درستی نداشت، کاربر باید دوباره آن را فراخوانی کند.
همچنین تمام مهارتهای فعال یک بودجه مشترک ۲۵ هزار توکنی دارند. تکیه بیش از حد به تزریقهای پویای حجیم میتواند این حد را سریعاً پر کند. برای کاهش این مشکل، توسعهدهندگان میتوانند از فایلهای reference.md در پوشه مهارت استفاده کنند؛ این فایلها بهطور خودکار بارگذاری نمیشوند اما مدل در صورت نیاز میتواند صراحتاً آنها را باز کند.
عیبیابی مشکلات رایج
- عدم نمایش مهارت: مطمئن شوید ساختار دقیقاً
.claude/skills/skill-name/SKILL.mdاست. فایلی که مستقیماً در.claude/skills/قرار گیرد کار نمیکند. همچنین بررسی کنید فایل با جداکننده YAML یعنی---شروع شود. - فعالسازی بیش از حد: توصیف (description) بیش از حد کلی است. توصیف را محدودتر کنید یا کلمات مترادف خاصی را به
when_to_useاضافه کنید. - خروجی خالی تزریق: دستور را در یک ترمینال استاندارد تست کنید (مثلاً بررسی کنید
ghلاگین شده باشد). از مدیریت خطا در مهارت استفاده کنید:!'command 2>/dev/null || echo "Error message"'. - خروجی خالی Fork: مطمئن شوید مهارت حاوی یک دستورالعمل مشخص (مثلاً "Research X") است، نه اینکه صرفاً یک سند مرجع باشد.
تحلیل: تغییر در جریان کاری توسعهدهنده
این تحول، نقش توسعهدهنده را از یک «مهندس پرامپت» به یک «معمار جریان کار» (Workflow Architect) تغییر میدهد. بهجای اینکه هر بار یک فرآیند را توصیف کند، مهندس آن فرآیند را در خودِ مخزن کد رمزگذاری میکند. این کار بهطور موثری کدبیس را به یک رابط برنامهپذیر برای هوش مصنوعی تبدیل میکند.
در سطح گستردهتر، این رویکرد نشاندهنده حرکت به سمت «عاملیت قطعی» (Deterministic Agency) است. با محدود کردن هوش مصنوعی به یک چکلیست مشخص در SKILL.md و ارائه دادههای زنده از طریق تزریق، غیرقابلپیشبینی بودن مدلهای زبانی به حداقل میرسد. هوش مصنوعی دیگر فقط کد پیشنهاد نمیدهد، بلکه یک SOP (رویه استاندارد عملیاتی) تایید شده شرکتی را اجرا میکند.
برای شروع پیادهسازی، توسعهدهندگان باید تکراریترین فرآیند سهمرحلهای خود — مانند یک توالی خاص تست و استقرار — را شناسایی کرده و آن را به عنوان اولین مهارت سفارشی خود رمزگذاری کنند.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو