تصور کنید صدها فایل متنی با نامهای تصادفی در پوشه تنظیمات شما انباشته شده باشد و حیاتیترین باگهای پروژه در یکی از آنها دفن شده باشد. برای بسیاری از توسعهدهندگانی که از Claude Code استفاده میکنند، پوشه ~/.claude/plans دقیقاً به همین قبرستان دیجیتال تبدیل شده است؛ جایی که شکافهای معماری حیاتی و باگهای به تعویق افتاده پنهان میشوند.
Pentimento، ابزاری مبتنی بر پایتون و بدون وابستگی (zero-dependency) که در ۱۶ سپتامبر ۲۰۲۶ منتشر شد، این هرجومرج را با تبدیل فایلهای مدیریتنشده به یک ساختار سازمانیافته و یک پایگاه داده قابل جستوجو حل میکند. مدیریت گردشهای کاری عاملمحور (Agentic) — شبیه ردیابی ردپای کاغذها در یک طوفان است — اغلب دشوار است. همانطور که در تحلیل قبلی ما دربارهی ادغام مهارتهای Salesforce در مدلهای Anthropic برای بهینهسازی عملیات تجاری اشاره کردیم، تجربه توسعهدهندگان در برنامهریزی محلی برای عاملها هنوز تکهتکه و پراکنده است. این چالش با این واقعیت که مستندات راهنمای عاملهای هوش مصنوعی اغلب صرفاً یک «آرزو» هستند و در عمل به ساختارهای سختگیرانه تبدیل نمیشوند، تشدید میشود. اکثر کاربران با پدیدهای به نام «انحراف برنامه» (Plan Drift) دستوپنجه نرم میکنند؛ وضعیتی که در آن یک تسک والد، دهها زیربرنامه ایجاد میکند و مهمترین یافتهها در فایلی با نامی عجیب و تصادفی مثل a-couple-of-things-splendid-tarjan.md گم میشوند.
زمینه و چالش انحراف برنامه
طبق گزارشهای منتشر شده، هر تسک غیرساده در Claude Code یک فایل برنامه Markdown ایجاد میکند. به مرور زمان، این فایلها به تعداد صدها عدد میرسند و طیف گستردهای از موارد، از اصلاح باگهای تکموردی گرفته تا مهاجرتهای زیرساختی چندماهه را شامل میشوند. نامهایی مانند 1-at-16-51-pst-wobbly-grove.md و a-recent-exploration-helped-kind-storm.md نمونههایی از این نامگذاریهای تصادفی هستند.
وقتی تعداد فایلها در حد چند ده عدد است، توسعهدهنده میتواند وضعیت کلی را در ذهن خود نگه دارد. اما در مقیاس صدها فایل، ردیابی اینکه آیا کاری به پایان رسیده، آیا یک برنامه هنوز مرتبط است یا برنامهای جدید جایگزین آن شده، غیرممکن میشود. این وضعیت منجر به ایجاد مشکل «یافتههای به تعویق افتاده» (Deferred Findings) میشود. مدل Claude مکرراً در پایان یک اجرای کاری، باگهای ظریف یا شکافهای معماری را کشف میکند. این یادداشتها اغلب در داخل فایلهای تکمیلشده دفن میشوند و وقتی کاربر به سراغ زیربرنامه ۶ یا ۷ میرود، بازیابی این یافتهها تقریباً غیرممکن میشود.
به نقل از گزارش dev.to، ابزار Pentimento خلأیی را پر میکند که ابزارهای موجود نادیده گرفته بودند. در حالی که ابزار planning-with-files روی بازیابی جلسات فعال تمرکز دارد و claude-log-viewer نسخههای JSONL را رندر میکند، هیچکدام یک مجموعه تاریخی (Corpus) از فایلهای برنامه را سازماندهی نمیکردند. ابزارهای دیگری مانند dela لیست کارهای Markdown را از طریق CLI نمایش میدهند، اما فاقد مفاهیم چرخه حیات برنامه، مانند وضعیت استخراجشده از چکباکسها یا ردیابی سلسلهمراتب (Lineage) هستند. در همین راستا، برای بهینهسازی تعامل با این مدلها، پلاگین Chamnan با ایجاد یک لایهی پیشپردازش محلی توانسته است هزینهی توکنهای Claude Code را کاهش دهد تا مدیریت حجم بالای دادهها بهینهتر شود.
سازوکار فنی
این ابزار با اسکن پوشه مربوطه، یک بلوک YAML frontmatter به ابتدای هر فایل اضافه میکند تا وضعیت، هدف و مکان پروژه را ردیابی کند. یک بلوک نمونه شامل فیلدهایی برای status: partial (وضعیت: جزئی)، intent: active (هدف: فعال)، project: platform (پروژه: پلتفرم) و تاریخ ایجاد (created) است.
- استخراج متادیتا: ابزار وضعیت برنامه را از چکباکسهای موجود در بخش
## Progressاستخراج کرده و روابط والد/فرزندی بین برنامههای مختلف را شناسایی میکند. - نوشتار اتمیک: برای تضمین امنیت فایلها، تغییرات بهصورت اتمیک (Atomic Writes) و در جای خود (In-place) اعمال میشود. همچنین پرچم
--dry-runبرای بازبینی تغییرات پیش از اعمال نهایی تعبیه شده است. لازم به ذکر است که این ابزار بکآپ خودکار نمیسازد و به کاربران توصیه میشود آن را در حالتی اجرا کنند که وضعیت git پروژه پاک و بدون تغییرات ذخیره نشده باشد. - غنیسازی نسخهها: Pentimento لاگهای مستندنشده و ناپایدار
~/.claude/projects/*.jsonl(که لاگهای ترنسکریپت Claude Code هستند) را بررسی میکند تا جلسات را به برنامههای خاص متصل کند. در صورت نبود این لاگها، ابزار به زمان آخرین تغییر فایل (mtimes) متکی میشود. - اجرای بدون وابستگی: این ابزار تنها با استفاده از کتابخانههای استاندارد پایتون نوشته شده است. Pentimento بهطور کامل تحت تستهای واحد (Unit-tested) قرار گرفته و کاملاً بهصورت محلی اجرا میشود.

رابط کاربری و کاربرد عملی
- نمای لیست (List View): کاربران میتوانند با دستور
pentimento list --intent activeجدولی از تسکهای جاری، شامل عنوان برنامه و زمان آخرین بهروزرسانی (مثلاً "2w" برای دو هفته پیش یا "5d" برای پنج روز پیش) را مشاهده کنند. - نمای درختی (Tree View): دستور
pentimento tree [project]زنجیره اجرا را بصری میکند. برای مثال، میتوان دید که یک برنامه والد با عنوان «راهاندازی API جدید احراز هویت» چگونه به زیربرنامههایی مانند «راهاندازی احراز هویت، تلاش دوم پس از باگ توکن-رفرش» منشعب شده است.
این تغییر، جایگاه توسعهدهنده را از «جستوجوی دستی در پوشهها» به «ممیزی کامل زنجیره اجرا» تغییر میدهد. با تبدیل پوشهای از متنهای ساده به یک سیستم مدیریت پروژه سبک، در حالی که فایلها همچنان برای انسان قابل خواندن هستند، دیگر یافتههای به تعویق افتاده گم نمیشوند. برای یک متخصص، این یعنی دیگر باگهای ظریفی که Claude در پایان اجرا کشف کرده اما فوراً اصلاح نکرده، فراموش نمیشوند. این رویکرد ساختاریافته در تضاد با استفاده از دستورات ایستا است که میتواند عملکرد مدلها را کاهش دهد و نشان میدهد که مدیریت پویا و متنیِ تسکها برای خروجیهای دقیقتر ضروری است. اکنون میتوانید دقیقاً ردیابی کنید که یک زیربرنامه خاص به کجا ختم شده و آیا چکباکسهای آن هرگز پاک شدهاند یا خیر.
گام بعدی شما
- اگر پروژههای عاملمحور طولانیمدت مدیریت میکنید، همین امروز پوشه
~/.claude/plansخود را ممیزی کنید. - بررسی کنید آیا سلسلهمراتب جلسات فعلی شما قابل ردیابی است یا زمینه پروژه شما به مجموعهای از فایلهای Markdown مدیریتنشده تبدیل شده است.
- از پرچم
--dry-runبرای تحلیل ساختار فعلی برنامههایتان پیش از تغییر فایلها استفاده کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو