Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA standards. Use this skill to generate semantic ARIA for Web and accessibility traits for Web and Native platforms (iOS/Android).
日本語の概要は準備中です。原文の説明を表示しています。
Universal seed data generator: MIGRATE from ORM schemas or GENERATE from entity definitions to any target format
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Paths: File paths (
shared/,references/,../ln-*) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.
Type: L3 Worker Category: 7XX Project Bootstrap Parent: ln-720-structure-migrator
Universal seed data generator with two modes: MIGRATE (parse existing ORM schemas) or GENERATE (create from entity definitions). Outputs to any target format (C#, TypeScript, Python, JSON, SQL).
| Aspect | Description |
|---|---|
| Input | ORM schema files (MIGRATE) or entity list (GENERATE) |
| Output | Seed data files in target format |
| Modes | MIGRATE: parse existing ORM → seed data. GENERATE: entity definitions → seed data |
Scope boundaries:
| Mode | When | Input | Source |
|---|---|---|---|
| MIGRATE | TRANSFORM pipeline — existing ORM schemas found | ORM schema files | Drizzle, Prisma, TypeORM, EF Core, SQLAlchemy, Django ORM |
| GENERATE | CREATE pipeline — no existing schemas | Entity list from ln-700 Phase 0 | User-provided or starter template (User, Role) |
If GENERATE mode receives no entity list, generate starter template with User (id, name, email, role, createdAt) and Role (id, name, description).
| Format | Output File | Faker Library | Use Case |
|---|---|---|---|
| C# MockData | MockData.cs | Bogus | .NET projects |
| TypeScript fixtures | seed.ts | Faker.js | Node/React projects |
| Python factories | factories.py | Faker (Python) | Django/Flask projects |
| JSON | seed.json | — | API testing, import scripts |
| SQL | seed.sql | — | Direct DB seeding |
| Phase | Name | Actions | Output |
|---|---|---|---|
| 1 | Parse/Define | 1A: Parse ORM schema (MIGRATE) or 1B: Accept entity list (GENERATE) | Entity model |
| 2 | Map Types | Apply universal type mapping to target format | Target type definitions |
| 3 | Generate Seed Data | Create seed files with faker-based realistic data | Seed data files |
| 4 | Verify | Validate relationships, check syntax | Valid seed files |
| Step | Action | Reference |
|---|---|---|
| 1A.1 | Locate schema file(s) | — |
| 1A.2 | Auto-detect ORM type | orm_patterns.md — ORM Auto-Detection table |
| 1A.3 | Extract table/model definitions | orm_patterns.md — per-ORM parsing section |
| 1A.4 | Extract column definitions with types | orm_patterns.md |
| 1A.5 | Identify constraints (PK, FK, nullable, unique) | orm_patterns.md |
| 1A.6 | Extract enum definitions | orm_patterns.md |
| Step | Action | Reference |
|---|---|---|
| 1B.1 | Receive entity list from orchestrator (or use starter template) | — |
| 1B.2 | Parse entity definitions (name, fields, types) | — |
| 1B.3 | Infer relationships from field names (userId → FK to User) | relationship_mapping.md |
| 1B.4 | Apply default constraints (id = PK, *Id = FK) | — |
Output: Entity model with columns, types, and constraints.
Convert entity types to target format types.
| Step | Action | Reference |
|---|---|---|
| 2.1 | Select target format (from orchestrator params) | — |
| 2.2 | Map column types to target format | type_mapping.md — Universal Type Mapping table |
| 2.3 | Determine nullable status per target | type_mapping.md |
| 2.4 | Map foreign keys and relationships | relationship_mapping.md |
| 2.5 | Transform names to target convention | See Name Conventions table below |
Name Conventions by Target:
| Target | Class/Model | Property/Field | File |
|---|---|---|---|
| C# | PascalCase singular | PascalCase | PascalCase.cs |
| TypeScript | PascalCase singular | camelCase | camelCase.ts |
| Python | PascalCase singular | snake_case | snake_case.py |
| JSON | camelCase | camelCase | kebab-case.json |
| SQL | snake_case plural | snake_case | snake_case.sql |
Create seed files with realistic data using faker libraries.
| Step | Action | Reference |
|---|---|---|
| 3.1 | Determine generation order (parents → children) | relationship_mapping.md |
| 3.2 | Generate IDs (GUIDs/UUIDs) for all entities | data_generation.md |
| 3.3 | Generate field values using faker | data_generation.md, type_mapping.md — Faker Integration |
| 3.4 | Ensure FK relationships valid (child references existing parent ID) | relationship_mapping.md |
| 3.5 | Write seed file in target format | — |
Faker integration rule: All generated seed files MUST use faker libraries for realistic data with deterministic seeding (fixed seed value for reproducibility).
| Target | Faker Setup |
|---|---|
| C# | var faker = new Bogus.Faker(); Randomizer.Seed = new Random(42); |
| TypeScript | import { faker } from '@faker-js/faker'; faker.seed(42); |
| Python | from faker import Faker; fake = Faker(); Faker.seed(42) |
Generation order by dependency:
| Order | Entity Type | Generate After |
|---|---|---|
| 1 | Root entities (no FK) | First |
| 2 | First-level children | Parents exist |
| 3 | Second-level children | Grandparents exist |
| N | Deepest children | All ancestors exist |
| Check | Method | Expected |
|---|---|---|
| Syntax valid | Language-specific check | No syntax errors |
| FKs valid | Cross-reference | All FKs point to existing IDs |
| Types correct | Type analysis | Proper types for target format |
| Names follow convention | Pattern check | Per-target naming convention |
| Faker deterministic | Re-run with same seed | Identical output |
| ORM | Detection Pattern | Ecosystem |
|---|---|---|
| Drizzle | pgTable(), mysqlTable(), sqliteTable() | Node.js |
| Prisma | model X { syntax in .prisma files | Node.js |
| TypeORM | @Entity(), @Column() decorators | Node.js |
| EF Core | DbContext, DbSet<>, [Table] attributes | .NET |
| SQLAlchemy | Base = declarative_base(), Column() | Python |
| Django ORM | models.Model, models.CharField() | Python |
| Source | Target | Transformation |
|---|---|---|
| Table name (plural, snake) | Class name (singular, Pascal) | user_profiles → UserProfile |
| Column name (snake) | Property name (target convention) | created_at → CreatedAt / createdAt / created_at |
| Enum name | Enum type (Pascal) | status_enum → StatusEnum |
| FK column | Navigation property | user_id → UserId / userId |
| Field Type | Sample Count | Distribution |
|---|---|---|
| Root entities | 3-5 items | Varied status/priority |
| Child entities | 5-10 items | Distributed across parents |
| Leaf entities | 10-20 items | Realistic variety |
| Risk | Detection | Mitigation |
|---|---|---|
| Unknown ORM type | Auto-detection fails | Log warning, ask orchestrator for ORM hint |
| Invalid type mapping | Unknown column type | Use string as fallback, log warning |
| FK mismatch | FK references non-existent ID | Generate parents first, validate after |
| No entity list in GENERATE | Empty input | Use starter template (User, Role) |
| Name collision | Duplicate class/table names | Prefix with feature name |
| Circular references | Self-referencing with cycles | Limit depth, validate graph |
| File | Purpose |
|---|---|
references/orm_patterns.md | ORM auto-detection and schema parsing patterns (Drizzle, Prisma, TypeORM, EF Core, SQLAlchemy, Django) |
references/type_mapping.md | Universal type mapping (ORM-agnostic → C#, TypeScript, Python) + Faker integration |
references/data_generation.md | Realistic sample data patterns and generation rules |
references/relationship_mapping.md | FK handling, generation order, relationship inference |
Version: 3.0.0 Last Updated: 2026-02-07
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA standards. Use this skill to generate semantic ARIA for Web and accessibility traits for Web and Native platforms (iOS/Android).
日本語の概要は準備中です。原文の説明を表示しています。
Whole site or product — a full web accessibility (a11y) audit against WCAG 2.2, following the WCAG-EM methodology. Defines scope, samples representative pages and flows, runs the automated tier (`accessibility-scan`) and the hands-on manual tier (`accessibility-inspect`), and produces one conformance report. Grades each finding by severity and evidence basis, and states per-criterion conformance as pass, fail, or undetermined (needs a human). Use it for 'audit my site for accessibility', 'is this product accessible', 'a11y audit', 'WCAG or Section 508 conformance report', or any multi-page assessment. Assesses; does not fix (use `accessibility-fix`) or diff (use `accessibility-diff`). For a single page use `accessibility-scan`; for hands-on keyboard and screen-reader checks use `accessibility-inspect`.
日本語の概要は準備中です。原文の説明を表示しています。
Regression check — diff a live page's web accessibility (a11y) violations against a baseline. By default it compares your uncommitted changes (stash-based); pass `--branch [<name>]` to compare against a branch. Reports the new WCAG violations introduced, the ones fixed, and the count of pre-existing ones. Use it for 'did my change break accessibility', 'what a11y issues did this PR add', or as a CI gate. For a full scan of one page use `accessibility-scan`; for a whole site use `accessibility-audit`.
日本語の概要は準備中です。原文の説明を表示しています。
Remediation only — repair web accessibility (a11y) violations against WCAG 2.2 with a baseline, edit, and verify loop. Takes a target (URL, files, directory) or a findings worklist from `accessibility-scan`/`accessibility-inspect`/`accessibility-audit`, applies mechanical fixes as given, leaves TODOs for visual or contextual judgment, and verifies by re-running the baseline check. It only fixes. To find issues use `accessibility-scan` (one page, automated), `accessibility-inspect` (one page, manual), or `accessibility-audit` (whole site, WCAG-EM); to check for regressions use `accessibility-diff`. Use it for 'fix the a11y issues in X', 'make this accessible', 'add missing alt text and labels', 'apply these accessibility fixes', 'remediate these violations'.
日本語の概要は準備中です。原文の説明を表示しています。
One page, hands-on manual tier — drive a live page through the web accessibility (a11y) checks a rule engine can't decide: keyboard operation and focus order, screen-reader names, roles and states from the accessibility tree, reflow and zoom, reduced motion, form errors, and target size. Grades each finding by evidence basis (verified / confirm-with-a-human / human-required) and severity, and closes every criterion in a ledger: verified, flagged, not exercised, or N/A. Locates and assesses; does not fix (use `accessibility-fix`). Use it for keyboard testing, focus-order checks, screen-reader or a11y-tree review, reflow and zoom at 200%, or 'is this operable, not just lint-clean'. The automated tier is `accessibility-scan`; `accessibility-audit` runs both across a sampled site.
日本語の概要は準備中です。原文の説明を表示しています。
One page, automated tier — run the web accessibility (a11y) rule engine against a live page and locate every violation it can detect mechanically. Pass a URL, a config target name (e.g. `accesslint:accessibility-scan dev`), or nothing to use the default target from `accesslint.config.json`. Ensures a debuggable Chrome, runs the @accesslint/core engine over CDP, and returns a worklist of live-DOM WCAG 2.2 violations, each grounded to its DOM selector and source `file:line`. Locates; doesn't edit. Use it for 'is this page accessible', 'check a11y on this URL', 'find contrast and alt-text issues', or to verify a UI change. For hands-on keyboard and screen-reader checks use `accessibility-inspect`; for a whole site or product use `accessibility-audit`; to diff against uncommitted changes or a branch use `accessibility-diff`.
日本語の概要は準備中です。原文の説明を表示しています。