mcpField
O
optimize-prompt-token-efficiency

optimize-prompt-token-efficiency

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

optimize-prompt-token-efficiency について

CLAUDE.md、スキル、仕様書などのプロンプトを、意味を保ちながら短縮するスキルです。検証結果に基づいて反復的に修正し、確認後に元ファイルを置き換えます。

主な機能

  1. 01編集前の検証
  2. 02検証結果に基づく圧縮
  3. 03意味の保持を再検証
  4. 04最大5回の反復
  5. 05検証後に元ファイルを置換

活用シーン

  1. 01冗長なCLAUDE.mdの短縮
  2. 02エージェントプロンプトのトークン削減
  3. 03スキルや仕様書の圧縮

インストール

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

$npx skills add https://github.com/doodledood/claude-code-plugins --skill optimize-prompt-token-efficiency

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

詳細

プロンプトのトークン効率を最適化する

検証ループを通じて情報密度を最大化し、プロンプトのトークン効率を反復的に最適化します。主な目標: AI が消費するプロンプト(CLAUDE.md、スキル、エージェントプロンプト、仕様書)のすべての意味内容を保持しつつ、トークン消費量を削減することです。

概要

このスキルは、冗長なプロンプトをトークン効率の高いバージョンへと次の流れで変換します:

  1. まず検証 - prompt-token-efficiency-verifier が変更を加える前に非効率性をチェックします
  2. 最適化 - 検証者のフィードバックに基づいて対象を絞った圧縮を適用します
  3. 再検証 - 圧縮がロスレスであることを検証し、問題が残る場合は反復します(最大 5 回)
  4. 出力 - 検証に合格した後にのみアトミックに置き換えます

ループ: 読み込み → 検証 → (効率的なら終了) → フィードバックに基づいて最適化 → 再検証 → (問題があれば反復) → 出力

重要な原則: 一度のパスで最適化しようとしないでください。検証者がすべての変更を主導します - 非効率性が見つからなければ、そのプロンプトはすでにトークン効率が高いということです。

ワークフロー

フェーズ 0: タスクリストの作成(すぐにタスク管理を使用する)

ワークフローのフェーズを追跡する todo を作成します。リストは作業領域を反映するものであり、固定された手順ではありません。

開始時の todo:

- [ ] Input validation
- [ ] Initial verification
- [ ] (Expand: optimization iterations on INEFFICIENCIES_FOUND)
- [ ] Output optimized prompt
フェーズ 1: 入力の検証

「入力の検証」todo を in_progress にマークします。

ステップ 1.1: 引数の解析

$ARGUMENTS からファイルパスを抽出します。パスが指定されていない場合は、使用方法を示してエラーにします。

ステップ 1.2: ファイルの検証

  • Read ツールを使用してファイルが存在するか確認します
  • 対応する型を検証します: .md、.txt、.yaml、.json
  • 対応していない場合はエラー: 「対応していないファイル形式です。対応形式: .md、.txt、.yaml、.json」

ステップ 1.3: 元の内容の読み込みと計測

  • ファイルの内容を読み込みます
  • トークン数を推定します: Math.ceil(content.length / 4)(概算)
  • 比較用に元の内容とトークン数を保存します

ステップ 1.4: メタデータの保存

  • original_path: ソースファイルのパス
  • original_content: プロンプトの全文
  • original_tokens: 推定トークン数
  • working_path: 反復用の /tmp/optimized-efficiency-{timestamp}.{ext}

「入力の検証」todo を completed にマークします。

フェーズ 2: 初回の検証

「初回の検証」todo を in_progress にマークします。

ステップ 2.1: 作業パスへのコピー

Write ツールを使用して元の内容を作業パスにコピーします(検証にはファイルパスが必要です)。

ステップ 2.2: まず検証者を実行する

最適化を一切行う前に、Task ツールを介して prompt-token-efficiency-verifier エージェントを起動します:

  • subagent_type: "prompt-engineering:prompt-token-efficiency-verifier"
  • prompt: "Verify prompt token efficiency. File: {working_path}. Check for redundancy, verbose phrasing, filler words, structural inefficiencies, and compression opportunities. Report VERIFIED if already efficient, or INEFFICIENCIES_FOUND with specific details."

