Module 3: Generate lab content and publish

Learning objectives

By the end of this module, you will:

  • Generate a complete hands-on lab module using the /showroom:create-lab skill

  • Validate content quality with /showroom:verify-content

  • Preview your Showroom locally using Podman

  • Publish your Showroom to GitHub Pages

Time to create content

Your Showroom repository is configured and ready. Now comes the exciting part — generating your first lab module using AI-assisted authoring.

The /showroom:create-lab skill walks you through an interactive workflow that asks about your workshop topic, audience, business scenario, and learning objectives. It then generates complete, production-quality AsciiDoc files with exercises, verification steps, and proper Red Hat formatting.

Exercise 1: Generate your lab module

  1. Make sure you are in your Showroom repository directory:

    cd ~/my-first-showroom
  2. Start Claude Code:

    claude
  3. Run the create-lab skill:

    /showroom:create-lab content/modules/ROOT/pages/ --new
  4. The skill asks a series of questions, one at a time. Here are suggested answers for the Widget Server lab, but feel free to customize:

    Question Suggested answer

    Workshop name

    Widget Server automated pipelines

    Learning goal

    Learn to define, test, and deploy widget configurations using Automated Widget Pipelines

    Target audience

    Developers and platform engineers, beginner level

    Learning outcomes

    Create a widget pipeline, configure pipeline stages, test and deploy a widget configuration

    Business scenario

    Your team needs to automate widget deployments that are currently done manually, causing delays and inconsistencies

    Duration

    30 minutes

    Technical environment

    Widget Server 3.2 (use version placeholders), single module

  5. The skill generates four files:

    • index.adoc — learner landing page

    • 01-overview.adoc — business scenario and objectives

    • 02-details.adoc — technical requirements

    • 03-module-01-*.adoc — your first hands-on module with exercises

      It also updates nav.adoc with entries for all new pages.

  6. When the skill finishes, stay in Claude Code for the next exercise.

Verify

Check that the files were generated:

ls content/modules/ROOT/pages/

You should see 4 or more .adoc files. Check the navigation:

cat content/modules/ROOT/nav.adoc

The navigation should list all generated pages.

Exercise 2: Validate your content

Still in Claude Code, run the verification skill:

/showroom:verify-content

This checks your content against:

  • AsciiDoc syntax rules (execute blocks, list spacing, heading levels)

  • Red Hat style guide (sentence case headings, no em dashes, proper product names)

  • Accessibility requirements (alt text on images, heading hierarchy)

  • Workshop structure (learning objectives, verification sections, learning outcomes)

If the verification identifies issues, ask Claude Code to fix them:

Fix the issues identified by verify-content

Exit Claude Code when done:

/exit

Verify

All verification checks pass, or you have addressed the identified issues.

Exercise 3: Preview locally

Before publishing, preview your Showroom locally to see how it looks.

  1. From the repository root, run the Antora viewer container:

    podman run --rm --name antora -v $PWD:/antora:z -p 8080:8080 -i -t ghcr.io/juliaaano/antora-viewer

    The :z suffix on the volume mount is for SELinux-enabled systems (RHEL, Fedora). On macOS, you can omit it: -v $PWD:/antora.

  2. Open http://localhost:8080 in your browser.

  3. Check that:

    • The navigation sidebar shows all your pages

    • The landing page displays your workshop title and objectives

    • The module has properly formatted exercises with code blocks

    • Pagination (Next/Previous) links work between pages

  4. When done, press Ctrl+C in the terminal to stop the container.

Verify

Your content renders correctly in the local preview with working navigation and properly formatted code blocks.

Exercise 4: Publish to GitHub Pages

Time to go live. The nookbag template includes a GitHub Actions workflow that automatically builds and deploys your site when you push to main.

  1. Stage and commit your content:

    git add -A
    git commit -m "Add Widget Server lab module"
  2. Push to GitHub:

    git push origin main
  3. Enable GitHub Pages (one-time setup):

    gh api repos/rhpds/my-first-showroom/pages \
      -X POST -f build_type=workflow

    If Pages is already enabled, this command may return an error. That’s fine — it means Pages was already configured.

  4. Monitor the deployment (typically 1-2 minutes):

    gh run list --limit 1

    Wait until the status shows completed.

  5. Open your published Showroom:

    https://rhpds.github.io/my-first-showroom/

    Replace my-first-showroom with your actual repository name.

Verify

  • The GitHub Pages URL loads successfully

  • Your workshop title appears in the site header

  • All modules are accessible via the navigation sidebar

  • Content matches what you saw in the local preview

What you’ve accomplished

You now have a published Showroom with a hands-on lab module for Widget Server Automated Pipelines:

  • A version-controlled workshop repository on GitHub

  • A properly configured Showroom ready for both GitHub Pages and RHDP deployment

  • A production-quality hands-on lab with exercises and verification steps

  • An automated publishing pipeline via GitHub Pages

Your manager asked for a Showroom for the field team. The lab is ready.

What’s next

If you want to also create a presenter-led demo for SAs to walk customers through the feature, continue to Module 4. Otherwise, skip ahead to the Conclusion.

Learning outcomes

By completing this module, you should now understand:

  • How /showroom:create-lab generates complete lab content through an interactive Q&A

  • How /showroom:verify-content validates content against Red Hat quality standards

  • How to preview a Showroom locally with Podman before publishing

  • How GitHub Pages automatically deploys your content when you push to main