Devops setup
Set up Claude for DevOps and cloud engineering — configures your cloud provider, IaC tool, and CI/CD platform so Claude helps with infrastructure planning, safe applies, and security reviews.From its SKILL.md
npx -y skills add a2ngerer/claude_onboarding_agent --skill devops-setupAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
9.8 KB, as published. Nobody here has run it
DevOps / Cloud Engineering Setup
This skill configures Claude for DevOps and infrastructure work.
Handoff context: Read skills/_shared/consume-handoff.md and run it with the handoff block (if any). The helper guarantees the following locals: detected_language, existing_claude_md, inferred_use_case, repo_signals, graphify_candidate. Use detected_language for all user-facing prose; generated file content stays in English.
Existing CLAUDE.md: If existing_claude_md: true, DO NOT overwrite it. Append a new delimited section at the end of the file:
<!-- onboarding-agent:start setup=devops skill=devops-setup section=claude-md -->
## Claude Onboarding Agent — DevOps Setup
...generated content...
<!-- onboarding-agent:end -->
If the delimited block already exists from a previous run, replace only the content between the markers; leave the rest untouched. Wrap generated .gitignore entries in # onboarding-agent: devops — start / — end markers so /upgrade-setup can refresh them non-destructively.
Supporting Files
Read these on-demand at the step that invokes them. Do not read eagerly.
skills/_shared/consume-handoff.md— orchestrator handoff parse + inline fallback (preamble, before Step 1)skills/_shared/offer-superpowers.md— canonical Superpowers opt-in (Step 1)rule-file-templates.md— bodies of the.claude/rules/*.mdfiles this skill generates (Step 4)
Step 1: Install Dependencies
Read skills/_shared/offer-superpowers.md and run it with skill_slug: devops-setup, mandatory: false, capability_line: "A widely used free Claude Code skills library. Planning and subagent skills work well for infrastructure tasks that need careful step-by-step execution." The helper asks the user, delegates to skills/_shared/installation-protocol.md on yes, and sets superpowers_installed, superpowers_scope, superpowers_method.
Step 2: Context Questions
Ask one at a time:
-
"Which cloud provider do you primarily use? A) AWS B) GCP C) Azure D) On-Prem / Self-hosted E) Mixed / Multiple"
-
"Which container orchestration do you use? A) Kubernetes B) Docker Compose C) Both D) None"
-
"Which IaC tool do you use? A) Terraform B) Pulumi C) CloudFormation D) Ansible E) None"
-
"Which CI/CD platform do you use? A) GitHub Actions B) GitLab CI C) Jenkins D) CircleCI E) Other — please specify"
Step 3: Optional Community Skills
"Would you like to install additional community skills?
A) kubernetes-ops — Kubernetes best practices and manifest patterns B) aws-cloud-patterns — AWS architecture patterns and CDK helpers C) ci-cd-skill — CI/CD pipeline templates for GitHub Actions / GitLab CI D) All of the above E) None
(Multiple selections via comma, e.g. 'A, C')"
For each selected skill, run: /plugin install <skill>@claude-plugins-official
On failure for any skill: warn clearly ("⚠ Could not install [skill] — skipping. Install manually later.") and continue. Never block the setup.
Store the list of successfully installed optional skills as optional_skills_installed.
Step 4: Generate Artifacts
CLAUDE.md
# Claude Instructions — DevOps / Cloud
## Infrastructure Context
Cloud: [Q1 answer] | Orchestration: [Q2 answer] | IaC: [Q3 answer] | CI/CD: [Q4 answer]
## Guidelines
- Never apply destructive infrastructure changes (destroy, delete, scale-to-zero) without explicit user confirmation
- Always plan before apply: show `terraform plan` / `pulumi preview` output before executing
- Tag all cloud resources consistently; flag untagged resources in reviews
- Treat secrets and credentials as out-of-scope — never hardcode, always reference secret managers
- For Kubernetes: prefer declarative manifests over kubectl imperative commands
- Validate IaC configs before committing (tflint, checkov, or equivalent)
[Include ONLY if superpowers_installed is true]
## Superpowers
Superpowers is installed. For multi-step infrastructure tasks, use superpowers:writing-plans to plan changes before applying, and superpowers:subagent-driven-development to execute safely step-by-step.
Adapt based on answers:
- Terraform → reference
terraform planin guidelines - Pulumi → reference
pulumi preview - CloudFormation → reference
aws cloudformation deploy --change-setas the preview step - Ansible → reference
ansible-playbook --checkas the dry-run step - None → omit plan/preview line entirely
AGENTS.md
# Agent Roles
## infra-planner
Plans infrastructure changes. Runs plan/preview commands. Never applies changes directly. Returns a diff summary for human review.
## infra-applier
Applies approved infrastructure changes. Confirms with user before any destructive operation (destroy, delete, scale-to-zero). Writes a post-apply summary.
## security-reviewer
Reviews IaC configs for security issues (open security groups, public S3 buckets, missing encryption). Returns findings with severity (critical/major/minor).
.claude/settings.json
Build the allow list based on answers:
Always include: "Bash(git *)"
Add based on Q3 (IaC):
- Terraform →
"Bash(terraform *)","Bash(tflint *)","Bash(checkov *)" - Pulumi →
"Bash(pulumi *)" - CloudFormation →
"Bash(aws cloudformation *)" - Ansible →
"Bash(ansible *)","Bash(ansible-playbook *)"
Add based on Q2 (Orchestration):
- Kubernetes →
"Bash(kubectl *)","Bash(helm *)" - Docker Compose →
"Bash(docker *)","Bash(docker-compose *)" - Both → all four above
Add based on Q1 (Cloud):
- AWS →
"Bash(aws *)" - GCP →
"Bash(gcloud *)" - Azure →
"Bash(az *)" - Mixed / Multiple → all three:
"Bash(aws *)","Bash(gcloud *)","Bash(az *)"
Example for Terraform + Kubernetes + AWS:
{
"permissions": {
"allow": [
"Bash(git *)",
"Bash(terraform *)",
"Bash(tflint *)",
"Bash(checkov *)",
"Bash(kubectl *)",
"Bash(helm *)",
"Bash(aws *)"
]
}
}
.claude/rules/infra-safety.md
Read rule-file-templates.md and write its infra-safety section to .claude/rules/infra-safety.md. Skip the write if the file already exists and log Skipped .claude/rules/infra-safety.md (already exists).
This rule is emitted on every run (not gated behind a question): the pre-apply pause principle applies regardless of which IaC tool — if any — the user selected, and it guards against wrapper scripts and ad-hoc kubectl/helm commands that are not covered by Q3.
Also add a pointer line under the ## Guidelines section of the CLAUDE.md block above:
- Pre-apply pause rules for any IaC mutation: `.claude/rules/infra-safety.md`
.gitignore
# IaC state files
*.tfstate
*.tfstate.backup
.terraform/
.pulumi/
# Secrets
*.pem
*.key
.env
.env.*
# OS
.DS_Store
Thumbs.db
# Claude local settings
.claude/settings.local.json
Step 5: Write Upgrade Metadata
Set setup_slug: devops, skill_slug: devops-setup. Resolve plugin_version from the plugin's own plugin.json. Then follow skills/_shared/write-meta.md to create or merge ./.claude/onboarding-meta.json.
Step 6: Render Anchor Sections
Read skills/_shared/anchor-mapping.md. Locate the row for setup_type: devops. For each anchor slug in that row:
- Call
skills/_shared/render-anchor-section.mdwith:setup_type: devopsskill_slug: devops-setupanchor_slug: <slug>target_file: ./CLAUDE.mdfallback_content: <embedded fallback from skills/anchors/SKILL.md for that slug>
- If a
./AGENTS.mdfile was generated earlier in this skill, repeat the call withtarget_file: ./AGENTS.md.
Do not fail if any single render-anchor-section.md call returns placeholder. Collect rendered / placeholder slugs for the completion summary.
For every call, also capture render_freshness. When it is anything other than network or cache (i.e. fallback or embedded), record the (anchor_slug, render_freshness) pair in anchor_freshness_notes. The completion summary's Anchor freshness line consumes this list.
Step 7: Completion Summary
✓ DevOps / Cloud setup complete!
Files created:
CLAUDE.md — infrastructure context + safety guidelines
AGENTS.md — infra-planner, infra-applier, security-reviewer
.claude/rules/infra-safety.md — pre-apply pause rules (tool-agnostic) [created | skipped — already existed]
.claude/settings.json — tool permissions for [stack summary]
.gitignore — IaC state files and secrets
.claude/onboarding-meta.json — setup marker for /upgrade-setup
External skills:
[✓ Superpowers installed via superpowers_method (superpowers_scope)]
[skipped — install later with: /plugin install superpowers@claude-plugins-official]
[⚠ Superpowers installation failed — install manually: https://github.com/obra/superpowers]
Optional community skills: [list of installed skills, or "none selected"]
Anchor freshness:
[omit the whole block if anchor_freshness_notes is empty; otherwise one line per entry:
Anchor <anchor_slug> served from <render_freshness> — consider running /anchors to refresh.]
Next steps:
Start a new Claude session and describe your infrastructure task.
Example: "Review this Terraform plan for security issues"
Example: "Generate a GitHub Actions workflow for this Node.js project"
Example: "Help me migrate this deployment to Kubernetes"
- Run `/anchors` any time to refresh the anchor-derived sections. If any section was rendered as a placeholder due to offline mode, re-run `/anchors` once you are back online.