showroom:create-demo

This skill should be used when the user asks to "create a demo module", "write a Know/Show demo", "build a presenter demo", "create a Showroom demo", "write a facilitator guide", "build a demo script", or "create a presenter-led demo for RHDP".

12 stars

Best use case

showroom:create-demo is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

This skill should be used when the user asks to "create a demo module", "write a Know/Show demo", "build a presenter demo", "create a Showroom demo", "write a facilitator guide", "build a demo script", or "create a presenter-led demo for RHDP".

Teams using showroom:create-demo should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/showroom-create-demo/SKILL.md --create-dirs "https://raw.githubusercontent.com/rhpds/rhdp-skills-marketplace/main/skills/showroom-create-demo/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/showroom-create-demo/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How showroom:create-demo Compares

Feature / Agentshowroom:create-demoStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

This skill should be used when the user asks to "create a demo module", "write a Know/Show demo", "build a presenter demo", "create a Showroom demo", "write a facilitator guide", "build a demo script", or "create a presenter-led demo for RHDP".

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

---
context: main
model: claude-sonnet-4-6
---

# Demo Module Generator

Orchestrates agents to create Red Hat Showroom presenter-led demo content using the Know/Show structure. Two modes: interactive (human) and headless (Publishing House via ph_payload).

## Architecture

This skill is an orchestrator. Generation and review are delegated to agents:
- `showroom:file-generator` (Sonnet) — generates one AsciiDoc file, runs in parallel for new demos
- `showroom:module-reviewer` (Sonnet) — quality check on generated files

The orchestrator handles: argument parsing, repo detection, planning, agent spawning, nav merge, delivery.

## Know/Show Structure

Demos separate what presenters need to **understand** from what they need to **do**:
- **Know sections**: Business context, customer pain points, value propositions
- **Show sections**: Step-by-step presenter instructions, what to click/run, expected outcomes

See `@showroom/skills/create-demo/references/content-rules.md` for detailed Know/Show patterns.
See `@showroom/docs/SKILL-COMMON-RULES.md` for AsciiDoc rules, version pinning, image conventions.

---

## ph_payload — Headless Mode (Publishing House)

If `ph_payload` is present, skip ALL interactive questions and run headless. Return structured JSON.

```yaml
ph_payload:
  target_dir: content/modules/ROOT/pages/
  mode: new | continue
  previous_module: 03-module-01-pipelines.adoc  # continue mode only
  spec:
    demo_name: OpenShift Pipelines Live Demo
    audience: Platform Engineers, Architects
    business_scenario: ACME Corp needs to modernize their CI/CD pipeline
    key_messages: [Speed up delivery, Reduce toil, Enterprise-grade reliability]
    duration: 45min
    module_outline: |
      Module 1: Pipeline overview (~15 min)
      Module 2: Live pipeline run (~20 min)
      Module 3: Monitoring and insights (~10 min)
    env:
      ocp_version: "4.18"
      attributes: {user: user1, password: openshift}
```

Headless return (JSON only):
```json
{
  "files_created": ["index.adoc", "01-overview.adoc", "02-details.adoc", "03-module-01-pipelines.adoc"],
  "nav_updated": true,
  "quality": {"critical": 0, "high": 0, "warnings": 1},
  "warnings": ["No customer ROI metrics provided — add in Know section"]
}
```

---

## Interactive Mode

### Phase 0 — Parse Arguments

```bash
/create-demo                                   # interactive
/create-demo <directory>                       # specify target directory
/create-demo <directory> --new                 # new demo
/create-demo <directory> --continue <module>   # continue from module
```

Validate directory exists. If empty: tell user to clone nookbag template:
```
git clone https://github.com/rhpds/showroom_template_nookbag <repo-name>
```

---

### Phase 1 — Detect Mode

If not set by arguments:
```
Are you:
1. Starting a NEW demo (creates index + overview + details + first module)
2. Adding a module to an EXISTING demo
```

---

### Phase 2 — Planning Form (ALL questions at once)

**For NEW demo — ask as one grouped form:**

