راهنمای نصب Skill
فایل SKILL.md را دانلود کنید و در مسیر مخصوص ایجنت موردنظرتان قرار دهید. پیشنهاد میکنیم پیش از فعالسازی، محتوای کامل فایل و سطح دسترسی آن را بررسی کنید.
Codex
~/.codex/skills/feature-based-react/SKILL.mdClaude Code
.claude/skills/feature-based-react/SKILL.mdCursor
.cursor/skills/feature-based-react/SKILL.mdGitHub Copilot
.github/skills/feature-based-react/SKILL.md</>مشاهده محتوای خام SKILL.mdفقط دستورالعملهایی را ببینید که ایجنت برنامهنویسی دریافت میکند؛ بدون عنوان، تگ و متادیتای کاتالوگ.
---
name: "feature-based-react"
description: "ساختار پروژه React یا Next.js را با مرزهای روشن، مالکیت Featureها، قواعد کد مشترک و Importهای مقیاسپذیر طراحی، بازبینی یا بازآرایی کن."
---
# طراحی معماری Feature-Based در React
این Skill را برای طراحی ساختار پروژه React، بازبینی مرز ماژولها یا مهاجرت تدریجی یک کدبیس به سمت مالکیت Featureها فعال کن.
## مدل هدف
رفتار کسبوکار را براساس Feature سازماندهی کن. زیرساخت سراسری را در `core`، Primitiveهای واقعاً مشترک را در صورت نیاز در `shared` و ترکیب Routeها را نزدیک ورودی Router نگه دار.
```text
src/
core/
api/
config/
providers/
features/
auth/
api/
components/
hooks/
model/
index.ts
checkout/
...
shared/
ui/
lib/
```
نامها را با پروژه هماهنگ کن و وقتی ساختار فعلی معادل سالمی دارد، این درخت را تحمیل نکن.
## روند کار
1. Routeها، قابلیتهای محصول، مالکیت State، API clientها و جهت Importهای فعلی را بررسی کن.
2. Featureها را براساس مسئولیت کسبوکار، نه نوع فنی فایل، شناسایی کن.
3. هر Component، Hook، Request و Type را به بخشی بسپار که دلیل تغییر آن را مالک است.
4. زیرساخت فراگیر را در `core` نگه دار و فقط پس از وجود دستکم دو مصرفکننده واقعی، کد را مشترک کن.
5. برای هر Feature یک ورودی عمومی کوچک تعریف کن و جزئیات داخلی را خصوصی نگه دار.
6. وابستگی دوری را حذف کن. وابستگی Feature به `core/shared` مجاز است؛ وابستگی میان Featureها باید محدود و صریح باشد.
7. فایل Route را نازک نگه دار: ترکیب Feature، بارگذاری داده Route و متادیتای Framework.
8. مهاجرت را مرحلهای انجام بده و رفتار را پس از هر بخش اعتبارسنجی کن.
## قواعد تصمیمگیری
- تست، Style، Schema و Type اختصاصی را کنار مالک Feature قرار بده.
- پوشههای عمومی `components`، `hooks` و `utils` را به انبار نامرتب تبدیل نکن.
- زودتر از نیاز Abstract نکن؛ تکرار محدود از وابستگی مشترک اشتباه کمهزینهتر است.
- نام دامنهای مانند `checkout` و `permissions` را به `common` ترجیح بده.
- کوچکترین API عمومی لازم را صادر کن.
در خروجی، نقشه مسئولیتهای فعلی، مشکلات مرزی اولویتبندیشده، درخت پیشنهادی با نامهای واقعی پروژه، جهت مجاز Import و مراحل مهاجرت را ارائه کن. هنگام Refactor، Type Check، تست، Lint و Build را در حد امکانات پروژه اجرا کن.
این Skill را برای طراحی ساختار پروژه React، بازبینی مرز ماژولها یا مهاجرت تدریجی یک کدبیس به سمت مالکیت Featureها فعال کن.
مدل هدف
رفتار کسبوکار را براساس Feature سازماندهی کن. زیرساخت سراسری را در core، Primitiveهای واقعاً مشترک را در صورت نیاز در shared و ترکیب Routeها را نزدیک ورودی Router نگه دار.
src/
core/
api/
config/
providers/
features/
auth/
api/
components/
hooks/
model/
index.ts
checkout/
...
shared/
ui/
lib/
نامها را با پروژه هماهنگ کن و وقتی ساختار فعلی معادل سالمی دارد، این درخت را تحمیل نکن.
روند کار
- Routeها، قابلیتهای محصول، مالکیت State، API clientها و جهت Importهای فعلی را بررسی کن.
- Featureها را براساس مسئولیت کسبوکار، نه نوع فنی فایل، شناسایی کن.
- هر Component، Hook، Request و Type را به بخشی بسپار که دلیل تغییر آن را مالک است.
- زیرساخت فراگیر را در
coreنگه دار و فقط پس از وجود دستکم دو مصرفکننده واقعی، کد را مشترک کن. - برای هر Feature یک ورودی عمومی کوچک تعریف کن و جزئیات داخلی را خصوصی نگه دار.
- وابستگی دوری را حذف کن. وابستگی Feature به
core/sharedمجاز است؛ وابستگی میان Featureها باید محدود و صریح باشد. - فایل Route را نازک نگه دار: ترکیب Feature، بارگذاری داده Route و متادیتای Framework.
- مهاجرت را مرحلهای انجام بده و رفتار را پس از هر بخش اعتبارسنجی کن.
قواعد تصمیمگیری
- تست، Style، Schema و Type اختصاصی را کنار مالک Feature قرار بده.
- پوشههای عمومی
components،hooksوutilsرا به انبار نامرتب تبدیل نکن. - زودتر از نیاز Abstract نکن؛ تکرار محدود از وابستگی مشترک اشتباه کمهزینهتر است.
- نام دامنهای مانند
checkoutوpermissionsرا بهcommonترجیح بده. - کوچکترین API عمومی لازم را صادر کن.
در خروجی، نقشه مسئولیتهای فعلی، مشکلات مرزی اولویتبندیشده، درخت پیشنهادی با نامهای واقعی پروژه، جهت مجاز Import و مراحل مهاجرت را ارائه کن. هنگام Refactor، Type Check، تست، Lint و Build را در حد امکانات پروژه اجرا کن.