agentsclimarketplace

Generate db diagram

Skill Flexonze/claude-init/.claude/skills/generate-db-diagram

Generate database diagram for a featureFrom its SKILL.md

Install
npx -y skills add Flexonze/claude-init --skill generate-db-diagram

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 10 stars10 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 2 commands, including `mkdir -p .claude/outputs && touch .claude/outputs/.gitkeep && cat << 'EOF' | npx -y @mermaid-js/mermaid-cli -i - -o .claude/outputs/db-diagram-<feature-name>.png` and 1 more.

SKILL.md

3.0 KB, 724 tokens by cl100k_base, as published. Nobody here has run it

Generate Database Diagram

Generate a Mermaid class diagram representing the database schema related to: $ARGUMENTS

Instructions

1. Identify Relevant Models/Tables

Search the codebase for models, entities, or schema definitions related to the specified feature.

Guidelines

  • Focus on the core tables/models needed to understand the feature's data structure
  • If a feature has many related models, prioritize the most important ones
  • If uncertain about which models to include, err on the side of including related models
  • Search thoroughly through the codebase to find all relevant schema definitions

2. Generate Mermaid Diagram

Follow these rules:

  • Use Mermaid class diagram syntax
  • Include only models directly related to the feature
  • Show only important fields (exclude: id, created_at, updated_at, timestamps unless critical)
  • Do NOT include field types UNLESS it's a relationship field
  • For relationship fields, show them as:
    • FK to ModelName (foreign key / belongs to)
    • O2O to ModelName (one-to-one)
    • M2M to ModelName (many-to-many)
  • Show relationships between models using Mermaid relationship syntax:
    • Model1 "1" --> "many" Model2 : relationship_name
    • Model1 "1" --> "1" Model2 : relationship_name
    • Model1 "many" --> "many" Model2 : relationship_name
  • Keep it clean and focused on the feature's data structure

Example Output

classDiagram
    class Project {
        name
        description
        status
        owner FK to User
    }

    class Task {
        title
        completed
        project FK to Project
        assignee FK to User
    }

    class User {
        email
        name
    }

    Task "many" --> "1" Project : project
    Task "many" --> "1" User : assignee
    Project "many" --> "1" User : owner

3. Generate the Diagram Image

  • Create a PNG image: .claude/outputs/db-diagram-<feature-name>.png (use kebab-case)
  • Create the .claude/outputs/ directory with a .gitkeep if it doesn't exist
  • No temporary files needed - pipe directly to mermaid-cli

Steps

  1. Pipe the Mermaid class diagram code directly to npx @mermaid-js/mermaid-cli using stdin:
    mkdir -p .claude/outputs && touch .claude/outputs/.gitkeep && cat << 'EOF' | npx -y @mermaid-js/mermaid-cli -i - -o .claude/outputs/db-diagram-<feature-name>.png
    classDiagram
        class Project {
            name
            description
            status
            owner FK to User
        }
    
        class Task {
            title
            completed
            project FK to Project
            assignee FK to User
        }
    
        class User {
            email
            name
        }
    
        Task "many" --> "1" Project : project
        Task "many" --> "1" User : assignee
        Project "many" --> "1" User : owner
    EOF
    
  2. Inform the user that the diagram has been created at .claude/outputs/db-diagram-<feature-name>.png

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.