پرش به محتوای اصلی
پرش به محتوای مقاله

Grepathy منطقِ عامل‌های کدنویس را برای جلوگیری از «پوسیدگی کد» مستند می‌کند

·۲۴ تیر ۱۴۰۵۵ دقیقه مطالعه
گیت‌هاب - evansjp/grepathy: عامل هوشمند شما دلیل را در مخزن ثبت می‌کند تا عامل‌های دیگر بدون پرسیدن پیدا کنند.
گیت‌هاب - evansjp/grepathy: عامل هوشمند شما دلیل را در مخزن ثبت می‌کند تا عامل‌های دیگر بدون پرسیدن پیدا کنند.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

نخستین مکانیزم خودکار برای تبدیل تاریخچه‌ی эфمرال (گذرا) چت‌های عامل‌های کدنویس به مستندات نسخه-کنترل‌شده در مخزن کد، به‌گونه‌ای که استدلال مدل به بخشی از چرخه حیات نرم‌افزار تبدیل شود.

بزرگ‌ترین کابوس یک برنامه‌نویس، مواجهه با یک Pull Request (PR) پر از منطق‌های پیچیده‌ای است که نه خودِ او تایید کرده و نه می‌تواند دلیل وجودشان را توضیح دهد. برای حل این بحران، Grepathy تاریخچه‌های زودگذر چت را به مستنداتی دائمی تبدیل می‌کند که می‌توان آن‌ها را در مخزن کد ثبت (commit) کرد. به نقل از انتشار این ابزار در ۱۵ ژوئیه ۲۰۲۶ در گیت‌هاب، Grepathy تضمین می‌کند که هرگاه یک عامل (Agent) تصمیمی در طراحی بگیرد، دلیل آن «چرا» به‌جای ذخیره در یک لاگ موقت، در خودِ مخزن کد باقی بماند.

عامل‌های کدنویسی مانند Claude Code اغلب هنگام ساخت ویژگی‌های جدید، تصمیمات کوچک و خود‌مختاری می‌گیرند. این استدلال‌ها در تاریخچه‌ی چت‌هایی زندگی می‌کنند که Claude Code به‌صورت پیش‌فرض پس از ۳۰ روز حذف می‌کند. این اتفاق یک شکاف دانشی ایجاد می‌کند؛ جایی که بازبین‌های انسانی تغییری را می‌بینند — مثلاً پیش‌ساخت کاربران مهمان در Clerk — اما هیچ سندی ندارند که چرا عامل این مسیر را به مسیرهای دیگر ترجیح داده است. این چالش در واقع تکامل‌یافته‌ی نگرانیاتی است که در پروژه RAC-Core برای تبدیل تصمیمات فنی به کد مطرح شد تا از نادیده گرفته شدن استانداردهای تیمی توسط AI جلوگیری شود.

زمینه و بستر خودمختاری عامل‌ها

در یک مثال واقعی از یک پروژه قراردادی، یک عامل به‌تنهایی تصمیم گرفت کاربران مهمان را در Clerk پیش‌ساخت کند. این اقدام بخشی از هیچ برنامه یا پرامپت اولیه نبود. وقتی مدیر فنی (CTO) این تغییر را در PR دید و دلیلش را پرسید، برنامه‌نویس پاسخی نداشت چون خودش تصمیم‌گیرنده نبود و این تصمیم در جریان یک چت گذرا گرفته شده بود.

