Devops Engineer
Yikai-Liao/symusic
Creates Dockerfiles, configures CI/CD pipelines, writes Kubernetes manifests, and generates Terraform/Pulumi infrastructure templates.
Robust deployment patterns for Elastic Beanstalk with GitHub Actions, Pulumi, and edge case handling
$ npx skills add pr-pm/prpm --skill beanstalk-deploy -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pr-pm/prpm beanstalk-deploy --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pr-pm/prpm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/beanstalk-deploy .claude/skills/beanstalk-deploy && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "beanstalk-deploy" agent skill from https://github.com/pr-pm/prpm/tree/main/.claude/skills/beanstalk-deploy into .claude/skills/beanstalk-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beanstalk-deploy", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pr-pm/prpm/tree/main/.claude/skills/beanstalk-deployType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pr-pm/prpm --skill beanstalk-deploy -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pr-pm/prpm beanstalk-deploy --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pr-pm/prpm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/beanstalk-deploy .agents/skills/beanstalk-deploy && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "beanstalk-deploy" agent skill from https://github.com/pr-pm/prpm/tree/main/.claude/skills/beanstalk-deploy into .agents/skills/beanstalk-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beanstalk-deploy", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pr-pm/prpm --skill beanstalk-deploy -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pr-pm/prpm beanstalk-deploy --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pr-pm/prpm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/beanstalk-deploy .cursor/skills/beanstalk-deploy && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "beanstalk-deploy" agent skill from https://github.com/pr-pm/prpm/tree/main/.claude/skills/beanstalk-deploy into .cursor/skills/beanstalk-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beanstalk-deploy", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pr-pm/prpm.git --path .claude/skills/beanstalk-deploy--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pr-pm/prpm --skill beanstalk-deploy -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pr-pm/prpm beanstalk-deploy --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pr-pm/prpm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/beanstalk-deploy .gemini/skills/beanstalk-deploy && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "beanstalk-deploy" agent skill from https://github.com/pr-pm/prpm/tree/main/.claude/skills/beanstalk-deploy into .gemini/skills/beanstalk-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beanstalk-deploy", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pr-pm/prpm beanstalk-deployInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pr-pm/prpm --skill beanstalk-deploy -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pr-pm/prpm.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/beanstalk-deploy .github/skills/beanstalk-deploy && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "beanstalk-deploy" agent skill from https://github.com/pr-pm/prpm/tree/main/.claude/skills/beanstalk-deploy into .github/skills/beanstalk-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beanstalk-deploy", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pr-pm/prpm --skill beanstalk-deploy -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pr-pm/prpm beanstalk-deploy --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pr-pm/prpm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/beanstalk-deploy .opencode/skills/beanstalk-deploy && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "beanstalk-deploy" agent skill from https://github.com/pr-pm/prpm/tree/main/.claude/skills/beanstalk-deploy into .opencode/skills/beanstalk-deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "beanstalk-deploy", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
beanstalk-deployRobust deployment patterns for Elastic Beanstalk with GitHub Actions, Pulumi, and edge case handling
Beanstalk Deploy is an agent skill from pr-pm/prpm. Robust deployment patterns for Elastic Beanstalk with GitHub Actions, Pulumi, and edge case handling
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Deployment, Infrastructure as code and CI/CD. It works with Pulumi and GitHub Actions. The repository describes itself as: The universal registry for AI coding tools. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5f993e6. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Beanstalk Deploy loads about 1.1k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 137 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from pr-pm/prpm at commit 5f993e6, republished under its MIT licence (© pr-pm). 137 words, ~1,051 tokens.
.claude/skills/beanstalk-deploy/SKILL.md (or your agent's skills folder).Apply these production-tested patterns when working with Elastic Beanstalk deployments, especially with GitHub Actions and Pulumi infrastructure.
ALWAYS check infrastructure status before deploying:
- name: Check infrastructure status
run: |
echo "🔍 Checking infrastructure status..."
# Get environment name from Pulumi state (without deploying)
EB_ENVIRONMENT_NAME=$(pulumi stack output ebEnvironmentName 2>/dev/null || echo "")
if [ -z "$EB_ENVIRONMENT_NAME" ]; then
echo "🔍 No environment found in Pulumi state. Will deploy infrastructure..."
else
echo "🔍 Checking environment status: $EB_ENVIRONMENT_NAME"
# Check if environment exists and is healthy
EB_ENV_STATUS=$(aws elasticbeanstalk describe-environments \
--environment-names "$EB_ENVIRONMENT_NAME" \
--query "Environments[0].Status" --output text 2>/dev/null || echo "NOT_FOUND")
if [ "$EB_ENV_STATUS" = "Terminated" ] || [ "$EB_ENV_STATUS" = "NOT_FOUND" ]; then
echo "⚠️ Environment is $EB_ENV_STATUS. Deleting from Pulumi state..."
# Delete environment from Pulumi state
EB_URN=$(pulumi stack --show-urns | awk '/aws:elasticbeanstalk\/environment:Environment/ {print $1; exit}')
if [ -n "$EB_URN" ]; then
echo "🔧 Deleting: $EB_URN"
pulumi state delete "$EB_URN" --force
fi
echo "🔄 Infrastructure will be recreated..."
else
echo "✅ Environment exists: $EB_ENV_STATUS"
# Check if infrastructure changes needed
if pulumi preview --diff --expect-no-changes 2>/dev/null; then
echo "✅ No infrastructure changes needed"
else
echo "🔄 Infrastructure changes detected"
fi
fi
fiWhy: Prevents deploying to orphaned resources, automatically recovers from terminated environments, saves money on zombie resources.
ALWAYS wait for environment to be fully ready:
- name: Verify Elastic Beanstalk environment exists
run: |
echo "🔍 Verifying Elastic Beanstalk environment..."
EB_ENVIRONMENT_NAME="${{ steps.get-resources.outputs.eb_environment_name }}"
# Wait until environment exists
echo "⏳ Waiting for environment to exist..."
aws elasticbeanstalk wait environment-exists \
--environment-names "$EB_ENVIRONMENT_NAME" || true
# Wait until environment is Ready (with 30 retries)
for i in {1..30}; do
ENV_STATUS=$(aws elasticbeanstalk describe-environments \
--environment-names "$EB_ENVIRONMENT_NAME" \
--query "Environments[0].Status" --output text 2>/dev/null || echo "NOT_FOUND")
ENV_HEALTH=$(aws elasticbeanstalk describe-environments \
--environment-names "$EB_ENVIRONMENT_NAME" \
--query "Environments[0].Health" --output text 2>/dev/null || echo "UNKNOWN")
echo "⏳ EB Status: $ENV_STATUS, Health: $ENV_HEALTH (attempt $i/30)"
if [ "$ENV_STATUS" = "Ready" ]; then
echo "✅ Environment is Ready"
break
fi
sleep 20 # Wait 20 seconds between checks (10 minutes total)
done
if [ "$ENV_STATUS" != "Ready" ]; then
echo "⚠️ Environment not Ready after 10 minutes. Continuing with caution..."
fiWhy: Prevents timing-related failures, ensures environment is provisioned before app deployment, provides visibility into provisioning progress.
See full documentation for complete deployment patterns, Pulumi configuration, monitoring, and production checklist.
© pr-pm, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/beanstalk-deploy of pr-pm/prpm.
Open the folder on GitHubat commit 5f993e6
Beanstalk Deploy next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Beanstalk Deploy this skillpr-pm/prpm | 122 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Devops EngineerYikai-Liao/symusic | 189 | 1 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 259 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence | |
| Azure Bicep Skilltimothywarner-org/claude-code | 224 | — | ~2.9k | Automated safety check: Pass | MIT | |
| APIOps Deployment for Azure APIMthomast1906/github-copilot-agent-skills | 202 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Devops InfrastructureCloudAI-X/claude-workflow-v2 | 1.4k | — | ~2.7k | Automated safety check: Notes | MIT |
Yikai-Liao/symusic
Creates Dockerfiles, configures CI/CD pipelines, writes Kubernetes manifests, and generates Terraform/Pulumi infrastructure templates.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
timothywarner-org/claude-code
A skill your agent uses when authoring, reviewing, or refactoring Azure Bicep code.
thomast1906/github-copilot-agent-skills
Supplies Bicep and Terraform templates, CI/CD pipeline patterns and phased promotion plans for deploying Azure API Management with APIOps workflows.
CloudAI-X/claude-workflow-v2
Guides Docker, CI/CD pipelines, deployment strategies, infrastructure as code, and observability setup.
boundless-xyz/boundless
Internal — for Boundless team members only. An agent skill from boundless-xyz/boundless.
pr-pm/prpm
Reference for writing Claude Code agent files: location, frontmatter fields, validation limits, tool and model choices, and the required content format.
pr-pm/prpm
Covers how to build, configure and publish Claude Code hooks: event types, exit codes, JSON I/O, and PRPM packaging.
pr-pm/prpm
Shows how to write .claude/rules/ files correctly: paths frontmatter instead of globs, quoted glob patterns, global rules and conversion of Cursor rules.
pr-pm/prpm
Reference for writing portable Agent Skills packages, covering SKILL.md frontmatter limits, name rules, directory layout and where Codex CLI, GitHub Copilot and Amp look for skills.
pr-pm/prpm
A skill your agent uses when building custom Kiro AI agents or when user asks for agent configurations - provides JSON structure, tool configuration, prompt patterns, and security best practices for…
pr-pm/prpm
A skill your agent uses when creating OpenCode agents - provides markdown format with YAML frontmatter, mode/tools/permission configuration, and best practices for specialized AI assistants
Works with
Categories
Robust deployment patterns for Elastic Beanstalk with GitHub Actions, Pulumi, and edge case handling. Beanstalk Deploy is an agent skill from pr-pm/prpm.
Beanstalk Deploy fits situations like: tasks that involve Deployment; tasks that involve Infrastructure as code; tasks that involve CI/CD.
Run `npx skills add pr-pm/prpm --skill beanstalk-deploy -a claude-code`. Or copy the skill folder (.claude/skills/beanstalk-deploy in pr-pm/prpm) into .claude/skills/beanstalk-deploy in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pr-pm/prpm --skill beanstalk-deploy -a codex`. Or copy the skill folder (.claude/skills/beanstalk-deploy in pr-pm/prpm) into .agents/skills/beanstalk-deploy in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pr-pm/prpm --skill beanstalk-deploy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/beanstalk-deploy, .gemini/skills/beanstalk-deploy, .github/skills/beanstalk-deploy and .opencode/skills/beanstalk-deploy in your project.
SKILL.md names no scripts, command-line tools or credentials: Beanstalk Deploy is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Beanstalk Deploy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Beanstalk Deploy: Devops Engineer (Yikai-Liao/symusic, 189 stars), Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 259 stars), Azure Bicep Skill (timothywarner-org/claude-code, 224 stars) and APIOps Deployment for Azure APIM (thomast1906/github-copilot-agent-skills, 202 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pr-pm (a GitHub organization) maintains it in pr-pm/prpm, which has 122 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 6, 2026.
Source: pr-pm/prpm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.