Release And CI
eser/stack
Releases and CI for eserstack: the shared version of all packages, the release command, the tag-driven build.yml run, JSR and npm publishing, changelog and breaking changes, release recovery, GitHub…
Cut a ServiceRadar release and roll the Kubernetes demo namespace to the resulting published semver image tag through the guarded ArgoCD release branch.
$ npx skills add carverauto/serviceradar --skill release-cut-and-demo-roll -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install carverauto/serviceradar release-cut-and-demo-roll --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/carverauto/serviceradar.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-cut-and-demo-roll .claude/skills/release-cut-and-demo-roll && 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 "release-cut-and-demo-roll" agent skill from https://github.com/carverauto/serviceradar/tree/staging/.agents/skills/release-cut-and-demo-roll into .claude/skills/release-cut-and-demo-roll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut-and-demo-roll", 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/carverauto/serviceradar/tree/staging/.agents/skills/release-cut-and-demo-rollType 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 carverauto/serviceradar --skill release-cut-and-demo-roll -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install carverauto/serviceradar release-cut-and-demo-roll --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carverauto/serviceradar.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release-cut-and-demo-roll .agents/skills/release-cut-and-demo-roll && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-cut-and-demo-roll" agent skill from https://github.com/carverauto/serviceradar/tree/staging/.agents/skills/release-cut-and-demo-roll into .agents/skills/release-cut-and-demo-roll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut-and-demo-roll", 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 carverauto/serviceradar --skill release-cut-and-demo-roll -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install carverauto/serviceradar release-cut-and-demo-roll --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carverauto/serviceradar.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release-cut-and-demo-roll .cursor/skills/release-cut-and-demo-roll && 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 "release-cut-and-demo-roll" agent skill from https://github.com/carverauto/serviceradar/tree/staging/.agents/skills/release-cut-and-demo-roll into .cursor/skills/release-cut-and-demo-roll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut-and-demo-roll", 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/carverauto/serviceradar.git --path .agents/skills/release-cut-and-demo-roll--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 carverauto/serviceradar --skill release-cut-and-demo-roll -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install carverauto/serviceradar release-cut-and-demo-roll --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carverauto/serviceradar.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release-cut-and-demo-roll .gemini/skills/release-cut-and-demo-roll && 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 "release-cut-and-demo-roll" agent skill from https://github.com/carverauto/serviceradar/tree/staging/.agents/skills/release-cut-and-demo-roll into .gemini/skills/release-cut-and-demo-roll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut-and-demo-roll", 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 carverauto/serviceradar release-cut-and-demo-rollInstalls 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 carverauto/serviceradar --skill release-cut-and-demo-roll -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/carverauto/serviceradar.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release-cut-and-demo-roll .github/skills/release-cut-and-demo-roll && 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 "release-cut-and-demo-roll" agent skill from https://github.com/carverauto/serviceradar/tree/staging/.agents/skills/release-cut-and-demo-roll into .github/skills/release-cut-and-demo-roll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut-and-demo-roll", 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 carverauto/serviceradar --skill release-cut-and-demo-roll -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install carverauto/serviceradar release-cut-and-demo-roll --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carverauto/serviceradar.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release-cut-and-demo-roll .opencode/skills/release-cut-and-demo-roll && 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 "release-cut-and-demo-roll" agent skill from https://github.com/carverauto/serviceradar/tree/staging/.agents/skills/release-cut-and-demo-roll into .opencode/skills/release-cut-and-demo-roll/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut-and-demo-roll", 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.
release-cut-and-demo-rollCut a ServiceRadar release and roll the Kubernetes demo namespace to the resulting published semver image tag through the guarded ArgoCD release branch.
Release Cut And Demo Roll is an agent skill from carverauto/serviceradar. Cut a ServiceRadar release and roll the Kubernetes demo namespace to the resulting published semver image tag through the guarded ArgoCD release branch. Use when the user asks to update VERSION and CHANGELOG, run scripts/cut-release.sh, push the release refs, wait for published release artifacts, and then refresh demo to that released version. Do not use for pre-release local testing with unpublished images; use $demo-local-rollout or $demo-web-ng-fastpath for that.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in DevOps & Cloud, covering Container orchestration and Changelog and release notes. It works with Argo CD and Kubernetes. The repository describes itself as: Open-Source Network Management, Monitoring, ITOM, and Security Analytics. The licence is Apache-2.0.
11 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2563b3f. 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.
Shell commands in SKILL.md call:
gitkubectlargocdmakehelmjqgocargobrewFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, kubectl and helm, which can reach the network depending on how they are called.
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.
Release Cut And Demo Roll loads about 3.9k tokens when it runs. Until then it costs about 128 tokens; SKILL.md has 1,609 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 carverauto/serviceradar at commit 2563b3f, republished under its Apache-2.0 licence (© carverauto). 1,609 words, ~3,883 tokens.
.claude/skills/release-cut-and-demo-roll/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill for the formal release path: update release metadata, cut the release commit and tag, publish the refs, confirm that the release artifacts exist, and then verify the automatic demo rollout to the released semver image tag, such as v1.2.41. Prefer the repo's existing release script, CI publish path, guarded demo/prod-release branch, and conservative ArgoCD auto-sync over ad hoc local image pushes.
VERSION and the top CHANGELOG entry for the new semver.scripts/cut-release.sh --version <version> --push; this publishes the release branch only and keeps the annotated tag local.staging with fj pr merge <PR> -M merge after CI passes. Squash/rebase would discard the tagged commit.origin/staging, prove the local tag commit is now an ancestor, and publish the tag with an explicit tag refspec.demo/prod-release and its Argo source file to v<version>.serviceradar-demo-prod still has automated sync enabled with prune and self-heal disabled, and observe Argo pick up the guarded branch without an operator-triggered sync.demo reaches Synced|Healthy|Succeeded; use a manual sync only as an investigated recovery action.scripts/cut-release.sh unless the user explicitly asks for a different path.v1.2.41. The sha-<commit> path is for unpublished local demo testing only.k8s/argocd/applications/demo-prod.yaml has been reviewed and normalized.serviceradar-demo-image-updater is expected to report zero matched applications and zero managed images. Treat 0|0|NoErrors:False as the configured hold state, not a failed release.demo/prod-release branch and must remain non-pruning and non-self-healing. Generated secrets, CNPG resources, and unrelated live drift still require explicit operator judgment.Run all of these BEFORE touching VERSION. Each one has broken a release already.
Every unit test, the way CI runs them. A tag pins its own source, so a fix pushed to
staging afterwards is invisible to a re-run of that tag — a broken test found after
tagging costs a new tag, not a re-run.
make test # bazel test -c opt --config=ci //... --test_tag_filters=-integration_test,-acceptance_testMust end Build completed successfully with no FAIL:. go test / cargo test /
mix test do NOT cover this: the Elixir unit shards exist only as bazel targets
(//elixir/serviceradar_core:unit_tests_*, //elixir/web-ng:unit_tests_*), which is how
two broken Elixir suites reached the v1.4.30 tag.
Duplicate migration versions — must print nothing:
ls elixir/serviceradar_core/priv/repo/migrations/ | grep -oE '^[0-9]+' | sort | uniq -dThis bit v1.3.9 badly: three migrations collided on 20260630120000, and Ecto refuses to
run any migration when versions collide, silently bricking auth, metrics and plugin
assignment on every fresh install. CI passed because it does not migrate against a prior
baseline. If it prints anything, renumber the extras before cutting.
Prod release assembles — broke v1.3.8. cd elixir/serviceradar_core && MIX_ENV=prod mix release
must produce no "Duplicated modules" (the hackney/h2 vs grpcbox/chatterbox conflict).
Gate on BOTH serviceradar_core and serviceradar_core_elx.
macOS needs gsed (brew install gnu-sed) — cut-release.sh uses GNU sed for in-place
edits.
Before cutting the release:
VERSIONCHANGELOGThen dry-run the cut:
scripts/cut-release.sh --version <version> --dry-runFix metadata issues before continuing.
Create the release commit and annotated tag, then publish the release branch while retaining the tag locally:
scripts/cut-release.sh --version <version> --pushDo not run the no-push form first and then rerun with --push; the first run
already creates the local tag, so the second correctly refuses to proceed.
Open the resulting release pull request and use the ancestry-preserving merge commit method:
fj pr merge <PR> -M mergeDo not squash or rebase the release PR because that changes or discards the
tagged commit. Only after that commit is on staging, publish the tag with the
mechanically chained ancestry check printed by the script:
git fetch origin refs/heads/staging:refs/remotes/origin/staging
git merge-base --is-ancestor 'v<version>^{commit}' \
refs/remotes/origin/staging && \
git push origin refs/tags/v<version>:refs/tags/v<version>Afterward, capture:
git rev-parse HEAD
git describe --tags --exact-matchKeep the release commit SHA for reporting and traceability. Use the release version as the demo image tag source: v<version>.
Do not roll demo until the release artifacts for the target semver tag exist.
Forgejo Actions is the supported formal publisher because the complete release
also includes packages, the Helm chart, managed-agent assets, native add-ons,
Wasm plugins, signatures, both import catalogs, and source/image security
bundles. make push_all_release only covers the container/Wasm portion and is
not a complete release recovery. Rerun the appropriate Forgejo workflow at the
release tag when recovery is required.
demo/prod-release Was Not AdvancedThe Advance demo release source branch step in .github/workflows/release.yml
is conditional: it runs only when the release is not a prerelease AND the
parallel-asset and finalize steps both succeeded. An unrelated asset failure --
a Wasm plugin publish, for example -- therefore leaves a fully published,
correctly signed release with demo/prod-release still pointing at the previous
version. The release is fine; only the deploy pointer is stale.
What that step actually does is force-push the release commit itself:
git push --force-with-lease demo-release "HEAD:refs/heads/demo/prod-release"where HEAD is the release commit, git rev-list -n1 "refs/tags/v<version>^{commit}".
So the recovery is to reproduce that push, NOT to hand-write a commit that edits
.argocd-source-serviceradar-demo-prod.yaml. scripts/cut-release.sh already
wrote global.imageTag: v<version> into that file at the release commit, and
that commit is also the only tree carrying the matching Chart.yaml version and
migration expectedVersion. Adding a tag-only commit on top of the stale branch
would run new images against the old chart.
Verify all of these BEFORE pushing, because the push is what rolls demo:
# 1. Release commit is the tag's commit and is reachable from staging.
RC="$(git rev-list -n1 'v<version>^{commit}')"
git merge-base --is-ancestor "$RC" refs/remotes/origin/staging
./scripts/validate-release-metadata.sh "v<version>" "$RC"
# 2. The file at that commit already carries the tag, with no digest pins.
git show "$RC:helm/serviceradar/.argocd-source-serviceradar-demo-prod.yaml"
# 3. Every image the chart renders exists and is signed with the key Kyverno
# enforces. Render from the release tree, not the working tree.
helm template serviceradar <release-tree>/helm/serviceradar -n demo \
-f <release-tree>/helm/serviceradar/values-demo.yaml \
--set-string global.imageTag=v<version> |
grep -oE 'registry[.]carverauto[.]dev/serviceradar/[a-z0-9.-]+:[^ "]+' | sort -u
cosign verify --key docs/cosign.pub --insecure-ignore-tlog=true <each image>docs/cosign.pub is the same key the verify-serviceradar-images ClusterPolicy
carries; diff them rather than assuming. That policy sets mutateDigest: true,
so admitted pods show :<tag>@sha256:... -- comparing that digest against
crane digest <image>:v<version> is the proof of which artifact is running.
Between releases, demo/prod-release accumulates ad-hoc commits that add
image.digests.<service> parameters pinning individual services to sha-...
builds. Per serviceradar.imageRefSuffix in templates/_helpers.tpl, a digest
pin completely overrides global.imageTag. Bumping only the tag while those
pins remain is inert for exactly the services people care about most.
The force-push discards those commits, which is intended -- but confirm first that nothing regresses. Map each pinned digest back to its build commit and prove it is contained in the release:
for t in $(crane ls registry.carverauto.dev/serviceradar/<image> | grep '^sha-'); do
[ "$(crane digest registry.carverauto.dev/serviceradar/<image>:$t)" = "<pinned digest>" ] && echo "$t"
done
git merge-base --is-ancestor <build-commit> 'v<version>^{commit}'A pin whose build commit is NOT an ancestor is not automatically a regression --
branch builds are often squash-merged, so the work lands under a different SHA.
Resolve it by diffing the owning package between that commit and the release tag
rather than by trusting the ancestry check alone. Pinning commits also sometimes
carry chart edits that were never upstreamed; diff
origin/demo/prod-release..v<version> -- helm/serviceradar/ and account for
every removal before pushing.
After pushing, Argo picks the new revision up on its own. Do not sync manually;
confirm the operation was automatic with
.status.operationState.operation.initiatedBy.automated.
The release workflow advances demo/prod-release only after the complete
release, catalog, and security asset set verifies. Confirm that branch now
carries the target tag:
git fetch origin \
refs/heads/demo/prod-release:refs/remotes/origin/demo/prod-release
git show origin/demo/prod-release:helm/serviceradar/.argocd-source-serviceradar-demo-prod.yamlThe source file must set global.imageTag to v<version>. scripts/validate-release-metadata.sh fails the release when that pin is not the release tag (docs/RELEASE_PUBLISHING.md). Confirm the conservative automatic-sync policy is still active:
kubectl get application -n argocd serviceradar-demo-prod \
-o jsonpath='{.spec.syncPolicy.automated.enabled}{"|"}{.spec.syncPolicy.automated.prune}{"|"}{.spec.syncPolicy.automated.selfHeal}{"\n"}'Expect true|false|false. Then check the Image Updater hold state for context:
kubectl get imageupdater -n argocd serviceradar-demo-image-updater \
-o jsonpath='{.status.applicationsMatched}{"|"}{.status.imagesManaged}{"|"}{range .status.conditions[?(@.type=="Error")]}{.reason}{":"}{.status}{":"}{.message}{end}{"\n"}'Expect zero matched applications, zero managed images, and an Error condition with reason NoErrors and status False while the Image Updater hold is active.
Use an authenticated Argo CLI context or the Argo UI. The usual local CLI context expects the Argo server on 127.0.0.1:18443; start its port-forward in a separate shell when it is not already reachable:
kubectl port-forward -n argocd svc/argocd-server 18443:443
argocd app get serviceradar-demo-prod --refreshDo not use --core: it looks for argocd-cm in the active namespace and does not work with this cluster layout.
Refresh the application and inspect any residual drift while the guarded automatic sync progresses:
kubectl get application -n argocd serviceradar-demo-prod -o json |
jq -r '.status.resources[] | select(.status != "Synced") | [.group, .kind, .namespace, .name, .status] | @tsv'
argocd app diff serviceradar-demo-prod --hard-refresh
kubectl get application -n argocd serviceradar-demo-prod -o yamlargocd app diff exits 1 when a diff exists and intentionally omits Kubernetes Secrets. Inspect every non-release change in its output, inspect each OutOfSync Secret's owner/hook annotations separately, and review CNPG resources explicitly. Remove or account for stale live-only Application parameters rather than broadening the automatic policy.
Do not run an operator-triggered sync while the guarded automatic operation is progressing or has succeeded. If automatic sync fails or remains stuck after investigation, a reviewed recovery sync may be dry-run and executed without prune:
argocd app sync serviceradar-demo-prod --dry-run
argocd app sync serviceradar-demo-prod --assumeYesDo not patch global.imageTag directly for a formal release. That creates another live-only override and bypasses the verified demo/prod-release source.
Do not use sr_demo_deploy for formal releases; that helper rolls demo to a sha-... tag and is only appropriate for local unpublished test builds.
Watch the Argo app or Helm result until the deployment is healthy. For Argo-backed environments, wait for:
Synced|Healthy|SucceededUseful checks:
kubectl get application -n argocd serviceradar-demo-prod \
-o jsonpath='{.status.sync.status}{"|"}{.status.health.status}{"|"}{.status.operationState.phase}{"\n"}'
kubectl get pods -n demo
kubectl get deploy -n demo \
serviceradar-web-ng serviceradar-core serviceradar-agent serviceradar-tools \
-o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.template.spec.containers[*]}{.image}{" "}{end}{"\n"}{end}'Do not report the rollout finished until the key workloads are running the new v<version> tag and the environment is healthy.
Close with:
demo/prod-release revision and image tagdemo rollout status© carverauto, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/release-cut-and-demo-roll of carverauto/serviceradar.
Open the folder on GitHubat commit 2563b3f
Release Cut And Demo Roll 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 |
|---|---|---|---|---|---|---|
| Release Cut And Demo Roll this skillcarverauto/serviceradar | 921 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Release And CIeser/stack | 128 | — | ~665 | Automated safety check: Pass | Custom licence | |
| Ama Logs Update Charts Release Notesmicrosoft/Docker-Provider | 174 | — | ~2.6k | Automated safety check: Pass | Custom licence | |
| Aicr Reviewing Component DriftNVIDIA/aicr | 440 | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Kubernetes SpecialistJeffallan/claude-skills | 12k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Kubernetes ArchitectCybereason-Public/owLSM | 280 | 9 repos | ~2.6k | Automated safety check: Pass | GPL-2.0 |
eser/stack
Releases and CI for eserstack: the shared version of all packages, the release command, the tag-driven build.yml run, JSR and npm publishing, changelog and breaking changes, release recovery, GitHub…
microsoft/Docker-Provider
Prepare an ama-logs release PR: bump the image tag (X.Y.Z) across Helm charts, manifests, and Dockerfiles, and add a formatted ReleaseNotes.md entry.
NVIDIA/aicr
A skill your agent uses when reviewing the weekly AICR component drift report — the Slack digest and drift-report.json artifact produced by Registry Drift Report (registry-drift.yaml) listing which…
Jeffallan/claude-skills
Creates and checks Kubernetes manifests, Helm charts, RBAC and network policies, and helps debug pod problems, with kubectl checks and rollback steps.
Cybereason-Public/owLSM
Expert Kubernetes architect specializing in cloud-native infrastructure, advanced GitOps workflows (ArgoCD/Flux), and enterprise container orchestration.
wshobson/agents
Sets up GitOps continuous delivery for Kubernetes with ArgoCD or Flux, covering installation, repository layout, sync policies, progressive delivery and secrets.
carverauto/serviceradar
Run ServiceRadar web-ng locally against the live Kubernetes demo CNPG database for dashboard, SRQL, services, and UI testing.
carverauto/serviceradar
Run ServiceRadar elixir/web-ng locally against the Docker Compose CNPG database with copied mTLS certs and Docker secrets, then verify dashboard UI changes with Playwright.
carverauto/serviceradar
Build unpublished sha-... An agent skill from carverauto/serviceradar.
carverauto/serviceradar
Refresh the Kubernetes demo namespace with a web-ng-only change using the ServiceRadar fast path.
carverauto/serviceradar
Run ServiceRadar web-ng locally against the Kubernetes demo namespace FieldSurvey data, including CNPG NodePort access, NATS Object Store artifact access, authenticated browser checks, and…
carverauto/serviceradar
Official daisyUI component library skill. An agent skill from carverauto/serviceradar.
Works with
Categories
Cut a ServiceRadar release and roll the Kubernetes demo namespace to the resulting published semver image tag through the guarded ArgoCD release branch. Release Cut And Demo Roll is an agent skill from carverauto/serviceradar. Cut a ServiceRadar release and roll the Kubernetes demo namespace to the resulting published semver image tag through the guarded ArgoCD release branch.
Release Cut And Demo Roll fits situations like: the user asks to update VERSION and CHANGELOG; run scripts/cut-release.sh; push the release refs; wait for published release artifacts.
Run `npx skills add carverauto/serviceradar --skill release-cut-and-demo-roll -a claude-code`. Or copy the skill folder (.agents/skills/release-cut-and-demo-roll in carverauto/serviceradar) into .claude/skills/release-cut-and-demo-roll in your project. Claude Code loads it when a task matches its description.
Run `npx skills add carverauto/serviceradar --skill release-cut-and-demo-roll -a codex`. Or copy the skill folder (.agents/skills/release-cut-and-demo-roll in carverauto/serviceradar) into .agents/skills/release-cut-and-demo-roll 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 carverauto/serviceradar --skill release-cut-and-demo-roll -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-cut-and-demo-roll, .gemini/skills/release-cut-and-demo-roll, .github/skills/release-cut-and-demo-roll and .opencode/skills/release-cut-and-demo-roll in your project.
Going by SKILL.md and its folder, Release Cut And Demo Roll needs the command-line tools its instructions call (git, kubectl, argocd, make, helm and jq).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Release Cut And Demo Roll is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 16k 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 Release Cut And Demo Roll: Release And CI (eser/stack, 128 stars), Ama Logs Update Charts Release Notes (microsoft/Docker-Provider, 174 stars), Aicr Reviewing Component Drift (NVIDIA/aicr, 440 stars) and Kubernetes Specialist (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
carverauto (a GitHub organization) maintains it in carverauto/serviceradar, which has 921 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 10, 2026.
Source: carverauto/serviceradar on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.