はじめに
PRECCとは?
PRECC (Claude Codeの予測的エラー修正) は、公式のPreToolUseフックメカニズムを介してClaude Codeのbashコマンドを傍受するRustツールです。エラーを発生する前に修正し、トークンを節約してリトライループを排除します。
コミュニティユーザーは無料。
問題
Claude Codeは、防げるはずのミスに大量のトークンを浪費します:
- ディレクトリの間違い –
Cargo.tomlのない親ディレクトリでcargo buildを実行し、エラーを読んでからリトライする。 - リトライループ – 失敗したコマンドが冗長な出力を生成し、Claudeがそれを読み、推論し、再試行します。各サイクルで数百トークンを消費します。
- 冗長な出力 –
findやls -Rのようなコマンドは数千行を出力し、Claudeが処理しなければなりません。
4つの柱
コンテキスト修正 (cd-prepend)
cargo build や npm test などのコマンドが間違ったディレクトリで実行された場合を検出し、実行前に cd /正しい/パス && を追加します。
GDBデバッグ
セグフォルトやクラッシュのより深いデバッグのためにGDBをアタッチする機会を検出し、生のコアダンプの代わりに構造化されたデバッグ情報を提供します。
セッションマイニング
Claude Codeのセッションログから失敗-修正のペアを採掘します。同じミスが再発したとき、PRECCはすでに修正を知っており、自動的に適用します。
自動化スキル
コマンドパターンにマッチして書き換える、組み込みおよびマイニングされたスキルのライブラリ。スキルはTOMLファイルまたはSQLite行として定義され、検査・編集・共有が容易です。
仕組み(30秒バージョン)
- Claude Codeがbashコマンドを実行しようとします。
- PreToolUseフックがコマンドをJSONとしてstdin経由で
precc-hookに送信します。 precc-hookはコマンドをパイプライン(スキル、ディレクトリ修正、圧縮)で3ミリ秒以内に処理します。- 修正されたコマンドがJSONとしてstdout経由で返されます。
- Claude Codeは元のコマンドの代わりに修正されたコマンドを実行します。
些末なエラーは集約されます。書き換え理由はフックの応答に含まれるため、各修正は監査可能であり、暗黙的ではありません。
安全境界
PRECCは、意味的等価性が証明可能に保持されるか、ユーザーが検証可能な場合にのみ書き換えを行います。破壊的コマンド(rm、git push --force、git reset --hard)はスキルが一致しても決して書き換えられません。すべての変換は有界でなければなりません——書き換え後のコマンドは元のコマンドのコアトークンを含んでいる必要があります。無界の書き換えは自動的に元に戻されます。適用されたすべての書き換えは記録・表示され、監査・無効化・取り消しが可能です。
適応的圧縮
コマンドが圧縮後に失敗した場合、PRECCは次のリトライで圧縮を自動的にスキップし、Claudeがデバッグ用の完全な非圧縮出力を取得できるようにします。
リアルタイム利用統計
現在のバージョン –:
| 指標 | 値 |
|---|---|
| フック呼び出し回数 | – |
| 節約トークン | – |
| 節約率 | –% |
| RTK書き換え | – |
| CD修正 | – |
| フック遅延 | – ms (p50) |
| ユニークユーザー | – |
実測節約(実データ)
リリースごとの節約
これらの数値は匿名化されたテレメトリから自動的に更新されます。
リンク
- GitHub: https://github.com/peria-ai/precc-cc
- ウェブサイト: https://peria.ai
- ドキュメント: https://precc.cc