با Grepathy، این تصمیم پیشینی (a-priori) به‌صورت یک ورودی ساختاریافته در مخزن ذخیره می‌شود. این سند وضعیت را «به‌ابتکار عامل» (agent-initiated) نام‌گذاری می‌کند، فایل‌های اثرپذیر (مانند lib/clerk/* و db/schema/guests.ts) را لیست می‌کند و توضیح می‌دهد که عامل برای ساده‌سازی بررسی‌های احراز هویت در مراحل بعدی، این رویکرد را استنباط کرده است. همچنین ریسک انحراف کاربران مهمان از مسیر عادی ثبت‌نام را علامت‌گذاری می‌کند و به‌طور مشخص از بازبین می‌خواهد تایید کند که آیا کاربران مهمان باید به عنوان کاربران عادی مدل‌سازی شوند یا خیر.

Grepathy به‌صورت یک ابزار CLI عمل می‌کند که از طریق Git Hooks اجرا می‌شود. این ابزار تاریخچه‌های محلی جلسه را پس از اتمام کار می‌خواند، تصمیمات حیاتی را استخراج کرده و آن‌ها را در فایل‌های markdown در مسیر .ai/why/<branch>.md می‌نویسد. این فرآیند در پس‌زمینه رخ می‌دهد؛ ابزار از عامل نمی‌خواهد که وسط کار تصمیمات را ثبت کند، زیرا توسعه‌دهنده متوجه شده بود که عامل‌ها معمولاً در ثبت مداوم و سازگار یادداشت‌ها شکست می‌خورند.

جزئیات فنی و سازوکارها

  • تزریق خودکار: یک هوک PreToolUse درست قبل از هر ویرایش اجرا می‌شود. اگر فایل ویرایش‌شده با یک الگوی glob در بخش «Touches:» مطابقت داشته باشد، ورودی مربوطه به زمینه (context) عامل تزریق می‌شود.
  • بسته‌ی «چرا» (Why-Pack): مجموعه‌ای از خلاصه‌های ثبت‌شده است. عامل‌ها از طریق دو تریگر با این استدلال‌ها آشنا می‌شوند: یک اشاره‌گر در CLAUDE.md که در هر جلسه به‌طور خودکار بارگذاری می‌شود و هوک مذکور.
  • حفاظ‌های حریم خصوصی: یک اسکنر داخلی، اسرار (secrets)، جزئیات مالی و گفتگوهای شخصی رفت و برگشتی را حذف می‌کند. این ابزار از دو بررسی قطعی — یک اسکنر اسرار/مالی و قانونی که هر ورودی حتماً باید به کد واقعی اشاره کند — پیش از اینکه کاربر فایل را برای Push بازبینی کند، استفاده می‌کند.
  • وابستگی صفر در زمان اجرا: ابزار با TypeScript خالص نوشته شده و تنها به Node >= 20 و Git نیاز دارد. این یک CLI است که هیچ سرور ابری، هیچ حساب کاربری و هیچ باتی ندارد.
  • تست‌های محصور (Hermetic Testing): مجموعه تست‌ها بدون کلید API یا دسترسی به شبکه و با استفاده از مدل‌های زبانی شبیه‌سازی‌شده (mocked LLMs) و مخازن موقت git اجرا می‌شوند. این تست‌ها مواردی چون حذف موارد تکراری معنایی (semantic dedupe)، قفل‌های هم‌زمانی (concurrency locking) و حفظ ویرایش‌های انسانی را پوشش می‌دهند.

گردش کار عملیاتی

Grepathy مسیر Push کد را مسدود نمی‌کند، به ناحیه staging دست نمی‌زند و خودش کد Push نمی‌کند. این ابزار با چندین عامل و worktreeهای مختلف به خوبی سازگار است. جریان تعامل ساده است: برنامه‌نویس طبق معمول با Claude کار می‌کند و هنگام اجرای git push ابزار Grepathy فایل «چرا» را نوشته و برای بازبینی نمایش می‌دهد. این رویکرد تکمیلی بر قابلیت‌هایی است که پروژه y در پیوند عامل‌های هوش مصنوعی با رابط‌های کاربری پویا به کار گرفته بود تا انعطاف‌پذیری سیستم را افزایش دهد.

کاربران می‌توانند سیستم را با دستورات خاص مدیریت کنند:

  • grepathy init: نصب هوک‌ها و پوشه‌ها؛ همچنین پیشنهاد بازخوانی (backfill) جلسات قدیمی را می‌دهد.
  • grepathy status / doctor: انجام بررسی‌های سلامت روی مواردی که استخراج شده‌اند یا قدیمی (stale) شده‌اند.
  • grepathy context <path>: نمایش ورودی‌های قابل اعمال برای یک فایل خاص.
  • grepathy sync: استخراج و ثبت (commit) فوری بدون نیاز به Push.
  • grepathy distill / repair / off / on / uninstall: دستورات مربوط به نگهداری عمومی و پیکربندی.

در یک ارزیابی کور و پیش‌ثبت‌شده که در REPORT.md پروژه منتشر شد، توسعه‌دهنده دریافت که عامل‌هایی که به فایل‌های «چرا» دسترسی داشتند، جایگزین‌های ردشده (مانند تصمیم برای دور زدن یک CDN) را به‌درستی تشخیص دادند. در مقابل، عامل‌های بدون این زمینه، توهم (Hallucination) داشتند و دلایلی باورپذیر اما نادرست درباره تاریخچه کد می‌ساختند.

ارزیابی ارزش

این ارزیابی نشان داد ابزار در ذخیره استدلال‌ها پیش از حذف ۳۰ روزه توسط Claude Code بسیار موفق است؛ شکافی که پیش‌تر باعث از بین رفتن تاریخچه دو پروژه شده بود. Grepathy دانشی را ثبت می‌کند که در کد هیچ ردی از آن نیست، مانند رد صریح استفاده از یک CDN.

با این حال، تست‌ها نشان داد که این ابزار عامل‌ها را به‌معنای کلی «باهوش‌تر» نمی‌کند و جلوی بازنویسی (Refactoring) کدهای مهم توسط عامل را نمی‌گیرد. اگر پاسخی از خودِ کد قابل خواندن باشد، عامل‌ها بدون کمک آن را می‌یابند. Grepathy دقیقاً برای اطلاعاتی طراحی شده که هیچ‌کجا نوشته نشده‌اند.

این تغییر، بخشی از بدهی فنی هوش مصنوعی را برطرف می‌کند. با انتقال استدلال از رابط چت به سیستم کنترل نسخه، منطق تبدیل به دارایی‌ای می‌شود که با تغییر برنامه‌نویس یا انقضای تاریخچه چت، از بین نمی‌رود. این ابزار فرض «جعبه سیاه» بودن کدهای تولید شده توسط AI را می‌شکند و استدلال عامل را به یک اثر قابل بازبینی تبدیل می‌کند. این مدیریت متمرکز از منطق، مشابه همان هدفی است که ابزار klaussy-agents برای یکپارچه‌سازی مهارت‌های کدنویسی دنبال می‌کرد تا هماهنگی میان عامل‌های مختلف را تضمین کند.

برای متخصصان، تگ «به‌ابتکار عامل» به یک لاگ حسابرسی قابل جست‌وجو تبدیل می‌شود. شما می‌توانید با اجرای grep -rn "agent-initiated" .ai/why/ تمام تصمیماتی را که عامل بدون دخالت انسان گرفته ببیند و بازبینی PR را از یک بازی حدس‌زدن به یک فرآیند تایید تبدیل کنید.

مقیاس‌پذیری این الگو برای تیم‌های بزرگ به نحوه مدیریت این فایل‌های markdown در طول زمان بستگی دارد. در حالی که فعلاً برای نوشتن به Claude Code نیاز است، بخش خواندن برای هر ابزاری باز است زیرا فایل‌ها markdown استاندارد هستند. گام بعدی پروژه، انتشار یک آداپتور Codex برای پشتیبانی از ابزارهایی فراتر از Claude Code خواهد بود.

گام بعدی شما

  • اگر از Claude Code یا عامل‌های مشابه برای پروژه‌های تیمی استفاده می‌کنید، Grepathy را نصب کنید تا منطق تصمیمات AI در Git ثبت شود.
  • برای شروع، دستور grepathy init را اجرا کرده و سعی کنید جلسات قدیمی را بازخوانی (backfill) کنید.
  • در بازبینی PRها، به‌جای پذیرش کورکورانه تغییرات، فایل‌های .ai/why/ را بررسی کنید تا ریسک‌های احتمالی استنباط‌شده توسط مدل را بسنجید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این ابزار با تکیه بر تجربه واقعی توسعه‌دهندگان در مواجهه با حذف تاریخچه چت‌ها، اعتماد به کدهای تولیدشده توسط AI را از طریق شفاف‌سازی استدلال‌ها افزایش می‌دهد. این یک گام مهم در جهت تبدیل کدهای AI از جعبه‌های سیاه به دارایی‌های مستند سازمانی است.

تأثیر برای ایران

برنامه‌نویسان ایرانی که در پروژه‌های Open Source یا تیمی از Claude Code استفاده می‌کنند، می‌توانند با این ابزار رایگان و Open Weights-like، از دست رفتن تاریخچه تصمیمات مدل در محیط‌های تحریمی و محدودیت‌های API جلوگیری کنند.

·نگاه ما
تحریریه دات‌هوش

Grepathy با جابه‌جایی «منطق» از لایه رابط کاربری (Chat) به لایه زیرساخت (Git)، در واقع مدل استدلالی عامل را از یک تجربه گذرا به یک سند فنی تبدیل می‌کند. این رویکرد نشان می‌دهد که راهکار مقابله با توهمات مدل در پروژه‌های بزرگ، لزوماً افزایش اندازه پنجره متنی نیست، بلکه ایجاد یک «حافظه خارجی» ساختاریافته در محیط توسعه است. در واقع، ما از عصر «پرامپت‌نویسی» به عصر «مدیریت ردپای استدلالی» AI می‌رویم.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.