Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Check Deployment

ASecurity

Check if a RIG preview deployment is actually running and healthy. Verifies CI triggered, images exist, pods started, and services respond. Use when a PR deployment seems broken or after pushing code.

23 stars
0 votes
0 copies
0 views
Added 9/24/2026
devopsbashgitapifrontendbackendci/cd

Works with

api

Security Analysis

A100/100

Scanned 9/24/2026

$npx -y skills add MinBZK/regelrecht --skill check-deployment --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Check Deployment?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Check Deployment
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/minbzk-check-deployment/badge)](https://www.skillsdirectory.com/skills/minbzk-check-deployment)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: check-deployment
description: "Check if a RIG preview deployment is actually running and healthy. Verifies CI triggered, images exist, pods started, and services respond. Use when a PR deployment seems broken or after pushing code."
user_invocable: true
---

# Check Deployment

Verify that a RIG preview deployment is actually running and healthy. Takes a PR number or deployment name as argument.

## Context

Deployments happen automatically via CI/CD. This skill is for **checking** if something went wrong, not for creating deployments. Common failure modes:
- CI/Deploy workflow didn't trigger after a push
- Image doesn't exist or uses wrong tag
- Pods didn't start (quota exceeded, image pull errors)
- RIG API reported success but pods are actually failing

## Instructions

### 1. Parse argument

Accept a PR number (e.g., `204`) or deployment name (e.g., `pr204`, `pr204b`). If just a number, the deployment name is `pr{N}`.

### 2. Load RIG API key

You need the `RIG_API_KEY` environment variable set to access the RIG Operations Manager API.

### 3. Check CI/Deploy status

If a PR number is given, check if the deploy workflow ran for the latest commit:

```bash
# Get latest commit on PR
gh pr view {N} --repo MinBZK/regelrecht --json headRefOid,headRefName -q '{sha: .headRefOid, branch: .headRefName}'

# Check if deploy workflow triggered for that commit
gh run list --repo MinBZK/regelrecht --branch {branch} --workflow deploy.yml --json headSha,status,conclusion --limit 3
```

Report:
- Whether the latest commit has a deploy workflow run
- Whether it succeeded or is still running
- If no run exists: **the deploy was never triggered** — suggest re-pushing or closing/reopening the PR

### 4. Check pod logs

Verify pods are actually running by checking for recent log output:

```bash
curl -s -H "X-API-Key: $RIG_API_KEY" \
  "https://operations-manager.rig.prd1.gn2.quattro.rijksapps.nl/api/logs/regel-k4c?deployment={name}&lines=20"
```

The API returns logs grouped by component. Note that **not all components are deployed for every PR**:
- `editor` is always deployed
- `harvester-admin` and `harvester-worker` are only deployed when the PR contains backend changes (`packages/admin/`, `packages/pipeline/`, `packages/harvester/`, `packages/corpus/`)

For frontend-only PRs, empty logs for backend components are expected — not a failure.

For each component in the response:
- **Has recent logs**: pod is running
- **Empty logs (0 lines) on a component that should be deployed**: pod is NOT running — likely image pull error or quota issue

### 5. Check image availability

If pods aren't running, verify the images exist:

```bash
# Check what tags exist for this PR
for pkg in regelrecht-editor regelrecht-admin regelrecht-harvester-worker; do
  gh api --paginate "/orgs/MinBZK/packages/container/${pkg}/versions" \
    --jq ".[] | select(.metadata.container.tags | any(test(\"pr-{N}\"))) | .metadata.container.tags"
done
```

Important: The cluster pulls via a Harbor mirror. `ghcr.io` is blocked directly. Only `pr-{N}` tags are reliably available through Harbor. `sha-{hash}` tags may NOT work.

### 6. Report summary

Present a clear status table:

| Check | Status |
|-------|--------|
| CI/Deploy triggered | yes/no |
| Build succeeded | yes/no |
| Images exist (pr-{N} tag) | yes/no |
| editor pod running | yes/no |
| harvester-admin pod running | yes/no |
| harvester-worker pod running | yes/no |

If any check fails, explain:
- What went wrong
- Why it likely happened
- What to do about it (re-push, wait for CI, check quota, etc.)

### 7. If asked to fix

If the user asks to fix a broken deployment:
- **CI didn't trigger**: Suggest re-pushing (`git commit --allow-empty -m "ci: retrigger" && git push`)
- **Images missing**: Wait for CI to complete, then check again
- **Pods not starting**: Check quota by listing all active deployments, suggest cleaning up stale ones
- **Only as last resort**: Create a manual deployment — but **ALWAYS ask the user for confirmation first**. Explain what you're about to do and why, and wait for approval before making any RIG API calls. Manual deploys are not the normal workflow; the CI/CD pipeline should handle this automatically.

When creating a manual deployment (after user approval), use `pr-{N}` tags (NEVER `sha-` tags). **Only include components whose images actually exist** — check step 5 first. For frontend-only PRs, only deploy the editor:

```bash
# Frontend-only PR:
curl -s -X POST -H "X-API-Key: $RIG_API_KEY" -H "Content-Type: application/json" \
  "https://operations-manager.rig.prd1.gn2.quattro.rijksapps.nl/api/projects/regel-k4c/:upsert-deployment" \
  -d '{"deploymentName": "{name}", "cloneFrom": "regelrecht", "components": [
    {"reference": "editor", "image": "ghcr.io/minbzk/regelrecht-editor:pr-{N}"}
  ]}'

# PR with backend changes (all three images exist):
curl -s -X POST -H "X-API-Key: $RIG_API_KEY" -H "Content-Type: application/json" \
  "https://operations-manager.rig.prd1.gn2.quattro.rijksapps.nl/api/projects/regel-k4c/:upsert-deployment" \
  -d '{"deploymentName": "{name}", "cloneFrom": "regelrecht", "components": [
    {"reference": "editor", "image": "ghcr.io/minbzk/regelrecht-editor:pr-{N}"},
    {"reference": "harvester-admin", "image": "ghcr.io/minbzk/regelrecht-admin:pr-{N}"},
    {"reference": "harvester-worker", "image": "ghcr.io/minbzk/regelrecht-harvester-worker:pr-{N}"}
  ]}'
```

**Then wait 60-90 seconds and verify pods started via logs. Do NOT report success until logs confirm pods are running.**

Attribution

MinBZKMinBZK
View sourceSee grades on GitHubMore from MinBZK →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Terraform Module Library

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

401991 votes

sematext-otel

Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.

01 votes

Deployment Patterns

Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.

2699140 votes

Babysit

Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

971540 votes

V7 Roster

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953190 votes
View all in devops →