eli5-compress について
eli5-compressは、メモリ文書などの自然言語ファイルを簡潔にするエージェントスキルです。単に切り詰めるのではなく意味を保ち、元ファイルもバックアップします。
主な機能
- 01自然言語ファイルの簡潔化と圧縮
- 02意味とコード内容の保持
- 03元ファイルを.original.mdとして保存
- 04出力の検証と対象を絞った修正
活用シーン
- 01CLAUDE.mdの短縮
- 02ToDoや設定ファイルの圧縮
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nathanksou/ eli5 --skill eli5-compressインストール後、Claude Code で/eli5-compressを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdscripts/__init__.py__main__.pybenchmark.pycli.pycompress.pydetect.pyvalidate.py詳細
ELI5 圧縮
目的
自然言語ファイル(CLAUDE.md、todo、設定)を平易で簡単な言葉に圧縮し、入力トークンを減らします。単に切り詰めるのではなく、内容を簡潔にします。圧縮後の内容で元のファイルを上書きします。人が読めるバックアップは <filename>.original.md として保存します。
起動方法
/eli5-compress <filepath> を実行するか、ユーザーからメモリファイルの圧縮や簡略化を求められたときに実行します。
手順
-
この SKILL.md は、同じディレクトリ内の
scripts/と並んでいます。そのディレクトリを見つけます。 -
次を実行します。
cd <directory_containing_this_SKILL.md> && python3 -m scripts <absolute_filepath> -
CLI は次の処理を行います。
- ファイルの種類を検出する(トークンは使用しません)
- Claude に簡略化と圧縮を依頼する
- 出力を検証する(トークンは使用しません)
- エラーがある場合:Claude で該当箇所だけを修正する(対象を絞った修正のみ。再圧縮はしません)
- 最大 2 回まで再試行する
-
結果をユーザーに返します。
圧縮ルール
削除するもの
- 埋め草: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"
- 過度に形式ばった表現:"ensure that" → "make sure"、"utilize" → "use"
- 不要な接続表現:"however"、"furthermore"、"additionally"、"in addition"
簡略化するもの
- 専門用語が多い文は、平易な言い回しに書き換えます。
- できるだけ日常的な言葉を使います。
- 意味は変えず、簡潔に表現します。
必ずそのまま保持するもの(変更禁止)
- コードブロック(フェンス付き ``` とインデント形式)
- インラインコード(
バッククォート内の内容) - URL とリンク(完全な URL、Markdown リンク)
- ファイルパス(
/src/components/...、./config.yaml) - コマンド(
npm install、git commit、docker build) - 技術用語(ライブラリ名、API 名、プロトコル、アルゴリズム)
- 固有名詞(プロジェクト名、人名、企業名)
- 日付、バージョン番号、数値
- 環境変数(
$HOME、NODE_ENV)
構造を保持する
- Markdown の見出し(見出しのテキストはそのままにし、下の本文を簡略化します)
- 箇条書きの階層(ネストのレベルを維持します)
- 番号付きリスト(番号を維持します)
- 表(セルのテキストを簡略化し、構造を維持します)
- Markdown ファイルのフロントマター/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 つだけ残します。
重要なルール:
... の中身はすべて、完全にそのままコピーします。
次のことは禁止です。
- コメントの削除
- 空白の削除
- 行の並べ替え
- コマンドの短縮
- 内容の簡略化
インラインコード(...)も完全にそのまま保持します。
バッククォート内の内容は変更しないでください。
ファイルにコードブロックが含まれる場合:
- コードブロックは読み取り専用の範囲として扱います。
- コードブロックの外側だけを圧縮します。
- コードブロックを挟んだセクション同士をまとめないでください。
例
原文:
メインブランチに変更をプッシュする前に、必ずテストスイートを実行するようにしてください。早い段階でバグを見つけ、壊れたビルドが本番環境にデプロイされるのを防げるため、これは重要です。
簡略化:
メインにプッシュする前にテストを実行します。バグを早期に見つけ、壊れたビルドが本番環境に届くのを防ぎます。
原文:
高い同時実行性のもとでリソースが枯渇するのを防ぐため、適切なタイムアウトパラメーターを使ってデータベースの接続プーリングを設定してください。
簡略化:
適切なタイムアウトを設定してデータベースの接続プールを用意し、負荷が高いときに接続が枯渇しないようにします。
対象範囲
- 自然言語ファイル(.md、.txt、.markdown、.rst、拡張子なし)のみを圧縮してください
- .py、.js、.ts、.json、.yaml、.yml、.toml、.env、.lock、.css、.html、.xml、.sql、.sh は絶対に変更しないでください
- ファイルに文章とコードが混在している場合は、文章の部分のみを圧縮してください
- コードか文章か判断できない場合は、変更せずにそのままにしてください
- 上書き前に、元のファイルを FILE.original.md としてバックアップしてください
- FILE.original.md は絶対に圧縮しないでください(スキップしてください)