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

Sales Demos Verify Env

ASecurity

Verify a fresh RHDP environment is genuinely demo-ready before anyone watches — boot sources actually imported, storage on the fast clone path, ingress admitting Routes — then build one real VM, time it, and destroy it. Runs playbooks/prepare_env.yml. TRIGGER when: the user has a new or rebuilt RHDP environment, asks whether an environment is ready or warm, says VM creation is slow, or is about to demo on a cluster nobody has built a VM on yet. SKIP: if OpenShift Virtualization is not install...

2 stars
0 votes
0 copies
0 views
Added 10/6/2026
devopsgobashnode

Works with

mcp

Security Analysis

A100/100

Scanned 10/6/2026

$npx -y skills add ericcames/sales.demos --skill sales-demos-verify-env --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sales Demos Verify Env?

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

Security grade badge for Sales Demos Verify Env
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ericcames-sales-demos-verify-env/badge)](https://www.skillsdirectory.com/skills/ericcames-sales-demos-verify-env)

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: sales-demos-verify-env
description: "Verify a fresh RHDP environment is genuinely demo-ready before anyone watches — boot sources actually imported, storage on the fast clone path, ingress admitting Routes — then build one real VM, time it, and destroy it. Runs playbooks/prepare_env.yml. TRIGGER when: the user has a new or rebuilt RHDP environment, asks whether an environment is ready or warm, says VM creation is slow, or is about to demo on a cluster nobody has built a VM on yet. SKIP: if OpenShift Virtualization is not installed at all — that is Phase 0, sales-demos-setup — or if the user wants to provision demo VMs to keep, which is sales-demos-provision."
---

# sales-demos-verify-env

## There is an AAP path now too (#330)

`Cluster Day 0 - 2 Verify Environment` runs this same playbook from AAP, and is
the last node of the `Cluster Day 0` workflow. The skill remains the quicker
loop when iterating locally.

Answers one question: **would a live VM build in front of a customer be fast?**

Run this after `sales-demos-setup` on a new environment, and before promising anyone
a live build.

## How long a fresh environment actually takes

Measured end to end on a brand-new RHDP environment (#30, #39):

| Step | Fresh environment | Warm environment |
|---|---|---|
| `sales-demos-setup` — install CNV | **~4 min** | already done |
| **This skill** — verify and time a build | **~2 min** | ~2 min |
| — of which the VM build itself | **44s** | 45s |

**Budget roughly 20 minutes from a bare RHDP environment to a demo you would
run in front of someone**, most of which is provisioning the environment itself
before any of this starts.

**A fresh cluster is usually already warm.** All six boot-source VolumeSnapshots
were `readyToUse` before CNV finished installing — the import runs alongside the
install, so `sales-demos-setup` returning generally means you are ready. The often
repeated "5m47s cold versus ~30s warm" figure is a real measurement of a VM
build, but it did **not** reproduce on a genuinely fresh environment; it almost
certainly came from building immediately after install and catching the import
mid-flight.

Which is the point: this skill exists to **prove** readiness in about a minute
rather than assume it, and to name the specific reason when an environment is
not ready.

## Why each check exists

Every one corresponds to a way an environment looks fine and is still slow:

| Check | The failure it catches |
|---|---|
| `rhel9` DataSource `Ready=True` | Boot source never imported |
| **The VolumeSnapshot behind it is `readyToUse`** | DataSource reports Ready while the snapshot is still materializing — the actual slow-build state |
| StorageProfile `cloneStrategy: csi-clone` | `copy` or host-assisted means every create pays a full disk copy, and no amount of warming helps |
| IngressController Available | Routes for demo web access (#29) are never admitted |
| **A real VM built and timed** | Everything above passing while the cluster still cannot make a VM |

That third row is the big lever. On RHDP the default StorageClass should be the
ceph-rbd one; **noobaa reports `copy`** and will make every build slow.

## Preflight Check

```bash
./utilities/preflight.sh "${ENV:-sandbox}"
```

**Never pipe the run through `tee`.** In a pipeline the exit status comes from
`tee`, not `ansible-playbook`, so a failed run reports success.

## Run

```bash
./utilities/run-ansible.sh playbooks/prepare_env.yml -i inventory --limit sandbox \
  -e target_env=sandbox \
  --vault-id sales.demos@~/secrets/.vault_pass_sales_demos
```

It creates a VM in its own `sales-demos-smoke` namespace, waits for `Running`,
reports the time, and deletes the namespace in an `always:` block — so a failed
or slow run does not leave a VM eating the memory budget the real demo needs.

## Verify it in the EE before merging a change

See `/sales-demos-verify-ee` for why and how. The one command:

```bash
utilities/run-in-ee.sh playbooks/prepare_env.yml \
  -i inventory --limit sandbox -e target_env=sandbox \
  --vault-id sales.demos@~/secrets/.vault_pass_sales_demos
```

## Reading the result

- **`WARM — this environment is demo-ready`** (≤120s) — go.
- **`SLOW`** — every readiness check passed but the build was still slow, which
  almost always means the boot source is still settling. **Wait a few minutes
  and re-run.** Do not raise the threshold to make it pass; that only moves the
  surprise to the demo.
- **Fails on `cloneStrategy`** — the default StorageClass is wrong for this
  cluster. This one will not fix itself with time.
- **Fails on CNV** — Phase 0 has not run. Use `sales-demos-setup`.

Raise the bar only deliberately:

```bash
  -e prep_warm_threshold_seconds=180
```

## Verify against the cluster, not the recap

```
mcp__openshift-<env>__resources_get  cdi.kubevirt.io/v1beta1 DataSource rhel9
  namespace: openshift-virtualization-os-images

mcp__openshift-<env>__resources_list  snapshot.storage.k8s.io/v1 VolumeSnapshot
  namespace: openshift-virtualization-os-images

mcp__openshift-<env>__resources_get  storage.k8s.io/v1 StorageProfile <default-storageclass>
# Check status.cloneStrategy — must be csi-clone, not copy

mcp__openshift-<env>__resources_list  v1 Namespace
  fieldSelector: metadata.name=sales-demos-smoke
# Should return empty — the smoke namespace is cleaned up
```

## A fresh environment, start to finish

1. Paste the new URLs into that environment's `connection.yml` (RHDP URLs are
   committed in the clear on purpose) and put the token and password in the
   vault under `env_secrets.<env>`.
2. `sales-demos-setup` — runs `setup.yml`, which installs CNV, links both the
   RHEL 9 and Windows golden images, applies the AAP config, deploys the MCP
   server, installs AO, and **runs this skill's playbook** (`prepare_env.yml`)
   as its final stage. After this, the environment is demo-ready.
3. `sales-demos-provision` — build the demo VMs.

Attribution

ericcamesericcames
View sourceSee grades on GitHubMore from ericcames →
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 →