ln-723-mockdata-migrator

from levnikolaevich/claude-code-skills

Greate Claude Code skills collection. Production-ready skills that cover the full delivery workflow — from research and discovery to epic planning, task breakdown, implementation, testing, code review, and quality gates.

65 stars13 forksUpdated Jan 25, 2026
npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-723-mockdata-migrator

SKILL.md

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 definitionsdrizzle_patterns.md
1.4Extract column definitionsdrizzle_patterns.md
1.5Identify constraints (PK, FK, nullable)drizzle_patterns.md
1.6Extract enum definitionsdrizzle_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 statustype_mapping.md
2.3Identify primary keystype_mapping.md
2.4Map foreign keysrelationship_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 classdata_generation.md
3.2Generate GUIDs for entitiesdata_generation.md
3.3Generate sample data per fielddata_generation.md
3.4Ensure FK relationships validrelationship_mapping.md
3.5Create accessor methodsdata_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
DrizzlepgTable(), mysqlTable(), sqliteTable()
Prismamodel X { syntax
TypeORM@Entity(), @Column() decorators

Entity Transformation Rules

SourceTargetTransformation
Table name (plural, snake)Class name (singular, Pascal)user_profilesUserProfile
Column name (snake)Property name (Pascal)created_atCreatedAt
Enum nameEnum type (Pascal)status_enumStatusEnum
FK columnNavigation propertyuser_idUserId

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

...

Read full content

Repository Stats

Stars65
Forks13
LicenseMIT License