/agnosticv:catalog-builder
Create or update AgnosticV catalog files for RHDP deployments (unified skill).
What Youโll Need Before Starting
Prerequisites
Clone AgnosticV Repository
cd ~/work/code
git clone git@github.com:rhpds/agnosticv.git
cd agnosticv
Verify RHDP Access
- Write access to AgnosticV repository
- Test:
gh repo view rhpds/agnosticv - Ability to create pull requests
Workshop Content Ready
- Workshop lab content (from
/showroom:create-lab) - Infrastructure requirements (CNV, AWS, etc.)
- Workload list (OpenShift AI, AAP, etc.)
What Youโll Need (By Mode)
Mode 1: Full Catalog
- Catalog name (e.g., "Agentic AI on OpenShift")
- Category (Workshops, Demos, or Sandboxes)
- Infrastructure type: OCP cluster / RHEL+AAP VMs / Sandbox API CI
- For Sandbox API CI: Cluster CI (provision shared cluster) or Tenant CI (deploy on pre-configured cluster)
- Workloads to deploy
- Multi-user requirements (yes/no)
Mode 2: Description Only
- Path to Showroom repository
- Brief overview (2-3 sentences starting with product name)
Mode 3: Info Template
- Data keys from
agnosticd_user_info.data
Mode 4: Virtual CI (published/)
- Base component path (e.g.
openshift_cnv/kafka-developer-workshop-cnv) - Handles uniqueness check, UUID, dev restriction, prod.yaml version pinning
- Supports bulk processing of multiple base components
Quick Start
Navigate to Repository
Open your AgnosticV repository directory
Run Catalog Builder
/agnosticv:catalog-builderChoose Mode
Select: Full Catalog / Description Only / Info Template
Answer Questions
Follow guided prompts
Review & Commit
Files auto-committed to new branch
What It Can Generate
Creates complete catalog with all files:
agd_v2/your-catalog-name/
โโโ common.yaml
โโโ dev.yaml
โโโ description.adoc
โโโ info-message-template.adoc
Updates just the description:
agd_v2/your-catalog-name/
โโโ description.adoc
Creates user notification:
agd_v2/your-catalog-name/
โโโ info-message-template.adoc
Common Workflows
-
Workflow 1: Create Full Catalog from Scratch
/agnosticv:catalog-builder โ Mode: 1 (Full Catalog) โ Step 0: AgV path auto-detected, branch created โ Step 1: Q1=type (Workshop/Demo/Sandbox), Q2=event?, Q3=tech โ Step 2: Discovery searches agd_v2/ + openshift_cnv/ โ Step 3: Infrastructure gate (OCP cluster / RHEL+AAP VMs / Sandbox API CI) โ Step 4: Auth (unified ocp4_workload_authentication) โ Step 5: Workloads + LiteMaaS โ Step 6: Showroom (recommended name shown) โ Step 7: Catalog details (name, description, maintainer) โ Step 9: __meta__, includes, event restrictions โ Step 10: Path auto-generated (event) or asked (no-event) โ Generate all 4 files, auto-commit to branch -
Workflow 2: Update Description After Content Changes
/agnosticv:catalog-builder โ Mode: 2 (Description Only) โ Point to Showroom repo โ Auto-extracts modules and technologies โ Generates description.adoc โ Auto-commits to branch -
Workflow 3: Add Info Template for User Data
/agnosticv:catalog-builder โ Mode: 3 (Info Template) โ Specify data keys from workload โ Generates template with placeholders โ Shows how to use agnosticd_user_info
Mode Details
Mode 1: Full Catalog - Detailed Workflow
What it creates:
- common.yaml - Main configuration (infrastructure, auth, workloads, includes)
- dev.yaml - Development environment overrides
- description.adoc - UI description following RHDP structure
- info-message-template.adoc - User notification template
Step-by-step process:
- Step 0 โ Setup: AgV path auto-detected; branch created from main (no feature/ prefix)
- Step 1 โ Context: 3 questions: Q1=Workshop/Demo/Sandbox, Q2=Is this for an event? (Summit 2026 / RH One 2026 / Other), Q3=Technologies. Event selection overrides category to Brand_Events and asks for Lab ID.
- Step 2 โ Discovery: Searches
agd_v2/andopenshift_cnv/; shows reference catalogs with[OCP cluster]or[RHEL/AAP VMs]labels - Step 3 โ Infrastructure gate: Three options โ OCP cluster, RHEL/AAP VMs, or Sandbox API CI. Routes to a separate @reference file per type:
- OCP path (
ocp-catalog-questions.md): SNO or multinode, OCP version (4.18/4.20/4.21), pool with/prodsuffix, autoscale, AWS gate; auth (unifiedocp4_workload_authentication+ provider); OCP workloads + LiteMaaS; Showroom withocp4_workload_ocp_console_embed; multi-user with worker scaling - VM path (
cloud-vms-base-catalog-questions.md): CNV or AWS, RHEL image, sizing, ports; auth skipped (OS-level only); VM workloads;vm_workload_showroomwithshowroom_git_repo/showroom_git_ref; multi-user isolation warning - Sandbox API CI path: Choose Cluster CI or Tenant CI:
- Cluster CI (
sandbox-cluster-ci-questions.md): Provisions a shared OCP cluster for N tenant placements. Pool type (CNV/AWS), OCP version, lab label (tenants target by this), worker sizing. Auto-setsconfig: openshift-workloads,cloud_provider: none,num_users: 0, required includes (sandbox-api.yaml,access-restriction-admins-only.yaml), fullpropagate_provision_data. - Tenant CI (
sandbox-tenant-ci-questions.md): Deploys per-user workloads on a pre-configured cluster via__meta__.sandboxes.cloud_selectorlabels. Asks cloud (cnv/aws-dedicated-shared) + lab label, namespace suffixes + quotas, optional GitOps bootstrap, optional Showroom. Auto-setsconfig: namespace,cloud_provider: none, username patternuser-,sandbox_api.destroy.catch_all: false.
- Cluster CI (
- OCP path (
- Step 7 โ Catalog details: Display name, short name, description (starts with product name), maintainer name and email
- Step 9 โ __meta__: Deployer actions (start/stop only);
remove_workloadsviasandbox_api.actions.destroy.catch_all; product label + family; keywords - Step 9.1 โ Includes: Event restriction in
common.yaml(summit-devs or rh1-2026-devs); AWS extras; LiteMaaS (litemaas-master_api+litellm_metadata); workload-specific TODO - Step 10 โ Path: Event catalogs โ auto-generated path (e.g.
summit-2026/lb2298-short-cnv); no-event โ asks subdirectory - UUID auto-generated and validated for uniqueness; files committed to branch
Naming Standards (Developer Guidelines):
- AgV config:
summit-2026/lbXXXX-short-name-cnv - Showroom repo:
short-name-showroom - OCP pool:
cnv-cluster-4.18/prod(always/prodsuffix) - Collections:
tag: ""for standard; fixed tagโฅ v1.5.3for showroom
Event branding (mandatory โ Question 2 never skipped):
- Event catalogs:
category: Brand_Events,Brand_Event: Red_Hat_Summit_2026label, Lab ID keyword, event access restriction include anarchy.namespaceโ NEVER definecatalog.reportingLabels.primaryBUโ ALWAYS define
Bundled real examples (no network needed):
- ocp-demo/ โ OCP with CNV pool
- ocp-aws/ โ OCP with AWS pool
- ocp-cnv/ โ openshift_cnv pool
- cloud-vms-base/ โ RHEL VMs on AWS
- published-virtual-ci/ โ Virtual CI structure
Mode 2: Description Only - RHDP Official Structure
v1.8.0: Enhanced with full module analysis
With Showroom content:
- Reads ALL modules (not just index.adoc)
- Extracts overview from index.adoc
- Detects Red Hat products across all modules
- Extracts version numbers
- Identifies technical topics
- Shows extracted data for review before generating
Without Showroom content:
- Guided questions for RHDP structure
- Brief overview (3-4 sentences)
- Warnings (optional)
- Guide link
- Featured products (max 3-4)
- Module details (title + 2-3 bullets per module)
Generated description.adoc follows RHDP structure:
- Brief Overview (3-4 sentences max, starts with product name)
- Warnings (optional, after overview)
- Lab/Demo Guide (link to Showroom)
- Featured Technology and Products (max 3-4)
- Detailed Overview (each module + 2-3 bullets)
- Authors (from __meta__.owners)
- Support (Content + Environment)
Mode 3: Info Template - User Data Sharing
Documents how to share data with users:
# In your workload:
- name: Save user data
agnosticd.core.agnosticd_user_info:
data:
api_url: ""
api_key: ""
Template uses: {api_url} and {api_key}
Steps:
- Select Info Template mode
- Git workflow (automatic)
- Specify data keys from agnosticd_user_info.data
- Optional: add lab code (e.g., LB1234)
- Template generated with proper placeholders
Tips & Best Practices
๐ท๏ธ Start with Product Name
Description overview must start with product, not "This workshop"
๐ Use Real Examples
Reference existing catalogs for patterns
โ Validate Before PR
Always run /agnosticv:validator
๐งช Test in Dev First
Use dev.yaml for testing
๐ฟ No feature/ Prefix
Branch names should be descriptive without feature/
๐ Convert Lists to Strings
For info templates:
Troubleshooting
Skill not found?
- Restart Claude Code or VS Code
- Verify installation:
ls ~/.claude/skills/agnosticv-catalog-builder - Check the Troubleshooting Guide
Branch already exists?
git branch -D old-branch
# Or use different name
UUID collision?
- Skill auto-regenerates unique UUID
- Check against existing catalogs automatically
Showroom content not found?
# Verify structure
ls ~/path/to/showroom/content/modules/ROOT/pages/
# Should contain .adoc files
Description starts with "This workshop"?
RHDP Requirement:
Description overview must start with the product name, not "This workshop teaches..."
Example: "OpenShift Pipelines enables..." NOT "This workshop teaches OpenShift Pipelines..."
Git Workflow
Always follows this pattern:
1. Pull latest main
git checkout main
git pull origin main
2. Create descriptive branch (NO feature/ prefix)
add-ansible-ai-workshopupdate-ocp-pipelines-description
feature/add-workshop
3. Auto-commit changes
git add agd_v2/your-catalog/
git commit -m "Add your-catalog catalog"
4. Push and create PR
git push origin your-branch
# Open GitHub โ create PR from your branch to main
Related Skills
/agnosticv:validator
Validate catalog before PR
/showroom:create-lab
Create Showroom workshop first
/health:deployment-validator
Create automated health checks