caveman-compress について
Caveman Compress は、自然言語のメモや設定ファイルを圧縮し、入力トークンを減らすコマンドラインスキルです。コードや技術的な内容を保ち、結果を検証してから元ファイルを上書きし、読みやすいバックアップを保存します。
主な機能
- 01対応する自然言語ファイルの圧縮
- 02コードと技術的内容の保持
- 03圧縮結果の検証
- 04検証エラーに対する修正の再試行
- 05読みやすい元ファイルのバックアップ
活用シーン
- 01CLAUDE.md のトークン削減
- 02ToDo や設定ファイルの短縮
- 03埋め込みコードを保った文章圧縮
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ karnonson/ caveman --skill caveman-compressインストール後、Claude Code で/caveman-compressを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdSECURITY.mdscripts/__init__.py__main__.pybenchmark.pycli.pycompress.pydetect.pyvalidate.py詳細
Caveman Compress
目的
自然言語ファイル(CLAUDE.md、todos、preferences)を洞窟人風の話し方に圧縮し、入力トークンを削減します。圧縮版で元のファイルを上書きします。人が読めるバックアップは <filename>.original.md として保存されます。
実行条件
/caveman-compress <filepath>、またはユーザーからメモリファイルの圧縮を依頼された場合。
処理
-
圧縮スクリプトは
scripts/(この SKILL.md と同じ階層)にあります。パスがすぐに見つからない場合は、この SKILL.md と同じ階層にあるscripts/__main__.pyを検索します。 -
この SKILL.md があるディレクトリから、次を実行します。
python3 -m scripts <absolute_filepath>
- CLI は次の処理を行います。
- ファイルの種類を検出します(トークンは消費しません)
- Claude を呼び出して圧縮します
- 出力を検証します(トークンは消費しません)
- エラーがある場合:Claude で該当箇所だけを修正します(対象を絞った修正のみ。再圧縮はしません)
- 最大 2 回再試行します
- 2 回再試行しても失敗する場合:エラーをユーザーに報告し、元のファイルには手を加えません
- 結果をユーザーに返します
圧縮ルール
削除するもの
- 冠詞:a、an、the
- つなぎ言葉:just、really、basically、actually、simply、essentially、generally
- 丁寧な表現:「sure」、「certainly」、「of course」、「happy to」、「I'd recommend」
- 断定を避ける表現:「it might be worth」、「you could consider」、「it would be good to」
- 冗長な表現:「in order to」→「to」、「make sure to」→「ensure」、「the reason is because」→「because」
- 不要な接続語:「however」、「furthermore」、「additionally」、「in addition」
完全に保持するもの(変更禁止)
- コードブロック(フェンス付き ``` およびインデント形式)
- インラインコード(
バッククォート内の内容) - URL とリンク(完全な URL、Markdown リンク)
- ファイルパス(
/src/components/...、./config.yaml) - コマンド(
npm install、git commit、docker build) - 技術用語(ライブラリ名、API 名、プロトコル、アルゴリズム)
- 固有名詞(プロジェクト名、人名、企業名)
- 日付、バージョン番号、数値
- 環境変数(
$HOME、NODE_ENV)
構造を保持する
- すべての Markdown 見出し(見出しのテキストはそのままにし、その下の本文を圧縮)
- 箇条書きの階層(ネストのレベルを維持)
- 番号付きリスト(番号を維持)
- 表(セルのテキストを圧縮し、構造を維持)
- Markdown ファイルの Frontmatter/YAML ヘッダー
圧縮する
- 短い同義語を使います:「extensive」ではなく「big」、「implement a solution for」ではなく「fix」、「utilize」ではなく「use」
- 断片的な表現も使用できます:「You should always run tests before committing」ではなく「Run tests before commit」
- 「you should」、「make sure to」、「remember to」は削除し、行動だけを記述します
- 同じ内容を別の表現で述べた箇条書きはまとめます
- 同じパターンを示す例が複数ある場合は、1 つだけ残します
重要なルール:
... の中身はすべて、完全にそのままコピーすること。
次のことは禁止です。
- コメントの削除
- 空白の削除
- 行の並べ替え
- コマンドの短縮
- 内容の簡略化
インラインコード(...)も完全にそのまま保持すること。
バッククォート内の内容は変更しないこと。
ファイルにコードブロックが含まれている場合:
- コードブロックは読み取り専用領域として扱います
- ブロック外のテキストだけを圧縮します
- ブロックをまたいでセクションをまとめません
パターン
原文:
メインブランチに変更をプッシュする前に、必ずテストスイートを実行してください。これは、早期にバグを発見し、本番環境への壊れたビルドのデプロイを防ぐのに役立つため重要です。
圧縮後:
メインにプッシュする前にテストを実行。バグを早期に発見し、本番環境への壊れたデプロイを防止。
原文:
アプリケーションは、以下のコンポーネントで構成されるマイクロサービスアーキテクチャを採用しています。API ゲートウェイは、すべての受信リクエストを処理し、適切なサービスにルーティングします。認証サービスは、ユーザーセッションと JWT トークンを管理します。
圧縮後:
マイクロサービスアーキテクチャ。API ゲートウェイがすべてのリクエストをサービスにルーティング。認証サービスがユーザーセッションと JWT トークンを管理。
対象範囲
- 自然言語ファイル(.md、.txt、.typ、.typst、.tex、拡張子なし)のみを圧縮します
- .py、.js、.ts、.json、.yaml、.yml、.toml、.env、.lock、.css、.html、.xml、.sql、.sh は絶対に変更しません
- ファイルに文章とコードが混在している場合は、文章のセクションのみを圧縮します
- コードか文章か判断できない場合は、変更せずに残します
- 上書きする前に、元のファイルを FILE.original.md としてバックアップします
- FILE.original.md は圧縮しないでください(スキップしてください)