New to Claude Skills? Learn how to install them →

nvidia on GitHub

Data Designer

OfficialFree

Create and manage synthetic datasets effortlessly.

by nvidia2.8k stars on nvidia/skills
1 views
Updated Aug 7, 2026
Get this skill

Free · Opens the source repo

What Data Designer does

Data Designer is a powerful tool designed for developers and data scientists who need to create synthetic datasets tailored to specific requirements. With this skill, you can generate data that mimics real-world scenarios, making it ideal for testing, training machine learning models, or conducting data analysis without compromising sensitive information. The skill leverages the Data Designer library, which simplifies the process of dataset creation through defined workflows.

The skill operates in two modes: Interactive and Autopilot. In Interactive mode, users can provide specific inputs and preferences for the dataset, while Autopilot mode allows the skill to make decisions based on general instructions. This flexibility ensures that both novice and experienced users can effectively generate datasets that meet their needs. The skill guides users through the process, emphasizing the importance of maintaining all relevant columns and providing structured outputs that adhere to specified schemas.

Users can create datasets that include person data by referencing provided guidelines on sampling and validation. The skill also supports the use of custom generators and Pydantic models for more complex data structures, ensuring that the generated datasets are not only realistic but also compliant with necessary data formats. With built-in troubleshooting advice, users can quickly resolve common issues, such as installation errors or network problems during dataset previews.

Overall, Data Designer is an essential tool for anyone looking to streamline the dataset creation process, allowing for efficient data generation that meets specific project requirements without the need for extensive manual input.

When to use it

Use Data Designer when you need to generate datasets for testing or training purposes, especially when real data is unavailable or sensitive.

When not to use it

This skill may not be suitable for generating highly specialized datasets that require intricate domain knowledge or for projects needing real-world data accuracy.

What you can build with it

Testing Machine Learning Models

Generate synthetic datasets to train and validate machine learning models without exposing sensitive data.

Data Analysis and Visualization

Create datasets that mimic real-world data for analysis, allowing for effective visualization and reporting.

Prototyping Applications

Use synthetic datasets to prototype applications quickly, ensuring that your development process is efficient and secure.

How to install Data Designer

View source

1. Install with the skills CLI

npx skills add nvidia/skills/data-designer --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by nvidia

Before You Start

Do not explore the workspace first. The workflow's Learn step gives you everything you need.

Goal

Build a synthetic dataset using the Data Designer library that matches this description:

$ARGUMENTS

Workflow

Use Autopilot mode if the user implies they don't want to answer questions — e.g., they say something like "be opinionated", "you decide", "make reasonable assumptions", "just build it", "surprise me", etc. Otherwise, use Interactive mode (default).

Read only the workflow file that matches the selected mode, then follow it:

  • Interactive → read workflows/interactive.md
  • Autopilot → read workflows/autopilot.md

Rules

  • Keep all columns in the output by default. The only exceptions for dropping a column are: (1) the user explicitly asks, or (2) it is a helper column that exists solely to derive other columns (e.g., a sampled person object used to extract name, city, etc.). When in doubt, keep the column.
  • Do not suggest or ask about seed datasets. Only use one when the user explicitly provides seed data or asks to build from existing records. When using a seed, read references/seed-datasets.md.
  • When the dataset requires person data (names, demographics, addresses), read references/person-sampling.md.
  • If a dataset script that matches the dataset description already exists, ask the user whether to edit it or create a new one.

Usage Tips and Common Pitfalls

  • Sampler and validation columns need both a type and params. E.g., sampler_type="category" with params=dd.CategorySamplerParams(...).
  • Jinja2 templates in prompt, system_prompt, and expr fields: reference columns with {{ column_name }}, nested fields with {{ column_name.field }}.
  • SamplerColumnConfig: Takes params, not sampler_params.
  • LLM judge score access: LLMJudgeColumnConfig produces a nested dict where each score name maps to {reasoning: str, score: int}. To get the numeric score, use the .score attribute. For example, for a judge column named quality with a score named correctness, use {{ quality.correctness.score }}. Using {{ quality.correctness }} returns the full dict, not the numeric score.

Troubleshooting

  • data-designer CLI not found: Tell the user that data-designer is not installed in this environment (requires Python >= 3.10). Ask if they would like you to create a virtual environment and install it, or if they prefer to do it themselves. Do not install anything without the user's permission.
  • Network errors during preview: A sandbox environment may be blocking outbound requests. Ask the user for permission to retry the command with the sandbox disabled. Only as a last resort, if retrying outside the sandbox also fails, tell the user to run the command themselves.

Output Template

Write a Python file to the current directory with a load_config_builder() function returning a DataDesignerConfigBuilder. Name the file descriptively (e.g., customer_reviews.py). Use PEP 723 inline metadata for dependencies.

# /// script
# dependencies = [
#   "data-designer", # always required
#   "pydantic", # only if this script imports from pydantic
#   # add additional dependencies here
# ]
# ///
import data_designer.config as dd
from pydantic import BaseModel, Field


# Use Pydantic models when the output needs to conform to a specific schema
class MyStructuredOutput(BaseModel):
    field_one: str = Field(description="...")
    field_two: int = Field(description="...")


# Use custom generators when built-in column types aren't enough
@dd.custom_column_generator(
    required_columns=["col_a"],
    side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
    # add custom logic here that depends on "col_a" and update row in place
    row["name_in_custom_column_config"] = "custom value"
    row["extra_col"] = "extra value"
    return row


def load_config_builder() -> dd.DataDesignerConfigBuilder:
    config_builder = dd.DataDesignerConfigBuilder()

    # Seed dataset (only if the user explicitly mentions a seed dataset path)
    # config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))

    # config_builder.add_column(...)
    # config_builder.add_processor(...)

    return config_builder

Only include Pydantic models, custom generators, seed datasets, and extra dependencies when the task requires them.

Frequently asked questions about Data Designer

Similar skills