مقدمه
PRECC چیست؟
PRECC (تصحیح خطای پیشبینانه برای Claude Code) یک ابزار Rust است که دستورات bash مربوط به Claude Code را از طریق سازوکار رسمی PreToolUse hook رهگیری میکند. خطاها را پیش از وقوع اصلاح میکند، توکنها را ذخیره و حلقههای تلاش مجدد را حذف میکند.
رایگان برای کاربران جامعه.
مسئله
Claude Code توکنهای قابل توجهی را روی اشتباهات قابل پیشگیری هدر میدهد:
- خطاهای دایرکتوری اشتباه – اجرای
cargo buildدر یک دایرکتوری والد بدونCargo.toml، سپس تلاش مجدد پس از خواندن خطا. - حلقههای تلاش مجدد – یک دستور ناموفق خروجی پرحجمی تولید میکند، Claude آن را میخواند، روی آن استدلال میکند و دوباره تلاش میکند. هر چرخه صدها توکن مصرف میکند.
- خروجی پرحجم – دستوراتی مانند
findیاls -Rهزاران خط را چاپ میکنند که Claude باید پردازش کند.
چهار ستون
اصلاح زمینه (cd-prepend)
تشخیص میدهد زمانی که دستوراتی مانند cargo build یا npm test در پوشه اشتباه اجرا میشوند و cd /مسیر/درست && را قبل از اجرا اضافه میکند.
اشکالزدایی GDB
فرصتهای اتصال GDB را برای اشکالزدایی عمیقتر segfault و کرشها تشخیص میدهد و به جای core dump خام، اطلاعات اشکالزدایی ساختاریافته ارائه میدهد.
استخراج جلسه
گزارشهای جلسه Claude Code را برای جفتهای خطا-اصلاح استخراج میکند. وقتی همان اشتباه تکرار میشود، PRECC از قبل اصلاح را میداند و بهطور خودکار اعمال میکند.
مهارتهای خودکارسازی
کتابخانهای از مهارتهای توکار و استخراجشده که الگوهای دستوری را مطابقت داده و بازنویسی میکنند. مهارتها به صورت فایلهای TOML یا ردیفهای SQLite تعریف میشوند که بازرسی، ویرایش و اشتراکگذاری آنها را آسان میکند.
چگونه کار میکند (نسخه ۳۰ ثانیهای)
- Claude Code در آستانه اجرای یک دستور bash است.
- PreToolUse hook دستور را به صورت JSON از طریق stdin به
precc-hookارسال میکند. precc-hookدستور را در کمتر از ۳ میلیثانیه از طریق پایپلاین (مهارتها، تصحیح دایرکتوری، فشردهسازی) اجرا میکند.- دستور تصحیحشده به صورت JSON از طریق stdout بازگردانده میشود.
- Claude Code به جای دستور اصلی، دستور تصحیحشده را اجرا میکند.
خطاهای جزئی ادغام میشوند؛ دلیل بازنویسی همراه پاسخ hook ارسال میشود تا هر اصلاح قابل بررسی باشد، نه خاموش.
مرز ایمنی
PRECC فقط زمانی بازنویسی میکند که تعادل معنایی بهطور قابل اثبات حفظ شود یا توسط کاربر قابل تأیید باشد. دستورات مخرب (rm، git push --force، git reset --hard) هرگز بازنویسی نمیشوند، حتی اگر مهارتی مطابقت داشته باشد. هر تغییر باید محدود باشد — دستور بازنویسیشده باید همچنان شامل توکنهای اصلی دستور اولیه باشد. بازنویسیهای نامحدود بهطور خودکار بازگردانده میشوند. هر بازنویسی اعمالشده ثبت و نمایش داده میشود تا بتوانید آن را بررسی، غیرفعال یا لغو کنید.
فشردهسازی تطبیقی
اگر یک دستور پس از فشردهسازی شکست بخورد، PRECC به طور خودکار فشردهسازی را در تلاش بعدی رد میکند تا Claude خروجی کامل غیرفشرده را برای اشکالزدایی دریافت کند.
آمار استفاده زنده
نسخه فعلی –:
| معیار | مقدار |
|---|---|
| فراخوانیهای hook | – |
| توکنهای ذخیرهشده | – |
| نسبت صرفهجویی | –% |
| بازنویسیهای RTK | – |
| تصحیحات CD | – |
| تأخیر hook | – ms (p50) |
| کاربران | – |
Measured Savings (Ground Truth)
صرفهجویی بر اساس نسخه
این اعداد بهطور خودکار از تلهمتری ناشناس بهروزرسانی میشوند.
پیوندها
- GitHub: https://github.com/peria-ai/precc-cc
- وبسایت: https://peria.ai
- مستندات: https://precc.cc