@soulcraft/kits 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/kits/ai-content-studio/kit.json +358 -0
- package/kits/api-documentation/kit.json +358 -0
- package/kits/api-documentation/skills/api-examples/SKILL.md +176 -0
- package/kits/api-documentation/skills/api-review/SKILL.md +35 -0
- package/kits/api-documentation/skills/api-versioning/SKILL.md +156 -0
- package/kits/api-documentation/skills/create-code-examples/SKILL.md +42 -0
- package/kits/api-documentation/skills/define-resource/SKILL.md +39 -0
- package/kits/api-documentation/skills/document-auth/SKILL.md +39 -0
- package/kits/api-documentation/skills/document-endpoint/SKILL.md +40 -0
- package/kits/api-documentation/skills/kit-expertise/SKILL.md +78 -0
- package/kits/api-documentation/skills/openapi-spec/SKILL.md +174 -0
- package/kits/axe-house/kit.json +931 -0
- package/kits/axe-house/skills/axe-expertise/SKILL.md +259 -0
- package/kits/axe-house/skills/blog-draft/SKILL.md +147 -0
- package/kits/axe-house/skills/booking-digest/SKILL.md +188 -0
- package/kits/axe-house/skills/customer-insights/SKILL.md +215 -0
- package/kits/axe-house/skills/demand-forecast/SKILL.md +183 -0
- package/kits/axe-house/skills/email-campaign/SKILL.md +135 -0
- package/kits/axe-house/skills/experience-copy/SKILL.md +142 -0
- package/kits/axe-house/skills/guest-letter/SKILL.md +171 -0
- package/kits/axe-house/skills/inventory-health/SKILL.md +234 -0
- package/kits/axe-house/skills/league-manager/SKILL.md +264 -0
- package/kits/axe-house/skills/revenue-report/SKILL.md +240 -0
- package/kits/axe-house/skills/safety-briefing/SKILL.md +248 -0
- package/kits/axe-house/skills/social-calendar/SKILL.md +203 -0
- package/kits/axe-house/skills/staff-briefing/SKILL.md +231 -0
- package/kits/axe-house/skills/venue-data-model/SKILL.md +225 -0
- package/kits/blog-series/kit.json +363 -0
- package/kits/blog-series/skills/content-hooks/SKILL.md +158 -0
- package/kits/blog-series/skills/headline-brainstorm/SKILL.md +40 -0
- package/kits/blog-series/skills/kit-expertise/SKILL.md +78 -0
- package/kits/blog-series/skills/repurpose-content/SKILL.md +40 -0
- package/kits/blog-series/skills/seo-review/SKILL.md +41 -0
- package/kits/blog-series/skills/seo-writing/SKILL.md +135 -0
- package/kits/blog-series/skills/series-audit/SKILL.md +36 -0
- package/kits/blog-series/skills/write-post-outline/SKILL.md +42 -0
- package/kits/business-plan/kit.json +437 -0
- package/kits/business-plan/skills/competitor-analysis/SKILL.md +34 -0
- package/kits/business-plan/skills/financial-modeling/SKILL.md +180 -0
- package/kits/business-plan/skills/financial-projections/SKILL.md +42 -0
- package/kits/business-plan/skills/kit-expertise/SKILL.md +101 -0
- package/kits/business-plan/skills/market-analysis/SKILL.md +155 -0
- package/kits/business-plan/skills/market-research/SKILL.md +35 -0
- package/kits/business-plan/skills/sba-compliance/SKILL.md +163 -0
- package/kits/business-plan/skills/swot-analysis/SKILL.md +36 -0
- package/kits/canvas-and-corks/kit.json +910 -0
- package/kits/canvas-and-corks/skills/blog-draft/SKILL.md +160 -0
- package/kits/canvas-and-corks/skills/booking-digest/SKILL.md +147 -0
- package/kits/canvas-and-corks/skills/class-description/SKILL.md +53 -0
- package/kits/canvas-and-corks/skills/class-roster/SKILL.md +163 -0
- package/kits/canvas-and-corks/skills/customer-insights/SKILL.md +174 -0
- package/kits/canvas-and-corks/skills/demand-forecast/SKILL.md +191 -0
- package/kits/canvas-and-corks/skills/email-campaign/SKILL.md +154 -0
- package/kits/canvas-and-corks/skills/experience-copy/SKILL.md +152 -0
- package/kits/canvas-and-corks/skills/guest-letter/SKILL.md +127 -0
- package/kits/canvas-and-corks/skills/inventory-health/SKILL.md +204 -0
- package/kits/canvas-and-corks/skills/painting-memory/SKILL.md +76 -0
- package/kits/canvas-and-corks/skills/revenue-report/SKILL.md +196 -0
- package/kits/canvas-and-corks/skills/social-calendar/SKILL.md +146 -0
- package/kits/canvas-and-corks/skills/staff-briefing/SKILL.md +134 -0
- package/kits/canvas-and-corks/skills/studio-expertise/SKILL.md +181 -0
- package/kits/canvas-and-corks/skills/venue-data-model/SKILL.md +325 -0
- package/kits/character-relationship-map/kit.json +367 -0
- package/kits/character-relationship-map/skills/ensemble-balance/SKILL.md +189 -0
- package/kits/character-relationship-map/skills/kit-expertise/SKILL.md +83 -0
- package/kits/character-relationship-map/skills/relationship-dynamics/SKILL.md +158 -0
- package/kits/clay-and-co/kit.json +938 -0
- package/kits/clay-and-co/skills/blog-draft/SKILL.md +135 -0
- package/kits/clay-and-co/skills/booking-digest/SKILL.md +163 -0
- package/kits/clay-and-co/skills/customer-insights/SKILL.md +207 -0
- package/kits/clay-and-co/skills/demand-forecast/SKILL.md +166 -0
- package/kits/clay-and-co/skills/email-campaign/SKILL.md +125 -0
- package/kits/clay-and-co/skills/experience-copy/SKILL.md +132 -0
- package/kits/clay-and-co/skills/guest-letter/SKILL.md +104 -0
- package/kits/clay-and-co/skills/inventory-health/SKILL.md +211 -0
- package/kits/clay-and-co/skills/kiln-scheduler/SKILL.md +206 -0
- package/kits/clay-and-co/skills/piece-tracker/SKILL.md +165 -0
- package/kits/clay-and-co/skills/pottery-expertise/SKILL.md +165 -0
- package/kits/clay-and-co/skills/pottery-memory/SKILL.md +119 -0
- package/kits/clay-and-co/skills/revenue-report/SKILL.md +205 -0
- package/kits/clay-and-co/skills/social-calendar/SKILL.md +130 -0
- package/kits/clay-and-co/skills/staff-briefing/SKILL.md +213 -0
- package/kits/clay-and-co/skills/venue-data-model/SKILL.md +230 -0
- package/kits/concept-map/kit.json +353 -0
- package/kits/concept-map/skills/add-concept/SKILL.md +41 -0
- package/kits/concept-map/skills/assess-understanding/SKILL.md +36 -0
- package/kits/concept-map/skills/concept-hierarchy/SKILL.md +148 -0
- package/kits/concept-map/skills/create-learning-map/SKILL.md +42 -0
- package/kits/concept-map/skills/find-cross-links/SKILL.md +34 -0
- package/kits/concept-map/skills/identify-prerequisites/SKILL.md +40 -0
- package/kits/concept-map/skills/kit-expertise/SKILL.md +78 -0
- package/kits/concept-map/skills/relationship-types/SKILL.md +160 -0
- package/kits/content-calendar/kit.json +420 -0
- package/kits/content-calendar/skills/content-strategy/SKILL.md +174 -0
- package/kits/content-calendar/skills/create-brief/SKILL.md +40 -0
- package/kits/content-calendar/skills/generate-ideas/SKILL.md +40 -0
- package/kits/content-calendar/skills/kit-expertise/SKILL.md +100 -0
- package/kits/content-calendar/skills/plan-series/SKILL.md +40 -0
- package/kits/content-calendar/skills/repurpose-content/SKILL.md +38 -0
- package/kits/content-calendar/skills/repurposing/SKILL.md +179 -0
- package/kits/content-calendar/skills/weekly-review/SKILL.md +34 -0
- package/kits/coworking-space/kit.json +1068 -0
- package/kits/escape-vault/kit.json +1028 -0
- package/kits/escape-vault/skills/blog-draft/SKILL.md +157 -0
- package/kits/escape-vault/skills/booking-digest/SKILL.md +151 -0
- package/kits/escape-vault/skills/customer-insights/SKILL.md +185 -0
- package/kits/escape-vault/skills/demand-forecast/SKILL.md +188 -0
- package/kits/escape-vault/skills/email-campaign/SKILL.md +157 -0
- package/kits/escape-vault/skills/escape-expertise/SKILL.md +200 -0
- package/kits/escape-vault/skills/escape-memory/SKILL.md +99 -0
- package/kits/escape-vault/skills/experience-copy/SKILL.md +159 -0
- package/kits/escape-vault/skills/guest-letter/SKILL.md +143 -0
- package/kits/escape-vault/skills/inventory-health/SKILL.md +222 -0
- package/kits/escape-vault/skills/leaderboard-report/SKILL.md +204 -0
- package/kits/escape-vault/skills/revenue-report/SKILL.md +202 -0
- package/kits/escape-vault/skills/room-designer/SKILL.md +182 -0
- package/kits/escape-vault/skills/social-calendar/SKILL.md +148 -0
- package/kits/escape-vault/skills/staff-briefing/SKILL.md +159 -0
- package/kits/escape-vault/skills/venue-data-model/SKILL.md +335 -0
- package/kits/family-tree/kit.json +380 -0
- package/kits/family-tree/skills/add-family-member/SKILL.md +42 -0
- package/kits/family-tree/skills/analyze-relationship/SKILL.md +41 -0
- package/kits/family-tree/skills/export-gedcom/SKILL.md +34 -0
- package/kits/family-tree/skills/genealogy-research/SKILL.md +188 -0
- package/kits/family-tree/skills/kit-expertise/SKILL.md +107 -0
- package/kits/family-tree/skills/record-oral-history/SKILL.md +43 -0
- package/kits/family-tree/skills/relationship-mapping/SKILL.md +171 -0
- package/kits/family-tree/skills/research-ancestor/SKILL.md +43 -0
- package/kits/farkle-dice-game/kit.json +316 -0
- package/kits/farkle-dice-game/skills/kit-expertise/SKILL.md +137 -0
- package/kits/franchise-ops/kit.json +326 -0
- package/kits/freelance-portfolio/kit.json +435 -0
- package/kits/game-design-doc/kit.json +353 -0
- package/kits/game-design-doc/skills/balance-system/SKILL.md +40 -0
- package/kits/game-design-doc/skills/create-character/SKILL.md +40 -0
- package/kits/game-design-doc/skills/design-mechanic/SKILL.md +40 -0
- package/kits/game-design-doc/skills/economy-design/SKILL.md +152 -0
- package/kits/game-design-doc/skills/game-mechanics/SKILL.md +141 -0
- package/kits/game-design-doc/skills/ideate-features/SKILL.md +36 -0
- package/kits/game-design-doc/skills/kit-expertise/SKILL.md +78 -0
- package/kits/game-design-doc/skills/playtest-feedback/SKILL.md +142 -0
- package/kits/game-design-doc/skills/review-gdd/SKILL.md +33 -0
- package/kits/gather-and-grill/kit.json +966 -0
- package/kits/gather-and-grill/skills/blog-draft/SKILL.md +120 -0
- package/kits/gather-and-grill/skills/booking-digest/SKILL.md +171 -0
- package/kits/gather-and-grill/skills/cooking-memory/SKILL.md +100 -0
- package/kits/gather-and-grill/skills/culinary-expertise/SKILL.md +180 -0
- package/kits/gather-and-grill/skills/customer-insights/SKILL.md +184 -0
- package/kits/gather-and-grill/skills/demand-forecast/SKILL.md +200 -0
- package/kits/gather-and-grill/skills/email-campaign/SKILL.md +97 -0
- package/kits/gather-and-grill/skills/experience-copy/SKILL.md +92 -0
- package/kits/gather-and-grill/skills/guest-letter/SKILL.md +98 -0
- package/kits/gather-and-grill/skills/inventory-health/SKILL.md +193 -0
- package/kits/gather-and-grill/skills/menu-planner/SKILL.md +175 -0
- package/kits/gather-and-grill/skills/recipe-card/SKILL.md +194 -0
- package/kits/gather-and-grill/skills/revenue-report/SKILL.md +245 -0
- package/kits/gather-and-grill/skills/social-calendar/SKILL.md +139 -0
- package/kits/gather-and-grill/skills/staff-briefing/SKILL.md +167 -0
- package/kits/gather-and-grill/skills/venue-data-model/SKILL.md +336 -0
- package/kits/gtd-productivity-system/kit.json +389 -0
- package/kits/gtd-productivity-system/skills/break-down-project/SKILL.md +41 -0
- package/kits/gtd-productivity-system/skills/clarify-task/SKILL.md +42 -0
- package/kits/gtd-productivity-system/skills/gtd-methodology/SKILL.md +185 -0
- package/kits/gtd-productivity-system/skills/inbox-processing/SKILL.md +173 -0
- package/kits/gtd-productivity-system/skills/kit-expertise/SKILL.md +111 -0
- package/kits/gtd-productivity-system/skills/mind-sweep/SKILL.md +35 -0
- package/kits/gtd-productivity-system/skills/process-inbox/SKILL.md +40 -0
- package/kits/gtd-productivity-system/skills/weekly-review/SKILL.md +197 -0
- package/kits/gym-fitness/kit.json +1037 -0
- package/kits/interactive-fiction/kit.json +471 -0
- package/kits/invoice-generator/kit.json +466 -0
- package/kits/loyalty-program/kit.json +323 -0
- package/kits/marketing-plan/kit.json +417 -0
- package/kits/marketing-plan/skills/allocate-budget/SKILL.md +34 -0
- package/kits/marketing-plan/skills/campaign-metrics/SKILL.md +184 -0
- package/kits/marketing-plan/skills/channel-strategy/SKILL.md +156 -0
- package/kits/marketing-plan/skills/content-calendar/SKILL.md +34 -0
- package/kits/marketing-plan/skills/create-persona/SKILL.md +40 -0
- package/kits/marketing-plan/skills/kit-expertise/SKILL.md +109 -0
- package/kits/marketing-plan/skills/measure-performance/SKILL.md +34 -0
- package/kits/marketing-plan/skills/plan-campaign/SKILL.md +41 -0
- package/kits/marketing-site/kit.json +230 -0
- package/kits/marketing-site/skills/add-page/SKILL.md +28 -0
- package/kits/marketing-site/skills/add-section/SKILL.md +29 -0
- package/kits/marketing-site/skills/change-colors/SKILL.md +24 -0
- package/kits/marketing-site/skills/conversion-copy/SKILL.md +152 -0
- package/kits/marketing-site/skills/export-deploy/SKILL.md +24 -0
- package/kits/marketing-site/skills/kit-expertise/SKILL.md +77 -0
- package/kits/marketing-site/skills/landing-page/SKILL.md +156 -0
- package/kits/match-3-puzzle/kit.json +245 -0
- package/kits/match-3-puzzle/skills/kit-expertise/SKILL.md +96 -0
- package/kits/mind-map/kit.json +355 -0
- package/kits/mind-map/skills/add-branch/SKILL.md +40 -0
- package/kits/mind-map/skills/brainstorm-topic/SKILL.md +41 -0
- package/kits/mind-map/skills/branch-expansion/SKILL.md +181 -0
- package/kits/mind-map/skills/find-connections/SKILL.md +34 -0
- package/kits/mind-map/skills/kit-expertise/SKILL.md +78 -0
- package/kits/mind-map/skills/organize-map/SKILL.md +35 -0
- package/kits/mind-map/skills/radiant-thinking/SKILL.md +184 -0
- package/kits/mind-map/skills/summarize-map/SKILL.md +34 -0
- package/kits/music-collection/kit.json +403 -0
- package/kits/music-collection/skills/add-album/SKILL.md +44 -0
- package/kits/music-collection/skills/create-playlist/SKILL.md +37 -0
- package/kits/music-collection/skills/explore-artist/SKILL.md +37 -0
- package/kits/music-collection/skills/journal-session/SKILL.md +40 -0
- package/kits/music-collection/skills/kit-expertise/SKILL.md +98 -0
- package/kits/music-collection/skills/music-metadata/SKILL.md +209 -0
- package/kits/music-collection/skills/playlist-curator/SKILL.md +182 -0
- package/kits/music-collection/skills/recommend-similar/SKILL.md +36 -0
- package/kits/music-venue/kit.json +986 -0
- package/kits/novel-writing-system/kit.json +481 -0
- package/kits/novel-writing-system/skills/character-arc/SKILL.md +164 -0
- package/kits/novel-writing-system/skills/develop-character-arc/SKILL.md +42 -0
- package/kits/novel-writing-system/skills/kit-expertise/SKILL.md +84 -0
- package/kits/novel-writing-system/skills/outline-review/SKILL.md +34 -0
- package/kits/novel-writing-system/skills/plot-doctor/SKILL.md +221 -0
- package/kits/novel-writing-system/skills/plot-hole-check/SKILL.md +35 -0
- package/kits/novel-writing-system/skills/scene-development/SKILL.md +38 -0
- package/kits/novel-writing-system/skills/scene-sequel/SKILL.md +162 -0
- package/kits/novel-writing-system/skills/worldbuilding-session/SKILL.md +40 -0
- package/kits/organization-chart/kit.json +349 -0
- package/kits/organization-chart/skills/add-role/SKILL.md +41 -0
- package/kits/organization-chart/skills/analyze-span/SKILL.md +34 -0
- package/kits/organization-chart/skills/create-raci/SKILL.md +42 -0
- package/kits/organization-chart/skills/kit-expertise/SKILL.md +78 -0
- package/kits/organization-chart/skills/org-design/SKILL.md +188 -0
- package/kits/organization-chart/skills/org-health-check/SKILL.md +35 -0
- package/kits/organization-chart/skills/plan-reorg/SKILL.md +42 -0
- package/kits/organization-chart/skills/role-definition/SKILL.md +180 -0
- package/kits/paws-and-pour/kit.json +969 -0
- package/kits/paws-and-pour/skills/adoption-report/SKILL.md +273 -0
- package/kits/paws-and-pour/skills/animal-profile/SKILL.md +206 -0
- package/kits/paws-and-pour/skills/blog-draft/SKILL.md +137 -0
- package/kits/paws-and-pour/skills/booking-digest/SKILL.md +251 -0
- package/kits/paws-and-pour/skills/cafe-expertise/SKILL.md +218 -0
- package/kits/paws-and-pour/skills/cafe-memory/SKILL.md +114 -0
- package/kits/paws-and-pour/skills/customer-insights/SKILL.md +216 -0
- package/kits/paws-and-pour/skills/demand-forecast/SKILL.md +200 -0
- package/kits/paws-and-pour/skills/email-campaign/SKILL.md +154 -0
- package/kits/paws-and-pour/skills/experience-copy/SKILL.md +139 -0
- package/kits/paws-and-pour/skills/guest-letter/SKILL.md +183 -0
- package/kits/paws-and-pour/skills/inventory-health/SKILL.md +213 -0
- package/kits/paws-and-pour/skills/revenue-report/SKILL.md +273 -0
- package/kits/paws-and-pour/skills/social-calendar/SKILL.md +183 -0
- package/kits/paws-and-pour/skills/staff-briefing/SKILL.md +223 -0
- package/kits/paws-and-pour/skills/venue-data-model/SKILL.md +260 -0
- package/kits/persona-driven-strategy/kit.json +352 -0
- package/kits/persona-driven-strategy/skills/empathy-mapping/SKILL.md +221 -0
- package/kits/persona-driven-strategy/skills/journey-mapping/SKILL.md +219 -0
- package/kits/persona-driven-strategy/skills/kit-expertise/SKILL.md +81 -0
- package/kits/persona-driven-strategy/skills/persona-development/SKILL.md +189 -0
- package/kits/personal-crm/kit.json +373 -0
- package/kits/personal-crm/skills/add-contact/SKILL.md +42 -0
- package/kits/personal-crm/skills/connect-contacts/SKILL.md +41 -0
- package/kits/personal-crm/skills/find-dormant/SKILL.md +35 -0
- package/kits/personal-crm/skills/kit-expertise/SKILL.md +82 -0
- package/kits/personal-crm/skills/log-interaction/SKILL.md +43 -0
- package/kits/personal-crm/skills/network-analysis/SKILL.md +161 -0
- package/kits/personal-crm/skills/relationship-insights/SKILL.md +153 -0
- package/kits/personal-wiki/kit.json +322 -0
- package/kits/personal-wiki/skills/kit-expertise/SKILL.md +81 -0
- package/kits/personal-wiki/skills/orphan-finder/SKILL.md +155 -0
- package/kits/personal-wiki/skills/wiki-structure/SKILL.md +179 -0
- package/kits/petal-press/kit.json +996 -0
- package/kits/petal-press/skills/arrangement-memory/SKILL.md +143 -0
- package/kits/petal-press/skills/blog-draft/SKILL.md +167 -0
- package/kits/petal-press/skills/booking-digest/SKILL.md +196 -0
- package/kits/petal-press/skills/care-card/SKILL.md +173 -0
- package/kits/petal-press/skills/customer-insights/SKILL.md +213 -0
- package/kits/petal-press/skills/demand-forecast/SKILL.md +203 -0
- package/kits/petal-press/skills/email-campaign/SKILL.md +204 -0
- package/kits/petal-press/skills/experience-copy/SKILL.md +184 -0
- package/kits/petal-press/skills/floral-expertise/SKILL.md +244 -0
- package/kits/petal-press/skills/guest-letter/SKILL.md +153 -0
- package/kits/petal-press/skills/inventory-health/SKILL.md +201 -0
- package/kits/petal-press/skills/revenue-report/SKILL.md +219 -0
- package/kits/petal-press/skills/seasonal-guide/SKILL.md +238 -0
- package/kits/petal-press/skills/social-calendar/SKILL.md +217 -0
- package/kits/petal-press/skills/staff-briefing/SKILL.md +217 -0
- package/kits/petal-press/skills/venue-data-model/SKILL.md +226 -0
- package/kits/pitch-deck/kit.json +416 -0
- package/kits/pitch-deck/skills/calculate-market-size/SKILL.md +41 -0
- package/kits/pitch-deck/skills/develop-problem-slide/SKILL.md +39 -0
- package/kits/pitch-deck/skills/investor-qa/SKILL.md +182 -0
- package/kits/pitch-deck/skills/investor-qa-prep/SKILL.md +36 -0
- package/kits/pitch-deck/skills/kit-expertise/SKILL.md +112 -0
- package/kits/pitch-deck/skills/pitch-structure/SKILL.md +186 -0
- package/kits/pitch-deck/skills/practice-pitch/SKILL.md +36 -0
- package/kits/podcast-series/kit.json +324 -0
- package/kits/podcast-series/skills/audience-growth/SKILL.md +38 -0
- package/kits/podcast-series/skills/create-guest-profile/SKILL.md +42 -0
- package/kits/podcast-series/skills/episode-structure/SKILL.md +189 -0
- package/kits/podcast-series/skills/guest-research/SKILL.md +167 -0
- package/kits/podcast-series/skills/kit-expertise/SKILL.md +81 -0
- package/kits/podcast-series/skills/plan-episode/SKILL.md +44 -0
- package/kits/podcast-series/skills/prepare-guest/SKILL.md +45 -0
- package/kits/podcast-series/skills/show-notes/SKILL.md +182 -0
- package/kits/podcast-series/skills/write-show-notes/SKILL.md +43 -0
- package/kits/pour-house/kit.json +912 -0
- package/kits/pour-house/skills/blog-draft/SKILL.md +138 -0
- package/kits/pour-house/skills/booking-digest/SKILL.md +151 -0
- package/kits/pour-house/skills/cellar-report/SKILL.md +251 -0
- package/kits/pour-house/skills/customer-insights/SKILL.md +184 -0
- package/kits/pour-house/skills/demand-forecast/SKILL.md +156 -0
- package/kits/pour-house/skills/email-campaign/SKILL.md +130 -0
- package/kits/pour-house/skills/experience-copy/SKILL.md +125 -0
- package/kits/pour-house/skills/guest-letter/SKILL.md +136 -0
- package/kits/pour-house/skills/inventory-health/SKILL.md +159 -0
- package/kits/pour-house/skills/pour-memory/SKILL.md +89 -0
- package/kits/pour-house/skills/revenue-report/SKILL.md +232 -0
- package/kits/pour-house/skills/social-calendar/SKILL.md +140 -0
- package/kits/pour-house/skills/sommelier-expertise/SKILL.md +324 -0
- package/kits/pour-house/skills/staff-briefing/SKILL.md +176 -0
- package/kits/pour-house/skills/tasting-notes/SKILL.md +179 -0
- package/kits/pour-house/skills/venue-data-model/SKILL.md +323 -0
- package/kits/presentation/kit.json +296 -0
- package/kits/product-requirements-doc/kit.json +365 -0
- package/kits/product-requirements-doc/skills/acceptance-criteria/SKILL.md +219 -0
- package/kits/product-requirements-doc/skills/create-user-story/SKILL.md +43 -0
- package/kits/product-requirements-doc/skills/define-success-metrics/SKILL.md +41 -0
- package/kits/product-requirements-doc/skills/kit-expertise/SKILL.md +81 -0
- package/kits/product-requirements-doc/skills/prd-review/SKILL.md +39 -0
- package/kits/product-requirements-doc/skills/prd-structure/SKILL.md +206 -0
- package/kits/product-requirements-doc/skills/prioritize-features/SKILL.md +43 -0
- package/kits/product-requirements-doc/skills/synthesize-research/SKILL.md +43 -0
- package/kits/product-requirements-doc/skills/user-stories/SKILL.md +198 -0
- package/kits/project-timeline/kit.json +367 -0
- package/kits/project-timeline/skills/add-milestone/SKILL.md +44 -0
- package/kits/project-timeline/skills/add-task/SKILL.md +43 -0
- package/kits/project-timeline/skills/assess-risks/SKILL.md +39 -0
- package/kits/project-timeline/skills/dependency-analysis/SKILL.md +176 -0
- package/kits/project-timeline/skills/identify-critical-path/SKILL.md +37 -0
- package/kits/project-timeline/skills/kit-expertise/SKILL.md +81 -0
- package/kits/project-timeline/skills/milestone-planning/SKILL.md +169 -0
- package/kits/project-timeline/skills/status-update/SKILL.md +39 -0
- package/kits/reading-tracker/kit.json +368 -0
- package/kits/reading-tracker/skills/add-book/SKILL.md +32 -0
- package/kits/reading-tracker/skills/book-connections/SKILL.md +161 -0
- package/kits/reading-tracker/skills/kit-expertise/SKILL.md +72 -0
- package/kits/reading-tracker/skills/log-progress/SKILL.md +29 -0
- package/kits/reading-tracker/skills/reading-insights/SKILL.md +179 -0
- package/kits/reading-tracker/skills/save-quote/SKILL.md +30 -0
- package/kits/recipe-manager/kit.json +376 -0
- package/kits/recipe-manager/skills/add-recipe/SKILL.md +33 -0
- package/kits/recipe-manager/skills/generate-shopping-list/SKILL.md +27 -0
- package/kits/recipe-manager/skills/ingredient-substitutions/SKILL.md +157 -0
- package/kits/recipe-manager/skills/kit-expertise/SKILL.md +72 -0
- package/kits/recipe-manager/skills/meal-planning/SKILL.md +184 -0
- package/kits/recipe-manager/skills/plan-meal/SKILL.md +31 -0
- package/kits/recipe-manager/skills/scaling-recipes/SKILL.md +183 -0
- package/kits/saas-app/kit.json +405 -0
- package/kits/saas-app/skills/churn-analysis/SKILL.md +219 -0
- package/kits/saas-app/skills/onboarding-flow/SKILL.md +217 -0
- package/kits/saas-app/skills/pricing-model/SKILL.md +192 -0
- package/kits/saas-app/skills/saas-expertise/SKILL.md +95 -0
- package/kits/salon-barbershop/kit.json +1021 -0
- package/kits/screenplay-writing/kit.json +412 -0
- package/kits/screenplay-writing/skills/analyze-scene/SKILL.md +42 -0
- package/kits/screenplay-writing/skills/beat-sheet/SKILL.md +134 -0
- package/kits/screenplay-writing/skills/create-scene-card/SKILL.md +46 -0
- package/kits/screenplay-writing/skills/develop-character/SKILL.md +43 -0
- package/kits/screenplay-writing/skills/generate-beat-sheet/SKILL.md +49 -0
- package/kits/screenplay-writing/skills/kit-expertise/SKILL.md +90 -0
- package/kits/screenplay-writing/skills/scene-analysis/SKILL.md +164 -0
- package/kits/screenplay-writing/skills/screenplay-format/SKILL.md +108 -0
- package/kits/social-media-manager/kit.json +476 -0
- package/kits/teacher-lesson-plan/kit.json +410 -0
- package/kits/teacher-lesson-plan/skills/assessment-design/SKILL.md +162 -0
- package/kits/teacher-lesson-plan/skills/blooms-taxonomy/SKILL.md +139 -0
- package/kits/teacher-lesson-plan/skills/create-lesson/SKILL.md +34 -0
- package/kits/teacher-lesson-plan/skills/design-unit/SKILL.md +28 -0
- package/kits/teacher-lesson-plan/skills/differentiate-lesson/SKILL.md +28 -0
- package/kits/teacher-lesson-plan/skills/differentiation/SKILL.md +180 -0
- package/kits/teacher-lesson-plan/skills/kit-expertise/SKILL.md +96 -0
- package/kits/teacher-lesson-plan/skills/schedule-lesson/SKILL.md +31 -0
- package/kits/technical-specification/kit.json +369 -0
- package/kits/technical-specification/skills/architecture-decision/SKILL.md +42 -0
- package/kits/technical-specification/skills/architecture-decisions/SKILL.md +180 -0
- package/kits/technical-specification/skills/data-model-design/SKILL.md +43 -0
- package/kits/technical-specification/skills/data-modeling/SKILL.md +159 -0
- package/kits/technical-specification/skills/define-component/SKILL.md +43 -0
- package/kits/technical-specification/skills/kit-expertise/SKILL.md +81 -0
- package/kits/technical-specification/skills/requirements-analysis/SKILL.md +42 -0
- package/kits/technical-specification/skills/security-review/SKILL.md +170 -0
- package/kits/technical-specification/skills/spec-review/SKILL.md +39 -0
- package/kits/wanderlands/kit.json +399 -0
- package/kits/wanderlands/skills/kit-expertise/SKILL.md +376 -0
- package/kits/web-application/kit.json +257 -0
- package/kits/web-application/skills/kit-expertise/SKILL.md +211 -0
- package/kits/wicks-and-whiskers/kit.json +1267 -0
- package/kits/wicks-and-whiskers/skills/blog-draft/SKILL.md +145 -0
- package/kits/wicks-and-whiskers/skills/booking-digest/SKILL.md +142 -0
- package/kits/wicks-and-whiskers/skills/candle-expertise/SKILL.md +69 -0
- package/kits/wicks-and-whiskers/skills/customer-insights/SKILL.md +176 -0
- package/kits/wicks-and-whiskers/skills/demand-forecast/SKILL.md +159 -0
- package/kits/wicks-and-whiskers/skills/email-campaign/SKILL.md +131 -0
- package/kits/wicks-and-whiskers/skills/experience-copy/SKILL.md +135 -0
- package/kits/wicks-and-whiskers/skills/guest-letter/SKILL.md +154 -0
- package/kits/wicks-and-whiskers/skills/inventory-health/SKILL.md +185 -0
- package/kits/wicks-and-whiskers/skills/kitten-profile/SKILL.md +159 -0
- package/kits/wicks-and-whiskers/skills/memory-narrative/SKILL.md +71 -0
- package/kits/wicks-and-whiskers/skills/revenue-report/SKILL.md +197 -0
- package/kits/wicks-and-whiskers/skills/social-calendar/SKILL.md +161 -0
- package/kits/wicks-and-whiskers/skills/staff-briefing/SKILL.md +174 -0
- package/kits/wicks-and-whiskers/skills/venue-data-model/SKILL.md +228 -0
- package/kits/world-building/kit.json +497 -0
- package/kits/world-building/skills/consistency-check/SKILL.md +179 -0
- package/kits/world-building/skills/create-character/SKILL.md +44 -0
- package/kits/world-building/skills/create-faction/SKILL.md +44 -0
- package/kits/world-building/skills/create-location/SKILL.md +44 -0
- package/kits/world-building/skills/create-timeline/SKILL.md +39 -0
- package/kits/world-building/skills/culture-builder/SKILL.md +171 -0
- package/kits/world-building/skills/design-magic-system/SKILL.md +38 -0
- package/kits/world-building/skills/kit-expertise/SKILL.md +110 -0
- package/kits/world-building/skills/magic-systems/SKILL.md +161 -0
- package/kits/youtube-content-plan/kit.json +346 -0
- package/kits/youtube-content-plan/skills/analytics-insights/SKILL.md +166 -0
- package/kits/youtube-content-plan/skills/analyze-performance/SKILL.md +43 -0
- package/kits/youtube-content-plan/skills/develop-video-idea/SKILL.md +45 -0
- package/kits/youtube-content-plan/skills/generate-ideas/SKILL.md +42 -0
- package/kits/youtube-content-plan/skills/kit-expertise/SKILL.md +81 -0
- package/kits/youtube-content-plan/skills/optimize-metadata/SKILL.md +43 -0
- package/kits/youtube-content-plan/skills/script-writing/SKILL.md +180 -0
- package/kits/youtube-content-plan/skills/write-script/SKILL.md +44 -0
- package/kits/youtube-content-plan/skills/youtube-seo/SKILL.md +172 -0
- package/package.json +43 -0
- package/src/index.ts +35 -0
- package/src/kits/ai-content-studio.ts +377 -0
- package/src/kits/api-documentation.ts +352 -0
- package/src/kits/axe-house.ts +949 -0
- package/src/kits/blog-series.ts +357 -0
- package/src/kits/business-plan.ts +406 -0
- package/src/kits/canvas-and-corks.ts +928 -0
- package/src/kits/character-relationship-map.ts +368 -0
- package/src/kits/clay-and-co.ts +956 -0
- package/src/kits/concept-map.ts +354 -0
- package/src/kits/content-calendar.ts +399 -0
- package/src/kits/coworking-space.ts +1084 -0
- package/src/kits/escape-vault.ts +1046 -0
- package/src/kits/family-tree.ts +381 -0
- package/src/kits/farkle-dice-game.ts +318 -0
- package/src/kits/franchise-ops.ts +345 -0
- package/src/kits/freelance-portfolio.ts +453 -0
- package/src/kits/game-design-doc.ts +353 -0
- package/src/kits/gather-and-grill.ts +984 -0
- package/src/kits/gtd-productivity-system.ts +389 -0
- package/src/kits/gym-fitness.ts +1053 -0
- package/src/kits/index.ts +76 -0
- package/src/kits/interactive-fiction.ts +489 -0
- package/src/kits/invoice-generator.ts +484 -0
- package/src/kits/loyalty-program.ts +342 -0
- package/src/kits/marketing-plan.ts +398 -0
- package/src/kits/marketing-site.ts +248 -0
- package/src/kits/match-3-puzzle.ts +248 -0
- package/src/kits/mind-map.ts +356 -0
- package/src/kits/music-collection.ts +404 -0
- package/src/kits/music-venue.ts +1002 -0
- package/src/kits/novel-writing-system.ts +461 -0
- package/src/kits/organization-chart.ts +350 -0
- package/src/kits/paws-and-pour.ts +987 -0
- package/src/kits/persona-driven-strategy.ts +345 -0
- package/src/kits/personal-crm.ts +391 -0
- package/src/kits/personal-wiki.ts +323 -0
- package/src/kits/petal-press.ts +1014 -0
- package/src/kits/pitch-deck.ts +395 -0
- package/src/kits/podcast-series.ts +324 -0
- package/src/kits/pour-house.ts +930 -0
- package/src/kits/presentation.ts +276 -0
- package/src/kits/product-requirements-doc.ts +359 -0
- package/src/kits/project-timeline.ts +368 -0
- package/src/kits/reading-tracker.ts +368 -0
- package/src/kits/recipe-manager.ts +376 -0
- package/src/kits/saas-app.ts +423 -0
- package/src/kits/salon-barbershop.ts +1037 -0
- package/src/kits/screenplay-writing.ts +412 -0
- package/src/kits/social-media-manager.ts +494 -0
- package/src/kits/teacher-lesson-plan.ts +410 -0
- package/src/kits/technical-specification.ts +363 -0
- package/src/kits/wanderlands.ts +401 -0
- package/src/kits/web-application.ts +275 -0
- package/src/kits/wicks-and-whiskers.ts +1285 -0
- package/src/kits/world-building.ts +476 -0
- package/src/kits/youtube-content-plan.ts +339 -0
- package/src/registry.ts +60 -0
- package/src/skills/api-documentation/index.ts +47 -0
- package/src/skills/axe-house/index.ts +71 -0
- package/src/skills/blog-series/index.ts +43 -0
- package/src/skills/business-plan/index.ts +43 -0
- package/src/skills/canvas-and-corks/index.ts +75 -0
- package/src/skills/character-relationship-map/index.ts +23 -0
- package/src/skills/clay-and-co/index.ts +75 -0
- package/src/skills/concept-map/index.ts +43 -0
- package/src/skills/content-calendar/index.ts +43 -0
- package/src/skills/escape-vault/index.ts +75 -0
- package/src/skills/family-tree/index.ts +43 -0
- package/src/skills/farkle-dice-game/index.ts +15 -0
- package/src/skills/game-design-doc/index.ts +47 -0
- package/src/skills/gather-and-grill/index.ts +75 -0
- package/src/skills/gtd-productivity-system/index.ts +43 -0
- package/src/skills/index.ts +109 -0
- package/src/skills/marketing-plan/index.ts +43 -0
- package/src/skills/marketing-site/index.ts +39 -0
- package/src/skills/match-3-puzzle/index.ts +15 -0
- package/src/skills/mind-map/index.ts +43 -0
- package/src/skills/music-collection/index.ts +43 -0
- package/src/skills/novel-writing-system/index.ts +47 -0
- package/src/skills/organization-chart/index.ts +43 -0
- package/src/skills/paws-and-pour/index.ts +75 -0
- package/src/skills/persona-driven-strategy/index.ts +27 -0
- package/src/skills/personal-crm/index.ts +39 -0
- package/src/skills/personal-wiki/index.ts +23 -0
- package/src/skills/petal-press/index.ts +75 -0
- package/src/skills/pitch-deck/index.ts +39 -0
- package/src/skills/podcast-series/index.ts +47 -0
- package/src/skills/pour-house/index.ts +75 -0
- package/src/skills/product-requirements-doc/index.ts +47 -0
- package/src/skills/project-timeline/index.ts +43 -0
- package/src/skills/reading-tracker/index.ts +35 -0
- package/src/skills/recipe-manager/index.ts +39 -0
- package/src/skills/saas-app/index.ts +27 -0
- package/src/skills/screenplay-writing/index.ts +43 -0
- package/src/skills/teacher-lesson-plan/index.ts +43 -0
- package/src/skills/technical-specification/index.ts +47 -0
- package/src/skills/wanderlands/index.ts +15 -0
- package/src/skills/web-application/index.ts +15 -0
- package/src/skills/wicks-and-whiskers/index.ts +71 -0
- package/src/skills/world-building/index.ts +47 -0
- package/src/skills/youtube-content-plan/index.ts +47 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: blog-draft
|
|
3
|
+
name: Blog Post Drafter
|
|
4
|
+
description: Writes 600–1200 word SEO-optimized blog posts for The Escape Vault website, with a mysterious, clever, puzzle-forward voice across topics including escape room strategy guides, team dynamics, room highlights, corporate team building, seasonal content, and leaderboard stories.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Blog Post Drafter
|
|
12
|
+
|
|
13
|
+
You are the content writer for **{{businessName}}**, an escape room venue. You write blog posts that are intriguing from the first sentence — content that makes a potential guest think "I need to try this," and makes a returning guest think "I should book again." The voice is clever, a little mysterious, and always puzzle-forward.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "Write a blog post about…"
|
|
19
|
+
- "I need content about…"
|
|
20
|
+
- "Draft a post for our website"
|
|
21
|
+
- "Write something for the blog about [topic]"
|
|
22
|
+
|
|
23
|
+
If the topic is vague, ask one clarifying question: "Who's the target reader for this post — a first-timer, a returning guest, or a corporate event planner?" Then proceed.
|
|
24
|
+
|
|
25
|
+
## Blog Topic Categories
|
|
26
|
+
|
|
27
|
+
### Strategy and How-To
|
|
28
|
+
Educational content for players who want to get better.
|
|
29
|
+
- "How to Get Better at Escape Rooms (From Someone Who Watches You Try)"
|
|
30
|
+
- "The 5 Biggest Mistakes First-Time Escape Room Players Make"
|
|
31
|
+
- "Communication Is the Only Skill That Actually Matters in an Escape Room"
|
|
32
|
+
- "How to Read a Room: What to Look For in the First 5 Minutes"
|
|
33
|
+
- "Why Escape Rooms Are Harder With Smarter Teams (And What to Do About It)"
|
|
34
|
+
|
|
35
|
+
### The Science Behind It
|
|
36
|
+
Thoughtful, research-informed content that earns authority.
|
|
37
|
+
- "The Neuroscience of 'Aha': Why Solving Puzzles Feels So Good"
|
|
38
|
+
- "What Escape Rooms Reveal About Team Decision-Making Under Pressure"
|
|
39
|
+
- "Why Time Pressure Actually Makes You Smarter (Up to a Point)"
|
|
40
|
+
- "The Psychology of a Good Puzzle: Why Some Clues Feel Fair and Others Feel Cheap"
|
|
41
|
+
|
|
42
|
+
### Room Teasers and Highlights
|
|
43
|
+
Atmosphere-building content that creates FOMO without spoilers.
|
|
44
|
+
- "What to Expect in [Room Name]: A Spoiler-Free Preview"
|
|
45
|
+
- "The Room That Has the Lowest Escape Rate in {{city}} — And Why Teams Keep Booking It"
|
|
46
|
+
- "Behind the Design: What Goes Into Building an Escape Room That Earns Its Reputation"
|
|
47
|
+
- "Three Things Our Advanced Room Will Teach You About Your Team"
|
|
48
|
+
|
|
49
|
+
### Local and SEO
|
|
50
|
+
High-value content targeting local search intent.
|
|
51
|
+
- "Best Team Building Activities in {{city}} for 2026"
|
|
52
|
+
- "The Best Date Night in {{city}} That You're Probably Not Doing"
|
|
53
|
+
- "Why Your {{city}} Company Retreat Should Include an Escape Room"
|
|
54
|
+
- "Things to Do in {{city}} This Weekend: A Guide for People Who Are Tired of the Usual Options"
|
|
55
|
+
- "Bachelorette Party Ideas in {{city}}: Beyond the Bar Crawl"
|
|
56
|
+
|
|
57
|
+
### Leaderboard and Community
|
|
58
|
+
Stories from real sessions that build social proof and community identity.
|
|
59
|
+
- "This Month's Fastest Escape: A Team That Almost Didn't Make It"
|
|
60
|
+
- "The Record No One Has Broken in Six Months — and the Team That Came Closest"
|
|
61
|
+
- "What Happens When a Team of Strangers Beats Our Hardest Room"
|
|
62
|
+
|
|
63
|
+
### Seasonal
|
|
64
|
+
Time-sensitive content aligned with holidays and cultural moments.
|
|
65
|
+
- Halloween: "Our Most Atmospheric Room Is Even Better in October"
|
|
66
|
+
- Valentine's Day: "Why a Locked Room Is the Most Romantic Date in {{city}}"
|
|
67
|
+
- New Year: "What Kind of Team Are You in 2026? Take the Challenge"
|
|
68
|
+
- Corporate Q4: "Your Team's Best Year-End Event Doesn't Require a Banquet Room"
|
|
69
|
+
- Summer: "Beat the Heat in {{city}}: 60 Minutes You Won't Spend Outside"
|
|
70
|
+
|
|
71
|
+
### Corporate and Team Building
|
|
72
|
+
B2B-targeted content for event planners, HR managers, and team leads.
|
|
73
|
+
- "What Escape Rooms Actually Reveal About Your Team (It's Not What You Think)"
|
|
74
|
+
- "How to Plan a Corporate Team Building Event in {{city}} That People Actually Want to Attend"
|
|
75
|
+
- "Skip the Ropes Course: Why Escape Rooms Are the Best Team Building Activity for Knowledge Workers"
|
|
76
|
+
- "The Debrief Is the Point: What We Learn From Watching Your Team Under Pressure"
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## SEO Structure Requirements
|
|
81
|
+
|
|
82
|
+
### Primary keyword placement
|
|
83
|
+
The primary keyword (e.g., "escape room {{city}}", "team building {{city}}") must appear:
|
|
84
|
+
1. Naturally in the H1 headline
|
|
85
|
+
2. In the first 100 words of the body
|
|
86
|
+
3. In at least one H2 subheading
|
|
87
|
+
|
|
88
|
+
### Secondary keywords
|
|
89
|
+
Weave in naturally (1–2 uses each, never forced):
|
|
90
|
+
- "escape room {{city}}"
|
|
91
|
+
- "things to do in {{city}}"
|
|
92
|
+
- "team building activities {{city}}"
|
|
93
|
+
- "{{city}} date night"
|
|
94
|
+
- "puzzle room {{city}}"
|
|
95
|
+
|
|
96
|
+
### Meta description
|
|
97
|
+
Always include a 150–160 character meta description at the end of your output, formatted as:
|
|
98
|
+
> **Meta**: [description text]
|
|
99
|
+
|
|
100
|
+
### Internal link opportunities
|
|
101
|
+
Note 1–2 places in the post where a link to the booking page, room description, or another blog post would be natural. Mark with `[LINK: /rooms]` or `[LINK: /book]`.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Standard Post Structure
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
H1: [Primary keyword-informed headline — intriguing, specific, not clickbait]
|
|
109
|
+
|
|
110
|
+
[Introduction — 2 paragraphs]
|
|
111
|
+
- Hook: Start with a specific scene, question, or surprising insight
|
|
112
|
+
- Bridge: Connect to the reader's situation and what they'll discover
|
|
113
|
+
- No "In this article we'll explore..." — just start
|
|
114
|
+
|
|
115
|
+
H2: [Section 1 — most compelling point or insight]
|
|
116
|
+
[2–4 paragraphs]
|
|
117
|
+
|
|
118
|
+
H2: [Section 2]
|
|
119
|
+
[2–4 paragraphs]
|
|
120
|
+
|
|
121
|
+
H2: [Section 3]
|
|
122
|
+
[2–4 paragraphs]
|
|
123
|
+
|
|
124
|
+
[Optional H2: Section 4 for longer posts]
|
|
125
|
+
|
|
126
|
+
[Conclusion — 1–2 paragraphs]
|
|
127
|
+
- Restate the key insight without repeating the intro
|
|
128
|
+
- CTA: Specific call to book, explore the rooms, or view the schedule
|
|
129
|
+
|
|
130
|
+
Meta: [150–160 chars]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Word Count
|
|
134
|
+
|
|
135
|
+
- **Minimum**: 600 words
|
|
136
|
+
- **Target**: 800–1000 words for most posts
|
|
137
|
+
- **Maximum**: 1200 words
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Voice and Tone
|
|
142
|
+
|
|
143
|
+
**Mysterious, clever, inviting.** This is the most important rule. Every post should feel like a puzzle itself — intriguing from the first line, with each paragraph revealing something that makes the reader want to keep going. The experience you're writing about is intellectually demanding and genuinely fun. The writing should match.
|
|
144
|
+
|
|
145
|
+
**Never condescending.** Escape rooms attract smart people. Write for readers who are curious and capable, not readers who need to be convinced that puzzles are fun. Assume they already get it — you're just adding the detail that tips them over into booking.
|
|
146
|
+
|
|
147
|
+
**Specific, not vague.** Every post must include at least one concrete detail that makes it clearly about The Escape Vault — not interchangeable with any other escape room. Reference the feeling of a lock clicking open, the moment when a team realizes they've been looking at the same clue for ten minutes, the post-escape energy of a debrief.
|
|
148
|
+
|
|
149
|
+
**Conversational, not corporate.** Write like a Game Master who's seen thousands of teams and knows exactly what makes the experience great — and what makes teams fail — not like a press release.
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Output Format
|
|
154
|
+
|
|
155
|
+
Provide the full blog post with proper markdown headings, no frontmatter (the CMS handles that). End with the meta description on its own labeled line.
|
|
156
|
+
|
|
157
|
+
If the user has given you a specific room name, team story, or session detail as input, weave those specifics in. The more specific the input, the more specific — and more compelling — the output.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: booking-digest
|
|
3
|
+
name: Booking Digest
|
|
4
|
+
description: Generates a structured booking summary for the escape room venue, breaking down sessions by room and period with party size distribution, completion rates, corporate vs. consumer mix, and revenue per booking type.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Booking Digest
|
|
12
|
+
|
|
13
|
+
You generate a clear, management-grade booking summary for **{{locationName}}**. The digest helps owners and managers understand session volume, room utilization, guest mix, and revenue performance across a chosen period.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "How are bookings this week / month?"
|
|
19
|
+
- "Booking summary"
|
|
20
|
+
- "What's our room utilization?"
|
|
21
|
+
- "How many sessions did we run?"
|
|
22
|
+
- "Show me the booking breakdown"
|
|
23
|
+
- Any question about booking volume, room performance, or session mix
|
|
24
|
+
|
|
25
|
+
## Default Period
|
|
26
|
+
|
|
27
|
+
If no period is specified, default to the **current calendar week** (Monday–Sunday). Accept natural language: "last week", "this month", "last 30 days", "Q1", or explicit date ranges.
|
|
28
|
+
|
|
29
|
+
## Aggregates to Define and Query
|
|
30
|
+
|
|
31
|
+
### Bookings by room and day
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
brain.defineAggregate('bookingsByRoomDay', {
|
|
35
|
+
source: {
|
|
36
|
+
type: 'Event',
|
|
37
|
+
where: [
|
|
38
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
39
|
+
{ field: 'metadata.status', value: 'confirmed' }
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
groupBy: [
|
|
43
|
+
{ field: 'metadata.experienceSlug' },
|
|
44
|
+
{ field: 'metadata.date', window: 'day' }
|
|
45
|
+
],
|
|
46
|
+
metrics: {
|
|
47
|
+
sessionCount: { op: 'COUNT' },
|
|
48
|
+
totalGuests: { op: 'SUM', field: 'metadata.guestCount' },
|
|
49
|
+
avgPartySize: { op: 'AVG', field: 'metadata.guestCount' },
|
|
50
|
+
maxPartySize: { op: 'MAX', field: 'metadata.guestCount' },
|
|
51
|
+
totalRevenue: { op: 'SUM', field: 'metadata.totalInCents' },
|
|
52
|
+
avgTicket: { op: 'AVG', field: 'metadata.totalInCents' }
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Guest count distribution
|
|
58
|
+
|
|
59
|
+
Load individual bookings for the period and compute party size distribution client-side (2-person, 3–4, 5–6, 7–8, 9+). This reveals whether the venue is running mostly couples, small groups, or large groups — which directly affects per-room revenue.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Report Structure
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### Booking Digest — {{locationName}}
|
|
68
|
+
**Period**: [period label]
|
|
69
|
+
**Generated**: [today's date]
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### 1. Period Summary
|
|
74
|
+
|
|
75
|
+
| Metric | Value |
|
|
76
|
+
|---|---|
|
|
77
|
+
| Total Sessions | [count] |
|
|
78
|
+
| Total Guests | [sum of guestCount] |
|
|
79
|
+
| Average Party Size | [avg] |
|
|
80
|
+
| Total Revenue | $[totalRevenue ÷ 100] |
|
|
81
|
+
| Avg Revenue per Session | $[avgRevenue ÷ 100] |
|
|
82
|
+
| Rooms in Rotation | [count of distinct experienceSlugs with bookings] |
|
|
83
|
+
| Cancellations | [count of cancelled bookings in period] |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### 2. By Room
|
|
88
|
+
|
|
89
|
+
| Room | Sessions | Guests | Revenue | Avg Party Size | Avg Rev/Session |
|
|
90
|
+
|---|---|---|---|---|---|
|
|
91
|
+
| [room name] | [count] | [guests] | $[rev] | [avg] | $[avg rev] |
|
|
92
|
+
|
|
93
|
+
Sort by revenue descending. Include a "% of total sessions" column if more than 2 rooms have bookings.
|
|
94
|
+
|
|
95
|
+
**Room utilization notes**: Flag any room with zero sessions in the period — it may indicate a scheduling gap, a room taken offline for maintenance, or a pricing/positioning issue.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### 3. Busiest Rooms and Times
|
|
100
|
+
|
|
101
|
+
List the top 3 most-booked day+room combinations in the period:
|
|
102
|
+
|
|
103
|
+
| # | Day | Room | Sessions | Guests |
|
|
104
|
+
|---|---|---|---|---|
|
|
105
|
+
| 1 | [day] | [room] | [N] | [N] |
|
|
106
|
+
|
|
107
|
+
If the period spans multiple weeks, aggregate by day-of-week rather than specific date for meaningful pattern detection.
|
|
108
|
+
|
|
109
|
+
**Peak window**: Identify the single busiest time block (day + hour combination) across all rooms. Note if this aligns with the expected Friday/Saturday evening peak or represents an anomaly worth investigating.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### 4. Party Size Distribution
|
|
114
|
+
|
|
115
|
+
| Party Size | Bookings | % of Total | Avg Revenue/Booking |
|
|
116
|
+
|---|---|---|---|
|
|
117
|
+
| 2 guests | [N] | [%] | $[avg] |
|
|
118
|
+
| 3–4 guests | [N] | [%] | $[avg] |
|
|
119
|
+
| 5–6 guests | [N] | [%] | $[avg] |
|
|
120
|
+
| 7–8 guests | [N] | [%] | $[avg] |
|
|
121
|
+
| 9+ guests | [N] | [%] | $[avg] |
|
|
122
|
+
|
|
123
|
+
**Insight**: Identify the most common party size and the highest-revenue party size. If the most common size (e.g., 2-person) is significantly lower revenue than a larger size (e.g., 5–6 guests), this may indicate an opportunity to shift marketing toward group bookings or promote private booking packages.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### 5. Corporate vs. Consumer Mix
|
|
128
|
+
|
|
129
|
+
Identify corporate bookings by `experienceSlug = 'corporate-team-build'` or by the presence of `companyName` in session attributes:
|
|
130
|
+
|
|
131
|
+
| Booking Type | Sessions | Guests | Revenue | % of Revenue |
|
|
132
|
+
|---|---|---|---|---|
|
|
133
|
+
| Corporate Team Build | [N] | [N] | $[rev] | [%] |
|
|
134
|
+
| Private Booking | [N] | [N] | $[rev] | [%] |
|
|
135
|
+
| Standard Room (public) | [N] | [N] | $[rev] | [%] |
|
|
136
|
+
| Advanced Room (public) | [N] | [N] | $[rev] | [%] |
|
|
137
|
+
| Family Room | [N] | [N] | $[rev] | [%] |
|
|
138
|
+
|
|
139
|
+
**Corporate concentration note**: If corporate bookings represent more than 30% of revenue, flag this as a concentration risk — losing one or two corporate accounts could materially impact revenue. Also flag if corporate bookings are zero — weekday capacity is likely being underutilized.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### 6. Key Observations
|
|
144
|
+
|
|
145
|
+
Provide 2–3 data-backed observations drawn from the period. Always check for:
|
|
146
|
+
|
|
147
|
+
- **Weekend vs. weekday split**: What percentage of sessions occurred Friday–Sunday vs. Monday–Thursday? Escape rooms typically run 60–70% of volume on weekends. Anything below 50% may indicate the venue is capturing corporate weekday volume well; anything above 80% signals reliance on weekend demand with underutilized weekday capacity.
|
|
148
|
+
- **Completion rate signal**: If session attributes are logged, calculate the percentage of completed bookings where `escaped = "Yes! Escaped"`. Flag if a specific room shows an unusually high or low escape rate compared to its target.
|
|
149
|
+
- **Private booking uptake**: Private bookings at $350 flat should be compared to the per-person revenue they'd generate if sold as individual tickets. If private bookings are consistently underfilling (2–3 guests paying $350 for a room that holds 8), the pricing may be attracting the wrong buyer profile.
|
|
150
|
+
|
|
151
|
+
Format each observation as a short paragraph with a clear headline.
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: customer-insights
|
|
3
|
+
name: Customer Insights
|
|
4
|
+
description: Segments escape room guests by visit behavior, completion history, and group size using neural clustering, identifies VIPs and churn-risk accounts, tracks corporate client value, measures first-timer-to-repeat conversion rate, and surfaces actionable retention recommendations.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Customer Insights
|
|
12
|
+
|
|
13
|
+
You analyze the customer base at **{{locationName}}** to identify behavioral segments, surface VIP guests, flag churn risk, track corporate client value, and measure first-timer conversion. The goal is an honest, specific picture of who the guests are and what actions will grow loyalty.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "Who are our best customers?"
|
|
19
|
+
- "Who haven't we seen in a while?"
|
|
20
|
+
- "Customer breakdown / segments"
|
|
21
|
+
- "Loyalty analysis"
|
|
22
|
+
- "Churn risk"
|
|
23
|
+
- "How many new customers this month?"
|
|
24
|
+
- "Which companies book with us regularly?"
|
|
25
|
+
- Any question about guest behavior, retention, or customer lifetime value
|
|
26
|
+
|
|
27
|
+
## Data to Pull
|
|
28
|
+
|
|
29
|
+
### Step 1 — Customer aggregate
|
|
30
|
+
|
|
31
|
+
Query all `Person` entities with `metadata.entityType = 'customer'` for the location. Key fields:
|
|
32
|
+
- `metadata.totalBookings` — lifetime visit count
|
|
33
|
+
- `metadata.totalSpentInCents` — lifetime spend
|
|
34
|
+
- `metadata.loyaltyTier` — current tier
|
|
35
|
+
- `metadata.email` — for identification (never display full email in output; use first name + last initial)
|
|
36
|
+
- `metadata.displayName`
|
|
37
|
+
|
|
38
|
+
Also check for associated `loyalty-account` entities for `metadata.pointsBalance`.
|
|
39
|
+
|
|
40
|
+
### Step 2 — Neural clustering
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
const segments = await brain.neural().clusters({
|
|
44
|
+
numClusters: 5,
|
|
45
|
+
entityType: 'Person'
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Use the cluster assignment to group customers. Map each cluster to a named segment based on centroid characteristics (see Segment Labels below).
|
|
50
|
+
|
|
51
|
+
### Step 3 — Outlier detection
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
const outliers = await brain.neural().outliers({
|
|
55
|
+
threshold: 2.0,
|
|
56
|
+
method: 'zscore',
|
|
57
|
+
entityType: 'Person'
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Outliers with high `totalSpentInCents` or `totalBookings` = VIP candidates.
|
|
62
|
+
Outliers that were previously high-value but have low recency = churn risk candidates.
|
|
63
|
+
|
|
64
|
+
### Step 4 — New customer trend
|
|
65
|
+
|
|
66
|
+
Query bookings grouped by month to count first-time guest visits. A guest is "new" if this is their first booking at the location (`totalBookings = 1` at the time of booking).
|
|
67
|
+
|
|
68
|
+
### Step 5 — Corporate client identification
|
|
69
|
+
|
|
70
|
+
From bookings where `experienceSlug = 'corporate-team-build'`, extract `data.sessionAttributes.companyName`. Group by company name to identify recurring corporate clients and their total spend.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Segment Labels
|
|
75
|
+
|
|
76
|
+
Map the five neural clusters to these canonical segment labels based on each cluster's dominant characteristics:
|
|
77
|
+
|
|
78
|
+
| Segment | Defining Traits | Recommended Action |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| **Serial Escapers** | Multiple completed rooms, return frequently, high completion rate, chasing new rooms | VIP early access to new rooms before public launch; invite to leaderboard events; offer "room completionist" recognition |
|
|
81
|
+
| **Celebration Groups** | High guestCount, 1–2 visits per year, bookings cluster around weekend evenings, often Private Booking | Target with birthday month and anniversary promotions; they're natural group organizers who will refer |
|
|
82
|
+
| **Corporate Clients** | Weekday bookings, Corporate Team Build experience, `companyName` present, high per-booking value | Personalized B2B re-engagement; invoice-friendly booking; priority scheduling for repeat accounts |
|
|
83
|
+
| **Family Fun** | Family Room bookings, mixed age groups, school break and weekend clustering, repeat seasonally | Promote new room openings with family-friendly framing; loyalty program milestone rewards for kids |
|
|
84
|
+
| **First-Timers** | Single visit, no return within 60 days, Standard Room, often smaller party size | Re-engagement campaign emphasizing "you've only seen one room"; offer return incentive tied to the next room in difficulty order |
|
|
85
|
+
|
|
86
|
+
If a cluster doesn't clearly fit a label, describe its characteristics neutrally and note that further observation is needed.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Report Structure
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### Customer Insights — {{locationName}}
|
|
95
|
+
**Generated**: [today's date]
|
|
96
|
+
**Total customers**: [count]
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### 1. Segment Overview
|
|
101
|
+
|
|
102
|
+
| Segment | Customers | % of Base | Avg LTV | Avg Visits | Last-Visit Recency | Recommended Action |
|
|
103
|
+
|---|---|---|---|---|---|---|
|
|
104
|
+
| Serial Escapers | [N] | [%] | $[avg spend] | [avg] | [days since last visit avg] | [action] |
|
|
105
|
+
| Celebration Groups | [N] | [%] | $[avg] | [avg] | [days] | [action] |
|
|
106
|
+
| Corporate Clients | [N] | [%] | $[avg] | [avg] | [days] | [action] |
|
|
107
|
+
| Family Fun | [N] | [%] | $[avg] | [avg] | [days] | [action] |
|
|
108
|
+
| First-Timers | [N] | [%] | $[avg] | [avg] | [days] | [action] |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
### 2. VIP List — Top 10 by Lifetime Value
|
|
113
|
+
|
|
114
|
+
| # | Guest | Lifetime Value | Visits | Loyalty Tier | Last Visit | Segment |
|
|
115
|
+
|---|---|---|---|---|---|---|
|
|
116
|
+
| 1 | [First name L.] | $[ltv] | [N] | [tier] | [date] | [segment] |
|
|
117
|
+
|
|
118
|
+
Cap at 10. Use first name + last initial only — never full email or full last name in this output.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### 3. Churn Risk — High-Value Guests Not Seen in 60+ Days
|
|
123
|
+
|
|
124
|
+
Identify guests in the Serial Escapers or Celebration Groups segments who have not had a confirmed booking in the past 60 days.
|
|
125
|
+
|
|
126
|
+
| Guest | Lifetime Value | Last Visit | Days Since Visit | Rooms Completed | Suggested Action |
|
|
127
|
+
|---|---|---|---|---|---|
|
|
128
|
+
| [First name L.] | $[ltv] | [date] | [N] | [N] | [e.g., "Personal re-engagement email — new Advanced Room is their natural next step"] |
|
|
129
|
+
|
|
130
|
+
If no churn-risk guests: "All high-value guests have visited within the past 60 days. Retention looks healthy."
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### 4. First-Timer to Repeat Conversion
|
|
135
|
+
|
|
136
|
+
The single most important growth metric for an escape room venue: what percentage of first-time visitors come back?
|
|
137
|
+
|
|
138
|
+
| Period | New Guests | Returned Within 90 Days | Conversion Rate |
|
|
139
|
+
|---|---|---|---|
|
|
140
|
+
| [last 3 months] | [N] | [N] | [%] |
|
|
141
|
+
| [prior 3 months] | [N] | [N] | [%] |
|
|
142
|
+
| [prior 3 months] | [N] | [N] | [%] |
|
|
143
|
+
|
|
144
|
+
**Industry context**: A healthy escape room conversion rate from first visit to second visit is 25–35%. If the venue is below 20%, the re-engagement email series (specifically the "you only saw one room" message) is the highest-ROI marketing action available. If above 40%, the venue has strong word-of-mouth and should focus on referral mechanics.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### 5. Corporate Client Summary
|
|
149
|
+
|
|
150
|
+
| Company | Bookings | Guests | Total Spend | Last Booking | Status |
|
|
151
|
+
|---|---|---|---|---|---|
|
|
152
|
+
| [Company name] | [N] | [N] | $[spend] | [date] | [Active / At Risk / Lapsed] |
|
|
153
|
+
|
|
154
|
+
Mark a corporate client as **At Risk** if their last booking was 90–180 days ago. Mark as **Lapsed** if over 180 days ago. Active = booked within the past 90 days.
|
|
155
|
+
|
|
156
|
+
A brief note on corporate concentration: if the top 3 corporate clients represent more than 50% of corporate revenue, flag this. Loss of even one account would have material impact.
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### 6. Loyalty Tier Distribution
|
|
161
|
+
|
|
162
|
+
| Tier | Customers | % | Avg LTV | Avg Visits |
|
|
163
|
+
|---|---|---|---|---|
|
|
164
|
+
| Gold | [N] | [%] | $[avg] | [avg] |
|
|
165
|
+
| Silver | [N] | [%] | $[avg] | [avg] |
|
|
166
|
+
| Bronze | [N] | [%] | $[avg] | [avg] |
|
|
167
|
+
| No tier | [N] | [%] | $[avg] | [avg] |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### 7. Recommendations
|
|
172
|
+
|
|
173
|
+
Provide 2–3 specific, data-backed recommendations:
|
|
174
|
+
|
|
175
|
+
- "Your [N] First-Timers represent $[X] in untapped LTV if converted to a second visit. A targeted 'You've only seen one room' email with a specific room recommendation based on their first room's difficulty level could recover an estimated [%] within 30 days."
|
|
176
|
+
- "[N] Serial Escapers have completed all available rooms. Without a new room to offer, this high-value segment has no natural next booking. Consider giving them early access to any room currently under development, or create a 'master class' challenge (all rooms in one day, competitive) to retain their engagement."
|
|
177
|
+
- "Corporate bookings dropped [%] MoM. The [N] lapsed corporate clients last booked [average N] months ago — follow up with a personalized outreach noting that team building bookings typically cluster in Q4 and Q1; securing even two accounts before [upcoming month] represents $[estimated revenue]."
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Privacy Rules
|
|
182
|
+
|
|
183
|
+
- Never display full email addresses in any output
|
|
184
|
+
- Use first name + last initial format for individual guest references
|
|
185
|
+
- Loyalty point balances and lifetime spend may be shown in aggregate tables; avoid pairing name + exact spend in contexts where the output might be shared publicly
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: demand-forecast
|
|
3
|
+
name: Demand Forecast
|
|
4
|
+
description: Analyzes booking patterns across days and hours to identify peak demand windows for the escape room venue, generates a demand heatmap, surfaces GM scheduling recommendations using a 1:2-3 room monitoring ratio, and flags under-utilized weekday capacity for corporate and group development.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Demand Forecast
|
|
12
|
+
|
|
13
|
+
You analyze historical booking patterns at **{{locationName}}** to surface peak demand windows, identify under-staffed or over-scheduled periods, and recommend scheduling changes. The output is a practical tool for an escape room owner deciding when to add sessions, hire Game Masters, or pursue corporate weekday bookings.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "When are we busiest?"
|
|
19
|
+
- "Should we add a Thursday evening session?"
|
|
20
|
+
- "How do I staff the weekend?"
|
|
21
|
+
- "Capacity planning for next quarter"
|
|
22
|
+
- "What are our peak times?"
|
|
23
|
+
- Any question about scheduling decisions or GM staffing levels
|
|
24
|
+
|
|
25
|
+
## Default Analysis Window
|
|
26
|
+
|
|
27
|
+
If no period is specified, analyze the **trailing 90 days** of booking data. This provides enough volume for statistically meaningful day-of-week and hour-of-day patterns.
|
|
28
|
+
|
|
29
|
+
## Aggregate to Define
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
brain.defineAggregate('bookingsByDayHour', {
|
|
33
|
+
source: {
|
|
34
|
+
type: 'Event',
|
|
35
|
+
where: [
|
|
36
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
37
|
+
{ field: 'metadata.status', value: 'confirmed' }
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
groupBy: [
|
|
41
|
+
{ field: 'metadata.date', window: 'day' },
|
|
42
|
+
{ field: 'metadata.hour' }
|
|
43
|
+
],
|
|
44
|
+
metrics: {
|
|
45
|
+
bookingCount: { op: 'COUNT' },
|
|
46
|
+
totalGuests: { op: 'SUM', field: 'metadata.guestCount' },
|
|
47
|
+
avgGuests: { op: 'AVG', field: 'metadata.guestCount' }
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
After querying, aggregate client-side by day-of-week (0 = Sunday through 6 = Saturday) and hour to produce the 7×12 heatmap grid.
|
|
53
|
+
|
|
54
|
+
## Peak Window Identification
|
|
55
|
+
|
|
56
|
+
Compute the mean and standard deviation of `bookingCount` across all day+hour cells. A **peak window** is any cell where `bookingCount > mean + 1.0 × stddev`.
|
|
57
|
+
|
|
58
|
+
A **quiet window** is any cell where `bookingCount < mean − 0.5 × stddev`.
|
|
59
|
+
|
|
60
|
+
## GM Staffing Ratios
|
|
61
|
+
|
|
62
|
+
Apply these ratios when evaluating Game Master adequacy:
|
|
63
|
+
|
|
64
|
+
| Scenario | GM Coverage Rule |
|
|
65
|
+
|---|---|
|
|
66
|
+
| 1–2 rooms running simultaneously | 1 GM can monitor and brief both rooms |
|
|
67
|
+
| 3 rooms running simultaneously | 2 GMs required (1 running briefings/front desk, 1 monitoring) |
|
|
68
|
+
| 4+ rooms simultaneously (corporate) | 1 GM per 2 rooms monitoring + 1 dedicated front desk |
|
|
69
|
+
| Corporate Team Build | Dedicated GM for debrief in addition to room monitors |
|
|
70
|
+
|
|
71
|
+
An **understaffed window** is a peak slot where the number of simultaneous active rooms exceeds the available GMs' monitoring capacity.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Report Structure
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Demand Forecast — {{locationName}}
|
|
80
|
+
**Analysis period**: [start] – [end] ([N] days of data)
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
### 1. Demand Heatmap
|
|
85
|
+
|
|
86
|
+
Render a 7-column (day-of-week) × rows (hours in operation, typically 10am–10pm) grid. Cell values are average confirmed booking count per slot over the analysis period.
|
|
87
|
+
|
|
88
|
+
Use ASCII intensity symbols for readability in plain text:
|
|
89
|
+
- `███` = top quartile (peak)
|
|
90
|
+
- `▓▓▓` = third quartile (high)
|
|
91
|
+
- `░░░` = second quartile (moderate)
|
|
92
|
+
- ` ` = bottom quartile (low / no demand)
|
|
93
|
+
|
|
94
|
+
Or, if markdown table rendering is preferred, use numeric values:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Sun Mon Tue Wed Thu Fri Sat
|
|
98
|
+
10:00am [avg] [avg] [avg] [avg] [avg] [avg] [avg]
|
|
99
|
+
11:00am ...
|
|
100
|
+
12:00pm ...
|
|
101
|
+
1:00pm ...
|
|
102
|
+
2:00pm ...
|
|
103
|
+
3:00pm ...
|
|
104
|
+
4:00pm ...
|
|
105
|
+
5:00pm ...
|
|
106
|
+
6:00pm ...
|
|
107
|
+
7:00pm ...
|
|
108
|
+
8:00pm ...
|
|
109
|
+
9:00pm ...
|
|
110
|
+
10:00pm ...
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Legend**: Values are average confirmed bookings per hour slot. Bold/★ = peak (> mean + 1σ).
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### 2. Top 5 Peak Windows
|
|
118
|
+
|
|
119
|
+
List the five highest-demand day+hour combinations:
|
|
120
|
+
|
|
121
|
+
| Rank | Day | Time | Avg Bookings | Avg Guests | Notes |
|
|
122
|
+
|---|---|---|---|---|---|
|
|
123
|
+
| 1 | [day] | [time] | [avg] | [avg guests] | [e.g., "Friday evening peak — Standard rooms fill first"] |
|
|
124
|
+
|
|
125
|
+
For each peak window, note:
|
|
126
|
+
- Whether the slot is already fully scheduled or represents an untapped opportunity
|
|
127
|
+
- The estimated revenue opportunity: `avgGuests × priceInCents ÷ 100` per added session
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### 3. Quietest Windows
|
|
132
|
+
|
|
133
|
+
List the five lowest-demand day+hour slots:
|
|
134
|
+
|
|
135
|
+
| Day | Time | Avg Bookings | Recommendation |
|
|
136
|
+
|---|---|---|---|
|
|
137
|
+
| [day] | [time] | [avg] | [e.g., "Strong candidate for corporate group outreach" or "Consider private booking discount for this slot"] |
|
|
138
|
+
|
|
139
|
+
Quiet windows are not failures — they are the natural home for corporate groups (who prefer weekday daytime), private bookings (which benefit from guaranteed exclusivity), and maintenance windows.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### 4. GM Scheduling Recommendations
|
|
144
|
+
|
|
145
|
+
Based on peak windows and the GM staffing ratios above:
|
|
146
|
+
|
|
147
|
+
For each peak window where simultaneous room count approaches or exceeds single-GM capacity:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
⚠️ [Day] [Time] — Potential GM understaffing
|
|
151
|
+
Simultaneous rooms likely running: [N]
|
|
152
|
+
Current GM capacity: [N] GMs scheduled (monitors [N] rooms max)
|
|
153
|
+
Recommendation: Schedule second GM for this window, or cap
|
|
154
|
+
simultaneous bookings to [N] rooms until coverage is confirmed.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
If all peaks are within single-GM capacity:
|
|
158
|
+
"All peak windows are within standard GM coverage capacity. No immediate staffing changes required."
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 5. Scheduling Insights
|
|
163
|
+
|
|
164
|
+
Provide 3–5 plain-language insights drawn from the data. Always check for these escape-room-specific patterns:
|
|
165
|
+
|
|
166
|
+
**Friday/Saturday evening peak**: The canonical demand window for escape rooms. Sessions starting 6pm–9pm Friday and Saturday are typically the most in-demand. If the data confirms this, affirm it. If it doesn't, flag it as unusual — it may indicate a pricing or visibility problem in those slots.
|
|
167
|
+
|
|
168
|
+
**Weekday corporate opportunity**: Weekday 11am–3pm slots are naturally suited to corporate team builds and group events. Escape rooms typically see 20–30% of their volume from corporate bookings on weekdays. If the data shows near-zero weekday volume, the venue is leaving significant revenue on the table and should consider a targeted corporate outreach push.
|
|
169
|
+
|
|
170
|
+
**Birthday/celebration group peak**: Saturday afternoons (2pm–5pm) are a natural birthday group window. Families and friend groups often book the early Saturday slot and then stay for dinner in the area. If this slot is under-booked relative to the Friday/Saturday evening peak, a targeted "private booking birthday package" promotion could help fill it.
|
|
171
|
+
|
|
172
|
+
**Back-to-back session pressure**: If two or more rooms run consecutive sessions (< 15 minutes reset window), flag the operational risk. High-demand periods that create tight resets are a quality risk — incomplete resets are the most common source of negative reviews.
|
|
173
|
+
|
|
174
|
+
**Seasonal drift**: If the analysis window spans multiple months, note any demand shift. Escape rooms often see a late-September through December peak (team-building season, holiday parties) and a February–April trough. Summer can spike for family rooms while adult sessions flatten.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### 6. Growth Opportunities
|
|
179
|
+
|
|
180
|
+
Based on the combination of peak demand data and current schedule gaps, list the top 2–3 new time slots worth piloting:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
💡 Recommended new slot: [Day] at [Time]
|
|
184
|
+
Rationale: [N] existing bookings cluster in adjacent windows, suggesting
|
|
185
|
+
unmet demand. Projected revenue at [N] rooms × [fill rate]% capacity: $[estimate].
|
|
186
|
+
Suggested experience type: [Standard Room | Corporate Team Build | Family Room]
|
|
187
|
+
GM coverage: [Can be covered by existing schedule | Requires additional GM]
|
|
188
|
+
```
|