From arn-infra
This skill should be used when the user says "infra change spec", "infrastructure change", "specify infrastructure change", "change spec", "arn infra spec", "describe infra change", "what infrastructure needs to change", "infra spec", "spec this infra change", "write infra spec", "infrastructure change specification", "create infra change spec", "upgrade to pipeline", "convert to pipeline", or wants to iteratively develop an infrastructure change idea into a well-formed specification through guided conversation, or wants to upgrade existing interactive IaC artifacts into the structured change pipeline.
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.
Develop an infrastructure change idea into a well-formed specification through iterative conversation, aided by the arn-infra-request-analyzer and arn-infra-cost-analyst agents. This is a conversational skill that runs in normal conversation (NOT plan mode). The primary artifact is an infrastructure change specification written to the project's infra specs directory that captures affected resources, blast radius, environment scope, rollback requirements, compliance constraints, and cost impact. The spec then informs plan creation via /arn-infra-change-plan.
This skill supports two entry paths:
Pipeline position: arn-infra-init -> arn-infra-wizard (Full Pipeline) -> [arn-infra-change-spec] -> arn-infra-change-plan -> arn-infra-save-plan -> arn-infra-execute-change -> arn-infra-review-change -> arn-infra-document-change
Read ## Arness 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.
Check the Deferred field. If Deferred: yes, inform the user: "Infrastructure is in deferred mode. Change specification is not available until infrastructure is fully configured. Run /arn-infra-assess to un-defer." Stop.
Extract:
.arness/infra-specs)~/.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.If Infra specs directory is not configured, use the default .arness/infra-specs. If the directory does not exist, create it: mkdir -p <infra-specs-dir>.
Analyze the user's trigger message and project state to determine which entry path to follow.
Upgrade detection: Check for signals that the user wants to upgrade existing interactive work to the pipeline:
If upgrade signals are detected: Go to Step 2a (Upgrade Path).
If no upgrade signals: Go to Step 2b (Fresh Path).
This path accepts existing IaC artifacts produced by interactive skills and builds a structured change spec around them.
Locate existing artifacts:
.tf, Pulumi.*, cdk.json, *.bicep, fly.toml, docker-compose.yml, Kubernetes manifests, platform configs)active-resources.json, tooling-manifest.json).arness/infra/providers.md)Present findings to the user:
"I found the following existing infrastructure artifacts:
| Artifact | Type | Provider | Path |
|---|---|---|---|
| ... | IaC/Config/Manifest | ... | ... |
I'll build a change specification around these. This captures the change formally so it can go through the structured pipeline (plan, execute, review, document)."
Extract infrastructure context from artifacts:
Proceed to Step 3 with the extracted context as the initial change description. Skip the iterative idea capture -- the artifacts define what is changing.
Guide the user through developing the change idea from scratch.
Ask the user to describe their infrastructure change. Accept anything from a single sentence to a detailed description. Do not require a specific format.
If the user already provided the change idea in their trigger message (e.g., "infra change spec: migrate the database to a managed service"), use that directly without asking again.
Acknowledge the idea with a brief restatement to confirm understanding.
Prompt questions to fill gaps (adapt to experience level):
Expert: Ask targeted questions only for genuinely missing information. Trust the user to provide sufficient detail.
Intermediate: Ask 3-5 structured questions covering the key areas:
Beginner: Walk through each area with explanations:
Read
${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-change-spec/references/infra-change-spec-template.mdfor the spec template.
Read
${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-change-spec/references/blast-radius-guide.mdfor blast radius classification.
Using the change description (from Step 2a or 2b), perform initial analysis:
If application context is available (the change is driven by an application feature, or cross-project artifacts exist):
Invoke the arn-infra-request-analyzer agent via the Task tool with:
--- CHANGE CONTEXT ---
[change description from Step 2a or 2b]
--- END CHANGE CONTEXT ---
--- INFRASTRUCTURE CONFIG ---
Providers: [from ## Arness]
Environments: [from ## Arness]
Experience level: [derived from user profile]
--- END INFRASTRUCTURE CONFIG ---
--- INSTRUCTIONS ---
Analyze the infrastructure implications of this change. Identify all affected
resources, dependencies between resources, and potential impacts on existing
infrastructure. Focus on what needs to change and what could break.
--- END INSTRUCTIONS ---
Always invoke the arn-infra-cost-analyst agent for preliminary cost estimation:
--- CHANGE CONTEXT ---
[change description including identified resources and operations]
--- END CHANGE CONTEXT ---
--- COST CONFIG ---
Providers: [from ## Arness]
Cost threshold: [from ## Arness]
--- END COST CONFIG ---
--- INSTRUCTIONS ---
Provide a preliminary cost estimation for this infrastructure change.
Estimate monthly cost delta, one-time provisioning costs, and compare
with the current state. Flag if the estimated cost exceeds the configured
threshold.
--- END INSTRUCTIONS ---
Both agents can be invoked in parallel since they are independent.
This is a conversation loop. Each iteration:
Present findings -- Show the initial analysis including blast radius classification, affected resources, cost estimate, and any agent outputs.
Listen -- The user responds with feedback, corrections, additional requirements, or questions.
Refine -- Update the change specification based on feedback. Re-invoke agents if the scope changes significantly (e.g., new resources added, different environments targeted).
Summarize -- After each substantive exchange, briefly state where things stand: what has been decided, what is still open.
Check for readiness -- When the conversation converges (open questions resolved, user is agreeing), ask:
"I think we have enough to write the change specification. Ready for me to finalize it, or do you want to explore anything else?"
Use judgment -- typically after 2-4 rounds of substantive discussion, or when the user signals readiness.
When the user approves:
Derive a kebab-case name for the change from the description (e.g., "migrate database to managed service" -> migrate-database-managed). Suggest to the user: "I'll name this spec <name>. Good?"
Populate the infra-change-spec-template.md with all gathered information:
Write to <infra-specs-dir>/INFRA_CHANGE_<name>.md.
Present a summary:
Inform the user of next steps:
"Infrastructure change specification saved to <infra-specs-dir>/INFRA_CHANGE_<name>.md.
Next step: Run /arn-infra-change-plan to generate a phased implementation plan from this spec."
## Arness config missing: Suggest running /arn-infra-wizard to get started. Stop.
Infra specs directory does not exist: Create it with mkdir -p. Continue.
Request analyzer agent fails: Report the error. Continue without cross-project analysis. Note in the spec: "Application context analysis was unavailable. Review affected resources manually."
Cost analyst agent fails: Report the error. Continue without cost estimation. Note in the spec: "Cost estimation was unavailable. Estimate costs before executing the change."
Cost analyst returns empty output: Inform: "The cost analyst could not determine cost impact from the available information. Add cost estimates manually before proceeding."
Ambiguous scope: If the user describes a change that could apply to multiple environments or providers, ask for clarification rather than guessing.
Missing provider info: If the change references a provider not configured in ## Arness, warn: "Provider [name] is not configured in your Arness Infra setup. Run /arn-infra-init to add it, or specify the provider details manually."
Existing spec with same name: If INFRA_CHANGE_<name>.md already exists:
Ask (using AskUserQuestion):
"A spec with this name already exists. What would you like to do?"
Options:
Re-running is safe: Creating a new spec does not affect existing specs. The user can create multiple specs for different changes. Overwriting an existing spec requires explicit confirmation.