figram-diagrams

figram-diagrams

Create and validate YAML diagram files for Figram (AWS/GCP/Azure architecture diagrams). Use when users want to create new architecture diagrams, add/modify nodes or edges, troubleshoot YAML validation errors, convert text descriptions to Figram YAML, or work with cloud infrastructure visualizations.

1звезд
0форков
Обновлено 1/17/2026
SKILL.md
readonlyread-only
name
figram-diagrams
description

Create and validate YAML diagram files for Figram (AWS/GCP/Azure architecture diagrams). Use when users want to create new architecture diagrams, add/modify nodes or edges, troubleshoot YAML validation errors, convert text descriptions to Figram YAML, or work with cloud infrastructure visualizations.

Figram Diagram Authoring

Structure

version: 1
docId: "unique-id"      # WebSocket matching
title: "Diagram Title"  # Optional

nodes:
  - id: node-id         # Unique, descriptive (e.g., user-api)
    provider: aws       # aws | gcp | azure
    kind: compute.ec2   # See Icons Reference
    label: "Display"    # Optional, defaults to id
    layout: {x, y}      # Required for top-level nodes
    parent: vpc-id      # Optional, for nesting

edges:
  - id: edge-id
    from: node-a
    to: node-b
    label: "description"  # Optional
    color: "#3498DB"      # Optional, default: #666666

Layout Rules

Node Type Layout
Top-level {x, y} required
Container (VPC, Subnet) {x, y, w, h} required
Child (has parent) Optional (auto-positioned in 3-column grid)

Edge Colors (Convention)

Color HEX Use
Blue #3498DB HTTP/HTTPS
Green #27AE60 Database
Orange #E67E22 Cache
Purple #9B59B6 Container
Gray #666666 Default

Icons Reference

Full lists: AWS | GCP | Azure

Common Kinds

AWS:

  • Compute: compute.ec2, compute.lambda, compute.lb.alb, compute.container.ecs
  • Database: database.rds, database.dynamodb, database.aurora
  • Storage: storage.s3, storage.efs
  • Network: network.vpc, network.subnet, network.apigateway, network.cloudfront
  • Integration: integration.sqs, integration.sns, integration.eventbridge

GCP:

  • Compute: compute.gce, compute.functions, compute.cloudrun, compute.container.gke
  • Database: database.cloudsql, database.firestore, database.spanner
  • Storage: storage.gcs
  • Network: network.vpc, network.cdn, network.apigateway
  • Integration: integration.pubsub, integration.tasks

Azure:

  • Compute: compute.vm, compute.functions, compute.appservice, compute.container.aks
  • Database: database.sql, database.cosmosdb, database.redis
  • Storage: storage.blob, storage.storage
  • Network: network.vnet, network.frontdoor, network.apim
  • Integration: integration.servicebus, integration.eventhubs

Examples

Serverless API (AWS)

version: 1
docId: serverless-api
title: "Serverless REST API"

nodes:
  - id: apigw
    provider: aws
    kind: network.apigateway
    label: "REST API"
    layout: { x: 100, y: 150 }

  - id: lambda
    provider: aws
    kind: compute.lambda
    label: "Handler"
    layout: { x: 300, y: 150 }

  - id: dynamodb
    provider: aws
    kind: database.dynamodb
    label: "Users Table"
    layout: { x: 500, y: 150 }

edges:
  - id: api-to-lambda
    from: apigw
    to: lambda
    label: "invoke"
    color: "#3498DB"

  - id: lambda-to-db
    from: lambda
    to: dynamodb
    label: "read/write"
    color: "#27AE60"

VPC with Auto-Layout

version: 1
docId: vpc-architecture
title: "VPC Architecture"

nodes:
  - id: vpc
    provider: aws
    kind: network.vpc
    label: "Production VPC"
    layout: { x: 0, y: 0, w: 600, h: 400 }

  - id: alb
    provider: aws
    kind: compute.lb.alb
    parent: vpc
    # Auto-positioned: (60, 60)

  - id: ecs
    provider: aws
    kind: compute.container.ecs_service
    parent: vpc
    # Auto-positioned: (220, 60)

  - id: rds
    provider: aws
    kind: database.rds
    parent: vpc
    # Auto-positioned: (380, 60)

edges:
  - id: alb-to-ecs
    from: alb
    to: ecs
  - id: ecs-to-rds
    from: ecs
    to: rds

Validation Errors

Error Fix
Missing required field "version" Add version: 1
Missing required field "docId" Add unique docId
Duplicate node id Use unique IDs
layout is required for top-level nodes Add layout: {x, y}
references unknown parent Fix parent ID
Edge references unknown node Fix from/to IDs
Cycle detected in parent hierarchy Break the cycle

Custom Icons

# In diagram.yaml or figram-icons.yaml
icons:
  aws:
    "compute": "./icons/compute-generic.png"  # Fallback
    "compute.ec2": "./icons/ec2.png"          # Specific

Supported: PNG, JPG, JPEG, GIF, WebP (no SVG)

Commands

npx figram init              # Create template
npx figram build diagram.yaml # Validate and build
npx figram serve diagram.yaml # Start live server
npx figram serve diagram.yaml -p 8080 # Custom port

You Might Also Like

Related Skills

coding-agent

coding-agent

179Kdev-codegen

Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.

add-uint-support

add-uint-support

97Kdev-codegen

Add unsigned integer (uint) type support to PyTorch operators by updating AT_DISPATCH macros. Use when adding support for uint16, uint32, uint64 types to operators, kernels, or when user mentions enabling unsigned types, barebones unsigned types, or uint support.

at-dispatch-v2

at-dispatch-v2

97Kdev-codegen

Convert PyTorch AT_DISPATCH macros to AT_DISPATCH_V2 format in ATen C++ code. Use when porting AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES*, or other dispatch macros to the new v2 API. For ATen kernel files, CUDA kernels, and native operator implementations.

skill-writer

skill-writer

97Kdev-codegen

Guide users through creating Agent Skills for Claude Code. Use when the user wants to create, write, author, or design a new Skill, or needs help with SKILL.md files, frontmatter, or skill structure.

Implements JavaScript classes in C++ using JavaScriptCore. Use when creating new JS classes with C++ bindings, prototypes, or constructors.

Creates JavaScript classes using Bun's Zig bindings generator (.classes.ts). Use when implementing new JS APIs in Zig with JSC integration.