smithery/a-scolan

name-deployment-nodes

Use when naming deployment nodes consistently ({Environment}{Service}Vm for VMs, {Tier}Zone for zones). Ensures scannable, self-documenting infrastructure identifiers.

Installation

$ npx skills add smithery/a-scolan --skill name-deployment-nodes

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/a-scolan.

npx skills add smithery/a-scolan

Browse all from smithery/a-scolan

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 10,275 B
  • docs SUMMARY.md 233 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Name Deployment Nodes Consistently

Overview

Establishes systematic, scannable naming conventions for all deployment infrastructure identifiers: VMs follow {Environment}{ServiceName}Vm, zones use {Tier}Tier or {Function}Zone, and environments are single-word PascalCase. Consistent naming makes infrastructure readable without explanations.

When to Use

  • Naming a new VM before creating it in a deployment file
  • Naming a new network zone or environment
  • Reviewing existing names for consistency before adding new ones
  • Onboarding a new project to the shared naming convention

REQUIRED BACKGROUND: See model-deployment-infrastructure skill for complete hierarchy, descriptions, and infrastructure requirements.

Quick Reference

Element Pattern Examples
VM {Env}{Service}Vm ProdApigwVm, StagingApiVm
Zone (layer) {Tier}Tier AppTier, DataTier, ProcTier
Zone (function) {Function}Zone SecZone, InfraZone
Environment {Env} (PascalCase) Prod, Staging, Dev, Test
External node {Provider}{Service} VirusTotalService, AwsS3Bucket

Keywords: naming, convention, VM, zone, environment, identifier, deployment, consistency

Naming Formula

Virtual Machines (VMs)

Pattern: {Environment}{ServiceName}Vm (PascalCase)

// Examples following pattern
ProdApigwVm      // prod + apigw + vm = production API gateway VM
ProdUploadVm     // prod + upload + vm = production upload service VM
ProdWorkerVm     // prod + worker + vm = production processing worker VM
StagingApiVm     // staging + api + vm = staging API VM
DevDatabaseVm    // dev + database + vm = development database VM

Rules:

  • Environment prefix: Prod, Staging, Dev, Test
  • Service name: Meaningful abbreviation (Apigw, Upload, Worker, Database, Queue)
  • Suffix: Always Vm for consistency
  • FQN identifier: Use lowercase kebab-case: prod-apigw-vm, prod-upload-vm

Zones (Network Segments / VLAN Regions)

Pattern: {Tier}Tier or {Function}Zone (PascalCase)

// Tier-based naming (for layered architectures)
Dmz          // Demilitarized Zone (edge security)
AppTier      // Application tier (microservices)
ProcTier     // Processing tier (async workers)
DataTier     // Data tier (databases, storage)

// Function-based naming (for specialized infrastructure)
SecZone      // Security & monitoring
InfraZone    // Backup & disaster recovery
NetworkZone  // Load balancing & CDN

Rules:

  • Use Tier suffix for layered architecture (App, Proc, Data, Dmz)
  • Use Zone suffix for functional groupings (Sec, Infra, Network)
  • Each zone should have a description with VLAN details
  • Never abbreviate inconsistently (not AppT or ProcZone)

Environments

Pattern: {Environment} (PascalCase)

Prod       // Production (customer-facing)
Staging    // Staging (pre-production testing)
Dev        // Development (local testing)
Test       // Test (automated testing)

External Nodes

Pattern: {Provider}{Service} (PascalCase)

VirusTotalService     // SaaS antivirus provider
AwsS3Bucket           // AWS cloud storage
GoogleAnalyticsApi    // Google SaaS analytics
DatadogMonitoring     // SaaS monitoring platform

Rich Zone Descriptions with Network Details

Always include network and infrastructure specifications in zone descriptions:

AppTier = Zone "Application Tier (VLAN 101: 10.1.0.0/24)" {
  description """
    Microservices deployment zone
    
    | Property | Value |
    |:---------|:------|
    | VLAN | 101 |
    | Network | 10.1.0.0/24 |
    | Gateway | 10.1.0.1 |
    | Firewall | DMZ → AppTier (ingress 443) |
    | Firewall | AppTier → DataTier (egress 27017, 9000) |
    | Purpose | Production microservices |
  """
  
  // VMs in this zone
  ProdUploadVm = Node_Vm "prod-upload-vm" { ... }
  ProdRetrievalVm = Node_Vm "prod-retrieval-vm" { ... }
}

Zone Description Template

Zone SomeTier "Human Readable Zone Name (VLAN N: CIDR)" {
  description """
    Brief purpose of this zone
    
    | Property | Value |
    |:---------|:------|
    | VLAN | 101 |
    | Network | 10.1.0.0/24 |
    | Gateway | 10.1.0.1 |
    | Firewall Rules | List relevant rules |
    | Purpose | What runs here |
    | Tags | #Production #Networking |
  """
}

VM Description with Infrastructure Specs

