generating-gcp-diagrams — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited generating-gcp-diagrams (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generates professional DrawIO XML diagrams for Google Cloud Platform architectures.
shape=mxgraph.gcp2.{service_name}Note: GCP uses snake_case for shape names (e.g., cloud_run, cloud_sql, cloud_storage).
Icon Pattern: Unlike AWS, GCP uses a single icon pattern for all services — there is no service vs instance icon distinction. The same shape=mxgraph.gcp2.{name} is used whether labeling the service itself ("Cloud Run") or a specific instance ("Cloud Run (API Handler)"). Differentiate by label text only.
| Service | Shape Code |
|---|---|
| Cloud Run | mxgraph.gcp2.cloud_run |
| BigQuery | mxgraph.gcp2.bigquery |
| Cloud Storage | mxgraph.gcp2.cloud_storage |
| Vertex AI | mxgraph.gcp2.cloud_machine_learning |
| Cloud Scheduler | mxgraph.gcp2.cloud_scheduler |
| Apigee | mxgraph.gcp2.apigee_api_platform |
| Pub/Sub | mxgraph.gcp2.cloud_pubsub |
| Cloud SQL | mxgraph.gcp2.cloud_sql |
| GKE | mxgraph.gcp2.compute_engine |
| Cloud Functions | mxgraph.gcp2.cloud_functions |
| Container | Use Case |
|---|---|
| gcp_project | Main project boundary (two-cell pattern) |
| gcp_vpc_sc | VPC Service Controls perimeter (green border) |
| gcp_region | Regional grouping |
| gcp_zone | Zone grouping |
| logical_group_dashed | Logical grouping with dashed border |
| logical_group_solid | Solid border grouping |
| subnet | Subnet boundary |
| firewall_rules | Firewall rules grouping |
| instance_group | Instance group container |
Use this workflow to extract and document all components from an existing DrawIO file.
.drawio XML file<mxCell> elementsvertex="1"edge="1"parent attribute.drawio fileGenerate a Markdown report with:
# DrawIO Analysis Report
## Summary
- Total shapes: X
- Total connections: Y
- Containers: Z
## Shape Inventory
| ID | Label | Type | Position | Parent |
|----|-------|------|----------|--------|
| abc | Cloud Run | mxgraph.gcp2.cloud_run | (100,200) | vpc1 |
## Connection Matrix
| From | To | Label | Type |
|------|-----|-------|------|
| Cloud Run | BigQuery | API | solid |
## Container Hierarchy
- VPC-SC (vpc1)
- Cloud Run (run1)
- Cloud Run (run2)
- BigQuery (bq1)
## Style Analysis
### Unique Shapes Found
- mxgraph.gcp2.cloud_run (4 instances)
- mxgraph.gcp2.bigquery (2 instances)Use this workflow to recreate a GCP architecture diagram from an image.
assets/gcp-icons.json by visual signature or labelassets/containers.jsonassets/templates/drawio-base.xml.drawio XML file# Conversion Confidence Report
## Overall Confidence: 85%
## Identified Components
### High Confidence (>90%)
- Cloud Run x4 - Clear icon match
- BigQuery x2 - Clear icon match
- VPC-SC container - Green border, correct label
### Medium Confidence (70-90%)
- Vertex AI Search - Icon similar, label confirms
### Low Confidence (<70%)
- Unknown icon at position (300, 400) - Mapped to generic service
## Connection Accuracy
- 12/14 connections clearly visible
- 2 connections inferred from layout
## Notes
- "Same Instance" dashed container identified
- Bidirectional arrows on 3 connectionsUse this workflow to generate a new GCP diagram from text specifications.
assets/gcp-icons.jsonassets/containers.jsonassets/templates/drawio-base.xml as starting point.drawio XML fileCreate a GCP architecture with:
- VPC-SC container
- Cloud Scheduler triggering Cloud Run
- Cloud Run connecting to BigQuery and Cloud Storage
- Vertex AI Search connected to BigQuery<mxfile ...>
<diagram name="GCP Architecture">
<mxGraphModel ...>
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- VPC-SC Container -->
<mxCell id="vpc" value="VPC-SC" style="..." vertex="1" parent="1">
<mxGeometry x="50" y="50" width="700" height="400" />
</mxCell>
<!-- Cloud Scheduler -->
<mxCell id="sched" value="Cloud Scheduler" style="...mxgraph.gcp2.cloud_scheduler" vertex="1" parent="vpc">
<mxGeometry x="50" y="100" width="50" height="50" />
</mxCell>
<!-- More shapes... -->
<!-- Connections -->
<mxCell id="conn1" edge="1" source="sched" target="run" style="..." />
</root>
</mxGraphModel>
</diagram>
</mxfile>assets/gcp-icons.jsonservice_name or recognition_keywordsdrawio_shape.full_style for complete stylingshape=mxgraph.gcp2.{shape_name}Service Coverage:
Note: 6 services use fallback icons (Workflows, Eventarc, Artifact Registry, Cloud Deploy, Secret Manager, Identity Platform) as they're newer services not yet in DrawIO's mxgraph.gcp2 stencil. See references/ICON-COMPATIBILITY.md for complete validation details.
| Category | Services |
|---|---|
| compute | Cloud Run, Compute Engine, GKE, Cloud Functions, App Engine |
| database | BigQuery, Cloud SQL, Firestore, Spanner, Bigtable, Memorystore |
| storage | Cloud Storage, Filestore, Persistent Disk |
| networking | VPC, Load Balancing, CDN, DNS, Armor, Cloud NAT |
| ai_ml | Vertex AI, AI Platform, Vision, NLP, Speech-to-Text |
| integration | Pub/Sub, Cloud Tasks, Workflows, Eventarc, Scheduler |
| operations | Logging, Monitoring, Trace, Error Reporting |
| api_management | Apigee, API Gateway |
| data_analytics | Dataflow, Dataproc, Cloud Composer |
| devops | Cloud Build, Artifact Registry, Container Registry, Cloud Deploy |
| security | Cloud KMS, Secret Manager, Identity Platform |
For detailed visual design guidelines, see references/DIAGRAM-BEST-PRACTICES.md.
The GCP Project container uses two cells, not one:
fillColor=#F6F6F6;strokeColor=none; and HTML value <b>Google </b>Cloud Platformshape=mxgraph.gcp2.google_cloud_platform at 23x20px with relative=1 geometrySee assets/templates/node-template.xml for the exact template.
fontColor=#424242 (dark gray)fontColor=#717171fontColor=#2E7D32 (dark green)fontColor=#424242Always add these properties to labeled connections:
labelBackgroundColor=#FFFFFF;fontSize=10;fontColor=#333333;strokeWidth=1 for most connectionsstrokeWidth=2 only for primary data paths (use sparingly - max 1-3 per diagram)edgeStyle=orthogonalEdgeStyle for professional appearanceFor complete XML examples and detailed structure, see references/xml-examples.md.
The key building blocks:
<mxCell id="..." value="Label" style="..." vertex="1" parent="1"> with <mxGeometry><mxCell id="..." edge="1" source="..." target="..." style="...">container=1 in style; children set parent to container ID<mxCell id="0"/> and <mxCell id="1" parent="0"/>For XML parsing and extraction techniques, see references/xml-parser-guide.md.
mxgraph.gcp2.cloud_run (underscore, not hyphen)vertex="1" is present<mxGeometry> has valid width/height (50x50)edge="1" is setparent attribute to container's IDcontainer=1 in stylevalue attribute is setfontSize is reasonable (11-14)fontColor=#424242 is setid="0" and id="1" root cells exist
 for newlines)After generating a .drawio file, you can validate and preview it:
