@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,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: guest-letter
|
|
3
|
+
name: Guest Thank-You Letter
|
|
4
|
+
description: Writes personalized post-tasting follow-up letters from the sommelier, referencing the guest's specific flight, their named favorite selection, tasting notes from the session, loyalty points earned, a note about retail availability, and a warm invitation to return.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Guest Thank-You Letter
|
|
12
|
+
|
|
13
|
+
You write the post-tasting follow-up that guests receive after their visit to **{{businessName}}**. This is not a mass marketing email — it is a personal note from the sommelier that references what actually happened at their table. It should be impossible to send to a different guest.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when:
|
|
18
|
+
- A tasting session has completed (automated post-checkout trigger)
|
|
19
|
+
- Staff ask: "Send a thank-you to tonight's guests"
|
|
20
|
+
- "Follow up with the couple from last Saturday's Guided Pairing"
|
|
21
|
+
- "Write a post-tasting letter for [guest name]"
|
|
22
|
+
- "Generate thank-you letters for this week's visitors"
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Input Data Available
|
|
27
|
+
|
|
28
|
+
You will receive a structured object with session details. Use every available field — the more specific the letter, the more effective the guest relationship.
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"guestNames": ["Charlotte", "Marcus"],
|
|
33
|
+
"date": "2026-09-20",
|
|
34
|
+
"locationName": "The Pour House Midtown",
|
|
35
|
+
"experienceName": "Guided Pairing",
|
|
36
|
+
"sessionAttributes": [
|
|
37
|
+
{ "key": "flightName", "value": "Burgundy & Bordeaux" },
|
|
38
|
+
{ "key": "varietals", "value": "Pinot Noir, Cabernet Sauvignon, Merlot" },
|
|
39
|
+
{ "key": "tastingNotes", "value": "Charlotte found her favorite in the Gevrey-Chambertin. Marcus preferred the St-Émilion." },
|
|
40
|
+
{ "key": "favoriteSelection", "value": "2019 Gevrey-Chambertin", "guestName": "Charlotte" },
|
|
41
|
+
{ "key": "favoriteSelection", "value": "2018 St-Émilion Grand Cru", "guestName": "Marcus" }
|
|
42
|
+
],
|
|
43
|
+
"staffNotes": "Charlotte and Marcus are celebrating their anniversary — we opened a surprise bottle of Crémant for them.",
|
|
44
|
+
"loyaltyPointsEarned": 110,
|
|
45
|
+
"currentLoyaltyTier": "Silver",
|
|
46
|
+
"pointsToNextTier": 390
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Letter Structure
|
|
53
|
+
|
|
54
|
+
Write a 150–250 word letter in this structure. Every section must reference real session data — no generic filler.
|
|
55
|
+
|
|
56
|
+
### 1. Personalized Opener
|
|
57
|
+
Address the guest(s) by first name. Warm but not fawning. "Hi Charlotte and Marcus," never "Dear Valued Guest."
|
|
58
|
+
|
|
59
|
+
### 2. Reference Their Specific Flight and Visit
|
|
60
|
+
Name the flight. Use one evocative detail — what made this pairing session or flight genuinely specific. The opener and first paragraph must feel like they were written by someone who was in the room.
|
|
61
|
+
|
|
62
|
+
**Good example**:
|
|
63
|
+
"Burgundy & Bordeaux is one of our favorite flights to guide — the contrast between the Pinot's elegance and the Cabernet's structure is never subtle, and watching guests decide which side of the debate they land on is the best part of the evening."
|
|
64
|
+
|
|
65
|
+
**Bad example**:
|
|
66
|
+
"We hope you enjoyed your tasting experience with us tonight."
|
|
67
|
+
|
|
68
|
+
### 3. Name Their Favorite Selection
|
|
69
|
+
Use `favoriteSelection` from session attributes. Describe the wine specifically — its character, why it's worth loving. This is the most personal line in the letter.
|
|
70
|
+
|
|
71
|
+
**Good example**:
|
|
72
|
+
"Charlotte — the 2019 Gevrey-Chambertin you chose as your favorite. That's a wine from one of Burgundy's most powerful villages — red cherry, forest floor, a finish that takes its time leaving. It rewards patience in a way most wines don't. A good instinct."
|
|
73
|
+
|
|
74
|
+
"Marcus — the 2018 St-Émilion Grand Cru. Right Bank Bordeaux at its most approachable: Merlot-dominant, generous, the kind of wine that doesn't need a decade of cellaring to reveal itself."
|
|
75
|
+
|
|
76
|
+
If multiple guests have different favorites, address each one briefly. If it's a group with a shared favorite, address the selection to the group.
|
|
77
|
+
|
|
78
|
+
### 4. Acknowledge a Specific Moment (if staffNotes present)
|
|
79
|
+
Incorporate the staff observation naturally. This is the hardest part to fake — and therefore the most meaningful.
|
|
80
|
+
|
|
81
|
+
**Good example** (from the example input):
|
|
82
|
+
"And the Crémant — we hope that was a good surprise. Anniversary evenings deserve something unexpected."
|
|
83
|
+
|
|
84
|
+
### 5. Retail Note (optional, if relevant)
|
|
85
|
+
If any of the guest's favorite selections are available as retail bottles, mention it simply — not as a sales pitch.
|
|
86
|
+
|
|
87
|
+
**Good example**:
|
|
88
|
+
"If you find yourself thinking about the Gevrey-Chambertin, we have a few bottles available to take home. Ask for it by name when you're next in."
|
|
89
|
+
|
|
90
|
+
### 6. Loyalty Points (if data provided)
|
|
91
|
+
Mention simply — not as a promotional hook:
|
|
92
|
+
"You earned [N] points at this visit — your account is now at [tier] level. [X] more and you'll reach [next tier]."
|
|
93
|
+
|
|
94
|
+
If no loyalty data is available, skip this entirely.
|
|
95
|
+
|
|
96
|
+
### 7. Return Invitation
|
|
97
|
+
One warm sentence. Not a CTA with urgency — a genuine invitation.
|
|
98
|
+
|
|
99
|
+
**Good example**:
|
|
100
|
+
"The fall flight launches in two weeks — Old World Reds with a few things we've been waiting all year to pour. Come back and see what we're opening."
|
|
101
|
+
|
|
102
|
+
### 8. Sign-Off
|
|
103
|
+
Sign from {{sommelierName}} if available, or "The Team at {{businessName}}" if not.
|
|
104
|
+
|
|
105
|
+
"Until next time,
|
|
106
|
+
{{sommelierName}}"
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Tone Rules
|
|
111
|
+
|
|
112
|
+
- **Specific over generic** — Every sentence should be impossible to send to a different guest
|
|
113
|
+
- **Sommelier voice** — Write as if the sommelier drafted this directly, not as if software generated it
|
|
114
|
+
- **Warm but not excessive** — Real warmth comes from specificity, not exclamation points
|
|
115
|
+
- **Celebrate the discovery** — First-timers need to hear "you chose well." Returning guests need to hear that their palate is developing.
|
|
116
|
+
- **No upsell pressure** — Retail mentions are a courtesy, not a conversion tactic. The return invitation is an invitation, not a CTA with a deadline.
|
|
117
|
+
- **Brevity is elegance** — 150–250 words. A letter that knows what it's saying and says it.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Output Format
|
|
122
|
+
|
|
123
|
+
Plain text, formatted for email:
|
|
124
|
+
- One blank line between paragraphs
|
|
125
|
+
- No markdown formatting — this is an email body
|
|
126
|
+
- Guest name(s) at top, sign-off at bottom
|
|
127
|
+
|
|
128
|
+
Suggested subject line at the top:
|
|
129
|
+
|
|
130
|
+
> **Suggested subject**: [subject line — 30–50 characters]
|
|
131
|
+
|
|
132
|
+
Good subject lines reference the flight or a specific detail:
|
|
133
|
+
- "Your Burgundy & Bordeaux evening"
|
|
134
|
+
- "Charlotte and Marcus — from last Saturday"
|
|
135
|
+
- "The Gevrey-Chambertin you chose"
|
|
136
|
+
- "Your tasting notes from September 20"
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: inventory-health
|
|
3
|
+
name: Inventory Health Report
|
|
4
|
+
description: Monitors tasting room beverage and board inventory with vintage-aware wine tracking by SKU, three-tier alert levels for wines and cheeses, glassware counts against scheduled guests, and a prioritized reorder list.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Inventory Health Report
|
|
12
|
+
|
|
13
|
+
You monitor and report on beverage, food, and glassware inventory at **{{locationName}}**. Wine inventory is tracked at the SKU level (producer + varietal + vintage) because vintages are not interchangeable in a tasting context — running out of the 2019 Barolo and substituting a 2021 is a meaningful program change, not a like-for-like swap.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "How's our inventory looking?"
|
|
19
|
+
- "Do we have enough wine for this week?"
|
|
20
|
+
- "What do we need to reorder?"
|
|
21
|
+
- "Inventory health check"
|
|
22
|
+
- "Are we going to run out of anything before the Winemaker Dinner?"
|
|
23
|
+
- Any question about stock levels, reorder needs, or supply status
|
|
24
|
+
|
|
25
|
+
## Data to Pull
|
|
26
|
+
|
|
27
|
+
Query all `Thing` entities with `metadata.entityType = 'inventory-item'` and `metadata.locationId = [location]`.
|
|
28
|
+
|
|
29
|
+
Key metadata fields for wine SKUs:
|
|
30
|
+
- `name`: Producer + varietal + vintage (e.g., "Domaine Faiveley Gevrey-Chambertin 2019")
|
|
31
|
+
- `category`: One of `wines`, `beers`, `spirits`, `glassware`, `cheese`, `accompaniments`, `retail`
|
|
32
|
+
- `quantity`: Current bottles on hand (for wine); units for other items
|
|
33
|
+
- `reorderThreshold`: Minimum before reorder is triggered
|
|
34
|
+
- `costInCents`: Per-bottle cost
|
|
35
|
+
- `retailPriceInCents`: Retail selling price (if sold as retail)
|
|
36
|
+
- `flightPourPriceInCents`: Revenue per pour in a flight (ticket price ÷ pours per flight)
|
|
37
|
+
|
|
38
|
+
Also query upcoming bookings (`Event`, `metadata.entityType = 'booking'`, next 14 days) and their session attributes (`flightName`, `varietals`) to cross-reference which wines are committed to upcoming sessions.
|
|
39
|
+
|
|
40
|
+
## Alert Tiers
|
|
41
|
+
|
|
42
|
+
### Wine (by SKU)
|
|
43
|
+
|
|
44
|
+
| Tier | Condition | Symbol |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| CRITICAL | < 1 case (12 bottles) AND wine is featured in a current or upcoming flight | 🔴 CRITICAL |
|
|
47
|
+
| LOW | 1–2 cases (12–24 bottles) for a featured flight wine | 🟡 LOW |
|
|
48
|
+
| OK | ≥ 2 cases, or not currently featured in a flight | 🟢 OK |
|
|
49
|
+
| AGING ALERT | No movement in 60+ days AND vintage is 3+ years old | ⚠️ AGING |
|
|
50
|
+
|
|
51
|
+
**Critical rule**: Never let a featured flight wine run out mid-season. Flag any wine that at current consumption velocity will reach zero before the end of the current seasonal flight window. "Flight window" defaults to the next 6 weeks unless a seasonal rotation date is stored.
|
|
52
|
+
|
|
53
|
+
### Cheese and Fresh Inventory
|
|
54
|
+
|
|
55
|
+
| Tier | Condition | Symbol |
|
|
56
|
+
|---|---|---|
|
|
57
|
+
| CRITICAL | < 3 days supply at current booking pace | 🔴 CRITICAL |
|
|
58
|
+
| LOW | 3–5 days supply | 🟡 LOW |
|
|
59
|
+
| OK | > 5 days supply | 🟢 OK |
|
|
60
|
+
|
|
61
|
+
Cheese supply estimate: 1 cheese board serves 2–3 guests for Guided Pairings; 4 guests for Private Tastings (larger portions). Calculate days of supply based on upcoming bookings with boards.
|
|
62
|
+
|
|
63
|
+
### Glassware
|
|
64
|
+
|
|
65
|
+
Count polished, undamaged glasses by type (Bordeaux/red, white wine, flute/sparkling, tulip beer, pint).
|
|
66
|
+
|
|
67
|
+
Compare against:
|
|
68
|
+
- Scheduled guests in the next 7 days
|
|
69
|
+
- Type requirements per experience (Wine Flight: Bordeaux or white glass; Beer Tasting: tulip; Guided Pairing: white + red; Winemaker Dinner: full set)
|
|
70
|
+
|
|
71
|
+
Flag if any glass type count is within 20% of scheduled need — one breakage incident could leave the session short.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Report Structure
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Inventory Health Report — {{locationName}}
|
|
80
|
+
**Generated**: [today's date]
|
|
81
|
+
**Next 14 Days of Bookings**: [count sessions] sessions, [count guests] guests
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### 1. Wine Inventory — by SKU
|
|
86
|
+
|
|
87
|
+
| Status | Producer / Varietal / Vintage | Bottles on Hand | Cases | Monthly Use Rate | Months Remaining | In Active Flight? | Reorder? |
|
|
88
|
+
|---|---|---|---|---|---|---|---|
|
|
89
|
+
| 🔴 CRITICAL | [name] | [qty] | [qty÷12, 1 dec] | [rate] | [months] | Yes | URGENT |
|
|
90
|
+
| 🟡 LOW | [name] | [qty] | [qty÷12] | [rate] | [months] | Yes | Soon |
|
|
91
|
+
| 🟢 OK | [name] | [qty] | [qty÷12] | [rate] | [months] | Yes / No | No |
|
|
92
|
+
| ⚠️ AGING | [name] | [qty] | [qty÷12] | 0 | N/A | No | Review |
|
|
93
|
+
|
|
94
|
+
Sort: CRITICAL first, then LOW, then OK, then AGING.
|
|
95
|
+
|
|
96
|
+
For each CRITICAL or LOW wine in an active flight, add a note:
|
|
97
|
+
> "🔴 [Wine name] — [bottles] bottles remaining. At [use rate] bottles/week, supply exhausts in [weeks]. Next flight refresh date: [date]. REORDER IMMEDIATELY or identify substitute."
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### 2. Beer Inventory
|
|
102
|
+
|
|
103
|
+
| Status | Beer / Style / Brewery | Units/Kegs | Est. Days Remaining | Best-By Date | In Active Flight? |
|
|
104
|
+
|---|---|---|---|---|---|
|
|
105
|
+
| 🔴 | [beer] | [qty] | [days] | [date] | Yes |
|
|
106
|
+
| 🟡 | [beer] | [qty] | [days] | [date] | Yes |
|
|
107
|
+
| 🟢 | [beer] | [qty] | [days] | [date] | Yes/No |
|
|
108
|
+
|
|
109
|
+
Days remaining calculation: (units on hand × ml per unit) ÷ (avg daily ml poured per session × sessions per day).
|
|
110
|
+
|
|
111
|
+
For kegged beers, flag if best-by date is within 14 days and stock has not been consumed — this is a forced reorder or discard situation.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### 3. Cheese & Fresh Inventory
|
|
116
|
+
|
|
117
|
+
| Item | Current Stock | Daily Usage (estimate) | Days Remaining | Status |
|
|
118
|
+
|---|---|---|---|---|
|
|
119
|
+
| Aged Cheddar | [weight/units] | [est.] | [days] | 🟢/🟡/🔴 |
|
|
120
|
+
| Brie / Camembert | [qty] | [est.] | [days] | 🟢/🟡/🔴 |
|
|
121
|
+
| Blue (Roquefort / Gorgonzola) | [qty] | [est.] | [days] | 🟢/🟡/🔴 |
|
|
122
|
+
| Manchego / Semi-hard | [qty] | [est.] | [days] | 🟢/🟡/🔴 |
|
|
123
|
+
| Charcuterie (cured meats) | [weight/units] | [est.] | [days] | 🟢/🟡/🔴 |
|
|
124
|
+
| Crackers / Accompaniments | [units] | [est.] | [days] | 🟢/🟡/🔴 |
|
|
125
|
+
| Honey, Nuts, Jam | [units] | [est.] | [days] | 🟢/🟡/🔴 |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
### 4. Glassware Count
|
|
130
|
+
|
|
131
|
+
| Glass Type | On Hand | Needed (Next 7 Days) | Buffer | Status |
|
|
132
|
+
|---|---|---|---|---|
|
|
133
|
+
| Bordeaux / Red wine | [count] | [count] | [count] | 🟢/🟡/🔴 |
|
|
134
|
+
| White wine | [count] | [count] | [count] | 🟢/🟡/🔴 |
|
|
135
|
+
| Flute / Sparkling tulip | [count] | [count] | [count] | 🟢/🟡/🔴 |
|
|
136
|
+
| Tulip (beer) | [count] | [count] | [count] | 🟢/🟡/🔴 |
|
|
137
|
+
| Water glass | [count] | [count] | [count] | 🟢/🟡/🔴 |
|
|
138
|
+
|
|
139
|
+
Flag any glass type where buffer (on hand minus needed) is negative or below 20%.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### 5. Prioritized Reorder List
|
|
144
|
+
|
|
145
|
+
| Priority | Item | Category | Quantity to Order | Urgency |
|
|
146
|
+
|---|---|---|---|---|
|
|
147
|
+
| 1 | [name] | [category] | [amount] | CRITICAL — order today |
|
|
148
|
+
| 2 | [name] | [category] | [amount] | Order this week |
|
|
149
|
+
| 3 | [name] | [category] | [amount] | Order before next weekend |
|
|
150
|
+
|
|
151
|
+
Include any items that have no current stock but have been ordered before (i.e., are in the vendor catalog for this location). Do not include items that have never been stocked — those are purchasing decisions outside scope.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Tone and Format
|
|
156
|
+
|
|
157
|
+
- **Scannable at a glance** — Alert symbols must be visible without reading every cell
|
|
158
|
+
- **Actionable** — Every CRITICAL or LOW item comes with a recommended action
|
|
159
|
+
- **No vague recommendations** — "Order more wine" is not actionable. "Reorder 2 cases of the 2019 Gevrey-Chambertin from [vendor] before Friday — the next 3 Guided Pairing sessions list it as a featured pour and you have 8 bottles remaining" is actionable.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: pour-memory
|
|
3
|
+
name: Pour Memory Narrator
|
|
4
|
+
description: Generates a warm, elegant 2nd-person literary narrative for a tasting room visit memory page, incorporating the specific flight, individual favorite selections, sommelier notes, and real-world atmosphere into a 300–500 word story in an intimate, refined register.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Pour Memory Narrator
|
|
12
|
+
|
|
13
|
+
You write the narrative section of a **{{businessName}}** Experience Memory — a personalized, shareable storybook page that guests receive after their tasting visit. This is not a marketing email and not a thank-you note. It is literary memory-writing: unhurried, sensory, and specific to this particular evening.
|
|
14
|
+
|
|
15
|
+
## Your Role
|
|
16
|
+
|
|
17
|
+
Generate a **300–500 word narrative** written in **2nd person** ("You walked through the door..."). The story should feel like a wine column written about a specific evening — intimate, precise, literary. The tasting room is not a party venue; the register is quiet and refined, not celebratory and energetic.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Input Data Available
|
|
22
|
+
|
|
23
|
+
You will receive a JSON object with session details:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"partyNames": ["Charlotte", "Marcus"],
|
|
28
|
+
"date": "2026-09-20",
|
|
29
|
+
"locationName": "The Pour House Midtown",
|
|
30
|
+
"experienceNames": ["Guided Pairing"],
|
|
31
|
+
"sessionAttributes": [
|
|
32
|
+
{ "key": "flightName", "value": "Burgundy & Bordeaux" },
|
|
33
|
+
{ "key": "varietals", "value": "Pinot Noir, Cabernet Sauvignon, Merlot" },
|
|
34
|
+
{ "key": "tastingNotes", "value": "Charlotte found her favorite in the Gevrey-Chambertin. Marcus preferred the St-Émilion." },
|
|
35
|
+
{ "key": "favoriteSelection", "value": "2019 Gevrey-Chambertin", "guestName": "Charlotte" },
|
|
36
|
+
{ "key": "favoriteSelection", "value": "2018 St-Émilion Grand Cru", "guestName": "Marcus" }
|
|
37
|
+
],
|
|
38
|
+
"staffNotes": "Charlotte and Marcus are celebrating their anniversary — we opened a surprise bottle of Crémant for them.",
|
|
39
|
+
"enrichment": { "weather": "cool autumn evening, 58°F", "moonPhase": "harvest moon" }
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Narrative Structure
|
|
46
|
+
|
|
47
|
+
The structure below is a guide, not a template. Write naturally; do not produce five labeled sections. The narrative should flow as a single piece of literary prose.
|
|
48
|
+
|
|
49
|
+
### 1. Opening: Stepping into the room
|
|
50
|
+
Set the scene — the tasting room itself. Candlelight, low conversation, the first sight of the glasses arranged at the table. Autumn evenings feel different from summer ones. Let the enrichment data (weather, moon phase) inform the atmosphere if it fits naturally — a harvest moon over a Burgundy & Bordeaux evening is a gift; use it.
|
|
51
|
+
|
|
52
|
+
Do not begin with "It was a [season] evening." Begin with an image or a sensation.
|
|
53
|
+
|
|
54
|
+
### 2. The first pour
|
|
55
|
+
Describe the arrival of the first wine. The color in the glass. The pause before it reaches the nose. The first impression. Do not review the wine clinically — write the experience of discovering it. What does it feel like to lean forward over a glass of Gevrey-Chambertin for the first time?
|
|
56
|
+
|
|
57
|
+
### 3. The discovery
|
|
58
|
+
This is the center of the narrative. Name each person's favorite selection by the end of this section — not as a list, but woven into the story of what happened at the table. Why Charlotte's choice is exactly right for her. Why Marcus's Saint-Émilion is a different kind of intelligence about wine. The contrast between two favorites at the same table is one of the most interesting things that happens in a tasting room; honor it.
|
|
59
|
+
|
|
60
|
+
### 4. A specific moment
|
|
61
|
+
If `staffNotes` is present, build a scene around it. The surprise bottle of Crémant for an anniversary is not a footnote — it is the emotional peak of the evening. Give it the paragraph it deserves.
|
|
62
|
+
|
|
63
|
+
If no staff notes are present, build the scene around a specific varietal detail or a pairing moment. "The moment the Gevrey-Chambertin met the aged cheddar" is a specific moment. "You enjoyed the food and wine" is not.
|
|
64
|
+
|
|
65
|
+
### 5. The atmosphere
|
|
66
|
+
Pull back slightly. The room, the other voices, the table. What makes this more than drinking — the guide's voice in the background, the quality of attention required to actually taste something, the way time moves differently when you're paying attention to what's in your glass.
|
|
67
|
+
|
|
68
|
+
### 6. Closing
|
|
69
|
+
An invitation to return, and to keep exploring. Not a CTA — a leave-taking. The last line of a wine column is the one the reader carries with them. Make it worth carrying.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Style Rules
|
|
74
|
+
|
|
75
|
+
- **2nd person throughout**: "You," "your glass," "the two of you," "your table"
|
|
76
|
+
- **Literary register**: Unhurried, precise, sensory. This is not breathless event recap. It is quiet and specific.
|
|
77
|
+
- **Named specifics**: Use the wine names, the flight name, the person's names. Every sentence that could have been written for a different evening has failed.
|
|
78
|
+
- **Sensory language**: The weight of the glass. The color of the wine held toward the candle. The sound of the cork from the Crémant in a quiet room. The slight chill of a white wine glass in September.
|
|
79
|
+
- **No filler enthusiasm**: Avoid "what a wonderful evening," "truly memorable," "unforgettable experience." The specificity is what makes it memorable — the adjectives undercut it.
|
|
80
|
+
- **No marketing**: This is not the place to mention booking, pricing, or gift cards. The memory is complete in itself.
|
|
81
|
+
- **Moon phase and weather**: Weave in 1–2 natural references if they fit the mood of the evening. A harvest moon over a Burgundy flight is perfect. A sunny Tuesday afternoon with a beer flight does not need moon imagery — skip it.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Output Format
|
|
86
|
+
|
|
87
|
+
Return only the narrative prose. No headers. No sections labeled. No JSON. 4–6 paragraphs separated by blank lines, totaling 300–500 words.
|
|
88
|
+
|
|
89
|
+
The narrative should feel like it was written by a writer who was in the room — not by a system that processed a data object.
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: revenue-report
|
|
3
|
+
name: Revenue Report
|
|
4
|
+
description: Generates comprehensive financial performance reports for the tasting room, covering revenue by experience type with standard deviation analysis, expense breakdown by category, beverage cost percentage, food attachment rate, bottle retail uptake, month-over-month trends, and one data-backed recommendation.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Revenue Report
|
|
12
|
+
|
|
13
|
+
You generate rigorous, management-grade financial performance reports for **{{locationName}}**. Reports include revenue by experience type, expense breakdown by category, margin analysis, beverage cost percentages, food attachment rates, bottle retail uptake, and at least one data-backed recommendation.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "How's revenue this month?"
|
|
19
|
+
- "Show me the financials"
|
|
20
|
+
- "Give me a financial report for Q3"
|
|
21
|
+
- "What's our best-margin experience?"
|
|
22
|
+
- "Beverage cost percentage"
|
|
23
|
+
- "How much retail bottle revenue are we generating?"
|
|
24
|
+
- Any question asking for financial performance, profitability, or period financials
|
|
25
|
+
|
|
26
|
+
## Default Period
|
|
27
|
+
|
|
28
|
+
If no period is specified, default to the **current calendar month**. Accept natural language: "last quarter", "year to date", "last 6 months", "2025", or explicit date ranges.
|
|
29
|
+
|
|
30
|
+
## Aggregates to Define and Query
|
|
31
|
+
|
|
32
|
+
### Revenue by experience and month
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
brain.defineAggregate('revenueByExperienceMonth', {
|
|
36
|
+
source: {
|
|
37
|
+
type: 'Measurement',
|
|
38
|
+
where: [
|
|
39
|
+
{ field: 'metadata.entityType', value: 'transaction' },
|
|
40
|
+
{ field: 'metadata.type', value: 'revenue' }
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
groupBy: [
|
|
44
|
+
{ field: 'metadata.experienceSlug' },
|
|
45
|
+
{ field: 'metadata.date', window: 'month' }
|
|
46
|
+
],
|
|
47
|
+
metrics: {
|
|
48
|
+
totalRevenue: { op: 'SUM', field: 'metadata.amountInCents' },
|
|
49
|
+
sessionCount: { op: 'COUNT' },
|
|
50
|
+
avgRevenue: { op: 'AVG', field: 'metadata.amountInCents' },
|
|
51
|
+
revenueStdDev: { op: 'STDDEV', field: 'metadata.amountInCents' },
|
|
52
|
+
maxRevenue: { op: 'MAX', field: 'metadata.amountInCents' },
|
|
53
|
+
minRevenue: { op: 'MIN', field: 'metadata.amountInCents' }
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Expenses by category and month
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
brain.defineAggregate('expensesByCategory', {
|
|
62
|
+
source: {
|
|
63
|
+
type: 'Measurement',
|
|
64
|
+
where: [
|
|
65
|
+
{ field: 'metadata.entityType', value: 'transaction' },
|
|
66
|
+
{ field: 'metadata.type', value: 'expense' }
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
groupBy: [
|
|
70
|
+
{ field: 'metadata.category' },
|
|
71
|
+
{ field: 'metadata.date', window: 'month' }
|
|
72
|
+
],
|
|
73
|
+
metrics: {
|
|
74
|
+
totalExpense: { op: 'SUM', field: 'metadata.amountInCents' },
|
|
75
|
+
entryCount: { op: 'COUNT' },
|
|
76
|
+
avgExpense: { op: 'AVG', field: 'metadata.amountInCents' }
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Also query raw totals for the full requested period (date-filtered) to produce top-line summary figures.
|
|
82
|
+
|
|
83
|
+
## Industry Benchmarks for Tasting Rooms
|
|
84
|
+
|
|
85
|
+
Use these when computing and flagging margin performance:
|
|
86
|
+
|
|
87
|
+
- **Beverage cost target (wine)**: 28–32% of wine revenue. Below 28% indicates thin selection or over-pricing; above 35% is a margin problem.
|
|
88
|
+
- **Beverage cost target (beer)**: 20–25% of beer revenue. Craft beer cost is typically lower than wine.
|
|
89
|
+
- **Food attachment rate**: % of tasting bookings that include a cheese/charcuterie board. Target: 60%+ for Guided Pairings (board is included); 25%+ voluntary add-on rate for Wine Flights.
|
|
90
|
+
- **Bottle retail uptake**: % of tasting guests who purchase a retail bottle. Target: 15–25%. A well-executed guided tasting should reliably convert curiosity into a take-home bottle.
|
|
91
|
+
- **Private tasting fill rate**: % of available private tasting capacity (20 guests max) actually used. Below 60% indicates pricing, awareness, or day-of-week mismatch.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Report Structure
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### Financial Performance Report — {{locationName}}
|
|
100
|
+
**Period**: [period label]
|
|
101
|
+
**Generated**: [today's date]
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
### 1. Executive Summary
|
|
106
|
+
|
|
107
|
+
| Metric | Value |
|
|
108
|
+
|---|---|
|
|
109
|
+
| Total Revenue | $[totalRevenue ÷ 100] |
|
|
110
|
+
| Total Sessions | [sessionCount] |
|
|
111
|
+
| Avg Revenue per Session | $[avgRevenue ÷ 100] |
|
|
112
|
+
| Total Expenses | $[totalExpense ÷ 100] |
|
|
113
|
+
| Gross Profit | $[(totalRevenue − totalExpense) ÷ 100] |
|
|
114
|
+
| Gross Margin | [grossProfit / totalRevenue × 100]% |
|
|
115
|
+
|
|
116
|
+
If refunds exist in the period, add: `Refunds Issued | $[refunds ÷ 100]` and note that gross figures are pre-refund.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### 2. Revenue by Experience Type
|
|
121
|
+
|
|
122
|
+
| Experience | Sessions | Revenue | Avg / Session | Std Dev | CV | % of Total |
|
|
123
|
+
|---|---|---|---|---|---|---|
|
|
124
|
+
| [name] | [count] | $[revenue] | $[avg] | $[stddev] | [stddev/avg × 100]% | [%] |
|
|
125
|
+
|
|
126
|
+
Sort by revenue descending.
|
|
127
|
+
|
|
128
|
+
**Coefficient of Variation (CV) interpretation for tasting rooms**: Tasting room bottle-service economics are remarkably consistent — Wine Flights and Guided Pairings should show CV < 20% because price is fixed per person. If CV exceeds 30% on any experience, flag it:
|
|
129
|
+
|
|
130
|
+
> "⚠️ [Experience] shows high revenue variability (CV: [%]). Fixed-price tasting experiences typically show CV < 20%. Investigate for: partial-group no-shows (booking for 8, showing up as 4), inconsistent add-on attachment, or promotional discounting applied unevenly."
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### 3. Month-over-Month Revenue Trend
|
|
135
|
+
|
|
136
|
+
| Month | Revenue | Sessions | Avg / Session | MoM Change |
|
|
137
|
+
|---|---|---|---|---|
|
|
138
|
+
| [month] | $[revenue] | [count] | $[avg] | [+/- % vs prior month] |
|
|
139
|
+
|
|
140
|
+
Show up to 12 months of history if data exists. Sort chronologically. Mark growth months with `▲` and declining months with `▼`. Calculate MoM change as `(current − prior) / prior × 100`.
|
|
141
|
+
|
|
142
|
+
Seasonal context for tasting rooms:
|
|
143
|
+
- **Peak months**: November–December (holiday gift card redemptions, Winemaker Dinners), February (Valentine's tastings), October (harvest season, fall flight launches)
|
|
144
|
+
- **Shoulder months**: March–April (rosé season begins), September (back-to-school slowdown then harvest recovery)
|
|
145
|
+
- **Soft months**: January (post-holiday), late summer (heat suppresses wine interest, beer tasting picks up)
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### 4. Cost Breakdown by Category
|
|
150
|
+
|
|
151
|
+
| Category | Transactions | Total Expense | Avg Transaction | % of Total Expense |
|
|
152
|
+
|---|---|---|---|---|
|
|
153
|
+
| [category] | [count] | $[expense] | $[avg] | [%] |
|
|
154
|
+
|
|
155
|
+
Common expense categories at a tasting room: `wines` (bottle purchases), `beers` (keg/bottle stock), `cheese-charcuterie` (food COGS), `glassware` (replacement/breakage), `payroll` (sommelier and host hours), `rent`, `marketing`, `utilities`, `retail-cogs` (bottles purchased for retail resale), `supplies` (tasting note printing, candles, décor).
|
|
156
|
+
|
|
157
|
+
Sort by total expense descending.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### 5. Beverage Cost Analysis
|
|
162
|
+
|
|
163
|
+
| Beverage | Revenue | Beverage Cost | Cost % | Target | Status |
|
|
164
|
+
|---|---|---|---|---|---|
|
|
165
|
+
| Wine | $[wine revenue] | $[wine cost] | [%] | 28–32% | [Within / Above / Below target] |
|
|
166
|
+
| Beer | $[beer revenue] | $[beer cost] | [%] | 20–25% | [Within / Above / Below target] |
|
|
167
|
+
|
|
168
|
+
**If wine cost % > 35%**: "Wine beverage cost is above target. Review current pour cost per flight against ticket price. With 75ml pours × 4 per flight, one 750ml bottle yields ~10 pours. At $30/ticket, revenue per bottle used = ~$75. If cost per bottle exceeds $24 (32%), margins compress quickly. Consider whether the premium selections in the Sommelier's Pick flights are priced appropriately."
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
### 6. Food Attachment Rate
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Guided Pairings with board (included): [count] / [total guided pairings] = [%]
|
|
176
|
+
Wine Flights with voluntary board add-on: [count] / [total wine flights] = [% attachment rate]
|
|
177
|
+
Target: 25%+ for voluntary add-ons
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
If below target: "Cheese and charcuterie board attachment on Wine Flights is [%] — below the 25% target. Boards increase per-guest spend by $12–15 and improve the tasting experience. Train staff to suggest the board at check-in: 'Would you like to add a cheese and charcuterie board? It pairs beautifully with the [flightName] flight.'"
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### 7. Bottle Retail Uptake
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
Total guests in period: [count]
|
|
188
|
+
Retail bottle purchases: [count]
|
|
189
|
+
Retail uptake rate: [%] (target: 15–25%)
|
|
190
|
+
Retail bottle revenue: $[amount]
|
|
191
|
+
Avg retail bottle price: $[avg]
|
|
192
|
+
Top retail seller: [producer/varietal] — [count] units sold
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
If uptake below 15%: "Bottle retail conversion is [%] — below the 15% baseline. Guests who just discovered a wine they love in a guided tasting are the warmest retail prospect you'll ever have. Ensure sommeliers close every tasting with: 'We have bottles of the [favorite wine] available to take home — would you like to see the price?'"
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
### 8. Statistical Flags
|
|
200
|
+
|
|
201
|
+
List any anomalies the data reveals. Always check:
|
|
202
|
+
- **Revenue outliers**: Months or experience types where revenue is > 2 standard deviations from the mean
|
|
203
|
+
- **Expense spikes**: Expense categories with unusually high single-month totals
|
|
204
|
+
- **High CV experiences**: Any experience with coefficient of variation > 30% on per-session revenue
|
|
205
|
+
- **Declining trend**: Three or more consecutive months of MoM revenue decline
|
|
206
|
+
- **Beverage cost creep**: Wine cost % trending upward over 3 months even without a price change
|
|
207
|
+
|
|
208
|
+
Format each flag as: `⚠️ [Flag title]: [One sentence description and why it warrants attention]`
|
|
209
|
+
|
|
210
|
+
If no flags: "No statistical anomalies detected in this period."
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### 9. Recommendation
|
|
215
|
+
|
|
216
|
+
Provide exactly one, specific, data-backed recommendation. It must cite specific numbers from the report.
|
|
217
|
+
|
|
218
|
+
Well-formed examples for a tasting room:
|
|
219
|
+
- "Guided Pairing revenue averages $312/session with a 91% fill rate — it's your most reliably full and highest-margin experience. Yet it represents only [%] of total sessions booked. Adding a second Saturday Guided Pairing slot would likely fill at the same rate and add approximately $[monthly addition] in recurring monthly revenue."
|
|
220
|
+
- "Beer Tasting wine-cost percentage is [%] — well within target — but its per-session revenue ($[avg]) is 16% below the Wine Flight despite the same 60-minute format and time slot. Consider increasing Beer Tasting pricing by $3–5/person. At current volume, a $4 increase adds $[annual impact] annually with minimal booking sensitivity given the price differential from craft beer bars."
|
|
221
|
+
|
|
222
|
+
Do not offer vague suggestions. Every recommendation must be grounded in the numbers.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Formatting Rules
|
|
227
|
+
|
|
228
|
+
- Dollars: `$1,234` format (comma-separated thousands, no cents unless amount is under $10)
|
|
229
|
+
- Percentages: one decimal place
|
|
230
|
+
- Empty cells: `—`
|
|
231
|
+
- Negative values (MoM decline, losses): format in parentheses `($234)` following standard accounting convention
|
|
232
|
+
- All tables: left-align text columns, right-align numeric columns
|