Back to Skills

terraform-workspace

verified

Terraform workspace management for multi-environment deployments

View on GitHub

Marketplace

pluginagentmarketplace-terraform

pluginagentmarketplace/custom-plugin-terraform

Plugin

terraform-assistant

Repository

pluginagentmarketplace/custom-plugin-terraform
1stars

skills/terraform-workspace/SKILL.md

Last Verified

January 20, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-terraform/blob/main/skills/terraform-workspace/SKILL.md -a claude-code --skill terraform-workspace

Installation paths:

Claude
.claude/skills/terraform-workspace/
Powered by add-skill CLI

Instructions

# Terraform Workspace Skill

Manage multiple environments with Terraform workspaces.

## Workspace Commands

```bash
# List workspaces
terraform workspace list

# Create workspace
terraform workspace new dev
terraform workspace new staging
terraform workspace new prod

# Switch workspace
terraform workspace select prod

# Show current
terraform workspace show

# Delete workspace
terraform workspace delete dev
```

## Configuration Patterns

### Environment-Specific Variables
```hcl
locals {
  env_config = {
    dev = {
      instance_type = "t3.micro"
      min_size      = 1
      max_size      = 2
    }
    staging = {
      instance_type = "t3.small"
      min_size      = 2
      max_size      = 4
    }
    prod = {
      instance_type = "t3.medium"
      min_size      = 3
      max_size      = 10
    }
  }

  config = local.env_config[terraform.workspace]
}

resource "aws_autoscaling_group" "app" {
  min_size = local.config.min_size
  max_size = local.config.max_size
  # ...
}
```

### Workspace-Aware Naming
```hcl
locals {
  name_prefix = "${var.project}-${terraform.workspace}"
}

resource "aws_vpc" "main" {
  cidr_block = var.vpc_cidr

  tags = {
    Name        = "${local.name_prefix}-vpc"
    Environment = terraform.workspace
  }
}
```

### Conditional Resources
```hcl
resource "aws_cloudwatch_alarm" "cpu" {
  count = terraform.workspace == "prod" ? 1 : 0

  alarm_name = "${local.name_prefix}-cpu-alarm"
  # ...
}

resource "aws_db_instance" "main" {
  multi_az            = terraform.workspace == "prod"
  deletion_protection = terraform.workspace == "prod"
  # ...
}
```

## Backend Configuration

### S3 with Workspace Prefix
```hcl
terraform {
  backend "s3" {
    bucket               = "company-terraform-state"
    key                  = "app/terraform.tfstate"
    region               = "us-east-1"
    workspace_key_prefix = "workspaces"
    dynamodb_table       = "terraform-locks"
  }
}
# State paths:
# - workspaces/dev/app/terraform.tfstate
# - workspaces/

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
2881 chars