repomix-unmixer について
Repomix Unmixer は、Repomix 形式にまとめられたリポジトリを個別ファイルに戻し、元のディレクトリ構造を復元するスキルです。XML、Markdown、JSON で共有された内容の確認や復元、再利用に適しています。
主な機能
- 01XML、Markdown、JSON の解析
- 02ファイルパスと内容の抽出
- 03ディレクトリ構造の再構築
- 04抽出の進捗と件数の表示
- 05検証手順の案内
活用シーン
- 01Repomix 形式で共有されたスキルの復元
- 02パックされたリポジトリの確認
- 03バックアップから作業ファイルを復元
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ daymade/ claude-code-skills --skill repomix-unmixerインストール後、Claude Code で/repomix-unmixerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/repomix-format.mdvalidation-workflow.mdscripts/unmix_repomix.py詳細
Repomix アンミキサー
概要
このスキルは、Repomix でパックされたリポジトリからファイルを抽出し、元のディレクトリ構造を復元します。Repomix はリポジトリ全体を AI が扱いやすい単一ファイル(XML、Markdown、JSON)にパックします。このスキルはその処理を逆に行い、個別のファイルを復元します。
このスキルを使用する場面
次の場合にこのスキルが有効になります:
- Repomix の出力ファイル(.xml、.md、*.json)をアンミックスする
- パックされたリポジトリからファイルを抽出する
- Repomix 形式から元のディレクトリ構造を復元する
- Repomix でパックされたコンテンツを確認または検証する
- Repomix の出力を使用可能なファイルに戻す
基本的なワークフロー
標準的なアンミックス手順
Repomix ファイルからすべてのファイルを抽出し、同梱の unmix_repomix.py スクリプトを使用して元のディレクトリ構造を復元します:
python3 scripts/unmix_repomix.py \
"<path_to_repomix_file>" \
"<output_directory>"
パラメーター:
<path_to_repomix_file>:Repomix の出力ファイル(XML、Markdown、JSON)へのパス<output_directory>:ファイルの抽出先ディレクトリ(存在しない場合は作成されます)
例:
python3 scripts/unmix_repomix.py \
"/path/to/repomix-output.xml" \
"/tmp/extracted-files"
スクリプトの処理内容
- Repomix ファイル形式(XML、Markdown、JSON)を解析します
- 各ファイルのパスと内容を抽出します
- 元のディレクトリ構造を作成します
- 各ファイルを元の場所に書き込みます
- 抽出の進行状況と統計情報を報告します
出力
スクリプトは次の処理を行います:
- 必要な親ディレクトリをすべて作成します
- パスを維持したままファイルをすべて抽出します
- 各ファイルの抽出状況を表示します
- 抽出したファイルの合計数を表示します
出力例:
Unmixing /path/to/skill.xml...
Output directory: /tmp/extracted-files
✓ Extracted: github-ops/SKILL.md
✓ Extracted: github-ops/references/api_reference.md
✓ Extracted: markdown-tools/SKILL.md
...
✅ Successfully extracted 20 files!
Extracted files are in: /tmp/extracted-files
対応形式
XML 形式(デフォルト)
Repomix XML 形式の構造:
<file path="relative/path/to/file.ext">
file content here
</file>
スクリプトは正規表現を使用して、<file path="...">content</file> ブロックに一致する箇所を検索します。
Markdown 形式
ファイルマーカーを含む Markdown スタイルの Repomix 出力の場合:
## File: relative/path/to/file.ext
ファイルの内容
形式の詳細については、references/repomix-format.md を参照してください。
JSON 形式
JSON スタイルの Repomix 出力の場合:
{
"files": [
{
"path": "relative/path/to/file.ext",
"content": "file content here"
}
]
}
よくある使用例
使用例 1:Claude スキルのアンミックス
Repomix ファイルとして共有されたスキルを抽出します:
python3 scripts/unmix_repomix.py \
"/path/to/skills.xml" \
"/tmp/unmixed-skills"
その後、抽出したスキルを確認、検証、またはインストールします。
使用例 2:レビュー用にリポジトリを抽出
パックされたリポジトリを抽出し、その構造と内容を確認します:
python3 scripts/unmix_repomix.py \
"/path/to/repo-output.xml" \
"/tmp/review-repo"
# Review the structure
tree /tmp/review-repo
使用例 3:作業ファイルを復元
Repomix のバックアップから作業ディレクトリにファイルを復元します:
python3 scripts/unmix_repomix.py \
"/path/to/backup.xml" \
"~/workspace/restored-project"
検証ワークフロー
アンミックス後、抽出したファイルが正しいことを検証します:
- ファイル数を確認:抽出したファイル数が想定どおりであることを確認します
- 構造を確認:
treeまたはls -Rを使ってディレクトリ構成を確認します - 内容を抜き取り確認:重要なファイルをいくつか読み、内容の完全性を確認します
- 検証を実行:スキルの場合は、skill-creator の検証ツールを使用します
詳細な検証手順、特に Claude スキルのアンミックスについては、references/validation-workflow.md を参照してください。
重要な原則
出力ディレクトリを必ず指定する
現在の作業ディレクトリが散らからないよう、必ず出力ディレクトリを指定してください:
# Good: Explicit output directory
python3 scripts/unmix_repomix.py \
"input.xml" "/tmp/output"
# Avoid: Default output (may clutter current directory)
python3 scripts/unmix_repomix.py "input.xml"
レビューには一時ディレクトリを使用する
まず一時ディレクトリに抽出して確認してください:
# Extract to /tmp for review
python3 scripts/unmix_repomix.py \
"skills.xml" "/tmp/review-skills"
# Review the contents
tree /tmp/review-skills
# If satisfied, copy to final destination
cp -r /tmp/review-skills ~/.claude/skills/
上書きする前に確認する
確認せずに重要なディレクトリへ直接抽出しないでください:
# Bad: Might overwrite existing files
python3 scripts/unmix_repomix.py \
"repo.xml" "~/workspace/my-project"
# Good: Extract to temp, review, then move
python3 scripts/unmix_repomix.py \
"repo.xml" "/tmp/extracted"
# Review, then:
mv /tmp/extracted ~/workspace/my-project
トラブルシューティング
ファイルが抽出されない
問題:スクリプトは完了するものの、ファイルが抽出されません。
考えられる原因:
- ファイル形式が正しくない(Repomix ファイルではない)
- Repomix の形式バージョンがサポートされていない
- ファイルパスのパターンが一致しない
解決策:
- 入力ファイルが Repomix の出力ファイルであることを確認します
- 形式(XML/Markdown/JSON)を確認します
- ファイル構造を手動で調べます
- 形式の詳細については、
references/repomix-format.mdを参照します
権限エラー
問題:出力ディレクトリに書き込めません。
解決策:
# Ensure output directory is writable
mkdir -p /tmp/output
chmod 755 /tmp/output
# Or use a directory you own
python3 scripts/unmix_repomix.py \
"input.xml" "$HOME/extracted"
エンコーディングの問題
問題: 抽出されたファイルで特殊文字が文字化けして表示されます。
解決策: スクリプトはデフォルトで UTF-8 エンコーディングを使用します。問題が続く場合:
- 元の repomix ファイルのエンコーディングを確認する
- ファイルが正しく作成されたことを検証する
- 具体的な文字の例を挙げて問題を報告する
パスがすでに存在する
問題: 抽出パスにファイルが存在します。
解決策:
# Option 1: Use a fresh output directory
python3 scripts/unmix_repomix.py \
"input.xml" "/tmp/output-$(date +%s)"
# Option 2: Clear the directory first
rm -rf /tmp/output && mkdir /tmp/output
python3 scripts/unmix_repomix.py \
"input.xml" "/tmp/output"
ベストプラクティス
- 一時ディレクトリに抽出する - 最初の確認では、常に
/tmpなどの一時ディレクトリに抽出します - ファイル数を検証する - 抽出されたファイル数が想定と一致することを確認します
- 構造を確認する - 使用する前に
treeでディレクトリレイアウトを検査します - 内容を確認する - いくつかのファイルを抜き取り検査して、内容が損なわれていないことを確認します
- 検証ツールを使用する - スキルの場合、unmix 後に skill-creator の検証を使用します
- 元のファイルを保持する - 元の repomix ファイルをバックアップとして保持します
リソース
scripts/unmix_repomix.py
主要な unmix スクリプトで、以下を行います:
- repomix の XML/Markdown/JSON 形式を解析します
- 正規表現を使用してファイルパスと内容を抽出します
- ディレクトリ構造を自動的に作成します
- ファイルを元の場所に書き込みます
- 抽出の進捗と統計を報告します
このスクリプトは自己完結型で、Python 3 標準ライブラリのみを必要とします。
references/repomix-format.md
repomix ファイル形式に関する包括的なドキュメントで、以下を含みます:
- XML 形式の構造と例
- Markdown 形式のパターン
- JSON 形式のスキーマ
- ファイルパスのエンコーディング規則
- 内容抽出のパターン
- 形式バージョン間の違い
形式固有の問題を扱う場合や、新しい repomix バージョンをサポートする場合に、このリファレンスを参照してください。
references/validation-workflow.md
抽出された内容の詳細な検証手順で、以下を含みます:
- ファイル数の検証手順
- ディレクトリ構造の検証
- 内容の整合性チェック
- skill-creator ツールを使用したスキル固有の検証
- 品質保証チェックリスト
ユーザーが unmix されたスキルを検証する必要がある場合や、抽出品質を確認する必要がある場合に、このリファレンスを参照してください。