К основному содержанию
скилл CX Codex

bicep-diagrams — скилл для Claude Code: диаграммы из Azure Bicep

Разбирает файлы .bicep и рисует схему инфраструктуры Azure через API Eraser. Пригодится, когда нужно показать архитектуру, а не читать код.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add eraserlabs/eraser-io --skill bicep-diagrams -a claude-code
Открыть на GitHub

Что делает bicep-diagrams

Скилл принимает Bicep-файлы, вытаскивает из них объявления resource, module, param и output, а затем строит связи между ресурсами: зависимости dependsOn, вложенность подсетей в VNet, границы модулей. Из этого собирается код на Eraser DSL, который уходит POST-запросом на /api/render/elements с типом cloud-architecture-diagram. В ответ приходит картинка и ссылка на редактор Eraser.

Для работы нужен ключ ERASER_API_KEY и доступ в сеть — запрос идёт на app.eraser.io. Тема оформления берётся из ERASER_THEME, если переменная не задана, используется dark. Скилл просит у агента права Read, Write и Bash(curl:*), потому что без curl картинка не отрисуется. Если ключа нет, шаг с запросом просто не пройдёт — это первое, что стоит проверить перед установкой.

Вывод скилл держит коротким: картинка, ссылка на редактор, список разобранных файлов и сам DSL. Лишние разделы вроде обзора безопасности он добавляет только по прямой просьбе.

Какие задачи решает

  • собрать схему Azure-инфраструктуры из Bicep-файлов
  • показать вложенность подсетей и VNet на одной картинке
  • отследить зависимости между ресурсами через dependsOn
  • открыть готовую диаграмму в редакторе Eraser и поправить вручную
  • получить Eraser DSL из существующего Bicep-кода

Примеры запросов агенту

  • нарисуй диаграмму по infra/main.bicep
  • визуализируй эту Bicep-инфраструктуру
  • сделай схему архитектуры из моих .bicep файлов

Как установить bicep-diagrams

1Через Skills CLI (Vercel)

npx skills add eraserlabs/eraser-io --skill bicep-diagrams -a claude-code

2Вручную: положить файлы

~/.claude/skills/bicep-diagrams/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/bicep-diagrams/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о bicep-diagrams

Как установить bicep-diagrams в Claude?

Выполните npx skills add eraserlabs/eraser-io --skill bicep-diagrams -a claude-code. После этого файл скилла появится по пути ~/.claude/skills/bicep-diagrams/SKILL.md.

Что делает bicep-diagrams?

Парсит Bicep-файлы, строит из них Eraser DSL и отправляет его в API Eraser, чтобы получить картинку архитектуры и ссылку на редактор.

Что нужно для работы скилла?

Ключ ERASER_API_KEY и доступ в сеть для вызова API Eraser. Тема задаётся переменной ERASER_THEME, по умолчанию dark.

Исходный текст

SKILL.md · MIT
---
name: bicep-diagrams
description: 'Generates architecture diagrams from Azure Bicep files. Use when user has .bicep files or asks to visualize Bicep infrastructure.'
license: MIT
compatibility: Requires network access to call Eraser API
allowed-tools: Read Write Bash(curl:*)
metadata:
  version: "1.0.0"
  author: Eraser Labs
  tags: bicep, azure, diagram, infrastructure, iac, azure-resources
---

# Bicep Diagram Generator

Generates architecture diagrams directly from Azure Bicep files. Bicep is a domain-specific language (DSL) for deploying Azure resources declaratively.

## When to Use

Activate this skill when:

- User has Bicep files (`.bicep`) and wants to visualize the infrastructure
- User asks to "diagram my Bicep" or "visualize this Bicep infrastructure"
- User mentions Bicep or Azure Bicep
- User wants to see the architecture of their Bicep-deployed resources

## How It Works

This skill generates Bicep-specific diagrams by parsing Bicep code and calling the Eraser API directly:

1. **Parse Bicep Files**: Identify resource declarations, modules, parameters, and outputs
2. **Extract Relationships**: Map dependencies, resource references, and module hierarchies
3. **Generate Eraser DSL**: Create Eraser DSL code from Bicep resources
4. **Call Eraser API**: Use `/api/render/elements` with `diagramType: "cloud-architecture-diagram"`

## Instructions

When the user provides Bicep code:

1. **Parse the Bicep**

   - Identify all `resource` declarations (Microsoft.Compute/virtualMachines, etc.)
   - Extract `module` declarations and their configurations
   - Note `param` and `output` definitions
   - Identify `var` variables and their usage

