Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Creates professional AWS architecture diagrams in draw.io XML format (.drawio files) using official AWS Architecture Icons (aws4 library). Use when the user asks for AWS diagrams, VPC layouts, multi-tier architectures, serverless designs, network topology, or draw.io exports involving Lambda, EC2, RDS, or other AWS services.
.claude/skills/giuseppe-trisciuoglio-aws-drawio-architecture-diagrams/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 147% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 151% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 194% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 161% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 191% | 0% |
Creates pixel-perfect AWS architecture diagrams in draw.io XML format using official AWS4 shape library. Generates production-ready .drawio files for diagrams.net.
Every .drawio file follows this XML structure:
xml<mxfile host="app.diagrams.net" agent="Claude" version="24.7.17"> <diagram id="aws-arch-1" name="AWS Architecture"> <mxGraphModel dx="1434" dy="759" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <!-- AWS shapes and connectors --> </root> </mxGraphModel> </diagram> </mxfile>
Key rules:
pageWidth="1169" pageHeight="827")Groups use container=1 with child shapes referencing via parent="groupId".
AWS Cloud (top-level boundary):
xml<mxCell id="2" value="AWS Cloud" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_aws_cloud_alt;strokeColor=#232F3E;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#232F3E;dashed=0;labelBackgroundColor=none;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;" vertex="1" parent="1"> <mxGeometry x="100" y="40" width="1000" height="700" as="geometry" /> </mxCell>
Region:
xml<mxCell id="3" value="us-east-1" style="...grIcon=mxgraph.aws4.group_region;strokeColor=#00A4A6;fontColor=#147EBA;dashed=1;..." vertex="1" parent="2"> <mxGeometry x="20" y="40" width="960" height="640" as="geometry" /> </mxCell>
VPC:
xml<mxCell id="4" value="VPC (10.0.0.0/16)" style="...grIcon=mxgraph.aws4.group_vpc;strokeColor=#8C4FFF;fontColor=#AAB7B8;..." vertex="1" parent="3"> <mxGeometry x="20" y="40" width="920" height="580" as="geometry" /> </mxCell>
Subnet styles:
strokeColor=#7AA116;fillColor=#E9F3D2;fontColor=#248814strokeColor=#00A4A6;fillColor=#E6F6F7;fontColor=#147EBAService icons use shape=mxgraph.aws4.resourceIcon with resIcon property.
CRITICAL: strokeColor=#ffffff is required for resourceIcon shapes to render white icon glyphs on colored backgrounds.
Standard service icon:
xml<mxCell id="10" value="Amazon S3" style="...gradientColor=#60A337;gradientDirection=north;fillColor=#277116;strokeColor=#ffffff;...shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;" vertex="1" parent="1"> <mxGeometry x="100" y="100" width="60" height="60" as="geometry" /> </mxCell>
Dedicated shapes (Lambda, ALB, Users) use strokeColor=none. See references/aws-shape-reference.md for complete shape catalog.
Each AWS service category uses official colors. All resourceIcon shapes must use strokeColor=#ffffff and gradientDirection=north. See references/aws-shape-reference.md for full color table.
Quick reference: | Category | fillColor | gradientColor | Services | |----------|-----------|---------------|----------| | Compute | #D05C17 | #F78E04 | EC2, ECS, EKS, Fargate | | Storage | #277116 | #60A337 | S3, EBS, EFS, Glacier | | Database | #3334B9 | #4D72F3 | RDS, DynamoDB, Aurora, Redshift | | Networking | #5A30B5 | #945DF2 | CloudFront, Route 53, API GW | | Security | #C7131F | #F54749 | IAM, Cognito, KMS, WAF | | App Integration | #BC1356 | #F54749 | SQS, SNS, EventBridge |
Standard data flow:
edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;strokeColor=#545B64;strokeWidth=2;Encrypted connection:
edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=classic;endFill=1;strokeColor=#DD344C;strokeWidth=2;dashed=1;dashPattern=5 5;Async/event flow:
edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;strokeColor=#E7157B;strokeWidth=2;dashed=1;verticalLabelPosition=bottom)User Request: "Create AWS three-tier architecture with VPC, public ALB, private EC2, RDS across 2 AZs."
Generated Output:
xml<mxfile host="app.diagrams.net" agent="Claude" version="24.7.17"> <diagram id="three-tier-1" name="Three-Tier Web App"> <mxGraphModel dx="1434" dy="759" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> <mxCell id="2" value="Users" style="...shape=mxgraph.aws4.users;fillColor=#232F3E;..." vertex="1" parent="1"> <mxGeometry x="40" y="340" width="60" height="60" as="geometry" /> </mxCell> <mxCell id="3" value="AWS Cloud" style="...shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_aws_cloud_alt;..." vertex="1" parent="1"> <mxGeometry x="160" y="40" width="960" height="720" as="geometry" /> </mxCell> <mxCell id="4" value="us-east-1" style="...grIcon=mxgraph.aws4.group_region;strokeColor=#00A4A6;dashed=1;..." vertex="1" parent="3"> <mxGeometry x="20" y="40" width="920" height="660" as="geometry" /> </mxCell> <mxCell id="5" value="VPC (10.0.0.0/16)" style="...grIcon=mxgraph.aws4.group_vpc;strokeColor=#8C4FFF;..." vertex="1" parent="4"> <mxGeometry x="20" y="40" width="880" height="600" as="geometry" /> </mxCell> <mxCell id="6" value="Public Subnet" style="...grIcon=mxgraph.aws4.group_security_group;strokeColor=#7AA116;fillColor=#E9F3D2;..." vertex="1" parent="5"> <mxGeometry x="20" y="40" width="400" height="160" as="geometry" /> </mxCell> <mxCell id="7" value="Private Subnet" style="...grIcon=mxgraph.aws4.group_security_group;strokeColor=#00A4A6;fillColor=#E6F6F7;..." vertex="1" parent="5"> <mxGeometry x="20" y="230" width="400" height="160" as="geometry" /> </mxCell> <mxCell id="8" value="Data Subnet" style="...grIcon=mxgraph.aws4.group_security_group;strokeColor=#00A4A6;fillColor=#E6F6F7;..." vertex="1" parent="5"> <mxGeometry x="20" y="420" width="400" height="160" as="geometry" /> </mxCell> <mxCell id="12" value="Application<br>Load Balancer" style="...fillColor=#8C4FFF;shape=mxgraph.aws4.applicationLoadBalancer;" vertex="1" parent="6"> <mxGeometry x="170" y="50" width="60" height="60" as="geometry" /> </mxCell> <mxCell id="13" value="EC2 Instance" style="...gradientColor=#F78E04;fillColor=#D05C17;strokeColor=#ffffff;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.ec2;" vertex="1" parent="7"> <mxGeometry x="170" y="50" width="60" height="60" as="geometry" /> </mxCell> <mxCell id="15" value="RDS Primary" style="...gradientColor=#4D72F3;fillColor=#3334B9;strokeColor=#ffffff;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.rds;" vertex="1" parent="8"> <mxGeometry x="170" y="50" width="60" height="60" as="geometry" /> </mxCell> <mxCell id="20" style="...endArrow=open;strokeColor=#545B64;strokeWidth=2;" edge="1" parent="1" source="2" target="12"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="21" value="HTTPS" style="...endArrow=open;strokeColor=#545B64;strokeWidth=2;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="12" target="13"> <mxGeometry relative="1" as="geometry" /> </mxCell> <mxCell id="23" value="TCP 5432" style="...endArrow=open;strokeColor=#545B64;strokeWidth=2;fontSize=11;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="13" target="15"> <mxGeometry relative="1" as="geometry" /> </mxCell> </root> </mxGraphModel> </diagram> </mxfile>
Opening Instructions:
Open in draw.io with AWS libraries enabled:
https://app.diagrams.net/?libs=aws4User Request: "Create serverless architecture with API Gateway, Lambda, DynamoDB, S3 for REST API."
Generated Output: XML with API Gateway (violet), Lambda (orange), DynamoDB (blue), S3 (green). See references/aws-architecture-templates.md for complete template.
See references/ directory:
aws-shape-reference.md - Complete AWS4 shape catalog with styles for 50+ servicesaws-architecture-templates.md - Ready-to-use templates (3-tier, serverless, data pipeline)Always follow this validation checklist before saving:
.drawio file structureparent attributes reference existing cells&→&, <→<)https://app.diagrams.net/?libs=aws4<br> for line breaks.mxgraph.aws4.* shapes. Legacy mxgraph.aws3.* not supported.<diagram> elementsmxgraph.aws4.*)| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 11,151 | 4,877 | -56% | 1 | 1 | 0% | 1,979 | 4,893 | +147% | 0 | 0 | — |
case-06 | fail→pass | 10,927 | 6,234 | -43% | 1 | 1 | 0% | 2,047 | 5,134 | +151% | 0 | 0 | — |
case-07 | fail→pass | 9,764 | 6,827 | -30% | 1 | 1 | 0% | 1,780 | 5,227 | +194% | 0 | 0 | — |
case-13 | fail→pass | 11,998 | 8,534 | -29% | 1 | 1 | 0% | 2,135 | 5,575 | +161% | 0 | 0 | — |
case-14 | fail→pass | 10,465 | 5,363 | -49% | 1 | 1 | 0% | 1,753 | 5,093 | +191% | 0 | 0 | — |
case-03 | fail→pass | 23,748 | 24,085 | +1% | 1 | 1 | 0% | 5,082 | 9,525 | +87% | 0 | 0 | — |
case-04 | fail→pass | 18,689 | 7,887 | -58% | 1 | 1 | 0% | 3,485 | 5,596 | +61% | 0 | 0 | — |
case-01 | fail→pass | 27,137 | 47,163 | +74% | 1 | 1 | 0% | 6,213 | 10,144 | +63% | 0 | 0 | — |
case-02 | fail→pass | 28,645 | 27,086 | -5% | 1 | 1 | 0% | 6,228 | 10,159 | +63% | 0 | 0 | — |
case-08 | fail→pass | 10,513 | 6,397 | -39% | 1 | 1 | 0% | 1,931 | 5,201 | +169% | 0 | 0 | — |
case-09 | fail→pass | 11,529 | 6,278 | -46% | 1 | 1 | 0% | 2,018 | 5,135 | +154% | 0 | 0 | — |
case-10 | fail→pass | 12,744 | 4,163 | -67% | 1 | 1 | 0% | 2,178 | 4,713 | +116% | 0 | 0 | — |
case-11 | fail→pass | 10,246 | 4,512 | -56% | 1 | 1 | 0% | 1,796 | 4,708 | +162% | 0 | 0 | — |
case-12 | fail→pass | 13,284 | 7,956 | -40% | 1 | 1 | 0% | 2,305 | 5,570 | +142% | 0 | 0 | — |
case-15 | fail→pass | 11,818 | 7,340 | -38% | 1 | 1 | 0% | 2,262 | 5,402 | +139% | 0 | 0 | — |
case-16 | fail→pass | 9,798 | 6,344 | -35% | 1 | 1 | 0% | 1,842 | 5,249 | +185% | 0 | 0 | — |
case-17 | pass→pass | 6,632 | 4,164 | -37% | 1 | 1 | 0% | 1,147 | 4,739 | +313% | 0 | 0 | — |
case-18 | pass→pass | 10,049 | 4,436 | -56% | 1 | 1 | 0% | 1,699 | 4,710 | +177% | 0 | 0 | — |
case-19 | pass→pass | 8,464 | 3,639 | -57% | 1 | 1 | 0% | 1,448 | 4,590 | +217% | 0 | 0 | — |
case-20 | pass→pass | 7,102 | 1,793 | -75% | 1 | 1 | 0% | 1,114 | 4,152 | +273% | 0 | 0 | — |
case-21 | pass→pass | 13,220 | 14,080 | +7% | 1 | 1 | 0% | 2,921 | 6,990 | +139% | 0 | 0 | — |
case-22 | pass→pass | 7,097 | 6,450 | -9% | 1 | 1 | 0% | 1,520 | 5,173 | +240% | 0 | 0 | — |
case-23 | pass→pass | 29,190 | 31,519 | +8% | 1 | 1 | 0% | 5,193 | 10,100 | +94% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +70 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.