Skip to content

Occasion rules

Mapping free-text occasions to canonical tags; required piece-types per occasion. Implemented in styling_agent.py.

R1 — Tag mapping

Free text Canonical tag
work, business, meeting work
gym, workout, yoga, running gym
dinner, restaurant, date dinner
formal_event, gala, formal formal
casual, weekend, brunch, everyday casual

Unknown free-text → casual (safe default).

R2 — Required piece-types

Occasion Required pieces
work top + bottom
dinner top + bottom (unless a dress is preferred)
gym two activewear pieces
formal dress
casual top + bottom

Step 6 checks the built outfit against this list. Missing required pieces become gaps.

R3 — Dress-vs-separates branching

If occasion ∈ {formal, dinner} AND formality ≥ smart_casual: - Prefer a dress from the wardrobe pool. - For formality = formal, sort dresses to prefer formality = formal first.

Otherwise, build top + bottom (or two activewear pieces for gym).

R4 — Accessory cap

Add up to two accessories from the pool. Never more — over-accessorizing is the most common visual misstep in algorithmically-built outfits.


Source basis

Primary category: Outfit compatibility (docs/evidence-and-references.md §3.2). Secondary: Fashion recommender systems (§3.1). Current basis: Industry styling heuristics. The five-occasion taxonomy (work / dinner / gym / formal / casual) is broadly recognized in fashion-product UX. No specific peer-reviewed paper cited yet — see verification status at docs/evidence-and-references.md §7.