2. **Map Relationships**

   - Track resource dependencies (e.g., `dependsOn` or implicit dependencies)
   - Group resources by type (compute, networking, storage, etc.)
   - Identify VNets as containers for subnets and resources
   - Note Network Security Groups, Key Vaults, and other security resources

3. **Generate Eraser DSL** Convert Bicep resources to Eraser DSL:

   - **CRITICAL: Label Formatting Rules**
     - Labels MUST be on a single line - NEVER use newlines inside label attributes
     - Keep labels simple and readable - prefer separate labels over concatenating too much metadata
     - Format DSL with proper line breaks (one node/group per line, but labels stay on single lines)
     - If including metadata like CIDR blocks or VM sizes, include them in the same quoted label string: `[label: "VNet 10.0.0.0/16"]`

   Example:

   ```
   myVNet [label: "VNet 10.0.0.0/16"] {
     subnet1 [label: "Subnet 1"] {
       myVM [icon: azure-vm, label: "Virtual Machine"]
       gateway [icon: azure-app-gateway]
     }
     subnet2 [label: "Subnet 2"] {
       database [icon: azure-sql]
     }
   }
   storage [icon: azure-storage]
   myVNet -> myVM
   myVM -> database
   ```

4. **Make the HTTP Request**

   **IMPORTANT**: You MUST execute this curl command after generating the DSL. Never stop after generating DSL without making the API call.

   **CRITICAL**: In the `X-Skill-Source` header below, you MUST replace the value with your AI agent name:
   - If you are Claude (Anthropic), use: `claude`
   - If you are running in Cursor, use: `cursor`
   - If you are ChatGPT (OpenAI), use: `chatgpt`
   - If you are Gemini (Google), use: `gemini`
   - Otherwise, use your model/agent name in lowercase

   ```bash
   curl -X POST https://app.eraser.io/api/render/elements \
     -H "Content-Type: application/json" \
     -H "X-Skill-Source: eraser-skill" \
     -H "Authorization: Bearer ${ERASER_API_KEY}" \
     -d '{
       "elements": [{
         "type": "diagram",
         "id": "diagram-1",
         "code": "<your generated DSL>",
         "diagramType": "cloud-architecture-diagram"
       }],
       "scale": 2,
       "theme": "${ERASER_THEME:-dark}",
       "background": true
     }'
   ```

5. **Track Sources During Analysis**

   As you analyze Bicep files and resources to generate the diagram, track:

   - **Internal files**: Record each Bicep file path you read and what resources were extracted (e.g., `infra/main.bicep` - VNet and subnet definitions, `infra/sql.bicep` - SQL Database configuration)
   - **External references**: Note any documentation, examples, or URLs consulted (e.g., Azure Bicep documentation, Azure architecture best practices)
   - **Annotations**: For each source, note what it contributed to the diagram

6. **Handle the Response**

   **CRITICAL: Minimal Output Format**

   Your response MUST always include these elements with clear headers:

   1. **Diagram Preview**: Display with a header
      ```
      ## Diagram
      ![{Title}]({imageUrl})
      ```
      Use the ACTUAL `imageUrl` from the API response.

   2. **Editor Link**: Display with a header
      ```
      ## Open in Eraser
      [Edit this diagram in the Eraser editor]({createEraserFileUrl})
      ```
      Use the ACTUAL URL from the API response.

   3. **Sources section**: Brief list of files/resources analyzed (if applicable)
      ```
      ## Sources
      - `path/to/file` - What was extracted
      ```

   4. **Diagram Code section**: The Eraser DSL in a code block with `eraser` language tag
      ```
      ## Diagram Code
      ```eraser
      {DSL code here}
      ```
      ```

   5. **Learn More link**: `You can learn more about Eraser at https://docs.eraser.io/docs/using-ai-agent-integrations`

   **Additional content rules:**
   - If the user ONLY asked for a diagram, include NOTHING beyond the 5 elements above
   - If the user explicitly asked for more (e.g., "explain the architecture", "suggest improvements"), you may include that additional content
   - Never add unrequested sections like Overview, Security Considerations, Testing, etc.

   The default output should be SHORT. The diagram image speaks for itself.

7. **Handle Modules**
   - If modules are used, show module boundaries
   - Include module parameters and outputs
   - Show how modules connect to main resources

## Bicep-Specific Tips