```
Let's plan your demo. Answer what you know — skip anything you're unsure about:

Demo name:
Target audience (e.g. Platform Engineers, Solution Architects, CxOs):
Primary business challenge being solved:
Key messages (3-4 points you want the audience to leave with):
Duration (e.g. 20min, 45min, 1hr):
Module breakdown (how many modules, what each demonstrates):

Customer story or ROI metrics to reference (or leave blank):
Competitive angle (what makes this stand out vs alternatives):

OpenShift version (or leave blank for {ocp_version} placeholder):
Access type (admin / multi-user):
UserInfo variables (paste from demo.redhat.com → My services → Details → Advanced settings):
  Leave blank to use placeholders {user}, {password}, {openshift_console_url}

Reference materials (URLs, docs, competitive briefs — leave blank to use templates):

Writing style (optional — skip for standard Red Hat style):
  Describe: "executive-friendly, outcome-focused, analogies over jargon"
  OR paste 1-3 paragraphs of your own writing as an example
  OR give a file path to an existing demo module you wrote
  Saved profile? Point to: ~/.claude/context/my-writing-style.md
```

Confirm plan in one summary:
```
📋 Demo plan confirmed:
  Demo: [name] | [audience] | [duration]
  Modules: [breakdown]
  Key messages: [list]

Generating files... (running in parallel)
```

**For CONTINUE mode:**
```
Which module are you adding? (title + what you'll demonstrate)
Reference materials for this module? (URLs or blank)
```

---

### Phase 2.5 — Showroom Setup (NEW demo only)

Ask Q0–Q3 from `@showroom/skills/create-demo/references/showroom-scaffold.md`:
- Q0: OCP or VM?
- Q1: Which tabs/consoles?
- Q2: Which Red Hat theme?
- Q3: Planning E2E automation? (optional — creates buttons.js + runtime-automation/ if yes)

Create/update `site.yml` and `ui-config.yml` in repo root.

---

### Phase 3 — Spawn File Generator Agents (parallel)

Build `FULL_SPEC` JSON from planning answers. Set `CONTENT_TYPE: demo`.

**NEW demo — spawn all files simultaneously:**

```
Task tool:
  subagent_type: showroom:file-generator
  prompt: |
    TARGET_FILE: <repo_path>/content/modules/ROOT/pages/index.adoc
    FILE_TYPE: index
    FULL_SPEC: <FULL_SPEC JSON>
    LAB_TYPE: <ocp|rhel|vm|ai>
    CONTENT_TYPE: demo
    REPO_PATH: <absolute repo path>

Task tool:
  subagent_type: showroom:file-generator
  prompt: |
    TARGET_FILE: <repo_path>/content/modules/ROOT/pages/01-overview.adoc
    FILE_TYPE: overview
    CONTENT_TYPE: demo
    FULL_SPEC: <FULL_SPEC JSON>
    ...

Task tool:
  subagent_type: showroom:file-generator
  prompt: |
    TARGET_FILE: <repo_path>/content/modules/ROOT/pages/02-details.adoc
    FILE_TYPE: details
    CONTENT_TYPE: demo
    FULL_SPEC: <FULL_SPEC JSON>
    ...

Task tool:
  subagent_type: showroom:file-generator
  prompt: |
    TARGET_FILE: <repo_path>/content/modules/ROOT/pages/03-module-01-<slug>.adoc
    FILE_TYPE: module
    CONTENT_TYPE: demo
    FULL_SPEC: <FULL_SPEC JSON>
    ...
```

All four run concurrently.

**CONTINUE mode — single agent:**

```
Task tool:
  subagent_type: showroom:file-generator
  prompt: |
    TARGET_FILE: <next-module path>
    FILE_TYPE: module
    CONTENT_TYPE: demo
    PREVIOUS_MODULE: <path to previous .adoc>
    FULL_SPEC: <FULL_SPEC JSON>
    REPO_PATH: <absolute repo path>
```

---

### Phase 4 — Quality Check

Spawn `showroom:module-reviewer` on each generated file with `CONTENT_TYPE: demo`:

```
Task tool:
  subagent_type: showroom:module-reviewer
  prompt: |
    MODULE_FILE: <path>
    CONTENT_TYPE: demo
    LAB_TYPE: <ocp|rhel|vm|ai>
    SHARED_CONTEXT: <JSON>
    REPO_PATH: <absolute repo path>
    is_first_module: <true if overview>
    is_conclusion: false
```

