skills-npm: اسکیلهای ایجنت رو با npm پخش کن
خلاصهٔ کاملتر
به گفتهٔ آنتونی فو، روشهای فعلی پخش اسکیل ایجنت (مثل @vercel-labs/skills) چند تا اصطکاک دارن. منبع فقط میتونه ریپوی گیت باشه، اسکیل و ابزار جدا از هم آپدیت میشن و نسخههاشون به هم نمیخوره، برای هر پروژه باید دستی کلون کنی، و تیمها یا باید فایلهای کلونشده رو کامیت کنن یا روی هر ماشین از اول ستاپ کنن.
پیشنهادش یه قرارداد سادهست: اسکیلها رو داخل خود پکیج npm بفرست. اینطوری وقتی ابزار رو نصب میکنی اسکیلهاش هم باهاش میآد و نسخهشون همیشه با نسخهٔ ابزار جفته. بعدش skills-npm همون اسکیلها رو پیدا میکنه و به مسیر skills/npm-- سیملینک میزنه تا ایجنت کدنویسیت پیداشون کنه.
npm i -D skills-npm
npx skills-npm setupدستور setup رو فقط یه بار اجرا میکنی. ابزار رو به اسکریپت prepare تو package.json وصل میکنه، الگوی */skills/npm- رو به .gitignore اضافه میکنه و اولین سینک رو انجام میده. از اون به بعد هر بار که وابستگیها نصب بشن سیملینکها خودکار ساخته میشن. نویسنده تأکید میکنه که skills-npm باید devDependency بمونه، چون prepare برای کسی که پکیج منتشرشدهٔ تو رو نصب میکنه اجرا نمیشه.
تنظیمات از فایل skills-npm.config.ts میآد. مهمترینهاش source (پیشفرض package.json، یا node_modules)، agents، recursive برای مونوریپو، و include/exclude با پشتیبانی از الگوی وایلدکارد مثل @some/* هستن. اگه agents رو تعیین نکنی خودش تشخیص میده: هم از روی وجود پوشهٔ تنظیمات ایجنت (مثل ~/.cursor یا ~/.claude) و هم از روی بودن دستور ایجنت روی PATH (مثل claude، codex، gemini).
برای نویسندههای پکیج هم کار سادهست: کافیه یه پوشهٔ skills/ با فایل SKILL.md داخل پکیج بذارن. پکیجهایی مثل @slidev/cli، @vueuse/skills، @vitejs/devtools-kit و eslint-vitest-rule-tester همین الان اسکیل داخلی دارن. پروژه با لایسنس MIT منتشر شده.
نکات کلیدی:
- قرارداد پیشنهادی: اسکیلها داخل پکیج npm منتشر بشن تا نسخهشون با ابزار جفت بمونه
- سیملینکها به مسیر skills/npm-- ساخته میشن
- setup ابزار رو به اسکریپت prepare وصل میکنه و */skills/npm- رو به .gitignore اضافه میکنه
- تشخیص خودکار ایجنت از روی پوشهٔ تنظیمات و دستور موجود روی PATH
- لایسنس MIT، نوشتهٔ Anthony Fu




