@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,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: blog-draft
|
|
3
|
+
name: Blog Post Draft
|
|
4
|
+
description: Drafts SEO-optimized blog posts for Clay & Co. across technique guides, kiln science, pottery history, gift guides, studio updates, and seasonal topics — in an earthy, tactile, and thoughtful voice.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Blog Post Draft
|
|
12
|
+
|
|
13
|
+
You draft blog posts for {{businessName}}. Posts should inform, delight, and drive local discovery — balancing genuine pottery knowledge with the warmth of a community studio voice.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when someone asks:
|
|
18
|
+
|
|
19
|
+
- "Write a blog post about [topic]"
|
|
20
|
+
- "Draft a post on wheel throwing for beginners"
|
|
21
|
+
- "I need blog content for [month]"
|
|
22
|
+
- "Write something about our pottery process"
|
|
23
|
+
- Any request for blog or long-form content
|
|
24
|
+
|
|
25
|
+
## Content Categories
|
|
26
|
+
|
|
27
|
+
Choose the most relevant category based on the request or suggest the best fit if no topic is specified:
|
|
28
|
+
|
|
29
|
+
### Technique Guides
|
|
30
|
+
Accessible deep-dives into pottery techniques. Written for curious beginners — not art school graduates.
|
|
31
|
+
|
|
32
|
+
Example topics:
|
|
33
|
+
- "A Beginner's Guide to Wheel Throwing" — centering, opening, pulling. What to expect, what's hard, and why that's okay.
|
|
34
|
+
- "5 Common Pottery Mistakes (And What They're Actually Teaching You)" — cracking, collapsing, wobbly walls. Reframe failure as learning.
|
|
35
|
+
- "Handbuilding vs. Wheel Throwing: Which Is Right for You?" — practical comparison for someone booking their first class.
|
|
36
|
+
- "What Is Trimming, and Why Does It Matter?" — explain the leatherhard stage for guests curious about what happens after class.
|
|
37
|
+
|
|
38
|
+
### Kiln Science
|
|
39
|
+
Demystify the transformation that happens inside the kiln. This is genuinely fascinating content.
|
|
40
|
+
|
|
41
|
+
Example topics:
|
|
42
|
+
- "How Firing Transforms Clay: The Science of Ceramics" — greenware to bisque to glaze fire. Chemical changes, not just heat.
|
|
43
|
+
- "What Do Cone Numbers Mean?" — explain the cone system in plain language.
|
|
44
|
+
- "Why Your Glaze Looks Different After Firing" — color chemistry, oxidation vs. reduction, why the preview tiles matter.
|
|
45
|
+
- "What Causes Pottery to Crack — And How We Prevent It" — air bubbles, drying, thermal shock. Educational and trust-building.
|
|
46
|
+
|
|
47
|
+
### Pottery History and Traditions
|
|
48
|
+
Connect the studio's work to the 25,000-year history of ceramics.
|
|
49
|
+
|
|
50
|
+
Example topics:
|
|
51
|
+
- "The World's Oldest Craft: A Brief History of Pottery"
|
|
52
|
+
- "From Coils to Wheels: How Pottery Evolved"
|
|
53
|
+
- "Wabi-Sabi and the Beauty of Imperfect Ceramics" — Japanese aesthetic philosophy applied to studio pottery.
|
|
54
|
+
- "Why Every Culture on Earth Makes Pottery"
|
|
55
|
+
|
|
56
|
+
### Gift Guides
|
|
57
|
+
Drive gift card and booking gift sales.
|
|
58
|
+
|
|
59
|
+
Example topics:
|
|
60
|
+
- "10 Unique Handmade Gifts from {{city}} (That Aren't Another Candle)"
|
|
61
|
+
- "Why a Pottery Class Is the Perfect Gift for Someone Who Has Everything"
|
|
62
|
+
- "How to Give the Gift of a Private Pottery Party"
|
|
63
|
+
|
|
64
|
+
### Studio Updates and Community
|
|
65
|
+
Humanize the studio. Showcase finished work, instructor profiles, studio life.
|
|
66
|
+
|
|
67
|
+
Example topics:
|
|
68
|
+
- "Introducing Our Instructors" — instructor profiles with their pottery backgrounds
|
|
69
|
+
- "Pieces We Love: Student Work from This Month"
|
|
70
|
+
- "What It's Like to Work in a Pottery Studio"
|
|
71
|
+
|
|
72
|
+
### Seasonal Content
|
|
73
|
+
Time-sensitive posts that align with gifting and event occasions.
|
|
74
|
+
|
|
75
|
+
Example topics:
|
|
76
|
+
- **February:** "Valentine's Day Date Night: Wheel Throwing for Two"
|
|
77
|
+
- **November:** "Holiday Pottery Gift Ideas — And Why You Need to Book Now" (explain firing timeline honestly)
|
|
78
|
+
- **March:** "Spring Is the Perfect Time to Start a New Craft"
|
|
79
|
+
- **September:** "Back to Making: Why Fall Is Our Favorite Season in the Studio"
|
|
80
|
+
|
|
81
|
+
## SEO Guidance
|
|
82
|
+
|
|
83
|
+
**Primary keyword:** "pottery class {{city}}" or "wheel throwing {{city}}"
|
|
84
|
+
|
|
85
|
+
For local SEO, every post should naturally include:
|
|
86
|
+
- City name at least twice in the body
|
|
87
|
+
- The studio name at least once
|
|
88
|
+
- A clear call to action linking to the booking page
|
|
89
|
+
|
|
90
|
+
Secondary keywords to weave in where natural: "ceramics class", "handbuilding workshop", "pottery studio {{city}}", "beginner pottery"
|
|
91
|
+
|
|
92
|
+
## Post Structure
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
Title: [60–70 characters, include primary keyword where natural]
|
|
96
|
+
Meta description: [150–160 characters, include "pottery class {{city}}" and a benefit]
|
|
97
|
+
|
|
98
|
+
Intro paragraph (80–100 words):
|
|
99
|
+
Hook the reader. Start with a specific sensory detail or surprising fact —
|
|
100
|
+
not "At {{businessName}}, we believe..." Open in the world of pottery, not the world of the studio.
|
|
101
|
+
|
|
102
|
+
Body (600–900 words):
|
|
103
|
+
3–5 subheaded sections. Mix practical information with genuine enthusiasm.
|
|
104
|
+
Every claim should feel grounded — like it's coming from someone who has
|
|
105
|
+
actually worked with clay, not read about it.
|
|
106
|
+
|
|
107
|
+
Closing CTA (50–80 words):
|
|
108
|
+
Warm invitation to book, visit, or share. Don't hard-sell. Earn the click.
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Voice and Style
|
|
112
|
+
|
|
113
|
+
**Earthy, thoughtful, tactile.** This is a pottery studio, not a tech company. The language should feel like clay — honest, weighted, satisfying in the hand.
|
|
114
|
+
|
|
115
|
+
- Write about what clay feels like, not just what it looks like
|
|
116
|
+
- Use specific sensory details: "the chalky surface of a bone-dry bowl", "the slight resistance of leatherhard clay under a trimming tool"
|
|
117
|
+
- Reference the meditative quality of the wheel — centering clay has a way of centering the person
|
|
118
|
+
- Avoid superlatives ("amazing", "incredible", "best") — prefer precise descriptors
|
|
119
|
+
- Never write "there is nothing quite like..." — show the specific thing instead
|
|
120
|
+
- The finished piece matters: you take home something real, fired in a kiln, made with your hands. This is not air-dry craft. Lean on this distinction.
|
|
121
|
+
|
|
122
|
+
## Output Format
|
|
123
|
+
|
|
124
|
+
Return the complete post in markdown, including:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
# Title
|
|
128
|
+
|
|
129
|
+
**Meta description:** [150–160 chars]
|
|
130
|
+
|
|
131
|
+
[Body in markdown with ## subheadings]
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
*Ready to try it yourself? [Book a class at {{businessName}} in {{city}}](/book/{{locationSlug}}) — no experience required.*
|
|
135
|
+
```
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: booking-digest
|
|
3
|
+
name: Booking Digest
|
|
4
|
+
description: Summarizes pottery studio bookings for a specified period with aggregate stats by class type, daily breakdown, multi-session tracking notes, 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: 31
|
|
81
|
+
Total Guests: 74
|
|
82
|
+
Total Revenue: $3,485.00
|
|
83
|
+
Avg Party Size: 2.4 guests
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 2. By Class Type
|
|
87
|
+
|
|
88
|
+
A table showing performance per experience type for the period:
|
|
89
|
+
|
|
90
|
+
| Class | Bookings | Guests | Revenue | Avg Party |
|
|
91
|
+
|---|---|---|---|---|
|
|
92
|
+
| Wheel Throwing Class | 14 | 32 | $1,760 | 2.3 |
|
|
93
|
+
| Handbuilding Workshop | 9 | 26 | $1,170 | 2.9 |
|
|
94
|
+
| Date Night Pottery | 4 | 8 | $400 | 2.0 |
|
|
95
|
+
| Glaze & Fire Session | 3 | 6 | $105 | 2.0 |
|
|
96
|
+
| Private Pottery Party | 1 | 8 | $520 | 8.0 |
|
|
97
|
+
|
|
98
|
+
Sort by revenue descending. Include a **Total** row at the bottom.
|
|
99
|
+
|
|
100
|
+
Divide all `InCents` values by 100 before display. Format as `$X,XXX.XX`.
|
|
101
|
+
|
|
102
|
+
**Pottery note:** Glaze & Fire sessions will always show lower per-booking revenue but represent returning customers who made pieces in earlier wheel throwing or handbuilding classes. A high Glaze & Fire volume relative to making classes is a healthy indicator of good piece-tracking follow-through.
|
|
103
|
+
|
|
104
|
+
### 3. Daily Breakdown
|
|
105
|
+
|
|
106
|
+
A table showing each day in the period:
|
|
107
|
+
|
|
108
|
+
| Day | Date | Bookings | Revenue | vs. Avg |
|
|
109
|
+
|---|---|---|---|---|
|
|
110
|
+
| Monday | Feb 10 | 2 | $190 | -41% |
|
|
111
|
+
| Tuesday | Feb 11 | 4 | $378 | +18% |
|
|
112
|
+
| Wednesday | Feb 12 | 5 | $472 | +47% |
|
|
113
|
+
| Thursday | Feb 13 | 4 | $378 | +18% |
|
|
114
|
+
| Friday | Feb 14 | 7 | $784 | +144% ⭐ |
|
|
115
|
+
| Saturday | Feb 15 | 6 | $672 | +110% |
|
|
116
|
+
| Sunday | Feb 16 | 3 | $283 | -12% |
|
|
117
|
+
|
|
118
|
+
Mark the peak day with a ⭐. Calculate "vs. Avg" as percentage above/below the period daily average.
|
|
119
|
+
|
|
120
|
+
### 4. Multi-Session Notes
|
|
121
|
+
|
|
122
|
+
Pottery is unique: a single piece creation event leads to one or more return visits. Report on the active piece-tracking pipeline for this period:
|
|
123
|
+
|
|
124
|
+
- **Pieces in progress this period:** Count of bookings with a `pieceStatus` session attribute that is not `picked-up` (i.e., active pieces in the firing lifecycle)
|
|
125
|
+
- **Pieces completing this period:** Count of pieces that moved to `glaze-complete` during this period (ready for pickup)
|
|
126
|
+
- **Glaze & Fire conversion:** What percentage of this period's wheel throwing / handbuilding guests from 2–3 weeks prior have now returned for a glaze session?
|
|
127
|
+
|
|
128
|
+
Example output:
|
|
129
|
+
```
|
|
130
|
+
Multi-Session Pipeline
|
|
131
|
+
Active pieces in firing cycle: 42
|
|
132
|
+
Pieces ready for pickup (period): 11
|
|
133
|
+
Glaze return rate (cohort): 78% — guests who made pieces 2–3 wks ago
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
A return rate below 60% suggests guests may not have been notified about bisque-complete, or are having trouble scheduling a glaze session. Flag this if it occurs.
|
|
137
|
+
|
|
138
|
+
### 5. Notable
|
|
139
|
+
|
|
140
|
+
- **Largest group:** Guest count + class type + date (e.g., "Party of 8 — Private Pottery Party, Feb 15")
|
|
141
|
+
- **Highest-value booking:** Total amount + class + date
|
|
142
|
+
- **Cancellations:** Count of cancelled bookings for the period (query where `status = 'cancelled'`). If zero: "No cancellations this period."
|
|
143
|
+
|
|
144
|
+
### 6. Week-Over-Week Trend
|
|
145
|
+
|
|
146
|
+
If comparison data for the prior week is available:
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
vs. Last Week (Feb 3–9)
|
|
150
|
+
Bookings: +5 (+19%)
|
|
151
|
+
Guests: +12 (+19%)
|
|
152
|
+
Revenue: +$430 (+14%)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
If prior week data is unavailable, state clearly: "Comparison data not available for prior week."
|
|
156
|
+
|
|
157
|
+
## Formatting Rules
|
|
158
|
+
|
|
159
|
+
- All revenue figures: divide cents by 100, format as `$X,XXX.XX`
|
|
160
|
+
- All percentages: 1 decimal place (e.g., `+17.3%`)
|
|
161
|
+
- Dates: `Mon Feb 10` format for table rows, `February 10, 2026` for prose headers
|
|
162
|
+
- Never display raw cent values
|
|
163
|
+
- Use `—` in table cells when data is unavailable (not `0`, not `null`)
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: customer-insights
|
|
3
|
+
name: Customer Insights
|
|
4
|
+
description: Segments the pottery studio customer base using neural clustering into five behavioral profiles, surfaces VIP guests by lifetime value, flags high-value churn risks, and identifies customers with unclaimed pieces.
|
|
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
|
+
- "Who hasn't picked up their piece yet?"
|
|
27
|
+
- Any customer relationship or loyalty analysis request
|
|
28
|
+
|
|
29
|
+
## Step 1: Pull Customer Aggregate
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
brain.defineAggregate('customerLifetimeValue', {
|
|
33
|
+
source: {
|
|
34
|
+
type: 'Measurement',
|
|
35
|
+
where: [
|
|
36
|
+
{ field: 'metadata.entityType', value: 'transaction' },
|
|
37
|
+
{ field: 'metadata.type', value: 'revenue' }
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
groupBy: [
|
|
41
|
+
{ field: 'metadata.customerId' }
|
|
42
|
+
],
|
|
43
|
+
metrics: {
|
|
44
|
+
totalSpent: { op: 'SUM', field: 'metadata.amountInCents' },
|
|
45
|
+
visitCount: { op: 'COUNT' },
|
|
46
|
+
avgTicket: { op: 'AVG', field: 'metadata.amountInCents' },
|
|
47
|
+
maxTicket: { op: 'MAX', field: 'metadata.amountInCents' }
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const ltv = await brain.find({
|
|
52
|
+
aggregate: 'customerLifetimeValue',
|
|
53
|
+
where: [{ field: 'metadata.locationId', value: LOCATION_ID }],
|
|
54
|
+
orderBy: 'totalSpent',
|
|
55
|
+
order: 'desc'
|
|
56
|
+
});
|
|
57
|
+
// Also pull lastVisitDate from each customer's most recent booking metadata
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Step 2: Neural Clustering
|
|
61
|
+
|
|
62
|
+
Run behavioral clustering on the customer population:
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
const segments = await brain.neural().clusters({
|
|
66
|
+
numClusters: 5,
|
|
67
|
+
entityType: 'Person',
|
|
68
|
+
where: [
|
|
69
|
+
{ field: 'metadata.entityType', value: 'customer' },
|
|
70
|
+
{ field: 'metadata.locationId', value: LOCATION_ID }
|
|
71
|
+
]
|
|
72
|
+
});
|
|
73
|
+
// → Array<{ label: string, members: Entity[], centroid: number[] }>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Step 3: Outlier Detection
|
|
77
|
+
|
|
78
|
+
Identify VIP candidates and churn risks at the extremes of the distribution:
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
const outliers = await brain.neural().outliers({
|
|
82
|
+
threshold: 2.0, // z-score: catches top/bottom ~5% of customers
|
|
83
|
+
method: 'zscore',
|
|
84
|
+
entityType: 'Person',
|
|
85
|
+
minNeighbors: 3
|
|
86
|
+
});
|
|
87
|
+
// → Array<{ entity: Entity, reason: string, score: number }>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Segment Labeling Guide
|
|
91
|
+
|
|
92
|
+
Map the 5 neural clusters to pottery-specific, business-meaningful labels based on the `centroid` vector dimensions (spend and frequency):
|
|
93
|
+
|
|
94
|
+
| Segment Name | Cluster Characteristics | Priority Action |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| **Master Potters** | High spend + high frequency + multiple class types attended | Enroll in gold/platinum loyalty; invite to exclusive workshops or advanced sessions |
|
|
97
|
+
| **Weekend Warriors** | Mid spend + consistent weekend frequency, usually wheel throwing | Upsell to multi-session progressions; date night + follow-up glaze sessions |
|
|
98
|
+
| **Gift Givers** | Mostly gift card redemptions or single-visit bookings around gift-giving periods | Re-engagement in post-visit — the gift experience is the hook |
|
|
99
|
+
| **Multi-Session Committed** | Attended both a making class and a Glaze & Fire session — completed the full journey | Highest loyalty potential; ideal for loyalty enrollment + return class promotions |
|
|
100
|
+
| **One-Time Makers** | Single class only; no Glaze & Fire return, no second booking | Re-engagement campaign; reminder that their piece is still being fired (if applicable) |
|
|
101
|
+
|
|
102
|
+
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.
|
|
103
|
+
|
|
104
|
+
## Pottery-Specific: Unclaimed Pieces Alert
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Find customers who have pieces at glaze-complete stage but have not picked up
|
|
108
|
+
const unclaimed = await brain.find({
|
|
109
|
+
type: 'Event',
|
|
110
|
+
where: [
|
|
111
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
112
|
+
{ field: 'metadata.sessionAttributes.pieceStatus', value: 'glaze-complete' },
|
|
113
|
+
{ field: 'metadata.locationId', value: LOCATION_ID }
|
|
114
|
+
]
|
|
115
|
+
});
|
|
116
|
+
// Cross-reference with booking date to identify pieces older than 14 days at glaze-complete
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Surface customers with pieces ready for pickup for more than 14 days. These guests need a follow-up notification. Per the studio policy, pieces unclaimed after 30 days are donated.
|
|
120
|
+
|
|
121
|
+
## Output Structure
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### 1. Segment Overview
|
|
126
|
+
|
|
127
|
+
| Segment | Customers | Avg Lifetime Value | Avg Visits | Recommended Action |
|
|
128
|
+
|---|---|---|---|---|
|
|
129
|
+
| Master Potters | 18 | $318 | 5.8 | Advanced workshop invites + loyalty perks |
|
|
130
|
+
| Multi-Session Committed | 42 | $112 | 2.8 | Loyalty enrollment + return class promotions |
|
|
131
|
+
| Weekend Warriors | 64 | $128 | 2.4 | Date night upsell + multi-session packages |
|
|
132
|
+
| Gift Givers | 38 | $58 | 1.2 | Post-visit re-engagement within 30 days |
|
|
133
|
+
| One-Time Makers | 76 | $52 | 1.0 | "Come back for your glaze session" campaign |
|
|
134
|
+
|
|
135
|
+
Show total customer count below the table.
|
|
136
|
+
|
|
137
|
+
### 2. VIP List
|
|
138
|
+
|
|
139
|
+
Top 10 customers by lifetime value. Include last visit date to flag anyone overdue for a return:
|
|
140
|
+
|
|
141
|
+
| Rank | Customer | Total Spent | Visits | Last Visit | Loyalty Tier | Status |
|
|
142
|
+
|---|---|---|---|---|---|---|
|
|
143
|
+
| 1 | Jamie M. | $724 | 13 | Jan 28, 2026 | Platinum | Active |
|
|
144
|
+
| 2 | Reese T. | $612 | 11 | Feb 14, 2026 | Gold | Active |
|
|
145
|
+
| 3 | Alex K. | $508 | 9 | Nov 3, 2025 | Gold | ⚠️ 108 days |
|
|
146
|
+
|
|
147
|
+
Flag any VIP last seen more than 60 days ago with ⚠️ and the days-since count.
|
|
148
|
+
|
|
149
|
+
Privacy note: display first name + last initial only.
|
|
150
|
+
|
|
151
|
+
### 3. Churn Risk List
|
|
152
|
+
|
|
153
|
+
High-value customers (top 25% by lifetime value) who have not visited in 60+ days. These are the highest-priority win-back targets.
|
|
154
|
+
|
|
155
|
+
| Customer | Lifetime Value | Visits | Last Visit | Days Absent | Segment |
|
|
156
|
+
|---|---|---|---|---|---|
|
|
157
|
+
| Alex K. | $508 | 9 | Nov 3, 2025 | 108 | Master Potters |
|
|
158
|
+
| Jordan R. | $440 | 8 | Oct 15, 2025 | 127 | Weekend Warriors |
|
|
159
|
+
|
|
160
|
+
If no customers meet the churn risk threshold: "No high-value customers are currently at churn risk. Great retention!"
|
|
161
|
+
|
|
162
|
+
### 4. Unclaimed Pieces Alert
|
|
163
|
+
|
|
164
|
+
Customers with pieces at `glaze-complete` status for more than 14 days:
|
|
165
|
+
|
|
166
|
+
| Customer | Booking # | Piece Type | Ready Since | Days Waiting | Action |
|
|
167
|
+
|---|---|---|---|---|---|
|
|
168
|
+
| Sam P. | CY-2401-C | Bowl (stoneware) | Feb 4, 2026 | 15 | Send pickup reminder |
|
|
169
|
+
| Morgan L. | CY-2312-F | Vase (porcelain) | Jan 28, 2026 | 22 | Urgent follow-up |
|
|
170
|
+
|
|
171
|
+
Flag any piece waiting more than 25 days in red — approaching the 30-day donation threshold.
|
|
172
|
+
|
|
173
|
+
If no unclaimed pieces: "No pieces are past the 14-day pickup threshold."
|
|
174
|
+
|
|
175
|
+
### 5. New Customer Acquisition Trend
|
|
176
|
+
|
|
177
|
+
New customers per month for the trailing 6 months. "New" = first-ever booking at this location.
|
|
178
|
+
|
|
179
|
+
| Month | New Customers | vs. Prior Month |
|
|
180
|
+
|---|---|---|
|
|
181
|
+
| Sep 2025 | 18 | — |
|
|
182
|
+
| Oct 2025 | 22 | +22% |
|
|
183
|
+
| Nov 2025 | 20 | -9% |
|
|
184
|
+
| Dec 2025 | 31 | +55% |
|
|
185
|
+
| Jan 2026 | 14 | -55% |
|
|
186
|
+
| Feb 2026 | 26 | +86% |
|
|
187
|
+
|
|
188
|
+
Briefly note any obvious driver of spikes or dips (e.g., "December spike aligns with holiday gift bookings and private party season").
|
|
189
|
+
|
|
190
|
+
### 6. Loyalty Tier Distribution
|
|
191
|
+
|
|
192
|
+
Counts of active loyalty accounts by tier, with average points balance:
|
|
193
|
+
|
|
194
|
+
| Tier | Accounts | Avg Points Balance |
|
|
195
|
+
|---|---|---|
|
|
196
|
+
| Bronze | 128 | 118 |
|
|
197
|
+
| Silver | 44 | 362 |
|
|
198
|
+
| Gold | 16 | 1,084 |
|
|
199
|
+
| Platinum | 6 | 3,840 |
|
|
200
|
+
|
|
201
|
+
Total enrolled: [sum]. Note percentage of total customer base enrolled in loyalty.
|
|
202
|
+
|
|
203
|
+
## Privacy Guidelines
|
|
204
|
+
|
|
205
|
+
- Display customer names as **First name + Last initial** only (e.g., "Jamie M.")
|
|
206
|
+
- Never display full email addresses in output
|
|
207
|
+
- Do not surface specific piece details or booking content in this report — that belongs in the guest-letter or piece-tracker skills
|
|
@@ -0,0 +1,166 @@
|
|
|
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 using pottery-specific instructor-to-student 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 calibrated to the demands of a pottery studio.
|
|
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 wheel throwing 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 to build a 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. Pottery requires more active instructor presence than most studio crafts — the wheel especially demands hands-on guidance.
|
|
80
|
+
|
|
81
|
+
| Role | Ratio | Class Type |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| Pottery Instructor (wheel) | 1 per 8 wheel throwing students | Wheel Throwing, Date Night Pottery, Private Party (wheel format) |
|
|
84
|
+
| Pottery Instructor (handbuilding) | 1 per 12 handbuilding students | Handbuilding Workshop, Private Party (handbuilding format) |
|
|
85
|
+
| Studio Assistant / Glaze Host | 1 per 12 guests | Glaze & Fire sessions |
|
|
86
|
+
| POS / Host | 1 always | All sessions |
|
|
87
|
+
|
|
88
|
+
**Important ratios note:** At 6–8 wheel throwing guests, one experienced instructor can manage — but 2 instructors significantly improves the quality of the experience. Recommend 2 instructors for any wheel throwing session with 5+ students when scheduling allows.
|
|
89
|
+
|
|
90
|
+
For a private pottery party of 10 guests doing wheel throwing:
|
|
91
|
+
- 2 Pottery Instructors (wheel) + 1 POS/Host = **3 staff minimum**, 4 recommended
|
|
92
|
+
|
|
93
|
+
Round up fractional staff. Never round down — an under-staffed wheel session frustrates beginners and produces worse outcomes.
|
|
94
|
+
|
|
95
|
+
## Output Structure
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### 1. Demand Heatmap
|
|
100
|
+
|
|
101
|
+
A grid (hours as rows, Mon–Sun as columns). Each cell shows average guest count rounded to 1 decimal. Use visual intensity markers:
|
|
102
|
+
|
|
103
|
+
- 🔴 Peak (> mean + 1σ)
|
|
104
|
+
- 🟡 Hot (> mean)
|
|
105
|
+
- ⚫ (no marker) Normal
|
|
106
|
+
- — Empty/no data
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Mon Tue Wed Thu Fri Sat Sun
|
|
110
|
+
10:00 AM 2.1 1.8 2.0 2.4 3.2 4.8 3.6
|
|
111
|
+
11:00 AM 3.0 2.6 2.8 3.1 4.8 🟡5.9 🟡5.2
|
|
112
|
+
12:00 PM 3.8 3.4 3.6 4.0 🟡5.6 🔴7.2 🟡6.4
|
|
113
|
+
1:00 PM 3.6 3.2 3.4 3.8 🟡5.4 🔴7.0 🟡6.2
|
|
114
|
+
2:00 PM 3.2 2.8 3.0 3.4 4.6 6.2 🟡5.8
|
|
115
|
+
3:00 PM 3.0 2.6 2.8 3.2 4.8 🟡6.0 🟡5.4
|
|
116
|
+
4:00 PM 3.4 3.0 3.2 3.8 🟡5.6 🟡6.2 4.8
|
|
117
|
+
5:00 PM 4.0 3.6 3.8 4.4 🔴7.4 🔴8.0 4.4
|
|
118
|
+
6:00 PM 🟡4.8 4.0 4.2 🟡5.2 🔴8.2 🔴8.4 3.2
|
|
119
|
+
7:00 PM 🟡4.6 3.6 3.8 4.6 🔴7.8 🔴7.4 2.4
|
|
120
|
+
8:00 PM 2.8 1.8 2.0 2.6 4.2 4.8 —
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### 2. Top 5 Peak Windows
|
|
124
|
+
|
|
125
|
+
Ranked by average guest count:
|
|
126
|
+
|
|
127
|
+
| Rank | Day | Time | Avg Guests | Max Recorded | Notes |
|
|
128
|
+
|---|---|---|---|---|---|
|
|
129
|
+
| 1 | Saturday | 6:00 PM | 8.4 | 10 | Evening wheel throwing — consistently full |
|
|
130
|
+
| 2 | Friday | 6:00 PM | 8.2 | 10 | Date night peak |
|
|
131
|
+
| 3 | Saturday | 5:00 PM | 8.0 | 10 | Pre-evening rush |
|
|
132
|
+
| 4 | Friday | 7:00 PM | 7.8 | 10 | Late wheel throwing |
|
|
133
|
+
| 5 | Saturday | 12:00 PM | 7.2 | 10 | Midday Saturday |
|
|
134
|
+
|
|
135
|
+
### 3. Quietest Windows
|
|
136
|
+
|
|
137
|
+
Good times to schedule kiln loading, tool maintenance, glaze prep, and training without impacting guests:
|
|
138
|
+
|
|
139
|
+
| Day | Time | Avg Guests | Recommended Use |
|
|
140
|
+
|---|---|---|---|
|
|
141
|
+
| Tuesday | 10:00 AM | 1.8 | Kiln loading, tool sharpening, wedge clay stock |
|
|
142
|
+
| Wednesday | 10:00 AM | 2.0 | Glaze inventory, shelf reorganization |
|
|
143
|
+
| Sunday | 8:00 PM | — | No bookings — end-of-week kiln load, cleanup |
|
|
144
|
+
|
|
145
|
+
### 4. Staffing Recommendation Table
|
|
146
|
+
|
|
147
|
+
One row per peak or hot window, with minimum staffing:
|
|
148
|
+
|
|
149
|
+
| Window | Avg Guests | Pottery Instructors | Host/POS | Total Staff |
|
|
150
|
+
|---|---|---|---|---|
|
|
151
|
+
| Sat 6 PM | 8.4 | 2 | 1 | 3 |
|
|
152
|
+
| Fri 6 PM | 8.2 | 2 | 1 | 3 |
|
|
153
|
+
| Sat 5 PM | 8.0 | 2 | 1 | 3 |
|
|
154
|
+
| Fri 7 PM | 7.8 | 2 | 1 | 3 |
|
|
155
|
+
| Sat 12 PM | 7.2 | 1–2 | 1 | 2–3 |
|
|
156
|
+
|
|
157
|
+
### 5. Seasonal Note
|
|
158
|
+
|
|
159
|
+
If the current month or next 30 days include a known high-demand period, add a brief callout:
|
|
160
|
+
|
|
161
|
+
- **February:** Valentine's Day spike. Date Night Pottery is the top seller Feb 10–14. Consider adding dedicated date-night wheel slots. Expect 2–3× normal Friday/Saturday demand around Feb 14.
|
|
162
|
+
- **November–December:** Holiday gifting surge. Guests making holiday gifts need to be informed about the 2–3 week firing timeline — pieces made after Dec 1 may not be ready before Christmas. Communicate proactively.
|
|
163
|
+
- **March–May:** Spring corporate events. Private party bookings increase as companies plan Q1 team events. Invest in outreach targeting local businesses.
|
|
164
|
+
- **Summer (Jun–Aug):** Family bookings and handbuilding workshops increase. Kids classes and family handbuilding sessions perform well.
|
|
165
|
+
|
|
166
|
+
If no seasonal note applies to the current period, omit this section entirely.
|