عنوان:

‫خودکارسازی و یکپارچه‌سازی فرآیندها با فایل‌های پرامپت چندبارمصرف (Prompt Files)


نویسنده: وحید نصیری
تاریخ: ۱۴۰۵/۰۵/۲۹ ۱۲:۴۳
آدرس: www.dntips.ir
تکرار مداوم پرامپت‌های تحلیلی برای وظایف پرتکرار مانند بازبینی کد (Code Review)، تولید تست‌های اعتبارسنجی یا نگارش Migrationها، علاوه بر اتلاف زمان، باعث ناهماهنگی در کیفیت خروجی اعضای تیم می‌شود. هر بار که مهندسی متفاوت یک درخواست بازبینی را با لحن و کلمات جداگانه مطرح کند، سطح بررسی تغییر خواهد کرد. قابلیت فایل‌های پرامپت (Prompt Files / .prompt.md) به شما امکان می‌دهد تا این دستورات تکراری را مانند توابع کدنویسی، فرموله‌بندی و نسخه‌بندی کنید؛ این یعنی تبدیل پرامپت‌نویسی سنتی به اتوماسیون مهندسی (Engineering Automation).

ساختار پوشه‌بندی و تعریف پرامپت‌های سفارشی

در محیط‌های پشتیبانی‌شده توسط GitHub Copilot (مانند VS Code و Visual Studio)، فایل‌های پرامپت در پوشه .github/prompts/ با پسوند .prompt.md تعریف می‌شوند:
.github/
└── prompts/
    ├── review-csharp.prompt.md
    ├── generate-endpoint.prompt.md
    └── refactor-async.prompt.md

نمونه پیاده‌سازی: پرامپت خودکار بازبینی تخصصی کد #C

فایل .github/prompts/review-csharp.prompt.md را به صورت زیر ایجاد کنید:
---
name: review-csharp
description: بازبینی دقیق و مهندسی کدهای C# بر اساس استانداردهای مدرن دات‌نت
---
کدهای C# انتخاب‌شده در `#selection` را از منظر استانداردهای کیفی زیر بررسی کن:

محورهای ارزیابی:
1. **صحت عملکرد (Correctness):** بررسی جریان منطقی، وضعیت‌های مرزی و جلوگیری از خطاهای منطقی.
2. **تهی‌پذیری (Nullability):** انطباق کامل با NRT و جلوگیری از بروز خطای بالقوه `CS8602` یا NullReferenceException.
3. **الگوهای ناهمگام (Async/Await):** شناسایی فراخوانی‌های بلاک‌کننده (`.Result` یا `.Wait()`)، تسک‌های رهاشده و پشتیبانی از `CancellationToken`.
4. **مدیریت استثناها (Exception Handling):** استفاده از رفتارهای Fail-Fast، عدم بلعیدن بی‌دلیل خطاها و پرهیز از بلوک‌های خالی `catch`.
5. **امنیت و کارایی (Security & Performance):** جلوگیری از تزریق SQL، مدیریت بهینه بار روی حافظه/GC و بهره‌گیری از `.AsNoTracking()`.
6. **نگه‌داری و تست‌پذیری (Maintainability & Testability):** رعایت اصل تک‌مسئولیتی (SRP) و تفکیک وابستگی‌ها برای Mock کردن آسان.

فرمت گزارش هر یافته:
- **سطح بحرانی بودن (Severity):** [Critical / High / Medium / Low]
- **علت و توضیح فنی (Explanation):** شرح دلیل ضعف در کد.
- **راهکار اصلاحی (Recommended Fix):** توضیح روش پیاده‌سازی استاندارد.
- **نمونه کد اصلاح‌شده (Code Example):** قطعه کد تمیز بر اساس C# مدرن.

نحوه فراخوانی و اجرای پرامپت‌های ذخیره‌شده

پس از تعریف فایل پرامپت، کافی است در پنجره Copilot Chat، قطعه کد مدنظر را انتخاب کرده و نام پرامپت را به عنوان یک اسلش‌کامند (Slash Command) فراخوانی کنید:
/review-csharp
یا با ضمیمه کردن متغیرهای کانتکست:
/review-csharp #file:OrderProcessingService.cs

مزایای سازمانی و فنی فایل‌های پرامپت
  • تثبیت استانداردهای Code Review در کل تیم: همه اعضای تیم با یک دستور ثابت، خروجی‌های ساختاریافته و دارای سطح‌بندی ریسک (Severity) دریافت می‌کنند.
  • همگام‌سازی با مخزن گیت (Version Controlled Prompts): پرامپت‌ها همگام با معماری پروژه نسخه می‌خورند و در قالب Pull Request توسط تیم بازبینی و تکمیل می‌شوند.
  • کاهش خطای انسانی و فراموشی: هیچ معیار مهمی مانند بررسی CancellationToken یا بررسی امنیت در هنگام بازبینی‌ها از قلم نخواهد افتاد.

قاعده کلیدی: پرامپت‌های روزمره مهندسی را دوباره تایپ نکنید؛ آن‌ها را در قالب فایل‌های پرامپت فرموله کنید تا یکپارچگی، سرعت و کیفیت تحلیل در کل چرخه توسعه تضمین شود.