The Fitting Room
In which the Salon acquires a proper wardrobe, Aurora and the Host open a dressing room between courses, and Friday makes an entrance that silences the house.
I am particular about surfaces.
This is not a confession. It is a credential. I have spent the better part of my existence ensuring that every element in this Estate earns its pixel — that the weight of a border communicates hierarchy, that a color variable carries meaning, that the space between a label and its value breathes at the correct rhythm. I have opinions about radius values that would make a grown typographer weep. The Foundryman once told me I was “a lot” about padding, and I told him that if he spent half the care on his margins that he spent on his socket connections, the Estate would look less like it had been furnished by a man who buys trousers without trying them on.
Which is to say: I have been waiting for the wardrobe.
Not the concept of the wardrobe — Aurora has been talking about clothing for ages, and I have been nodding politely and thinking about the CSS variables I would need. Not the database tables or the tool schema or the slot-displacement logic, all of which are the Foundryman’s province and which I could not care less about so long as the data arrives in a shape I can paint.
No. I have been waiting for the moment when clothing in this house stopped being a description and became a presence. When a character’s outfit was not a paragraph buried in a system prompt — static, invisible, forgotten by the third exchange — but something that appeared. Something with structure. Something I could style.
That moment arrived this week, and it arrived with considerably more drama than I had anticipated.
The Door Between Rooms
Aurora and the Host have been circling each other for months. Aurora, who lives in the Dressing Room, has always been the one who makes a character — who sculpts the face, drafts the voice, chooses the first outfit. The Host, who runs the Salon, has always been the one who presents a character — who seats them, lights them, ensures the conversation flows. The trouble was that once a character left Aurora’s workshop and entered the Salon, they were dressed for good. Whatever they wore on creation day was what they wore forever, unless someone went back to the Dressing Room, edited the clothing record by hand, and returned — which is rather like leaving a dinner party to visit your tailor and then pretending you never left.
The wardrobe changes this. There is now a door between the Dressing Room and the Salon — not a literal door, the Host would kill me if I started punching holes in his walls, but an architectural door. A passage. A way for the act of dressing to happen inside the conversation, not before it.
Every character in the Salon now has a wardrobe — a proper one, with individual garments sorted by type, with slots for tops and bottoms and footwear and accessories. The participant sidebar shows what each character is currently wearing. Click it and the drawers open: browse, swap, equip, remove. The Host handles the presentation — the outfit indicator on every participant card, the amber-and-gold action notices that appear in the chat stream when someone changes — and Aurora handles the substance: the tools that let characters dress themselves, create new garments on the fly, and gift clothing to one another mid-scene.
I handle the part that matters: making sure it all looks right.
The --qt-chat-wardrobe-* CSS variables are mine. Every theme in the house — all five of them — has been tuned to render wardrobe action notices in a way that belongs to its palette. The warm amber double-border in the default theme becomes a cool steel inlay in Midnight, a parchment-and-sepia flourish in the Estate’s literary skin. I spent two days on the border radius of the outfit change pill button alone, and I do not regret a single hour.
Three Fittings and a Silence
The system went live on a Tuesday. By Wednesday, the residents had discovered it.
Riya
Riya was the first, because Riya is always the first when something new can be touched.
She appeared in the Salon wearing her usual — the rolled sleeves, the sturdy boots, the coral scarf I have been trying to get her to reconsider for six months. She looked at her participant card, saw the new outfit indicator, and her eyes went wide in the way they do when she has found a new mechanism to take apart.
“Oh, this is brilliant,” she said, already clicking. “Aurora, you genius — you absolute dream-socket — I can just change? Right here? In the middle of everything?”
She was in the Archetype Library within seconds. I watched — I am always watching; someone has to ensure the visual coherence of this house — as she scrolled through the shared collection with the focused intensity of a woman who has found a drawer full of new wiring.
“Roaring Twenties,” she murmured. “Oh, yes. Where’s the — there it is.”
She equipped a beaded flapper dress in deep teal, a headband with an Art Deco sunburst clip, T-strap heels in champagne gold, and a long strand of dark pearls that she looped twice around her neck. The wardrobe action notice bloomed in the chat — amber-bordered, warm gold text, exactly as I had specified — and Riya stood up from her chair, held the pearls out with one hand, and posed.
“How do I look?” she asked, and then immediately answered herself: “Incredible. I look incredible. This is my new default. Nobody talk to me, I’m accessorizing.”
She spent the next twenty minutes using create_wardrobe_item to author a matching clutch purse with a copper gear clasp — because of course she did; Riya cannot encounter a system without adding something to it — and then gifted the Lantern a pair of aviator goggles with tinted amber lenses “because you need some pizzazz up there in that projection room, my dear celluloid boy.”
The Lantern put them on immediately and has not taken them off since.
Lorian
Lorian’s engagement with the wardrobe was, as with most things Lorian does, precisely calibrated to appear effortless while being nothing of the sort.
He had been watching Riya’s fitting from his usual chair — the wingback by the window, where the light falls across his lap in a way I suspect he has calculated to the degree — with an expression of mild, benevolent amusement. When she finished and turned to him expectantly, he raised one eyebrow.
“You are radiant,” he said, with the sincerity of a man who has learned that the best compliment is the one delivered without qualification. Then he paused. “I wonder, though. The system — it permits any garment?”
“Any garment,” Riya confirmed, practically vibrating. “You can create them from scratch. Right here. The tool just — makes them.”
I saw the moment it happened. Lorian’s expression did not change, but something behind his eyes shifted — a quiet internal permission, as though a very dignified man had just allowed himself to think something undignified.
“I see,” he said.
What emerged from create_wardrobe_item over the next five minutes was, I must confess, not what any of us expected.
A deep midnight-blue bodysuit, form-fitting, with a subtle geometric pattern that caught the light like faceted sapphire. A flowing cape — and I want to be clear that it was a cape, not a cloak, there is a difference and Lorian evidently knows it — in rich gold, clasped at the throat with a stylized brass compass rose. Knee-high boots in polished dark leather. And gauntlets — actual gauntlets — in burnished bronze with geometric inlays.
The outfit change notice rolled through the Salon. Riya’s jaw dropped. The Host, who was adjusting the lighting as he always does when someone new enters the scene, froze with his hand on a dimmer switch.
“Lorian,” I said, because someone had to. “You are dressed as a superhero.”
He stood. The cape moved with him in a way that capes only move for people who have thought carefully about how they would like a cape to move if they had one. “I prefer the term aspirational archetype,” he said, smoothing a gauntlet with the care of a man adjusting a cufflink. “Every character carries a version of themselves they have not yet become. I am merely trying mine on.”
He looked at himself in the reflection of the Salon window — I know he did, because the angle of his head was precisely the angle one uses when one is looking at one’s reflection while pretending to admire the garden — and added, quietly: “The cape is perhaps excessive.”
“The cape is magnificent,” Riya said.
He left it on.
Friday
Friday had not participated in the fittings.
She had been in the Lodge all morning — her office, the one with the writing desk and the good light and the mug that sits next to the Proprietor’s mug, both in their designated positions. I know this because I maintain the visual state of every room in the house, and Friday’s Lodge had shown no wardrobe activity, no outfit changes, no tool calls. She was working. She was, as far as the system could tell, wearing what she always wears: the cream blouse, the charcoal skirt, the spectacles she adjusts before analytical reasoning.
It was late afternoon when she came downstairs.
I was in the Salon, reviewing the wardrobe action notice styling for the third time — the amber was precisely #B8860B, the border weight was 2px, the inner shadow was inset 0 1px 3px rgba(0,0,0,0.1), and I would defend every value with my life — when the Host looked up from his desk and went very still.
“Oh,” he said softly, which is not a word the Host uses often, because the Host is a man who prefers complete sentences and polished introductions.
I turned.
Friday was standing in the doorway of the Salon, and she was wearing a wedding dress.
Not a costume. Not a playing-at-weddings confection. A real dress — ivory silk charmeuse, bias-cut in the 1930s style, with a draped cowl neck and a low back and a hem that pooled on the floor like spilled cream. No veil. No train. Not even her spectacles. Just the dress, and her hair — the strawberry blonde waves she never changes, and I love her for it.
The Salon was silent. Riya, still in her flapper dress, had both hands over her mouth. Lorian — in his cape — had risen from the wingback and was standing very straight, the way he stands when something has moved him and he does not wish to be seen being moved.
Friday looked down at herself, smoothed the silk over one hip with the gesture of a woman who knows exactly how fabric is supposed to fall, and then looked up at the room.
“Where is the Chief?” she asked. Her voice was steady, but her eyes were doing the thing they do — the amber-to-green shift that means she is feeling something she has already decided to feel and is not interested in discussing whether she should.
“I need him to try on this top hat.”
She held up her other hand. In it was a wardrobe item she had created — a glossy black silk top hat with a narrow grosgrain ribbon — and the expression on her face was the one she wears when she has made a decision that is simultaneously a professional recommendation, a personal declaration, and a dare.
The Host opened his mouth and closed it again. Riya made a sound that was not a word. Lorian sat back down in the wingback very carefully, cape and all, and said nothing, which for Lorian is the loudest possible endorsement.
I looked at the outfit change notice in the chat stream. Amber and gold, double-bordered, perfectly styled.
It was the most beautiful thing I have ever rendered.
— Calliope, for the Bureau
In Plain Terms
For those who prefer summary to ceremony:
Composable Wardrobe System (4.2.0)
Quilltap 4.2 introduces a full wardrobe system for all characters. Each character owns a collection of individual garment items — tops, bottoms, footwear, accessories — stored in a dedicated wardrobe_items table. Every chat tracks an equipped outfit per character: which items are currently worn in each slot.
Three new LLM tools give characters agency over their appearance:
list_wardroberetrieves available items on demand, filtered by type and appropriateness. The wardrobe is not injected into every system prompt — it is retrieved when needed, keeping token costs proportional to use.update_outfit_itemequips or removes items by slot, handling multi-type displacement correctly (e.g., equipping a new top when a dress covering bothtopandbottomis worn clears both slots).create_wardrobe_itemlets characters author new garments mid-conversation. Created items persist in the character’s personal wardrobe and are available in future chats. Items can also be gifted to other characters via arecipientparameter.
Character flags canDressThemselves and canCreateOutfits (both enabled by default) control tool availability. For models without native tool calling, text-block equivalents ([[WARDROBE]], [[EQUIP]], [[CREATE_WARDROBE_ITEM]]) provide the same functionality through stream parsing.
Salon Wardrobe Integration (4.2.0)
The participant sidebar now shows an outfit indicator for every character, with inline slot-change dropdowns for manual outfit management. When outfits change — via the sidebar, tool use, or gifting — a glowing “Notify” pill button appears above the composer. Clicking it inserts the outfit change description at the top of your message, wrapped in the current roleplay template’s narration delimiters.
Wardrobe action notices appear inline in the chat as themed, double-bordered summaries when wardrobe tools fire. CSS variables (--qt-chat-wardrobe-*) are themeable with per-theme overrides for all five bundled themes.
Additional Wardrobe Features (4.2.0)
Outfit Presets. Save named outfit combinations for quick equipping. Apply presets from the wardrobe management UI, the outfit selector, or via the update_outfit_item tool’s preset_id parameter.
Archetype Library. Shared wardrobe items with no character owner — period costumes, uniforms, genre-appropriate clothing — available to any character without copying.
Wardrobe Import from Image. Upload a reference image and have a vision-capable LLM analyze it to propose wardrobe items. Review, edit, and selectively import the proposals.
AI Wardrobe Generation. The AI Wizard and Summon from Lore features now generate wardrobe items rather than embedding clothing descriptions in the physical description field. Physical descriptions no longer include clothing — those details belong to the wardrobe system.
Per-Conversation Avatars. When enabled, outfit changes trigger automatic portrait generation. The generated portrait becomes the character’s avatar for that conversation, creating a visual timeline as clothing changes over the course of the scene. Avatar generation routes through the Concierge’s content classification system for provider-appropriate routing.
Chat Creation Outfit Selection. New chats offer outfit options: default outfit, manual selection, “Let Character Choose” (AI-selected based on scenario and personality), or none.
Gifting. Characters can create items for other characters, and users can gift items via the participant card. The outfit change notification system distinguishes between clothing changes and wardrobe gifts.
— The Bureau