Universal file converter
Safely inspect, plan, convert, transcode, remux, resize, compress, extract, repack, or migrate files across common formats. Use for video, audio, raster images, vector graphics, documents, Office files, PDFs, ebooks, archives, spreadsheets, CSV/TSV/JSON/JSONL, and specialist formats such as 3D, CAD, fonts, or geospatial data. Route work to locally available tools such as FFmpeg, ImageMagick, Inkscape, Pandoc, LibreOffice, Poppler, qpdf, Calibre, 7-Zip, Blender, Assimp, FontForge, FreeCAD, or GDAL; detect missing capabilities, preserve originals, disclose lossy or fidelity risks, and verify every output.From its SKILL.md
npx -y skills add 30bewater/universal-file-converterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.9 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Universal File Converter
Convert files through a capability-driven workflow. Treat this skill as a safe router over local conversion engines, not as a promise that every proprietary, encrypted, damaged, or DRM-protected format can be converted.
Non-negotiable rules
- Preserve the source. Never overwrite or delete an input unless the user explicitly requests an in-place operation and the tool supports it safely.
- Inspect before converting. Do not trust the extension alone; check the signature and use a format-aware probe when available.
- Check actual capabilities. Tool support varies by build, delegates, codecs, plugins, and operating system.
- Disclose trade-offs before lossy, layout-changing, metadata-dropping, color-changing, archive-repacking, or schema-changing conversions.
- Never weaken a security policy, bypass DRM, expose credentials, execute embedded macros, or install software without explicit authorization.
- Avoid shell interpolation and
eval. Pass paths as literal arguments and quote them for the active shell. - Write to a distinct output path or temporary output, validate it, then report success. A zero exit code alone is not proof of a valid conversion.
- For batches, test one representative file first and keep per-file success and failure records.
Workflow
1. Resolve intent
Determine the source, target format, destination, quality-versus-size preference, metadata policy, transparency or color requirements, batch scope, and device or application compatibility target. Use conservative defaults when the request is ordinary and reversible.
2. Inspect the input
Run the portable inspector with the available Python launcher:
python scripts/inspect_file.py INPUT
Then use the category-native inspector when possible:
- Video/audio:
ffprobe - Raster image:
magick identify - PDF:
pdfinfoorqpdf --check - Archive:
7z lor the platform archive tool - Office/ebook container: ZIP integrity plus format-specific inspection
Treat an extension/signature mismatch as suspicious and stop before opening untrusted content with a complex parser.
3. Probe available engines
python scripts/probe_tools.py
Do not assume an installed program supports a requested codec or delegate. Query native capability lists when the conversion depends on them, such as ffmpeg -encoders, ffmpeg -muxers, magick identify -list format, or pandoc --list-output-formats.
4. Build a conversion plan
python scripts/plan_conversion.py INPUT OUTPUT
Use the plan as routing guidance, then load the matching reference below. If no compatible local engine is available, explain the missing capability and propose the smallest suitable dependency or a safe intermediate format.
5. Execute safely
- Prefer direct, single-generation conversion over chains of lossy intermediates.
- Prefer stream copy or lossless paths only when container and codec compatibility is confirmed.
- Use a new filename by default, such as
name.converted.ext. - Keep temporary files beside the output when atomic replacement is required.
- Do not place secrets such as stream keys or document passwords directly in logged commands.
6. Verify the result
python scripts/verify_output.py OUTPUT
Also perform format-native checks when material quality matters: compare duration, stream counts, dimensions, page counts, archive members, row counts, color profile, alpha channel, metadata, or a rendered sample.
7. Report precisely
Report the source and output paths, selected engine, source and target formats, whether the conversion was lossy, important metadata or fidelity changes, validation performed, and any warnings. Never claim unsupported fidelity.
Routing map
| Family | Preferred engines | Load |
|---|---|---|
| Video and audio | FFprobe + FFmpeg | references/media.md |
| Raster images and vector graphics | ImageMagick + Inkscape | references/images-vectors.md |
| Documents, Office, PDF, ebooks | Pandoc + LibreOffice + Poppler/qpdf + Calibre | references/documents-pdf-ebooks.md |
| Archives and structured data | 7-Zip/tar + bundled structured converter | references/archives-data.md |
| 3D, CAD, fonts, GIS and uncommon formats | Blender/Assimp + FreeCAD + FontForge + GDAL | references/specialist-formats.md |
Always load references/safety-quality.md for untrusted files, recursive batches, in-place requests, public upload services, credentials, encrypted files, or high-fidelity requirements. Load references/platform-installation.md only when a required executable is missing.
Bundled scripts
scripts/inspect_file.py: inspect size, extension, MIME guess, signature, and category without modifying the file.scripts/probe_tools.py: discover supported local conversion engines and versions.scripts/plan_conversion.py: recommend candidate engines and surface fidelity risks; it never performs the conversion.scripts/convert_structured.py: safely convert CSV, TSV, JSON, JSONL, and NDJSON with Python only.scripts/verify_output.py: perform structural and tool-assisted output validation.
Resolve all resource paths relative to this skill directory. Other Agent Skills-compatible clients may ignore agents/openai.yaml; the workflow and scripts do not depend on it.
What ships with it: 20 files
58.4 KB alongside SKILL.md, 6 of them executable
agents/
- openai.yaml238 B
references/
- archives-data.md2.5 KB
- documents-pdf-ebooks.md2.4 KB
- images-vectors.md1.9 KB
- media.md1.9 KB
- platform-installation.md1.8 KB
- safety-quality.md3.2 KB
- specialist-formats.md2.4 KB
- tool-routing.md2.5 KB
scripts/
- conversion_registry.pyruns6.8 KB
- convert_structured.pyruns5.7 KB
- inspect_file.pyruns3.0 KB
- plan_conversion.pyruns4.5 KB
- probe_tools.pyruns2.1 KB
- verify_output.pyruns6.0 KB
- .gitignore43 B
- LICENSE1.0 KB
- NOTICE564 B
- README_EN.md5.1 KB
- README.md4.8 KB