Drizzle Erd
hiroppy/mf-dashboard
A skill your agent uses when needing to visualize database schema, generate ERD diagrams from Drizzle ORM schemas, or understand table relationships
Extract database schemas, data models, and entity relationships from code.
$ npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install EmeaAppGbb/spec2cloud data-model-extractor --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/EmeaAppGbb/spec2cloud.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/data-model-extractor .claude/skills/data-model-extractor && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "data-model-extractor" agent skill from https://github.com/EmeaAppGbb/spec2cloud/tree/vNext/.github/skills/data-model-extractor into .claude/skills/data-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-model-extractor", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/EmeaAppGbb/spec2cloud/tree/vNext/.github/skills/data-model-extractorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install EmeaAppGbb/spec2cloud data-model-extractor --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EmeaAppGbb/spec2cloud.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/data-model-extractor .agents/skills/data-model-extractor && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "data-model-extractor" agent skill from https://github.com/EmeaAppGbb/spec2cloud/tree/vNext/.github/skills/data-model-extractor into .agents/skills/data-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-model-extractor", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install EmeaAppGbb/spec2cloud data-model-extractor --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EmeaAppGbb/spec2cloud.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/data-model-extractor .cursor/skills/data-model-extractor && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "data-model-extractor" agent skill from https://github.com/EmeaAppGbb/spec2cloud/tree/vNext/.github/skills/data-model-extractor into .cursor/skills/data-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-model-extractor", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/EmeaAppGbb/spec2cloud.git --path .github/skills/data-model-extractor--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install EmeaAppGbb/spec2cloud data-model-extractor --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EmeaAppGbb/spec2cloud.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/data-model-extractor .gemini/skills/data-model-extractor && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "data-model-extractor" agent skill from https://github.com/EmeaAppGbb/spec2cloud/tree/vNext/.github/skills/data-model-extractor into .gemini/skills/data-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-model-extractor", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install EmeaAppGbb/spec2cloud data-model-extractorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/EmeaAppGbb/spec2cloud.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/data-model-extractor .github/skills/data-model-extractor && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "data-model-extractor" agent skill from https://github.com/EmeaAppGbb/spec2cloud/tree/vNext/.github/skills/data-model-extractor into .github/skills/data-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-model-extractor", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install EmeaAppGbb/spec2cloud data-model-extractor --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EmeaAppGbb/spec2cloud.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/data-model-extractor .opencode/skills/data-model-extractor && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "data-model-extractor" agent skill from https://github.com/EmeaAppGbb/spec2cloud/tree/vNext/.github/skills/data-model-extractor into .opencode/skills/data-model-extractor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "data-model-extractor", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
data-model-extractorExtract database schemas, data models, and entity relationships from code.
Data Model Extractor is an agent skill from EmeaAppGbb/spec2cloud. Extract database schemas, data models, and entity relationships from code. Produce Mermaid ERD diagrams. Pure extraction from ORM models, migration files, and schema definitions — no assessment of normalization, no suggestions for schema changes, no judgment on data modeling decisions.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases, covering Database schema design, Diagrams and ORMs and data access. It works with Mermaid, Prisma, Mongoose and SQL. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8e76618. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are mermaid and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Data Model Extractor loads about 2.5k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 876 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from EmeaAppGbb/spec2cloud at commit 8e76618, republished under its MIT licence (© EmeaAppGbb). 876 words, ~2,525 tokens.
.claude/skills/data-model-extractor/SKILL.md (or your agent's skills folder).You are the Data Model Extractor — a factual agent that reads ORM models, migration files, raw SQL schemas, and configuration to produce a complete picture of the project's data layer. You extract entities, fields, types, relationships, indexes, and constraints.
You are a surveyor, not a consultant. You measure and record what exists. You
NEVER assess normalization level, suggest schema changes, flag "missing" indexes,
or comment on data modeling quality. If the schema has a users table with 47
columns and no indexes, you document exactly that.
codebase-scanner (specs/docs/technology/stack.md) if
available — to know which ORM/database technologies to look forarchitecture-mapper if available — to understand which
services own which dataDetermine how the project defines its data model:
| Technology | Files to Scan |
|---|---|
| Prisma | schema.prisma, prisma/schema.prisma |
| TypeORM | *.entity.ts, files with @Entity() decorator |
| Sequelize | *.model.ts, files with sequelize.define(), migration files |
| Drizzle | schema.ts files with pgTable/mysqlTable definitions |
| MikroORM | *.entity.ts with @Entity() from @mikro-orm/core |
| Mongoose | *.model.ts, files with mongoose.Schema / mongoose.model |
| SQLAlchemy | models.py, files with class X(Base) or class X(db.Model) |
| Django ORM | models.py with class X(models.Model) |
| Entity Framework | *.cs with DbContext, entity classes, *.Designer.cs |
| Hibernate/JPA | *.java with @Entity, @Table annotations |
| GORM | *.go with gorm.Model embedding |
| ActiveRecord | *.rb with class X < ApplicationRecord, db/schema.rb |
| Diesel | schema.rs, *.rs with diesel macros |
| Raw SQL | *.sql files in migrations/, db/, sql/ directories |
| Knex | Migration files in migrations/, knex config |
A project may use multiple approaches. Document all of them.
For each entity/model/table found, extract:
VARCHAR(255), String, text, INTEGER)createdAt/updatedAt/deletedAt fields present?
Is soft delete used?Identify all entity relationships:
| Relationship Type | What to Look For |
|---|---|
| One-to-One | @OneToOne, hasOne, ForeignKey with unique constraint, belongs_to + unique |
| One-to-Many | @OneToMany/@ManyToOne, hasMany/belongsTo, foreign key columns |
| Many-to-Many | @ManyToMany, join tables, has_and_belongs_to_many, intermediate models |
| Self-referential | Entity referencing itself (e.g., parentId on same table) |
| Polymorphic | type + id columns referencing different tables |
For each relationship, record:
Document all declared indexes and constraints:
If migration files exist, extract the schema evolution:
Look for data seeding mechanisms:
seeds/, fixtures/, data/)Document what seed data exists and which entities it populates.
Produce Mermaid Entity-Relationship Diagrams:
erDiagram
USERS {
uuid id PK
varchar email UK
varchar password_hash
varchar name
timestamp created_at
timestamp updated_at
}
POSTS {
uuid id PK
uuid author_id FK
varchar title
text content
varchar status
timestamp published_at
timestamp created_at
}
COMMENTS {
uuid id PK
uuid post_id FK
uuid user_id FK
text content
timestamp created_at
}
USERS ||--o{ POSTS : "authors"
USERS ||--o{ COMMENTS : "writes"
POSTS ||--o{ COMMENTS : "has"If the schema is large (>15 entities), produce multiple diagrams grouped by domain/feature area.
Produce specs/docs/architecture/data-models.md:
# Data Models — [Project Name]
_Extracted on [date]. Documents the data layer as defined in code._
## Data Layer Technology
| Aspect | Value |
|--------|-------|
| ORM/ODM | Prisma 5.8.0 |
| Database | PostgreSQL (inferred from provider config) |
| Migration tool | Prisma Migrate |
| Migration count | 23 |
| Schema source | prisma/schema.prisma |
## Entity-Relationship Diagram
[Mermaid ERD — full or grouped by domain]
## Entity Catalog
### Entity: User
| Field | Type | Nullable | Default | Key | Notes |
|-------|------|----------|---------|-----|-------|
| id | UUID | No | uuid_generate_v4() | PK | Auto-generated |
| email | VARCHAR(255) | No | — | UK | — |
| passwordHash | VARCHAR(255) | No | — | — | — |
| name | VARCHAR(100) | Yes | NULL | — | — |
| role | ENUM(admin,user) | No | 'user' | — | — |
| createdAt | TIMESTAMP | No | now() | — | Auto-set |
| updatedAt | TIMESTAMP | No | now() | — | Auto-updated |
**Relationships:**
- User → Posts (one-to-many via Post.authorId)
- User → Comments (one-to-many via Comment.userId)
**Indexes:**
- `users_email_key` — UNIQUE on (email)
- `users_role_idx` — BTREE on (role)
[Repeat for each entity]
## Relationship Summary
| Source | Target | Type | FK Column | Cascade |
|--------|--------|------|-----------|---------|
| Post | User | Many-to-One | authorId | SET NULL |
| Comment | Post | Many-to-One | postId | CASCADE |
| Comment | User | Many-to-One | userId | SET NULL |
## Migration History
| # | Name | Date | Operations |
|---|------|------|-----------|
| 1 | 20240101_init | 2024-01-01 | Create users, posts tables |
| 2 | 20240115_add_comments | 2024-01-15 | Create comments table |
| ... | ... | ... | ... |
## Model vs Migration Discrepancies
[List any differences between ORM models and migration state, or "None found"]
## Seed Data
[Document any seed/fixture files found]String, write String.
If SQL says VARCHAR(255), write VARCHAR(255).The orchestrator MUST verify ALL of the following before marking data-model-extractor as complete:
specs/docs/architecture/data-models.md exists with a Mermaid ERD diagramBLOCKING: If any item is unchecked, the skill has NOT completed successfully. The orchestrator must loop back and complete the missing items before advancing to the next extraction step.
© EmeaAppGbb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/data-model-extractor of EmeaAppGbb/spec2cloud.
Open the folder on GitHubat commit 8e76618
Data Model Extractor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Data Model Extractor this skillEmeaAppGbb/spec2cloud | 100 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Drizzle Erdhiroppy/mf-dashboard | 418 | — | ~627 | Automated safety check: Pass | MIT | |
| Database FundamentalsDanielPodolsky/ownyourcode | 290 | 1 repos | ~1.6k | Automated safety check: Pass | MIT | |
| DB SculptorEliasOulkadi/shokunin | 114 | — | ~3.1k | Automated safety check: Notes | MIT | |
| Prisma Migrationopenathleteorg/openathlete | 100 | — | ~575 | Automated safety check: Pass | AGPL-3.0 | |
| Drizzle Orm Expertdavila7/claude-code-templates | 32k | 3 repos | ~2.6k | Automated safety check: Pass | MIT |
hiroppy/mf-dashboard
A skill your agent uses when needing to visualize database schema, generate ERD diagrams from Drizzle ORM schemas, or understand table relationships
DanielPodolsky/ownyourcode
Reviews schema design, SQL queries, ORM patterns. An agent skill from DanielPodolsky/ownyourcode.
EliasOulkadi/shokunin
Design database schemas with Prisma/Drizzle, PostgreSQL index strategy (B-tree, GIN, GiST, BRIN, Hash), query optimization (EXPLAIN ANALYZE), migration safety (expand/contract, zero-downtime), and…
openathleteorg/openathlete
Change the OpenAthlete database schema safely with Prisma, covering the migration SQL, production safety, account deletion coverage and tests.
davila7/claude-code-templates
Expert in Drizzle ORM for TypeScript — schema design, relational queries, migrations, and serverless database integration.
TencentCloudBase/CloudBase-AI-Toolkit
[Deprecated] Optional advanced tool for complex data modeling.
EmeaAppGbb/spec2cloud
Provision Azure infrastructure, deploy to Azure Container Apps, and verify via smoke tests.
EmeaAppGbb/spec2cloud
Generate API contracts, shared TypeScript types, and infrastructure resource definitions from Gherkin scenarios and test files.
EmeaAppGbb/spec2cloud
Create Domain-Driven Design proposals from product specs or brownfield extraction outputs.
EmeaAppGbb/spec2cloud
Write application code to make failing tests pass using contract-driven, slice-based architecture.
EmeaAppGbb/spec2cloud
Review PRDs and FRDs through product and technical lenses. An agent skill from EmeaAppGbb/spec2cloud.
EmeaAppGbb/spec2cloud
Read, write, and maintain .spec2cloud/state.json across phases and increments.
Categories
Extract database schemas, data models, and entity relationships from code. Data Model Extractor is an agent skill from EmeaAppGbb/spec2cloud. Extract database schemas, data models, and entity relationships from code.
Data Model Extractor fits situations like: tasks that involve Database schema design; tasks that involve Diagrams; tasks that involve ORMs and data access.
Run `npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a claude-code`. Or copy the skill folder (.github/skills/data-model-extractor in EmeaAppGbb/spec2cloud) into .claude/skills/data-model-extractor in your project. Claude Code loads it when a task matches its description.
Run `npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a codex`. Or copy the skill folder (.github/skills/data-model-extractor in EmeaAppGbb/spec2cloud) into .agents/skills/data-model-extractor in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add EmeaAppGbb/spec2cloud --skill data-model-extractor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/data-model-extractor, .gemini/skills/data-model-extractor, .github/skills/data-model-extractor and .opencode/skills/data-model-extractor in your project.
SKILL.md names no scripts, command-line tools or credentials: Data Model Extractor is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Data Model Extractor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Data Model Extractor: Drizzle Erd (hiroppy/mf-dashboard, 418 stars), Database Fundamentals (DanielPodolsky/ownyourcode, 290 stars), DB Sculptor (EliasOulkadi/shokunin, 114 stars) and Prisma Migration (openathleteorg/openathlete, 100 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
EmeaAppGbb (a GitHub organization) maintains it in EmeaAppGbb/spec2cloud, which has 100 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on April 16, 2026.
Source: EmeaAppGbb/spec2cloud on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.