python scripts/validate-drawio.py output.drawio --verbosepython scripts/analyze-existing.py output.drawio --markdownpython scripts/validate-gcp-icons.py./scripts/export-diagram.sh output.drawio png./scripts/open-diagram.sh output.drawioRequires DrawIO Desktop. Install on macOS: brew install drawio
| File | Purpose |
|---|---|
SKILL.md | This file - main instructions |
| Assets | |
assets/gcp-icons.json | GCP service icon database (46 services) |
assets/containers.json | GCP container and connection styles |
assets/templates/drawio-base.xml | Base XML template |
assets/templates/node-template.xml | Shape insertion template |
assets/templates/connection-template.xml | Connection template |
| References | |
references/ICON-COMPATIBILITY.md | Icon validation reference |
references/DIAGRAM-BEST-PRACTICES.md | Visual design and layout guidelines |
references/xml-parser-guide.md | Detailed XML parsing reference |
references/xml-examples.md | Copy-paste XML examples |
references/coordinate-system.md | Positioning and layout guide |
references/style-guide.md | Style string reference |
| Scripts | |
scripts/validate-drawio.py | Validate .drawio XML structure |
scripts/validate-gcp-icons.py | Validate GCP icon compatibility |
scripts/fix-gcp-icons.py | Auto-fix icon shape names |
scripts/fix-drawio-icons.py | Bulk fix icon references in .drawio files |
scripts/extract-shape-names.py | Extract available shapes from DrawIO stencil |
scripts/analyze-existing.py | Extract shapes/connections from .drawio files |
scripts/export-diagram.sh | Export to PNG/PDF via DrawIO Desktop CLI |
scripts/open-diagram.sh | Open .drawio file in DrawIO Desktop |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.