From room-genie
Use this skill BEFORE calling `explore_rates` or `create_alert` for Disneyland Resort in California — any of the three on-property hotels (Disneyland Hotel, Grand Californian Hotel & Spa, Pixar Place Hotel / Paradise Pier, Villas at the Grand Californian) or any conversation about Disneyland Park, California Adventure, DCA, Downtown Disney, Anaheim. Contains the DLR follow-up questionnaire (ticketDays 1-5 NOT 2-10, narrower ticket set — no water-parks-sport or plus, NEVER ask about a dining plan since DLR doesn't have one, NEVER ask about Memory Maker since DLR doesn't support it, only Travel Protection), and cross-hotel comparison patterns. Do NOT use for Walt Disney World in Florida — use disney-world-planner for that instead.
How this skill is triggered — by the user, by Claude, or both
Slash command
/room-genie:disneyland-plannerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Layer this on top of `room-genie-core`. Disneyland Resort has fewer moving parts than WDW — only 3 hotels and different ticket structures.
Layer this on top of room-genie-core. Disneyland Resort has fewer moving parts than WDW — only 3 hotels and different ticket structures.
| Hotel | Vibe | Notable |
|---|---|---|
| Disneyland Hotel | Classic Disney, themed towers (Adventure, Fantasy, Frontier) | Closest monorail station, most iconic |
| Grand Californian Hotel & Spa | Arts-and-Crafts lodge, private DCA entrance | Premium tier, direct walk into California Adventure |
| Pixar Place Hotel | Pixar-themed (formerly Paradise Pier) | Walking distance to DCA via Grand Cal, lowest price of the three |
There is no "Value" or "Moderate" category at DLR — all three are premium. If a user wants budget, they'll need a Good Neighbor hotel (not in Room Genie).
Labels to show the user (DLR has a slimmer set than WDW — only these two in the consumer pick list):
Never show the API enum (no-option, park-hopper) in chat. Never show "Base" — that's not a label we use. genie-plus and park-hopper-genie-plus exist in the API but are not offered in the consumer questionnaire; water-parks-sport and plus are WDW-only. Default to "1 Park Per Day" if the user hasn't expressed a preference.
Disneyland does not offer a dining plan like WDW does. Always use diningPlan: "none" for DLR. If the user asks about a dining plan, clarify that DLR doesn't have one.
DLR does not offer Memory Maker as a package add-on through the Disney booking flow. Always pass memoryMaker: false for DLR. Do NOT ask the user about it — if they ask, explain Memory Maker is WDW-only in the package flow (DLR's equivalent PhotoPass product is purchased separately on-site or in the app).
Same as WDW — $99/adult, children free. Offer it for longer stays.
explore_rates)DLR has fewer knobs than WDW. Ask dates FIRST, then package specifics.
package, ask the rest — in this shape:Number of park days (integer 1–5). DLR maxes at 5, UNLIKE WDW. 3 is the most common DLR length.
Ticket type — show the user EXACTLY these two labels, verbatim:
Never show "Base" and never show the API enum (no-option, park-hopper) in user-facing text. Park Hopper Plus and Waterpark & Sports are WDW-only; Lightning Lane variants are in the API but are NOT offered in the DLR consumer questionnaire — do not surface them unless the user explicitly asks.
Dining plan: DO NOT ASK. DLR has no dining plan — always pass diningPlan: "none" silently. If the user asks for one, explain DLR doesn't offer one.
Memory Maker: DO NOT ASK. DLR has no Memory Maker package add-on — always pass memoryMaker: false silently. If the user asks, explain it's WDW-only in the package flow.
Travel Protection? — ask as a separate yes/no question. $99/adult, children free. Default no. This is the ONLY paid add-on to offer at DLR.
DLR's Travel Protection is a PACKAGE add-on — Disney won't attach it without bundled tickets. If the user wants TP but no tickets ("just the room with insurance"), explain that DLR's TP is only sold as part of a ticketed package, and ask them to either (a) include tickets (set ticketDays >= 1 and pick a ticket type), or (b) drop TP and run a room-only quote. The server will REFUSE a mode="package" call with ticketDays = 0 and travelProtection: true — don't try to work around it.
Ask for dates + party first, then come back with the package questions.
list_resorts({ query: "Disneyland" }) — returns the 3 DLR hotels (plus Pixar Place if listed under its new name).list_room_types({ resortId }) — REQUIRED before pricing. Show the user the room list and ask which they want priced. DLR hotels have fewer rooms than WDW (usually 4–8), but each is still a separate cart flow — don't default to all-rooms. Let the user pick 1–3.roomTypes UUID array.explore_rates({ mode: "package", roomTypes: [<picked ids>], ... diningPlan: "none", memoryMaker: false }).show_price_matrix (DLR has tickets), then close with the three-way post-matrix prompt: price-drop alert / availability alert (only if anything is sold out) / PDF quote.list_resorts may return either or both names depending on DB state. Use the returned name.After a Grand Californian quote:
After a Disneyland Hotel quote:
After a Pixar Place quote:
After explore_rates shows everything sold out at DLR:
After a full package quote with tickets:
room-genie-core: "(a) price-drop alert on a room, (b) availability alert on any sold-out room (skip if everything is available), or (c) build a branded PDF quote for the client (calls generate_quote_pdf — gather inputs first)."After list_room_types at a DLR hotel:
When the user seems torn between WDW and DLR:
npx claudepluginhub tombandini-7/room-genie-skills --plugin room-genieProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.