SkillSimm Simulation Hub

The template package format

Reference for reviewers and hands-on creators. If you're creating through the structured report, you never touch these files — the AI interview builds them for you. Machine-readable schemas live in schemas/.

Package layout

Each simulation is one folder under templates/:

templates/
  your-template-slug/
    template.yaml          # identity: id, title, objective, audience, roles, team size
    steps.yaml             # the ordered steps, human/AI modes, and grading rules
    metadata.yaml          # domain, difficulty, duration, tags, license, learning goals
    creator.yaml           # who you are + royalty preference
    sample_inputs.json     # example inputs for a test run
    expected_outputs.json  # what a good run produces
    README.md              # human-readable description of the simulation
    LICENSE.md             # license text

The reference package to copy from: consumer-complaint-escalation.

template.yaml

FieldRequiredMeaning
idyesUnique snake_case identifier, e.g. consumer_complaint_escalation
titleyesDisplay name
objectiveyesThe skill or judgment the simulation trains
audiencenoWho it's for, e.g. "MBA / enterprise training"
rolesnoList of participant roles, e.g. support_agent, manager
versionnoSemver, defaults to 1.0.0
team_sizenoDefault team size (integer, default 5)
ai_chat_enablednoWhether participants get an AI chat assistant (default true)
group_communication_allowednoWhether team members may talk to each other (default true)

steps.yaml — one entry per step

FieldRequiredMeaning
idyesUnique snake_case step id
titleyesShort step name
actor_modeyesWho acts — see table below
task_typeyesShape of the answer — see table below
task_descriptionyesWhat the participant is asked to do
rolenoWhich role performs this step
depends_onnoList of step ids that must complete first (defines the workflow DAG)
ai_assistnoWhat the AI may do: suggests · critiques · grades · decides
gradingnoGrading rule block — see below

Actor modes — the human decision boundary

ModeWho decides
humanA person, working alone — no AI involvement
human_with_aiA person decides; AI assists per ai_assist
team_with_aiThe team decides together; AI assists
aiThe AI acts autonomously; humans see the output downstream

Task types

TypeThe participant produces…
multiple_choiceOne choice from fixed options
numeric_inputA number (checked against value/range/tolerance)
structured_responseA structured answer, e.g. decision + justification fields
open_responseFree-form writing
document_reviewA judgment on a provided document

Grading rules

typeRequiresUse when
answer_keycorrect_answer, usually options and distractors, pointsOne objectively correct answer
numericexpected_value or expected_range, optional tolerance / formulaCalculations
rubriccriteria list (each measurable)Judgment quality scored by named criteria
llm_judgecriteria and anchor_examples (good/bad answer examples)Open responses graded by an LLM against anchors
noneUngraded steps (context-setting, handoffs)

metadata.yaml & creator.yaml

metadata.yaml carries discovery info: domain, industry, difficulty, duration_minutes, team_size (min/max), scoring_type, license, tags, and learning_goals. creator.yaml identifies you and states your royalty preference: fixed_fee · revenue_share · per_run · open_source · enterprise_only.

Validation

Every pull request runs scripts/validate_package.py over all packages: schema conformance, step-id uniqueness, depends_on references, and grading-rule completeness per the decision tree above. Run it locally before opening a PR:

python scripts/validate_package.py templates/<your-slug>