From arn-infra
This skill should be used when the user says "save infra plan", "save infrastructure plan", "structure infra plan", "create infra project", "finalize infra plan", "arn infra save plan", "infra save plan", "save change plan", "structure infrastructure plan", "finalize infrastructure plan", "arn-infra-save-plan", or wants to convert a PLAN_PREVIEW_INFRA_*.md into a structured project directory with infrastructure-specific templates, report templates, and progress tracking.
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.
Convert a PLAN_PREVIEW_INFRA_*.md plan preview into a structured project directory with infrastructure-specific INTRODUCTION.md, per-phase PHASE_N_PLAN.md files, TASKS.md, report templates, and a PROGRESS_TRACKER.json for execution tracking. This is the bridge between change-plan (which produces the preview) and execute-change (which consumes the structured project).
Pipeline position:
arn-infra-init -> 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. Plan structuring is not available until infrastructure is fully configured. Run /arn-infra-assess to un-defer." Stop.
Extract:
.arness/infra-plans)default).arness/infra-templates)~/.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 plans directory is not configured, stop and instruct the user: "Infra plans directory is not configured. Run /arn-infra-init to set up infrastructure pipeline configuration."
Search for PLAN_PREVIEW_INFRA_*.md files in the Infra plans directory.
Glob <infra-plans-dir>/PLAN_PREVIEW_INFRA_*.md
If no preview found: Also check the project root:
Glob PLAN_PREVIEW_INFRA_*.md
If exactly one preview found: Auto-select it and present: "Found plan preview: [filename]. Proceeding to structure this plan."
If multiple previews found: Present the list:
Ask (using AskUserQuestion):
"Which plan would you like to structure?"
Options:
If still no preview found: Inform the user: "No PLAN_PREVIEW_INFRA_*.md found. Run /arn-infra-change-plan first to generate a plan preview."
Read the selected plan preview file. Extract:
Present a summary:
"Plan Summary:
Ask (using AskUserQuestion):
"Proceed with structuring this plan?"
Options:
Run the save_infra_plan.sh script to create the project directory:
bash ${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-save-plan/scripts/save_infra_plan.sh "<project-name>" "<infra-plans-dir>" "<plan-preview-path>"
This creates:
<infra-plans-dir>/<project-name>/
├── SOURCE_PLAN.md (copy of the original preview)
├── plans/ (phase plan directory)
└── reports/ (execution report directory)
Read
${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-save-plan/references/infra-templates.mdfor the INTRODUCTION.md template structure.
Generate INTRODUCTION.md in the project directory using the template from infra-templates.md. Populate all sections from the plan preview content:
Write to: <infra-plans-dir>/<project-name>/INTRODUCTION.md
Read
${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-save-plan/references/infra-templates.mdfor the PHASE_N_PLAN.md template structure.
For each phase in the plan preview, generate a PHASE_N_PLAN.md file in the plans/ directory using the infrastructure-specific template. Each phase plan includes:
Write to: <infra-plans-dir>/<project-name>/plans/PHASE_N_PLAN.md (one per phase)
Generate TASKS.md with the consolidated task list from all phases. Format:
# Tasks
## Phase 1: [title]
- [ ] TASK-P1-001: [description]
- [ ] TASK-P1-002: [description]
## Phase 2: [title]
- [ ] TASK-P2-001: [description]
...
Write to: <infra-plans-dir>/<project-name>/TASKS.md
Copy the 3 infrastructure report templates from the plugin to the project's Infra template path:
Read
${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-save-plan/report-templates/default/INFRA_CHANGE_REPORT_TEMPLATE.jsonRead${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-save-plan/report-templates/default/INFRA_REVIEW_REPORT_TEMPLATE.jsonRead${CLAUDE_PLUGIN_ROOT}/skills/arn-infra-save-plan/report-templates/default/INFRA_PROGRESS_REPORT_TEMPLATE.json
Write each template to the Infra template path directory. Generate SHA-256 checksums for each copied template using sha256sum or shasum -a 256 for future update detection.
Store checksums in <infra-template-path>/.checksums.json:
{
"version": "<infra-template-version>",
"files": {
"INFRA_CHANGE_REPORT_TEMPLATE.json": "<sha256>",
"INFRA_REVIEW_REPORT_TEMPLATE.json": "<sha256>",
"INFRA_PROGRESS_REPORT_TEMPLATE.json": "<sha256>"
}
}
Generate PROGRESS_TRACKER.json in the project directory following the INFRA_PROGRESS_REPORT_TEMPLATE.json schema. Initialize all phases with not_started status:
{
"reportType": "infra-progress",
"projectName": "<project-name>",
"lastUpdated": "<current-iso-timestamp>",
"overallStatus": "not_started",
"totalPhases": <N>,
"changeSpec": "<path-to-spec>",
"changePlan": "<path-to-SOURCE_PLAN.md>",
"phases": [
{
"phaseNumber": 1,
"phaseTitle": "<title>",
"planFile": "plans/PHASE_1_PLAN.md",
"environment": "<target-env>",
"blastRadius": "<classification>",
"execution": { "status": "not_started", "reportFile": "reports/INFRA_CHANGE_REPORT_PHASE_1.json" },
"securityGate": { "status": "not_started" },
"costGate": { "status": "not_started" },
"verification": { "status": "not_started" },
"review": { "verdict": "", "reportFile": "" }
}
],
"notes": []
}
Write to: <infra-plans-dir>/<project-name>/PROGRESS_TRACKER.json
Adapt the summary presentation to the user's experience level.
Expert:
"Structured project created: <infra-plans-dir>/<project-name>/
<infra-template-path>//arn-infra-execute-change to begin execution."Intermediate: Present the file tree with brief descriptions of each artifact and suggest the next step.
Beginner: Present the file tree with explanations of what each file is for and a step-by-step guide for what to do next.
Next steps:
/arn-infra-execute-change to begin phased executionPHASE_N_PLAN.md to review before execution## Arness config missing: Suggest running /arn-infra-wizard to get started. Stop./arn-infra-change-plan to generate a plan preview first. Stop.mkdir -p.