CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

databricks-synthetic-data-gen

Generate realistic synthetic data using Spark + Faker (strongly recommended). Supports serverless execution, multiple output formats (Parquet/JSON/CSV/Delta), and scales from thousands to millions of rows. For small datasets (<10K rows), can optionally generate locally and upload to volumes. Use when user mentions 'synthetic data', 'test data', 'generate data', 'demo dataset', 'Faker', or 'sample data'.

65

Quality

82%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is databricks-synthetic-data-gen in databricks/databricks-agent-skills

SKILL.md
Quality
Evals
Security

Quality

Content

73%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable skill body with an excellent gated workflow (plan approval → checklist → generation → SQL validation). Main weaknesses are redundancy (catalog and story rules stated multiple times) and two small correctness/discoverability gaps: the chained F.rand() weighted-category example doesn't produce the stated distribution, and the bundled generator script is never mentioned.

Suggestions

State the catalog/schema requirement once (e.g., in the opening callout or Critical Rules) and reference it from the workflow steps instead of repeating it four times; do the same for the business-story principles, which appear nearly verbatim in both the 'Data Must Tell a Business Story' section and Critical Rules 1-4.

Fix the weighted-category example to use a single random draw per row, e.g. r = (F.rand()*100).alias('p') then F.when(F.col('p') < 60, 'Free').when(F.col('p') < 90, 'Pro').otherwise('Enterprise'), so the stated 60/30/10 split is what the code actually produces.

Reference scripts/generate_synthetic_data.py from the body (e.g., in the References table or the Spark+Faker section) so the bundled generator is discoverable, and note how it relates to the inline code pattern.

DimensionReasoningScore

Conciseness

Mostly dense and rule-driven, but with real redundancy: the catalog/schema requirement is stated four times (opening callout, Critical Rule 6, 'MUST DO: Confirm Catalog', Step 1, plus the pre-generation checklist), the business-story principles are repeated nearly verbatim between the 'Data Must Tell a Business Story' section and Critical Rules 1-4, and the serverless .cache()/.persist() prohibition appears in both Critical Rule 11 and the Common Issues table. That repeated material is the 'some unnecessary explanation that could be tightened' of the 3 anchor, keeping it below 4.

3 / 5

Actionability

Concrete, mostly copy-paste-ready guidance throughout: full DatabricksSession/pandas_udf setup, partition counts by row scale, FK write-read-join pattern, log-normal parameters, uv install command, and a validation SQL query. Not 5 due to minor gaps: the weighted-category example 'F.when(F.rand() < 0.6, ...).when(F.rand() < 0.9, ...)' evaluates a fresh random per branch (yielding ~60/36/4, not 60/30/10), and CATALOG/SCHEMA are used undefined in snippets.

4 / 5

Workflow Clarity

Clear sequenced workflow with explicit checkpoints and validation: Step 1 gather requirements → Step 2 present plan for approval → Step 3 feature selection → a pre-generation checklist that gates code generation ('Do NOT proceed to code generation until user approves') → post-generation validation via SQL with row counts and referential integrity, plus a troubleshooting reference as the error-recovery loop. Matches the anchor-5 pattern of sequence + explicit validation + checklists; the batch-operation validation cap does not apply because a validation step is present.

5 / 5

Progressive Disclosure

Good structure: a 'When → Guide' references table clearly signals references/1-data-patterns.md and references/2-troubleshooting.md (both verified to exist, one level deep), and the body keeps advanced detail in those files. Not 5 because the bundle's scripts/generate_synthetic_data.py — a substantial executable generator — is never referenced or navigated to from the body, leaving a real bundle asset undiscoverable.

4 / 5

Total

16

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: third-person, concrete capabilities with formats/scale/thresholds, and an explicit trigger list with natural synonyms. Minor gaps are a slightly padded '(strongly recommended)' hedge, a few missing common synonyms (mock/fake data), and no mention of where output lands (Unity Catalog).

DimensionReasoningScore

Specificity

Lists several concrete capabilities — 'Generate realistic synthetic data using Spark + Faker', 'Supports serverless execution, multiple output formats (Parquet/JSON/CSV/Delta)', 'scales from thousands to millions of rows', 'For small datasets (<10K rows), can optionally generate locally and upload to volumes'. Falls short of the 5 anchor because it omits write targets (Unity Catalog/Delta tables) and pads with '(strongly recommended)', a hedge rather than a capability; above 3 because it names multiple specific actions with formats, scale, and a concrete row threshold.

4 / 5

Completeness

Explicitly answers both: what ('Generate realistic synthetic data using Spark + Faker... Parquet/JSON/CSV/Delta') and when ('Use when user mentions 'synthetic data', 'test data', 'generate data', 'demo dataset', 'Faker', or 'sample data''), matching the anchor-5 example's what+trigger structure. Voice is third person, so no penalty applies.

5 / 5

Trigger Term Quality

Good natural-term coverage: 'synthetic data', 'test data', 'generate data', 'demo dataset', 'Faker', 'sample data' — phrases users would actually say. Not 5 because common synonyms like 'mock data', 'fake data', 'dummy data', or 'populate/seed a table' are missing.

4 / 5

Distinctiveness Conflict Risk

Clear niche (synthetic/test data generation with Spark+Faker) with distinct triggers; matches 'mostly distinct; minor overlap risk'. Not 5 because 'sample data' and 'test data' are broad enough to also fire for data-sampling or testing-oriented skills.

4 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

databricks/devhub

Path

.databricks/aitools/skills/databricks-synthetic-data-gen/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.