synapse-file-conversionlisted
Install: claude install-skill datamaker-kr/synapse-claude-marketplace
# File Conversion for Synapse Upload
Knowledge about when and how to convert files before uploading to a data collection.
## When Conversion Is Needed
Conversion is required when source file extensions don't match the data collection's file specification allowed extensions.
**Example**: Spec `image_1` allows `[".png", ".jpg"]` but the source directory contains `.tiff` files. The TIFFs must be converted to PNG or JPG before upload.
### Detection Logic
1. Get the file specs from the data collection (each spec has `extensions` list)
2. Scan the source directory for actual file extensions
3. For each spec, check if source extensions are in the allowed list
4. If not, determine if a supported conversion exists
## Supported Conversions
### Image Conversions (via Pillow)
| Source | Target | Notes |
|--------|--------|-------|
| `.tiff`, `.tif` | `.png` | Lossless conversion |
| `.tiff`, `.tif` | `.jpg`, `.jpeg` | RGBA/P modes auto-converted to RGB |
| `.bmp` | `.png` | Lossless conversion |
| `.bmp` | `.jpg`, `.jpeg` | Mode conversion applied |
| `.webp` | `.png` | Lossless conversion |
| `.webp` | `.jpg`, `.jpeg` | Mode conversion applied |
| `.gif` | `.png` | First frame only |
**Requirement**: `Pillow>=10.0` must be installed in the upload plugin environment.
### Video Conversions (via ffmpeg)
| Source | Target | Notes |
|--------|--------|-------|
| `.mov` | `.mp4` | H.264 + AAC, faststart |
| `.avi` | `.mp4` | H.264 + AAC, faststart |
| `.mkv` | `.mp4` | H.264 + AAC