Test and deploy changes safely. An agent skill from peterkrueck/Claude-Code-Development-Kit.

MITAuto-check passedDevOps & Cloud

Install Deploy

skills CLI
$ npx skills add peterkrueck/Claude-Code-Development-Kit --skill deploy -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install peterkrueck/Claude-Code-Development-Kit deploy --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/peterkrueck/Claude-Code-Development-Kit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/deploy .claude/skills/deploy && rm -rf skills-src

Use ~/.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/

Facts

Skill name
deploy
GitHub stars
1.4k
Token cost
~3.3k tokens
SKILL.md length
1,077 words
Files
1
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Test and deploy changes safely. An agent skill from peterkrueck/Claude-Code-Development-Kit.

  • Works in 4 steps: Preflight → Pre-deploy gate (FAIL-STOP) → Deploy → …
  • Tasks that involve CI/CD
  • SKILL.md covers Input, Target Discovery, Shared-code dependency awareness and Pipeline, plus 7 more sections
  • Calls git, curl and flyctl

What it does

Deploy is an agent skill from peterkrueck/Claude-Code-Development-Kit. Test and deploy changes safely. Discovers deploy targets, runs fail-stop gates before going live, optionally shadow-deploys and swaps, then runs report-only post-deploy checks. This is a TEMPLATE — customize the commands and checks for your specific deployment pipeline.

Its SKILL.md is about 3.3k 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 CI/CD and Deployment. The repository describes itself as: Claude Code Workflow for beginners & intermediate users. Tutorial and Installer included. The licence is MIT.

When your agent uses it

  • Tasks that involve CI/CD
  • Tasks that involve Deployment

Example prompts

  • “/deploy”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Preflight
  2. Pre-deploy gate (FAIL-STOP)
  3. Deploy
  4. Post-deploy verification (REPORT-ONLY)

What it can do on your machine

Read from SKILL.md and the folder at commit ba85375. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • curl
    • flyctl
    • vercel
    • wrangler

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, curl, vercel and wrangler, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Deploy loads about 3.3k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 1,077 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~69
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from peterkrueck/Claude-Code-Development-Kit at commit ba85375, republished under its MIT licence (© peterkrueck). 1,077 words, ~3,321 tokens.