Use Markdown tables to make deployment specs scannable and self-documenting. Put network interfaces first (eth0, eth1) and avoid repeating the hostname (it's already in the element title).

ProdUploadVm = Node_Vm "prod-upload-vm" {
  #Deployment
  technology "Node.js + Docker"
  
  description """
    File upload handler and validation service (fail-fast validation)
    
    | Property | Value |
    |:---------|:------|
    | eth0 | 10.1.0.12/24 |
    | OS | Ubuntu 22.04 LTS |
    | CPU | 2 vCPU |
    | RAM | 4 GB |
    | Disk | 100 GB SSD |
    | Port | 3001 |
    | Protocol | HTTP/2 |
    | Container | Docker |
    | Monitoring | Prometheus metrics on 9090 |
    | Backup | Daily snapshots |
  """
  
  uploadApp = Node_App "Upload Service" {
    instanceOf corePlatform.uploadService
  }
}

VM Description Template

Node_Vm "vm-name" {
  technology "Runtime + Tools"
  
  description """
    Human-readable purpose and role
    
    | Property | Value |
    |:---------|:------|
    | eth0 | 10.x.x.y/24 |
    | OS | Ubuntu 22.04 LTS |
    | CPU | 2 vCPU |
    | RAM | 4 GB |
    | Port | 3001 |
    | Container | Docker |
    | Monitoring | Port 9090 |
  """
}

Complete Example: Multi-Tier Deployment

deployment {
  Prod = Node_Environment 'Production Datacenter - EU' {
    #Production
    
    // Edge security zone
    Zone Dmz "Network DMZ (VLAN 100: 10.0.0.0/24)" {
      description """
        Perimeter security zone with TLS termination
        
        | Property | Value |
        |:---------|:------|
        | VLAN | 100 |
        | Network | 10.0.0.0/24 |
        | Gateway | 10.0.0.1 |
        | Purpose | Edge services |
      """
      
      ProdApigwVm = Node_Vm "prod-apigw-vm" {
        technology "Kong / API Gateway"
        description """
          Edge API gateway terminates TLS and routes
          
          | Property | Value |
          |:---------|:------|
          | IP | 10.0.0.10/24 |
          | OS | Ubuntu 22.04 LTS |
          | CPU | 4 vCPU |
          | RAM | 8 GB |
          | Port | 443 |
        """
        
        apiApp = Node_App "API Gateway" {
          instanceOf corePlatform.api
        }
      }
    }
    
    // Application services tier
    AppTier = Zone "Application Tier (VLAN 101: 10.1.0.0/24)" {
      description """
        Microservices deployment zone
        
        | Property | Value |
        |:---------|:------|
        | VLAN | 101 |
        | Network | 10.1.0.0/24 |
        | Gateway | 10.1.0.1 |
      """
      
      ProdUploadVm = Node_Vm "prod-upload-vm" {
        description """
          | IP | 10.1.0.12/24 |
          | Port | 3001 |
        """
        uploadApp = Node_App "Upload Service" {
          instanceOf corePlatform.uploadService
        }
      }
      
      ProdRetrievalVm = Node_Vm "prod-retrieval-vm" {
        description """
          | IP | 10.1.0.13/24 |
          | Port | 3002 |
        """
        retrievalApp = Node_App "Retrieval Service" {
          instanceOf corePlatform.retrievalService
        }
      }
    }
    
    // Processing tier
    ProcTier = Zone "Processing Tier (VLAN 102: 10.2.0.0/24)" {
      ProdQueueVm = Node_Vm "prod-queue-vm" {
        description "| IP | 10.2.0.14/24 | | Port | 5672 |"
        queueApp = Node_App "Message Broker" {
          instanceOf corePlatform.jobQueue
        }
      }
      
      ProdWorkerVm = Node_Vm "prod-worker-vm" {
        description "| IP | 10.2.0.15/24 |"
        workerApp = Node_App "Processing Worker" {
          instanceOf corePlatform.worker
        }
      }
    }
    
    // Data tier
    DataTier = Zone "Data Tier (VLAN 103: 10.3.0.0/24)" {
      ProdDatabaseVm = Node_Vm "prod-database-vm" {
        description "| IP | 10.3.0.16/24 | | Port | 27017 |"
        dbApp = Node_App "Database" {
          instanceOf corePlatform.documentDb
        }
      }
      
      ProdStorageVm = Node_Vm "prod-storage-vm" {
        description "| IP | 10.3.0.17/24 | | Port | 9000 |"
        storageApp = Node_App "Object Storage" {
          instanceOf corePlatform.objectStorage
        }
      }
    }
  }
}

Naming Consistency Checklist

  • VMs follow {Environment}{Service}Vm pattern (e.g., ProdUploadVm)
  • FQN identifiers use kebab-case (e.g., prod-upload-vm)
  • Zones use {Tier} or {Function}Zone naming
  • Zone descriptions include VLAN number and CIDR block
  • VM descriptions include table with IP, OS, CPU, RAM, Port
  • External services named {Provider}{Service} (e.g., VirusTotalService)
  • All zones have descriptive purpose in comments
  • All VMs have technology specified
  • Each VM has one Node_App with instanceOf linking to model container

Common Mistakes

❌ Don't ✅ Do Why
ProdApiVM ProdApigwVm Inconsistent casing (VM vs Vm)
produploadvm variable ProdUploadVm Variable names should be PascalCase
AppServers zone AppTier zone Zone names should be singular, use Tier/Zone suffix
No VLAN in description VLAN 101: 10.1.0.0/24 in description Networks require VLAN/CIDR for ops
dev-upload-vm for production prod-upload-vm Environment prefix must match node
Generic name Vm1, Server1 ProdUploadVm Names should indicate purpose

Related Skills

  • model-deployment - Deployment structure and hierarchy
  • write-rich-descriptions - Detailed markdown tables in element descriptions
  • structure-deployment-tiers - Organizing zones into logical tiers