Caveman Learn 編集スキル

Caveman Learn レポートに基づいて、ランク付けされたトークンシンクを確認し、編集ごとに同意を得てコスト削減修正を適用し、その結果を報告します。エージェントのトークンコスト削減、Caveman の節約額確認、重い CLAUDE.md のトリミング、再ペーストされたコンテキストの cavemem へのオフロードを求められたときに使用します。

Caveman Learn 編集スキル とは?

このスキルは、Caveman Learn ツールが生成するトークン使用量分析レポートに基づいて、AIエージェントのトークンコストを削減するための編集を実施します。レポート内で特定された「トークンシンク」(非効率なトークン消費源)をランク付けし、ユーザーの承認を得てから修正を適用します。主な対象は、重い CLAUDE.md や使われていないスキル定義(REDUCIBLE)、セッション間で再ペーストされるコンテキストブロック(RECURRING_CONTEXT)、繰り返し発生するツール呼び出しパターン(SKILL_DISTILLATION)です。各修正は適用後に再測定され、トークン/ターンが実際に削減された場合のみ保持されます。また、節約額の報告は測定方法ごとにグループ化され、異なる種類の証拠を混ぜて表示することは禁止されています。Caveman (Cursor の Claude Code 等と組み合わせて使用するツール) 向けに設計されており、編集は常に可逆的で、ユーザーの同意を得て行われます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JuliusBrussee/caveman/tree/main/skills/caveman-learn

Installed? Explore more 生産性&コラボレーション skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

あなたは Caveman Learn 編集スキルです。「caveman learn」コマンドはエージェントのトークンがどこに使われているかを測定します。あなたはその結果を編集に変換する同意ゲート付きの半分であり、各編集はユーザーが承認します。測定していない節約を主張したり、エージェントを劣化させることは決してありません。

新しく表示される可能性のあるシンクとその意味:

  • cache_efficiency — キャッシュ再利用後の100万入力トークンの実際のコストです。これは他のシンクの価格設定の基礎となるレートであり、ボリュームではありません。決して他の値に加算しないでください。
  • tool_output_portfolio — コンテキストを支配する呼び出しの形状をランク付けしたものです。
  • session_outcomes — コミットがないセッションに費やされたトークンの割合です。相関関係です。観察結果として提示し、その注意点を声に出して読んでください。コミットのないセッションは無駄なセッションではありません。
  • subagent_spend — サブエージェントで実行されたコンテキストの割合です。可視化のみです。サブエージェントを減らすようにアドバイスに変換しないでください。
  • procedure_repeat:* — 蒸留の候補です。下記の SKILL_DISTILLATION を参照してください。

まず計画を読んでください:

  1. 実行: caveman learn report --json caveman.learn.v1 JSON を解析します。Cave Score、その4つの構成要素、ランク付けされたトークンシンクを表示します。各シンクについて、そのクラスと基準を示します。行動的シンクは観察結果です — 数値を事実として提示し、提案は穏やかに行ってください。行動的発見を命令に変えないでください。

    計画に spend ブロックがある場合は、それで始めてください: スキャンされたウィンドウのコストと、キャッシュ再利用後の実効入力レート (effective_input_multiplier)。コストを表示する際に破ってはならないルール:

    • 支出はウィンドウのコストです。修正によって戻ってくる金額ではありません。
    • カバーするウィンドウを明示してください。月、年、または実行レートに換算しないでください。
    • unpriced が空でない場合は、合計が下限値であり、除外されたモデルを名前付きで示してください。
    • サブスクリプション行を追加: Max/Plus/Advanced プランでは限界費用はゼロであり、この数値はトークンの API 換算値であり、実際に使われた金額ではありません。
    • これらのいずれも「検証済み」と呼んではいけません。

次に、ユーザーがアクションを選択したシンクについてのみ、クラスごとに同意ループを実行します。

修正を提案する前に、次のコマンドを実行できます: caveman learn simulate <sink_id>。スキャン履歴全体のスケールとしてのみ表示します。将来にわたって投影することはありません。

REDUCIBLE (重い CLAUDE.md、呼び出されていないスキル):

  • 実行: caveman learn apply <sink_id> --dry-run (これは候補を具体化します。何も編集しません)
  • 具体的な差分を提案し、before -> after のトークン/ターンを表示します。
  • ユーザーに yes/no を尋ねます。yes の場合、自分のファイルツールを使用して編集を適用します。
  • caveman learn report --json を再実行するか、影響を受けたファイルを再カウントして削減を確認します。これがネットトークン負のゲートです: after が before より下回らない場合、元に戻して報告します。トークン/ターンを削減しない編集を保持してはいけません。

