Claude-skill-registry ln-723-mockdata-migrator

Migrates mock data from Drizzle ORM schemas to C# MockData classes

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/levn-ln-723-mockdata-migrator" ~/.claude/skills/majiayu000-claude-skill-registry-ln-723-mockdata-migrator && rm -rf "$T"
manifest: skills/data/levn-ln-723-mockdata-migrator/SKILL.md
source content

ln-723-mockdata-migrator

Type: L3 Worker Category: 7XX Project Bootstrap Parent: ln-720-structure-migrator

Migrates mock data from ORM schemas to .NET MockData classes with realistic sample data.


Purpose & Scope

AspectDescription
InputORM schema files (Drizzle, Prisma, TypeORM)
OutputC# MockData static classes
Primary ORMDrizzle (others supported)

Scope boundaries:

  • Parses ORM schema definitions
  • Generates C# entities and MockData classes
  • Creates realistic sample data
  • Does not generate database migrations or EF Core configs

Workflow

PhaseNameActionsOutput
1Parse SchemaRead ORM file, extract table definitionsEntity model
2Map TypesApply type mapping rules, detect nullableC# type definitions
3Generate MockDataCreate static class, generate sample dataMockData.cs files
4VerifyCompile check, relationship validationValid C# code

Phase 1: Parse Schema

Extract entity definitions from ORM schema.

StepActionReference
1.1Locate schema file(s)
1.2Identify ORM type (Drizzle/Prisma/TypeORM)Detect by syntax
1.3Extract table definitions
drizzle_patterns.md
1.4Extract column definitions
drizzle_patterns.md
1.5Identify constraints (PK, FK, nullable)
drizzle_patterns.md
1.6Extract enum definitions
drizzle_patterns.md

Output: Entity model with columns, types, and constraints.


Phase 2: Map Types

Convert ORM types to C# types.

StepActionReference
2.1Map column types to C#
type_mapping.md
2.2Determine nullable status
type_mapping.md
2.3Identify primary keys
type_mapping.md
2.4Map foreign keys
relationship_mapping.md
2.5Transform names (snake_case → PascalCase)
drizzle_patterns.md

Type mapping summary:

ORM TypeC# TypeNullable Rule
uuidGuidNo (PK), Depends (FK)
varcharstringCheck .notNull()
integerintNo
booleanboolNo
timestampDateTimeDepends

Phase 3: Generate MockData

Create C# MockData class with sample data.

StepActionReference
3.1Create MockData class
data_generation.md
3.2Generate GUIDs for entities
data_generation.md
3.3Generate sample data per field
data_generation.md
3.4Ensure FK relationships valid
relationship_mapping.md
3.5Create accessor methods
data_generation.md

Generation order by dependency:

OrderEntity TypeGenerate After
1Root entities (no FK)First
2First-level childrenParents exist
3Second-level childrenGrandparents exist
NDeepest childrenAll ancestors exist

Phase 4: Verify

Validate generated code.

CheckMethodExpected
Syntax validCompile checkNo errors
FKs validCross-referenceAll FKs point to existing IDs
Types correctType analysisProper C# types
Names follow conventionPattern checkPascalCase

Supported ORM Detection

ORMDetection Pattern
Drizzle
pgTable()
,
mysqlTable()
,
sqliteTable()
Prisma
model X {
syntax
TypeORM
@Entity()
,
@Column()
decorators

Entity Transformation Rules

SourceTargetTransformation
Table name (plural, snake)Class name (singular, Pascal)
user_profiles
UserProfile
Column name (snake)Property name (Pascal)
created_at
CreatedAt
Enum nameEnum type (Pascal)
status_enum
StatusEnum
FK columnNavigation property
user_id
UserId

MockData Class Structure

ComponentPurpose
Private static listHolds immutable mock data
GetAll() methodReturns full list as IEnumerable
GetById(Guid id)Finds single entity by ID
GetBy{FK}Id(Guid id)Filters by foreign key

Sample Data Guidelines

Field TypeSample CountDistribution
Root entities3-5 itemsVaried status/priority
Child entities5-10 itemsDistributed across parents
Leaf entities10-20 itemsRealistic variety

Critical Rules

  • Single Responsibility: Generate only MockData, no database code
  • Idempotent: Can re-run to regenerate
  • Valid Relationships: All FKs must reference existing parent IDs
  • Realistic Data: Use domain-appropriate values, not random strings
  • Generation Order: Parents before children
  • Consistent GUIDs: Use fixed GUIDs for reproducibility

Definition of Done

  • Schema file parsed successfully
  • All tables/entities extracted
  • Type mappings applied correctly
  • MockData class generated per feature/entity group
  • Sample data includes 5-10 items per entity
  • Foreign keys reference valid parent IDs
  • Accessor methods generated (GetAll, GetById)
  • Code compiles without errors

Risk Mitigation

RiskDetectionMitigation
Parse failureException during parseSupport multiple schema formats
Invalid type mappingUnknown ORM typeLog warning, use string as fallback
FK mismatchFK references non-existent IDGenerate parents first, validate after
Name collisionDuplicate class namesPrefix with feature name
Circular referencesSelf-referencing with cyclesLimit depth, validate graph

Reference Files

FilePurpose
references/type_mapping.md
ORM to C# type conversion rules
references/drizzle_patterns.md
Drizzle schema parsing patterns
references/data_generation.md
Realistic sample data patterns
references/relationship_mapping.md
FK handling and generation order

Version: 2.0.0 Last Updated: 2026-01-10