اگر امروز کدها را فقط با پرامپتهای کوتاه مینویسید و هر چه «به نظر درست میرسد» را میپذیرید، در واقع در حال پرداخت مالیات سنگینی از بدهیهای فنی هستید که هفتهها بعد به شکل باگهای بحرانی ظاهر میشوند. این عادت که به آن Vibe Coding (کدنویسی حسی) میگویند، دقیقاً همان جایی است که BMAD با یک گردشکار سختگیرانه و مبتنی بر مشخصات فنی وارد عمل میشود.
طبق اعلام توسعهدهندگان این چارچوب، از ۷ اوت ۲۰۲۶، BMAD برای حذف «تصمیمات خاموش» مدلها طراحی شده است. در حالت عادی، وقتی به یک مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب میدهد — دستور میدهید «یک کوتاهکننده لینک بساز» (URL Shortener)، مدل بدون آنکه شما بفهمید، تصمیماتی حیاتی میگیرد. مثلاً مدل باید خودش حدس بزند که لینک منقضا شده چه پاسخی دهد: یک خطای ۴۰۴ یا یک ۴۱۰ Gone؟ یا اینکه تاریخ انقضا بر اساس کلیک باشد یا زمان مطلق؟
همانطور که در تحلیلهای پیشین ما دربارهی امنیت مدلهای بازمتن دیدیم، نبودِ مستندات صریح در مراحل اولیه، منجر به ایجاد حفرههای امنیتی و منطقی میشود. در BMAD، کد تنها نتیجهی نهایی یک فرآیند برنامهریزی مستند است، نه نقطه شروع آن. این سیستم بهجای یک دستیار واحد، از یک تیم از عاملها (Agents) استفاده میکند: ماری (تحلیلگر)، جان (مدیر محصول)، وینستون (معمار) و آملیا (برنامهنویس). این رویکرد تقسیم وظایف، بر اساس این منطق است که خرد کردن وظایف پیچیده احتمال موفقیت عاملهای هوشمند را بهطور قابلتوجهی افزایش میدهد.
خروجی مراحل اولیه، کد نیست؛ بلکه فایلهای Markdown شامل شرح تکالیف (Brief)، سند نیازمندیهای محصول (PRD) و معماری است. این روند در ۶ فاز اجرا میشود:
فاز ۱: استخراج تصمیمات پنهان
فرآیند با ماری شروع میشود. او بهجای دادن جواب، شما را بازجویی میکند تا تصمیماتی که نادیده گرفتهاید را بیرون بکشد. نتیجه این مرحله فایلی به نام brief.md است که دقیقاً میگوید چه چیزی ساخته میشود و چه مواردی «خارج از محدوده» (Out of Scope) هستند.
فاز ۲: سختسازی نیازمندیها (PRD)
جان، مدیر محصول، این ایدههای پراکنده را به یک سند PRD تبدیل میکند. مثلاً تصمیم «بازگشت خطای ۴۱۰» به یک نیازمندی قابل آزمایش تبدیل میشود: «اگر لینک منقضی شده بود $\rightleftharpoons$ پاسخ ۴۱۰ Gone با بدنه JSON».
فاز ۳: معماری فنی
وینستون، معمار سیستم، در فایل architecture.md تصمیمات گرانقیمت را ثبت میکند. او مشخص میکند که بررسی انقضای لینک بهصورت «تنبلی» (Lazy) باشد یا «فعال» (Active). با انتخاب روش تنبلی، او صریحاً ثبت میکند که رکورد لینک منقضی شده همچنان در پایگاهداده میماند تا زمانی که حذف شود.

فاز ۴: بستههای زمینه (Stories)
در این مرحله، نیازمندیها به داستانهای کاربردی (User Stories) تبدیل میشوند. هر داستان یک بسته کامل از زمینه (Context) است تا برنامهنویس یا عامل هوش مصنوعی بدون نیاز به حدس زدن، دقیقاً بداند چه چیزی را باید پیاده کند.
فاز ۵: پیادهسازی مکانیکی
تنها در این مرحله، آملیا کدنویسی را آغاز میکند. حالا پیادهسازی تقریباً «مکانیکی» است؛ چون او بهجای تکیه بر شهود، بر اساس معیارهای پذیرش (Acceptance Criteria) پیش میرود. این مدل پیادهسازی ساختاریافته مشابه راهکارهای Edilec برای تبدیل عاملهای هوش مصنوعی به نرمافزارهای تجاری است که بر استقرار مرحلهبندی شده تاکید دارند.
فاز ۶: راستیآزمایی با مشخصات فنی
در نهایت، کد توسط /bmad-code-review بررسی میشود. در یک مورد واقعی، این مرحله متوجه شد که معماری بر «زمان UTC» تاکید داشت، اما کد متغیرهای زمان ساده (Naive) را میپذیرفت. این تضاد باعث میشد بهجای خطای ۴۱۰، کاربر با خطای ۵۰۰ مواجه شود. در Vibe Coding، این باگ احتمالاً تا زمان رسیدن به محیط عملیاتی شناسایی نمیشد.
گام بعدی شما
- اگر از Cursor یا GitHub Copilot استفاده میکنید، سعی کنید پیش از کدنویسی، یک فایل
spec.mdبنویسید و آن را به مدل معرفی کنید. - جریان کاری خود را از «پرامپت $\rightleftharpoons$ کد» به «تحلیل $\rightleftharpoons$ معماری $\rightleftharpoons$ کد» تغییر دهید.
- برای پروژههای پیچیده، نقشهای مختلف (معمار، تستکننده، توسعهدهنده) را در پرامپتهای مجزا تعریف کنید.
اما تأثیر این رویکرد بر کاهش هزینههای استنتاج در مقیاس بزرگ حتی خیرهکنندهتر است — به تحلیل ما دربارهی بهینهسازی توکنها در مدلهای استدلالی مراجعه کنید.




گفتگو