# مشخصات درس‌نامه: اصول مهندسی پرامپت (Prompt Engineering for Vibe Coding) - **شناسه در سیلابس:** `L2.6` - **فصل:** فصل ۲: شروع مسیر Vibe Coding (Ch 2) - **نوع محتوا:** 📘 درس‌نامه متنی - **زمان تقریبی مطالعه:** ۱۲ دقیقه - **پیش‌نیازهای مستقیم:** `L2.5` (انتظارات واقع‌بینانه و هزینه) --- ## ۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy) دانشجو پس از مطالعهٔ این درس‌نامه باید بتواند: - [ ] **درک کند (Understand):** چرا پرامپت‌نویسی برای ایجنت‌های توسعه نرم‌افزار با چت کردن عادی با چت‌بات‌های متنی متفاوت است. - [ ] **به‌کار ببندد (Apply):** فرمول چهاربخشی پرامپت مهندسی نرم‌افزار را اجرا کند: **بافت (Context) + هدف مشخص (Objective) + محدودیت‌ها (Constraints) + معیارهای پذیرش (Acceptance Criteria)**. - [ ] **به‌کار ببندد (Apply):** قانون اتمیک بودن (Rule of Atomicity) را پیاده کند؛ درخواست‌های بزرگ را به تسک‌های تک‌مرحله‌ای، مستقل و قابل‌تست بشکند و از «تلهٔ مگاپرامپت» پرهیز کند. - [ ] **به‌کار ببندد (Apply):** از پرامپت‌های چندرسانه‌ای (ارسال تصویر و اسکرین‌شات از خطاها یا طرح‌های بصری) برای انتقال سریع‌تر منظور استفاده کند. - [ ] **به‌کار ببندد (Apply):** الگوی استاندارد گزارش خطا (Structured Error Reporting) را پیاده کند؛ ارسال مستقیم متن کامل خطای ترمینال یا کنسول به جای جملات مبهم نظیر «کار نکرد، درستش کن!». --- ## ۲. محدوده و مرزهای محتوا (Scope & Boundaries) ### آنچه باید پوشش داده شود (In-Scope): 1. **گذار از گفتگوی سطحی به دستورالعمل مهندسی:** * هوش مصنوعی ذهن‌خوان نیست؛ وضوح ورودی شما دقیقاً کیفیت خروجی کد را تعیین می‌کند (Garbage In, Garbage Out). 2. **فرمول طلایی پرامپت نرم‌افزاری (The 4-Part Vibe Formula):** * **۱. بافت و زمینه (Context):** ما در حال ساخت چه پروژه‌ای هستیم و چه استکی داریم؟ * **۲. هدف مشخص (Objective):** دقیقاً چه تغییری، چه فیچری یا چه تابعی باید اضافه/اصلاح شود؟ * **۳. محدودیت‌ها (Constraints):** چه چیزهایی نباید تغییر کنند؟ چه پکیج‌های خاصی باید استفاده یا پرهیز شوند؟ * **۴. معیارهای پذیرش (Acceptance Criteria):** از کجا بفهمیم کار با موفقیت انجام شده است؟ (مثلاً «یک پیام سبز موفقیت نمایش داده شود»). 3. **قانون تغییرات اتمیک (Rule of Atomicity):** * تفاوت پرامپت مخرب همه‌کاره («برای من یک فروشگاه مثل دیجی‌کالا بساز با سبد خرید و درگاه پرداخت و پنل ادمین») با زنجیره پرامپت‌های اتمیک («گام ۱: فقط کارت نمایش محصول را بساز»). * چرا شکستن کار به گام‌های کوچک، خطای ایجنت را به صفر نزدیک می‌کند و تست خروجی را آسان می‌سازد. 4. **پرامپت‌های چندرسانه‌ای (Multimodal Visual Prompts):** * استفاده از اسکرین‌شات رابط کاربری: کشیدن دایره قرمز دور بخشی که چیدمانش به هم ریخته یا رنگش غلط است. * ارسال تصویر یک نمونه واقعی (Inspiration) برای ساخت ظاهر مشابه در کد. 5. **الگوی گزارش دقیق باگ و خطا (Bug Reporting Pattern):** * چرا نباید بنویسیم «دکمه کار نکرد» یا «خراب شد»؟ * فرمول گزارش خطا: ۱. چه کاری انجام دادم؟ ۲. چه خطایی در ترمینال رخ داد (کپی دقیق متن خطا)؟ ۳. چه انتظاری داشتم؟ 6. **کال‌اوت‌های Quera:** * `
`: مقایسه دو پرامپت واقعی ضعیف و مهندسی‌شده قبل و بعد برای یک فیچر مشخص. * `
`: تلهٔ مگاپرامپت (The Mega-Prompt Trap)؛ علت اصلی قاطی کردن ایجنت‌ها و شلختگی کدهای پروژه. ### آنچه نباید وارد آن شویم (Out-of-Scope): - نوشتن سند PRD یا ساختار تسک‌های چندفصلی (این کار در فصل ۴ آموزش داده می‌شود). - آموزش‌های متفرقه پرامپت‌نویسی ادبی، شعر، کپی‌رایتینگ متنی یا تحلیل بازار. --- ## ۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms) | اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یک‌خطی ساده | | :--- | :--- | :--- | | Prompt Engineering | مهندسی پرامپت | مهارت تنظیم دستورالعمل‌های دقیق، محدود و ساخت‌یافته برای دستیابی به خروجی کد بهینه | | Atomicity | اتمیک بودن / تجزیه‌ناپذیری | تکه‌تکه کردن تسک‌های نرم‌افزاری به گونه‌ای که هر پرامپت فقط یک هدف واحد و قابل تست داشته باشد | | Mega-Prompt | مگاپرامپت | دستور فوق‌العاده حجیم و درهم‌تنیده که همزمان ده‌ها فیچر را طلب می‌کند و باعث شکست مدل می‌شود | | Multimodal Prompting | پرامپت‌نویسی چندرسانه‌ای | ترکیب متن، اسکرین‌شات رابط کاربری و تصاویر خطای برنامه در دستور ورودی به ایجنت | | Error Stack Trace | ردپای خطای نرم‌افزاری | پیام متنی دقیق تولیدشده توسط سیستم که نام فایل، شماره خط و علت رخ دادن باگ را نشان می‌دهد | --- ## ۴. جایگاه‌های تصاویر و نمودارها (Visual & Diagram Placeholders) > **راهنمای ایجنت نویسنده:** تمام تصاویر باید در پوشهٔ `images/` قرار گرفته و در قالب جدول تک‌خانه‌ای وسط‌چین با کپشن تفصیلی درج شوند: 1. **تصویر کاور درس:** `images/cover.png` * **موضوع:** کاور با تم تیره که پرامپت ساخت‌یافته را مانند یک معمار در حال چیدن آجرهای کد منظم و دیجیتال نشان می‌دهد. 2. **فرمول چهارگانه پرامپت نرم‌افزاری:** `images/vibe-prompt-formula.png` * **موضوع:** اینفوگرافیک ۴ قطعه پازل: بافت (Context)، هدف (Objective)، محدودیت‌ها (Constraints)، و معیار قبولی (Acceptance Criteria). 3. **اصل اتمیک بودن در برابر انفجار مگاپرامپت:** `images/atomicity-vs-megaprompt.png` * **موضوع:** مقایسه تصویری: یک درخواست غول‌پیکر که ایجنت را گیج می‌کند در برابر ۳ پله کوچک و متوالی که یکی‌یکی با موفقیت سبز می‌شوند. 4. **جادوی اسکرین‌شات و پرامپت بصری:** `images/multimodal-prompting.png` * **موضوع:** نمونه کاربردی فرستادن یک اسکرین‌شات با حاشیه‌نویسی ساده به ایجنت و اصلاح دقیق استایل دکمه در اولین تلاش. 5. **چرخه صحیح گزارش و رفع خطا:** `images/error-reporting-loop.png` * **موضوع:** فلوچارت ارسال متن لاگ خطا $\rightarrow$ تحلیل ایجنت $\rightarrow$ اعمال پچ اصلاحی $\rightarrow$ تست مجدد توسط کاربر. --- ## ۵. بخش‌بندی و ساختار محتوایی پیشنهادی درس‌نامه (`README.md`) 1. **تیتر اصلی:** `# اصول مهندسی پرامپت در وایب کدینگ` 2. **مقدمه:** چرا نحوه حرف زدن شما با ایجنت، تفاوت بین یک محصول حرفه‌ای و یک پروژه به بن‌بست خورده است؟ 3. **جدول کاور درس** 4. **تفاوت پرامپت کدنویسی با چت روزمره:** عبور از «کد بنویس» به سمت مشخصه‌سازی دقیق نیازمندی. 5. **فرمول چهاربخشی پرامپت وایب کدینگ:** تشریح بافت، هدف، محدودیت‌ها و شرایط پذیرش با یک مثال ملموس. 6. **باکس نمونه Quera (`
`):** کالبدشکافی یک پرامپت بد در برابر یک پرامپت استاندارد مهندسی‌شده. 7. **قانون طلایی اتمیک بودن (One Step at a Time):** چرا باید پروژه را لقمه‌لقمه به هوش مصنوعی تحویل دهیم؟ 8. **باکس هشدار Quera (`
`):** خطرات مرگبار مگاپرامپت‌ها در نابودی معماری پروژه. 9. **قدرت پرامپت‌های تصویری (Multimodal):** چگونه یک تصویر، کار صد کلمه توضیح گیج‌کننده را انجام می‌دهد؟ 10. **هنر گزارش خطا: چگونه باگ‌ها را به هوش مصنوعی تحویل دهیم؟:** نحوه کپی کردن لاگ، بیان انتظار و حل سیستماتیک مشکل. 11. **جمع‌بندی درس‌نامه:** تمرین مهارت پرامپت‌نویسی به عنوان زبان مادری سازندگان آینده. --- ## ۶. معیارهای پذیرش (Acceptance Criteria for Reviewer) - [ ] فرمول چهاربخشی پرامپت‌نویسی نرم‌افزار به وضوح آموزش داده شده باشد. - [ ] اصل اتمیک بودن به همراه مثال واقعی در متن جا افتاده باشد. - [ ] روش ارسال خطاها با کپی کردن لاگ و متن کامل کنسول در برابر ارسال جملات گنگ تبیین شده باشد. - [ ] کال‌اوت‌های کوئرا با محتوای کاربردی و قالب متنی تمیز درج شده باشند.