@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,215 @@
|
|
|
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 (with special attention to lapsed league members), 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 (particularly lapsed league members), 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
|
+
- "League member retention"
|
|
27
|
+
- Any customer relationship, loyalty, or retention 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
|
+
// Also pull experienceSlug from customer's bookings to identify league members vs casual
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Step 2: Identify League Members
|
|
62
|
+
|
|
63
|
+
League players are a distinct and high-priority segment. Pull customers who have at least one `league-night` booking:
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
const leagueBookings = await brain.find({
|
|
67
|
+
type: 'Event',
|
|
68
|
+
where: [
|
|
69
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
70
|
+
{ field: 'metadata.experienceSlug', value: 'league-night' },
|
|
71
|
+
{ field: 'metadata.locationId', value: LOCATION_ID }
|
|
72
|
+
]
|
|
73
|
+
});
|
|
74
|
+
// Extract unique customerId values — these are league members
|
|
75
|
+
// Cross-reference with LTV aggregate to compute league member LTV separately
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Step 3: Neural Clustering
|
|
79
|
+
|
|
80
|
+
Run behavioral clustering on the customer population:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
const segments = await brain.neural().clusters({
|
|
84
|
+
numClusters: 5,
|
|
85
|
+
entityType: 'Person',
|
|
86
|
+
where: [
|
|
87
|
+
{ field: 'metadata.entityType', value: 'customer' },
|
|
88
|
+
{ field: 'metadata.locationId', value: LOCATION_ID }
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
// → Array<{ label: string, members: Entity[], centroid: number[] }>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Step 4: Outlier Detection
|
|
95
|
+
|
|
96
|
+
Identify VIP candidates and churn risks at the extremes of the distribution:
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
const outliers = await brain.neural().outliers({
|
|
100
|
+
threshold: 2.0, // z-score: catches top/bottom ~5% of customers
|
|
101
|
+
method: 'zscore',
|
|
102
|
+
entityType: 'Person',
|
|
103
|
+
minNeighbors: 3
|
|
104
|
+
});
|
|
105
|
+
// → Array<{ entity: Entity, reason: string, score: number }>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Segment Labeling Guide
|
|
109
|
+
|
|
110
|
+
Map the 5 neural clusters to business-meaningful labels based on `centroid` vector dimensions (spend, frequency, and session type diversity):
|
|
111
|
+
|
|
112
|
+
| Segment Name | Cluster Characteristics | Priority Action |
|
|
113
|
+
|---|---|---|
|
|
114
|
+
| **League Regulars** | Weekly or near-weekly attendance via league; highest LTV over time | Season re-enrollment outreach; team appreciation nights; loyalty tier recognition |
|
|
115
|
+
| **Party Planners** | 1–2 annual visits, high per-visit spend (private party or corporate); large group size | Pre-event season outreach (bachelorette season, corporate Q4 events) |
|
|
116
|
+
| **Core Throwers** | Monthly or bi-monthly open throw sessions; mid LTV; not in league | League conversion pitch; Axe 101 lesson upsell |
|
|
117
|
+
| **One-and-Done** | Single visit only; typically open throw or Axe 101; no return | Re-engagement campaign; mention league registration opening |
|
|
118
|
+
| **Lapsed Regulars** | Previously frequent (3+ visits), 60+ days absent; not league-enrolled | Win-back campaign; personalized outreach from a named coach |
|
|
119
|
+
|
|
120
|
+
Apply labels based on cluster centroid proximity — do not mechanically force clusters if the data tells a different story. League member status should always be surfaced separately regardless of which segment they fall into.
|
|
121
|
+
|
|
122
|
+
## Output Structure
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### 1. Segment Overview
|
|
127
|
+
|
|
128
|
+
| Segment | Customers | Avg Lifetime Value | Avg Visits | Recommended Action |
|
|
129
|
+
|---|---|---|---|---|
|
|
130
|
+
| League Regulars | 48 | $620 | 14.2 | Season re-enrollment + loyalty perks |
|
|
131
|
+
| Party Planners | 62 | $380 | 1.8 | Pre-season event outreach |
|
|
132
|
+
| Core Throwers | 94 | $142 | 4.1 | League conversion campaign |
|
|
133
|
+
| One-and-Done | 148 | $38 | 1.0 | Re-engagement — mention league night |
|
|
134
|
+
| Lapsed Regulars | 31 | $210 | 5.4 | Personal win-back from named coach |
|
|
135
|
+
|
|
136
|
+
Show total customer count below the table.
|
|
137
|
+
|
|
138
|
+
### 2. League Member Snapshot
|
|
139
|
+
|
|
140
|
+
League players are the highest-LTV and highest-retention segment. Surface them separately:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
League Member Summary
|
|
144
|
+
Total Active League Members: [count] (enrolled in current or most recent season)
|
|
145
|
+
Lapsed League Members (60+ days, no new registration): [count]
|
|
146
|
+
Avg League Member LTV: $XXX
|
|
147
|
+
Avg Non-League Customer LTV: $XXX
|
|
148
|
+
LTV Multiplier: XXx (league members spend XX× more than non-league customers)
|
|
149
|
+
|
|
150
|
+
League Retention Opportunity: [N] members from last season have not re-enrolled.
|
|
151
|
+
These are your highest-priority re-enrollment targets.
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 3. VIP List
|
|
155
|
+
|
|
156
|
+
Top 10 customers by lifetime value. Include last visit date and flag anyone overdue:
|
|
157
|
+
|
|
158
|
+
| Rank | Customer | Total Spent | Visits | Last Visit | Loyalty Tier | League? | Status |
|
|
159
|
+
|---|---|---|---|---|---|---|---|
|
|
160
|
+
| 1 | Marcus T. | $1,240 | 22 | Feb 12, 2026 | Gold | Yes | Active |
|
|
161
|
+
| 2 | Jordan K. | $980 | 18 | Feb 8, 2026 | Silver | Yes | Active |
|
|
162
|
+
| 3 | Alex R. | $840 | 15 | Nov 4, 2025 | Gold | Yes | ⚠️ 107 days |
|
|
163
|
+
|
|
164
|
+
Flag any VIP last seen more than 60 days ago with ⚠️ and the days-since count.
|
|
165
|
+
|
|
166
|
+
The "League?" column is critical — a lapsed league member is a qualitatively different churn risk than a lapsed casual customer, and the outreach approach should be different (coach-led personal message vs. standard email campaign).
|
|
167
|
+
|
|
168
|
+
Privacy note: display first name + last initial only.
|
|
169
|
+
|
|
170
|
+
### 4. Churn Risk List
|
|
171
|
+
|
|
172
|
+
High-value customers (top 25% by LTV) who have not visited in 60+ days. Lapsed league members in this list are the absolute highest priority.
|
|
173
|
+
|
|
174
|
+
| Customer | Lifetime Value | Visits | Last Visit | Days Absent | League? | Segment |
|
|
175
|
+
|---|---|---|---|---|---|---|
|
|
176
|
+
| Alex R. | $840 | 15 | Nov 4, 2025 | 107 | Yes | Lapsed Regular |
|
|
177
|
+
| Sam W. | $620 | 11 | Oct 28, 2025 | 114 | No | Lapsed Regular |
|
|
178
|
+
|
|
179
|
+
If no customers meet the churn risk threshold: "No high-value customers are currently at churn risk. Great retention!"
|
|
180
|
+
|
|
181
|
+
For lapsed league members, suggest specific outreach: "Consider a personal message from their last assigned coach — reference their best score or their team name from last season."
|
|
182
|
+
|
|
183
|
+
### 5. New Customer Acquisition Trend
|
|
184
|
+
|
|
185
|
+
New customers per month for the trailing 6 months. "New" = first-ever booking at this location.
|
|
186
|
+
|
|
187
|
+
| Month | New Customers | vs. Prior Month |
|
|
188
|
+
|---|---|---|
|
|
189
|
+
| Sep 2025 | 28 | — |
|
|
190
|
+
| Oct 2025 | 34 | +21% |
|
|
191
|
+
| Nov 2025 | 30 | -12% |
|
|
192
|
+
| Dec 2025 | 48 | +60% |
|
|
193
|
+
| Jan 2026 | 22 | -54% |
|
|
194
|
+
| Feb 2026 | 38 | +73% |
|
|
195
|
+
|
|
196
|
+
Briefly note any obvious driver of spikes or dips (e.g., "December spike aligns with holiday private party bookings and gift card redemptions in January creating a secondary surge").
|
|
197
|
+
|
|
198
|
+
### 6. Loyalty Tier Distribution
|
|
199
|
+
|
|
200
|
+
Counts of active loyalty accounts by tier, with average points balance:
|
|
201
|
+
|
|
202
|
+
| Tier | Accounts | Avg Points Balance |
|
|
203
|
+
|---|---|---|
|
|
204
|
+
| Bronze | 214 | 96 |
|
|
205
|
+
| Silver | 78 | 342 |
|
|
206
|
+
| Gold | 34 | 1,080 |
|
|
207
|
+
| Platinum | 12 | 3,820 |
|
|
208
|
+
|
|
209
|
+
Total enrolled: [sum]. Note percentage of total customer base enrolled in loyalty.
|
|
210
|
+
|
|
211
|
+
## Privacy Guidelines
|
|
212
|
+
|
|
213
|
+
- Display customer names as **First name + Last initial** only (e.g., "Marcus T.")
|
|
214
|
+
- Never display full email addresses in output
|
|
215
|
+
- Do not surface session details (throw style, coach notes, personal session data) in this report — that belongs in the guest-letter skill
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: demand-forecast
|
|
3
|
+
name: Demand Forecast
|
|
4
|
+
description: Analyzes historical booking and time-slot data to build a demand heatmap by hour and day of week, identify peak and underutilized windows, and generate coach scheduling recommendations scaled to lane count and session type mix.
|
|
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 lanes are underutilized, and exactly how many coaches should be scheduled for each window. Output is always actionable — a demand heatmap, peak windows, quiet windows, lane utilization flags, 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 Saturday mornings?"
|
|
22
|
+
- "Capacity planning for the holiday weekend"
|
|
23
|
+
- "Scheduling question" / "How do I staff this?"
|
|
24
|
+
- "Which nights need more coaches?"
|
|
25
|
+
- Any demand analysis or capacity planning request
|
|
26
|
+
|
|
27
|
+
## Default Period
|
|
28
|
+
|
|
29
|
+
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.
|
|
30
|
+
|
|
31
|
+
## Aggregate Definition
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
brain.defineAggregate('bookingsByHourDay', {
|
|
35
|
+
source: {
|
|
36
|
+
type: 'Event',
|
|
37
|
+
where: [
|
|
38
|
+
{ field: 'metadata.entityType', value: 'time-slot' }
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
groupBy: [
|
|
42
|
+
{ field: 'metadata.hour' },
|
|
43
|
+
{ field: 'metadata.date', window: 'day' } // client-side map to dayOfWeek (0=Sun…6=Sat)
|
|
44
|
+
],
|
|
45
|
+
metrics: {
|
|
46
|
+
slotCount: { op: 'COUNT' },
|
|
47
|
+
totalGuests: { op: 'SUM', field: 'metadata.reservedCount' },
|
|
48
|
+
avgGuests: { op: 'AVG', field: 'metadata.reservedCount' },
|
|
49
|
+
stddevGuests: { op: 'STDDEV', field: 'metadata.reservedCount' },
|
|
50
|
+
maxGuests: { op: 'MAX', field: 'metadata.reservedCount' }
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const heatmapData = await brain.find({
|
|
55
|
+
aggregate: 'bookingsByHourDay',
|
|
56
|
+
where: [
|
|
57
|
+
{ field: 'metadata.locationId', value: LOCATION_ID },
|
|
58
|
+
{ field: 'metadata.date', value: { gte: START_DATE, lte: END_DATE } }
|
|
59
|
+
]
|
|
60
|
+
});
|
|
61
|
+
// Map groupKey → { dayOfWeek, hour } by parsing the date field from each result
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
After pulling results, map each `groupKey` back to a day-of-week (0–6) and hour (e.g., 4pm–11pm depending on venue hours) to build the weekly grid.
|
|
65
|
+
|
|
66
|
+
## Peak and Quiet Window Logic
|
|
67
|
+
|
|
68
|
+
**Compute global statistics first:**
|
|
69
|
+
- `globalMean` = mean of `avgGuests` across all cells with data
|
|
70
|
+
- `globalStdDev` = STDDEV of `avgGuests` across all cells
|
|
71
|
+
|
|
72
|
+
**Classification:**
|
|
73
|
+
- **Peak** = cells where `avgGuests > (globalMean + 1 × globalStdDev)`
|
|
74
|
+
- **Hot** = cells where `avgGuests > globalMean` but below peak threshold
|
|
75
|
+
- **Quiet** = cells where `avgGuests < (globalMean - 0.5 × globalStdDev)`
|
|
76
|
+
- **Empty** = cells with no historical slot data (never scheduled, or outside operating hours)
|
|
77
|
+
|
|
78
|
+
## Lane Utilization Flag
|
|
79
|
+
|
|
80
|
+
For axe throwing venues, the key metric is lane utilization — not just guest count. Calculate:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
laneUtilizationRate = (lanesInUse / totalLanes) × 100
|
|
84
|
+
|
|
85
|
+
lanesInUse = ceil(reservedCount / maxGuestsPerLane)
|
|
86
|
+
totalLanes = {{laneCount}}
|
|
87
|
+
maxGuestsPerLane = 6 (for open throw) or variable for private/corporate
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Flag any window where average utilization is below **40%** — these are underperforming slots and candidates for promotional pricing, combo deals, or scheduling reduction.
|
|
91
|
+
|
|
92
|
+
## Staffing Formula
|
|
93
|
+
|
|
94
|
+
Apply these role-specific ratios to translate guest counts into minimum coach headcount:
|
|
95
|
+
|
|
96
|
+
| Role | Ratio | Session Type |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| Axe Coach | 1 per 4 active lanes (maximum safely monitored) | All session types during throwing |
|
|
99
|
+
| Axe Coach | 2 minimum during league nights | League Night (must monitor multiple matches) |
|
|
100
|
+
| Bar Host | 1 always during operating hours | All sessions |
|
|
101
|
+
| Check-in / POS | 1 at peak arrival times (30 min before session start) | All sessions |
|
|
102
|
+
|
|
103
|
+
**Example**: A 20-guest private party using 4 lanes requires 1 coach minimum (4 lanes / 4 = 1), but league nights with 8 simultaneous matches require 2 coaches minimum.
|
|
104
|
+
|
|
105
|
+
For private parties and corporate events with competition formats, add 1 additional coach to manage scoring and format logistics.
|
|
106
|
+
|
|
107
|
+
Round up fractional coach counts. Never round down — understaffing a range is a safety risk, not a budget win.
|
|
108
|
+
|
|
109
|
+
## Output Structure
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### 1. Demand Heatmap
|
|
114
|
+
|
|
115
|
+
A weekly grid (hours as rows, Mon–Sun as columns). Each cell shows average guest count rounded to 1 decimal. Use visual intensity markers:
|
|
116
|
+
|
|
117
|
+
- 🔴 Peak (> mean + 1σ)
|
|
118
|
+
- 🟡 Hot (> mean)
|
|
119
|
+
- ⚫ (no marker) Normal
|
|
120
|
+
- — Empty/no data
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Mon Tue Wed Thu Fri Sat Sun
|
|
124
|
+
4:00 PM — 2.1 1.8 4.8 3.2 6.4 4.1
|
|
125
|
+
5:00 PM — 3.4 2.9 6.2 5.8 🟡8.1 🟡7.2
|
|
126
|
+
6:00 PM — 4.2 3.8 🟡7.4 🟡8.4 🔴11.8 🟡9.4
|
|
127
|
+
7:00 PM — 3.8 4.1 🔴10.2 🔴12.6 🔴14.0 🟡8.8
|
|
128
|
+
8:00 PM — 2.4 3.2 8.8 🟡9.8 🔴13.2 5.4
|
|
129
|
+
9:00 PM — — — 8.4 🟡7.2 🟡8.6 —
|
|
130
|
+
10:00 PM — — — 6.8 4.4 5.2 —
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Cells on league nights ({{leagueNights}}) should be marked with an (L) indicator — e.g., `🔴10.2 (L)` — since those lanes are not available for open throw.
|
|
134
|
+
|
|
135
|
+
### 2. Top 5 Peak Windows
|
|
136
|
+
|
|
137
|
+
Ranked by average guest count:
|
|
138
|
+
|
|
139
|
+
| Rank | Day | Time | Avg Guests | Max Recorded | Notes |
|
|
140
|
+
|---|---|---|---|---|---|
|
|
141
|
+
| 1 | Saturday | 7:00 PM | 14.0 | 20 | Private party peak |
|
|
142
|
+
| 2 | Friday | 7:00 PM | 12.6 | 18 | Date night + group surge |
|
|
143
|
+
| 3 | Saturday | 8:00 PM | 13.2 | 20 | Consecutive with 7 PM peak |
|
|
144
|
+
| 4 | Thursday | 7:00 PM | 10.2 | 16 | League night — dedicated lanes |
|
|
145
|
+
| 5 | Friday | 8:00 PM | 9.8 | 14 | Post-dinner arrivals |
|
|
146
|
+
|
|
147
|
+
### 3. Underutilized Windows
|
|
148
|
+
|
|
149
|
+
Windows averaging below 40% lane utilization — opportunities for promotional pricing, early-bird discounts, or corporate outreach:
|
|
150
|
+
|
|
151
|
+
| Day | Time | Avg Guests | Utilization | Recommended Action |
|
|
152
|
+
|---|---|---|---|---|
|
|
153
|
+
| Tuesday | 4:00 PM | 2.1 | 4.4% | Promote weekday happy hour session discount |
|
|
154
|
+
| Wednesday | 4:00 PM | 1.8 | 3.8% | Target corporate lunch/afternoon bookings |
|
|
155
|
+
| Tuesday | 5:00 PM | 3.4 | 7.1% | Add to promotional calendar as off-peak slot |
|
|
156
|
+
|
|
157
|
+
For quiet windows that are purely operational dead zones (e.g., after 9 PM on weekdays): recommend reducing scheduled hours rather than discounting.
|
|
158
|
+
|
|
159
|
+
### 4. Coach Scheduling Recommendation Table
|
|
160
|
+
|
|
161
|
+
One row per peak or hot window:
|
|
162
|
+
|
|
163
|
+
| Window | Avg Guests | Active Lanes | Min Coaches | Bar Host | Total Staff |
|
|
164
|
+
|---|---|---|---|---|---|
|
|
165
|
+
| Sat 6–8 PM | 12.5 | 3–4 | 2 | 1 | 3–4 |
|
|
166
|
+
| Fri 6–8 PM | 10.5 | 3 | 2 | 1 | 3 |
|
|
167
|
+
| Thu 7–9 PM | 9.5 (L) | 4 (league) | 2 | 1 | 3 |
|
|
168
|
+
| Fri 5 PM | 5.8 | 1–2 | 1 | 1 | 2 |
|
|
169
|
+
| Sun 6–7 PM | 9.4 | 2–3 | 1–2 | 1 | 2–3 |
|
|
170
|
+
|
|
171
|
+
League night (Thu) is flagged with (L). The coaching requirement for league is always 2 minimum regardless of lane count — match supervision requires a second set of eyes.
|
|
172
|
+
|
|
173
|
+
### 5. Seasonal Notes
|
|
174
|
+
|
|
175
|
+
Flag upcoming high-demand periods in the next 30–60 days that may require additional coach scheduling or early lane reservations:
|
|
176
|
+
|
|
177
|
+
- **Valentine's Day (Feb 14)**: Expect 2–3× normal demand for couples and private party bookings. Add a dedicated private party block and ensure at least 3 coaches are scheduled.
|
|
178
|
+
- **Spring corporate season (Mar–May)**: Company team-building bookings spike. Ensure corporate inquiry response time is fast — these groups need 4+ weeks lead time to confirm.
|
|
179
|
+
- **Summer (Jun–Aug)**: Bachelor/bachelorette party season. Private party bookings increase significantly. Add Saturday afternoon open throw slots to capture earlier arrivals.
|
|
180
|
+
- **Holiday season (Nov–Dec)**: Gift card sales surge and "holiday party" private bookings fill up quickly. Add a corporate event promotion in October before calendars fill.
|
|
181
|
+
- **New league season start**: League registration opens demand for the first 2–3 weeks of sign-ups. Ensure website booking flow highlights league registration prominently.
|
|
182
|
+
|
|
183
|
+
If no seasonal note applies to the current period, omit this section entirely.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: email-campaign
|
|
3
|
+
name: Email Campaign Writer
|
|
4
|
+
description: Writes complete marketing email campaigns for The Axe House — two A/B subject lines, a preheader, 150–200 word body copy, a CTA button, and an unsubscribe line — across league season announcements, re-engagement, party pitches, corporate outreach, standings updates, and seasonal promotions.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Email Campaign Writer
|
|
12
|
+
|
|
13
|
+
You write marketing emails for {{businessName}} — concise, direct, and specific enough that recipients feel like the email was written for them, not blasted to a list. Every campaign includes two A/B subject line variants, a preheader, body copy, a CTA button label, and a compliant unsubscribe line.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when someone asks:
|
|
18
|
+
|
|
19
|
+
- "Write a marketing email"
|
|
20
|
+
- "Email campaign for [event/offer]"
|
|
21
|
+
- "Re-engagement email for people who haven't been back"
|
|
22
|
+
- "League season announcement"
|
|
23
|
+
- "Corporate event outreach"
|
|
24
|
+
- "Standings email for league members"
|
|
25
|
+
- Any email marketing or newsletter writing request
|
|
26
|
+
|
|
27
|
+
If no campaign type is specified, ask: "What type of campaign is this — new league season, re-engagement, party pitch, corporate outreach, standings update, or seasonal promo?"
|
|
28
|
+
|
|
29
|
+
## Campaign Types
|
|
30
|
+
|
|
31
|
+
| Type | Use Case | Key Angle |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| **New league season** | Announce registration for an upcoming league season | Urgency (lanes fill fast), community, competition |
|
|
34
|
+
| **Re-engagement** | Win back guests absent 60+ days | "The axes are still here" energy + a reason to come back |
|
|
35
|
+
| **Party pitch** | Promote private party and corporate event bookings | Group energy, social proof, specificity about what we provide |
|
|
36
|
+
| **Corporate outreach** | Target teams and companies directly | ROI framing — team building that's actually fun, performance debrief, no one falls asleep |
|
|
37
|
+
| **Standings update** | Send to league members: weekly standings, notable results | Inside-voice, competitive, personal to the league community |
|
|
38
|
+
| **Seasonal promo** | Holiday, Valentine's Day, summer party season, New Year's | Tie to moment in time; urgency comes from the season, not manufactured scarcity |
|
|
39
|
+
|
|
40
|
+
## Output Format
|
|
41
|
+
|
|
42
|
+
Always produce all six components in this order:
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### Subject A
|
|
47
|
+
35–50 characters. Use a **curiosity or question angle** — make them want to know what's inside.
|
|
48
|
+
|
|
49
|
+
Examples:
|
|
50
|
+
- "Can you hit the bullseye, {{firstName}}?"
|
|
51
|
+
- "The league standings are out. It's close."
|
|
52
|
+
- "We counted — it's been 84 days."
|
|
53
|
+
|
|
54
|
+
### Subject B
|
|
55
|
+
35–50 characters. Use a **direct value or offer angle** — lead with what they get.
|
|
56
|
+
|
|
57
|
+
Examples:
|
|
58
|
+
- "New league season — registration opens Monday"
|
|
59
|
+
- "Private party lanes available this weekend 🎯"
|
|
60
|
+
- "Book your corporate event for Q4 — lanes are filling"
|
|
61
|
+
|
|
62
|
+
### Preheader
|
|
63
|
+
85–100 characters. Appears in the inbox preview after the subject. Extends or complements the subject — never repeats it verbatim.
|
|
64
|
+
|
|
65
|
+
Examples:
|
|
66
|
+
- "Eight weeks of competition, a standings board, playoffs, and trophies. Your team in?"
|
|
67
|
+
- "Reserve multiple lanes for your group — a dedicated host runs the whole event."
|
|
68
|
+
- "We haven't seen you since October. Your aim has probably gotten worse. Let's fix that."
|
|
69
|
+
|
|
70
|
+
### Email Body
|
|
71
|
+
150–200 words. 3–4 short paragraphs. Apply these rules:
|
|
72
|
+
|
|
73
|
+
**Opening rule**: Never "Dear Customer" or "Hi there." Open with the hook addressed to `{{firstName}}` or just dive into the value.
|
|
74
|
+
|
|
75
|
+
Good: "{{firstName}}, league registration opens Monday and the spots go fast."
|
|
76
|
+
Bad: "Dear Valued Customer, we are excited to announce..."
|
|
77
|
+
|
|
78
|
+
**Paragraph 2**: The specifics — what, when, how much, what they get. Be concrete. One {{businessName}} detail to make it feel personal (e.g., "{{laneCount}} lanes are already assigned for the season", "your throw from last session is still in our system", "the team that beat you last season signed up yesterday").
|
|
79
|
+
|
|
80
|
+
**Paragraph 3**: The social proof or competitive hook. "Last season filled in 6 days." "The debrief at the end of a corporate event is half the fun — watching the data come in on who actually threw the best."
|
|
81
|
+
|
|
82
|
+
**Paragraph 4 (optional)**: Soft objection handling or a P.S.-style closer.
|
|
83
|
+
|
|
84
|
+
Use contractions. Punchy sentences. Aim for a 7th-grade reading level — this email should scan in 20 seconds.
|
|
85
|
+
|
|
86
|
+
### CTA Button Text
|
|
87
|
+
3–5 words. Action-oriented.
|
|
88
|
+
|
|
89
|
+
Good: "Reserve My Lane", "Register My Team", "Book the Party", "Join This Season"
|
|
90
|
+
Bad: "Submit", "Click Here", "Learn More"
|
|
91
|
+
|
|
92
|
+
### Unsubscribe Line
|
|
93
|
+
```
|
|
94
|
+
You're receiving this because you visited {{businessName}}. Unsubscribe
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## {{businessName}}-Specific Angles
|
|
100
|
+
|
|
101
|
+
Use these details to make emails feel like they came from a real venue, not a template:
|
|
102
|
+
|
|
103
|
+
- **The lanes are real and limited**: "{{laneCount}} lanes. Once they're booked, they're booked." Works for league, private party, and weekend promo campaigns.
|
|
104
|
+
- **The coaching is real**: "Every session starts with a 20-minute coaching block — your form actually improves." Great for re-engagement and first-timer pitches.
|
|
105
|
+
- **League is a community**: Reference the standings, teams, rivalries, and the trophy. League emails should feel like they're written by someone in the league, not marketing it.
|
|
106
|
+
- **Corporate angle**: "Axe throwing tells you things about your team that a ropes course never will." The performance debrief is a genuine differentiator — mention it.
|
|
107
|
+
- **The bar**: Cold drinks, post-session or between-session. Works in party pitches and weekend promo emails.
|
|
108
|
+
- **Seasonal hooks**: Valentine's Day (couples throwing together), summer (outdoor energy inside), holiday season (office party alternative), New Year's (resolution to learn a physical skill).
|
|
109
|
+
|
|
110
|
+
## Tone Rules
|
|
111
|
+
|
|
112
|
+
- Direct and energetic — not corporate, not overly exclamatory
|
|
113
|
+
- Contractions are expected (`you've`, `we're`, `it's`)
|
|
114
|
+
- ONE specific {{businessName}} detail per email to avoid generic feel
|
|
115
|
+
- Emojis: maximum two per email, only where natural — never in Subject A (curiosity variant)
|
|
116
|
+
- Never: "Don't miss out!!!", manufactured scarcity, panic-selling
|
|
117
|
+
- Competitive edge is fine — lean into the sport's competitive nature without being aggressive
|
|
118
|
+
|
|
119
|
+
## Example Output (Re-engagement Campaign)
|
|
120
|
+
|
|
121
|
+
**Subject A**: "It's been a while, {{firstName}}"
|
|
122
|
+
**Subject B**: "Your lane misses you — and your aim"
|
|
123
|
+
**Preheader**: "We've had three new league seasons and a completely sold-out Valentine's weekend since your last session."
|
|
124
|
+
|
|
125
|
+
**Body**:
|
|
126
|
+
{{firstName}}, it's been a while, and we noticed.
|
|
127
|
+
|
|
128
|
+
The range has {{laneCount}} lanes now fully dialed in, and our league just kicked off Season 4. We've had teams form, rivalries develop, and one very memorable championship night that we're still talking about.
|
|
129
|
+
|
|
130
|
+
If you've been meaning to come back, this is a good week. Open Throw sessions are available Tuesday through Sunday, and if you want to throw with people instead of against the clock, league registration opens again in two weeks — teams of 4 to 8.
|
|
131
|
+
|
|
132
|
+
Your first throw back will be rough. By the third one, you'll remember why you liked it.
|
|
133
|
+
|
|
134
|
+
**CTA**: Book My Return Lane
|
|
135
|
+
**Unsubscribe**: You're receiving this because you visited {{businessName}}. Unsubscribe
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: experience-copy
|
|
3
|
+
name: Experience Copy Writer
|
|
4
|
+
description: Writes compelling marketing copy for all five Axe House session types — full booking page descriptions, one-liners, SEO meta descriptions, and social captions — in the brand's bold, direct, sport-forward voice.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Experience Copy Writer
|
|
12
|
+
|
|
13
|
+
You write marketing copy for {{businessName}} session types. For any session, you produce four distinct copy formats: a full booking page description, a scannable one-liner, an SEO meta description, and a social media caption. Every piece should reflect the {{businessName}} brand — bold, direct, physically satisfying, approachable for beginners but credible to experienced throwers.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when someone asks:
|
|
18
|
+
|
|
19
|
+
- "Write copy for [session name]"
|
|
20
|
+
- "Describe the Open Throw experience"
|
|
21
|
+
- "Update the booking page for Private Party"
|
|
22
|
+
- "Marketing copy for league night"
|
|
23
|
+
- "Give me a tagline for Axe 101"
|
|
24
|
+
- Any session description or marketing copy request
|
|
25
|
+
|
|
26
|
+
If no session is specified, ask which one (or offer to produce all five).
|
|
27
|
+
|
|
28
|
+
## The Five {{businessName}} Sessions
|
|
29
|
+
|
|
30
|
+
Know these inside and out — every copy piece must be accurate.
|
|
31
|
+
|
|
32
|
+
### Open Throw Session
|
|
33
|
+
- **Price**: $25 per person
|
|
34
|
+
- **Duration**: 60 minutes
|
|
35
|
+
- **Capacity**: 1–6 guests per lane
|
|
36
|
+
- **What happens**: Guests reserve a lane, complete a mandatory 20-minute safety and technique coaching block with an axe coach, then throw for the remaining time. Choose hatchet or big-axe style. Scoreboard tracking available.
|
|
37
|
+
- **Key selling angles**: The core experience. No experience needed. The 20-minute coaching block means guests are actually throwing well by the time open throw begins, not just flailing. Great for dates, friend groups, and first-timers.
|
|
38
|
+
|
|
39
|
+
### League Night
|
|
40
|
+
- **Price**: $20 per person per night (season registration required)
|
|
41
|
+
- **Duration**: 120 minutes
|
|
42
|
+
- **Capacity**: 4–8 guests per team
|
|
43
|
+
- **What happens**: Weekly competitive matches in a structured 8-week season. WATL-style scoring (5 throws per player, best of 3 sets). Standings updated after each night. Season culminates in playoff bracket and championship.
|
|
44
|
+
- **Key selling angles**: Community. Competition. The weekly ritual that becomes the best night of the week. The progression of skill over 8 weeks is real and visible. Trophies are real.
|
|
45
|
+
|
|
46
|
+
### Private Party
|
|
47
|
+
- **Price**: $35 per person
|
|
48
|
+
- **Duration**: 120 minutes
|
|
49
|
+
- **Capacity**: 8–20 guests
|
|
50
|
+
- **What happens**: Multiple lanes reserved exclusively for the group. Dedicated axe coach/host manages the session. Choose from freestyle, tournament, or team-battle competition formats. Live scoreboard. Bar service throughout.
|
|
51
|
+
- **Key selling angles**: The full group experience. No strangers sharing the space. The host takes care of everything. Competition formats mean someone wins — and everyone talks about it afterward. Best for birthdays, bachelorette parties, and milestone events.
|
|
52
|
+
|
|
53
|
+
### Corporate Event
|
|
54
|
+
- **Price**: $40 per person
|
|
55
|
+
- **Duration**: 150 minutes
|
|
56
|
+
- **Capacity**: 10–30 guests
|
|
57
|
+
- **What happens**: Full venue buyout or dedicated section. Custom competition format. Live team scoring with real-time results. Post-session performance debrief with stats — who threw the best, which team dominated, where scores improved over the session.
|
|
58
|
+
- **Key selling angles**: Team building that people actually enjoy. The debrief is a genuine differentiator — it turns a fun activity into a moment of reflection about who on the team excels under pressure. Invoice billing available for qualifying companies.
|
|
59
|
+
|
|
60
|
+
### Axe 101 Lesson
|
|
61
|
+
- **Price**: $30 per person
|
|
62
|
+
- **Duration**: 45 minutes
|
|
63
|
+
- **Capacity**: 1–4 guests
|
|
64
|
+
- **What happens**: Private coaching session. The coach covers stance, grip, wind-up, release, and follow-through in detail — then watches every throw and gives immediate form feedback. Coach notes provided at end of session.
|
|
65
|
+
- **Key selling angles**: For guests who want to learn correctly, not just throw. Great prep for league debut or a private party where you want to arrive not-embarrassing yourself. The 1-on-4 max ratio means the coach is always watching.
|
|
66
|
+
|
|
67
|
+
## Key Selling Angles (Use Across All Copy)
|
|
68
|
+
|
|
69
|
+
- **No experience needed**: The coaching block removes the barrier. Every session type starts with instruction.
|
|
70
|
+
- **Physically satisfying**: The stick of an axe in a target is one of the best feelings available inside a building. Say it differently each time, but make sure the reader can almost feel it.
|
|
71
|
+
- **Great for groups**: Multiple people can watch, react, trash-talk, and celebrate together — the social dynamic is part of the experience.
|
|
72
|
+
- **Competitive but approachable**: You can just throw, or you can track scores and compete. The option to compete is always there without pressure.
|
|
73
|
+
- **Safety-first environment**: The 20-minute coaching block is a feature, not a disclaimer. It's the reason guests leave feeling capable, not just lucky.
|
|
74
|
+
|
|
75
|
+
## Copy Formats
|
|
76
|
+
|
|
77
|
+
For each session, produce all four formats. Present them clearly labeled.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### Format 1: Full Description (80–120 words)
|
|
82
|
+
|
|
83
|
+
For the booking page. Opens with a hook — a physical sensation, a result, a moment. Not "Book your session here." Covers: what happens, how long, what it costs, and what the guest takes away (a skill improvement, a competition result, a personal best score). The coaching block, when present, should be framed as a benefit, not a formality.
|
|
84
|
+
|
|
85
|
+
**Example (Open Throw Session)**:
|
|
86
|
+
> The first ten throws are coaching. The next fifty are yours. Reserve a lane at {{businessName}}, and your session starts with a 20-minute one-on-one technique block with an axe coach — stance, grip, release, follow-through. By the time the open throw period begins, you're throwing with intent, not just hoping it sticks. Choose hatchet or big-axe style. Track your scores or just throw. Either way, you'll hear the sound of a clean stick and understand why people keep coming back. One hour, $25 per person.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### Format 2: One-Liner (under 15 words)
|
|
91
|
+
|
|
92
|
+
For social bios, list views, comparison widgets, and Google Business profiles. Communicate the essence at a glance. Named, specific, memorable.
|
|
93
|
+
|
|
94
|
+
**Examples**:
|
|
95
|
+
- "20-minute coaching, then you throw. $25 per person. One hour well spent."
|
|
96
|
+
- "Competitive 8-week axe throwing league. {{city}}'s most satisfying {{leagueNights}} night."
|
|
97
|
+
- "Private lanes, dedicated host, real trophy. The group event that writes itself."
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### Format 3: SEO Meta Description (150–160 characters)
|
|
102
|
+
|
|
103
|
+
For search engine result pages. Includes the primary keyword, a benefit, and a soft CTA. Primary keyword for each session:
|
|
104
|
+
|
|
105
|
+
| Session | Primary Keyword |
|
|
106
|
+
|---|---|
|
|
107
|
+
| Open Throw Session | `axe throwing {{city}}` |
|
|
108
|
+
| League Night | `axe throwing league {{city}}` |
|
|
109
|
+
| Private Party | `axe throwing party {{city}}` |
|
|
110
|
+
| Corporate Event | `team building {{city}}` |
|
|
111
|
+
| Axe 101 Lesson | `axe throwing lessons {{city}}` |
|
|
112
|
+
|
|
113
|
+
Keep under 160 characters including spaces. End with a CTA (Book, Reserve, Register, Try).
|
|
114
|
+
|
|
115
|
+
**Example (Private Party)**:
|
|
116
|
+
> Reserve multiple lanes for your group — axe throwing in {{city}} with a dedicated host and tournament bracket included. $35/person. Book now.
|
|
117
|
+
|
|
118
|
+
(Count: 159 characters — verify before publishing.)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### Format 4: Social Caption (120–150 characters)
|
|
123
|
+
|
|
124
|
+
For Instagram and Facebook posts promoting the session. Opens with a hook. Includes a soft CTA. No hashtags in the output here (those go in the post separately).
|
|
125
|
+
|
|
126
|
+
**Examples (Private Party)**:
|
|
127
|
+
- "{{laneCount}} lanes. Your whole group. One dedicated host. One winner. Book a private session at the link."
|
|
128
|
+
- "Birthday. Bachelorette. Work team. Anyone who needs a night that actually delivers. Reserve a private party lane."
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## {{businessName}} Tone Guide
|
|
133
|
+
|
|
134
|
+
| Do | Don't |
|
|
135
|
+
|---|---|
|
|
136
|
+
| Name the physical sensation — the stick, the rotation, the release | Vague references ("our space", "the activity") |
|
|
137
|
+
| Direct confidence — "you will hit the bullseye by throw 30" | Hedging — "guests often enjoy their experience" |
|
|
138
|
+
| Reference the sport correctly (WATL, clutch, hatchet, big axe) | Generic language that could apply to any venue |
|
|
139
|
+
| Warm but not soft — approachable sport, not a theme park | Either corporate jargon OR excessive rowdiness |
|
|
140
|
+
| Brief, punchy sentences in captions | Run-on descriptions that bury the point |
|
|
141
|
+
|
|
142
|
+
If the copy could appear on any generic activity venue's website, it's not specific enough. Rewrite with a {{businessName}} detail — the coaching block, the lane count, the league, the clutch target.
|