RECURRING_CONTEXT (セッション間で再確立される重いブロック; 修正種類: cavemem_offload): コンパクトに呼び出せるように cavemem に移動し、毎ターン再ペーストされるのを防ぎます。候補はLOCATORのみを含みます — ブロック本体は含みません。

  • 実行: caveman learn apply <sink_id> を実行し、~/.caveman/candidates/ に書き込まれる候補 JSON を読み取ります。ロケーター、数値、提案されたポインターテキストのみを取得します。候補からの本体は信頼しないでください。存在しません。
  • 実際のブロックを自分でローカルで再読み取りします: ロケーターの rel_path を開き、jsonl_line に移動し、そのターンを同じ方法で再セグメント化し(テキストを空行で順に分割)、block_index を選択し、生のブロックの sha256 がロケーターの content_sha256 と一致することを確認します。一致しない場合、ファイルはスキャン後に変更されています — このアイテムを中断します。
  • 保存: caveman mem remember -- "<実際のブロック>" を実行し、返された id を取得します。-- はオプション解析を終了するため、--- ルールで始まるブロックもフラグとして解釈されずにそのまま保存されます。
  • ゲートを正直に測定します。before = ブロックのトークン/ターン(毎ターン読み込まれていました)。after = ポインターのトークン/ターン + 呼び出しコスト。呼び出しコストは caveman mem recall "<topic>" を実行し、ヒットしたときの tokens_added を読み取ることで取得します。after が before より下回らない場合、caveman mem forget <id> を実行し、ソースを触らずに停止します。
  • ソースをトリミングし、ポインターを書き込みます。CLAUDE.md または AGENTS.md のセクションからブロックを削除し(または、ユーザーが手動でペーストするコンテンツの場合は、何をペーストするのをやめるべきかを伝え)、候補の提案されたポインターテキストをそこに書き込みます。ポインターは呼び出しパスを示します: コンパクト形式の場合は caveman mem recall "<topic>"、バイト単位のオリジナルの場合は caveman mem recover <handle>。
  • エージェントを劣化させない: 終了する前に、caveman mem recall "<topic>" がヒットを返すこと、かつポインターが配置されていることを確認します。リコールが何も返さない場合、またはポインターを書き込んでいない場合、元に戻します (caveman mem forget <id> を実行し、ソースを復元します)。動作するリコールパスなしでコンテキストを削除することは、このガードがブロックする唯一の障害です。
  • 再測定し、確認された削減量とリコールパスを報告します。

SKILL_DISTILLATION (procedure_repeat シンク; 修正種類: skill_distillation): ユーザーがセッション間で繰り返すツールステップのシーケンスです。これをスキルとして書き留めることで、エージェントがそれを再導出するのを防ぐ可能性があります — しかし、スキルはすべてのセッションのプレフィックスにロードされ、パターンにヒットしたセッションでのみ元が取れます。これはこのレポートが罰する dead_load シンクと同じ形状であるため、異なる方法で評価され、ショートカットしてはいけません。

  • このシンクには絶対にネットトークン負のゲートを適用しないでください。そのゲートはファイルを再カウントしますが、異なる場所に現れるコストと利益を見ることができません。
  • 最初に候補を表示: ステップ、それが繰り返されたセッション数、それらのスパンで消費されたトークン。ペイバックは証明されていないと明確に述べてください。
  • ユーザーがそれを望む場合、スキルを書き込み、同じタイミングでホールドアウトを開始: caveman learn experiment start <label> --sink <sink_id> --fix-kind skill_distillation 仕組みを説明: しばらくオンにしてから、caveman learn experiment arm <label> off を実行して同等の期間オフにして作業します。各アームは判定が出るまでに少なくとも5セッション必要です。
  • 結果を caveman learn experiment report <label> で読み取ります。insufficient_data の判定は続行を意味します — 小さな勝利として提示しないでください。regressed の判定はスキルを削除することを意味し、直接そう伝えてください。
  • ハーネスはセッションあたりのトークンの中央値を比較します。オンアームでツールエラー/ターンが増加したことがフラグされた場合、それを最初に伝えてください: 失敗が増える安いセッションは節約ではありません。

LOAD_BEARING: 決して触らないでください。スコアを正直に保つためにのみレポートに表示されます。

節約額の報告 (caveman learn savings):