Fix any Critical or High issues before delivering.

---

### Phase 5 — Update Navigation

Merge `nav_entry` values from file-generator outputs. Update `content/modules/ROOT/nav.adoc`.

---

### Phase 6 — Deliver

**Human mode:**
```
✅ Files created:
  index.adoc
  01-overview.adoc
  02-details.adoc
  03-module-01-<slug>.adoc

✅ nav.adoc updated

Quality: 0 Critical, 0 High, 1 Warning
  - W1: No customer ROI metrics — add in Know section when available

Next: Add more modules with /create-demo --continue, or verify with /verify-content
```

**Headless mode:** return JSON from ph_payload schema.

---

### Phase 7 — Conclusion Module

When all modules complete:
```
Task tool:
  subagent_type: showroom:file-generator
  prompt: |
    FILE_TYPE: conclusion
    CONTENT_TYPE: demo
    FULL_SPEC: <FULL_SPEC JSON with all module summaries>
    ...
```

See `@showroom/skills/create-demo/references/conclusion-template.md` for demo conclusion structure (ROI recap, call-to-action, presenter action items, Q&A guidance).

---

## Related Skills

- `/showroom:verify-content` — full quality review after content is created
- `/showroom:create-lab` — hands-on workshop content
- `/showroom:blog-generate` — transform demo to blog post

Related Skills

showroom:verify-content

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "verify my workshop content", "review my lab module", "check my Showroom content", "validate my AsciiDoc module", "quality check my demo", "review my workshop for Red Hat standards", or "run a content review on my lab".

showroom:create-lab

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "create a lab module", "write a workshop module", "build a Showroom lab", "convert docs to a lab", "write a hands-on exercise", "create an AsciiDoc module", or "turn this documentation into a lab exercise".

showroom:blog-generate

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "turn this lab into a blog post", "write a blog post from this module", "generate a blog from my Showroom content", "convert my workshop to a blog", "write a Red Hat Developer blog post", or "create a blog post from my demo".

health:deployment-validator

12
from rhpds/rhdp-skills-marketplace

Infrastructure Health Checker — use this when you need to validate that a workload or service DEPLOYED SUCCESSFULLY (pods running, routes accessible, dependencies ready). This is NOT for student E2E lab testing. For student exercise validation (solve/validate buttons), use /ftl:rhdp-lab-validator instead. Triggers on: 'create a validation role', 'build health checks', 'add deployment validation', 'create post-deployment checks', 'validate my deployment', 'check if my workload is healthy'.

agnosticv:validator

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "validate my catalog", "check my AgnosticV config", "review common.yaml", "validate my RHDP catalog", "check for errors in my catalog", "lint my AgnosticV files", or "verify my catalog before submitting".

agnosticv:catalog-builder

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "create a catalog", "build a common.yaml", "add a new RHDP lab", "set up a new catalog item", "create an AgnosticV catalog", "build a dev.yaml", "add a catalog entry", or "create a new lab catalog for RHDP".

sandbox-cli:sandbox-setup

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "install sandbox-cli", "setup sandbox", "configure sandbox-cli", "get sandbox-cli working", "download sandbox-cli", or "I don't have sandbox-cli installed".

sandbox-cli:cluster-rotate

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "rotate a cluster", "replace a cluster", "swap clusters", "offboard old and onboard new cluster", "cluster rotation", "replace an old cluster with a new one", or "refresh cluster".

sandbox-cli:cluster-onboard

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "onboard a cluster", "add a cluster to sandbox", "register a cluster", "onboard OCP cluster", "sandbox onboard", or "add a new shared cluster".

sandbox-cli:cluster-offboard

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "offboard a cluster", "remove a cluster from sandbox", "decommission a cluster", "sandbox offboard", "take a cluster offline", or "remove a shared cluster".

sandbox-cli:cluster-list

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "list clusters", "show all clusters", "list sandbox clusters", "show registered clusters", "what clusters are available", or "cluster list".

sandbox-cli:cluster-details

12
from rhpds/rhdp-skills-marketplace

This skill should be used when the user asks to "show cluster details", "get cluster info", "describe cluster", "cluster details", "inspect cluster", or "show cluster configuration".