ステップ 2.3: 検証者の応答の処理

  • 「VERIFIED」の場合: todo を completed にマークし、メッセージ「プロンプトはすでにトークン効率が高いです。変更は不要です。」とともにフェーズ 4(出力)へ直接進みます
  • 「INEFFICIENCIES_FOUND」の場合: todo を completed にマークし、問題リストを保存し、「最適化の反復 1」todo を追加してフェーズ 3 へ進みます
  • 検証者が失敗した、または予期しない形式を返した場合: 同一のパラメータで一度だけ再試行します。再試行が失敗した場合はエラーを報告します: 「検証に失敗しました - 検証者なしでは続行できません。」

ステップ 2.4: 検証者の検出結果の表示

非効率性が見つかった場合は、ユーザーに概要を表示して続行します:

Verifier found {count} token efficiency issues. Proceeding with optimization...

「初回の検証」todo を completed にマークします。

フェーズ 3: 最適化ループ (検証エージェント駆動)

「最適化イテレーション 1」の todo を in_progress にマークします。

重要な原則: すべての修正は検証エージェントのフィードバックに基づいて行います。プロンプトを独自に分析しないでください。検証エージェントが報告した特定の非効率性のみを修正します。

1 から 5 までの各イテレーションについて:

  1. 検証エージェントのフィードバックから圧縮を適用: 検証エージェントのレポートにある各非効率性について、提案された圧縮を適用します。最適化されたバージョンを working_path に書き込みます。

    • 検証エージェントが特定した非効率性のみを修正してください。独自の改善を追加しないでください
  2. 再検証: Task ツール経由で prompt-token-efficiency-verifier エージェントを起動します:

    • subagent_type: "prompt-engineering:prompt-token-efficiency-verifier"
    • prompt: "圧縮がロスレスであることを検証してください。元のファイル: {original_path}。圧縮ファイル: {working_path}。意味内容を比較し、欠落した事実、変更された意味、失われた強調、削除されたニュアンスがないか確認してください。ロスレスであれば VERIFIED、具体的な欠落があれば ISSUES_FOUND を報告してください。"
  3. 応答の処理:

    • 「VERIFIED」の場合: todo を完了としてマークし、ループを終了して、フェーズ 4 に進みます
    • 「ISSUES_FOUND」かつイテレーション < 5 の場合: todo を完了としてマークし、新しい問題リストを保存し、「最適化イテレーション {next}」の todo を追加して、次のイテレーションに進みます
    • 「ISSUES_FOUND」かつイテレーション = 5 の場合: 未解決の問題に関する注記とともに todo を完了としてマークし、警告を付けてフェーズ 4 に進みます
    • 検証エージェントが失敗したか、予期しない形式を返した場合: ユーザーにエラーを表示し、同一のパラメータで 1 回再試行します。再試行が失敗した場合は、警告「検証が不完全です - 手動レビューを推奨します。」を付けてフェーズ 4 に進みます。
圧縮テクニック

検証エージェントが指摘した非効率性を修正するために、これらのテクニックを適用します:

テクニック説明変更前 → 変更後
冗長性の除去繰り返される概念を排除する"It is important to note that you should always remember to..." → "Always..."
簡潔な表現冗長な構文を置き換える"In order to accomplish this task, you will need to..." → "To do this:"
フィラーの排除ヘッジ、修飾語、前置きを削除する"Make sure that you do not forget to include..." → "Include:"
構造の最適化セクションを統合・再編成する"First X. After that Y. Then Z." → "Steps: X → Y → Z"
文脈に応じた略称最初の言及後に用語を略す"Model Context Protocol server" (×10) → "MCP server" (最初の後)
高密度フォーマットリスト、テーブル、簡潔な記法を使用する散文の段落 → テーブル、箇条書き

変換ルール:

  1. すべての意味情報を保持する - すべての事実、指示、制約、例が存在していなければなりません
  2. ニュアンスと強調を保持する - 優先度を示す太字、大文字、繰り返し、順序。意図的なヘッジ (不確実性が意味を持っていた場合)
  3. 再構成は許可される - 優先度のシグナルを失わずに密度が上がるなら、並べ替えやセクションの統合が可能です
  4. フォーマットの保持 - 出力は入力と同じフォーマットでなければなりません (markdown は markdown のまま)
  5. 削減目標なし - ニュアンスを保持した 10% 削減 > ニュアンスを失った 40% 削減

