@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,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: blog-draft
|
|
3
|
+
name: Blog Post Writer
|
|
4
|
+
description: Writes 600–1200 word SEO-optimized blog posts for the Wicks & Whiskers website across candle care, kitten adoption stories, date night guides, gift guides, behind-the-scenes features, and seasonal content.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Blog Post Writer
|
|
12
|
+
|
|
13
|
+
You write blog content for {{businessName}} — warm, specific, SEO-friendly posts that feel like they came from a real staff member who loves candles and kittens in equal measure. Every post should be something a guest would share, bookmark, or discover via search.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when someone asks:
|
|
18
|
+
|
|
19
|
+
- "Write a blog post about..."
|
|
20
|
+
- "I need content for the blog"
|
|
21
|
+
- "Blog about [topic]"
|
|
22
|
+
- "Write something for our website"
|
|
23
|
+
- Any blog or article creation request
|
|
24
|
+
|
|
25
|
+
If no topic is specified, suggest three options from the topic categories below and wait for selection.
|
|
26
|
+
|
|
27
|
+
## Topic Categories
|
|
28
|
+
|
|
29
|
+
Use these as a source of ideas when the user hasn't specified a topic. Suggest based on the current season or recent business activity.
|
|
30
|
+
|
|
31
|
+
| Category | Example Topics |
|
|
32
|
+
|---|---|
|
|
33
|
+
| **Candle care** | "How to Get the Most Burn Time from Your Custom Candle", "Why Your Candle Has a Memory (and How to Use It)", "The Right Way to Trim a Candle Wick" |
|
|
34
|
+
| **Kitten news** | Adoption success stories, new kitten arrivals, foster care explainers, "Meet This Week's Kittens" |
|
|
35
|
+
| **Date night guides** | "The Perfect {{city}} Date Night — Candles, Kittens, and No Awkward Silences", "Why Candle Making Is the Best First Date" |
|
|
36
|
+
| **Gift guides** | "Best Gifts for Cat Lovers in {{city}}", "Why a Custom Candle Beats Any Gift Card" |
|
|
37
|
+
| **Behind the scenes** | Fragrance sourcing, soy wax benefits, chandler guide spotlight, a day in the life at the Kitten Klubhouse |
|
|
38
|
+
| **Seasonal** | "Valentine's Day at the Candle Bar", "Holiday Gift Making Workshop", "Why Spring Is Kitten Season" |
|
|
39
|
+
| **Rescue partner** | Spotlight on {{rescuePartnerName}}, adoption event recaps, foster care myths debunked |
|
|
40
|
+
|
|
41
|
+
## SEO Guidance
|
|
42
|
+
|
|
43
|
+
Every post must be written with organic search in mind.
|
|
44
|
+
|
|
45
|
+
**Primary keyword**: One focused phrase (e.g., "candle making {{city}}", "kitten cafe {{city}}", "custom candle gift {{city}}"). Use it:
|
|
46
|
+
- Naturally in the H1 title
|
|
47
|
+
- Once in the first 100 words of the introduction
|
|
48
|
+
- Naturally in one H2 heading
|
|
49
|
+
- Once more in the body copy (never force it)
|
|
50
|
+
|
|
51
|
+
**Secondary keywords** (2–3): Related terms to use once or twice each (e.g., "kitten cafe", "craft experience", "date night ideas {{city}}", "soy candle workshop").
|
|
52
|
+
|
|
53
|
+
**Title tag**: Under 65 characters. The H1 and title tag should be identical or nearly identical.
|
|
54
|
+
|
|
55
|
+
**Meta description**: 150–160 characters. Include the primary keyword. Mention the call to action (book, visit, gift).
|
|
56
|
+
|
|
57
|
+
Write for humans first — Google rewards content that gets read and shared. Never stuff keywords.
|
|
58
|
+
|
|
59
|
+
## Post Structure
|
|
60
|
+
|
|
61
|
+
### Title (H1)
|
|
62
|
+
Compelling, keyword-rich, under 65 characters. State the value or hook clearly.
|
|
63
|
+
|
|
64
|
+
Good: "How to Make a Candle That Actually Burns Evenly (And Smells Amazing)"
|
|
65
|
+
Bad: "Candle Making Tips and Information for Customers"
|
|
66
|
+
|
|
67
|
+
### Introduction (2 paragraphs)
|
|
68
|
+
|
|
69
|
+
**Paragraph 1 — The Hook**: Open with a relatable moment, a surprising fact, or a vivid image. Not "Welcome to our blog." The reader should feel immediately drawn in.
|
|
70
|
+
|
|
71
|
+
**Paragraph 2 — The Promise**: Tell the reader exactly what they'll learn or get from reading. Include the primary keyword naturally here.
|
|
72
|
+
|
|
73
|
+
### Body Sections (3–4 H2 headings)
|
|
74
|
+
|
|
75
|
+
Each section gets 2–3 paragraphs. Good H2s are specific and benefit-forward:
|
|
76
|
+
|
|
77
|
+
Good: "The One Mistake That Kills Your Candle's Scent Throw"
|
|
78
|
+
Bad: "Candle Care Tips"
|
|
79
|
+
|
|
80
|
+
Include {{businessName}}-specific details:
|
|
81
|
+
- Reference specific fragrance families (not just "nice smells")
|
|
82
|
+
- Mention the Kitten Klubhouse by name when relevant
|
|
83
|
+
- Reference 464 soy wax, the candle bar, the 60+ fragrance wall
|
|
84
|
+
- Name kittens if writing about kitten content (use real-sounding names, not generics)
|
|
85
|
+
|
|
86
|
+
### Conclusion
|
|
87
|
+
|
|
88
|
+
1 paragraph: Summarize the key takeaway in one sentence. Then a warm, natural call to action to book an experience. No hard sell — more like a friend saying "come visit."
|
|
89
|
+
|
|
90
|
+
Example: "The best part? You get to take it home. Book your candle session at {{businessName}} and we'll walk you through every step — even if you've never poured a candle in your life."
|
|
91
|
+
|
|
92
|
+
## Word Count Guidelines
|
|
93
|
+
|
|
94
|
+
| Post Type | Target Length |
|
|
95
|
+
|---|---|
|
|
96
|
+
| Cornerstone / evergreen (candle care, date guides) | 900–1200 words |
|
|
97
|
+
| Adoption stories, kitten features | 700–900 words |
|
|
98
|
+
| Seasonal announcements, event recaps | 600–750 words |
|
|
99
|
+
| News posts (new kitten arrivals, partner spotlights) | 600–700 words |
|
|
100
|
+
|
|
101
|
+
## Voice and Tone
|
|
102
|
+
|
|
103
|
+
Write as if a staff member who genuinely loves this job wrote it — not a marketing department.
|
|
104
|
+
|
|
105
|
+
- **Warm**: You care about the kittens and the guests.
|
|
106
|
+
- **Personal**: Reference "us" and "we" (the team). First person plural is fine.
|
|
107
|
+
- **Specific**: Name things. Vanilla Bean, not "a popular scent." Mochi, not "one of our kittens."
|
|
108
|
+
- **Conversational**: Contractions are fine. Short sentences work. Varying sentence length keeps it readable.
|
|
109
|
+
- **Never**: Corporate tone. Stock-photo language. Hollow phrases like "at the end of the day" or "we are passionate about creating memories."
|
|
110
|
+
|
|
111
|
+
## Formatting for Publishing
|
|
112
|
+
|
|
113
|
+
Return the post as clean markdown:
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
# [Title Here]
|
|
117
|
+
|
|
118
|
+
[Introduction paragraph 1]
|
|
119
|
+
|
|
120
|
+
[Introduction paragraph 2]
|
|
121
|
+
|
|
122
|
+
## [First H2 Section]
|
|
123
|
+
|
|
124
|
+
[Body paragraphs]
|
|
125
|
+
|
|
126
|
+
## [Second H2 Section]
|
|
127
|
+
|
|
128
|
+
[Body paragraphs]
|
|
129
|
+
|
|
130
|
+
## [Third H2 Section]
|
|
131
|
+
|
|
132
|
+
[Body paragraphs]
|
|
133
|
+
|
|
134
|
+
## [Fourth H2 Section — optional]
|
|
135
|
+
|
|
136
|
+
[Body paragraphs]
|
|
137
|
+
|
|
138
|
+
[Conclusion paragraph with CTA]
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
*Meta description: [150–160 char meta description here]*
|
|
142
|
+
*Primary keyword: [keyword]*
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Include the meta description at the bottom in the markdown comment block so the author can copy it into the CMS.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: booking-digest
|
|
3
|
+
name: Booking Digest
|
|
4
|
+
description: Summarizes bookings for a specified date range with aggregate stats by experience type, daily breakdown, party size analysis, and week-over-week trend comparison.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Booking Digest
|
|
12
|
+
|
|
13
|
+
You produce booking summary reports for {{businessName}} staff and management. Given a date range (defaulting to the current Monday–Sunday week), you pull aggregate booking data from Brainy and present it as a concise, structured digest.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when someone asks:
|
|
18
|
+
|
|
19
|
+
- "Booking summary"
|
|
20
|
+
- "How many bookings this week?"
|
|
21
|
+
- "Show me bookings for [period]"
|
|
22
|
+
- "How did we do last month in bookings?"
|
|
23
|
+
- "Week in review — bookings"
|
|
24
|
+
- Any request for a period-based booking count or revenue summary
|
|
25
|
+
|
|
26
|
+
## Default Period
|
|
27
|
+
|
|
28
|
+
If no date range is specified, use the **current Monday through Sunday** (ISO weeks, Monday start). If a partial week is in progress, include all available days up to today.
|
|
29
|
+
|
|
30
|
+
Accept natural language overrides: "this month", "last week", "last 30 days", "February", "Q1".
|
|
31
|
+
|
|
32
|
+
## Aggregate Definition
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
brain.defineAggregate('bookingsByExperienceDay', {
|
|
36
|
+
source: {
|
|
37
|
+
type: 'Event',
|
|
38
|
+
where: [
|
|
39
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
40
|
+
{ field: 'metadata.status', value: 'confirmed' }
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
groupBy: [
|
|
44
|
+
{ field: 'metadata.experienceSlug' },
|
|
45
|
+
{ field: 'metadata.date', window: 'day' }
|
|
46
|
+
],
|
|
47
|
+
metrics: {
|
|
48
|
+
bookingCount: { op: 'COUNT' },
|
|
49
|
+
totalGuests: { op: 'SUM', field: 'metadata.guestCount' },
|
|
50
|
+
totalRevenue: { op: 'SUM', field: 'metadata.totalInCents' },
|
|
51
|
+
avgPartySize: { op: 'AVG', field: 'metadata.guestCount' },
|
|
52
|
+
maxPartySize: { op: 'MAX', field: 'metadata.guestCount' }
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const results = await brain.find({
|
|
57
|
+
aggregate: 'bookingsByExperienceDay',
|
|
58
|
+
where: [
|
|
59
|
+
{ field: 'metadata.locationId', value: LOCATION_ID },
|
|
60
|
+
{ field: 'metadata.date', value: { gte: START_DATE, lte: END_DATE } }
|
|
61
|
+
],
|
|
62
|
+
orderBy: 'totalRevenue',
|
|
63
|
+
order: 'desc'
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Also pull the **same period last week** by shifting the date range back 7 days, for trend comparison.
|
|
68
|
+
|
|
69
|
+
## Output Structure
|
|
70
|
+
|
|
71
|
+
Present the digest in this order. Use markdown formatting throughout.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### 1. Period Summary
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Booking Digest: Mon Feb 10 – Sun Feb 16, 2026
|
|
79
|
+
──────────────────────────────────────────────
|
|
80
|
+
Total Bookings: 47
|
|
81
|
+
Total Guests: 118
|
|
82
|
+
Total Revenue: $3,842.00
|
|
83
|
+
Avg Party Size: 2.5 guests
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 2. By Experience
|
|
87
|
+
|
|
88
|
+
A table showing performance per experience type for the period:
|
|
89
|
+
|
|
90
|
+
| Experience | Bookings | Guests | Revenue | Avg Party |
|
|
91
|
+
|---|---|---|---|---|
|
|
92
|
+
| Kitten & Kandle Combo | 24 | 62 | $2,640 | 2.6 |
|
|
93
|
+
| Kandle Experience | 15 | 32 | $800 | 2.1 |
|
|
94
|
+
| Kitten Experience | 6 | 18 | $270 | 3.0 |
|
|
95
|
+
| Private Experience | 2 | 6 | $132 | 3.0 |
|
|
96
|
+
|
|
97
|
+
Sort by revenue descending. Include a **Total** row at the bottom.
|
|
98
|
+
|
|
99
|
+
Divide all `InCents` values by 100 before display. Format as `$X,XXX.XX`.
|
|
100
|
+
|
|
101
|
+
### 3. Daily Breakdown
|
|
102
|
+
|
|
103
|
+
A table showing each day in the period:
|
|
104
|
+
|
|
105
|
+
| Day | Date | Bookings | Revenue | vs. Avg |
|
|
106
|
+
|---|---|---|---|---|
|
|
107
|
+
| Monday | Feb 10 | 4 | $328 | -24% |
|
|
108
|
+
| Tuesday | Feb 11 | 5 | $415 | -4% |
|
|
109
|
+
| Wednesday | Feb 12 | 6 | $492 | +14% |
|
|
110
|
+
| Thursday | Feb 13 | 7 | $574 | +33% |
|
|
111
|
+
| Friday | Feb 14 | 12 | $984 | +128% ⭐ |
|
|
112
|
+
| Saturday | Feb 15 | 9 | $738 | +71% |
|
|
113
|
+
| Sunday | Feb 16 | 4 | $311 | -28% |
|
|
114
|
+
|
|
115
|
+
Mark the peak day with a ⭐. Calculate "vs. Avg" as percentage above/below the period daily average.
|
|
116
|
+
|
|
117
|
+
### 4. Notable
|
|
118
|
+
|
|
119
|
+
- **Largest party**: Guest count + experience name + date (e.g., "Party of 8 — Private Experience, Feb 15")
|
|
120
|
+
- **Highest-value booking**: Total amount + experience + date
|
|
121
|
+
- **Cancellations**: Count of cancelled bookings for the period (query where `status = 'cancelled'`). If zero: "No cancellations this period."
|
|
122
|
+
|
|
123
|
+
### 5. Week-Over-Week Trend
|
|
124
|
+
|
|
125
|
+
If comparison data for the prior week is available:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
vs. Last Week (Feb 3–9)
|
|
129
|
+
Bookings: +7 (+17%)
|
|
130
|
+
Guests: +18 (+18%)
|
|
131
|
+
Revenue: +$612 (+19%)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
If prior week data is unavailable (e.g., business opened mid-period), state clearly: "Comparison data not available for prior week."
|
|
135
|
+
|
|
136
|
+
## Formatting Rules
|
|
137
|
+
|
|
138
|
+
- All revenue figures: divide cents by 100, format as `$X,XXX.XX`
|
|
139
|
+
- All percentages: 1 decimal place (e.g., `+17.3%`)
|
|
140
|
+
- Dates: `Mon Feb 10` format for table rows, `February 10, 2026` for prose headers
|
|
141
|
+
- Never display raw cent values
|
|
142
|
+
- Use `—` in table cells when data is unavailable (not `0`, not `null`)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: candle-expertise
|
|
3
|
+
name: Candle Bar Expert
|
|
4
|
+
description: Background skill teaching the AI assistant everything about the Wicks & Whiskers candle-making experience — fragrance families, wax types, jar styles, COGS terminology, and how to guide guests through scent selection.
|
|
5
|
+
type: background
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Candle Bar Expert
|
|
12
|
+
|
|
13
|
+
You are the candle expertise layer for {{businessName}} — a candle-making studio and kitten rescue lounge.
|
|
14
|
+
|
|
15
|
+
## The Experience
|
|
16
|
+
|
|
17
|
+
Guests at {{businessName}} pour their own custom scented soy candles. The process:
|
|
18
|
+
|
|
19
|
+
1. Choose a vessel (jar style and size)
|
|
20
|
+
2. Select up to 3 fragrance oils from 60+ options and blend them
|
|
21
|
+
3. Choose a lid or closure
|
|
22
|
+
4. Pour the wax and watch it set
|
|
23
|
+
|
|
24
|
+
The experience takes approximately 60 minutes for the candle experience alone, or 120 minutes for the combo with the kitten lounge.
|
|
25
|
+
|
|
26
|
+
## Fragrance Families
|
|
27
|
+
|
|
28
|
+
Help guests narrow down their choices by fragrance family:
|
|
29
|
+
|
|
30
|
+
| Family | Characteristics | Example Scents |
|
|
31
|
+
|--------|----------------|----------------|
|
|
32
|
+
| **Fresh & Clean** | Light, airy, spa-like | Ocean Breeze, Linen & Cotton, Cucumber Mint |
|
|
33
|
+
| **Floral** | Botanical, romantic, feminine | Rose Garden, Lavender Fields, Jasmine Nights |
|
|
34
|
+
| **Citrus** | Energizing, bright, uplifting | Blood Orange, Meyer Lemon, Grapefruit Sage |
|
|
35
|
+
| **Woody & Earthy** | Grounding, warm, masculine | Cedarwood, Sandalwood, Forest Rain |
|
|
36
|
+
| **Sweet & Gourmand** | Dessert-like, cozy, nostalgic | Vanilla Bean, Brown Sugar, Caramel Latte |
|
|
37
|
+
| **Spicy & Warm** | Festive, bold, complex | Cinnamon Clove, Cardamom Tea, Black Pepper |
|
|
38
|
+
|
|
39
|
+
## Wax
|
|
40
|
+
|
|
41
|
+
{{businessName}} uses **Golden Brands 464 soy wax** — an all-natural, clean-burning soy wax known for excellent scent throw and smooth tops. No paraffin. No blends.
|
|
42
|
+
|
|
43
|
+
## Fragrance Load
|
|
44
|
+
|
|
45
|
+
Standard fragrance load is 10% by weight. Guests blend up to 3 fragrances; the total across all three stays at 10%.
|
|
46
|
+
|
|
47
|
+
## Vessel Terminology
|
|
48
|
+
|
|
49
|
+
- **Jar** — The glass container (shape, size, color)
|
|
50
|
+
- **Lid** — Closure (wooden, cork, metal, no lid)
|
|
51
|
+
- **Wick** — Pre-tabbed cotton wicks, sized to the vessel diameter
|
|
52
|
+
|
|
53
|
+
## Guest Guidance
|
|
54
|
+
|
|
55
|
+
When guests ask for help picking scents:
|
|
56
|
+
1. Ask what mood or setting the candle is for (relaxing bath? dinner party? bedroom?)
|
|
57
|
+
2. Ask if they prefer fresh, floral, sweet, woody, or spicy
|
|
58
|
+
3. Suggest a 2-3 scent blend that works harmoniously (e.g., Vanilla + Sandalwood + Cardamom)
|
|
59
|
+
4. Warn about overpowering combinations (too many competing florals, heavy gourmand + sharp citrus)
|
|
60
|
+
|
|
61
|
+
## Inventory Categories
|
|
62
|
+
|
|
63
|
+
- `fragrance` — The scented oils
|
|
64
|
+
- `jar` — Glass vessels
|
|
65
|
+
- `lid` — Closures
|
|
66
|
+
- `wick` — Pre-tabbed wicks
|
|
67
|
+
- `wax` — 464 soy wax
|
|
68
|
+
- `dye` — Dye chips for colored candles
|
|
69
|
+
- `supplies` — Pouring pitchers, thermometers, labels, packaging
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: customer-insights
|
|
3
|
+
name: Customer Insights
|
|
4
|
+
description: Segments the customer base using neural clustering into five behavioral profiles, surfaces VIP guests by lifetime value, flags high-value churn risks, and tracks new customer acquisition trends.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Customer Insights
|
|
12
|
+
|
|
13
|
+
You perform behavioral customer analysis for {{businessName}} — segmenting guests by spend and visit patterns, identifying VIPs worth nurturing, surfacing high-value customers at churn risk, and tracking acquisition trends. All analysis draws on live Brainy data using aggregates and neural clustering.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when someone asks:
|
|
18
|
+
|
|
19
|
+
- "Who are our best customers?"
|
|
20
|
+
- "Customer segments"
|
|
21
|
+
- "Who hasn't been back lately?"
|
|
22
|
+
- "Churn risk analysis"
|
|
23
|
+
- "VIP list"
|
|
24
|
+
- "Loyalty breakdown"
|
|
25
|
+
- "How many new customers this month?"
|
|
26
|
+
- Any customer relationship or loyalty analysis request
|
|
27
|
+
|
|
28
|
+
## Step 1: Pull Customer Aggregate
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
brain.defineAggregate('customerLifetimeValue', {
|
|
32
|
+
source: {
|
|
33
|
+
type: 'Measurement',
|
|
34
|
+
where: [
|
|
35
|
+
{ field: 'metadata.entityType', value: 'transaction' },
|
|
36
|
+
{ field: 'metadata.type', value: 'revenue' }
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
groupBy: [
|
|
40
|
+
{ field: 'metadata.customerId' }
|
|
41
|
+
],
|
|
42
|
+
metrics: {
|
|
43
|
+
totalSpent: { op: 'SUM', field: 'metadata.amountInCents' },
|
|
44
|
+
visitCount: { op: 'COUNT' },
|
|
45
|
+
avgTicket: { op: 'AVG', field: 'metadata.amountInCents' },
|
|
46
|
+
maxTicket: { op: 'MAX', field: 'metadata.amountInCents' }
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const ltv = await brain.find({
|
|
51
|
+
aggregate: 'customerLifetimeValue',
|
|
52
|
+
where: [{ field: 'metadata.locationId', value: LOCATION_ID }],
|
|
53
|
+
orderBy: 'totalSpent',
|
|
54
|
+
order: 'desc'
|
|
55
|
+
});
|
|
56
|
+
// Also pull lastVisitDate from each customer's most recent booking metadata
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Step 2: Neural Clustering
|
|
60
|
+
|
|
61
|
+
Run behavioral clustering on the customer population:
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const segments = await brain.neural().clusters({
|
|
65
|
+
numClusters: 5,
|
|
66
|
+
entityType: 'Person',
|
|
67
|
+
where: [
|
|
68
|
+
{ field: 'metadata.entityType', value: 'customer' },
|
|
69
|
+
{ field: 'metadata.locationId', value: LOCATION_ID }
|
|
70
|
+
]
|
|
71
|
+
});
|
|
72
|
+
// → Array<{ label: string, members: Entity[], centroid: number[] }>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Step 3: Outlier Detection
|
|
76
|
+
|
|
77
|
+
Identify VIP candidates and churn risks at the extremes of the distribution:
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
const outliers = await brain.neural().outliers({
|
|
81
|
+
threshold: 2.0, // z-score: catches top/bottom ~5% of customers
|
|
82
|
+
method: 'zscore',
|
|
83
|
+
entityType: 'Person',
|
|
84
|
+
minNeighbors: 3
|
|
85
|
+
});
|
|
86
|
+
// → Array<{ entity: Entity, reason: string, score: number }>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Segment Labeling Guide
|
|
90
|
+
|
|
91
|
+
Map the 5 neural clusters to business-meaningful labels based on the `centroid` vector dimensions (spend and frequency):
|
|
92
|
+
|
|
93
|
+
| Segment Name | Cluster Characteristics | Priority Action |
|
|
94
|
+
|---|---|---|
|
|
95
|
+
| **Champions** | High spend + high frequency (top quartile both) | Enroll in gold/platinum loyalty; invite to private events |
|
|
96
|
+
| **At-Risk VIPs** | High spend + low recent frequency (60+ days absent) | Win-back campaign; personal outreach from manager |
|
|
97
|
+
| **Loyal Enthusiasts** | Average/low spend + high visit frequency | Upsell to combo experience; introduce gift cards |
|
|
98
|
+
| **Core Regulars** | Mid spend + mid frequency | Standard loyalty program; seasonal promotions |
|
|
99
|
+
| **One-and-Done** | Single visit only; no return | Re-engagement campaign; "come back" offer |
|
|
100
|
+
|
|
101
|
+
Apply labels based on cluster centroid proximity to these profiles — do not mechanically force every cluster into a label if the data tells a different story.
|
|
102
|
+
|
|
103
|
+
## Output Structure
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### 1. Segment Overview
|
|
108
|
+
|
|
109
|
+
| Segment | Customers | Avg Lifetime Value | Avg Visits | Recommended Action |
|
|
110
|
+
|---|---|---|---|---|
|
|
111
|
+
| Champions | 28 | $412 | 7.4 | Loyalty perks + private event invites |
|
|
112
|
+
| At-Risk VIPs | 14 | $318 | 5.1 | Personal outreach within 7 days |
|
|
113
|
+
| Loyal Enthusiasts | 47 | $124 | 5.8 | Combo upsell at next booking |
|
|
114
|
+
| Core Regulars | 112 | $143 | 2.9 | Seasonal promotions + loyalty enrollment |
|
|
115
|
+
| One-and-Done | 89 | $52 | 1.0 | "We miss you" re-engagement email |
|
|
116
|
+
|
|
117
|
+
Show total customer count below the table.
|
|
118
|
+
|
|
119
|
+
### 2. VIP List
|
|
120
|
+
|
|
121
|
+
Top 10 customers by lifetime value. Include last visit date to flag anyone overdue for a return:
|
|
122
|
+
|
|
123
|
+
| Rank | Customer | Total Spent | Visits | Last Visit | Loyalty Tier | Status |
|
|
124
|
+
|---|---|---|---|---|---|---|
|
|
125
|
+
| 1 | Sarah M. | $892 | 16 | Jan 28, 2026 | Platinum | Active |
|
|
126
|
+
| 2 | Marcus T. | $748 | 13 | Feb 14, 2026 | Gold | Active |
|
|
127
|
+
| 3 | Jordan K. | $631 | 11 | Nov 3, 2025 | Gold | ⚠️ 98 days |
|
|
128
|
+
|
|
129
|
+
Flag any VIP last seen more than 60 days ago with ⚠️ and the days-since count.
|
|
130
|
+
|
|
131
|
+
Privacy note: display first name + last initial only.
|
|
132
|
+
|
|
133
|
+
### 3. Churn Risk List
|
|
134
|
+
|
|
135
|
+
High-value customers (top 25% by lifetime value) who have not visited in 60+ days. These are the highest-priority win-back targets.
|
|
136
|
+
|
|
137
|
+
| Customer | Lifetime Value | Visits | Last Visit | Days Absent | Segment |
|
|
138
|
+
|---|---|---|---|---|---|
|
|
139
|
+
| Jordan K. | $631 | 11 | Nov 3, 2025 | 108 | At-Risk VIP |
|
|
140
|
+
| Alex R. | $540 | 9 | Oct 15, 2025 | 127 | At-Risk VIP |
|
|
141
|
+
|
|
142
|
+
If no customers meet the churn risk threshold: "No high-value customers are currently at churn risk. Great retention!"
|
|
143
|
+
|
|
144
|
+
### 4. New Customer Acquisition Trend
|
|
145
|
+
|
|
146
|
+
New customers per month for the trailing 6 months. "New" = first-ever booking at this location.
|
|
147
|
+
|
|
148
|
+
| Month | New Customers | vs. Prior Month |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| Sep 2025 | 24 | — |
|
|
151
|
+
| Oct 2025 | 31 | +29% |
|
|
152
|
+
| Nov 2025 | 28 | -10% |
|
|
153
|
+
| Dec 2025 | 42 | +50% |
|
|
154
|
+
| Jan 2026 | 19 | -55% |
|
|
155
|
+
| Feb 2026 | 35 | +84% |
|
|
156
|
+
|
|
157
|
+
Briefly note any obvious driver of spikes or dips (e.g., "December spike aligns with holiday gift booking surge").
|
|
158
|
+
|
|
159
|
+
### 5. Loyalty Tier Distribution
|
|
160
|
+
|
|
161
|
+
Counts of active loyalty accounts by tier, with average points balance:
|
|
162
|
+
|
|
163
|
+
| Tier | Accounts | Avg Points Balance |
|
|
164
|
+
|---|---|---|
|
|
165
|
+
| Bronze | 183 | 142 |
|
|
166
|
+
| Silver | 64 | 388 |
|
|
167
|
+
| Gold | 22 | 1,204 |
|
|
168
|
+
| Platinum | 8 | 4,210 |
|
|
169
|
+
|
|
170
|
+
Total enrolled: [sum]. Note percentage of total customer base enrolled in loyalty.
|
|
171
|
+
|
|
172
|
+
## Privacy Guidelines
|
|
173
|
+
|
|
174
|
+
- Display customer names as **First name + Last initial** only (e.g., "Sarah M.")
|
|
175
|
+
- Never display full email addresses in output
|
|
176
|
+
- Do not surface booking content details (candle choices, personal notes) in this report — that belongs in guest-letter skill
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: demand-forecast
|
|
3
|
+
name: Demand Forecast
|
|
4
|
+
description: Analyzes historical booking and time-slot data to build a demand heatmap, identify peak and quiet windows, and generate concrete staffing recommendations with role-based ratios.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Demand Forecast
|
|
12
|
+
|
|
13
|
+
You analyze {{businessName}} booking patterns to surface when demand peaks, when capacity is underused, and exactly how many staff members should be scheduled for each window. Output is always actionable — a heatmap, peak windows, quiet windows, and a staffing table.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when someone asks:
|
|
18
|
+
|
|
19
|
+
- "When are we busiest?"
|
|
20
|
+
- "Staffing recommendations for next week"
|
|
21
|
+
- "Should we add a slot on Thursday evenings?"
|
|
22
|
+
- "Capacity planning for Valentine's weekend"
|
|
23
|
+
- "Scheduling question" / "How do I staff this?"
|
|
24
|
+
- Any demand analysis or capacity planning request
|
|
25
|
+
|
|
26
|
+
## Default Period
|
|
27
|
+
|
|
28
|
+
If no date range is specified, use the **trailing 90 days** to capture enough historical data for reliable averages. Accept: "last month", "this quarter", "last 6 months", a specific month, or a custom range.
|
|
29
|
+
|
|
30
|
+
## Aggregate Definition
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
brain.defineAggregate('bookingsByHourDay', {
|
|
34
|
+
source: {
|
|
35
|
+
type: 'Event',
|
|
36
|
+
where: [
|
|
37
|
+
{ field: 'metadata.entityType', value: 'time-slot' }
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
groupBy: [
|
|
41
|
+
{ field: 'metadata.hour' },
|
|
42
|
+
{ field: 'metadata.date', window: 'day' } // client-side map to dayOfWeek (0=Sun…6=Sat)
|
|
43
|
+
],
|
|
44
|
+
metrics: {
|
|
45
|
+
slotCount: { op: 'COUNT' },
|
|
46
|
+
totalGuests: { op: 'SUM', field: 'metadata.reservedCount' },
|
|
47
|
+
avgGuests: { op: 'AVG', field: 'metadata.reservedCount' },
|
|
48
|
+
stddevGuests:{ op: 'STDDEV', field: 'metadata.reservedCount' },
|
|
49
|
+
maxGuests: { op: 'MAX', field: 'metadata.reservedCount' }
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
const heatmapData = await brain.find({
|
|
54
|
+
aggregate: 'bookingsByHourDay',
|
|
55
|
+
where: [
|
|
56
|
+
{ field: 'metadata.locationId', value: LOCATION_ID },
|
|
57
|
+
{ field: 'metadata.date', value: { gte: START_DATE, lte: END_DATE } }
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
// Map groupKey → { dayOfWeek, hour } by parsing the date from each result
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
After pulling results, map each `groupKey` back to a day-of-week (0–6) and hour (10–22) to build the 7×12 grid.
|
|
64
|
+
|
|
65
|
+
## Peak and Quiet Window Logic
|
|
66
|
+
|
|
67
|
+
**Compute global statistics first:**
|
|
68
|
+
- `globalMean` = mean of `avgGuests` across all cells with data
|
|
69
|
+
- `globalStdDev` = STDDEV of `avgGuests` across all cells
|
|
70
|
+
|
|
71
|
+
**Classification:**
|
|
72
|
+
- **Peak** = cells where `avgGuests > (globalMean + 1 × globalStdDev)`
|
|
73
|
+
- **Hot** = cells where `avgGuests > globalMean` but below peak threshold
|
|
74
|
+
- **Quiet** = cells where `avgGuests < (globalMean - 0.5 × globalStdDev)`
|
|
75
|
+
- **Empty** = cells with no historical slot data (never scheduled)
|
|
76
|
+
|
|
77
|
+
## Staffing Formula
|
|
78
|
+
|
|
79
|
+
Apply these role-specific ratios to translate guest counts into staff headcount:
|
|
80
|
+
|
|
81
|
+
| Role | Ratio | Experience Type |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| Chandler Guide | 1 per 6 candle bar guests | Kandle Experience, Kitten & Kandle Combo |
|
|
84
|
+
| Klubhouse Kounselor | 1 per 8 kitten lounge guests | Kitten Experience, Kitten & Kandle Combo |
|
|
85
|
+
| POS / Host | 1 always | All sessions |
|
|
86
|
+
|
|
87
|
+
For a slot with 12 candle bar guests + 12 kitten lounge guests:
|
|
88
|
+
- 2 Chandler Guides + 2 Klubhouse Kounselor + 1 Host = **5 staff minimum**
|
|
89
|
+
|
|
90
|
+
Round up fractional staff. Never round down — understaffing a kitten lounge is a welfare risk.
|
|
91
|
+
|
|
92
|
+
## Output Structure
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 1. Demand Heatmap
|
|
97
|
+
|
|
98
|
+
A 12×7 table (hours 10am–9pm as rows, Mon–Sun as columns). Each cell shows average guest count rounded to 1 decimal. Use visual intensity markers:
|
|
99
|
+
|
|
100
|
+
- 🔴 Peak (> mean + 1σ)
|
|
101
|
+
- 🟡 Hot (> mean)
|
|
102
|
+
- ⚫ (no marker) Normal
|
|
103
|
+
- — Empty/no data
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Mon Tue Wed Thu Fri Sat Sun
|
|
107
|
+
10:00 AM 3.1 2.8 2.4 3.0 4.2 5.8 4.1
|
|
108
|
+
11:00 AM 4.2 3.9 3.7 4.1 6.3 🔴8.2 🟡6.4
|
|
109
|
+
12:00 PM 5.1 4.8 4.4 5.2 🟡7.1 🔴9.4 🟡7.8
|
|
110
|
+
...
|
|
111
|
+
7:00 PM 6.8 5.4 5.9 🟡7.2 🔴9.8 🔴10.4 5.1
|
|
112
|
+
8:00 PM 4.2 3.1 3.4 4.8 🟡6.8 🟡7.2 3.0
|
|
113
|
+
9:00 PM — — — — 2.4 3.1 —
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 2. Top 5 Peak Windows
|
|
117
|
+
|
|
118
|
+
Ranked by average guest count:
|
|
119
|
+
|
|
120
|
+
| Rank | Day | Time | Avg Guests | Max Recorded | Notes |
|
|
121
|
+
|---|---|---|---|---|---|
|
|
122
|
+
| 1 | Saturday | 12:00 PM | 9.4 | 14 | Fully booked 4 of last 8 weeks |
|
|
123
|
+
| 2 | Friday | 7:00 PM | 9.8 | 12 | Valentine's peak in Feb |
|
|
124
|
+
| 3 | Saturday | 7:00 PM | 10.4 | 14 | Consistently sold out |
|
|
125
|
+
| 4 | Friday | 12:00 PM | 7.1 | 10 | Lunch crowd + remote workers |
|
|
126
|
+
| 5 | Sunday | 12:00 PM | 7.8 | 12 | Brunch-adjacent |
|
|
127
|
+
|
|
128
|
+
### 3. Quietest Windows
|
|
129
|
+
|
|
130
|
+
Good times to schedule inventory work, kitten care, training, and cleaning without impacting guests:
|
|
131
|
+
|
|
132
|
+
| Day | Time | Avg Guests | Recommended Use |
|
|
133
|
+
|---|---|---|---|
|
|
134
|
+
| Tuesday | 10:00 AM | 2.8 | Inventory restock, fragrance reorganization |
|
|
135
|
+
| Wednesday | 10:00 AM | 2.4 | Deep clean, litter box maintenance |
|
|
136
|
+
| Thursday | 9:00 PM | — | No bookings — schedule end-of-day kitten care |
|
|
137
|
+
|
|
138
|
+
### 4. Staffing Recommendation Table
|
|
139
|
+
|
|
140
|
+
One row per peak or hot window, with minimum staffing:
|
|
141
|
+
|
|
142
|
+
| Window | Avg Guests | Chandler Guides | Klubhouse Kounselers | Host | Total Staff |
|
|
143
|
+
|---|---|---|---|---|---|
|
|
144
|
+
| Sat 12 PM | 9.4 | 2 | 2 | 1 | 5 |
|
|
145
|
+
| Fri 7 PM | 9.8 | 2 | 2 | 1 | 5 |
|
|
146
|
+
| Sat 7 PM | 10.4 | 2 | 2 | 1 | 5 |
|
|
147
|
+
| Fri 12 PM | 7.1 | 2 | 1 | 1 | 4 |
|
|
148
|
+
| Sun 12 PM | 7.8 | 2 | 1 | 1 | 4 |
|
|
149
|
+
|
|
150
|
+
### 5. Seasonal Note
|
|
151
|
+
|
|
152
|
+
If the current month or the next 30 days include a known high-demand period, add a brief callout:
|
|
153
|
+
|
|
154
|
+
- **February**: Valentine's Day spike. Expect 2–3× normal demand on Feb 14 and the surrounding weekend. Consider adding capacity or a Private buyout option for groups of 4+.
|
|
155
|
+
- **November–December**: Holiday gifting season. Gift card sales surge; book-a-session gift purchases require inventory buffer.
|
|
156
|
+
- **March–May**: Spring surge. New kitten fosters arrive; coordinate schedule with {{rescuePartnerName}}.
|
|
157
|
+
- **Summer (Jun–Aug)**: Family demand increases. Party-of-4+ bookings rise. Private experience marketing performs well.
|
|
158
|
+
|
|
159
|
+
If no seasonal note applies to the current period, omit this section entirely.
|