تصور کنید تابعی را در محیط چت قرار میدهید و در پاسخ، پاراگرافی تمیز اما بیفایده دریافت میکنید که میگوید: «کد شما عالی است! شاید بد نباشد مدیریت خطا را اضافه کنید.» یک درخواست کلی مانند «کد من را بررسی کن» معمولاً به همین نوع تحسینهای مبهم منجر میشود و در شناسایی خطای off-by-one در یک حلقه یا یک مقدار تهی (null) مدیریتنشده در خط ۱۴ که شما واقعاً بهدنبالش بودید، شکست میخورد.
برای رفع این مشکل، یک چارچوب ساختاری جدید در ۳۰ ژوئن ۲۰۲۶ توسط dev.to منتشر شد که هوش مصنوعی را از یک دستیار مودب به یک مهندس ارشد سختگیر تغییر میدهد. این کار از طریق تعریف نقشهای مشخص و محدودیتهای سخت صورت میگیرد.
بسیاری از برنامهنویسان با بازبینی کد توسط هوش مصنوعی مانند یک گپ دوستانه برخورد میکنند، اما چون مدل اولویتهای مشخصی ندارد، نتایج در سطح پوستهها باقی میمانند. در چشمانداز حرفهای فعلی، جایی که هوش مصنوعی در هر IDE ادغام شده است، گلوگاه از توانایی مدل به دقت در پرامپت (دستورالعمل) تغییر یافته است. تفاوت این وضعیت با دنیای واقعی، شبیه تفاوتِ این است که از یک برنامهنویس تازهکار بخواهید «یک نگاهی به این کد بیندازد» یا به یک حسابرس ارشد، چکلیستی از آسیبپذیریهای امنیتی بحرانی را تحویل دهید. این رویکرد ساختارمند تداعیکننده الگوهای معماری در مهندسی نرمافزار است که به جای دستورات پراکنده، بر چارچوبهای تکرارپذیر متکی هستند.
به نقل از راهنمای dev.to، یک پرامپت حرفهای برای بازبینی کد باید چهار مؤلفه متمایز داشته باشد تا «حشو» و نویزهای کلی حذف شوند:
- نقش و زمینه: ایجاد یک پرسونا خاص برای هوش مصنوعی و تعریف محیط اجرا. برای مثال: «تو یک بازبین ارشد بکاند هستی. این کد در محیط عملیاتی پرداختها اجرا میشود».
- چکلیست اولویتبندیشده: تعیین ترتیب صریح موارد مورد بررسی. یک سلسلهمراتب استاندارد شامل «صحت» (Correctness) در اولویت اول، و بهدنبال آن «امنیت»، «پایداری» و در نهایت «شفافیت» است. این متدولوژی شباهت زیادی به رویکرد معکوس کردن تحلیل و امتیازدهی دارد تا از بازخوردهای سطحی جلوگیری شود.
- محدودیتهای سخت: دستوراتی که نویزهای کلی را از بین میبرند. مؤثرترین محدودیت این است: «هر اصلاحی را که نمیتوانی به خط خاصی اشاره کنی، پیشنهاد نده». این دستور مدل را مجبور میکند یا یک خط مفقود یا مشکل دقیق را بیابد یا سکوت کند.
- قالب خروجی ثابت: دستهبندی نتایج به گروههایی مانند مسدودکننده (BLOCKING)، باید اصلاح شود (SHOULD-FIX) و جزئیات (NITS). این ساختار تضمین میکند که به جای یک مقاله طولانی، فهرستی سازمانیافته دریافت کنید.
بر اساس مستندات این متدولوژی، سه استراتژی اجرایی برای پیادهسازی این معماری ارائه شده است:
اول، «بازبینی طبقهبندیشده» (The Triaged Review) است که پیشفرض برای کدهای عملیاتی است. این روش یک ترتیب بررسی اجباری را دیکته میکند:
۱. صحت: خطاهای منطقی، خطاهای off-by-one، شرطهای نادرست و موارد لبهای (مانند ورودیهای تهی، null یا ورودیهای بسیار بزرگ).
۲. امنیت: حملات تزریق (Injection)، نبود بررسیهای مجوز دسترسی (authz)، متدهای ناامن Deserialization و وجود اسرار (secrets) در کد.
۳. پایداری: خطاهای مدیریتنشده، نشت منابع (resource leaks)، شرایط رقابتی (race conditions) و نبود تایماوتها.
۴. شفافیت: نامگذاری و ساختاری که باعث سردرگمی خواننده بعدی کد شود.
در این مدل، محدودیتها شامل این است که اگر دستهای خالی بود، کلمه «none» (هیچ) نوشته شود و مسائل مربوط به استایل که توسط فرمتکنندهها (formatter) پوشش داده میشوند، نادیده گرفته شوند.
دوم، «بازبینی خصمانه برای شکستن کد» (The Adversarial Break-It Review) است. در اینجا هوش مصنوعی مانند یک مهندس QA تهاجمی عمل میکند. هدف، یافتن ورودیهایی است که باعث کرش تابع یا تولید خروجی غلط شوند. این مدل روی مقادیر مرزی، تایپهای غیرمنتظره، فراخوانیهای همزمان (concurrent) و ورودیهای بسیار حجیم تمرکز میکند. پرامپت در این حالت مدل را ملزم میکند که برای هر مشکل سه مورد را ارائه دهد: ورودی دقیق تحریککننده (trigger input)، دلیل شکست و یک تست بازتولید حداقلی (minimal reproduction test). این نوع بازبینی سختگیرانه را میتوان مشابه سیستمهای شناسایی توهمات کدنویسی دانست که با متدهای اعتبارسنجی دقیق، خروجیهای AI را به چالش میکشند.
سوم، «گذر امنیتی تکمرحلهای» (The Security-Only Pass) است که برای بخشهای پرریسک مانند احراز هویت یا پرداختها استفاده میشود. این روش یافتهها را به دستههایی چون تزریق، احراز هویت/مجوز شکستخورده، افشای دادههای حساس، SSRF، Deserialization ناامن یا نبود اعتبارسنجی ورودی نگاشت میکند. هر مورد یافت شده باید شامل یک رتبه شدت (بالا/متوسط/پایین)، خط آسیبپذیر، یک نمونه اکسپلویت و روش اصلاح باشد.
پرامپت خصمانه بهطور ویژهای مؤثر است زیرا هوش مصنوعی را مجبور میکند برای هر باگ یک تست بازتولید ارائه دهد. این کار خروجی را از یک هشدار تئوریک به یک شکست قابل تأیید تبدیل میکند و به برنامهنویس اجازه میدهد باگ را فوراً تأیید کند.
همچنین، اجرای امنیت به عنوان یک گذر مجزا، تاکتیکی برتر نسبت به بازبینیهای کلی است. با جدا کردن امنیت از نامگذاری و ساختار، مدل از تقسیم توجه جلوگیری میکند و این منجر به نرخ بازیابی (Recall) بالاتر برای آسیبپذیریهای بحرانی میشود.
این تغییر در استراتژی پرامپتنویسی، نشاندهنده حرکت گستردهتر به سمت گردشهای کاری عاملمحور (Agentic) است. این اسکلت (نقش، چکلیست، محدودیت، قالب) را میتوان برای سایر وظایف مهندسی بازاستفاده کرد: اشکالزدایی («قبل از نظریهپردازی، بازتولید کن»)، بازسازی کد یا Refactoring («رفتار را حفظ کن و در هر بار فقط یک چیز را تغییر بده»)، نوشتن تست («لبهها را هدف قرار بده، نه مسیرهای موفق یا happy path») و بازبینی SQL («بررسی N+1، ایندکسهای مفقود و Full Scanها»).
نویسنده اشاره میکند که این پرامپتها شالوده ابزارهایی مانند Claude Code Agent OS هستند. این سیستم، ساختارهای مذکور را به زیر-عاملهای تکرارپذیر تبدیل میکند که توسط دستورات فعال شده و شامل ۱۲ دستور slash و قالبهای آماده ویرایش CLAUDE.md هستند. این گردشهای کاری در محیطهای Claude Code، ChatGPT، Cursor و Copilot قابل اجرا هستند.
برای برنامهنویسان، این یعنی دوران «مهندسی پرامپت» — که شبیه حدس زدن کلمات جادویی بود — به «معماری پرامپت» تغییر میکند. حالا توسعهدهندگان به جای حدس زدن، مشخصات سختگیرانهای میسازند که با مدل زبانی بزرگ (LLM) به عنوان یک تابع برنامهنویسی با طرح ورودی و خروجی (schema) تعریف شده برخورد میکنند.
برای مشاهده تأثیر، سعی کنید پرامپت «بازبینی طبقهبندیشده» را روی تابعی که هفته پیش نوشتید اجرا کنید و آن را با درخواست ساده «کدم را بررسی کن» مقایسه کنید. تفاوت در جزئیات و حذف حشو، ارزش اصلی این متدولوژی است.
گام بعدی شما
- یکی از توابع پیچیده که هفته گذشته نوشتید را بردارید و ابتدا با پرامپت ساده «کدم را بررسی کن» و سپس با متد «بازبینی طبقهبندیشده» تست کنید.
- برای کدهای مربوط به احراز هویت، حتماً از «گذر امنیتی تکمرحلهای» استفاده کنید تا دقت مدل در یافتن آسیبپذیریها بالا برود.
- ساختار «محدودیت سخت» را به تمام پرامپتهای تولید کد خود اضافه کنید تا مدل مجبور شود مستندات یا خطوط دقیق را ارجاع دهد.
اما تأثیر این معماری بر کاهش هزینههای استنتاج در مقیاس سازمانی حتی جذابتر است — به تحلیل ما درباره بهینهسازی توکنها مراجعه کنید.




گفتگو