SuperAPI AI 工具集

repomix-unmixer

编程与开发

查看项目

更新于 10-15 14:24

技能介绍

用途

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 工具的技能特定验证、质量保证清单。需要验证解包技能或确认提取质量时加载此参考。