Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Large-scale synthetic training data generation with Model Collapse recursion guard
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 1429% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 514% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -30% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 233% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 221% | 0% |
Large-scale, pipeline-driven synthesis of training examples using published patterns (Orca, Phi, PersonaHub, STaR, ReST). Enforces the Model Collapse recursion guard from REF-446 and ADR-022 D10: synthetic generation from synthetic seeds is rejected unless explicitly authorized.
example-synthesizer is insufficient — that skill is small-batch (tens of examples, per-pattern invocation). Use synthetic-data-generator when you need 1K+ examples via a declarative config.<config-file> (required)Path to a synthetic-generator-config.yaml file that declares the pattern, model, count, and validation rules. Schema: @agentic/code/frameworks/training-complete/schemas/synthetic-generator-config.yaml.
--seed-examples <glob> (optional)Overrides seed_source in config. Required for patterns that start from human seeds (STaR, ReST). Ignored by pattern phi (pure generative curriculum).
--count <n> (optional)Overrides count in config. Useful for smoke-testing a run (--count 20) before full generation.
--allow-recursive-synthetic (optional, guarded override)Permits generation when input seeds have metadata.synthetic_depth >= 1. Default behavior: REJECT. Use only when recursion is intentional (e.g., ReST outer-loop iteration on a synthesized seed set). Emits a WARNING in the event log with override_flag: true.
example-synthesizer| Dimension | example-synthesizer | synthetic-data-generator | |---|---|---| | Scale | 10s of examples | 1K+ examples | | Invocation | Per-pattern, per-call | Pipeline-driven via config file | | Reproducibility | Ad-hoc prompts | Config committed to repo | | Seed handling | Inline arguments | seed_source glob + provenance tracking | | Batch quality gate | Per-example | Batch-level median threshold |
All patterns emit to derivedPages.synthesizedExamples with metadata.synthetic: true.
model.teacher, model.student (optional for filtering).diversity_settings.persona_count, persona pool either declared inline or loaded from a persona file.seed_source with ground-truth outputs.--allow-recursive-synthetic is legitimate (iteration N feeds iteration N+1).These are non-negotiable invariants on the dataset topology:
derivedPages.synthesizedExamples. Never write to rawExamples.metadata.synthetic: true.metadata.synthetic_depth (integer, 1 for first-generation synthetic; higher for recursive).metadata.synthetic_depth >= 1, generation is REJECTED unless --allow-recursive-synthetic is set. This is the Model Collapse mitigation (REF-446 / ADR-022 D10).--allow-recursive-synthetic is present, the synthetic-generate log event must include override_flag: true and the seed's observed depth.This skill writes synthetic examples. It does not enforce the synthetic/human ratio — that responsibility belongs to dataset-version (#844), which reads the per-split synthetic_ratio declaration from the dataset manifest at compile time.
<config-file> against synthetic-generator-config.yaml schema. Reject on validation failure.seed_source glob (or --seed-examples override). For phi pattern with no seed requirement, skip.metadata.synthetic_depth. If any seed has >= 1 and --allow-recursive-synthetic is NOT set: ERROR and halt with message referencing REF-446 and ADR-022 D10.generator enum (orca, orca-2, phi, personahub, star, rest). Unknown pattern: ERROR.batch_size. Collect raw outputs.example-quality-assess with --min-grade from config's quality_threshold. Batch-level median below threshold emits a WARNING (not hard-fail; human reviews aggregate report).metadata.synthetic: true, metadata.synthetic_depth = (max seed depth + 1) or 1 if no seeds, metadata.generation_pattern = config's generator, metadata.source_refs = resolved seed IDs.derivedPages.synthesizedExamples — Via memory-ingest with topology contract enforcement. Reject any write that would land in rawExamples.synthetic-generate event — Via memory-log-append. Include: pattern, count_generated, count_accepted, median_quality, seed_count, max_seed_depth, and override_flag if --allow-recursive-synthetic was used.| Condition | Handling | |---|---| | Seed has synthetic_depth >= 1 without override | ERROR — halt, reference REF-446 + ADR-022 D10 | | Unknown generator value | ERROR — halt, list supported patterns | | Config schema validation failure | ERROR — halt, emit field-level error | | Batch-level median quality below quality_threshold | WARNING — continue, flag in aggregate report | | Individual example quality below threshold | Filter from batch per example-quality-assess output | | Teacher model API failure | Retry with backoff (max 3); on persistent failure, halt and persist partial batch |
bash# Orca-style distillation from a 10K seed set, first-generation synthetic synthetic-data-generator configs/orca-bootstrap.yaml --count 10000 # PersonaHub-style diversity generation, no seeds required (personas in config) synthetic-data-generator configs/personahub-instructions.yaml # ReST iteration 2 — explicitly allowing recursion over iteration-1 synthetic seeds synthetic-data-generator configs/rest-iter2.yaml \ --seed-examples "examples/synthesized/rest-iter1-*" \ --allow-recursive-synthetic
example-quality-assess — every generated batch is quality-assessed; batch-level median gates WARNINGmemory-ingest — topology-contract-enforced write to derivedPages.synthesizedExamplesmemory-log-append — emits the synthetic-generate structured eventOther measured skills in the registry, with their headline benchmark lift.