曖昧さを生み出さないようにする:

  • トリガーの異なる条件を統合しない ("when A, do X; when B, do Y" ≠ "when A/B, do X/Y")
  • 明示的な参照対象を保つ (文脈が不明確な場合、「Use Read tool」を「Use the tool」に短縮しない)
  • 関係性を平坦化しない ("A requires B, C requires D" ≠ "A, C require B, D")
  • スコープを明確にする (修飾語はどの項目に適用されるか?)
フェーズ 4: 出力

「最適化されたプロンプトを出力」ToDo を in_progress にマークします。

ステップ 4.1: メトリクスを計算する

  • 元のトークン数(フェーズ 1 から)
  • 圧縮後のトークン数: Math.ceil(compressed_content.length / 4)
  • 削減率: ((original - compressed) / original * 100).toFixed(0)

ステップ 4.2: 変更を適用する(アトミックな置換)

検証に合格した場合:

# Replace original atomically
mv {working_path} {original_path}

ステップ 4.3: 結果を表示する

検証に合格した場合:

Optimized: {path}
Iterations: {count}
Original:  {original_tokens} tokens
Optimized: {compressed_tokens} tokens
Reduction: {percentage}%

Changes applied:
- {summary of compressions}

Status: Token-efficient and lossless

5 回のイテレーション後も検証に失敗した場合:

Optimized with warnings: {path}
Iterations: 5
Original:  {original_tokens} tokens
Optimized: {compressed_tokens} tokens
Reduction: {percentage}%

Unresolved issues:
- {list from last verification}

Review the changes manually.

「最適化されたプロンプトを出力」ToDo を completed にマークします。すべての ToDo を完了にマークします。

主要な原則

原則ルール
まず検証最適化の前に必ず検証ツールを実行します。プロンプトがすでに効率的である可能性があります
検証ツール主導検証ツールが特定した非効率のみを修正します - 独自の分析や改善は行いません
進捗の追跡タスク管理を使用してフェーズを追跡します。イテレーション時にタスクを拡張します
可逆性密度のために意味情報を犠牲にしません。すべての事実を保持する必要があります
ニュアンスの保持強調、意図的なヘッジ、優先度シグナルを保持します。ニュアンスありの 10% > ニュアンスなしの 40%
曖昧さなし圧縮後も元と同じくらい曖昧さがありません
検証必須検証ツールがチェックせずに出力しません
アトミック出力検証に合格するまで元の内容には手を付けません

エッジケース

シナリオ対処
入力が提供されないエラー: "Usage: /optimize-prompt-token-efficiency "
ファイルが見つからないエラー: "File not found: {path}"
サポートされていない型エラー: "Unsupported file type. Supported: .md, .txt, .yaml, .json"
すでに効率的検証ツールが最初のチェックで VERIFIED を返す → レポート: "Prompt is already token-efficient. No changes needed."
初回の検証が失敗1 回再試行します。それでも失敗する場合、エラー: "Verification failed - cannot proceed without verifier."
再検証が失敗エラーを表示し、1 回再試行します。再試行が失敗する場合、警告付きで出力します
YAML/JSON 構造構造の妥当性を保ち、文字列値のみを圧縮します
非常に大きなファイル(>50KB)単一の単位として処理します
0-10% の削減成功: "Content was already near-optimal density"
検証が 5 回失敗最善の試行を警告付きで出力します

使用例

# Optimize a verbose CLAUDE.md
/optimize-prompt-token-efficiency CLAUDE.md

# Optimize a skill file
/optimize-prompt-token-efficiency claude-plugins/my-plugin/skills/my-skill/SKILL.md

# Optimize an agent prompt
/optimize-prompt-token-efficiency agents/code-reviewer.md

出力例

Optimized: docs/README.md
Iterations: 2
Original:  4,250 tokens
Optimized: 3,612 tokens
Reduction: 15%

Changes applied:
- Removed redundant intro section
- Consolidated overlapping examples
- Tersified verbose instructions
- Preserved emphasis markers and conditional logic

Status: Token-efficient and lossless
Prompt is already token-efficient. No changes needed.
Original: 1,995 tokens

コメント