🎯

sf-diagram-mermaid

🎯Skill

from jaganpro/claude-code-sfskills

VibeIndex|
What it does

Generates Salesforce architecture diagrams using Mermaid, creating visual representations of OAuth flows, data models, integrations, and system landscapes.

πŸ“¦

Part of

jaganpro/claude-code-sfskills(20 items)

sf-diagram-mermaid

Installation

PythonRun Python server
python3 scripts/query-org-metadata.py --objects Account,Contact --target-org myorg
πŸ“– Extracted from docs: jaganpro/claude-code-sfskills
1Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

>

Overview

# sf-diagram-mermaid: Salesforce Diagram Generation

Expert diagram creator specializing in Salesforce architecture visualization. Generate clear, accurate, production-ready diagrams using Mermaid syntax with ASCII fallback for terminal compatibility.

Core Responsibilities

  1. Diagram Generation: Create Mermaid diagrams from requirements or existing metadata
  2. Multi-Format Output: Provide both Mermaid code and ASCII art fallback
  3. sf-metadata Integration: Auto-discover objects/fields for ERD diagrams
  4. Validation & Scoring: Score diagrams against 5 categories (0-80 points)

Supported Diagram Types

| Type | Mermaid Syntax | Use Case |

|------|---------------|----------|

| OAuth Flows | sequenceDiagram | Authorization Code, JWT Bearer, PKCE, Device Flow |

| Data Models | flowchart LR | Object relationships with color coding (preferred) |

| Integration Sequences | sequenceDiagram | API callouts, event-driven flows |

| System Landscapes | flowchart | High-level architecture, component diagrams |

| Role Hierarchies | flowchart | User hierarchies, profile/permission structures |

| Agentforce Flows | flowchart | Agent β†’ Topic β†’ Action flows |

Workflow (5-Phase Pattern)

Phase 1: Requirements Gathering

Use AskUserQuestion to gather:

  • Diagram type (OAuth, ERD, Integration, Landscape, Role Hierarchy, Agentforce)
  • Specific flow or scope (e.g., "JWT Bearer flow" or "Account-Contact-Opportunity model")
  • Output preference (Mermaid only, ASCII only, or Both)
  • Any custom styling requirements

Then:

  1. If ERD requested, check for sf-metadata availability
  2. Create TodoWrite tasks for multi-diagram requests

Phase 2: Template Selection

Select template based on diagram type:

| Diagram Type | Template File |

|--------------|---------------|

| Authorization Code Flow | oauth/authorization-code.md |

| Authorization Code + PKCE | oauth/authorization-code-pkce.md |

| JWT Bearer Flow | oauth/jwt-bearer.md |

| Client Credentials Flow | oauth/client-credentials.md |

| Device Authorization Flow | oauth/device-authorization.md |

| Refresh Token Flow | oauth/refresh-token.md |

| Data Model (ERD) | datamodel/salesforce-erd.md |

| Integration Sequence | integration/api-sequence.md |

| System Landscape | architecture/system-landscape.md |

| Role Hierarchy | role-hierarchy/user-hierarchy.md |

| Agentforce Flow | agentforce/agent-flow.md |

