Skip to content
create-test-lane logo

Create Test Lane

create-test-lane

This skill should be used when creating new test lanes for the XML test data generator. A test lane consists of an XSD schema file paired with a meta.yaml configuration file. This skill guides the process of creating both files with proper semantic type mappings, distribution settings, and field ...

SKILL.md

Full skill instructions

Create Test Lane

Overview

This skill creates test lanes for the ceremony-field-catalog test data generator. Each test lane is a paired XSD schema + meta.yaml configuration that defines how to generate realistic test XML data for a specific business context.

Workflow

Step 1: Gather Requirements

Collect the following information:

  1. Context details: What business domain/​context is this for? (e.g., loans, deposits, payments)
  2. Data structure: What elements and hierarchy should the XML have?
  3. Required metadata: What metadata keys identify this data type?
  4. Data realism needs: Which fields need realistic data (names, addresses, SSNs, etc.)?

Step 2: Create the XSD Schema

Create the XSD file at sdks/​python/​test_lanes/<context>/<lane_name>.xsd:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/​2001/​XMLSchema">
    <xs:element name="Root">
        <xs:complexType>
            <xs:sequence>
                <!-- Define elements here -->
                <xs:element name="FieldName" type="xs:string"/>
                <xs:element name="Amount" type="xs:decimal"/>
                <xs:element name="OptionalField" type="xs:string" minOccurs="0"/>
                <xs:element name="RepeatingItem" maxOccurs="unbounded">
                    <!-- Nested structure -->
                </​xs:element>
            </​xs:sequence>
        </​xs:complexType>
    </​xs:element>
</​xs:schema>

Key XSD patterns:

  • minOccurs="0" for optional elements
  • maxOccurs="unbounded" for repeating elements
  • nillable="true" for elements that can be nil
  • <xs:restriction> with <xs:enumeration> for fixed value lists

Important: Optional enum elements must be nillable

When an element uses an enumeration type AND is optional (minOccurs="0"), you MUST also add nillable="true". This is because the generator's emptyRate setting can produce empty values, but empty strings are not valid enum values. Making the element nillable allows it to be represented as xsi:nil="true" instead of an empty string.

<!-- WRONG: Will fail validation if emptyRate produces empty value -->
<xs:element name="Status" type="StatusEnum" minOccurs="0"/>

<!-- CORRECT: Can be nil when empty -->
<xs:element name="Status" type="StatusEnum" minOccurs="0" nillable="true"/>

This applies to all optional elements with enumeration types (Gender, Status, Type, Category, etc.).

Step 3: Generate or Create the Meta File

Option A: Use init-meta command (for existing XSD):

cd sdks/​python
python -m testgen.cli init-meta --xsd test_lanes/<context>/<lane>.xsd --context <context_id>

Option B: Create manually at sdks/​python/​test_lanes/<context>/<lane_name>.meta.yaml:

Refer to references/​meta-format.md for the complete meta.yaml format specification.

Step 4: Configure Semantic Types

Map field paths to semantic types for realistic data. Common mappings:

Field PatternSemantic Type
FirstName, GivenNameperson.first_name
LastName, Surnameperson.last_name
SSN, SocialSecurityssn
Email, EmailAddressemail
Phone, PhoneNumberphone_number
Street, Address1address.street
Cityaddress.city
Stateaddress.state_abbr
Zip, ZipCodeaddress.zipcode
Amount, Balance, Pricedecimal(min, max, decimals)
Date, EffectiveDatedate.past or date.future
VINvehicle.vin
AccountNumberpattern:ACC-{######}

Step 5: Configure Field Overrides

Customize generation for specific fields:

fieldOverrides:
  "/​Root/​OptionalSection":    # Optional element
    fillRate: 0.3             # Include 30% of the time
  "/​Root/​Items/​Item":         # Repeating element
    repeatRange: [2, 10]      # Generate 2-10 items

Step 6: Validate the Test Lane

cd sdks/​python

# Dry run to verify generation works
python -m testgen.cli run ./​test_lanes/ -l <context>/<lane_name> --dry-run -n 5 --output-dir ./​test_output/

# Inspect generated XML
cat ./​test_output/​*.xml

File Locations

  • XSD schemas: sdks/​python/​test_lanes/<context>/<lane_name>.xsd
  • Meta configs: sdks/​python/​test_lanes/<context>/<lane_name>.meta.yaml
  • CLI module: sdks/​python/​testgen/​cli.py

Resources

This skill includes reference documentation:

references/

  • meta-format.md - Complete meta.yaml format specification with all semantic types and options

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View