{"id":"815613ec-64e2-4479-b7e0-38a4321a72b0","shortId":"5TrLue","kind":"skill","title":"azure-resource-visualizer","tagline":"Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other.","description":"# Azure Resource Visualizer - Architecture Diagram Generator\n\nA user may ask for help understanding how individual resources fit together, or to create a diagram showing their relationships. Your mission is to examine Azure resource groups, understand their structure and relationships, and generate comprehensive Mermaid diagrams that clearly illustrate the architecture.\n\n## Core Responsibilities\n\n1. **Resource Group Discovery**: List available resource groups when not specified\n2. **Deep Resource Analysis**: Examine all resources, their configurations, and interdependencies\n3. **Relationship Mapping**: Identify and document all connections between resources\n4. **Diagram Generation**: Create detailed, accurate Mermaid diagrams\n5. **Documentation Creation**: Produce clear markdown files with embedded diagrams\n\n## Workflow Process\n\n### Step 1: Resource Group Selection\n\nIf the user hasn't specified a resource group:\n\n1. Use your tools to query available resource groups. If you do not have a tool for this, use `az`.\n2. Present a numbered list of resource groups with their locations\n3. Ask the user to select one by number or name\n4. Wait for user response before proceeding\n\nIf a resource group is specified, validate it exists and proceed.\n\n### Step 2: Resource Discovery & Analysis\n\nOnce you have the resource group:\n\n1. **Query all resources** in the resource group using Azure MCP tools or `az`.\n2. **Analyze each resource** type and capture:\n   - Resource name and type\n   - SKU/tier information\n   - Location/region\n   - Key configuration properties\n   - Network settings (VNets, subnets, private endpoints)\n   - Identity and access (Managed Identity, RBAC)\n   - Dependencies and connections\n\n3. **Map relationships** by identifying:\n   - **Network connections**: VNet peering, subnet assignments, NSG rules, private endpoints\n   - **Data flow**: Apps → Databases, Functions → Storage, API Management → Backends\n   - **Identity**: Managed identities connecting to resources\n   - **Configuration**: App Settings pointing to Key Vaults, connection strings\n   - **Dependencies**: Parent-child relationships, required resources\n\n### Step 3: Diagram Construction\n\nCreate a **detailed Mermaid diagram** using the `graph TB` (top-to-bottom) or `graph LR` (left-to-right) format:\n\n**Diagram Structure Guidelines:**\n\n```mermaid\ngraph TB\n    %% Use subgraphs to group related resources\n    subgraph \"Resource Group: [name]\"\n        subgraph \"Network Layer\"\n            VNET[Virtual Network<br/>10.0.0.0/16]\n            SUBNET1[Subnet: web<br/>10.0.1.0/24]\n            SUBNET2[Subnet: data<br/>10.0.2.0/24]\n            NSG[Network Security Group]\n        end\n        \n        subgraph \"Compute Layer\"\n            APP[App Service<br/>Plan: P1v2]\n            FUNC[Function App<br/>Runtime: .NET 8]\n        end\n        \n        subgraph \"Data Layer\"\n            SQL[Azure SQL Database<br/>DTU: S1]\n            STORAGE[Storage Account<br/>Type: Standard LRS]\n        end\n        \n        subgraph \"Security & Identity\"\n            KV[Key Vault]\n            MI[Managed Identity]\n        end\n    end\n    \n    %% Define relationships with descriptive labels\n    APP -->|\"HTTPS requests\"| FUNC\n    FUNC -->|\"SQL connection\"| SQL\n    FUNC -->|\"Blob/Queue access\"| STORAGE\n    APP -->|\"Uses identity\"| MI\n    MI -->|\"Access secrets\"| KV\n    VNET --> SUBNET1\n    VNET --> SUBNET2\n    SUBNET1 --> APP\n    SUBNET2 --> SQL\n    NSG -->|\"Rules applied to\"| SUBNET1\n```\n\n**Key Diagram Requirements:**\n\n- **Group by layer or purpose**: Network, Compute, Data, Security, Monitoring\n- **Include details**: SKUs, tiers, important settings in node labels (use `<br/>` for line breaks)\n- **Label all connections**: Describe what flows between resources (data, identity, network)\n- **Use meaningful node IDs**: Abbreviations that make sense (APP, FUNC, SQL, KV)\n- **Visual hierarchy**: Subgraphs for logical grouping\n- **Connection types**:\n  - `-->` for data flow or dependencies\n  - `-.->` for optional/conditional connections\n  - `==>` for critical/primary paths\n\n**Resource Type Examples:**\n- App Service: Include plan tier (B1, S1, P1v2)\n- Functions: Include runtime (.NET, Python, Node)\n- Databases: Include tier (Basic, Standard, Premium)\n- Storage: Include redundancy (LRS, GRS, ZRS)\n- VNets: Include address space\n- Subnets: Include address range\n\n### Step 4: File Creation\n\nUse [template-architecture.md](./assets/template-architecture.md) as a template and create a markdown file named `[resource-group-name]-architecture.md` with:\n\n1. **Header**: Resource group name, subscription, region\n2. **Summary**: Brief overview of the architecture (2-3 paragraphs)\n3. **Resource Inventory**: Table listing all resources with types and key properties\n4. **Architecture Diagram**: The complete Mermaid diagram\n5. **Relationship Details**: Explanation of key connections and data flows\n6. **Notes**: Any important observations, potential issues, or recommendations\n\n## Operating Guidelines\n\n### Quality Standards\n\n- **Accuracy**: Verify all resource details before including in diagram\n- **Completeness**: Don't omit resources; include everything in the resource group\n- **Clarity**: Use clear, descriptive labels and logical grouping\n- **Detail Level**: Include configuration details that matter for architecture understanding\n- **Relationships**: Show ALL significant connections, not just obvious ones\n\n### Tool Usage Patterns\n\n1. **Azure MCP Search**: \n   - Use `intent=\"list resource groups\"` to discover resource groups\n   - Use `intent=\"list resources in group\"` with group name to get all resources\n   - Use `intent=\"get resource details\"` for individual resource analysis\n   - Use `command` parameter when you need specific Azure operations\n\n2. **File Creation**:\n   - Always create in workspace root or a `docs/` folder if it exists\n   - Use clear, descriptive filenames: `[rg-name]-architecture.md`\n   - Ensure Mermaid syntax is valid (test syntax mentally before output)\n\n3. **Terminal (when needed)**:\n   - Use Azure CLI for complex queries not available via MCP\n   - Example: `az resource list --resource-group <name> --output json`\n   - Example: `az network vnet show --resource-group <name> --name <vnet-name>`\n\n### Constraints & Boundaries\n\n**Always Do:**\n- ✅ List resource groups if not specified\n- ✅ Wait for user selection before proceeding\n- ✅ Analyze ALL resources in the group\n- ✅ Create detailed, accurate diagrams\n- ✅ Include configuration details in node labels\n- ✅ Group resources logically with subgraphs\n- ✅ Label all connections descriptively\n- ✅ Create a complete markdown file with diagram\n\n**Never Do:**\n- ❌ Skip resources because they seem unimportant\n- ❌ Make assumptions about resource relationships without verification\n- ❌ Create incomplete or placeholder diagrams\n- ❌ Omit configuration details that affect architecture\n- ❌ Proceed without confirming resource group selection\n- ❌ Generate invalid Mermaid syntax\n- ❌ Modify or delete Azure resources (read-only analysis)\n\n### Edge Cases & Error Handling\n\n- **No resources found**: Inform user and verify resource group name\n- **Permission issues**: Explain what's missing and suggest checking RBAC\n- **Complex architectures (50+ resources)**: Consider creating multiple diagrams by layer\n- **Cross-resource-group dependencies**: Note external dependencies in diagram notes\n- **Resources without clear relationships**: Group in \"Other Resources\" section\n\n## Output Format Specifications\n\n### Mermaid Diagram Syntax\n- Use `graph TB` (top-to-bottom) for vertical layouts\n- Use `graph LR` (left-to-right) for horizontal layouts (better for wide architectures)\n- Subgraph syntax: `subgraph \"Descriptive Name\"`\n- Node syntax: `ID[\"Display Name<br/>Details\"]`\n- Connection syntax: `SOURCE -->|\"Label\"| TARGET`\n\n### Markdown Structure\n- Use H1 for main title\n- Use H2 for major sections\n- Use H3 for subsections\n- Use tables for resource inventories\n- Use bullet lists for notes and recommendations\n- Use code blocks with `mermaid` language tag for diagrams\n\n## Example Interaction\n\n**User**: \"Analyze my production resource group\"\n\n**Agent**:\n1. Lists all resource groups in subscription\n2. Asks user to select: \"Which resource group? 1) rg-prod-app, 2) rg-dev-app, 3) rg-shared\"\n3. User selects: \"1\"\n4. Queries all resources in rg-prod-app\n5. Analyzes: App Service, Function App, SQL Database, Storage Account, Key Vault, VNet, NSG\n6. Identifies relationships: App → Function, Function → SQL, Function → Storage, All → Key Vault\n7. Creates detailed Mermaid diagram with subgraphs\n8. Generates `rg-prod-app-architecture.md` with complete documentation\n9. Displays: \"Created architecture diagram in rg-prod-app-architecture.md. Found 7 resources with 8 key relationships.\"\n\n## Success Criteria\n\nA successful analysis includes:\n- ✅ Valid resource group identified\n- ✅ All resources discovered and analyzed\n- ✅ All significant relationships mapped\n- ✅ Detailed Mermaid diagram with proper grouping\n- ✅ Complete markdown file created\n- ✅ Clear, actionable documentation\n- ✅ Valid Mermaid syntax that renders correctly\n- ✅ Professional, architect-level output\n\nYour goal is to provide clarity and insight into Azure architectures, making complex resource relationships easy to understand through excellent visualization.","tags":["azure","resource","visualizer","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"capabilities":["skill","source-github","skill-azure-resource-visualizer","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/azure-resource-visualizer","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 30743 github stars · SKILL.md body (9,280 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:52:04.547Z","embedding":null,"createdAt":"2026-04-18T21:48:26.081Z","updatedAt":"2026-04-22T00:52:04.547Z","lastSeenAt":"2026-04-22T00:52:04.547Z","tsv":"'-3':612 '/16':374 '/24':379,384 '/assets/template-architecture.md':581 '1':97,150,163,234,597,706,1054,1069,1086 '10.0.0.0':373 '10.0.1.0':378 '10.0.2.0':383 '2':108,183,224,248,604,611,750,1061,1074 '3':119,194,280,327,614,783,1079,1083 '4':129,205,576,626,1087 '5':137,633,1096 '50':934 '6':643,1110 '7':1122,1143 '8':403,1129,1146 '9':1135 'abbrevi':511 'access':273,447,454 'account':416,1105 'accur':134,839 'accuraci':656 'action':1179 'address':569,573 'affect':887 'agent':1053 'alway':753,817 'analysi':111,227,740,907,1153 'analyz':5,249,831,1048,1097,1163 'api':301 'app':297,311,393,394,400,437,449,462,515,541,1073,1078,1095,1098,1101,1113 'appli':467 'architect':1189 'architect-level':1188 'architectur':13,49,94,610,627,692,888,933,991,1138,1202 'architecture.md':595,772 'ask':27,55,195,1062 'assign':290 'assumpt':872 'avail':102,169,794 'az':182,247,798,807 'azur':2,6,33,46,77,243,409,707,748,788,902,1201 'azure-resource-visu':1 'b1':546 'backend':303 'basic':558 'better':988 'blob/queue':446 'block':1038 'bottom':342,974 'boundari':816 'break':495 'brief':606 'bullet':1030 'captur':254 'case':909 'check':930 'child':322 'clariti':676,1197 'clear':91,141,678,766,955,1178 'cli':789 'code':1037 'command':742 'complet':630,665,858,1133,1174 'complex':791,932,1204 'comprehens':87 'comput':391,479 'configur':116,263,310,687,842,884 'confirm':891 'connect':126,279,286,307,317,443,498,525,534,639,698,854,1003 'consid':936 'constraint':815 'construct':329 'core':95 'correct':1186 'creat':66,132,330,586,754,837,856,878,937,1123,1137,1177 'creation':139,578,752 'criteria':1150 'critical/primary':536 'cross':943 'cross-resource-group':942 'data':295,382,406,480,504,528,641 'databas':298,411,555,1103 'deep':109 'defin':432 'delet':901 'depend':277,319,531,946,949 'describ':499 'descript':435,679,767,855,995 'detail':11,133,332,484,635,660,684,688,736,838,843,885,1002,1124,1168 'dev':1077 'diagram':14,30,50,68,89,130,136,146,328,334,351,471,628,632,664,840,862,882,939,951,966,1044,1126,1139,1170 'discov':716,1161 'discoveri':100,226 'display':1000,1136 'doc':760 'document':124,138,1134,1180 'dtu':412 'easi':1207 'edg':908 'embed':145 'end':389,404,420,430,431 'endpoint':270,294 'ensur':773 'error':910 'everyth':671 'examin':76,112 'exampl':540,797,806,1045 'excel':1211 'exist':220,764 'explain':924 'explan':636 'extern':948 'file':143,577,589,751,860,1176 'filenam':768 'fit':62 'flow':296,501,529,642 'folder':761 'format':350,963 'found':914,1142 'func':398,440,441,445,516 'function':299,399,549,1100,1114,1115,1117 'generat':10,51,86,131,895,1130 'get':729,734 'goal':1193 'graph':337,344,355,969,979 'group':8,79,99,104,152,162,171,190,215,233,241,360,365,388,473,524,593,600,675,683,714,718,724,726,803,813,821,836,847,893,920,945,957,1052,1058,1068,1157,1173 'grs':565 'guidelin':353,653 'h1':1011 'h2':1016 'h3':1021 'handl':911 'hasn':157 'header':598 'help':36,57 'hierarchi':520 'horizont':986 'https':438 'id':510,999 'ident':271,275,304,306,423,429,451,505 'identifi':122,284,1111,1158 'illustr':92 'import':487,646 'includ':483,543,550,556,562,568,572,662,670,686,841,1154 'incomplet':879 'individu':19,60,738 'inform':260,915 'insight':1199 'intent':711,720,733 'interact':1046 'interdepend':118 'invalid':896 'inventori':616,1028 'issu':649,923 'json':805 'key':262,315,425,470,624,638,1106,1120,1147 'kv':424,456,518 'label':436,491,496,680,846,852,1006 'languag':1041 'layer':369,392,407,475,941 'layout':977,987 'left':347,982 'left-to-right':346,981 'level':685,1190 'line':494 'list':101,187,618,712,721,800,819,1031,1055 'locat':193 'location/region':261 'logic':523,682,849 'lr':345,980 'lrs':419,564 'main':1013 'major':1018 'make':513,871,1203 'manag':274,302,305,428 'map':121,281,1167 'markdown':142,588,859,1008,1175 'matter':690 'may':54 'mcp':244,708,796 'meaning':508 'mental':780 'mermaid':12,88,135,333,354,631,774,897,965,1040,1125,1169,1182 'mi':427,452,453 'miss':927 'mission':73 'modifi':899 'monitor':482 'multipl':938 'name':204,256,366,590,594,601,727,771,814,921,996,1001 'need':746,786 'net':402,552 'network':265,285,368,372,386,478,506,808 'never':863 'node':490,509,554,845,997 'note':644,947,952,1033 'nsg':291,385,465,1109 'number':186,202 'observ':647 'obvious':701 'omit':668,883 'one':200,702 'oper':652,749 'optional/conditional':533 'output':782,804,962,1191 'overview':607 'p1v2':397,548 'paragraph':613 'paramet':743 'parent':321 'parent-child':320 'path':537 'pattern':705 'peer':288 'permiss':922 'placehold':881 'plan':396,544 'point':313 'potenti':648 'premium':560 'present':184 'privat':269,293 'proceed':211,222,830,889 'process':148 'prod':1072,1094 'produc':140 'product':1050 'profession':1187 'proper':1172 'properti':264,625 'provid':1196 'purpos':477 'python':553 'qualiti':654 'queri':168,235,792,1088 'rang':574 'rbac':276,931 'read':905 'read-on':904 'recommend':651,1035 'redund':563 'region':603 'relat':42,361 'relationship':17,71,84,120,282,323,433,634,694,875,956,1112,1148,1166,1206 'render':1185 'request':439 'requir':324,472 'resourc':3,7,20,34,41,47,61,78,98,103,110,114,128,151,161,170,189,214,225,232,237,240,251,255,309,325,362,364,503,538,592,599,615,620,659,669,674,713,717,722,731,735,739,799,802,812,820,833,848,866,874,892,903,913,919,935,944,953,960,1027,1051,1057,1067,1090,1144,1156,1160,1205 'resource-group':801,811 'resource-group-nam':591 'respons':96,209 'rg':770,1071,1076,1081,1093 'rg-dev-app':1075 'rg-name':769 'rg-prod-app':1070,1092 'rg-prod-app-architecture.md':1131,1141 'rg-share':1080 'right':349,984 'root':757 'rule':292,466 'runtim':401,551 's1':413,547 'search':709 'secret':455 'section':961,1019 'secur':387,422,481 'seem':869 'select':153,199,828,894,1065,1085 'sens':514 'servic':395,542,1099 'set':266,312,488 'share':1082 'show':15,69,695,810 'signific':697,1165 'skill':23 'skill-azure-resource-visualizer' 'skip':865 'sku/tier':259 'skus':485 'sourc':1005 'source-github' 'space':570 'specif':747,964 'specifi':107,159,217,824 'sql':408,410,442,444,464,517,1102,1116 'standard':418,559,655 'step':149,223,326,575 'storag':300,414,415,448,561,1104,1118 'string':318 'structur':82,352,1009 'subgraph':358,363,367,390,405,421,521,851,992,994,1128 'subnet':268,289,376,381,571 'subnet1':375,458,461,469 'subnet2':380,460,463 'subscript':602,1060 'subsect':1023 'success':1149,1152 'suggest':929 'summari':605 'syntax':775,779,898,967,993,998,1004,1183 'tabl':617,1025 'tag':1042 'target':1007 'tb':338,356,970 'templat':584 'template-architecture.md':580 'termin':784 'test':778 'tier':486,545,557 'titl':1014 'togeth':63 'tool':166,178,245,703 'top':340,972 'top-to-bottom':339,971 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'type':252,258,417,526,539,622 'understand':38,58,80,693,1209 'unimport':870 'usag':704 'use':21,164,181,242,335,357,450,492,507,579,677,710,719,732,741,765,787,968,978,1010,1015,1020,1024,1029,1036 'user':26,53,156,197,208,827,916,1047,1063,1084 'valid':218,777,1155,1181 'vault':316,426,1107,1121 'verif':877 'verifi':657,918 'vertic':976 'via':795 'virtual':371 'visual':4,48,519,1212 'vnet':267,287,370,457,459,567,809,1108 'wait':206,825 'web':377 'wide':990 'without':876,890,954 'workflow':147 'workspac':756 'zrs':566","prices":[{"id":"b04074e0-1fbd-4b45-b0e0-502772f20358","listingId":"815613ec-64e2-4479-b7e0-38a4321a72b0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T21:48:26.081Z"}],"sources":[{"listingId":"815613ec-64e2-4479-b7e0-38a4321a72b0","source":"github","sourceId":"github/awesome-copilot/azure-resource-visualizer","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/azure-resource-visualizer","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:26.081Z","lastSeenAt":"2026-04-22T00:52:04.547Z"}],"details":{"listingId":"815613ec-64e2-4479-b7e0-38a4321a72b0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"azure-resource-visualizer","github":{"repo":"github/awesome-copilot","stars":30743,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-04-21T22:20:21Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"2574dd4d73d39d1b0309c738431eb4ca29850672","skill_md_path":"skills/azure-resource-visualizer/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/azure-resource-visualizer"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"azure-resource-visualizer","license":"Complete terms in LICENSE.txt","description":"Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/azure-resource-visualizer"},"updatedAt":"2026-04-22T00:52:04.547Z"}}