مقدمه
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 خروجی کامل غیرفشرده را برای اشکالزدایی دریافت کند.
آمار استفاده زنده
نسخه فعلی –:
| معیار | مقدار |
|---|---|
| Tokens saved (measured) | – |
| Projected savings (% traffic covered) | – (–%) |
| Prevented failures (est. tokens avoided) | – (~– tok est.) |
| Output compression ratio (measured) | –% |
| پوشش اندازهگیری | – / – (–%) |
| تأخیر hook | – ms (p50) |
| کاربران | – |
| crates.io downloads | – |
crates.io downloads count CI, docs.rs and mirror traffic — they are not a measure of unique users.
Headline change (June 2026): we now report measured savings — verified byte-for-byte from each command output before and after compression. Our earlier headline summed per-event heuristic estimates (about 34.4M tokens at a ~46% ratio) that over-counted unmeasured savings by roughly 300x. The measured number is much smaller, but every token behind it is backed by a real measurement, and the Projected savings row extrapolates it across observed traffic. We made this change so the figures here are honest and reproducible.
صرفهجویی بر اساس نسخه
این اعداد بهطور خودکار از تلهمتری ناشناس بهروزرسانی میشوند.
پیوندها
- GitHub: https://github.com/peri-a-i/precc-cc
- وبسایت: https://peria.ai
- مستندات: https://precc.cc