はじめに
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
インストール
クイックインストール (Linux / macOS)
curl -fsSL https://peria.ai/install.sh | bash
これはお使いのプラットフォーム用の最新リリースバイナリをダウンロードし、SHA256チェックサムを検証して ~/.local/bin/ に配置します。
インストール後、PRECCを初期化します:
precc init
precc init はPreToolUseフックをClaude Codeに登録し、データディレクトリを作成し、スキルデータベースを初期化します。
インストールオプション
SHA256検証
デフォルトでは、インストーラーは公開されたSHA256サムに対してバイナリチェックサムを検証します。検証をスキップするには(非推奨):
curl -fsSL https://peria.ai/install.sh | bash -s -- --no-verify
カスタムインストールプレフィックス
カスタムの場所にインストール:
curl -fsSL https://peria.ai/install.sh | bash -s -- --prefix /opt/precc
コンパニオンツール (–extras)
PRECCにはオプションのコンパニオンツールが付属しています。--extras でインストールします:
curl -fsSL https://peria.ai/install.sh | bash -s -- --extras
これにより以下がインストールされます:
| ツール | 用途 |
|---|---|
| RTK | コマンド書き換えツールキット |
| lean-ctx | CLAUDE.mdおよびプロンプトファイルのコンテキスト圧縮 |
| nushell | 高度なパイプライン用の構造化シェル |
| cocoindex-code | より高速なコンテキスト解決のためのコードインデックス |
Windows (PowerShell)
irm https://peria.ai/install.ps1 | iex
次に初期化します:
precc init
手動インストール
- お使いのプラットフォーム用のリリースバイナリを GitHub Releases からダウンロードします。
- リリースの
.sha256ファイルに対してSHA256チェックサムを検証します。 - バイナリを
PATH上のディレクトリ(例:~/.local/bin/)に配置します。 precc initを実行します。
アップデート
precc update
特定のバージョンへ強制アップデート:
precc update --force --version 0.3.0
自動アップデートを有効にする:
precc update --auto
インストールの確認
$ precc --version
precc 0.3.0
$ precc savings
Session savings: 0 tokens (no commands intercepted yet)
precc が見つからない場合は、~/.local/bin が PATH に含まれていることを確認してください。
クイックスタート
5分でPRECCを起動しましょう。
ステップ1:インストール
curl -fsSL https://peria.ai/install.sh | bash
ステップ2:初期化
$ precc init
[precc] Hook registered with Claude Code
[precc] Created ~/.local/share/precc/
[precc] Initialized heuristics.db with 8 built-in skills
[precc] Ready.
ステップ3:フックがアクティブか確認
$ precc skills list
# Name Type Triggers
1 cargo-wrong-dir built-in cargo build/test/clippy outside Rust project
2 git-wrong-dir built-in git * outside a repo
3 go-wrong-dir built-in go build/test outside Go module
4 make-wrong-dir built-in make without Makefile in cwd
5 npm-wrong-dir built-in npm/npx/pnpm/yarn outside Node project
6 python-wrong-dir built-in python/pytest/pip outside Python project
7 jj-translate built-in git * in jj-colocated repo
8 asciinema-gif built-in asciinema rec
ステップ4:Claude Codeを通常通り使用
Claude Codeを開いて通常通り作業してください。PRECCはバックグラウンドで静かに動作します。Claudeが失敗するコマンドを発行すると、PRECCが実行前に修正します。
例:間違ったディレクトリでのCargo Build
プロジェクトが ~/projects/myapp/ にあり、Claudeが以下を実行するとします:
cargo build
~/projects/ から(1階層上で、そこに Cargo.toml はありません)。
PRECCなし: Claudeはエラー could not find Cargo.toml in /home/user/projects or any parent directory を受け取り、読んで推論し、cd myapp && cargo build で再試行します。コスト:約2,000トークンの無駄。
PRECCあり: フックが Cargo.toml の欠如を検出し、myapp/ で見つけ、コマンドを以下に書き換えます:
cd /home/user/projects/myapp && cargo build
Claudeはエラーを見ることがありません。トークンの無駄はゼロ。
ステップ5:節約を確認
セッション後、PRECCがどれだけのトークンを節約したか確認してください:
$ precc savings
Session Token Savings
=====================
Total estimated savings: 4,312 tokens
Breakdown:
Pillar 1 (cd prepends): 2,104 tokens (3 corrections)
Pillar 4 (skill activations): 980 tokens (2 activations)
RTK rewrites: 1,228 tokens (5 rewrites)
次のステップ
ライセンス
PRECCは2つのティアを提供します:Community(無料)とPro。
Communityティア(無料)
Communityティアには以下が含まれます:
- すべての組み込みスキル(ディレクトリ修正、jj変換など)
- Pillar 1とPillar 4を完全サポートするフックパイプライン
- 基本的な
precc savingsサマリー precc ingestによるセッションマイニング- 無制限のローカル使用
Proティア
Proは追加機能をアンロックします:
- 詳細な節約内訳 –
precc savings --allコマンドごとの分析付き - GIF録画 –
precc gifアニメーションターミナルGIFの作成用 - IPジオフェンスコンプライアンス – 規制環境向け
- メールレポート –
precc mail reportアナリティクスを送信 - GitHub Actions分析 –
precc gha失敗したワークフローのデバッグ用 - コンテキスト圧縮 –
precc compressCLAUDE.mdの最適化用 - 優先サポート
ライセンスの有効化
$ precc license activate XXXX-XXXX-XXXX-XXXX --email you@example.com
[precc] License activated for you@example.com
[precc] Plan: Pro
[precc] Expires: 2027-04-03
ライセンスステータスの確認
$ precc license status
License: Pro
Email: you@example.com
Expires: 2027-04-03
Status: Active
GitHub Sponsorsアクティベーション
GitHub SponsorsでPRECCをスポンサーしている場合、GitHubメールを通じて自動的にライセンスが有効化されます。キーは不要です。スポンサーメールが一致していることを確認してください:
$ precc license status
License: Pro (GitHub Sponsors)
Email: you@example.com
Status: Active (auto-renewed)
デバイスフィンガープリント
各ライセンスはデバイスフィンガープリントに紐付けられています。以下で確認できます:
$ precc license fingerprint
Fingerprint: a1b2c3d4e5f6...
ライセンスを新しいマシンに移行する必要がある場合は、まず無効化してください:
precc license deactivate
その後、新しいマシンで有効化します。
ライセンスの有効期限切れ?
Proライセンスの有効期限が切れると、PRECCはCommunityティアに戻ります。すべての組み込みスキルとコア機能は引き続き動作します。Pro固有の機能のみ利用できなくなります。詳細はFAQをご覧ください。
フックパイプライン
precc-hook バイナリはPRECCの中核です。Claude Codeとシェルの間に位置し、すべてのbashコマンドを5ミリ秒以内に処理します。
Claude Codeがフックを呼び出す方法
Claude CodeはPreToolUseフックをサポートしています。これは実行前にツール入力を検査・変更できる外部プログラムです。Claudeがbashコマンドを実行しようとすると、stdinで precc-hook にJSONを送信し、stdoutからレスポンスを読み取ります。
パイプラインステージ
Claude Code
|
v
+---------------------------+
| 1. Parse JSON stdin | Read the command from Claude Code
+---------------------------+
|
v
+---------------------------+
| 2. Skill matching | Query heuristics.db for matching skills (Pillar 4)
+---------------------------+
|
v
+---------------------------+
| 3. Directory correction | Resolve correct working directory (Pillar 1)
+---------------------------+
|
v
+---------------------------+
| 4. GDB check | Detect debug opportunities (Pillar 2)
+---------------------------+
|
v
+---------------------------+
| 5. RTK rewriting | Apply command rewrites for token savings
+---------------------------+
|
v
+---------------------------+
| 6. Emit JSON stdout | Return modified command to Claude Code
+---------------------------+
|
v
Shell executes corrected command
例:JSONの入出力
入力(Claude Codeから)
{
"tool_input": {
"command": "cargo build"
}
}
PRECCは現在のディレクトリに Cargo.toml がないが、./myapp/Cargo.toml が存在することを検出します。
出力(Claude Codeへ)
{
"hookSpecificOutput": {
"updatedInput": {
"command": "cd /home/user/projects/myapp && cargo build"
}
}
}
変更が不要な場合、updatedInput.command は空となり、Claude Codeは元のコマンドを使用します。
ステージ詳細
ステージ1:JSON解析
stdinから完全なJSONオブジェクトを読み取ります。tool_input.command を抽出します。パースに失敗した場合、フックは即座に終了し、Claude Codeは元のコマンドを使用します(フェイルオープン設計)。
ステージ2:スキルマッチング
SQLiteヒューリスティクスデータベースに、トリガーパターンがコマンドに一致するスキルを問い合わせます。スキルは優先度順にチェックされます。組み込みTOMLスキルとマイニングされたスキルの両方が評価されます。
ステージ3:ディレクトリ修正
ビルドコマンド(cargo、go、make、npm、python など)に対して、期待されるプロジェクトファイルが現在のディレクトリに存在するかチェックします。存在しない場合、近くのディレクトリをスキャンして最も近い一致を見つけ、cd <dir> && を先頭に追加します。
ディレクトリスキャンは5秒のTTLを持つキャッシュされたファイルシステムインデックスを使用して高速を維持します。
ステージ4:GDBチェック
コマンドがクラッシュを引き起こす可能性がある場合(例:デバッグバイナリの実行)、PRECCはGDBラッパーを提案または注入して、生のクラッシュログの代わりに構造化されたデバッグ出力をキャプチャできます。
ステージ5:RTK書き換え
RTK(Rewrite Toolkit)ルールを適用して、冗長なコマンドを短縮し、ノイズの多い出力を抑制し、トークン効率のためにコマンドを再構成します。
ステージ6:JSON出力
変更されたコマンドをJSONにシリアライズしてstdoutに書き込みます。変更がなかった場合、出力はClaude Codeに元のコマンドを使用するよう信号を送ります。
パフォーマンス
パイプライン全体が5ミリ秒(p99)以内に完了します。主な最適化:
- ロックフリーの並行読み取りのためのSQLite WALモード
- スキルマッチングのためのプリコンパイル済み正規表現パターン
- キャッシュされたファイルシステムスキャン(5秒TTL)
- ホットパスにネットワーク呼び出しなし
- フェイルオープン:エラーが発生しても元のコマンドにフォールスルー
フックの手動テスト
フックを直接呼び出すことができます:
$ echo '{"tool_input":{"command":"cargo build"}}' | precc-hook
{"hookSpecificOutput":{"updatedInput":{"command":"cd /home/user/myapp && cargo build"}}}
スキル
スキルは、PRECCがコマンドを検出して修正するために使用するパターンマッチングルールです。組み込み(TOMLファイルとして配布)またはセッションログからマイニングされます。
組み込みスキル
| スキル | トリガー条件 | アクション |
|---|---|---|
cargo-wrong-dir | Rustプロジェクト外での cargo build/test/clippy | 最も近い Cargo.toml ディレクトリへの cd を先頭に追加 |
git-wrong-dir | gitリポジトリ外での git * | 最も近い .git ディレクトリへの cd を先頭に追加 |
go-wrong-dir | Goモジュール外での go build/test | 最も近い go.mod ディレクトリへの cd を先頭に追加 |
make-wrong-dir | カレントディレクトリにMakefileがない状態での make | 最も近いMakefileディレクトリへの cd を先頭に追加 |
npm-wrong-dir | Nodeプロジェクト外での npm/npx/pnpm/yarn | 最も近い package.json ディレクトリへの cd を先頭に追加 |
python-wrong-dir | Pythonプロジェクト外での python/pytest/pip | 最も近いPythonプロジェクトへの cd を先頭に追加 |
jj-translate | jj共存リポジトリでの git * | 同等の jj コマンドに書き換え |
asciinema-gif | asciinema rec | precc gif に書き換え |
スキルの一覧表示
$ precc skills list
# Name Type Triggers
1 cargo-wrong-dir built-in cargo build/test/clippy outside Rust project
2 git-wrong-dir built-in git * outside a repo
3 go-wrong-dir built-in go build/test outside Go module
4 make-wrong-dir built-in make without Makefile in cwd
5 npm-wrong-dir built-in npm/npx/pnpm/yarn outside Node project
6 python-wrong-dir built-in python/pytest/pip outside Python project
7 jj-translate built-in git * in jj-colocated repo
8 asciinema-gif built-in asciinema rec
9 fix-pytest-path mined pytest with wrong test path
スキルの詳細表示
$ precc skills show cargo-wrong-dir
Name: cargo-wrong-dir
Type: built-in
Source: skills/builtin/cargo-wrong-dir.toml
Description: Detects cargo commands run outside a Rust project and prepends
cd to the directory containing the nearest Cargo.toml.
Trigger: ^cargo\s+(build|test|clippy|run|check|bench|doc)
Action: prepend_cd
Marker: Cargo.toml
Activations: 12
スキルをTOMLにエクスポート
$ precc skills export cargo-wrong-dir
[skill]
name = "cargo-wrong-dir"
description = "Prepend cd for cargo commands outside a Rust project"
trigger = "^cargo\\s+(build|test|clippy|run|check|bench|doc)"
action = "prepend_cd"
marker = "Cargo.toml"
priority = 10
スキルの編集
$ precc skills edit cargo-wrong-dir
これにより、$EDITOR でスキル定義が開きます。保存後、スキルは自動的にリロードされます。
Advise コマンド
precc skills advise は最近のセッションを分析し、繰り返しパターンに基づいて新しいスキルを提案します:
$ precc skills advise
Analyzed 47 commands from the last session.
Suggested skills:
1. docker-wrong-dir: You ran `docker compose up` outside the project root 3 times.
Suggested trigger: ^docker\s+compose
Suggested marker: docker-compose.yml
2. terraform-wrong-dir: You ran `terraform plan` outside the infra directory 2 times.
Suggested trigger: ^terraform\s+(plan|apply|init)
Suggested marker: main.tf
Accept suggestion [1/2/skip]?
スキルのクラスタリング
$ precc skills cluster
類似するマイニングされたスキルをグループ化し、冗長または重複するパターンの特定を支援します。
マイニングスキルと組み込みスキル
組み込みスキルはPRECCに同梱され、skills/builtin/*.toml で定義されています。最も一般的なディレクトリ間違いをカバーします。
マイニングスキルは precc ingest または precc-learner デーモンによってセッションログから作成されます。~/.local/share/precc/heuristics.db に保存され、ワークフローに固有です。詳細はマイニングを参照してください。
節約
PRECCは各インターセプションから推定されるトークン節約を追跡します。precc savings を使用して、PRECCがどれだけの無駄を防いだかを確認してください。
クイックサマリー
$ precc savings
Session Token Savings
=====================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens
Breakdown:
Pillar 1 (cd prepends): <span data-stat="session_p1_tokens">3,204</span> tokens (<span data-stat="session_p1_count">6</span> corrections)
Pillar 4 (skill activations): <span data-stat="session_p4_tokens">1,560</span> tokens (<span data-stat="session_p4_count">4</span> activations)
RTK rewrites: <span data-stat="session_rtk_tokens">2,749</span> tokens (<span data-stat="session_rtk_count">11</span> rewrites)
Lean-ctx wraps: <span data-stat="session_lean_tokens">1,228</span> tokens (<span data-stat="session_lean_count">2</span> wraps)
詳細内訳(Pro)
$ precc savings --all
Session Token Savings (Detailed)
================================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens
Command-by-command:
# Time Command Saving Source
1 09:12 cargo build 534 tk cd prepend (cargo-wrong-dir)
2 09:14 cargo test 534 tk cd prepend (cargo-wrong-dir)
3 09:15 git status 412 tk cd prepend (git-wrong-dir)
4 09:18 npm install 824 tk cd prepend (npm-wrong-dir)
5 09:22 find . -name "*.rs" 387 tk RTK rewrite (output truncation)
6 09:25 cat src/main.rs 249 tk RTK rewrite (lean-ctx wrap)
7 09:31 cargo clippy 534 tk cd prepend (cargo-wrong-dir)
...
Pillar Breakdown:
Pillar 1 (context resolution): <span data-stat="session_p1_tokens">3,204</span> tokens <span data-stat="session_p1_pct">36.6</span>%
Pillar 2 (GDB debugging): 0 tokens 0.0%
Pillar 3 (mined preventions): 0 tokens 0.0%
Pillar 4 (automation skills): <span data-stat="session_p4_tokens">1,560</span> tokens <span data-stat="session_p4_pct">17.8</span>%
RTK rewrites: <span data-stat="session_rtk_tokens">2,749</span> tokens <span data-stat="session_rtk_pct">31.5</span>%
Lean-ctx wraps: <span data-stat="session_lean_tokens">1,228</span> tokens <span data-stat="session_lean_pct">14.1</span>%
節約の推定方法
各修正タイプには、PRECCなしで何が起こったかに基づく推定トークンコストがあります:
| 修正タイプ | 推定節約 | 理由 |
|---|---|---|
| cd prepend | ~500 tokens | エラー出力 + Claudeの推論 + リトライ |
| スキルアクティベーション | ~400 tokens | エラー出力 + Claudeの推論 + リトライ |
| RTK rewrite | ~250 tokens | Claudeが読まなければならない冗長な出力 |
| Lean-ctx wrap | ~600 tokens | 大きなファイル内容が圧縮される |
| マイニングされた予防 | ~500 tokens | 既知の失敗パターンを回避 |
これらは控えめな見積もりです。Claudeのエラーに関する推論は冗長になることがあるため、実際の節約はより高いことが多いです。
累積節約
節約はPRECCデータベースにセッション間で保持されます。時間の経過とともに、総合的な影響を追跡できます:
$ precc savings
Session Token Savings
=====================
Total estimated savings: <span data-stat="session_tokens_saved">8,741</span> tokens
Lifetime savings: <span data-stat="total_tokens_saved">142,389</span> tokens across <span data-stat="total_sessions">47</span> sessions
Status Bar
After installation, PRECC wires a statusLine entry into ~/.claude/settings.json so the Claude Code status bar shows live session metrics:
$0.42 spent | 1.2M in/out | 📊 last cmd: −1.2K | PRECC: 7 fixes | 5.8ms avg | this session: 320 saved over 7 cmds (~$0.05) | lifetime: 8.9K saved over 217 cmds (~$2.85)
Each segment:
| Segment | Source | Meaning | Resets on session restart? |
|---|---|---|---|
$0.42 spent | Claude Code’s cost.total_cost_usd | Cumulative session cost reported by Claude Code | Yes |
1.2M in/out | Claude Code’s total_input_tokens + total_output_tokens | Non-cached input + output tokens across the session | Yes |
📊 last cmd: −1.2K | PRECC measurement of the most recent Bash command | Real ground-truth saving from re-running the original | No (persists across sessions) |
PRECC: 7 fixes | PRECC session aggregate from metrics.log | Number of corrections this session — fix count only, no fake token estimate | Yes |
5.8ms avg | PRECC hook latency p50 | Time PRECC spent processing each tool call | Yes |
bash 18% of total | PRECC post_observations.log filtered by session window | Share of session tokens that came from Bash output — clarifies why PRECC’s savings are naturally a fraction of total cost (PRECC only optimizes Bash output) | Yes |
this session: 320 saved over 7 cmds (~$0.05) | ~/.local/share/precc/.lifetime_summary.json minus the per-session baseline at ~/.local/share/precc/sessions/<session_id>.savings_baseline | Real per-session delta. Baseline is captured the first time PRECC sees this session_id; subsequent refreshes compute current_lifetime − baseline so the value reflects savings accrued in this session only. Hidden when delta is zero (start of session) | Yes (baseline re-snapshots) |
lifetime: 8.9K saved over 217 cmds (~$2.85) | ~/.local/share/precc/.lifetime_summary.json + current session’s cost.total_cost_usd / total_used_tokens rate | Cumulative tokens saved and re-measured commands since PRECC was first installed, plus an estimated USD value computed from the current session’s per-token rate. Cost estimate is conservative — it uses (input+output) as the denominator while the cost includes cache tokens, so the per-token rate is overstated and the resulting savings figure is lower than actual | No |
The lifetime: segment is placed last so it’s the first to be truncated if Claude Code’s UI clips the bar at the right edge.
Why cost and token count don’t divide
The displayed 1.2M in/out is not the denominator that produced $0.42 spent. Claude Code’s cost.total_cost_usd is computed from the API’s full token breakdown — base input, output, plus cache reads and cache creations. The session-wide cumulative cache token counts are not exposed in the statusline schema, so PRECC can only show the visible (non-cache) portion.
On long sessions with heavy file rereads, cache reads can be 10× the visible token count. That’s why pairing the two as a ratio would mislead — PRECC shows them as independent segments instead.
Why PRECC doesn’t compute the cost
The cost number is authoritative. PRECC reads cost.total_cost_usd verbatim from the JSON Claude Code pipes into the status command on stdin. That’s the same number Claude Code charges against your subscription/usage budget. You can verify it any time with the built-in /cost slash command — both should agree.
What drives the cost
For Claude Opus 4.6:
| Token type | Standard (≤200k context) | 1M context tier |
|---|---|---|
| Input | $15 / MTok | $30 / MTok |
| Output | $75 / MTok | $150 / MTok |
| Cache write | $18.75 / MTok | $37.50 / MTok |
| Cache read | $1.50 / MTok | $3 / MTok |
The biggest drivers on long sessions are usually:
- Output tokens — most expensive per-token type, especially on the 1M context tier
- Repeated cache reads — cheap individually but accumulate fast across many turns
- Cache creations — written once per file read, ~1.25× the base input rate
PRECC reduces the visible-token cost by compressing Bash output (the 📊 last cmd: segment shows the per-command saving), but it cannot reduce cache reads of files Claude has already loaded.
Stable session counts
The “PRECC: N fixes” segment counts events since the persisted session start, written to ~/.local/share/precc/sessions/<session_id>.start on the first statusline refresh of each session. This makes the count monotonic — it cannot drop mid-session even if cost.total_duration_ms is missing on a particular refresh (which would otherwise collapse the window to “since now” and silently drop nearly all events).
Auto-refreshed lifetime snapshot
The lifetime: segment reads ~/.local/share/precc/.lifetime_summary.json, which is rewritten:
- On every PostToolUse measurement (so it stays current as commands accumulate)
- On every
precc savingsinvocation
The this session: segment reads the same lifetime file but subtracts a per-session baseline persisted to ~/.local/share/precc/sessions/<session_id>.savings_baseline on the first refresh of each session.
No need to manually refresh anything — the files update themselves.
Suppressing the status bar
If you’d rather keep your existing status bar, set your own statusLine command in ~/.claude/settings.json. PRECC’s installer will detect the custom value and leave it alone on subsequent updates.
To suppress only the per-interaction 📊 PRECC line (in additionalContext), set PRECC_QUIET=1 in your shell environment.
圧縮
precc compress は CLAUDE.md やその他のコンテキストファイルを圧縮し、Claude Code がそれらを読み込む際のトークン使用量を削減します。これは Pro 機能です。
基本的な使い方
$ precc compress .
[precc] Scanning directory: .
[precc] Found 3 context files:
CLAUDE.md (2,847 tokens -> 1,203 tokens, -57.7%)
ARCHITECTURE.md (4,112 tokens -> 2,044 tokens, -50.3%)
ALTERNATIVES.md (3,891 tokens -> 1,967 tokens, -49.5%)
[precc] Total: 10,850 tokens -> 5,214 tokens (-51.9%)
[precc] Files compressed. Use --revert to restore originals.
ドライラン
ファイルを変更せずに変更内容をプレビュー:
$ precc compress . --dry-run
[precc] Dry run -- no files will be modified.
[precc] CLAUDE.md: 2,847 tokens -> 1,203 tokens (-57.7%)
[precc] ARCHITECTURE.md: 4,112 tokens -> 2,044 tokens (-50.3%)
[precc] ALTERNATIVES.md: 3,891 tokens -> 1,967 tokens (-49.5%)
[precc] Total: 10,850 tokens -> 5,214 tokens (-51.9%)
元に戻す
元のファイルは自動的にバックアップされます。復元するには:
$ precc compress --revert
[precc] Restored 3 files from backups.
何が圧縮されるか
コンプレッサーはいくつかの変換を適用します:
- 冗長な空白と空行を削除
- 意味を保ちながら冗長な表現を短縮
- テーブルとリストを圧縮
- コメントと装飾的なフォーマットを除去
- すべてのコードブロック、パス、技術的識別子を保持
圧縮された出力はまだ人間が読める形式です——ミニファイや難読化はされていません。
特定のファイルを対象にする
$ precc compress CLAUDE.md
[precc] CLAUDE.md: 2,847 tokens -> 1,203 tokens (-57.7%)
レポート
precc report は PRECC の活動とトークン節約をまとめた分析ダッシュボードを生成します。
レポートの生成
$ precc report
PRECC Report -- 2026-04-03
==========================
Sessions analyzed: 12
Commands intercepted: 87
Total token savings: 42,389
Top skills by activation:
1. cargo-wrong-dir 34 activations 17,204 tokens saved
2. npm-wrong-dir 18 activations 9,360 tokens saved
3. git-wrong-dir 12 activations 4,944 tokens saved
4. RTK rewrite 15 activations 3,750 tokens saved
5. python-wrong-dir 8 activations 4,131 tokens saved
Savings by pillar:
Pillar 1 (context resolution): 28,639 tokens 67.6%
Pillar 4 (automation skills): 7,000 tokens 16.5%
RTK rewrites: 3,750 tokens 8.8%
Lean-ctx wraps: 3,000 tokens 7.1%
Recent corrections:
2026-04-03 09:12 cargo build -> cd myapp && cargo build
2026-04-03 09:18 npm test -> cd frontend && npm test
2026-04-03 10:05 git status -> cd repo && git status
...
レポートのメール送信
レポートをメールアドレスに送信(メール設定が必要、Email 参照):
$ precc report --email
[precc] Report sent to you@example.com
受信者アドレスは ~/.config/precc/mail.toml から読み取られます。precc mail report EMAIL を使って特定のアドレスに送信することもできます。
レポートデータ
レポートは ~/.local/share/precc/history.db のローカル PRECC データベースから生成されます。レポートを明示的にメール送信しない限り、データはマシンから出ません。
マイニング
PRECCはClaude Codeのセッションログを解析して失敗-修正パターンを学習します。同じミスを再び見つけると、自動的に修正を適用します。
セッションログの取り込み
単一ファイルの取り込み
$ precc ingest ~/.claude/logs/session-2026-04-03.jsonl
[precc] Parsing session-2026-04-03.jsonl...
[precc] Found 142 commands, 8 failure-fix pairs
[precc] Stored 8 patterns in history.db
[precc] 2 new skill candidates identified
すべてのログの取り込み
$ precc ingest --all
[precc] Scanning ~/.claude/logs/...
[precc] Found 23 session files (14 new, 9 already ingested)
[precc] Parsing 14 new files...
[precc] Found 47 failure-fix pairs across 14 sessions
[precc] Stored 47 patterns in history.db
[precc] 5 new skill candidates identified
強制再取り込み
すでに取り込まれたファイルを再処理するには:
$ precc ingest --all --force
[precc] Re-ingesting all 23 session files...
マイニングの仕組み
- PRECCはセッションJSONLログファイルを読み取ります。
- 最初のコマンドが失敗し、2番目が修正されたリトライであるコマンドペアを特定します。
- パターン(何が問題だったか)と修正(Claudeが何を変えたか)を抽出します。
- パターンは
~/.local/share/precc/history.dbに保存されます。 - パターンが信頼度の閾値に達すると(複数回確認)、
heuristics.dbのマイニングスキルになります。
パターンの例
Failure: pytest tests/test_auth.py
Error: ModuleNotFoundError: No module named 'myapp'
Fix: cd /home/user/myapp && pytest tests/test_auth.py
Pattern: pytest outside project root -> prepend cd
precc-learner デーモン
precc-learner デーモンはバックグラウンドで実行され、新しいセッションログを自動的に監視します:
$ precc-learner &
[precc-learner] Watching ~/.claude/logs/ for new sessions...
[precc-learner] Processing session-2026-04-03-1412.jsonl... 3 new patterns
デーモンはファイルシステム通知(LinuxではinotifyOSではFSEvents)を使用するため、セッション終了時に即座に反応します。
パターンからスキルへ
マイニングされたパターンは以下の条件を満たすとスキルに昇格します:
- セッション全体で少なくとも3回確認
- 一貫した修正パターン(毎回同じタイプの修正)
- 誤検出なし
スキル候補は以下で確認できます:
$ precc skills advise
スキルの管理の詳細については Skills を参照してください。
データストレージ
- 失敗-修正ペア:
~/.local/share/precc/history.db - 昇格したスキル:
~/.local/share/precc/heuristics.db
どちらもWALモードのSQLiteデータベースで、安全な並行アクセスが可能です。
メール
PRECCはメールでレポートやファイルを送信できます。これには一度だけのSMTP設定が必要です。
セットアップ
$ precc mail setup
SMTP host: smtp.gmail.com
SMTP port [587]: 587
Username: you@gmail.com
Password: ********
From address [you@gmail.com]: you@gmail.com
[precc] Mail configuration saved to ~/.config/precc/mail.toml
[precc] Sending test email to you@gmail.com...
[precc] Test email sent successfully.
設定ファイル
設定は ~/.config/precc/mail.toml に保存されます:
[smtp]
host = "smtp.gmail.com"
port = 587
username = "you@gmail.com"
password = "app-password-here"
from = "you@gmail.com"
tls = true
このファイルを直接編集できます:
$EDITOR ~/.config/precc/mail.toml
Gmailの場合は、アカウントパスワードではなくアプリパスワードを使用してください。
レポートの送信
$ precc mail report team@example.com
[precc] Generating report...
[precc] Sending to team@example.com...
[precc] Report sent.
ファイルの送信
$ precc mail send colleague@example.com output.log
[precc] Sending output.log to colleague@example.com...
[precc] Sent (14.2 KB).
SSHリレーサポート
マシンがSMTPサーバーに直接到達できない場合(例:企業ファイアウォールの背後)、PRECCはSSHトンネル経由のリレーをサポートします:
[smtp]
host = "localhost"
port = 2525
[ssh_relay]
host = "relay.example.com"
user = "you"
remote_port = 587
local_port = 2525
PRECCは送信前にSSHトンネルを自動的に確立します。
GIF録画
precc gifはbashスクリプトからターミナルセッションのアニメーションGIF録画を作成します。これはPro機能です。
基本的な使い方
$ precc gif script.sh 30s
[precc] Recording script.sh (max 30s)...
[precc] Running: echo "Hello, world!"
[precc] Running: cargo build --release
[precc] Running: cargo test
[precc] Recording complete.
[precc] Output: script.gif (1.2 MB, 24s)
最初の引数は実行するコマンドを含むbashスクリプトです。2番目の引数は最大録画時間です。
スクリプト形式
スクリプトは標準的なbashファイルです:
#!/bin/bash
echo "Building project..."
cargo build --release
echo "Running tests..."
cargo test
echo "Done!"
入力シミュレーション
インタラクティブコマンドの場合、追加引数として入力値を指定します:
$ precc gif interactive-demo.sh 60s "yes" "my-project" "3"
追加の各引数は、スクリプトが入力を要求するときにstdinの行として渡されます。
出力オプション
出力ファイルはデフォルトでスクリプト名に基づいて命名されます(script.gif)。GIFはダークターミナルテーマで標準80x24サイズを使用します。
なぜasciinemaではなくGIFなのか?
組み込みスキル asciinema-gif は asciinema rec を自動的に precc gif に書き換えます。GIFファイルはより移植性が高く、GitHub README、Slack、メールでプレーヤーなしでインライン表示されます。
GitHub Actionsの分析
precc ghaは失敗したGitHub Actionsの実行を分析し、修正を提案します。これはPro機能です。
使い方
失敗したGitHub Actionsの実行URLを渡します:
$ precc gha https://github.com/myorg/myrepo/actions/runs/12345678
[precc] Fetching run 12345678...
[precc] Run: CI / build (ubuntu-latest)
[precc] Status: failure
[precc] Failed step: Run cargo test
[precc] Log analysis:
Error: test result: FAILED. 2 passed; 1 failed
Failed test: tests::integration::test_database_connection
Cause: thread 'tests::integration::test_database_connection' panicked at
'called Result::unwrap() on an Err value: Connection refused'
[precc] Suggested fix:
The test requires a database connection but the CI environment does not
start a database service. Add a services block to your workflow:
services:
postgres:
image: postgres:15
ports:
- 5432:5432
env:
POSTGRES_PASSWORD: test
機能
- GitHub ActionsのランURLを解析して、オーナー、リポジトリ、ランIDを抽出します。
- GitHub API経由でランログを取得します(
GITHUB_TOKENが設定されている場合はそれを使用、そうでなければパブリックアクセス)。 - 失敗したステップを特定し、関連するエラー行を抽出します。
- エラーを分析し、一般的なCI失敗パターンに基づいて修正を提案します。
サポートされる障害パターン
- 不足しているサービスコンテナ(データベース、Redisなど)
- ランナーのOSまたはアーキテクチャの不一致
- 環境変数またはシークレットの不足
- 依存関係のインストール失敗
- テストタイムアウト
- 権限エラー
- キャッシュミスによるビルドの遅延
ジオフェンス
PRECCは規制環境向けのIPジオフェンスコンプライアンスチェックを含みます。これはPro機能です。
概要
一部の組織は、開発ツールが承認された地理的リージョン内でのみ動作することを要求しています。PRECCのジオフェンス機能は、現在のマシンのIPアドレスが許可されたリージョンリスト内にあることを検証します。
コンプライアンスチェック
$ precc geofence check
[precc] Current IP: 203.0.113.42
[precc] Region: US-East (Virginia)
[precc] Status: COMPLIANT
[precc] Policy: us-east-1, us-west-2, eu-west-1
マシンが許可されたリージョンの外にある場合:
$ precc geofence check
[precc] Current IP: 198.51.100.7
[precc] Region: AP-Southeast (Singapore)
[precc] Status: NON-COMPLIANT
[precc] Policy: us-east-1, us-west-2, eu-west-1
[precc] Warning: Current region is not in the allowed list.
ジオフェンスデータの更新
$ precc geofence refresh
[precc] Fetching updated IP geolocation data...
[precc] Updated. Cache expires in 24h.
ジオフェンス情報の表示
$ precc geofence info
Geofence Configuration
======================
Policy file: ~/.config/precc/geofence.toml
Allowed regions: us-east-1, us-west-2, eu-west-1
Cache age: 2h 14m
Last check: 2026-04-03 09:12:00 UTC
Status: COMPLIANT
キャッシュのクリア
$ precc geofence clear
[precc] Geofence cache cleared.
設定
ジオフェンスポリシーは ~/.config/precc/geofence.toml で定義されます:
[geofence]
allowed_regions = ["us-east-1", "us-west-2", "eu-west-1"]
check_on_init = true
block_on_violation = false
block_on_violation = true を設定すると、許可されたリージョン外でPRECCの動作を防止します。
テレメトリ
PRECCはツールの改善に役立つオプトイン方式の匿名テレメトリをサポートしています。明示的に同意しない限り、データは収集されません。
オプトイン
$ precc telemetry consent
[precc] Telemetry enabled. Thank you for helping improve PRECC.
[precc] You can revoke consent at any time with: precc telemetry revoke
オプトアウト
$ precc telemetry revoke
[precc] Telemetry disabled. No further data will be sent.
ステータス確認
$ precc telemetry status
Telemetry: disabled
Last sent: never
送信されるデータのプレビュー
オプトインする前に、収集されるデータを正確に確認できます:
$ precc telemetry preview
Telemetry payload (this session):
{
"version": "0.3.0",
"os": "linux",
"arch": "x86_64",
"skills_activated": 12,
"commands_intercepted": 87,
"pillars_used": [1, 4],
"avg_hook_latency_ms": 2.3,
"session_count": 1
}
収集されるもの
- PRECCバージョン、OS、アーキテクチャ
- 集計カウント:インターセプトされたコマンド、アクティブ化されたスキル、使用された柱
- 平均フックレイテンシ
- セッション数
収集されないもの
- コマンドテキストや引数なし
- ファイルパスやディレクトリ名なし
- プロジェクト名やリポジトリURLなし
- 個人を特定できる情報(PII)なし
- IPアドレスなし(サーバーは記録しません)
環境変数によるオーバーライド
コマンドを実行せずにテレメトリを無効にするには(CIや共有環境で便利):
export PRECC_NO_TELEMETRY=1
これは同意設定よりも優先されます。
データの送信先
テレメトリデータはHTTPSで https://telemetry.peria.ai/v1/precc に送信されます。データは使用パターンの理解と開発の優先順位付けにのみ使用されます。
マインドマップ
このページは mindmap.db(記録されたすべての PRECC 開発セッションと git コミットの SQLite スナップショット)から自動生成されます。各行は出典(commit:<sha>、session:<id>、または doc:<path>)までたどることができます。
概要
- 分析されたセッション: 22
- メッセージ: 14023
- ツール呼び出し: 5072
- コミット: 205
- 期間: 2026-03-20T07:04:14.787Z → 2026-04-19T11:50:10.153Z
- 労力(トークン):
- 入力: 27928
- 出力: 2750669
- キャッシュ書き込み: 43349705
- キャッシュ読み取り: 1936351239
機能
| スコープ | タイトル | ステータス | コミット | トークン | 最初 | 最新 | ソース |
|---|---|---|---|---|---|---|---|
bench | feat(bench): SWE-bench Verified/Lite driver scaffolding | stabilizing | 4 | 4344299 | 2026-04-17 | 2026-04-17 | commit:5bdd027d |
benchmark_gate.sh | feat: benchmark_gate.sh + pin tb dataset to 0.1.1 | shipped | 1 | 4344299 | 2026-04-17 | 2026-04-17 | commit:99fa9a74 |
real | feat: real lean-ctx (not stub), wider campaign, doc updates | shipped | 2 | 29821152 | 2026-04-07 | 2026-04-17 | commit:6095720a |
precc_mode=benchmark | feat: PRECC_MODE=benchmark toggle + pairwise benchmark harness | shipped | 1 | 4344299 | 2026-04-17 | 2026-04-17 | commit:50c5a30f |
add | feat: add precc update self-update command | shipped | 14 | 42557107 | 2026-03-09 | 2026-04-17 | commit:e5542fba |
negotiable | feat: negotiable rewrites, skill decay, explain/undo — response to critic | shipped | 1 | 4344299 | 2026-04-17 | 2026-04-17 | commit:6fda67e4 |
statusline | feat: statusline shows actual session token consumption + cost | stabilizing | 3 | 25424915 | 2026-04-08 | 2026-04-13 | commit:4f65556d |
public | feat: public repo commits attributed to Ce-cyber-art | shipped | 1 | 25382119 | 2026-04-10 | 2026-04-10 | commit:0e4840e4 |
short | feat: short install URL https://peria.ai/install.sh | shipped | 1 | 25382119 | 2026-04-09 | 2026-04-09 | commit:615d3d06 |
rewrite | feat: rewrite Pillar 2b (ccc) and Pillar 3 (compress) in Rust for single-binary deployment | shipped | 2 | 38118074 | 2026-03-20 | 2026-04-08 | commit:78621579 |
shorten | feat: shorten statusline segments to fit narrower terminals | shipped | 1 | 25382119 | 2026-04-08 | 2026-04-08 | commit:ef2c88b4 |
drop | feat: drop fake token estimate, append cost estimate to lifetime segment | stabilizing | 2 | 25382119 | 2026-04-08 | 2026-04-08 | commit:2702f3f9 |
update | feat: update pricing to $5/6mo + $10/yr, add webhook server | stabilizing | 9 | 38118074 | 2026-02-25 | 2026-04-08 | commit:2d366031 |
clearer | feat: clearer statusline labels — meas:, drop confusing %, add bash share | shipped | 1 | 25382119 | 2026-04-08 | 2026-04-08 | commit:4cd837b7 |
stable | feat: stable machine_hash for telemetry dedup | stabilizing | 2 | 25382119 | 2026-04-08 | 2026-04-08 | commit:3073f428 |
lifetime | feat: lifetime savings segment in statusline | shipped | 1 | 25382119 | 2026-04-08 | 2026-04-08 | commit:9af422e8 |
precc | feat: precc analyze frequencies — data-driven rule gap discovery | shipped | 3 | 25382119 | 2026-04-07 | 2026-04-08 | commit:d6f24c50 |
per-interaction | feat: per-interaction PRECC savings line in PostToolUse | shipped | 1 | 25382119 | 2026-04-08 | 2026-04-08 | commit:e3bc282e |
webhook | feat: webhook auto-regenerates stats.json on telemetry POST | stabilizing | 2 | 29134186 | 2026-03-31 | 2026-04-08 | commit:912b75f3 |
per-email | feat: per-email aggregation for telemetry | shipped | 1 | 25382119 | 2026-04-08 | 2026-04-08 | commit:14c95e7d |
v0.3.3 | feat: v0.3.3 — companion tools default-on, install-script clarity | shipped | 1 | 25382119 | 2026-04-07 | 2026-04-07 | commit:48fca046 |
measurement | feat: measurement campaign script — real per-mode measurements | shipped | 1 | 25382119 | 2026-04-07 | 2026-04-07 | commit:36760587 |
quote-aware | feat: quote-aware chain split + sysadmin tool whitelist (54.2% → 55.5%) | shipped | 1 | 25382119 | 2026-04-07 | 2026-04-07 | commit:f6580598 |
; | feat: ; chain support + ssh inner-command parsing for measurement | shipped | 1 | 25382119 | 2026-04-07 | 2026-04-07 | commit:10093218 |
expand | feat: expand is_safe_to_rerun coverage + measurement timeout/cache | shipped | 1 | 25382119 | 2026-04-07 | 2026-04-07 | commit:c5a7ea79 |
multi-mode | feat: multi-mode adaptive compression with failure learning | shipped | 1 | 25382119 | 2026-04-07 | 2026-04-07 | commit:81475afc |
measured | feat: measured savings in telemetry, detailed live stats, update nudge | shipped | 1 | 25382119 | 2026-04-06 | 2026-04-06 | commit:06907091 |
scientific | feat: scientific token savings measurement, telemetry dedup, 28-language docs | shipped | 1 | 25382119 | 2026-04-06 | 2026-04-06 | commit:78a20ef2 |
v0.3.2 | feat: v0.3.2 — hook safety, adaptive compression, on-demand metrics import | shipped | 1 | 25382119 | 2026-04-05 | 2026-04-05 | commit:a0c0c882 |
self-hosted | feat: self-hosted telemetry endpoint at peria.ai, install UX improvements | shipped | 1 | 2565703 | 2026-04-04 | 2026-04-04 | commit:8212a18e |
auto-update | feat: auto-update consent prompt on init and manual update | shipped | 1 | 1924302 | 2026-04-02 | 2026-04-02 | commit:818be6dd |
use | perf: use pre-built binaries for lean-ctx and nushell installation | stabilizing | 4 | 10170252 | 2026-03-09 | 2026-03-31 | commit:8c612e55 |
authorize | feat: authorize peria.ai server for license key generation | shipped | 2 | 1186364 | 2026-03-31 | 2026-03-31 | commit:53dfe832 |
license | feat: license keys, SMTP mail-agent, updated business plan and demos | stabilizing | 2 | 10170252 | 2026-03-09 | 2026-03-31 | commit:b07c9dfb |
lean-ctx | feat: lean-ctx integration for deep output compression | shipped | 1 | 1186364 | 2026-03-31 | 2026-03-31 | commit:07361e62 |
integrate | feat: integrate three-pillar savings from precc-cc (cocoindex-code, token-saver, ClawHub) | shipped | 2 | 10170252 | 2026-03-20 | 2026-03-31 | commit:af4205f1 |
windows | feat: Windows build via CI, deploy triggers workflow | stabilizing | 2 | 2533692 | 2026-03-29 | 2026-03-29 | commit:7404761b |
monthly | feat: monthly usage report via email for Pro users | shipped | 1 | 2533692 | 2026-03-28 | 2026-03-28 | commit:77ad78bc |
nushell | feat: nushell what-if analysis, skill clustering, comment blocker, bash unwrap (v0.2.6) | shipped | 1 | 2337941 | 2026-03-27 | 2026-03-27 | commit:803df684 |
geofence | feat: geofence compliance guard, 3rd-party skill Claude interaction tracking (v0.2.5) | shipped | 1 | 2337941 | 2026-03-26 | 2026-03-26 | commit:0c9fc765 |
stripe | feat: Stripe payment integration, context pressure, GHA analysis | shipped | 2 | 2457088 | 2026-03-21 | 2026-03-22 | commit:8eb16f78 |
context | feat: context pressure warning, GHA analysis, statusline context % | shipped | 1 | 2166141 | 2026-03-20 | 2026-03-20 | commit:894621ba |
statusline, | feat: statusline, squash deploy, ClaWHub metadata, SHA256 checksums | shipped | 1 | 2166141 | 2026-03-20 | 2026-03-20 | commit:7ab15883 |
gumroad | feat: Gumroad license verification via API (v0.2.2) | shipped | 1 | 0 | 2026-03-13 | 2026-03-13 | commit:75c5e480 |
per-user | feat: per-user email-based license keys with Gumroad webhook (v0.2.2) | shipped | 1 | 0 | 2026-03-13 | 2026-03-13 | commit:6d056958 |
posttooluse | feat: PostToolUse observability + comprehensive test coverage (v0.2.1) | shipped | 1 | 0 | 2026-03-12 | 2026-03-12 | commit:6e33b7e4 |
multi-tool | feat: multi-tool hook dispatch, subagent propagation & Read/Grep filters (v0.2.0) | shipped | 1 | 0 | 2026-03-12 | 2026-03-12 | commit:1bf5a108 |
skill | feat: skill advisor, sharing credits, telemetry & Rust actionbook (v0.1.9) | shipped | 1 | 0 | 2026-03-12 | 2026-03-12 | commit:d41d310e |
fire | feat: fire anonymous update-check ping on precc update (opt-out via PRECC_NO_TELEMETRY=1) | shipped | 1 | 0 | 2026-03-10 | 2026-03-10 | commit:7acce69d |
enforce | feat: enforce license tier gates (Free/Pro) on ingest, mined skills, gif, mail, savings | shipped | 1 | 0 | 2026-03-10 | 2026-03-10 | commit:a7bd23e3 |
translate | feat: translate git commands to jj (Jujutsu) in colocated repos | shipped | 1 | 0 | 2026-03-09 | 2026-03-09 | commit:d8a29e48 |
rtk | feat(rtk): sync rewrite rules with upstream RTK v0.27.2 | shipped | 1 | 0 | 2026-03-09 | 2026-03-09 | commit:ad7dca0e |
apply | feat: apply skill portfolio per command for maximum token savings | shipped | 1 | 0 | 2026-03-09 | 2026-03-09 | commit:b2490073 |
pitch | feat(pitch): add bilingual EN/ZH PowerPoint pitch deck | shipped | 2 | 0 | 2026-02-27 | 2026-02-28 | commit:8876c4b7 |
hook | perf(hook): skip heuristics.db open via plain-text prefix cache | shipped | 1 | 0 | 2026-02-27 | 2026-02-27 | commit:89537483 |
init | feat(init): embed builtin skills in binary via include_str! | shipped | 1 | 0 | 2026-02-26 | 2026-02-26 | commit:3a837b13 |
cli | feat(cli): add precc skills export command | shipped | 2 | 0 | 2026-02-26 | 2026-02-26 | commit:59beea8d |
gdb | feat(gdb): re-enable Pillar 2 GDB hook suggestion | shipped | 1 | 0 | 2026-02-26 | 2026-02-26 | commit:a8428025 |
skills | feat(skills): add git wrong-dir skill and context mapping | stabilizing | 2 | 0 | 2026-02-25 | 2026-02-25 | commit:352474e1 |
metrics | feat(metrics): record hook latency, rtk_rewrite, cd_prepend via append-log | shipped | 1 | 0 | 2026-02-25 | 2026-02-25 | commit:9bf31d12 |
demo | feat(demo): add investor demo suite | shipped | 1 | 0 | 2026-02-25 | 2026-02-25 | commit:c818a0ac |
security | feat(security): SQLCipher encryption, binary hardening, multi-platform CI | shipped | 1 | 0 | 2026-02-25 | 2026-02-25 | commit:efd3dfc8 |
ingest | feat(ingest): add –force flag to re-mine already-recorded sessions | shipped | 1 | 0 | 2026-02-22 | 2026-02-22 | commit:85cc8f6f |
依存関係(precc-core モジュール)
advisor→db,promote,skillsdiet→lean_ctxmetrics→dbmining→skillsmode_selector→db,modemulti_probe→diet,lean_ctx,mode,nushell,post_observe,rtknushell→lean_ctx,mining,rtkpromote→db,skillsrtk→lean_ctxsharing→db,license,skillsskill_advisor→mining,nushellskills→dbtelemetry→db,license,mining
計画とタスク
計画(設計・アーキテクチャを求めるプロンプト)
- [proposed] indeed the measurement needs to be based on precc-cc’s established KPI’s. If the two ideas are so close, perhaps you can draft a plan to integrate them (algorithmatically) step-by-step, then start to use Rust (consistent with Precc) to impl… —
session:905ff169(2026-04-18) - [proposed] 西班牙语网站上有人评价:中文翻譯(繁體): —
session:781fe484(2026-04-16) - [proposed] That’s a really solid framing — using pre-tool-call hooks as quality gates instead of just optimization is a big shift in mindset. You’re essentially moving from “make the model cheaper” to “make the system more correct,” whic… —
session:ebd81938(2026-04-05) - [proposed] Plan the integration of both tools, make sure we don’t take their credit and maintain a clear interface so that once it evolves, we can get smaller changes to integrate with their future changes —
session:43541885(2026-03-31) - [proposed] for the benchmark, we need to prepare a table to record the comparison for existing historical scenarios, as a “what-if” analysis because there is no way to measure the results for future usages. For this requirement, plan out a step-by-ste… —
session:5761d7ca(2026-03-27) - [proposed] while bash could be improved using RTK, would its replacement with nushell a better choice for Claude Code? If so, plan an option for replacing bash with nushell to gain better accuracy and hence potentially more token savings by some small… —
session:5761d7ca(2026-03-27)
タスク(TaskCreate / TodoWrite エントリ)
- completed: 89
- in_progress: 3
- deleted: 2
最新の 30 件のタスク:
- [completed] Re-ingest and review residual pending — Run precc mindmap build after the fix, then classify the actually-pending tasks (done-but-unclosed vs genuinely-unfinished). —
session:0925455d(2026-04-19) - [completed] Fold TaskCreate/TaskUpdate + dedupe TodoWrite — Replay TaskCreate/TaskUpdate events per (session_id, taskId) to derive final status. For TodoWrite, keep only the last call per session. —
session:0925455d(2026-04-19) - [completed] Run ingest and produce MINDMAP.md — Execute ingest on local sessions + git, then render output to docs/MINDMAP.md. —
session:0925455d(2026-04-19) - [completed] Wire precc mindmap CLI subcommand — Add ingest/render subcommands to precc-cli. —
session:0925455d(2026-04-19) - [completed] Write mindmap render module — Query DB and render nested markdown mindmap with KPIs, features, plans, blockers. —
session:0925455d(2026-04-19) - [completed] Write mindmap ingest module — Parse JSONL sessions + git log, extract messages/tokens/commands/decisions into SQLite. —
session:0925455d(2026-04-19) - [completed] Design SQLite mindmap schema — Tables: sessions, messages, commands, features, plans, tasks, kpis, decisions, dependencies. Every row traces to source (session_id+uuid or commit sha). —
session:0925455d(2026-04-19) - [in_progress] Step 4: HeaderSlicePass + kernel corpus — Shallow-clone Linux kernel, adapt filter for kernel conventions (Fixes: tag, selftests/ and kunit test-surface detection, .c/.h classification). Measure how many recent fix commits ship with a test an… —
session:905ff169(2026-04-19) - [completed] Step 6: concurrency extraction — Add Pipeline::run_parallel_applies that parallelizes applies() via std::thread::scope when pass count ≥ threshold. Falls back to serial below threshold (thread-spawn overhead > savings). Benchmark s… —
session:905ff169(2026-04-19) - [completed] [parallel] AST-aware #[test] extractor — Use syn (Rust) or tree-sitter-rust (Python) to detect added #[test] fns in a commit diff and emit a test-only patch. Gates fail→pass verification on this repo. Not blocking; parallel work for the Ru… —
session:905ff169(2026-04-19) - [completed] Step 7: precc skvm report tooling — Wire had_solid_hit into metrics log. Add
precc skvm reportthat surfaces pass activation counts, cache hit rate, hook-latency percentiles. Read from metrics.db + skvm_solid_cache. Closes the observa… —session:905ff169(2026-04-19) - [completed] Wire SolidificationPass into live hook — Add stage_solidification_lookup (front, short-circuits on hit) and stage_solidification_record (end) to Pipeline. Gate behind PRECC_SOLIDIFY. Add had_solid_hit flag. Open cache via db::open_metrics fo… —
session:905ff169(2026-04-19) - [completed] Step 3: solidification cache — skvm::solid module: Cache (SQLite-backed) with lookup/record, Key with normalization, SolidificationPass at pipeline front. Gated by PRECC_SOLIDIFY=1. Tests with in-memory DB. No wiring into live hook… —
session:905ff169(2026-04-19) - [completed] Wire CdPrependPass into hook’s stage_context — Replace the direct context::resolve/apply calls in precc-hook::Pipeline::stage_context with CdPrependPass via HookIR. Verify no hook tests regress; full cargo test green. —
session:905ff169(2026-04-19) - [completed] Step 2: migrate cd_prepend through Pass trait — Re-express the existing cd-prepend stage as a Pass impl that reuses the current context resolution. Diff-test: on a fixture corpus, the new pass must produce byte-identical output to the legacy path. … —
session:905ff169(2026-04-19) - [completed] Step 5 preview: CrateSlicePass sketch — Implement CrateSlicePass in precc-core::skvm::passes::crate_slice. Detects
cargo <build\|test\|check\|clippy>without -p, reads cachedcargo metadata, narrows to -p when unambiguous. Wire a minimal K… —session:905ff169(2026-04-19) - [completed] Step 1: Pass trait + HookIR — precc-core::skvm::{pass, ir}. Pass trait with name/capability/applies/run. HookIR holds command, cwd, and mutable output. Capability enum: Detect|Rewrite|Slice|Verify. No behavior change; no passes re… —
session:905ff169(2026-04-19) - [completed] Step 0: baseline harness — Add precc-core::skvm::baseline module +
precc report --skvm-baselinesubcommand. Snapshots K1 (hook latency p50/p99), K3 (token savings total), activation counts from metrics.db into a named baselin… —session:905ff169(2026-04-19) - [completed] Build K3-only replay corpus — For each of the 82 fix-surface commits, derive ground-truth set of changed crates and emit realistic cargo commands. CrateSlicePass evaluation will read this corpus and measure narrowing precision/rec… —
session:905ff169(2026-04-18) - [deleted] Run verifier over 33 candidates — Execute verifier, collect verdicts. Apply size gate to verified set. Emit precc_self_corpus.jsonl. —
session:905ff169(2026-04-18) - [deleted] Write fail-at-parent verifier — Per candidate: git worktree at parent, apply only test-file diff, cargo test (expect added tests FAIL), reset + apply full commit, cargo test (expect PASS). Per-worktree CARGO_TARGET_DIR to avoid tras… —
session:905ff169(2026-04-18) - [completed] Classify test surface of 33 candidates — Split candidates into pure_test_path (tests/ only) vs mixed_file_test (production + #[test] in same file). Reports count by class. Cheap, no cargo. —
session:905ff169(2026-04-18) - [completed] Run first Terminal-bench batch (5 tasks) — Execute scripts/benchmark.sh –tasks 5 using OAuth token from subscription as ANTHROPIC_API_KEY. Verify arm A (vanilla) works, then arm B (PRECC), then compare.json. —
session:781fe484(2026-04-17) - [completed] Add precc explain and precc undo — explain –since 1h: lists recent rewrites with diff + skill + confidence (reads stash + rewrite_log). undo <id>: re-disables the skill that produced rewrite id. —
session:781fe484(2026-04-16) - [completed] Confidence decay on retry-after-rewrite — post_observe: if same command class is retried within 60s after a PRECC rewrite, decrement skill confidence by 0.05 (or count as false-correction event). Below SUGGEST_THRESHOLD (0.3) skill auto-disab… —
session:781fe484(2026-04-16) - [completed] Add precc skills disable/enable per-project — CLI commands to disable a skill in the current project (writes to .precc/disabled-skills file at project root). Hook reads this list and skips matching skills. —
session:781fe484(2026-04-16) - [completed] Make every rewrite visible via additionalContext — In precc-hook, whenever the pipeline produces a non-trivial rewrite (cd-prepend, skill, RTK, lean-ctx, nushell, diet), append a one-line summary “PRECC rewrote: <orig> -> <new> [reason]” to additional… —
session:781fe484(2026-04-16) - [completed] Soften overstated claims in intro — Replace “Claude never sees the error. No tokens wasted.” with measured language matching README. Update strings_intro.sql and re-translate the new key for all 28 langs. —
session:781fe484(2026-04-16) - [completed] Fix per-language html lang and dir — build-book.sh must rewrite book.toml language= and text-direction= per language so generated pages have correct lang/dir attributes. RTL for ar, fa. —
session:781fe484(2026-04-16) - [completed] Rebuild book and verify — Run scripts/build-book.sh to regenerate introduction.md per language, verify first lines now show translations —
session:781fe484(2026-04-16)
ブロッカー(ユーザー報告の失敗・行き詰まり信号)
- look at all the historical session logs and executed commands to summarize a mark down document like Mindmap showing (1) the features, status, decisions, dependencies, and effort (tokens releated to its development); (2) the plans, tasks, s… —
session:0925455d(2026-04-19) - check if it is working? why precc savings –all doesn’t work? —
session:ebd81938(2026-04-13) - i tried that url it doesn’t work? —
session:ebd81938(2026-04-08) - why I can’t see the “last: “ messages? —
session:ebd81938(2026-04-08) - not yet. I would wait to get more data from telemetry to update the website. But now you need to investigate on those “unmeasured” cases, why we cannot measure them? —
session:ebd81938(2026-04-07) - regarding the live usage statistics https://precc.cc/en/#live-usage-statistics, we need to report the percentages based on the duration of releases, i.e., how much saving was made by which release (otherwise it is easy to mislead readers to… —
session:ebd81938(2026-04-06) - https://precc.cc cannot find the server —
session:ebd81938(2026-04-05) - can see key_id mk_1TDiUmFxhHEidPnDw5esdOMa, but cannot reveal or see the sk_live_… —
session:d65ad15f(2026-04-01) - PS C:\Users\y00577373> iwr -useb https://raw.githubusercontent.com/peria-ai/precc-cc/main/scripts/install.ps1 | iex —
session:10175339(2026-03-30) - why can’t you create peria-ai or peri-a-i organizations —
session:10175339(2026-03-28) - the hello_world_do example has the following errors: NPU run failed. —
session:3b5e2947(2026-03-22)
決定と根拠
- feat(bench): clean-subset metrics (exclude timeouts & infra failures) — When one arm times out or the agent fails to install, the resulting tokens/pass numbers aren’t measuring PRECC — they’re measuring tb’s source:
commit:5bdd027d(commit 2026-04-17) - fix(bench): drop –include-hook-events (causes 401 Invalid API key) — Adding
--include-hook-eventsto the tb agent command caused Claude Code to return api_error_status=401 on first turn, even though the source:commit:025995d9(commit 2026-04-17) - feat: PRECC_MODE=benchmark toggle + pairwise benchmark harness — Problem (from reviewer): the “trivial vs semantic” error-shaping claim is rhetoric without a measurable boundary. A rewriter that saves tokens source:
commit:50c5a30f(commit 2026-04-17) - docs: update savings.md.tpl + README to match new statusline labels — - Σ → meas: throughout - New ‘bash X% of total’ segment row in segment table source:
commit:2d366031(commit 2026-04-08) - feat: clearer statusline labels — meas:, drop confusing %, add bash share — Three statusline UX changes from user feedback: 1. Lifetime segment renamed from ‘Σ 8.9K (22% over 217)’ to source:
commit:4cd837b7(commit 2026-04-08) - docs: explain statusline cost vs token semantics in book + README — Adds a ‘Status Bar’ section to docs/book/templates/savings.md.tpl and README.md explaining: source:
commit:6028b64c(commit 2026-04-08) - feat: v0.3.3 — companion tools default-on, install-script clarity — The single biggest change: install.sh now installs companion tools (lean-ctx, RTK, nushell, cocoindex-code) BY DEFAULT instead of source:
commit:48fca046(commit 2026-04-07) - feat: quote-aware chain split + sysadmin tool whitelist (54.2% → 55.5%) — Three improvements that increase measurable Bash invocation coverage: 1. Quote-aware top-level chain split source:
commit:f6580598(commit 2026-04-07) - fix: command_class env stripping, skill validation, ssh/journalctl/kubectl diet rules — 1. command_class strips env prefixes and noise: - RUST_BACKTRACE=1 cargo test → “cargo test” source:
commit:f4220343(commit 2026-04-07) - feat: multi-mode adaptive compression with failure learning — New modules: - mode.rs: CompressionMode enum (basic/diet/nushell/lean-ctx/rtk/adaptive-expand) source:
commit:81475afc(commit 2026-04-07) - test: comprehensive tests for ccc and compress modules (319 → 386 tests) — ccc.rs: +20 tests covering edge cases for is_eligible (flags, whitespace, empty input), extract_pattern (no path, multiple flags, boundary length), source:
commit:448430e2(commit 2026-03-20) - feat(gdb): re-enable Pillar 2 GDB hook suggestion — - Add open_history_readonly() to db.rs (same pattern as heuristics) - Add count_recent_failures() to gdb.rs: queries failure_fix_pairs for source:
commit:a8428025(commit 2026-02-26) - fix(mining): correct summary counters and orphaned events on –force re-mine — Three bugs fixed: 1. mine_session returned Skipped for sessions with no Bash events even source:
commit:3ef089d8(commit 2026-02-22) - 1. Compiled Rust Binary vs Shell Script — Decision: Replace the
rtk-rewrite.shshell script hook with a compiled Rust binary (precc-hook). Alternatives considered: source:doc:ALTERNATIVES.md - 2. SQLite vs Key-Value Store — Decision: Use SQLite for both
history.dbandheuristics.db. Alternatives considered: source:doc:ALTERNATIVES.md - 3. Workspace of 4 Crates vs Monolith — Decision: Structure the project as a Cargo workspace with 4 crates:
precc-core,precc-hook,precc-cli,precc-learner. Alternatives considered: source:doc:ALTERNATIVES.md - 4. GDB Hook Integration vs Standalone CLI — Decision: Implement GDB debugging as a CLI command (
precc debug) rather than as an automatic hook rewrite. Alternatives considered: source:doc:ALTERNATIVES.md - 5. Background Daemon vs On-Demand Mining — Decision: Support both modes —
precc-learnerdaemon for continuous mining,precc ingestfor on-demand. Alternatives considered: source:doc:ALTERNATIVES.md - 6. Confidence Thresholds — Decision: Three-tier confidence system: auto-apply (≥ 0.7), suggest (0.3-0.7), hidden (< 0.3). Alternatives considered: source:
doc:ALTERNATIVES.md - 7. RTK Subsumption Strategy — Decision: Port RTK’s rewriting logic into
precc-coreas the final pipeline stage, rather than running both hooks in sequence. Alternatives considered: source:doc:ALTERNATIVES.md - 8. Skill Storage Format — Decision: TOML files for built-in skills, SQLite rows for mined/user skills. Alternatives considered: source:
doc:ALTERNATIVES.md - 9. Session Log Format — Decision: Read Claude Code’s native JSONL format directly rather than converting to a custom format. Rationale: Claude Code already writes detailed session logs in JSONL format at
~/.claude/projects/*/. Creating a custom format would mean: source:doc:ALTERNATIVES.md
時系列 KPI
| 指標 | 単位 | 最初 | 最新 | Δ | サンプル | 最新ソース |
|---|---|---|---|---|---|---|
at | x | 0.1 | 1.25 | +1.15 | 2 | commit:4f65556d |
build | ms | 3 | 480 | +477 | 2 | commit:f84bab49 |
hook | ms | 5 | 3 | -2 | 2 | commit:f81e4543 |
precc | tokens | 423 | 87 | -336 | 2 | commit:e3bc282e |
saved | ms | 4.8 | 6.3 | +1.5 | 2 | commit:ec17f16c |
セッション別の労力(トークン数トップ 10)
| セッション | 最初 → 最新 | メッセージ | 入力 | 出力 | キャッシュ書き込み | キャッシュ読み取り |
|---|---|---|---|---|---|---|
ebd81938 | 2026-04-04 → 2026-04-13 | 4517 | 4547 | 686622 | 24690950 | 1020430414 |
781fe484 | 2026-04-16 → 2026-04-17 | 1434 | 1341 | 603596 | 3739362 | 259708120 |
10175339 | 2026-03-28 → 2026-03-30 | 1318 | 1176 | 102469 | 2430047 | 110606429 |
5761d7ca | 2026-03-26 → 2026-03-28 | 1180 | 4363 | 137056 | 2196522 | 116605673 |
550c7bab | 2026-03-20 → 2026-03-22 | 1064 | 1466 | 104943 | 2059732 | 92991217 |
905ff169 | 2026-04-18 → 2026-04-19 | 650 | 1698 | 496929 | 1572668 | 63432376 |
d65ad15f | 2026-03-31 → 2026-04-04 | 752 | 558 | 78099 | 1845645 | 58334554 |
3b5e2947 | 2026-03-22 → 2026-03-23 | 1162 | 896 | 128068 | 1526203 | 102403205 |
0925455d | 2026-04-19 → 2026-04-19 | 440 | 830 | 262128 | 1226054 | 32943523 |
43541885 | 2026-03-31 → 2026-03-31 | 566 | 7353 | 82683 | 1096328 | 41667559 |
コマンドリファレンス
全PRECCコマンドの完全リファレンス。
precc init
PRECCを初期化し、Claude Codeにフックを登録します。
precc init
Options:
(none)
Effects:
- Registers PreToolUse:Bash hook with Claude Code
- Creates ~/.local/share/precc/ data directory
- Initializes heuristics.db with built-in skills
- Prompts for telemetry consent
precc ingest
セッションログから失敗-修正パターンをマイニングします。
precc ingest [FILE] [--all] [--force]
Arguments:
FILE Path to a session log file (.jsonl)
Options:
--all Ingest all session logs from ~/.claude/logs/
--force Re-process files that were already ingested
Examples:
precc ingest session.jsonl
precc ingest --all
precc ingest --all --force
precc skills
自動化スキルを管理します。
precc skills list
precc skills list
List all active skills (built-in and mined).
precc skills show
precc skills show NAME
Show detailed information about a specific skill.
Arguments:
NAME Skill name (e.g., cargo-wrong-dir)
precc skills export
precc skills export NAME
Export a skill definition as TOML.
Arguments:
NAME Skill name
precc skills edit
precc skills edit NAME
Open a skill definition in $EDITOR.
Arguments:
NAME Skill name
precc skills advise
precc skills advise
Analyze recent sessions and suggest new skills based on repeated patterns.
precc skills cluster
precc skills cluster
Group similar mined skills to identify redundant or overlapping patterns.
precc report
分析レポートを生成します。
precc report [--email]
Options:
--email Send the report via email (requires mail setup)
precc savings
トークン節約を表示します。
precc savings [--all]
Options:
--all Show detailed per-command breakdown (Pro)
precc compress
コンテキストファイルを圧縮してトークン使用量を削減します。
precc compress [DIR] [--dry-run] [--revert]
Arguments:
DIR Directory or file to compress (default: current directory)
Options:
--dry-run Preview changes without modifying files
--revert Restore files from backup
precc license
PRECCライセンスを管理します。
precc license activate
precc license activate KEY --email EMAIL
Arguments:
KEY License key (XXXX-XXXX-XXXX-XXXX)
Options:
--email EMAIL Email address associated with the license
precc license status
precc license status
Display current license status, plan, and expiration.
precc license deactivate
precc license deactivate
Deactivate the license on this machine.
precc license fingerprint
precc license fingerprint
Display the device fingerprint for this machine.
precc mail
メール機能。
precc mail setup
precc mail setup
Interactive SMTP configuration. Saves to ~/.config/precc/mail.toml.
precc mail report
precc mail report EMAIL
Send a PRECC analytics report to the specified email address.
Arguments:
EMAIL Recipient email address
precc mail send
precc mail send EMAIL FILE
Send a file as an email attachment.
Arguments:
EMAIL Recipient email address
FILE Path to the file to send
precc update
PRECCを最新バージョンに更新します。
precc update [--force] [--version VERSION] [--auto]
Options:
--force Force update even if already on latest
--version VERSION Update to a specific version
--auto Enable automatic updates
precc telemetry
匿名テレメトリを管理します。
precc telemetry consent
precc telemetry consent
Opt in to anonymous telemetry.
precc telemetry revoke
precc telemetry revoke
Opt out of telemetry. No further data will be sent.
precc telemetry status
precc telemetry status
Show current telemetry consent status.
precc telemetry preview
precc telemetry preview
Display the telemetry payload that would be sent (without sending it).
precc geofence
IPジオフェンスコンプライアンス(Pro)。
precc geofence check
precc geofence check
Check if the current machine is in an allowed region.
precc geofence refresh
precc geofence refresh
Refresh the IP geolocation cache.
precc geofence clear
precc geofence clear
Clear the geofence cache.
precc geofence info
precc geofence info
Display geofence configuration and current status.
precc gif
bashスクリプトからアニメーションGIFを録画(Pro)。
precc gif SCRIPT LENGTH [INPUTS...]
Arguments:
SCRIPT Path to a bash script
LENGTH Maximum recording duration (e.g., 30s, 2m)
INPUTS... Optional input lines for interactive prompts
Examples:
precc gif demo.sh 30s
precc gif interactive.sh 60s "yes" "my-project"
precc gha
失敗したGitHub Actionsの実行を分析(Pro)。
precc gha URL
Arguments:
URL GitHub Actions run URL
Example:
precc gha https://github.com/org/repo/actions/runs/12345678
precc cache-hint
現在のプロジェクトのキャッシュヒント情報を表示します。
precc cache-hint
precc trial
Proトライアルを開始します。
precc trial EMAIL
Arguments:
EMAIL Email address for the trial
precc nushell
PRECC統合のNushellセッションを起動します。
precc nushell
よくある質問
PRECCは安全ですか?
はい。PRECCはClaude Code公式のPreToolUseフックメカニズムを使用しています。Anthropicがまさにこの目的のために設計した拡張ポイントです。フックは:
- 完全にオフラインで動作(ホットパスでのネットワーク呼び出しなし)
- 5ミリ秒未満で完了
- フェイルオープン:問題が発生した場合、元のコマンドがそのまま実行される
- コマンドを変更するだけで、自ら実行することはない
- データはローカルのSQLiteデータベースに保存
PRECCは他のAIコーディングツールで動作しますか?
PRECCはClaude Code専用に設計されています。Claude Codeが提供するPreToolUseフックプロトコルに依存しています。Cursor、Copilot、Windsurf、その他のAIコーディングツールでは動作しません。
テレメトリはどのようなデータを送信しますか?
テレメトリはオプトインのみです。有効にすると送信されるもの:
- PRECCバージョン、OS、アーキテクチャ
- 集計カウント(インターセプトされたコマンド、アクティブ化されたスキル)
- 平均フックレイテンシ
コマンドテキスト、ファイルパス、プロジェクト名、個人を特定できる情報は送信しません。オプトイン前に precc telemetry preview で正確なペイロードを確認できます。詳細はテレメトリを参照。
PRECCをアンインストールするには?
??faq_uninstall_a_intro??
-
フック登録を削除:
# Delete the hook entry from Claude Code's settings # (precc init added it; removing it disables PRECC) -
バイナリを削除:
rm ~/.local/bin/precc ~/.local/bin/precc-hook ~/.local/bin/precc-learner -
データを削除(任意):
rm -rf ~/.local/share/precc/ rm -rf ~/.config/precc/
ライセンスが期限切れになりました。どうなりますか?
PRECCはCommunityティアに戻ります。すべてのコア機能は引き続き動作します:
- 組み込みスキルはアクティブのまま
- フックパイプラインは正常に動作
precc savingsはサマリービューを表示precc ingestとセッションマイニングは動作
Pro機能は更新まで利用できなくなります:
precc savings --all(詳細な内訳)precc compressprecc gifprecc ghaprecc geofence- メールレポート
フックが動作していないようです。どうやってデバッグしますか?
??faq_debug_a_intro??
-
フックが登録されていることを確認:
precc init -
フックを手動でテスト:
echo '{"tool_input":{"command":"cargo build"}}' | precc-hook -
バイナリがPATHにあることを確認:
which precc-hook -
~/.claude/settings.jsonのClaude Codeフック設定を確認。
PRECCはClaude Codeを遅くしますか?
いいえ。フックは5ミリ秒未満(p99)で完了します。Claudeが推論と応答生成に費やす時間と比べると知覚できません。
CI/CDでPRECCを使用できますか?
PRECCはインタラクティブなClaude Codeセッション向けに設計されています。CI/CDでは、フックするClaude Codeインスタンスがありません。ただし、precc gha はどの環境からでも失敗したGitHub Actionsの実行を分析できます。
マイニングされたスキルと組み込みスキルはどう違いますか?
組み込みスキルはPRECCに同梱され、一般的な間違ったディレクトリパターンをカバーします。マイニングされたスキルはあなたの特定のセッションログから学習されます。両方ともSQLiteに保存され、フックパイプラインで同一に評価されます。
スキルをチームと共有できますか?
はい。precc skills export NAME でスキルをTOMLにエクスポートしてファイルを共有できます。チームメンバーは skills/ ディレクトリに配置するか、ヒューリスティクスデータベースにインポートできます。