mcpField
C
caveman-compress

caveman-compress

github.com/rheinmirエージェントワークフロー10263 回インストール2 週間前に更新
リポジトリ

caveman-compress について

caveman-compressは、CLAUDE.mdやTODO、設定などの自然言語ファイルを圧縮するエージェントスキルです。コードや技術情報を維持し、元ファイルをバックアップしたうえで、置き換え前に結果を検証します。

主な機能

  1. 01自然言語ファイルの圧縮
  2. 02コードと技術情報の保持
  3. 03人が読める元ファイルの保存
  4. 04結果の検証と限定的な修正

活用シーン

  1. 01CLAUDE.mdのトークン削減
  2. 02TODOや設定ファイルの圧縮

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rheinmir/setup --skill caveman-compress

インストール後、Claude Code で/caveman-compressを入力して読み込まれたか確認します。

詳細

Caveman Compress

目的

自然言語ファイル(CLAUDE.md、todos、preferences)を洞窟人風の話し方に圧縮し、入力トークンを削減します。圧縮版で元のファイルを上書きします。人が読めるバックアップは <filename>.original.md として保存されます。

実行条件

/caveman-compress <filepath>、またはユーザーからメモリファイルの圧縮を依頼された場合。

処理

  1. 圧縮スクリプトは scripts/(この SKILL.md と同じ階層)にあります。パスがすぐに見つからない場合は、この SKILL.md と同じ階層にある scripts/__main__.py を検索します。

  2. この SKILL.md があるディレクトリから、次を実行します。

python3 -m scripts <absolute_filepath>

  1. CLI は次の処理を行います。
  • ファイルの種類を検出します(トークンは消費しません)
  • Claude を呼び出して圧縮します
  • 出力を検証します(トークンは消費しません)
  • エラーがある場合:Claude で該当箇所だけを修正します(対象を絞った修正のみ。再圧縮はしません)
  • 最大 2 回再試行します
  • 2 回再試行しても失敗する場合:エラーをユーザーに報告し、元のファイルには手を加えません
  1. 結果をユーザーに返します

圧縮ルール

削除するもの
  • 冠詞: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 は絶対に圧縮しないでください(スキップします)

出力レポート

スキルの主なタスクがすべて完了したら、Wiki にドラフト案を書き込みます。

手順

1. ファイル名を作成する:

  • 形式:DDMMYY-<ten>.md
  • DDMMYY = 今日の日付(例:2026 年 6 月 2 日なら 020626)
  • <ten> = 実施内容を要約した、ケバブケースの 2~4 語(例:landing-page-coteccons、brand-kit-fintech、ingest-auth-spec)

2. llmwiki/wiki/draft/cave/DDMMYY-<ten>.md に書き込みます。

# DDMMYY-<ten>
**Type:** draft
**Status:** proposed
**Tags:** <skill-name>, output-report
**Proposed:** YYYY-MM-DD

## What
<One sentence — what this skill invocation produced or decided>

## Output
<Key artefacts, files created/modified, or decisions made>

## Files
| File | Action |
|------|--------|
| `path/to/file` | created / modified |

## Notes
- Invoked via: `/<skill-name>` skill

## Origin
- **Draft:** `wiki/draft/cave/DDMMYY-<ten>.md`
- **Commit:** _(filled by verify-before-commit)_
- **Date promoted:** _(filled by verify-before-commit)_

3. Wiki のインデックスとログを更新する:

  • llmwiki/wiki/index.md — 次の 1 行を追加します:| [DDMMYY-<ten>](draft/cave/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |
  • llmwiki/wiki/log.md — 次の行を追加します:## YYYY-MM-DD — <skill-name> — <ten>

スキルによって成果物も判断事項も一切生じない場合(例:/caveman-stats のような表示専用モード)のみ、スキップしてください。

コメント