From showroom
Generates Red Hat Showroom demo modules in Know/Show structure for presenter-led demonstrations from objectives, materials, and customer scenarios.
npx claudepluginhub rhpds/rhdp-skills-marketplace --plugin showroomThis skill uses the workspace's default tool permissions.
---
Generates Red Hat Showroom workshop modules in AsciiDoc from reference materials like URLs, files, or docs, with business storytelling and hands-on exercises.
Provides What-Why-How framework to structure technical presentations, talks, and demos, with guidance on slides, hooks, live demos, and developer audiences.
Creates or updates AgnosticV catalog files for RHDP deployments including full catalogs, description.adoc, info-message-template.adoc, and virtual CI configurations.
Share bugs, ideas, or general feedback.
Guide you through creating a Red Hat Showroom demo module using the Know/Show structure for presenter-led demonstrations.
Have these ready before running this skill:
Required:
content/modules/ROOT/pages/)Helpful to have:
Access needed:
Use this skill to create presenter-led demo content, transform technical documentation into business-focused demos, or add modules to existing demos.
IMPORTANT: This skill follows shared contracts defined in @showroom/docs/SKILL-COMMON-RULES.md:
See SKILL-COMMON-RULES.md for complete details.
Demos use a different format than workshops:
This separates what presenters need to understand (business value) from what they need to do (technical demonstration).
This skill supports optional command-line arguments for faster workflows.
Usage Examples:
/create-demo # Interactive mode (asks all questions)
/create-demo <directory> # Specify target directory
/create-demo <directory> --new # Create new demo in directory
/create-demo <directory> --continue <module> # Continue from specific module
Parameters:
<directory> - Target directory for demo files
/create-demo content/modules/ROOT/pages/content/modules/ROOT/pages/--new - Flag to create new demo (generates index + overview + details + module-01)--continue <module-path> - Continue from specified previous demo module
/create-demo content/modules/ROOT/pages/ --continue content/modules/ROOT/pages/03-module-01-intro.adocHow Arguments Work:
/create-demo with no argumentsCRITICAL RULES
Example of WRONG approach:
โ Asking all at once:
1. Module file name?
2. UserInfo variables?
3. Presentation objective?
4. Number of demos?
Example of CORRECT approach:
โ
Ask sequentially:
Step 2: Complete overall demo story planning
[WAIT for completion]
Step 3.1: Module file name?
[WAIT for answer]
Step 3.2: Reference materials?
[WAIT for answer]
etc.
Check if user invoked skill with arguments.
Pattern 1: /create-demo <directory> --new
Parsing arguments: "<directory> --new"
โ Target directory: <directory>
โ Mode: Create new demo
โ Will generate: index.adoc โ 01-overview โ 02-details โ 03-module-01
Validating directory...
[Check if directory exists, create if needed]
Skipping: Step 1 (mode already known: NEW demo)
Proceeding to: Step 2 (Plan Overall Demo Story)
Pattern 2: /create-demo <directory> --continue <module-path>
Parsing arguments: "<directory> --continue <module-path>"
โ Target directory: <directory>
โ Mode: Continue existing demo
โ Previous module: <module-path>
Validating directory...
[Check if directory exists]
Reading previous module: <module-path>
[Extract story, business context, progression]
Skipping: Step 1 (mode already known: CONTINUE)
Skipping: Step 2 (story detected from previous module)
Proceeding to: Step 3 (Module-Specific Details)
Pattern 3: /create-demo <directory>
Parsing arguments: "<directory>"
โ Target directory: <directory>
Validating directory...
[Check if directory exists]
Skipping: Target directory question
Proceeding to: Step 1 (still need to ask: new vs continue)
Pattern 4: /create-demo (no arguments)
No arguments provided.
Using interactive mode.
Target directory: Will use default (content/modules/ROOT/pages/)
Proceeding to: Step 1 (Determine Context)
Argument Validation:
--continue but module path invalid, fall back to asking for story recapSKIP THIS STEP IF:
--new flag in arguments (already know: NEW demo)--continue <module> in arguments (already know: EXISTING demo)CRITICAL: DO NOT read any files or make assumptions before asking this question!
First, ask the user:
Let's get started! I'll help you create amazing demo content.
Are you creating a new demo or continuing an existing one?
1. ๐ Creating a NEW demo (I'll help you plan the whole story)
2. โก๏ธ Continuing an EXISTING demo (I'll pick up where you left off)
3. ๐ค Something else (tell me what you need)
What's your situation? [1/2/3]
ONLY AFTER user answers, proceed based on their response.
SKIP THIS STEP IF: User provided <directory> as argument
Ask the user:
What is the path to your cloned Showroom repository?
You can provide:
- A local path: /Users/yourname/work/showroom-content/my-demo-showroom
- A GitHub URL: https://github.com/rhpds/my-demo-showroom
(I'll clone it to /tmp/ automatically)
Repo path or URL:
If the user provides a GitHub URL (starts with https://github.com/ or git@github.com:):
.git suffix if present)git clone <url> /tmp/<repo-name>/tmp/<repo-name>Use content/modules/ROOT/pages/ within that path as the target for demo files.
If continuing existing demo:
Great! Let's plan your demo together. I'll ask you a few questions to understand what you're trying to achieve.
IMPORTANT: Ask these as conversational, open-ended questions. Do NOT provide multiple choice options.
Question 1 - The Big Picture:
What's the main message you want to deliver in this demo?
Think about: What should your audience remember after seeing this?
Example: "Show how OpenShift accelerates application deployment for enterprises"
Your answer:
Question 2 - Know Your Audience:
Who will be watching this demo?
Examples: C-level executives, Sales engineers, Technical managers, Partners
Your audience:
And what matters most to them right now? (their business priorities)
Examples: Cost reduction, faster time-to-market, competitive advantage
Their priorities:
Question 3 - The Transformation Story:
Let's create the before-and-after narrative.
What's the customer challenge you're solving?
What's painful about their current state?
What does the ideal future state look like?
Your story:
Question 4 - Customer Scenario:
What company or industry should we feature in this demo?
Examples: "RetailCo" (retail), "FinanceCorp" (banking), "HealthTech" (healthcare)
Or create your own!
Company/industry:
What specific business challenge is driving urgency for them?
Their urgent challenge:
Question 5 - Show the Impact:
What quantifiable improvements will you highlight?
Examples:
- "6 weeks โ 5 minutes deployment time"
- "80% reduction in infrastructure costs"
- "10x faster developer productivity"
Your key metrics:
Question 6 - Timing:
How long should the complete demo take?
Typical options: 15min, 30min, 45min
Your target duration:
Then I'll recommend:
You can:
For NEW demos only. Skip if adding a module to an existing demo.
Two files to create or fix:
site.yml โ correct title and ui-bundle theme URL. If default-site.yml exists โ rename to site.yml + update gh-pages.yml.ui-config.yml โ split view enabled, correct tabs for OCP or VMAsk all three questions in order โ do NOT skip any:
ui-config.yml)ui-bundle URL in site.yml)โ Full questions, file templates, AgnosticV workload vars: @showroom/skills/create-demo/references/showroom-scaffold.md
Now for this specific module:
Module file name:
content/modules/ROOT/pages/[number]-[topic-name].adocReference materials (optional but recommended):
UserInfo variables (optional, for accurate showroom content):
Q: Do you have access to a deployed environment on demo.redhat.com or integration.demo.redhat.com?
If YES (RECOMMENDED - easiest and most accurate):
Please share the UserInfo variables from your deployed service:
1. Login to https://demo.redhat.com (or integration.demo.redhat.com)
2. Go to "My services" โ Your service
3. Click "Details" tab
4. Expand "Advanced settings" section
5. Copy and paste the output here
This provides exact variable NAMES like:
- openshift_cluster_console_url
- openshift_cluster_admin_username
- gitea_console_url
- [custom workload variables]
CRITICAL: I will use these to know WHICH variables exist, NOT to replace them with actual values!
Variables will stay as placeholders: {openshift_cluster_console_url}
Showroom replaces these at runtime with actual deployment values.
If NO:
Q: Would you like to use placeholder attributes for now?
If YES:
I'll use placeholders: {openshift_console_url}, {user}, {password}
You can update these later when you get Advanced settings.
If NO (RHDP internal team only):
I can extract variables from AgnosticV repository if you have it cloned locally.
This requires AgV path and catalog name.
Note: Less reliable than Advanced settings.
Target audience:
Business scenario/challenge:
Technology/product focus:
Number of demo parts:
Key metrics/business value:
Diagrams, screenshots, or demo scripts (optional):
content/modules/ROOT/assets/images/If UserInfo variables weren't already provided in Step 3, I'll ask for them now.
RECOMMENDED: Get from Deployed Environment (Primary Method)
I'll ask: "Do you have access to a deployed environment on demo.redhat.com or integration.demo.redhat.com?"
If YES (recommended):
Please share the UserInfo variables from your deployed service:
1. Login to https://integration.demo.redhat.com (or demo.redhat.com)
2. Go to "My services" โ Find your service
3. Click on "Details" tab
4. Expand "Advanced settings" section
5. Copy and paste the output here
This shows all available variables like:
openshift_cluster_console_url โ For showing presenter where to log inopenshift_api_server_url โ For API demonstrationsopenshift_cluster_admin_username โ For admin access demosopenshift_cluster_admin_password โ For demo credentialsgitea_console_url โ For Git server demosgitea_admin_username, gitea_admin_password โ For Gitea accessIf NO (fallback): I'll use common placeholder variables:
{openshift_console_url}{openshift_api_url}{user}{password}{bastion_public_hostname}Alternative: Clone collections from AgV catalog
common.yaml from user-provided AgV pathagnosticd_user_info tasksdata: sectionsResult: I'll use these in Show sections for precise presenter instructions with actual URLs and credentials.
If you provided visual assets or scripts:
See @showroom/docs/SKILL-COMMON-RULES.md for image path conventions and clickable image syntax.
For demo scripts or commands:
[source,role="execute"] โ the execute button lets the presenter click to run commands directly in the Showroom terminal during the demonstration.[source,role="execute"]
----
oc new-app https://github.com/example/nodejs-ex
----
[NOTE]
====
**Presenter Tip:** Emphasize how this single command eliminates 3-5 days of manual setup.
====
For before/after comparisons:
before-manual-deployment.png, after-automated-deployment.pngRecommended image naming for demos:
customer-challenge-overview.png, transformation-roadmap.pngstep-1-login-console.png, step-2-create-project.pngdeployment-success.png, metrics-dashboard.pngbefore-state.png, after-state.pngBased on your references, I'll:
Reference Tracking (for conclusion generation):
CRITICAL: Read templates BEFORE generating any content.
Template source โ check the Showroom repo first:
The user's Showroom repo may contain a templates/ directory with up-to-date patterns. Always prefer these over the marketplace's built-in templates.
# Check if user's Showroom repo has demo templates
ls {showroom_repo_path}/examples/demo/templates/ # if exists use examples/ 2>/dev/null
If examples/demo/templates/ exists in the Showroom repo โ read from there:
{showroom_repo_path}/examples/demo/templates/index.adoc โ Facilitator/presenter guide (output as index.adoc){showroom_repo_path}/examples/demo/templates/01-overview.adoc{showroom_repo_path}/examples/demo/templates/02-details.adoc{showroom_repo_path}/examples/demo/templates/03-module-01.adoc โ Uses Know/Show structure{showroom_repo_path}/examples/demo/templates/99-conclusion.adocIf examples/demo/templates/ does NOT exist โ use bundled plugin templates:
@showroom/templates/demo/00-index.adoc โ Facilitator/presenter guide@showroom/templates/demo/03-module-01.adoc โ Know/Show structure@showroom/templates/demo/01-overview.adoc โ Business context overview@showroom/templates/demo/99-conclusion.adoc โ Conclusion templateKey rules from the templates:
index.adoc is a facilitator/presenter guide โ NOT learner-facing (opposite of workshop)=== Know (background, business value, why) then === Show (step-by-step presenter actions)index.adoc regardless of template source filenameThe user's examples/ directory reflects the latest nookbag patterns and may be more current than the marketplace copies. Always use the repo's own templates when available.
See @showroom/docs/SKILL-COMMON-RULES.md for verification prompt file lists and usage.
IMPORTANT: Use the bundled demo templates read in Step 8 as quality references.
Apply patterns from the bundled templates to new demo content:
This ensures generated demo content matches real Showroom demo quality instead of generic templates.
I'll create a module with Know/Show structure:
See @showroom/docs/SKILL-COMMON-RULES.md for image syntax and AsciiDoc list formatting rules.
CRITICAL: Content rules (originality, em dashes, Know/Show bullets vs numbers, demo language, talk track):
See @showroom/skills/create-demo/references/content-rules.md for all rules with correct/incorrect examples.
The generated module is already in context โ check it directly.
Read @showroom/docs/SKILL-COMMON-RULES.md for full quality gate criteria, then verify against this list:
Must fix before delivering (fix silently, note in delivery summary):
| Check | Rule |
|---|---|
| Know/Show structure | Every section has Know (context) before Show (demonstration) โ never Show without Know |
| Business value | ROI or outcome framing stated in every Know section |
| Presenter notes | At least one [NOTE] or aside block per section with talking points |
| No participant steps | Demo is presenter-led โ no hands-on exercises requiring participant input |
| Headings | Sentence case โ not Title Case |
| Em dashes | Zero โ โ rewrite or use -- |
| Prohibited terms | No "robust", "powerful", "leverage", "synergy" |
| Presenter command blocks | All commands the presenter runs use [source,role="execute"] โ not bare [source,bash] |
| Code blocks | Config/data blocks use [source,yaml] / [source,json] without role="execute" |
| Hardcoded values | No cluster URLs, usernames, passwords โ use {user}, {password}, {openshift_console_url} |
| Product names | No bare "OCP", "AAP" without first-use expansion |
If anything fails, fix it now. Do not ask the user โ just fix and note what was corrected in the delivery summary.
See @showroom/docs/SKILL-COMMON-RULES.md for navigation update requirements.
CRITICAL: Manage Output Tokens to Prevent Overflow
Write files using Write tool โ show brief confirmations only. Keep total output under 5000 tokens.
Templates used (from Showroom repo templates/demo/templates/ or marketplace fallback):
index.adoc (facilitator/presenter guide)01-overview.adoc, 02-details.adoc03-module-01.adoc (Know/Show structure)99-conclusion.adocQuality check at Step 10: Inline โ no agents. See Step 10 checklist above.
Files created:
content/modules/ROOT/pages/<module-file>.adoccontent/modules/ROOT/assets/images/Files modified (with permission):
content/modules/ROOT/nav.adoc - Adds navigation entry/showroom:verify-content -- Run quality checks on generated demo content/showroom:blog-generate -- Convert demo content into blog posts