Spec

Spec داکیومنت اصلی پروژه‌ست که هدف، تصمیم‌ها، محدودیت‌ها و وضعیت کار رو نگه می‌داره تا چندین Session مختلف بتونن بدون گم کردن مسیر، روی یه پروژه مشترک کار کنن.

‍‍‍ Spec یه داکیومنته که مشخص می‌کنه قراره چه چیزی ساخته بشه.

تمرکزش فقط روی هدف پروژه‌ست.

وقتی یه پروژه ای بزرگ باشه و توی یه Session تموم نشه، Spec تبدیل میشه به نقشه راه که ایجنت ها توی چندین Session ازش پیروی میکنن.

به عبارتی Session که خودش یک چیز موقتیه، و شما برای اتمام یک پروژه شاید بیای از ده ها سشن مختلف استفاده بکنی.

شما هر بار که Clearing انجام بدی یا یه Session جدید شروع کنی، خب همه اطلاعات داخل Context از بین میرن.

برای همین، پروژه به یه Storage دائمی نیاز داره که اطلاعات مهمش اونجا ذخیره بشه که خب این میتونه یه فایل داخل ریپو باشه، با مثلا یه GitHub Issue یا حالا هر جایی داخل Environment که بین Sessionها باقی بمونه.

و همونجا میشه Spec .

داخل Spec معمولا هدف پروژه، محدودیت‌ها، تصمیم‌هایی که گرفته شدن، وضعیت فعلی کار و لیست Ticketها نوشته میشه.

در نتیجه هر Session جدید فقط با خوندن Spec می‌فهمه پروژه الان تو چه وضعیه و لازم نیست کل تاریخچه چت یا Contextهای قبلی رو بخونه.

یه Spec هم ثابت نیست.

هرچی پروژه جلوتر میره، تغییر می‌کنه و آپدیت میشه.

ممکنه اول فقط هدف پروژه داخلش باشه، بعد کم‌کم تصمیم‌های جدید، Ticketهای انجام‌شده یا تغییرات طراحی هم بهش اضافه بشن.

--- Spec شکل‌های مختلفی داره.

بعضی تیم‌ها از PRD استفاده می‌کنن که بیشتر روی نیازهای کاربر، قابلیت‌ها و معیارهای پذیرش ( Acceptance Criteria ) تمرکز داره.

بعضی‌ها Design Doc یا RFC می‌نویسن که بیشتر درباره طراحی فنی، دلیل انتخاب یه راه‌حل و بررسی گزینه‌های دیگه حرف می‌زنه.

برای پروژه‌های کوچیک‌تر هم شاید فقط یه فایل plan.md با یه چک‌لیست از Ticketها کافی باشه.