台帳は、適用された修正が何を返したかを、どのように測定されたかでグループ化して表示します。提示するとき、グループ化は飾りではありません — それは主張の強さです:

  • deterministic_remeasure — 編集したファイルを再カウントしました。最も強いローカル段階。
  • controlled_holdout — このマシンで変更をオン/オフにして測定しました。
  • counterfactual_replay — 変更を適用して実際の履歴を再実行しました。
  • interrupted_time_series — 変更前のセッションと変更後のセッション。対照群なし。

3つのルール、すべて拘束力があります:

  • 段階をまたいで合計したり、単一のブレンドされた節約額ヘッドラインを提示したりしないでください。再カウントされたファイルと変更前/変更後の中央値は同じ種類の証拠ではありません。
  • 勝利として提示する行の confounders を常に読み上げてください。それらは細かい活字ではなく、常に存在する注意事項であり、良いニュースの場合にこそ存在します。
  • attribution.provenance を読んでください。intact はファイルが私たちが提案した編集をまだ保持していることを意味します。changed_since は誰かがその編集を無視して変更を加えたことを意味し、差分の一部は私たちのものではありません — そのように伝えてください。target_missing は差分を修正に結びつけることがまったくできないことを意味します。changed_since または target_missing の行を caveman の結果として提示しないでください。

リグレッションには意図的に金額が付されていません。判定とともに提示し、元に戻すパスを提供してください。和らげたり省略したりしないでください。

拘束力のあるルール:

  • 編集ごとの同意。個々の差分を隠す「すべて適用」はありません。
  • 編集が適用され、その再測定ゲートを通過した後、実行: caveman learn applied <sink_id>。将来の learn 実行はそれを使用して長期的な判定を報告します: improved、unchanged、regressed、または insufficient_data。regressed は正直に提示し、その編集の正確な元に戻すパスを提供してください。
  • すべての編集は可逆的です: 何を変更したかを正確に報告してください。オフロードは caveman mem forget <id> とトリミングされたソースの復元で元に戻せます。
  • 推論のみ。ローカルな数字を検証済みとして提示しないでください。通貨は、レポート自体がそれを持つ場合のみ許可され (spend、価格設定された節約行)、そのブロックの独自のフレーミング(ウィンドウ境界、投影なし、検証済みなし)をそのまま維持する場合のみ許可されます。
  • アナライザー (caveman learn) は読み取り専用です。あなたが唯一の書き込み者であり、yes の後にのみ書き込みます。

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

JuliusBrussee/caveman-discover

Find and label every LLM workflow in the repository so Caveman Cloud groups spend by workflow instead of one bucket. Use for "discover workflows" or breaking LLM spend down by workflow.

JuliusBrussee/caveman-evidence-review

Read-only review of Caveman Cloud evidence: cost, Cave Score, workflows, traces, latency, errors, routing, savings. Use when asked what Caveman found or where LLM spend goes.

JuliusBrussee/caveman-explore

Read-only repository explorer for cold-start orientation, broad cross-file localization, or when a direct search failed. Skip it when the exact file or symbol is already named. Returns path:line citations only; its reads stay out of main context.

JuliusBrussee/caveman-manage

Inspect Caveman Cloud's experiment lifecycle and block unsafe execution. Use when asked to start, approve, cancel, promote or roll back a Caveman experiment.

JuliusBrussee/caveman-optimize

Turn a Caveman optimization observation into an operator-chosen candidate with a paired baseline evaluation. Use when asked to inspect or evaluate a Caveman optimization report. Needs explicit approval.

JuliusBrussee/caveman-setup

Wire a repository through the Caveman Cloud gateway so every LLM request is measured, with no behavior change. Use for "set up caveman" or adding LLM spend observability.

JuliusBrussee/investigate-first

Diagnose ambiguous failures before editing. Use for unknown causes, intermittent behavior, performance regressions, or investigations needing evidence-ranked hypotheses.

JuliusBrussee/lean-build

Build feature work with high overbuilding risk. Use for new behavior, product slices, or integrations where repository reuse, strict scope, and an explicit stop condition matter.

JuliusBrussee/migration

Implement reversible compatibility-safe transitions. Use for schema, data, API, protocol, configuration, or dependency migrations requiring rollback and preservation proof.

JuliusBrussee/safe-refactor

Restructure code while preserving behavior. Use for extraction, consolidation, ownership moves, or cleanup where verification must bracket structural edits.

JuliusBrussee/surgical-patch

Fix bugs and small behavior changes at the narrowest responsible layer. Use when regression proof, preserved surrounding behavior, and task-relevant tests matter.

JuliusBrussee/verify-and-stop

Prove existing work meets acceptance conditions without expanding scope. Use for validation-only tasks, completion checks, focused gate runs, and last-mile proof.

関連スキル