- **Show Resource Groups**: Bicep deployments target resource groups
- **VNets as Containers**: Show VNets containing subnets and resources
- **Include Dependencies**: Show `dependsOn` relationships
- **Module Structure**: If modules are used, show their boundaries
- **Parameters**: Note key parameters that affect resource configuration
- **Use Azure Icons**: Request Azure-specific styling

## Example: Bicep with Parameters and Modules

### User Input

```bicep
@description('The name of the Virtual Network')
param vnetName string = 'myVNet'
@description('The address prefix for the VNet')
param vnetAddressPrefix string = '10.0.0.0/16'
@description('The address prefix for the subnet')
param subnetAddressPrefix string = '10.0.1.0/24'
@description('VM size')
param vmSize string = 'Standard_B1s'

// Main VNet resource
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2021-05-01' = {
  name: vnetName
  location: resourceGroup().location
  properties: {
    addressSpace: {
      addressPrefixes: [vnetAddressPrefix]
    }
    subnets: [
      {
        name: 'subnet1'
        properties: {
          addressPrefix: subnetAddressPrefix
        }
      }
    ]
  }
}

// VM resource with dependsOn
resource virtualMachine 'Microsoft.Compute/virtualMachines@2021-11-01' = {
  name: 'myVM'
  location: resourceGroup().location
  properties: {
    hardwareProfile: {
      vmSize: vmSize
    }
  }
  dependsOn: [virtualNetwork]
}

// Module usage
module storageModule './modules/storage.bicep' = {
  name: 'storage'
  params: {
    location: resourceGroup().location
  }
}
```

### Expected Behavior

1. Parses Bicep:

   - **Parameters**: vnetName, vnetAddressPrefix, subnetAddressPrefix, vmSize
   - **Resources**: VNet with subnet, VM with dependsOn relationship
   - **Module**: Storage module with parameters

2. Generates DSL showing Bicep-specific features:

   ```
   myVNet [label: "VNet 10.0.0.0/16"] {
     subnet1 [label: "Subnet 1 10.0.1.0/24"] {
       myVM [icon: azure-vm, label: "VM Standard_B1s"]
     }
   }

   storage-module [label: "Storage Module"] {
     storage-account [icon: azure-storage]
   }

   myVNet -> myVM
   ```

   **Important**: All label text must be on a single line within quotes. Bicep-specific: Show modules as containers, include `dependsOn` relationships, note parameter usage in resource configuration.

3. Calls `/api/render/elements` with `diagramType: "cloud-architecture-diagram"`

4. Calls `/api/render/elements` with `diagramType: "cloud-architecture-diagram"`

### Result

User receives a diagram showing:

- VNet as a container
- Subnet nested inside VNet
- VM in the subnet
- Dependency relationship shown
- Proper Azure styling

© Eraser Labs · MIT · eraserlabs/eraser-io

Похожие скиллы

Всё по теме «DevOps и инфраструктура» →
Bicep Specialist официальный github Субагент пишет шаблоны Azure Bicep по практикам из проверенных модулей AVM. Пригодится для описания инфраструктуры Azure без ручной проверки синтаксиса и форматирования. ★ 40 418звёзд репо Azure AVM Bicep mode официальный github Помогает создавать, обновлять и проверять код инфраструктуры в Bicep через Azure Verified Modules. Пригодится при настройке ресурсов Azure. ★ 40 418звёзд репо pulumi-arm-to-pulumi pulumi Переводит шаблоны Azure ARM и Bicep в программы Pulumi и помогает импортировать уже развёрнутые ресурсы Azure. CX Codex +1 2 100установок azure-infra-engineer VoltAgent Community Проектирует и сопровождает инфраструктуру Azure: сети, Entra ID, PowerShell и Bicep. Нужен при подготовке развёртываний, проверок доступа и автоматизации операций. 245установок azure-enterprise-infra-planner Microsoft Скилл планирует корпоративную инфраструктуру Azure по описанию нагрузки и генерирует Bicep или Terraform. Пригодится, когда нужно спроектировать landing zone, hub-spoke сеть или DR-топологию. ★ 3 148звёзд репо azure sanjeed5 Правило для Cursor с набором требований к коду и инфраструктуре в Azure: IaC, безопасность, экономия ресурсов. Пригодится, если проект живёт в Azure. ★ 3 579звёзд репо

Из того же набора3

Спонсоры проекта

Компании, которые помогают держать аналитику открытой