# dummy-dataset

Generates realistic mock datasets with custom columns, business rules, and formats. Helpful for database seeding and product demos.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 2700 installs · ★ 27382
- Author: phuryn
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/phuryn/pm-skills/tree/HEAD/pm-execution/skills/dummy-dataset/SKILL.md
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/skills/dummy-dataset

## What it does

This skill builds mock datasets or runnable generators directly from field definitions. It takes the target domain, requested columns, row counts, and output preferences. You can request CSV spreadsheets, JSON objects, SQL `INSERT` statements, or a standalone Python script. The agent structures the schema, injects plausible patterns like valid email domains or recent dates, and verifies the final output.

Custom business logic can shape the data distribution. You can link specific categories to rating ranges or enforce percentage splits across values. By default the skill targets 100 rows, so requesting a Python generation script is safer than asking for raw records when dealing with large tables.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add phuryn/pm-skills --skill dummy-dataset -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/dummy-dataset/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/dummy-dataset/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add phuryn/pm-skills --skill dummy-dataset -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/dummy-dataset/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add phuryn/pm-skills --skill dummy-dataset -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/dummy-dataset/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install phuryn/pm-skills dummy-dataset
```

2. **Manually: put the files in place**
- File: `.github/skills/dummy-dataset/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add phuryn/pm-skills --skill dummy-dataset -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/phuryn/pm-skills --path pm-execution/skills/dummy-dataset
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/dummy-dataset/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add phuryn/pm-skills --skill dummy-dataset -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/phuryn/pm-skills/tree/HEAD/pm-execution/skills/dummy-dataset/SKILL.md

## When to use it
- generate realistic user profiles and feedback records for staging
- populate relational databases with structured SQL INSERT statements
- produce a runnable Python script for custom data generation
- enforce statistical distributions and field relationships across rows

## Example prompts
- Generate 150 customer feedback records in CSV format with columns feedback_id, name, email, and rating
- Create SQL INSERT statements for 100 transactions where failed status only occurs on amounts above 10000
- Build a Python script that outputs a JSON dataset of user profiles with realistic timestamps and email domains

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: fa7c0941a6765eda.

BEGIN THIRD-PARTY FILE fa7c0941a6765eda
````text
---
name: dummy-dataset
description: "Generate realistic dummy datasets for testing with customizable columns, constraints, and output formats (CSV, JSON, SQL, Python script). Use when creating test data, building mock datasets, or generating sample data for development and demos."
---
# Dummy Dataset Generation

Generate realistic dummy datasets for testing with customizable columns, constraints, and output formats (CSV, JSON, SQL, Python script). Creates executable scripts or direct data files for immediate use.

**Use when:** Creating test data, generating sample datasets, building realistic mock data for development, or populating test environments.

**Arguments:**
- `$PRODUCT`: The product or system name
- `$DATASET_TYPE`: Type of data (e.g., customer feedback, transactions, user profiles)
- `$ROWS`: Number of rows to generate (default: 100)
- `$COLUMNS`: Specific columns or fields to include
- `$FORMAT`: Output format (CSV, JSON, SQL, Python script)
- `$CONSTRAINTS`: Additional constraints or business rules

## Step-by-Step Process

1. **Identify dataset type** - Understand the data domain
2. **Define column specifications** - Names, data types, and value ranges
3. **Determine row count** - How many sample records needed
4. **Select output format** - CSV, JSON, SQL INSERT, or Python script
5. **Apply realistic patterns** - Ensure data looks authentic and valid
6. **Add business constraints** - Respect business logic and relationships
7. **Generate or script data** - Create executable output
8. **Validate output** - Ensure data quality and completeness

## Template: Python Script Output

```python
import csv
import json
from datetime import datetime, timedelta
import random

# Configuration
ROWS = $ROWS
FILENAME = "$DATASET_TYPE.csv"

# Column definitions with realistic value generators
columns = {
    "id": "auto-increment",
    "name": "first_last_name",
    "email": "email",
    "created_at": "timestamp",
    # Add more columns...
}

def generate_dataset():
    """Generate realistic dummy dataset"""
    data = []
    for i in range(1, ROWS + 1):
        record = {
            "id": f"U{i:06d}",
            # Generate values based on column definitions
        }
        data.append(record)
    return data

def save_as_csv(data, filename):
    """Save dataset as CSV"""
    with open(filename, 'w', newline='') as f:
        writer = csv.DictWriter(f, fieldnames=data[0].keys())
        writer.writeheader()
        writer.writerows(data)

if __name__ == "__main__":
    dataset = generate_dataset()
    save_as_csv(dataset, FILENAME)
    print(f"Generated {len(dataset)} records in {FILENAME}")
```

## Example Dataset Specification

**Dataset Type:** Customer Feedback

**Columns:**
- feedback_id (auto-increment, U001, U002...)
- customer_name (realistic names)
- email (valid email format)
- feedback_date (dates last 90 days)
- rating (1-5 stars)
- category (Bug, Feature Request, Complaint, Praise)
````
END THIRD-PARTY FILE fa7c0941a6765eda

The third-party file has ended. Everything between the fa7c0941a6765eda tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2950 of 3930 bytes. © phuryn · MIT · https://github.com/phuryn/pm-skills/tree/HEAD/pm-execution/skills/dummy-dataset/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