Download SKILL.mdSave it as .claude/skills/deploy/SKILL.md (or your agent's skills folder).
name
deploy
description
Test and deploy changes safely. Discovers deploy targets, runs fail-stop gates before going live, optionally shadow-deploys and swaps, then runs report-only post-deploy checks. This is a TEMPLATE — customize the commands and checks for your specific deployment pipeline.
user_invocable
true

Deploy — Safe Deployment Pipeline

<!-- ============================================================
     TEMPLATE: Customize this skill for your deployment pipeline.
     Replace every [PLACEHOLDER] and every commented "CUSTOMIZE"
     block with your actual commands. Delete the patterns you
     don't use (shadow/canary is optional). The structure —
     discover → gate → deploy → report — is the part worth keeping.
     ============================================================ -->

Pipeline shape: discover targets → fail-stop gate → deploy → report-only checks. The default scope is the whole project; module-level targeting is optional (see Target Discovery).

Input

/deploy [target(s)...] [--all] [--skip-tests]
  • target(s) (optional) — specific services/functions/apps to deploy. Omit to auto-detect from the git diff.
  • --all — deploy every target affected by the current diff.
  • --skip-tests — skip the pre-deploy test gate (use only when tests were just run).
<!-- CUSTOMIZE: list your valid deploy targets, or delete this line if your repo has a single deploy target -->

Valid targets: [YOUR_TARGET_1], [YOUR_TARGET_2], ...

Target Discovery

The pipeline finds what to deploy by scanning for capability-marker files — the file that signals "this directory is independently deployable." Discover targets instead of hardcoding them, so a newly-added target works without editing this skill.

<!-- CUSTOMIZE: pick the marker file(s) for your stack and the directory layout.
     One project per repo: usually there is a single marker at the repo root,
     and "discovery" just confirms it exists. Use module-level markers only if
     your repo genuinely ships more than one independently-deployable unit. -->
bash
# Scan for the capability marker. Default to the whole project (repo root).
# Examples of marker files (pick ONE for your stack):
#   <!-- e.g. fly.toml | vercel.json | wrangler.toml | serverless.yml
#         | Dockerfile | Procfile | package.json with a "deploy" script -->
find . -maxdepth 2 -name '[YOUR_MARKER_FILE]' -not -path '*/node_modules/*'

If a marker is found at the repo root → the deploy target is the whole project (the common case). If markers exist in multiple subdirectories → each is an independent target; map the diff to the affected one(s).

Resolving deploy config (fallback hierarchy)

Read deploy config (app id, account/project identifier, region — whatever your provider needs) from the first source that exists:

  1. Committed config — a tracked file checked into the repo (canonical, worktree-safe).
    <!-- CUSTOMIZE: e.g. fly.toml `app =`, vercel.json, a `.deploy-target` file you commit -->
  2. CLI-managed temp/state — whatever your provider's CLI writes after link/login (often gitignored).
    <!-- CUSTOMIZE: e.g. `.vercel/project.json`, a CLI cache under the project's temp dir -->
  3. Heuristic — derive from a convention (directory name, repo name, an env var).
    <!-- CUSTOMIZE: e.g. app name == repo name; region from an env var -->

If none resolve, STOP with an actionable message: No deploy config for [target]. Run '[YOUR_LINK_COMMAND]', or create '[YOUR_COMMITTED_CONFIG_FILE]'.

Detect what changed

If no target was passed explicitly, map the diff to targets:

bash
git diff --name-only HEAD
git diff --name-only --cached
<!-- CUSTOMIZE: map changed paths → affected target(s). With a single target this
     reduces to "is anything deployable changed?" -->

Shared-code dependency awareness

If the diff touches shared/library code that other deployable units import, those importers must be redeployed too — they bundle the changed code.

<!-- CUSTOMIZE: point this at your shared dir and your import syntax.
     The pattern: find direct importers, then recurse once for transitive importers. -->
bash
# Direct importers of the changed shared file:
grep -rl "[CHANGED_SHARED_PATH]" [YOUR_SOURCE_GLOB]

# Transitive: a shared file that imports the changed shared file is itself
# "changed" — repeat the grep for it, then add its importers. Recurse until
# the set stops growing (usually one extra pass is enough).

Each affected target then runs through the full deploy pipeline below.

Pipeline

Step 1 — Preflight
  1. Resolve target(s), the deploy list, and deploy config.
  2. Print a summary so the operator can sanity-check before anything ships:
    Repo:    <path>
    Branch:  <name> @ <short-sha>
    Targets: <list>
    <!-- CUSTOMIZE: if you work on feature branches, also show `git log main..HEAD --oneline` -->
  3. Classify each target as new vs. existing in production (see Step 3 — the two branches differ).
    <!-- CUSTOMIZE: how to ask your provider "does this already exist live?"
         e.g. `flyctl status`, `vercel ls`, `wrangler deployments list`, an API call -->
Step 2 — Pre-deploy gate (FAIL-STOP)

These run before anything goes live. A failure here means nothing is deployed — the live target is untouched.

<!-- CUSTOMIZE: replace with your test command. Discover it if you can
     (e.g. a "test" script in package.json) and skip cleanly if none exists. -->
bash
[YOUR_TEST_COMMAND]
  • Non-zero exit → STOP. Report which suite failed, pass/fail counts. Deploy nothing.
  • Skipped only when --skip-tests is set or no test command is discovered.
Step 3 — Deploy

Deploy targets one at a time. If one fails, stop and report — do not continue to the remaining targets.

3a. New target (does not yet exist in production)

Nothing live to protect, so deploy directly:

bash
[YOUR_DEPLOY_COMMAND] [target]
  • Then run the smoke probe (see below). A hard failure (target won't boot / not routable) → STOP and report. There is no previous version to fall back to; the operator inspects.
3b. Existing target — optional Shadow/Canary, then swap
<!-- OPTIONAL PATTERN. Skip this whole sub-step if your provider already does
     atomic, instant rollback (most PaaS do — keep a previous-release id instead,
     see "Rollback" below). Use shadow/canary when a bad deploy would otherwise
     be served to users before you can verify it. -->

Deploy a staging variant alongside the live one, probe it, and only swap if it passes. The live target keeps serving the old code until the swap.

  1. Shadow-deploy a parallel variant (a separate slug / preview URL / canary slice):

    bash
    [YOUR_SHADOW_DEPLOY_COMMAND]      # deploy as <target>-shadow / a preview / N% canary
    <!-- CUSTOMIZE per provider, e.g.:
         Vercel:      vercel deploy            (preview URL, not --prod)
         Fly.io:      flyctl deploy --strategy canary
         AWS Lambda:  publish a new version + weighted alias
         Cloudflare:  wrangler deploy --name <target>-shadow   (separate Worker) -->
    • Shadow deploy fails → run Cleanup helper on the shadow, STOP. Live target untouched.
  2. Smoke-probe gate (FAIL-STOP) — probe the shadow URL:

    bash
    [YOUR_SHADOW_SMOKE_PROBE]
    • Fail → run Cleanup helper on the shadow, STOP. Live target untouched.
  3. Swap — promote the verified bundle to the live target:

    bash
    [YOUR_SWAP_COMMAND]               # promote shadow → live / shift 100% traffic
    <!-- CUSTOMIZE per provider, e.g.:
         Vercel:      vercel promote <deployment-url>
         Fly.io:      shift traffic to the canary release
         AWS Lambda:  point the alias at the new version
         Cloudflare:  deploy the verified bundle to the live Worker name -->
    • Swap fails → see Retry-once in Error handling. The live target may be mid-state; do NOT touch git.
  4. Post-swap probe (REPORT-ONLY) — probe the live URL. See Step 4. On failure, report and keep the shadow live for inspection — do not roll back automatically.

  5. Cleanup — on success, remove the shadow (see Cleanup helper).

Show full SKILL.md (606 more words)Show less
Step 4 — Post-deploy verification (REPORT-ONLY)

These run after the target is live. They cannot un-deploy — by definition the new code is already serving. So they are report-only: surface the result, never trigger a destructive auto-rollback.

<!-- CUSTOMIZE: e2e / smoke / health checks against the LIVE target -->
bash
[YOUR_POST_DEPLOY_CHECK]
  • Pass → report success.
  • Fail → re-run once (post-deploy checks are flaky: cold starts, propagation lag, rate limits). Still failing → report it. If a shadow is still live (3b), keep it live for the operator to inspect. Do NOT auto-rollback via git or redeploy of old code.

The split that matters: gates fail-stop before the swap; post-deploy checks only report after it. A check that runs after code is live can warn but must never silently mutate the deployment or the repo.

Smoke probe semantics

A minimal "is it alive and routable?" check — no app secrets or auth needed.

<!-- CUSTOMIZE: replace the URL; adjust which codes mean PASS for your auth setup -->
bash
curl -s -o /dev/null -w "%{http_code}" "[YOUR_TARGET_URL]"
  • 5xx — crashed on boot or dispatch. FAIL.
  • 404 — the router doesn't know this target (bad deploy / wrong name). FAIL.
  • 401 / 403 — auth middleware rejected the unauthenticated probe, but the target is alive. PASS.
  • 2xx / other 4xx — the target responded. PASS.

Cleanup helper

Remove a shadow/canary variant after a swap, or after a failed gate. Safe to run idempotently; cleanup failures are reported but never block an already-completed swap.

bash
# Remote: delete the shadow deployment.
[YOUR_SHADOW_DELETE_COMMAND]

# Local (if your shadow created files): note that `rm -rf` may be permission-gated.
# A surgical enumerate-then-remove avoids the prompt:
find [SHADOW_DIR] -depth -type f -delete
find [SHADOW_DIR] -depth -type d -empty -delete

Error handling

  • Pre-deploy test failure → nothing deployed; report.
  • Shadow deploy failure → run Cleanup helper on the shadow, stop; live target untouched.
  • Gate (smoke-probe) failure → run Cleanup helper on the shadow, stop; live target untouched.
  • Swap failure (Retry-once) → swaps are normally atomic but can hit a transient error. Re-run the swap command once. If it fails again, report — the live target may be in an unknown state (old code still serving, or partially updated). Do NOT mutate git state. Operator inspects.
  • Post-swap / post-deploy check failure → report. Keep the shadow live (don't clean it up) so the operator can compare. Do NOT auto-rollback.

Rollback

<!-- IMPORTANT: prefer your provider's native, atomic rollback. Almost every host
     keeps previous immutable releases you can re-point traffic to instantly. That
     is far safer than rebuilding old code from git. Capture the previous release
     id at deploy time so rollback is a one-liner. -->
bash
[YOUR_NATIVE_ROLLBACK_COMMAND]    # re-point traffic to the previous good release
<!-- CUSTOMIZE per provider, e.g.:
     Vercel:      vercel rollback <previous-deployment-url>
     Fly.io:      flyctl releases list  →  flyctl deploy --image <previous-image>
     AWS Lambda:  point the alias back at the previous version
     Cloudflare:  wrangler rollback [<version-id>] -->

Do not rebuild old code with git checkout and redeploy as a rollback path. It's destructive (can clobber working-tree state), slow, and may not reproduce the exact bytes that were live. The shadow-then-swap flow above already gives you the real safety net: if anything fails before the swap, the live target was never touched — "rollback" is simply "don't swap."

Step — Report

Deploy Complete
───────────────
Targets: <target> @ <deploy-id>
Branch:  <branch> @ <sha>
Tests:   <X/X passed | skipped (none found) | skipped (--skip-tests)>
Results:
  <target1>: shadow → gate PASS → swap → post-check OK → cleaned
  <target2>: new → deploy → probe OK

Skip conditions

Do NOT deploy for:

  • Documentation-only changes (*.md)
  • Client/frontend-only changes when deploying a backend (and vice-versa)
  • Test-only changes (unless --all is explicit)
  • Config that doesn't require redeploy

Notes

  1. Gates are the safety net — the pre-deploy test gate and the shadow smoke-probe both fail-stop before the swap. If anything fails there, the live target was never touched.
  2. Post-deploy checks only report — once code is live they can't un-deploy it, so they warn but never auto-rollback.
  3. Shadow/canary is optional — use it when a bad deploy would reach users before you can verify. If your host already does atomic instant rollback, you may not need it.
  4. Rollback should be native and atomic — re-point traffic to a previous release; never rebuild old code from git.
  5. Every fresh worktree that deploys needs the committed deploy-config file (Target Discovery #1), or it falls back to CLI state / heuristic.

© peterkrueck, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/deploy of peterkrueck/Claude-Code-Development-Kit.

Open the folder on GitHubat commit ba85375

Compare with similar skills

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.

Deploy compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Deploy this skillpeterkrueck/Claude-Code-Development-Kit1.4k—~3.3kAutomated safety check: PassMIT
Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit2596 repos~1.1kAutomated safety check: NotesCustom licence
AI News RadarLearnPrompt/ai-news-radar1.8k—~2.5kAutomated safety check: NotesMIT
Use Vercel Actionamondnet/vercel-action765—~2.7kAutomated safety check: PassMIT
CI CD And Automationdzhalaevd/Donatello1357 repos~2.7kAutomated safety check: NotesApache-2.0
NGINX Ingress CI Pipelinesnginx/kubernetes-ingress5.1k—~5kAutomated safety check: PassApache-2.0

Similar skills

  • Senior DevOps Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…

    259 GitHub starsUsed in 6 repos~1.1k tokens
    DevOps & CloudAuto-check: notes
  • AI News Radar

    LearnPrompt/ai-news-radar

    A skill your agent uses when working on AI News Radar, 24 小时 AI 更新雷达, AI 更新雷达, 伯乐Skill, or Scout Skill: finding high-signal AI/tech sources, adding RSS/OPML/GitHub feeds, checking source health…

    1.8k GitHub stars~2.5k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Use Vercel Action

    amondnet/vercel-action

    Wire amondnet/vercel-action into a GitHub Actions workflow to deploy Vercel projects from CI.

    765 GitHub stars~2.7k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • CI CD And Automation

    dzhalaevd/Donatello

    Automates CI/CD pipeline setup. An agent skill from dzhalaevd/Donatello.

    135 GitHub starsUsed in 7 repos~2.7k tokens
    DevOps & CloudAuto-check: notes
  • NGINX Ingress CI Pipelines

    nginx/kubernetes-ingress

    Explains how the NGINX Ingress Controller's GitHub Actions workflows, reusable workflows, build matrices and release pipeline fit together across two repositories.

    5.1k GitHub stars~5k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Prepare Cloudflare Production Deployment

    LubomirGeorgiev/cloudflare-workers-nextjs-saas-template

    Source-of-truth runbook for preparing this Vinext Cloudflare Workers SaaS template for production deployment.

    786 GitHub stars~5.9k tokensUpdated today
    DevOps & CloudAuto-check: notes

More from peterkrueck/Claude-Code-Development-Kit

All 9 skills in this repo
  • Image Edit

    peterkrueck/Claude-Code-Development-Kit

    Edit images with precision — crop, resize, mirror, rotate, trim, and reframe.

    1.4k GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Image Gen

    peterkrueck/Claude-Code-Development-Kit

    Generate character art and image variations using AI image generation (Google Gemini) with reference images for style and character consistency.

    1.4k GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Bg Remove

    peterkrueck/Claude-Code-Development-Kit

    Remove backgrounds from images using local AI (rembg). An agent skill from peterkrueck/Claude-Code-Development-Kit.

    1.4k GitHub stars~1.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Context7 Guidance

    peterkrueck/Claude-Code-Development-Kit

    Fetch CURRENT library/framework/API/CLI documentation via Context7 instead of relying on training data.

    1.4k GitHub stars~671 tokensUpdated 2 mo ago
    Auto-check passed
  • Second Opinion

    peterkrueck/Claude-Code-Development-Kit

    Get a second opinion from OpenAI's Codex CLI running locally.

    1.4k GitHub stars~2.4k tokensUpdated 2 mo ago
    Auto-check: warnings
  • Second Opinion Gemini

    peterkrueck/Claude-Code-Development-Kit

    Get a second opinion from Google's Gemini Pro via the locally installed Gemini CLI (defaults to gemini-3.1-pro-preview; override with the CLAUDESECONDOPINIONMODEL env var).

    1.4k GitHub stars~2.3k tokensUpdated 2 mo ago
    Auto-check: warnings

Categories

Questions about Deploy

What does Deploy do?

Test and deploy changes safely. An agent skill from peterkrueck/Claude-Code-Development-Kit. Deploy is an agent skill from peterkrueck/Claude-Code-Development-Kit. Test and deploy changes safely.

When should I use Deploy?

Deploy fits situations like: tasks that involve CI/CD; tasks that involve Deployment.

How do I install Deploy in Claude Code?

Run `npx skills add peterkrueck/Claude-Code-Development-Kit --skill deploy -a claude-code`. Or copy the skill folder (skills/deploy in peterkrueck/Claude-Code-Development-Kit) into .claude/skills/deploy in your project. Claude Code loads it when a task matches its description.

How do I install Deploy in Codex?

Run `npx skills add peterkrueck/Claude-Code-Development-Kit --skill deploy -a codex`. Or copy the skill folder (skills/deploy in peterkrueck/Claude-Code-Development-Kit) into .agents/skills/deploy in your project. Codex loads it when a task matches its description.

Can I use Deploy in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add peterkrueck/Claude-Code-Development-Kit --skill 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/deploy, .gemini/skills/deploy, .github/skills/deploy and .opencode/skills/deploy in your project.

What does Deploy need to run?

Going by SKILL.md and its folder, Deploy needs the command-line tools its instructions call (git, curl, flyctl, vercel and wrangler).

Does Deploy access the network?

SKILL.md contains no URLs. Its commands use git and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Deploy safe to install?

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.

What licence does Deploy use?

Deploy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Deploy use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Deploy?

Skills that share tags, products or a category with Deploy: Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 259 stars), AI News Radar (LearnPrompt/ai-news-radar, 1.8k stars), Use Vercel Action (amondnet/vercel-action, 765 stars) and CI CD And Automation (dzhalaevd/Donatello, 135 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Deploy?

peterkrueck (a GitHub user) maintains it in peterkrueck/Claude-Code-Development-Kit, which has 1,385 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on July 22, 2026.

Source: peterkrueck/Claude-Code-Development-Kit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.