Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

简介

什么是PRECC?

PRECC (Claude Code 预测性错误纠正) 是一个Rust工具,通过官方的PreToolUse钩子机制拦截Claude Code的bash命令。它在错误发生之前修复它们,节省token并消除重试循环。

对社区用户免费。

问题

Claude Code在可预防的错误上浪费大量token:

  • 目录错误 – 在没有 Cargo.toml 的父目录中运行 cargo build,然后在读取错误后重试。
  • 重试循环 – 失败的命令产生冗长的输出,Claude读取、推理并重试。每个循环消耗数百个token。
  • 冗长输出findls -R 等命令输出数千行,Claude必须处理这些内容。

四大支柱

上下文修复 (cd-prepend)

检测到 cargo buildnpm test 等命令在错误的目录中运行时,在执行前添加 cd /正确/路径 &&

GDB调试

检测附加GDB进行更深入调试的机会,提供结构化的调试信息而不是原始的核心转储。

会话挖掘

挖掘Claude Code会话日志中的失败-修复对。当同样的错误再次发生时,PRECC已经知道修复方法并自动应用。

自动化技能

内置和挖掘技能库,匹配命令模式并重写它们。技能定义为TOML文件或SQLite行,便于检查、编辑和共享。

工作原理(30秒版本)

  1. Claude Code即将运行一个bash命令。
  2. PreToolUse钩子将命令作为JSON通过stdin发送给 precc-hook
  3. precc-hook 在3毫秒内通过管道(技能、目录修正、压缩)处理命令。
  4. 修正后的命令作为JSON通过stdout返回。
  5. Claude Code执行修正后的命令。

琐碎错误被合并;重写原因随钩子响应一起返回,因此每次修正都可审计,而非悄然发生。

安全边界

PRECC仅在语义等价可证明保留或用户可验证时才进行重写。破坏性命令(rmgit push --forcegit reset --hard)即使匹配技能也绝不重写。每次变换必须是有界的——重写后的命令仍须包含原始命令的核心token。无界重写会被自动还原。每次应用的重写都会被记录并显示,以便您审计、禁用或撤销。

自适应压缩

如果命令在压缩后失败,PRECC会自动在重试时跳过压缩,以便Claude获得完整的未压缩输出来调试。

实时使用统计

当前版本 :

指标
钩子调用次数
节省的token
节省比率%
RTK重写
CD修正
钩子延迟 ms (p50)
独立用户

实测节省(实际数据)

各版本节省情况

这些数字会从匿名遥测数据自动更新。

链接