کدنویسی با AI

Plan mode چیست و چرا اهمیت دارد

Plan mode چیست و چرا اهمیت دارد — راهنمای فارسی از مجموعهٔ «کدنویسی با AI» در وبلاگ آیرا. بازنویسی‌شده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

نوشتهٔ به‌روزرسانی: ۴ دقیقه مطالعه
تصویر مقالهٔ Plan mode چیست و چرا اهمیت دارد

وقتی برای اولین بار با یه ابزار کدنویسی AI مثل Claude Code، Cursor یا Aider کار می‌کنی، معمولاً یه الگوی اشتباه طی می‌شه: یه درخواست کوتاه می‌نویسی، AI شروع به ویرایش فایل‌ها می‌کنه، چند دقیقه بعد می‌فهمی که مسیر اشتباه بوده و باید همه چیز رو rollback کنی. Plan mode دقیقاً برای جلوگیری از این سناریو طراحی شده.

Plan mode چیه؟

Plan mode (که در بعضی ابزارها به اسم «think before act» یا «architect mode» هم شناخته می‌شه) یه رژیم اجرایی در coding agent‌هاست که در اون AI قبل از اینکه حتی یه فایل لمس کنه، یه نقشهٔ کامل از کار طراحی می‌کنه و به تو نشون می‌ده.

در این حالت، agent فقط می‌خونه — به فایل‌ها نگاه می‌کنه، ساختار پروژه رو می‌فهمه، dependencies رو بررسی می‌کنه — ولی هیچ write‌ای انجام نمی‌ده. خروجی این مرحله یه plan متنیه: «من قصد دارم فلان فایل رو به این شکل تغییر بدم، بعد اون فایل رو اضافه کنم، و این تابع رو refactor کنم.» تو این plan رو می‌خونی، تأیید می‌کنی (یا رد می‌کنی و اصلاح می‌خوای)، و بعد agent اجرا می‌کنه.

چرا این مهمه؟

یه coding agent بدون plan mode مثل یه نقشه‌کش‌ه که مستقیم شروع به تخریب دیوار می‌کنه، بدون اینکه نقشه نشون بده. ممکنه درست بره، ممکنه اشتباه بره. در هر صورت هزینهٔ اشتباه خیلی بالاست.

در پروژه‌های بزرگ، مشکل تشدید می‌شه. وقتی کدبیس چند هزار خط داره و چندین ماژول به هم وابسته‌ان، یه تغییر اشتباه در جای درست می‌تونه باگ‌های غیرمنتظره تولید کنه. Plan mode می‌ذاره تو قبل از هر تغییر بدونی دقیقاً چی قراره اتفاق بیفته.

سه فایدهٔ اصلی:

۱. کنترل روی scope: خیلی وقت‌ها وقتی یه درخواست کوچیک می‌دی، AI تصمیم می‌گیره «در راه» چند چیز دیگه هم اصلاح کنه. بدون plan mode نمی‌فهمی تا وقتی تموم بشه. با plan mode، قبل از اجرا scope رو می‌بینی و می‌تونی محدودش کنی.

۲. درک بهتر کد: وقتی plan رو می‌خونی، یاد می‌گیری. می‌فهمی AI کجا نگاه کرده، چه اتصالاتی دیده، و چرا اون مسیر رو انتخاب کرده. این خودش یه ارزش آموزشیه.

۳. اعتماد تدریجی: وقتی با یه codebase جدید کار می‌کنی، plan mode بهت اجازه می‌ده قبل از اینکه به AI اعتماد کامل بدی، عملکردش رو ارزیابی کنی.

Plan mode در ابزارهای مختلف

Claude Code: با دستور claude --plan یا داخل تنظیمات، می‌تونی agent رو به حالت برنامه‌ریزی قبل از اجرا ببری. Claude نقشه رو می‌نویسه و منتظر تأیید می‌مونه.

