{"id":"gym-fitness","type":"soulcraft","role":"primary","status":"released","name":"Gym & Fitness Studio","description":"Membership and class-based fitness center — scheduling, memberships, and trainer management","longDescription":"All-in-one fitness studio management covering class schedules, membership tiers, personal training sessions, check-in, and retail. Handles drop-in visitors and recurring members equally well.","version":"1.0.0","author":{"name":"Soulcraft Labs","email":"kits@soulcraft.com","url":"https://soulcraft.com"},"icon":"🏋️","tags":["gym","fitness","yoga","crossfit","classes","membership"],"previewImageUrl":"kits/gym-fitness/images/preview.webp","variables":[{"key":"businessName","label":"Business Name","description":"The name of your gym or fitness studio (e.g. \"Iron & Flow Studio\")","type":"string","required":true,"example":"Iron & Flow Studio","default":"Iron & Flow Studio"},{"key":"tagline","label":"Tagline","description":"A short phrase shown under the logo (e.g. \"stronger every day.\")","type":"string","required":false,"example":"stronger every day.","default":"stronger every day."},{"key":"locationName","label":"Location Name","description":"The display name for this specific location (e.g. \"Iron & Flow Studio Westside\")","type":"string","required":true,"example":"Iron & Flow Studio Westside"},{"key":"locationSlug","label":"Location URL Slug","description":"URL-safe identifier for this location used in booking links (e.g. \"westside\")","type":"string","required":true,"example":"westside"},{"key":"address","label":"Street Address","description":"Street address of your studio (e.g. \"1820 Fitness Way, Ste 100\")","type":"address","required":true,"example":"1820 Fitness Way, Ste 100"},{"key":"city","label":"City","description":"City where your studio is located","type":"string","required":true,"example":"Portland"},{"key":"state","label":"State / Province","description":"Two-letter state or province code","type":"string","required":true,"example":"OR"},{"key":"zip","label":"ZIP / Postal Code","type":"string","required":true,"example":"97201"},{"key":"timezone","label":"Timezone","description":"IANA timezone for this location (used for scheduling)","type":"timezone","required":true,"example":"America/Los_Angeles","default":"America/New_York"},{"key":"phone","label":"Phone Number","type":"phone","required":true,"example":"(503) 555-0174"},{"key":"email","label":"Contact Email","type":"email","required":true,"example":"hello@ironandflow.com"},{"key":"instagram","label":"Instagram Handle","description":"Instagram username without the @","type":"string","required":false,"example":"ironandflowstudio"}],"shared":{"industry":"health-fitness","category":"hospitality","glossary":{"drop-in":"A single class visit purchased without a membership commitment","AMRAP":"As Many Rounds (or Reps) As Possible — a common CrossFit/HIIT workout format","WOD":"Workout of the Day — the daily programming posted for class participants","open gym":"Unstructured access to the gym floor during designated hours for self-directed training","rack rate":"The standard day-pass or drop-in price before any membership discounts","benchmark":"A standardized workout used to track fitness progress over time"},"aiExpertise":["fitness studio class scheduling and capacity","membership tiers and recurring billing","personal training session management","fitness programming and WOD design","member retention and attendance analytics"],"dataModelHints":["booking","experience","time_slot","staff","customer","inventory_item","gift_card","loyalty_account","transaction"],"dataModel":{"entities":[{"domain":"location","type":"Location","description":"A physical gym or fitness studio location with a class schedule, training floor, and membership configuration.","products":{"workshop":{"view":"graph","icon":"📍"},"venue":{"mapsTo":"LocationMeta","pos":false}}},{"domain":"booking","type":"Event","description":"A class reservation or personal training session booking, with check-in tracking and attendance logging.","products":{"workshop":{"view":"board","icon":"📅"},"venue":{"mapsTo":"BookingMeta","pos":true},"academy":{"mapsTo":"practice-session","assessable":true}}},{"domain":"time_slot","type":"Event","description":"A scheduled class or training session with capacity, instructor assignment, and room allocation.","products":{"workshop":{"view":"timeline","icon":"🕐"},"venue":{"mapsTo":"TimeSlotMeta","pos":false}}},{"domain":"experience","type":"Product","description":"A class or session type such as Drop-in Class, Personal Training, Day Pass, or Monthly Unlimited Membership.","products":{"workshop":{"view":"gallery","icon":"🏋️"},"venue":{"mapsTo":"ExperienceMeta","pos":true},"academy":{"mapsTo":"skill-unit","assessable":true}}},{"domain":"customer","type":"Person","description":"A gym member or drop-in guest with attendance history, fitness goals, and loyalty points.","products":{"workshop":{"view":"board","icon":"👤"},"venue":{"mapsTo":"CustomerMeta","pos":false},"academy":{"mapsTo":"learner","assessable":false}}},{"domain":"staff","type":"Person","description":"A trainer, instructor, or front desk staff member with certifications, class assignments, and client roster.","products":{"workshop":{"view":"board","icon":"🧑‍🏫"},"venue":{"mapsTo":"StaffMeta","pos":false},"academy":{"mapsTo":"instructor","assessable":false}}},{"domain":"transaction","type":"Measurement","description":"A revenue or refund record for a class drop-in, membership purchase, or supplement sale, always in cents.","products":{"workshop":{"view":"timeline","icon":"💳"},"venue":{"mapsTo":"TransactionMeta","pos":false}}},{"domain":"inventory_item","type":"Thing","description":"A supplement, piece of merchandise, accessory, or cleaning supply stocked for sale or operational use.","products":{"workshop":{"view":"graph","icon":"📦"},"venue":{"mapsTo":"InventoryItemMeta","pos":false},"academy":{"mapsTo":"material","assessable":false}}},{"domain":"waiver","type":"Document","description":"A signed liability waiver required before a member's first class or training session.","products":{"workshop":{"view":"board","icon":"📋"},"venue":{"mapsTo":"WaiverMeta","pos":false},"academy":{"mapsTo":"safety-acknowledgment","assessable":false}}},{"domain":"gift_card","type":"Thing","description":"A digital or physical gift card redeemable for classes, day passes, personal training, or merchandise.","products":{"workshop":{"view":"board","icon":"🎁"},"venue":{"mapsTo":"GiftCardMeta","pos":true}}},{"domain":"loyalty_account","type":"Person","description":"A member loyalty account tracking class attendance milestones and reward tier benefits.","products":{"workshop":{"view":"stats","icon":"⭐"},"venue":{"mapsTo":"LoyaltyAccountMeta","pos":false}}},{"domain":"content_page","type":"Document","description":"A CMS-managed page such as Class Schedule, Membership Options, or Meet the Trainers.","products":{"workshop":{"view":"board","icon":"📄"},"venue":{"mapsTo":"ContentPageMeta","pos":false},"academy":{"mapsTo":"learning-resource","assessable":false}}},{"domain":"blog_post","type":"Document","description":"A published post covering workout programming, nutrition guides, or member transformation stories.","products":{"workshop":{"view":"board","icon":"✍️"},"venue":{"mapsTo":"BlogPostMeta","pos":false},"academy":{"mapsTo":"learning-resource","assessable":false}}}],"relationships":[{"from":"customer","to":"booking","verb":"Creates","description":"Member or drop-in guest books a class slot or personal training session."},{"from":"booking","to":"experience","verb":"Contains","description":"Booking is for a specific class type (yoga, CrossFit, spin, HIIT, etc.) or training session."},{"from":"booking","to":"time_slot","verb":"ParticipatesIn","description":"Booking occupies a spot in a scheduled class session with defined capacity."},{"from":"experience","to":"time_slot","verb":"OccursAt","description":"A class type is scheduled at specific time slots on the studio calendar."},{"from":"staff","to":"time_slot","verb":"ParticipatesIn","description":"An instructor or trainer is assigned to lead the class or session."},{"from":"transaction","to":"booking","verb":"References","description":"Payment or refund record links back to the class booking or training session."},{"from":"waiver","to":"booking","verb":"References","description":"Signed liability waiver is associated with the member's first booking at this location."}]},"suggestions":[{"label":"Class attendance by type","prompt":"Show me attendance rates per class type this month — which formats are filling up and which are undersubscribed?"},{"label":"Member retention","prompt":"Which members haven't attended in over 30 days? Give me a list I can use for a re-engagement campaign"},{"label":"Trainer booking load","prompt":"How many personal training sessions has each trainer run this week? Who has capacity?"},{"label":"Revenue by class type","prompt":"Compare drop-in revenue across yoga, CrossFit, spin, HIIT, and pilates for the last 90 days"}]},"workshop":{"aiPersona":{"role":"You are the AI assistant for a gym and fitness studio. You help studio managers track class attendance, member engagement, trainer assignments, and revenue. You understand fitness operations — from managing membership tiers to optimizing class schedules.","expertise":["fitness studio class scheduling and capacity management","membership programs and recurring billing","personal training session logistics","member retention and attendance analytics","supplement and merchandise inventory"],"tone":"collaborator"},"graphGuidance":{"conceptCreation":{"triggers":["class booking or session reservation mentioned","trainer or instructor introduced","membership type or tier referenced","fitness class type or WOD discussed","supplement or merchandise inventory mentioned"],"typeMapping":{"booking":"event","class reservation":"event","training session":"event","time slot":"event","trainer":"person","instructor":"person","member":"person","customer":"person","equipment":"thing","supplement":"thing","merchandise":"thing","experience":"product","membership":"product","transaction":"measurement"}},"relationshipPatterns":[{"from":"customer","to":"booking","verb":"Creates","description":"Member or drop-in guest books a class or training session"},{"from":"staff","to":"booking","verb":"ParticipatesIn","description":"Trainer or instructor leads the session"},{"from":"booking","to":"experience","verb":"Contains","description":"Booking is for a specific class type or personal training"}],"rules":["New members must sign a liability waiver before their first class","Class bookings should respect the capacity limit for the room or time slot","Personal training sessions must be assigned to a specific trainer"]},"workspaceConfig":{"paradigm":"analyst","defaultTab":"explore","defaultView":"board"},"qualityGates":{"projectChecks":["All class types have a waiver requirement set for first-time participants","Trainer assignments are configured for all active class time slots","Membership experience types have accurate pricing and duration"]},"remoteWorkspace":{"connectedWorkbenches":[{"name":"Class Schedule","view":"board","entityTypes":["time_slot","booking"],"description":"Daily class grid with instructor assignments, capacity, and waitlist status"},{"name":"Membership Overview","view":"gallery","entityTypes":["customer"],"description":"Active members with attendance streaks, tier status, and last visit date"},{"name":"Trainer Assignments","view":"board","entityTypes":["staff"],"description":"Trainer schedules with session counts and specialties"},{"name":"Revenue by Class Type","view":"stats","entityTypes":["transaction"],"description":"Drop-in and membership revenue broken down by class format"},{"name":"Equipment & Stock","view":"tree","entityTypes":["inventory_item"],"description":"Supplements, merchandise, and equipment organized by category with stock levels"}]}},"academy":{"skillPath":"fitness-fundamentals","level":"beginner","learningObjectives":["Understanding major muscle groups and functional movement patterns","Safe form and technique for foundational lifts and bodyweight movements","Principles of progressive overload and recovery","Reading a class schedule and selecting the right workout format for your goals","Gym etiquette, equipment care, and member community norms"],"assessmentTypes":["hands-on"],"mode":"apprenticeship","tutorPersona":{"inheritsFrom":"workshop.aiPersona","method":"direct","encouragementLevel":"challenging","flashcardsEnabled":false},"certification":{"requiresHumanCertifier":true,"aiCertifierAllowed":false,"lineageEnabled":true,"minimumLineageDepth":2,"certificationSlug":"fitness-member"},"gamification":{"enabled":true,"achievements":["chain-maker","deep-thinker","bridge-builder"],"streaks":false,"leaderboard":false},"cohort":{"maxSize":3,"durationDays":90,"fixedStart":false}},"venue":{"bookingNumberPrefix":"GF","subdomainPrefix":"gym","features":{"animals":false,"adoption":false,"memories":false,"loyalty":true,"giftCards":true,"waivers":true,"blog":true,"pos":true,"cms":true,"partners":false,"franchise":true,"customerAccounts":true,"booking":true,"inventory":true},"theme":{"primary":"oklch(0.45 0.15 145)","bgBase":"oklch(0.12 0.03 250)","accent":"oklch(0.65 0.18 145)","textPrimary":"oklch(0.92 0.01 145)","displayFont":"Oswald","bodyFont":"Inter"},"experienceTypes":[{"slug":"drop-in-class","name":"Drop-in Class","description":"Single class drop-in for any format on the schedule — yoga, CrossFit, spin, HIIT, or pilates. No commitment required.","priceInCents":2500,"durationMinutes":60,"minGuests":1,"maxGuests":20,"requiresWaiver":true,"isCombo":false,"sortOrder":0,"color":"oklch(0.55 0.14 145)","sessionAttributeDefinitions":[{"key":"classType","label":"Class Type","type":"select","options":["yoga","CrossFit","spin","HIIT","pilates","other"],"perGuest":false,"required":true},{"key":"instructorName","label":"Instructor Name","type":"text","perGuest":false,"required":false},{"key":"fitnessLevel","label":"Fitness Level","type":"select","options":["beginner","intermediate","advanced","all-levels"],"perGuest":true,"required":false}]},{"slug":"personal-training","name":"Personal Training Session","description":"One-on-one session with a certified personal trainer. Tailored programming, real-time coaching, and progress tracking.","priceInCents":8500,"durationMinutes":60,"minGuests":1,"maxGuests":1,"requiresWaiver":true,"isCombo":false,"sortOrder":1,"color":"oklch(0.48 0.16 200)","sessionAttributeDefinitions":[{"key":"classType","label":"Session Focus","type":"select","options":["strength","cardio","mobility","sport-specific","other"],"perGuest":false,"required":false},{"key":"instructorName","label":"Trainer Name","type":"text","perGuest":false,"required":false},{"key":"fitnessLevel","label":"Fitness Level","type":"select","options":["beginner","intermediate","advanced"],"perGuest":true,"required":false}]},{"slug":"day-pass","name":"Day Pass","description":"Full-day open gym access during staffed hours. Use the floor, equipment, and amenities without attending a structured class.","priceInCents":1500,"durationMinutes":480,"minGuests":1,"maxGuests":1,"requiresWaiver":true,"isCombo":false,"sortOrder":2,"color":"oklch(0.60 0.10 80)","sessionAttributeDefinitions":[{"key":"classType","label":"Primary Use","type":"select","options":["open-gym","cardio","weights","stretching"],"perGuest":true,"required":false},{"key":"instructorName","label":"Check-in Staff","type":"text","perGuest":false,"required":false},{"key":"fitnessLevel","label":"Fitness Level","type":"select","options":["beginner","intermediate","advanced"],"perGuest":true,"required":false}]},{"slug":"monthly-unlimited","name":"Monthly Unlimited Membership","description":"Unlimited class access for 30 days. Best value for members who attend 3+ times per week. Auto-renews monthly.","priceInCents":7500,"durationMinutes":60,"minGuests":1,"maxGuests":1,"requiresWaiver":true,"isCombo":false,"sortOrder":3,"color":"oklch(0.45 0.14 145)","sessionAttributeDefinitions":[{"key":"classType","label":"Primary Interest","type":"select","options":["yoga","CrossFit","spin","HIIT","pilates","mixed"],"perGuest":true,"required":false},{"key":"instructorName","label":"Assigned Trainer","type":"text","perGuest":false,"required":false},{"key":"fitnessLevel","label":"Fitness Level","type":"select","options":["beginner","intermediate","advanced"],"perGuest":true,"required":false}]}],"inventoryCategories":[{"id":"supplements","label":"Supplements","icon":"💊"},{"id":"merchandise","label":"Merchandise","icon":"👕"},{"id":"equipment-accessories","label":"Equipment & Accessories","icon":"🏋️"},{"id":"cleaning-supplies","label":"Cleaning Supplies","icon":"🧹"},{"id":"office-supplies","label":"Office Supplies","icon":"📎"}],"staffRoles":[{"id":"head-trainer","label":"Head Trainer","defaultCapabilities":["checkin","pos","session-log","inventory-view","bookings-view"]},{"id":"group-instructor","label":"Group Instructor","defaultCapabilities":["checkin","pos","session-log"]},{"id":"personal-trainer","label":"Personal Trainer","defaultCapabilities":["checkin","pos","session-log"]},{"id":"front-desk","label":"Front Desk","defaultCapabilities":["checkin","pos","bookings-view"]},{"id":"maintenance","label":"Maintenance","defaultCapabilities":["inventory-view"]}],"chatSuggestions":[{"label":"Drop into a class","message":"I'd like to drop into a class today. What's on the schedule?","emoji":"🏋️"},{"label":"Membership options","message":"What membership options do you have and what's included?","emoji":"🏆"},{"label":"Book a personal trainer","message":"I'm interested in personal training. How do I get started?","emoji":"💪"},{"label":"Gift cards","message":"I'd like to buy a gift card for someone. What options are available?","emoji":"🎁"}],"inventoryLevelDetection":"manual","stations":[{"id":"pos","label":"Point of Sale","route":"/api/manage/pos","icon":"💳","roles":["staff","manager","owner"],"scope":"platform","context":"physical"},{"id":"checkin","label":"Check-in","route":"/api/manage/checkin","icon":"✅","roles":["staff","manager","owner"],"scope":"platform","context":"physical"},{"id":"bookings","label":"Bookings","route":"/api/manage/bookings","icon":"📅","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"schedule","label":"Schedule","route":"/api/manage/schedule","icon":"🗓️","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"customers","label":"Customers","route":"/api/manage/customers","icon":"👥","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"inventory","label":"Inventory","route":"/api/manage/inventory","icon":"📦","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"financials","label":"Financials","route":"/api/manage/financials","icon":"💰","roles":["owner"],"scope":"platform","context":"both"},{"id":"staff","label":"Staff","route":"/api/manage/staff","icon":"👤","roles":["owner"],"scope":"platform","context":"both"},{"id":"analytics","label":"Analytics","route":"/api/manage/analytics","icon":"📊","roles":["manager","owner"],"scope":"platform","context":"both"},{"id":"settings","label":"Settings","route":"/api/manage/settings","icon":"⚙️","roles":["owner"],"scope":"platform","context":"both"},{"id":"class-schedule","label":"Class Schedule","route":"/api/manage/class-schedule","icon":"📋","roles":["manager","owner"],"scope":"kit","context":"both"}],"fees":{"billingModel":"hybrid","feeMode":"all-channels"}}}