← Back to PR Showdown and VMS Live!

A game-dev skill, sanitized

Building a VMS Live! round’s wardrobe

This is a Claude Code skill I wrote for Episode: Reality Stars, the one tool on this site built for a game that is already live. A VMS Live! prompt is one themed round, and its wardrobe is 144 items in four groups. The helper script does everything that can be checked; numbered contact sheets and parallel sub-agents on a cheaper model do the one thing that cannot, deciding what looks right. The rules in the bucket table are the part I care about most: they are taste, written down so a tool can enforce it. Below is the skill abridged to a third of its length, with paths, identifiers and commands removed. Download it as SKILL.md.

---
name: vms-prompt-curation
description: Populate a VMS Live prompt's apparel lists (90 borrowable items across nine buckets, 3 purchasable outfits, 21 VIP color-editable items, 30 bot items) for a given theme and vibe, curating by vibe tag plus thumbnail review. Deterministic work (indexing, candidate pools, bot selection, writing and validation) goes to a helper script; curation judgment (which items look right) goes to numbered contact sheets read by parallel sub-agents on a cheaper model. Expects a prompt title and a vibe.
---

Building a VMS Live! round’s wardrobe

A sanitized, abridged copy of a Claude Code skill I wrote for Episode: Reality Stars, the game on stolenduck.com. VMS Live! is the real-time ten-player fashion battle; a prompt is one themed round ("Beach Bonfire Beauty", vibe Coastal), and this skill fills its wardrobe. The full skill is about three times this length and runs with a Python helper; file paths, asset identifiers, editor menu names and the helper's command lines are removed here. What is left is the design: what is deterministic, what is judgment, and the rules that encode taste.

The split

A prompt carries four apparel groups: 90 borrowable items (ten in each of nine buckets), 3 purchasable complete outfits, 21 VIP color-editable items (three in each of seven categories) and 30 bot items (a simulated rival's collection). Each group is a struct with ten category sub-lists, and a validator rejects any item whose category does not match its sub-list, so the helper places every pick by category automatically.

The helper does everything that can be checked: it indexes the catalog, builds ranked candidate pools, composites them into contact sheets, resolves picks to assets, writes the struct, and verifies the result. A person, or a sub-agent looking at thumbnails, does the one thing that cannot be checked: deciding which items look right for this theme.

Steps

StepSubject
1Resolve the vibe, the asset and the scope
2Build the apparel index
3Curate 90 borrowable items
3.5Backfill short buckets from the raw clothing catalog
4Curate 3 purchasable outfits
5Curate 21 VIP color-editable items
6Populate 30 bot items
7Verify and report

The nine borrowable buckets

BucketWhat belongsRule that encodes taste
HairStylesOne per base style: a decorated or baked-color variant of a style you already picked reads as a duplicate tile
MakeupComplete looks only (eyes, lips, blush), never lone componentsVibe matters less than completeness; color variants are distinct, valid picks
Shoes
TopsTops only, never dresses, never top-and-bottom combos, never pure jacketsA combo renders broken in the Tops section; it belongs in Dresses
Bottoms
OuterwearEvery top layer: jackets, coats, blazers, cardigans, sweaters, vests, wraps, capes, kimonosMatch the theme, not the keyword "jacket": blazers for a boss look, knits for cottagecore, windbreakers for athleisure
DressesDress-like names plus all top-and-bottom combos
AccessoriesBags, glasses, hair pieces, belts, backpacks, scarves; masks and wings opt-inAt least two bags; scarves are stored as necklaces but read as accessories, so they are routed here
JewelryNecklaces, bracelets, earringsA mix, roughly five earrings, three necklaces, two bracelets; never ten earrings

Eligibility rules the helper enforces in every pool

The VIP wardrobe

The VIP room is a gated section whose stations show only this struct, and the VIP privilege is recoloring: tapping a VIP item opens the color picker. Three hard rules follow.

Borrowable items are claimable: the most on-theme color-editable item belongs in VIP even when it is already borrowable. Picking it moves it out of its borrowable bucket, which is then backfilled to ten. VIP clothing comes from "mule" outfits built entirely of complex-color garments (about 128 supported colors each), and every generated pick must be assigned a color, because the default is white and white does not read on the white VIP mannequin. Avoid white unless white is the theme (a Black & White Ball, a bride). An existing wrapper's color is immutable, because it may be referenced elsewhere in the game; to get the same garment in a new color, clone it.

How curation runs: contact sheets and parallel sub-agents

  1. Candidate pools, ranked vibe matches first, then name matches on 15 to 25 theme keywords, then the rest, with color variants of one garment collapsed so the sheet shows unique items. Items already used in every other prompt are pushed to the back for cross-prompt variety, and a per-prompt seed shuffles within each rank tier.
  2. One numbered contact sheet per bucket. Every candidate in a cell with a bold number badge overlaid on its thumbnail, so the number binds unambiguously to the image, plus a map from number to item. The agent reads one image per bucket instead of dozens of thumbnails. That, not a small pool, is what keeps cell attribution accurate at forty candidates.
  3. Nine sub-agents in parallel, one per bucket, on a cheaper model. This is coarse visual matching, not deep reasoning. Each gets the title, a two-sentence description of the vibe, the bucket's rules and the sheet, and is told to:
    • Favor the vibe tag, but judge visually: an item with a different tag, or none, is equally valid when the cell reads on-theme. This matters most for buckets with no tags at all (bottoms, dresses), where the silhouette is the only signal.
    • Never pick near-identical garments; three similar puffer vests read as duplicates to the player.
    • Output exactly ten lines, #N | what you see | short reason.
  4. Reconcile before trusting. Each pick's number is resolved through the map, and the agent's "what you see" is compared with the mapped name. Thumbnails and catalog names sometimes diverge (a "Straight Fit Jeans" can render slim enough to read as leggings), so the name is the guardrail where a fine distinction matters, and an off-theme name is dropped for the next best cell.
  5. Resolve and write. Picks are matched fuzzily by name (far more reliable than raw identifiers), uniqueness is enforced across the whole prompt (a color variant of an item already used is skipped), and short buckets are reported.

Backfilling a short bucket

When existing apparel cannot fill a clothable bucket, the helper browses the much larger raw clothing catalog (about 6,000 items), the same sheet-and-agent pass picks the few that are needed, and a manifest is written for a one-time editor round-trip that generates the new apparel items and their thumbnails. The skill pauses there, the designer runs the generator, and re-invoking the skill wires the new items into place. Hair and makeup are not clothing-backed, so the fallback cannot fill them.

Purchasable outfits and bots

The three purchasable outfits are complete looks with their own full-body render and a sales pitch; one agent picks three from a vibe-matched sheet that are premium, distinct from each other, and distinct from the free borrowable pieces. The thirty bot items simulate a rival's collection, so random is fine: the helper blends vibe-tagged items with untagged items that match the theme keywords, excludes everything already used, and balances the category spread.

Verify and report

The checker validates counts, body types, category routing, duplicates, color-variant duplicates, VIP color-editability and exclusivity, the results background, and the loading-screen description length (one short phrase, sixty characters at most, because longer text runs off the screen). Every error is fixed by re-running its step; every warning goes to the designer with a read on it. The report lists each bucket's theme, the three outfits with their pitches, the VIP picks, the bot spread, and how many picks came from the vibe tag versus visual judgment. The designer then opens the prompt in the editor and eyeballs the items on the character.

Download SKILL.md Read the OTS coverage skill Contact me