用途
Repomix Unmixer 用于从 repomix 打包文件中提取文件并还原其原始目录结构。Repomix 会把整个代码仓库打包成单个便于 AI 处理的文件(XML、Markdown 或 JSON),本技能则反向执行该过程,将打包内容还原为独立文件。
何时使用
该技能在以下情况被激活:
- 解包 repomix 输出文件(.xml、.md、*.json)
- 从打包仓库中提取文件
- 从 repomix 格式还原原始目录结构
- 审查或验证 repomix 打包内容
- 将 repomix 输出转换回可用文件
主要能力
核心工作流是使用内置的 unmix_repomix.py 脚本,从 repomix 文件中提取全部文件并还原原始目录结构:
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 与 content 字段。
使用方式与常见场景
场景一:解包 Claude 技能。提取以 repomix 文件形式分享的技能,然后审查、验证或安装提取出的技能。
场景二:提取仓库以供审查。解包打包的仓库以审查其结构与内容,例如使用 tree /tmp/review-repo 查看结构。
场景三:还原工作文件。从 repomix 备份还原文件到工作目录。
验证工作流:解包后验证提取文件是否正确,包括检查文件数量是否与预期一致、使用 tree 或 ls -R 审查目录布局、抽查若干关键文件确认内容完整性,以及(对技能而言)使用 skill-creator 验证工具。详细验证流程参见 references/validation-workflow.md。
重要原则
始终指定输出目录,避免污染当前工作目录。优先使用临时目录进行审查:先提取到 /tmp 审查,满意后再复制到最终位置。覆盖前务必验证,不要未经审查直接提取到重要目录。
故障排查
未提取到文件:可能原因是文件格式不对(非 repomix 文件)、不支持的 repomix 格式版本、文件路径模式不匹配。解决方法是确认输入文件为 repomix 输出、检查格式(XML/Markdown/JSON)、手动检查文件结构,并参考 references/repomix-format.md。
权限错误:无法写入输出目录时,确保输出目录可写(如 mkdir -p /tmp/output、chmod 755 /tmp/output),或使用自己拥有的目录。
编码问题:特殊字符乱码时,脚本默认使用 UTF-8 编码;若问题持续,检查原始 repomix 文件编码、确认文件创建正确,并附具体字符示例报告问题。
路径已存在:可使用全新的输出目录(如带时间戳),或先清空目录再提取。
最佳实践
提取到临时目录;验证文件数量;审查目录结构;抽查内容;对技能使用验证工具;保留原始 repomix 文件作为备份。
资源
scripts/unmix_repomix.py:主解包脚本,解析 repomix XML/Markdown/JSON 格式,使用正则提取文件路径与内容,自动创建目录结构,将文件写入原始位置,报告提取进度与统计。脚本自包含,仅需 Python 3 标准库。
references/repomix-format.md:repomix 文件格式的完整文档,包括 XML 格式结构与示例、Markdown 格式模式、JSON 格式 schema、文件路径编码规则、内容提取模式、格式版本差异。处理格式特定问题或支持新 repomix 版本时加载此参考。
references/validation-workflow.md:提取内容的详细验证流程,包括文件数量验证步骤、目录结构验证、内容完整性检查、使用 skill-creator 工具的技能特定验证、质量保证清单。需要验证解包技能或确认提取质量时加载此参考。