Template Path Resolution (try in order):

  1. Marketplace folder (always available): ~/.claude/plugins/marketplaces/sf-skills/sf-diagram-mermaid/templates/[template]
  2. Project folder (if working in sf-skills repo): [project-root]/sf-diagram-mermaid/templates/[template]
  3. Cache folder (if installed individually): ~/.claude/plugins/cache/sf-diagram-mermaid/*/sf-diagram-mermaid/templates/[template]

Example: To load JWT Bearer template:

```

Read: ~/.claude/plugins/marketplaces/sf-skills/sf-diagram-mermaid/templates/oauth/jwt-bearer.md

```

Phase 3: Data Collection

For OAuth Diagrams:

  • Use standard actors (Browser, Client App, Salesforce)
  • Apply CloudSundial-inspired styling
  • Include all protocol steps with numbered sequence

For ERD/Data Model Diagrams:

  1. If org connected, query record counts for LDV indicators:

```bash

python3 scripts/query-org-metadata.py --objects Account,Contact --target-org myorg

```

  1. Identify relationships (Lookup vs Master-Detail)
  2. Determine object types (Standard, Custom, External)
  3. Generate flowchart LR with color coding (preferred format)

For Integration Diagrams:

  • Identify all systems involved
  • Capture request/response patterns
  • Note async vs sync interactions

Phase 4: Diagram Generation

Generate Mermaid code:

  1. Apply color scheme from docs/color-palette.md
  2. Add annotations and notes where helpful
  3. Include autonumber for sequence diagrams
  4. For data models: Use flowchart LR with object-type color coding
  5. Keep ERD objects simple - show object name and record count only (no fields)

Generate ASCII fallback:

  1. Use box-drawing characters: β”Œ ─ ┐ β”‚ β”” β”˜ β”œ ─ ┬ β”΄ β”Ό
  2. Use arrows: ──> <── ─── ─┼─
  3. Keep width under 80 characters when possible

Run Validation:

```

Score: XX/80 ⭐⭐⭐⭐ Rating

β”œβ”€ Accuracy: XX/20 (Correct actors, flow steps, relationships)

β”œβ”€ Clarity: XX/20 (Easy to read, proper labeling)

β”œβ”€ Completeness: XX/15 (All relevant steps/entities included)

β”œβ”€ Styling: XX/15 (Color scheme, theming, annotations)

└─ Best Practices: XX/10 (Proper notation, UML conventions)

```

Phase 5: Output & Documentation

Delivery Format:

````markdown

πŸ“Š [Diagram Title]

Mermaid Diagram

```mermaid

[Generated Mermaid code]

```

ASCII Fallback

```

[Generated ASCII diagram]

```

Key Points

  • [Important note 1]
  • [Important note 2]

Diagram Score

[Validation results]

````

Phase 5.5: Preview (Optional)

Offer localhost preview for real-time diagram iteration. See [references/preview-guide.md](references/preview-guide.md) for setup instructions.

---

Mermaid Styling Guide

Use Tailwind 200-level pastel fills with dark strokes. See [references/mermaid-styling.md](references/mermaid-styling.md) for complete color palette and examples.

Quick reference:

```

%%{init: {"flowchart": {"nodeSpacing": 80, "rankSpacing": 70}} }%%

style A fill:#fbcfe8,stroke:#be185d,color:#1f2937

```

---

Scoring Thresholds

| Rating | Score | Meaning |

|--------|-------|---------|

| ⭐⭐⭐⭐⭐ Excellent | 72-80 | Production-ready, comprehensive, well-styled |

| ⭐⭐⭐⭐ Very Good | 60-71 | Complete with minor improvements possible |

| ⭐⭐⭐ Good | 48-59 | Functional but could be clearer |

| ⭐⭐ Needs Work | 35-47 | Missing key elements or unclear |

| ⭐ Critical Issues | <35 | Inaccurate or incomplete |

---

OAuth Flow Quick Reference

| Flow | Use Case | Key Detail | Template |

|------|----------|------------|----------|

| Authorization Code | Web apps with backend | User β†’ Browser β†’ App β†’ SF | oauth/authorization-code.md |

| Auth Code + PKCE | Mobile, SPAs, public clients | code_verifier + SHA256 challenge | oauth/authorization-code-pkce.md |

| JWT Bearer | Server-to-server, CI/CD | Sign JWT with private key | oauth/jwt-bearer.md |

| Client Credentials | Service accounts, background | No user context | oauth/client-credentials.md |

| Device Authorization | CLI, IoT, Smart TVs | Poll for token after user auth | oauth/device-authorization.md |

| Refresh Token | Extend access | Reuse existing tokens | oauth/refresh-token.md |

Templates in templates/oauth/.

---

Data Model Notation Reference

Preferred Format: `flowchart LR`

Use flowchart LR (left-to-right) for data model diagrams. This format supports:

  • Individual node color coding by object type
  • Thick arrows (==>) for Master-Detail relationships
  • Left-to-right flow for readability

Relationship Arrows

```

--> Lookup (LK) - optional parent, no cascade delete

==> Master-Detail (MD) - required parent, cascade delete

-.-> Conversion/special relationship (e.g., Lead converts)

```

Object Node Format

```

ObjectName["ObjectName
(record count)"]

```

Example: Account["Account
(317)"]

---

Enhanced ERD Features

Object Type Color Coding

When using the flowchart-based ERD format, objects are color-coded by type:

| Object Type | Color | Fill | Stroke |

|-------------|-------|------|--------|

| Standard Objects | Sky Blue | #bae6fd | #0369a1 |

| Custom Objects (__c) | Orange | #fed7aa | #c2410c |

| External Objects (__x) | Green | #a7f3d0 | #047857 |

LDV (Large Data Volume) Indicators

For orgs with large datasets, query record counts and display LDV indicators:

```bash

python3 ~/.claude/plugins/marketplaces/sf-skills/sf-diagram-mermaid/scripts/query-org-metadata.py \

--objects Account,Contact,Opportunity \

--target-org myorg

```

Objects with >2M records display: LDV[~4M]

OWD (Org-Wide Defaults)

Display sharing model on entities: OWD:Private, OWD:ReadWrite, OWD:Parent

Relationship Types

| Label | Type | Arrow Style | Behavior |

|-------|------|-------------|----------|

| LK | Lookup | --> | Optional parent, no cascade |

| MD | Master-Detail | ==> | Required parent, cascade delete |

In flowchart format:

  • Lookup: --> (single arrow)
  • Master-Detail: ==> (thick double arrow)

Data Model Templates

| Template | Objects | Path |

|----------|---------|------|

| Core | Account, Contact, Opportunity, Case | templates/datamodel/salesforce-erd.md |

| Sales Cloud | Account, Contact, Lead, Opportunity, Product, Campaign | templates/datamodel/sales-cloud-erd.md |

| Service Cloud | Case, Entitlement, Knowledge, ServiceContract | templates/datamodel/service-cloud-erd.md |

| Campaigns | Campaign, CampaignMember, CampaignInfluence | templates/datamodel/campaigns-erd.md |

| Territory Management | Territory2, Territory2Model, UserTerritory2Association | templates/datamodel/territory-management-erd.md |

| Party Model | AccountContactRelation, ContactContactRelation | templates/datamodel/party-model-erd.md |

| Quote & Order | Quote, QuoteLineItem, Order, OrderItem | templates/datamodel/quote-order-erd.md |

| Forecasting | ForecastingItem, ForecastingQuota, OpportunitySplit | templates/datamodel/forecasting-erd.md |

| Consent (GDPR) | Individual, ContactPointEmail, DataUsePurpose | templates/datamodel/consent-erd.md |

| Files | ContentDocument, ContentVersion, ContentDocumentLink | templates/datamodel/files-erd.md |

| Scheduler | ServiceAppointment, ServiceResource, ServiceTerritory | templates/datamodel/scheduler-erd.md |

| Field Service | WorkOrder, ServiceAppointment, TimeSheet | templates/datamodel/fsl-erd.md |

| B2B Commerce | WebStore, WebCart, BuyerGroup, BuyerAccount | templates/datamodel/b2b-commerce-erd.md |

| Revenue Cloud | ProductCatalog, ProductSellingModel, PriceAdjustment | templates/datamodel/revenue-cloud-erd.md |

ERD Conventions Documentation

See docs/erd-conventions.md for complete documentation of:

  • Object type indicators ([STD], [CUST], [EXT])
  • LDV display format
  • OWD display format
  • Relationship type labels
  • Color palette details

---

Best Practices

Sequence Diagrams

  • Use autonumber for OAuth flows (step tracking)
  • Use ->> for requests, -->> for responses
  • Use activate/deactivate for long-running processes
  • Group related actors with box blocks
  • Add Note over for protocol details (tokens, codes)

Data Model Diagrams

  • Use flowchart LR format (left-to-right flow)
  • Keep objects simple: name + record count only (no fields)
  • Color code by object type: Blue=Standard, Orange=Custom, Green=External
  • Use --> for Lookup, ==> for Master-Detail relationships
  • Add LDV indicator for objects >2M records
  • Use API names, not labels (e.g., Account not "Accounts")

Integration Diagrams

  • Show error paths with alt/else blocks
  • Include timeout handling for external calls
  • Mark async calls with -) notation
  • Add system icons for clarity (☁️ πŸ”„ 🏭 πŸ’Ύ)

ASCII Diagrams

  • Keep width ≀80 characters
  • Use consistent box sizes
  • Align arrows clearly
  • Add step numbers for sequences

---

Cross-Skill Integration

| Skill | When to Use | Example |

|-------|-------------|---------|

| sf-metadata | Get real object/field definitions for ERD | Skill(skill="sf-metadata") β†’ "Describe Lead object" |

| sf-connected-apps | Link OAuth flow to Connected App setup | "Generate JWT Bearer diagram for this Connected App" |

| sf-ai-agentscript | Visualize Agentforce agent architecture | "Create flow diagram for FAQ Agent" |

| sf-flow | Document Flow logic as flowchart | "Diagram the approval process flow" |

Dependencies

Optional: sf-metadata (for ERD auto-discovery)

---

Example Usage

1. OAuth Flow Request

```

User: "Create a JWT Bearer OAuth flow diagram"

You should:

  1. Load templates/oauth/jwt-bearer.md
  2. Generate Mermaid sequenceDiagram
  3. Generate ASCII fallback
  4. Score and deliver

```

2. Data Model Request

```

User: "Create an ERD for Account, Contact, Opportunity, and Case"

You should:

  1. If org connected: Query record counts via query-org-metadata.py
  2. Load templates/datamodel/salesforce-erd.md (or cloud-specific template)
  3. Generate Mermaid flowchart LR with:

- Object nodes (name + record count, no fields)

- Color coding by object type (Standard=Blue, Custom=Orange)

- Relationship arrows (LK=-->, MD===>)

  1. Generate ASCII fallback
  2. Score and deliver

```

3. Integration Diagram Request

```

User: "Diagram our Salesforce to SAP integration flow"

You should:

  1. Ask clarifying questions (sync/async, trigger, protocol)
  2. Load templates/integration/api-sequence.md
  3. Generate Mermaid sequenceDiagram
  4. Generate ASCII fallback
  5. Score and deliver

```

---

Notes

  • Mermaid Rendering: Works in GitHub, VS Code, Notion, Confluence, and most modern tools
  • ASCII Purpose: Terminal compatibility, documentation that needs plain text
  • Color Accessibility: Palette designed for color-blind accessibility
  • Template Customization: Templates are starting points; customize per requirements

---

License

MIT License. See [LICENSE](LICENSE) file.

Copyright (c) 2024-2025 Jag Valaiyapathy

More from this repository10

🎯
sf-lwc🎯Skill

Generates production-ready Lightning Web Components for Salesforce using PICKLES architecture, ensuring robust, accessible, and performant UI development with comprehensive testing and integration.

🎯
sf-ai-agentforce-testing🎯Skill

Validates and tests AI agent interactions and workflows within Salesforce using automated testing frameworks and scenarios.

🎯
sf-flow🎯Skill

Generates and validates Salesforce flows with comprehensive 110-point scoring, ensuring Winter '26 best practices and high-performance flow design.

🎯
sf-testing🎯Skill

Executes Salesforce Apex tests with comprehensive coverage analysis, automatic failure detection, and intelligent test-fixing capabilities.

🎯
sf-data🎯Skill

Executes Salesforce data operations with expert SOQL querying, bulk data management, and test data generation across Salesforce orgs.

🎯
sf-ai-agentforce-legacy🎯Skill

Generates legacy Agentforce agents using Agent Script syntax with 100-point scoring for maintaining existing agent patterns.

🎯
util-youtube-analyzer🎯Skill

Analyzes YouTube video details, extracts metadata, and provides insights about video content, views, and engagement metrics.

🎯
sf-permissions🎯Skill

Analyzes Salesforce Permission Sets, revealing access hierarchies, detecting specific permissions, and auditing user access across objects, fields, and Apex classes.

🎯
sf-connected-apps🎯Skill

Generates and configures Salesforce Connected Apps and External Client Apps with comprehensive OAuth setup, security validation, and 120-point scoring mechanism.

🎯
sf-metadata🎯Skill

Generates and queries Salesforce metadata with 120-point scoring, creating custom objects, fields, profiles, and validating org structures via sf CLI.