afv-library/skills/generating-mermaid-diagrams/references/usage-examples.md
sandipkumar-yadav 37aa84df42
feat: @W-22444026@ Introducing Core Skills, Datacloud Skills, Industries and Utility Skills. (#268)
* Migrating Core Salesforce Skills

* Updating pr comments

* updat reference

* Updating a skill

* Migrating Datacloud skills

* Migrating Industries cloud skills

* Validating - skills fixing

---------

Co-authored-by: Sandip Kumar Yadav <sandipkumar.yadav+sfemu@salesforce.com>
2026-05-14 19:32:15 +05:30

341 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- Parent: generating-mermaid-diagrams/SKILL.md -->
# sf-diagram Usage Examples
Real-world examples of using the sf-diagram skill.
---
## Example 1: OAuth Flow Diagram
### Request
```
"Create a JWT Bearer OAuth flow diagram for our CI/CD pipeline integration"
```
### Generated Output
#### Mermaid Diagram
```mermaid
%%{init: {'theme': 'base', 'themeVariables': {
'actorBkg': '#ddd6fe',
'actorTextColor': '#1f2937',
'actorBorder': '#6d28d9',
'signalColor': '#334155',
'signalTextColor': '#1f2937',
'noteBkgColor': '#f8fafc',
'noteTextColor': '#1f2937',
'noteBorderColor': '#334155'
}}}%%
sequenceDiagram
autonumber
box rgba(221,214,254,0.3) CI/CD PIPELINE
participant GH as 🔧 GitHub Actions
participant K as 🔐 Secrets Manager
end
box rgba(167,243,208,0.3) SALESFORCE
participant SF as ☁️ Salesforce
end
Note over GH,SF: JWT Bearer Flow for CI/CD
GH->>K: 1. Retrieve private key
K->>GH: 2. Return encrypted key
GH->>GH: 3. Create JWT
Note over GH: iss: consumer_key<br/>sub: deploy@company.com<br/>aud: login.salesforce.com
GH->>GH: 4. Sign with private key
GH->>SF: 5. POST /token (JWT assertion)
SF->>SF: 6. Verify signature
SF->>SF: 7. Validate claims
SF->>GH: 8. Access token
GH->>SF: 9. sf project deploy start
SF->>GH: 10. Deployment result
```
#### ASCII Fallback
```
┌───────────────────────┐ ┌────────────────────┐
│ GitHub Actions │ │ Salesforce │
│ (Private Key) │ │ (Certificate) │
└───────────┬───────────┘ └─────────┬──────────┘
│ │
│ 1. Create JWT │
│ 2. Sign with key │
│ │
│ 3. POST /token │
│──────────────────────────>│
│ │
│ 4. Verify signature │
│ 5. Return access_token │
│<──────────────────────────│
│ │
│ 6. sf project deploy start │
│──────────────────────────>│
```
### Score
```
Score: 72/80 ⭐⭐⭐⭐⭐ Excellent
├─ Accuracy: 20/20 ✓ All JWT Bearer steps correct
├─ Clarity: 18/20 ✓ Clear labels, good flow
├─ Completeness: 14/15 ✓ Includes CI/CD context
├─ Styling: 12/15 ✓ Proper theming
└─ Best Practices: 8/10 ✓ Good annotations
```
---
## Example 2: Data Model ERD
### Request
```
"Create an ERD for our custom Invoice system with Invoice__c, Invoice_Line_Item__c, and relationships to Account and Product"
```
### Generated Output
#### Mermaid Diagram
```mermaid
%%{init: {'theme': 'base', 'themeVariables': {
'primaryColor': '#a5f3fc',
'primaryTextColor': '#1f2937',
'primaryBorderColor': '#0e7490',
'lineColor': '#334155',
'tertiaryColor': '#f8fafc'
}}}%%
erDiagram
Account ||--o{ Invoice__c : "billed to"
Account ||--o{ Contact : "has"
Invoice__c ||--|{ Invoice_Line_Item__c : "contains"
Product2 ||--o{ Invoice_Line_Item__c : "included in"
Account {
Id Id PK
Text Name "Required"
Text BillingStreet
Text BillingCity
Text BillingState
Text BillingPostalCode
}
Contact {
Id Id PK
Lookup AccountId FK "Account"
Text FirstName
Text LastName "Required"
Email Email
}
Invoice__c {
Id Id PK
AutoNumber Name "INV-00001"
MasterDetail Account__c FK "Account"
Lookup Billing_Contact__c FK "Contact"
Date Invoice_Date__c "Required"
Date Due_Date__c "Required"
Picklist Status__c "Draft, Sent, Paid, Overdue"
Currency Total_Amount__c "Roll-Up SUM"
Currency Paid_Amount__c
Formula Amount_Due__c "Total - Paid"
Text External_Id__c UK "Integration Key"
}
Invoice_Line_Item__c {
Id Id PK
AutoNumber Name "LI-00001"
MasterDetail Invoice__c FK "Invoice__c"
Lookup Product__c FK "Product2"
Number Quantity__c "Required"
Currency Unit_Price__c "Required"
Formula Line_Total__c "Qty × Price"
TextArea Description__c
}
Product2 {
Id Id PK
Text Name "Required"
Text ProductCode
Currency UnitPrice
Checkbox IsActive
}
```
#### ASCII Fallback
```
┌─────────────────────────┐ ┌─────────────────────────┐
│ ACCOUNT │ │ CONTACT │
├─────────────────────────┤ ├─────────────────────────┤
│ Id (PK) │ │ Id (PK) │
│ Name (Required) │──┐ │ AccountId (FK) ─────────│───┐
│ BillingStreet │ │ │ FirstName │ │
│ BillingCity │ │ │ LastName (Required) │ │
│ BillingState │ │ │ Email │ │
│ BillingPostalCode │ │ └─────────────────────────┘ │
└─────────────────────────┘ │ │
│ │ │
│ 1:N └──────────────────────────────────┘
┌─────────────────────────┐
│ INVOICE__C │
├─────────────────────────┤
│ Id (PK) │
│ Name (Auto: INV-00001) │
│ Account__c (MD) │
│ Billing_Contact__c (LK) │
│ Invoice_Date__c (Req) │
│ Due_Date__c (Req) │
│ Status__c (Picklist) │
│ Total_Amount__c (Roll) │
│ Amount_Due__c (Formula) │
│ External_Id__c (UK) │
└─────────────┬───────────┘
│ 1:N (Master-Detail)
┌─────────────────────────┐ ┌─────────────────────────┐
│ INVOICE_LINE_ITEM__C │ │ PRODUCT2 │
├─────────────────────────┤ ├─────────────────────────┤
│ Id (PK) │ │ Id (PK) │
│ Name (Auto: LI-00001) │ │ Name (Required) │
│ Invoice__c (MD) ────────│──┘ │ ProductCode │
│ Product__c (LK) ────────│──────>│ UnitPrice │
│ Quantity__c (Req) │ │ IsActive │
│ Unit_Price__c (Req) │ └─────────────────────────┘
│ Line_Total__c (Formula) │
│ Description__c │
└─────────────────────────┘
```
### Score
```
Score: 74/80 ⭐⭐⭐⭐⭐ Excellent
├─ Accuracy: 20/20 ✓ All relationships correct
├─ Clarity: 19/20 ✓ Clear field annotations
├─ Completeness: 15/15 ✓ All objects included
├─ Styling: 13/15 ✓ Good layout
└─ Best Practices: 7/10 ⚠ Could add more field comments
```
---
## Example 3: Integration Sequence
### Request
```
"Diagram our real-time Order sync from Salesforce to SAP using Platform Events"
```
### Generated Output
#### Mermaid Diagram
```mermaid
%%{init: {'theme': 'base', 'themeVariables': {
'actorBkg': '#ddd6fe',
'actorTextColor': '#1f2937',
'actorBorder': '#6d28d9',
'signalColor': '#334155',
'signalTextColor': '#1f2937',
'noteBkgColor': '#f8fafc',
'noteTextColor': '#1f2937',
'noteBorderColor': '#334155'
}}}%%
sequenceDiagram
autonumber
box rgba(167,243,208,0.3) SALESFORCE
participant T as 🔄 Order Trigger
participant PE as 📢 Order_Sync__e
end
box rgba(254,215,170,0.3) INTEGRATION
participant MW as 🔄 MuleSoft
end
box rgba(165,243,252,0.3) SAP
participant SAP as 🏭 SAP S/4HANA
end
Note over T,SAP: Real-time Order Sync (Platform Events)
T->>T: 1. Order record saved
Note over T: Status changed to 'Approved'
T->>PE: 2. Publish Platform Event
Note over T,PE: EventBus.publish(<br/> new Order_Sync__e(<br/> Order_Id__c,<br/> Action__c='CREATE'<br/> )<br/>)
PE-)MW: 3. Event delivered (CometD)
Note over PE,MW: /event/Order_Sync__e
activate MW
MW->>MW: 4. Transform to SAP format
Note over MW: Map SF Order → SAP Sales Order
MW->>SAP: 5. POST /sap/api/salesorders
Note over MW,SAP: IDOC or REST API
alt Success
SAP->>MW: 6a. 201 Created
Note over SAP,MW: SAP Order #: 4500012345
MW->>PE: 7a. Publish confirmation
Note over MW,PE: Order_Sync_Status__e<br/>Status='SUCCESS'
else Validation Error
SAP->>MW: 6b. 400 Bad Request
Note over SAP,MW: Missing required field
MW->>PE: 7b. Publish error
Note over MW,PE: Order_Sync_Status__e<br/>Status='ERROR'
end
deactivate MW
Note over T: Flow updates Order<br/>with SAP reference
```
### Score
```
Score: 70/80 ⭐⭐⭐⭐ Very Good
├─ Accuracy: 19/20 ✓ Platform Event pattern correct
├─ Clarity: 18/20 ✓ Good error handling shown
├─ Completeness: 13/15 ✓ Main paths covered
├─ Styling: 12/15 ✓ Good use of boxes
└─ Best Practices: 8/10 ✓ Shows async pattern
```
---
## Example 4: Combined Request
### Request
```
"I need to document our partner portal authentication.
Create: 1) The OAuth flow for partner login, 2) The data model showing Partner Account, Portal User, and Opportunities they can see"
```
### Generated Output
The skill generates two diagrams:
1. **OAuth Authorization Code + PKCE Flow** (for the portal)
2. **ERD showing Partner Access Model**
Both with Mermaid and ASCII versions.
---
## Tips for Best Results
1. **Be specific** - "JWT Bearer for CI/CD" is better than just "OAuth"
2. **Name your systems** - "Salesforce to SAP" produces clearer diagrams
3. **Mention custom objects** - Include `__c` suffix so we know they're custom
4. **Request both formats** - If you need ASCII fallback, mention it explicitly