From arn-infra
This skill should be used when the user says "define infrastructure", "generate IaC", "infra define", "arn infra define", "generate terraform", "generate opentofu", "generate pulumi", "generate cdk", "generate bicep", "create kubernetes manifests", "provision cloud resources", "create IaC", "infrastructure as code", or wants to generate infrastructure-as-code in their chosen IaC tool for configured cloud provider(s). It produces provider-specific infrastructure code, validates it through a multi-level validation ladder, and writes an infrastructure architecture spec.
npx claudepluginhub appsvortex/arness --plugin arn-infraThis skill uses the workspace's default tool permissions.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Builds 3-5 year financial models for startups with cohort revenue projections, cost structures, cash flow, headcount plans, burn rate, runway, and scenario analysis.
Generate infrastructure-as-code in the user's chosen IaC tool for their configured cloud provider(s). This is the central skill in the Arness Infra pipeline -- it reads the project's infrastructure configuration, resolves the application context, generates per-provider IaC code, validates it through a multi-level validation ladder, and produces an infrastructure architecture specification.
This skill is expertise-adaptive: beginner users receive platform-native configurations (e.g., fly.toml, vercel.json) instead of full IaC. Intermediate and expert users receive IaC in their chosen tool (OpenTofu, Pulumi, CDK, Bicep, kubectl/Helm).
If a triage implications brief exists (from arn-infra-triage), this skill uses it as the primary input for infrastructure decisions, skipping redundant codebase analysis.
Read the ## Arness section from the project's CLAUDE.md. If no ## Arness section exists or Arness Infra fields are missing, inform the user: "Arness Infra is not configured for this project yet. Run /arn-infra-wizard to get started — it will set everything up automatically." Do not proceed without it.
Extract:
yes, inform the user that infrastructure is deferred and suggest running /arn-infra-assess first~/.arness/user-profile.yaml (or .claude/arness-profile.local.md if it exists — project override takes precedence). Apply the experience derivation mapping from ${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-ensure-config/references/experience-derivation.md. If no profile exists, check for legacy Experience level in ## Arness as fallback.providers.md for per-provider scope and IaC tool overridesenvironments.mdtooling-manifest.json for tool availability checks## Arness config, for locating triage briefs (default: .arness/infra-plans)## Arness config, for writing the INFRA spec (default: .arness/infra-specs)Read the provider configuration:
Read
<providers-config-path>
For each provider, extract:
Read the environment configuration:
Read <environments-config-path>
For each environment, extract: environment name, purpose, promotion order, and environment-specific sizing or feature flags.
Read the tooling manifest:
Read
<tooling-manifest-path>
Check tool readiness for each provider's IaC tool:
tofu, pulumi, cdk)checkov, trivy, infracost)If a required IaC tool is missing:
Warn: "The IaC tool [tool] is not installed. Arness Infra cannot generate or validate [tool] code without it. Run /arn-infra-discover to check and install required tools."
Ask whether to continue (generate code that cannot be locally validated) or stop.
Check for an existing triage implications brief in the infra plans directory:
Glob <infra-plans-dir>/**/triage-brief*.md
Glob <infra-plans-dir>/**/implications-brief*.md
If a triage brief exists: Read the brief. Extract infrastructure implications, resource requirements, and architectural decisions. Present: "I found a triage brief with infrastructure implications. Using it as the primary input for infrastructure generation." Skip Step 3 (application context resolution) -- the triage brief already contains the analyzed requirements.
If no triage brief exists: Continue to Step 3 for full application context resolution.
Resolve the application's architecture, services, and resource requirements. This step is skipped if a triage brief was found in Step 2.
Read the Project topology from ## Arness:
Monorepo:
code-patterns.md and architecture.md from the code patterns directory (path from ## Arness config)Separate repo:
Application path and read the application's ## Arness config, patterns, and architectureInfra-only:
Based on experience level and provider configuration, determine what to generate.
Beginner path (Experience level: beginner): Generate platform-native configurations instead of IaC. Load the PaaS config patterns:
Read the local override or plugin default for
paas-config-patterns.md.
Map the user's provider to the appropriate config format:
fly.tomlrailway.jsonrender.yamlvercel.jsonnetlify.tomlIf the beginner has chosen an IaC-required provider (AWS, GCP, Azure), suggest simpler alternatives or generate simplified IaC with extensive comments.
Intermediate / Expert path: Generate full IaC code. Load the appropriate tool-specific reference:
| IaC Tool | Reference |
|---|---|
| OpenTofu / Terraform | Read the local override or plugin default for opentofu-patterns.md. |
| Pulumi | Read the local override or plugin default for pulumi-patterns.md. |
| CDK | Read the local override or plugin default for cdk-patterns.md. |
| Bicep | Read the local override or plugin default for bicep-patterns.md. |
| Kubernetes (kubectl/Helm) | Read the local override or plugin default for kubernetes-patterns.md. |
For multi-provider setups:
Ask (using AskUserQuestion):
"You have multiple providers configured: [list]. Which provider(s) would you like to generate IaC for now?"
Options:
Invoke the arn-infra-specialist agent via the Task tool with:
--- APPLICATION CONTEXT --- [Application architecture from Step 3, or triage brief content from Step 2] Services: [list of services with roles] Databases: [required databases and their types] Caches: [required caching layers] External services: [third-party integrations, APIs] Traffic patterns: [expected request volume, scaling requirements] --- END APPLICATION CONTEXT ---
--- PROVIDER CONFIGURATION --- [For each provider being generated:] Provider: [name] Scope: [which components this provider handles] IaC tool: [tool name] [Tool-specific patterns from the loaded reference file] --- END PROVIDER CONFIGURATION ---
--- ENVIRONMENT CONFIGURATION --- Environments: [from environments config] Promotion pipeline: [env1 --> env2 --> env3] --- END ENVIRONMENT CONFIGURATION ---
--- INFRASTRUCTURE CONFIG --- Experience level: [derived from user profile] Validation ceiling: [from ## Arness] Cost threshold: [from ## Arness] --- END INFRASTRUCTURE CONFIG ---
--- INSTRUCTIONS --- Generate infrastructure code for the specified provider(s) and IaC tool(s).
For each provider, generate:
Follow these rules:
Run the validation ladder up to the configured validation ceiling. Each level builds on the previous.
Read the local override or plugin default for
validation-ladder.md.
Level 0 -- Static Analysis (always run):
tofu validate or terraform validatepulumi preview --diff (dry run)cdk synth (synthesize CloudFormation)az bicep build (compile to ARM)kubectl apply --dry-run=clientLevel 1 -- Local Validation (if ceiling >= 1):
tofu fmt -check, pulumi up --preview-onlyLevel 2 -- Security Scan and Cost Estimation (if ceiling >= 2):
Run checkov or trivy on the generated IaC if available
Invoke the arn-infra-cost-analyst agent for cost estimation:
Invoke the arn-infra-cost-analyst agent via the Task tool with:
--- INFRASTRUCTURE CODE --- [generated IaC files] --- END INFRASTRUCTURE CODE ---
--- COST CONTEXT --- Provider(s): [list] Cost threshold: [from ## Arness] Environment: [target environment] --- END COST CONTEXT ---
--- INSTRUCTIONS --- Estimate the monthly cost of the defined infrastructure. Compare against the configured cost threshold. If the estimate exceeds the threshold, flag as a cost gate warning. --- END INSTRUCTIONS ---
If validation ceiling is reached and user wants to go higher: Ask: "The configured validation ceiling is Level [N]. Running Level [N+1] would [describe what it does and any costs]. Would you like to proceed?" Require explicit approval before exceeding the ceiling.
If validation fails at any level: Present the errors with fix suggestions. Offer to auto-fix and re-validate, or let the user address manually.
Load the spec template:
Read the local override or plugin default for
infra-architecture-template.md.
Write INFRA_<project-name>.md to the Infra specs directory (from ## Arness config, default: .arness/infra-specs).
The spec captures:
Present each generated file to the user with the provider and tool context:
"Here is the generated infrastructure code:
Provider: [name] IaC Tool: [tool] Validation: Level [N] passed
[For each file:] [filename]:
[generated content]
Validation results: [summary] Cost estimate: [if Level 2+ was run]
Ask (using AskUserQuestion):
"How would you like to proceed with the generated infrastructure code?"
Options:
Upon user approval, write generated files to the appropriate locations:
infra/ directoryenvironments/ subdirectoryPresent the summary:
Infrastructure Definition Summary:
Recommended next steps:
"Infrastructure code is ready. Here is the recommended path:
[INFRA spec path] for the full infrastructure architecture overview/arn-infra-deploy to deploy to your first environment/arn-infra-pipeline to generate a deployment pipeline/arn-infra-env to configure environment promotionOr run /arn-infra-wizard for the full guided pipeline."
## Arness config missing: Suggest running /arn-infra-wizard to get started. Stop.Deferred: yes): Inform the user that infrastructure is deferred. Suggest running /arn-infra-assess to produce a full infrastructure plan first, then re-running define./arn-infra-init to configure providers. Stop./arn-infra-discover./arn-infra-init to regenerate configuration files. Stop.