From html-skills
Generate HTML entity-relationship diagrams (ERDs) and database schema visualizations with clickable tables, relationship paths, and migration before/after views. Use whenever the user has a database schema, data model, or table structure to document, explain, migrate, or explore — even when they call it a "data model", "schema diagram", or just "the tables". Reach for this any time the conversation touches database structure with more than ~3 tables.
How this skill is triggered — by the user, by Claude, or both
Slash command
/html-skills:html-erd-explorerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Database schemas are inherently visual — tables connected by foreign keys, with cardinality and direction. ERDs in markdown are awkward; in dedicated tools they're heavy. An HTML ERD is portable, embeddable in a doc, and click-to-explore.
Database schemas are inherently visual — tables connected by foreign keys, with cardinality and direction. ERDs in markdown are awkward; in dedicated tools they're heavy. An HTML ERD is portable, embeddable in a doc, and click-to-explore.
Tables rendered as cards/boxes with their columns listed. Foreign key relationships drawn as connecting lines with cardinality markers (1, *, etc.). Click a table to expand or focus.
Include a legend explaining symbols (PK, FK, indices, nullable).
These defaults apply to every artifact this skill produces, on top of the requirements above. If a rule above conflicts with this list, the rule above wins; otherwise these are non-negotiable.
.html file the user opens in a browser — never inline-render in chat. Every artifact this skill produces is a file on disk (<topic>-<kind>.html), not an HTML block embedded in the agent's chat surface (claude.ai artifact/canvas widgets, fenced html blocks, custom rendered iframes, etc.). Inline rendering strips features, themes unpredictably against the surrounding chat (often unreadable in dark mode), and lacks the stable origin and clipboard/network access the submit handler needs. Always write the file. The file itself must be self-contained: no build step, no external runtime, inline CSS and JS. Google Fonts via <link> is fine; otherwise nothing loaded from npm or a CDN unless this skill explicitly calls for it.localStorage / sessionStorage / IndexedDB. Claude.ai artifacts can't use browser storage. State lives in JS memory; the export / copy button is the persistence layer.<pre><code> (selectable, copyable). Tabular data goes in <table>. Diagrams are inline <svg> with real <g> and <path> elements, not embedded PNGs. The reader should be able to copy any value, line, or label out of the artifact.textContent for text and document.createElement + appendChild for structure. Never set innerHTML from a string that includes a variable, user input, computed value, or imported data — it's an XSS vector and many agent harnesses (including Claude Code) block it via security hooks. Static literal markup inline in your script is fine.:root so the whole artifact can be re-skinned in one place — and so design decisions are visible, not buried in 40 inline declarations.Cmd/Ctrl+P should produce something usable: backgrounds that carry meaning print, content doesn't get clipped, dark themes have a sane print fallback.<topic>-<kind>.html) so multiple artifacts on one project compose into a readable folder, not a pile of output.html collisions.┌─────────────────────────────┐
│ users │
├─────────────────────────────┤
│ 🔑 id uuid │
│ email text unique │
│ created_at timestamptz │
│ org_id uuid → orgs │
└─────────────────────────────┘
Each card shows:
All tables in the schema laid out. Useful for new-team-member onboarding. Group tables by domain (auth, billing, content). Include a sidebar list for navigation.
A focused view of 3–8 tables related to one feature. More detail per table (every column shown, types and constraints). Cross-references to tables outside the subschema shown as faded "context" cards.
Side-by-side or top-bottom: current schema on one side, target schema on the other. Diff annotations: added tables in green, removed in red, changed in amber. Migration steps listed below.
For complex migrations, support a "show intermediate state" toggle that displays the in-flight schema (e.g., during a column rename with a temporary new column).
Take a specific query (or a query pattern), highlight the tables it touches, the joins it makes, and the indexes it uses. Useful for explaining slow queries or for query optimization reviews.
Show where data flows between tables — typically for analytics/warehouse schemas. Source tables, transformation steps, materialized views, downstream tables. Direction = data movement.
ERDs look bad when auto-laid-out badly. For ≤8 tables, hand-position them. For more, group by domain and lay out by group.
users or orders) surrounded by satellitescart → orders → invoices → payments)If the layout starts looking like spaghetti, the schema probably is — note it, don't hide it.
For schemas larger than ~10 tables, add interaction:
For migration views:
Document our orders schema as an HTML ERD. Tables: users, orders, order_items, products, payments, refunds. Show columns, types, FKs, and primary keys. Group by domain.
Output: HTML file with six table cards laid out by domain (users in one group, products in another, orders/order_items/payments/refunds as the order-flow group), FKs drawn with crow's-foot cardinality, click-table-to-focus interaction, legend in the corner.
npx claudepluginhub f-labs-io/agent-html-skills --plugin html-skillsGenerates ERDs, Mermaid/PlantUML diagrams, schema docs, and insights from SQL dumps, ORM models (Prisma, SQLAlchemy, TypeORM), migrations, or live DBs.
Designs complete database schemas with tables, fields, indexes, ER diagrams for MySQL, PostgreSQL, SQL Server. Generates Markdown docs, SQL scripts, DrawDB JSON/DBML files.
Designs production-ready database schemas with tables, fields, indexes, ER diagrams, Markdown docs, SQL scripts, and DrawDB/DBML files for MySQL, PostgreSQL, SQL Server.