Cursor: حالت «Yolo mode» در مقابل «Ask mode» قرار داره — در Ask mode، Cursor اعمال تغییرات رو به تأیید تو موکول می‌کنه.

Aider: با flag --no-auto-commits و بررسی diff قبل از commit، یه نوع plan review دستی داری.

Windsurf: Cascade editor به صورت پیشفرض قبل از هر write، یه خلاصهٔ برنامه نشون می‌ده.

تفاوت Plan mode با پرامپت‌نویسی دقیق‌تر

یه سوال رایج اینه: «مگه نمی‌شه با نوشتن پرامپت دقیق‌تر همون نتیجه رو گرفت؟» جواب: نه کاملاً.

پرامپت دقیق‌تر scope رو محدودتر می‌کنه، ولی plan mode یه مرحلهٔ تأیید اضافه می‌کنه که در هر صورت لازمه. حتی با کامل‌ترین پرامپت، agent ممکنه چیزی در کد ببینه که تو ندیدی و یه تغییر اضافه بکنه. plan mode این تغییرها رو قبل از اجرا به تو نشون می‌ده.

چه وقت Plan mode رو خاموش کنی؟

Plan mode همیشه بهترین انتخاب نیست. وقتی داری یه کار تکراری و مشخص انجام می‌دی — مثلاً «این ۲۰ فایل رو به TypeScript strict تبدیل کن» — توقف برای تأیید plan فقط کند می‌کنه. در این موارد می‌تونی plan mode رو غیرفعال کنی. ولی برای هر کار معماری، refactor بزرگ، یا تغییری که چند ماژول رو درگیر می‌کنه، plan mode رو روشن نگه دار.

نسبت با حافظهٔ پروژه

یه مشکل پنهان در plan mode اینه: اگه agent هر بار از صفر با پروژه‌ات آشنا بشه، plan هایی که می‌نویسه ممکنه context مهم رو از دست بده. مثلاً اگه قبلاً تصمیم گرفتی از یه library خاص استفاده نکنی، agent جدید این رو نمی‌دونه.

اینجاست که AiraCode با شناخت پیوسته فرق می‌کنه — plan هایی که می‌نویسه از context واقعی پروژه‌ات اومده، نه از یه cold start. تصمیم‌های قبلی، pattern های کدبیس، و محدودیت‌های خاصی که تو تعریف کردی، همه داخل plan منعکس می‌شن.

یه مثال عملی

فرض کن می‌خوای authentication رو به پروژه اضافه کنی. بدون plan mode، agent شروع می‌کنه، middleware می‌نویسه، route‌ها اضافه می‌کنه، شاید session store هم setup می‌کنه — همه این‌ها در یه اجرا. تو می‌بینی ۱۵ فایل تغییر کرده و نمی‌دونی کجا شروع به بررسی کنی.

با plan mode، قبل از شروع می‌خونی:

  • افزودن middleware در src/middleware/auth.ts
  • اضافه کردن route‌های /login و /logout در src/routes/auth.ts
  • بروزرسانی app.ts برای mount کردن middleware
  • افزودن SESSION_SECRET به .env.example

این رو می‌خونی، متوجه می‌شی session-based auth می‌خواد بنویسه ولی تو JWT می‌خوای، قبل از شروع می‌گی «از JWT استفاده کن، نه session.» Plan تغییر می‌کنه، بعد اجرا می‌شه.

جمع‌بندی

Plan mode یه قابلیت اختیاری نیست — برای هر کار جدی با coding agent، یه ضرورته. فرقش با کار بدون plan مثل فرق بین جراحی برنامه‌ریزی‌شده و اورژانسه: هر دو ممکنه نتیجهٔ خوب بدن، ولی ریسک دومی خیلی بالاتره.

همچنین بخوان

#کدنویسی با AI

ادامهٔ مسیر

همهٔ مقاله‌ها ←

بیشتر در «کدنویسی با AI»