generate-dataset

Generates taxonomy-guided synthetic datasets as validated JSONL via OpenAI-compatible models.

4|Updated Jun 15, 2026
One-click install
npx skills add https://github.com/Mercity-AI/Simula --skill generate-dataset-mercity-ai
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: generate-dataset
Source: https://github.com/Mercity-AI/Simula
Command: npx skills add https://github.com/Mercity-AI/Simula --skill generate-dataset-mercity-ai

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Creating high-quality synthetic training data requires more than prompting a model repeatedly — without a coverage plan, outputs cluster around the same patterns, and without validation, malformed or low-quality rows slip in. This Skill walks a user through the simula CLI pipeline (taxonomy → strategies → generation → critique → evaluation) while making the judgment calls about schema shape, variation axes, and representation policy so the user only answers two questions: what dataset and how much. ## Core Features & Use Cases - Guided end-to-end workflow: Classifies the task archetype (extraction, NL-query-to-structured, classification, QA, free-text), drafts the YAML config from the template, smoke-tests offline with fake models, then runs a paid pilot and scales up only after explicit user approval. - Distribution review before spending: Treats taxonomy.json and strategies.json as the dataset's distribution and mandates reviewing node weights, strategy bundles, and never_combine rules before any paid generation, preventing plausible-looking but skewed corpora. - Representation decision enforcement: Separates use-dependent choices (absent-field policy, label granularity, negative cases — asked with a recommendation) from universal quality rules (atomic fields, consistent formats, faithful content — enforced via schema, prompt modules, and the critic). - Use Case: A user asks for 5,000 job-posting extraction records. The Skill writes the config and a prompt module enforcing atomic fields and omit-when-absent policy, validates and smoke-tests offline, reviews the taxonomy and strategies, runs a 30-row pilot on real models, then scales to full size and reports accept rate and cost. ## Quick Start Ask the assistant to generate a synthetic dataset by describing what each row should contain, what it will be used for, and roughly how many rows you need.

Frequently Asked Questions about generate-dataset

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate a synthetic dataset with simula?

Describe the dataset and target row count, and the Skill writes a YAML config from the template, validates it, runs a free offline smoke test with fake models, then runs a small real pilot before scaling up. You only confirm before any paid model calls.

What is a taxonomy in synthetic data generation?

A taxonomy is a tree of variation factors (like topic, length, or tone) that conditions every generated record, forcing coverage across the space instead of near-duplicate outputs. Each row records its taxonomy_mix lineage so coverage can be audited.

Can I run simula without an API key?

Yes, setting every model role to "fake" runs the full pipeline offline and deterministically with no key. Real runs require the key named by provider.api_key_env in a gitignored .env file at the project root.

How do I enforce a fixed output schema for generated records?

Define a JSON Schema subset (objects, strings, numbers, arrays, enums, required fields) in the config; every record is validated against it and repaired or rejected on failure. For per-row varying schemas, use an open envelope plus a Python prompt module.

Why did my generated dataset come out skewed toward rare cases?

Skew usually comes from taxonomy node weights and strategy bundles: finely subdivided branches and strategies grouping unusual forms concentrate probability on them. Fix weights in taxonomy.json, rebalance strategies.json, and rerun — both files are reused verbatim.

What are the limitations of this dataset generation approach?

Generation is asyncio-concurrent and pilot-scale, not distributed, and only supports OpenAI-compatible chat endpoints. Lineage-based coverage reports what was requested, not verified content; use coverage_mode reassign for model-judged coverage at extra cost.