بدهی نیّت؛ تنها بدهیای که ایجنتها برات صاف نمیکنن
خلاصهٔ کاملتر
نویسنده با تکیه بر مدل سهگانهٔ بدهی از Margaret-Anne Storey میگه سلامت یه نرمافزار رو میشه با سه نوع بدهی مستقل سنجید. بدهی فنی تو خود کد زندگی میکنه؛ همون انتخابهای پیادهسازی که بعداً تغییر دادن سیستم رو سخت میکنن. بدهی شناختی تو آدمهاست؛ فاصلهٔ بین حجم کدی که وجود داره و مقداری که واقعاً یه نفر ازش سر درمیاره. کد میتونه بینقص باشه ولی بازم کسی نفهمتش.
اما اون چیزی که نویسنده روش تأکید داره بدهی نیّت (intent debt) هست؛ یعنی نبودِ اون دلیل و هدف و محدودیتی که توضیح میده چرا سیستم اون شکلیه که هست. کلیدواژه «externalized» هست: این منطق باید یهجایی نوشته بشه که یه همتیمی، خودِ آیندهت، یا یه ایجنت بتونه بخونتش، نه اینکه تو سرت بمونه.
به گفتهٔ نویسنده فرق اصلی اینجاست که هوش مصنوعی بدهی فنی رو ارزونتر کرده؛ یه ماژول درهم رو میدی ایجنت ریفکتورش میکنه. بدهی شناختی هم برمیگرده، چون کد هنوز هست و مدل میتونه برات توضیحش بده. ولی نیّت فرق داره: ایجنت نمیتونه نیّت تولید کنه، چون نیّت تنها ورودیایه که باید از خودت بیاد. مدل میتونه یه دلیل قابلقبول حدس بزنه، ولی نمیدونه اون debounce سیصدمیلیثانیهای یه تصمیم عمدی UX بوده یا عددی که یکی یه بار تایپ کرده و دیگه بهش دست نزده.
نویسنده میگه ایجنتها این هزینه رو سریعتر انباشته میکنن. قبلاً نیّت نانوشته تو ذهن آدمها و گفتوگوهای راهرویی منتقل میشد و اون مهندس چهارساله عملاً مستندِ نیّت تیم بود. ولی هر ایجنت سشن رو سرد شروع میکنه و هیچکدوم از این دانش ضمنی رو نداره؛ پس هر چیزی که externalize نکردی، هر سشن و ضرب در هر ایجنت بهت برمیگرده. بخش زیادی از همون «مالیات ارکستراسیون» که خستهکنندهست، در واقع دوبارهتأمینکردن نیّتیه که هیچوقت ننوشتی.
نویسنده تأکید میکنه ناتوانی در ثبتِ همهٔ نیّت، مجوز ثبتنکردنِ هیچکدوم نیست. لازم نیست همهچی رو بنویسی، ولی «چرا»ی پشت تصمیمهایی که اشتباهبودنشون گرون تموم میشه رو باید ثبت کنی، چون کسی بعداً اونها رو بازسازی نمیکنه. نشونهٔ بدهی نیّت بالا هم یهجور درموندگیه: ایجنت یه guard clause رو پاک میکنه و هیچکس نمیدونه اون شرط لازم بوده یا اضافی، چون هیچ کامیت یا داکی دلیلش رو ثبت نکرده.
برای صافکردن این بدهی، نویسنده پیشنهاد میده نیّت رو به یه آرتیفکتِ درجهیک تبدیل کنی: اسپک رو برای نیّت بنویس نه پیادهسازی، فایل AGENTS.md رو بهجای کانفیگ به دفترِ نیّت تیم تبدیل کن، تصمیمها رو همون لحظه با لاگهای سبک (ADR) ثبت کن، و حلقهٔ یادگیری ایجنتها رو طوری بچین که درسها و «X رو امتحان کردیم بهخاطر Y جواب نداد» دوباره نوشته بشن.
نکات کلیدی:
- مدل سهگانهٔ بدهی: فنی (تو کد)، شناختی (تو ذهن آدمها)، نیّت (تو آرتیفکتها) و هر سه مستقل از هماند
- ایجنتها کد و فهم رو برمیگردونن، ولی «چرا»ی پشت تصمیمها رو فقط میتونن جعل کنن
- هر ایجنت سشن رو سرد شروع میکنه، پس نیّت نانوشته هر بار ضرب در تعداد ایجنتها هزینه میده
- راهحل: نیّت رو externalize کن؛ اسپک هدفمحور، AGENTS.md بهعنوان دفتر نیّت، ADR و حلقهٔ یادگیری




