Create environment
A collection of structured AI agent skills that enable Claude Code, Cursor, GitHub Copilot, and other AI coding assistants to create, operate, debug, and govern Harness CI/CD workflows through natural language.
npx -y skills add harness/harness-skills --skill create-environmentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Generate Harness Environment YAML for deployment targets and create via MCP. Supports PreProduction and Production types with environment variables, manifest overrides, and multi-environment setup (dev, staging, prod). Use when asked to create an environment, set up staging, configure production, define deployment targets, or manage environment overrides. Trigger phrases: create environment, deployment environment, setup dev, setup staging, setup production, environment variables, environment overrides.
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.6 KB, as published. Nobody here has run it
Create Environment
Generate Harness Environment YAML and push to Harness via MCP.
Instructions
- Determine environment type -
PreProductionfor dev/staging/QA,Productionfor live environments - Define variables and overrides - Environment-specific config values and manifest overrides
- Generate YAML using the structure below
- Create via MCP using
harness_createwith resource_typeenvironment
Environment Structure
environment:
name: Staging
identifier: staging
orgIdentifier: default
projectIdentifier: my_project
type: PreProduction # PreProduction or Production
tags:
tier: staging
variables:
- name: domain
type: String
value: staging.myapp.com
- name: replicas
type: Number
value: "2"
- name: db_password
type: Secret
value: <+secrets.getValue("staging_db_password")>
overrides:
manifests:
- manifest:
identifier: values_override
type: Values
spec:
store:
type: Github
spec:
connectorRef: github
repoName: config
branch: main
paths: [values-staging.yaml]
Environment Types
PreProduction- Dev, QA, staging, integration environmentsProduction- Live production environments (enables additional safeguards)
Multi-Environment Setup
Create dev, staging, and prod:
# Dev
environment:
name: Development
identifier: dev
type: PreProduction
variables:
- name: domain
type: String
value: dev.myapp.com
# Staging
environment:
name: Staging
identifier: staging
type: PreProduction
variables:
- name: domain
type: String
value: staging.myapp.com
# Production
environment:
name: Production
identifier: prod
type: Production
variables:
- name: domain
type: String
value: myapp.com
Creating via MCP
Call MCP tool: harness_create
Parameters:
resource_type: "environment"
org_id: "<organization>"
project_id: "<project>"
body: <environment YAML>
List environments:
Call MCP tool: harness_list
Parameters:
resource_type: "environment"
org_id: "<organization>"
project_id: "<project>"
Examples
- "Create dev, staging, and prod environments" - Generate 3 environments with appropriate types
- "Set up a production environment with overrides" - Production type with manifest overrides
Performance Notes
- When creating multiple environments (dev/staging/prod), ensure variable values are distinct per environment.
- Verify that manifest override paths exist in the referenced repository before creating.
- Use Production type only for live environments — it enables additional safeguards like deployment freezes.
Troubleshooting
DUPLICATE_IDENTIFIER- Environment exists; useharness_update- Production type enables deployment freeze and approval guardrails