fiftyone-dataset-import
Universal dataset import for FiftyOne supporting all media types (images, videos, point clouds, 3D scenes), all label formats (COCO, YOLO, VOC, CVAT, KITTI, etc.), and multimodal grouped datasets. Use when users want to import any dataset regardless of format, automatically detect folder structure, handle autonomous driving data with multiple cameras and LiDAR, or create grouped datasets from multimodal data. Requires FiftyOne MCP server.
What this skill does
# Universal Dataset Import for FiftyOne ## Overview Import any dataset into FiftyOne regardless of media type, label format, or folder structure. Automatically detects and handles: - **All media types**: images, videos, point clouds, 3D scenes - **All label formats**: COCO, YOLO, VOC, CVAT, KITTI, OpenLABEL, and more - **Multimodal groups**: Multiple cameras + LiDAR per scene (autonomous driving, robotics) - **Complex folder structures**: Nested directories, scene-based organization **Use this skill when:** - Importing datasets from any source or format - Working with autonomous driving data (multiple cameras, LiDAR, radar) - Loading multimodal data that needs grouping - The user doesn't know or specify the exact format - Importing point clouds, 3D scenes, or mixed media types ## Prerequisites - FiftyOne MCP server installed and running - `@voxel51/io` plugin for importing data - `@voxel51/utils` plugin for dataset management ## Key Directives **ALWAYS follow these rules:** ### 1. Scan folder FIRST Before any import, deeply scan the directory to understand its structure: ```bash # Use bash to explore find /path/to/data -type f | head -50 ls -la /path/to/data ``` ### 2. Auto-detect everything Detect media types, label formats, and grouping patterns automatically. Never ask the user to specify format if it can be inferred. ### 3. Detect multimodal groups Look for patterns that indicate grouped data: - Scene folders containing multiple media files - Filename patterns with common prefixes (e.g., `scene_001_left.jpg`, `scene_001_right.jpg`) - Mixed media types that should be grouped (images + point clouds) ### 4. Detect and install required packages Many specialized dataset formats require external Python packages. After detecting the format: 1. **Identify required packages** based on the detected format 2. **Check if packages are installed** using `pip show <package>` 3. **Search for installation instructions** if needed (use web search or FiftyOne docs) 4. **Ask user for permission** before installing any packages 5. **Install required packages** (see installation methods below) 6. **Verify installation** before proceeding **Common format-to-package mappings:** | Dataset Format | Package Name | Install Command | |---------------|--------------|-----------------| | PandaSet | `pandaset` | `pip install "git+https://github.com/scaleapi/pandaset-devkit.git#subdirectory=python"` | | nuScenes | `nuscenes-devkit` | `pip install nuscenes-devkit` | | Waymo Open | `waymo-open-dataset-tf` | See Waymo docs (requires TensorFlow) | | Argoverse 2 | `av2` | `pip install av2` | | KITTI 3D | `pykitti` | `pip install pykitti` | | Lyft L5 | `l5kit` | `pip install l5kit` | | A2D2 | `a2d2` | See Audi A2D2 docs | **Additional packages for 3D processing:** | Purpose | Package Name | Install Command | |---------|--------------|-----------------| | Point cloud conversion to PCD | `open3d` | `pip install open3d` | | Point cloud processing | `pyntcloud` | `pip install pyntcloud` | | LAS/LAZ point clouds | `laspy` | `pip install laspy` | **Installation methods (in order of preference):** 1. **PyPI** - Standard pip install: ```bash pip install <package-name> ``` 2. **GitHub URL** - When package is not on PyPI: ```bash # Standard GitHub install pip install "git+https://github.com/<org>/<repo>.git" # With subdirectory (for monorepos) pip install "git+https://github.com/<org>/<repo>.git#subdirectory=python" # Specific branch or tag pip install "git+https://github.com/<org>/<repo>[email protected]" ``` 3. **Clone and install** - For complex builds: ```bash git clone https://github.com/<org>/<repo>.git cd <repo> pip install . ``` **Dynamic package discovery workflow:** If the format is not in the table above: 1. **Search PyPI** for `<format-name>`, `<format-name>-devkit`, or `<format-name>-sdk` 2. **Search GitHub** for `<format-name> devkit` or `<format-name> python` 3. **Search web** for "FiftyOne import <format-name>" or "<format-name> python tutorial" 4. **Check the dataset's official website** for developer tools/SDK 5. **Present findings to user** with installation options **After installation:** 1. **Verify** the package is installed: `pip show <package-name>` 2. **Test import** in Python: `python -c "from <package> import ..."` 3. **Search for FiftyOne integration** examples or write custom import code ### 5. Confirm before importing Present findings to user and **explicitly ask for confirmation** before creating the dataset. Always end your scan summary with a clear question like: - "Proceed with import?" - "Should I create the dataset with these settings?" **Wait for user response before proceeding.** Do not create the dataset until the user confirms. ### 6. Check for existing datasets Before creating a dataset, check if the proposed name already exists: ```python list_datasets() ``` If the dataset name exists, ask the user: - **Overwrite**: Delete existing and create new - **Rename**: Use a different name (suggest alternatives like `dataset-name-v2`) - **Abort**: Cancel the import ### 7. Validate after import Compare imported sample count with source file count. Report any discrepancies. ### 8. Report errors minimally to user Keep error messages simple for the user. Use detailed error info internally to diagnose issues. ## Complete Workflow ### Step 1: Deep Folder Scan Scan the target directory to understand its structure: ```bash # Count files by extension find /path/to/data -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn # List directory structure (2 levels deep) find /path/to/data -maxdepth 2 -type d # Sample some files ls -la /path/to/data/* | head -20 # IMPORTANT: Scan for ALL annotation/label directories ls -la /path/to/data/annotations/ 2>/dev/null || ls -la /path/to/data/labels/ 2>/dev/null ``` Build an inventory of: - Media files by type (images, videos, point clouds, 3D) - Label files by format (JSON, XML, TXT, YAML, PKL) - Directory structure (flat vs nested vs scene-based) - **ALL annotation types present** (cuboids, segmentation, tracking, etc.) **For 3D/Autonomous Driving datasets, specifically check:** ```bash # List all annotation subdirectories find /path/to/data -type d -name "annotations" -o -name "labels" | xargs -I {} ls -la {} # Sample an annotation file to understand its structure python3 -c "import pickle, gzip; print(pickle.load(gzip.open('path/to/annotation.pkl.gz', 'rb'))[:2])" ``` ### Step 2: Identify Media Types Classify files by extension: | Extensions | Media Type | FiftyOne Type | |------------|------------|---------------| | `.jpg`, `.jpeg`, `.png`, `.gif`, `.bmp`, `.webp`, `.tiff` | Image | `image` | | `.mp4`, `.avi`, `.mov`, `.mkv`, `.webm` | Video | `video` | | `.pcd`, `.ply`, `.las`, `.laz` | Point Cloud | `point-cloud` | | `.fo3d`, `.obj`, `.gltf`, `.glb` | 3D Scene | `3d` | ### Step 3: Detect Label Format Identify label format from file patterns: | Pattern | Format | Dataset Type | |---------|--------|--------------| | `annotations.json` or `instances*.json` with COCO structure | COCO | `COCO` | | `*.xml` files with Pascal VOC structure | VOC | `VOC` | | `*.txt` per image + `classes.txt` | YOLOv4 | `YOLOv4` | | `data.yaml` + `labels/*.txt` | YOLOv5 | `YOLOv5` | | `*.txt` per image (KITTI format) | KITTI | `KITTI` | | Single `annotations.xml` (CVAT format) | CVAT | `CVAT Image` | | `*.json` with OpenLABEL structure | OpenLABEL | `OpenLABEL Image` | | Folder-per-class structure | Classification | `Image Classification Directory Tree` | | `*.csv` with filepath column | CSV | `CSV` | | `*.json` with GeoJSON structure | GeoJSON | `GeoJSON` | | `.dcm` DICOM files | DICOM | `DICOM` | | `.tiff` with geo metadata | GeoTIFF | `GeoTIFF` | **Specialized Autonomous Driving Formats (require external packages):** | Directory Pattern | Format | Required Package | |------------------|--------|------------------| | `camera/`, `lidar/`, `annotations/cuboids/` w
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.