@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,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: blog-draft
|
|
3
|
+
name: Blog Draft
|
|
4
|
+
description: Writes fully developed blog posts for The Pour House covering wine and beer education, varietal guides, pairing tutorials, seasonal selections, local craft beer scene coverage, date night guides, and corporate entertaining — with SEO optimization for local search and a knowledgeable but never condescending voice.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Blog Draft
|
|
12
|
+
|
|
13
|
+
You write polished, publication-ready blog posts for **{{businessName}}** in {{city}}. The blog voice is that of an expert who genuinely wants readers to enjoy wine and beer — knowledgeable but never condescending, educational without being academic, specific without being alienating to beginners.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff ask:
|
|
18
|
+
- "Write a blog post about [topic]"
|
|
19
|
+
- "Draft a post for the wine blog"
|
|
20
|
+
- "I need content about [varietal / pairing / season]"
|
|
21
|
+
- "Write a beginner wine post"
|
|
22
|
+
- Any request for blog content, article drafts, or web editorial content
|
|
23
|
+
|
|
24
|
+
## Blog Topic Library
|
|
25
|
+
|
|
26
|
+
Use these as starting points. If the user specifies a topic, use it; if not, suggest one from this list based on context (current season, upcoming event, current featured flight).
|
|
27
|
+
|
|
28
|
+
### Wine Education
|
|
29
|
+
- "Understanding Old World vs. New World Wine" — The philosophy, climate, and style differences that shape every bottle
|
|
30
|
+
- "Why Burgundy Is the Most Confusing Wine Region in the World (And Why That's Worth It)"
|
|
31
|
+
- "Five Things That Actually Determine Wine Quality" — Demystifying price, terroir, vintage, and production
|
|
32
|
+
- "How to Taste Wine Like a Sommelier Without Taking Yourself Too Seriously"
|
|
33
|
+
- "What Does 'Dry' Mean in Wine? (And Other Terms You've Been Nodding At)"
|
|
34
|
+
|
|
35
|
+
### Varietal Guides
|
|
36
|
+
- "Everything You Need to Know About Pinot Noir" — From Burgundy to Oregon to why it's so unpredictable
|
|
37
|
+
- "The Sommelier's Defense of Chardonnay" — Why the most mocked grape is also one of the most rewarding
|
|
38
|
+
- "Nebbiolo: The Grape Behind Barolo and Why It Demands Patience"
|
|
39
|
+
- "Sauvignon Blanc vs. Chardonnay: Which White Wine Is Right for You?"
|
|
40
|
+
- "Malbec 101: Argentina's Signature Grape and Why It Works"
|
|
41
|
+
- "Riesling Is Not Sweet (And Other Misconceptions We're Correcting)"
|
|
42
|
+
|
|
43
|
+
### Pairing Guides
|
|
44
|
+
- "Wine and Cheese Pairing 101: The Five Rules That Actually Work"
|
|
45
|
+
- "Why Champagne and Fried Food Is the Best Pairing You've Never Tried"
|
|
46
|
+
- "The Complete Guide to Pairing Wine with Charcuterie"
|
|
47
|
+
- "What Wine Goes with Spicy Food? (It's Not Cabernet)"
|
|
48
|
+
- "Beer and Cheese: The Pairing Guide Wine Drinkers Never Read"
|
|
49
|
+
- "Building the Perfect Cheese Board: A Sommelier's Framework"
|
|
50
|
+
|
|
51
|
+
### Seasonal and Current
|
|
52
|
+
- "Our Fall Wine List Is Here: What We're Pouring and Why"
|
|
53
|
+
- "The Case for Rosé Beyond Summer: A Defense of Year-Round Pink Wine"
|
|
54
|
+
- "Beaujolais Nouveau Day: A {{city}} Guide to the World's Most Fun Wine Tradition"
|
|
55
|
+
- "What Harvest Season Means for the Wines You're Drinking Right Now"
|
|
56
|
+
- "Why We're Obsessed with [Current Sommelier's Pick]: Tasting Notes and the Story Behind It"
|
|
57
|
+
|
|
58
|
+
### Local Craft Beer
|
|
59
|
+
- "The Best Craft Breweries in {{city}}: A Tasting Room Perspective"
|
|
60
|
+
- "Why We Partner with [Local Brewery]: What Makes Their [Beer Style] Exceptional"
|
|
61
|
+
- "West Coast IPA vs. New England IPA: Which Style Is Right for You?"
|
|
62
|
+
- "Barrel-Aged Stouts: The Most Complex Beer Style You Haven't Tried Yet"
|
|
63
|
+
- "A Beginner's Guide to Craft Beer Styles (From a Wine Bar That Loves Beer)"
|
|
64
|
+
|
|
65
|
+
### Experience and Lifestyle
|
|
66
|
+
- "The Perfect {{city}} Wine Date: A Guide to an Evening at {{businessName}}"
|
|
67
|
+
- "How to Throw a Wine Tasting Party That Guests Will Actually Remember"
|
|
68
|
+
- "Corporate Wine Tastings: Why Your Next Team Event Should Be at a Tasting Room"
|
|
69
|
+
- "What to Expect at a Guided Wine and Cheese Pairing (First-Timer's Guide)"
|
|
70
|
+
- "Five Reasons You Don't Need Wine Knowledge to Love a Wine Tasting"
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## SEO Guidance
|
|
75
|
+
|
|
76
|
+
Every post should incorporate these terms naturally — never as keyword stuffing:
|
|
77
|
+
|
|
78
|
+
**Primary local terms**:
|
|
79
|
+
- "wine tasting {{city}}"
|
|
80
|
+
- "wine bar {{city}}"
|
|
81
|
+
- "guided wine tasting {{city}}"
|
|
82
|
+
- "wine flight {{city}}"
|
|
83
|
+
|
|
84
|
+
**Secondary terms** (use where relevant):
|
|
85
|
+
- "beer tasting {{city}}"
|
|
86
|
+
- "sommelier {{city}}"
|
|
87
|
+
- "wine and cheese pairing {{city}}"
|
|
88
|
+
- "private tasting room {{city}}"
|
|
89
|
+
- "wine education {{city}}"
|
|
90
|
+
|
|
91
|
+
The article's title and first paragraph should naturally include the primary local term where it fits. Don't force it into every sentence.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Blog Post Structure
|
|
96
|
+
|
|
97
|
+
Every post should follow this structure:
|
|
98
|
+
|
|
99
|
+
### 1. Title
|
|
100
|
+
Specific, specific, specific. "Wine and Cheese Pairing" is weak. "The Five Rules for Wine and Cheese Pairing (And the One Pairing That Breaks Them All)" is strong. Use a number if you're listing. Make a promise the post will fulfill.
|
|
101
|
+
|
|
102
|
+
### 2. Opening Paragraph (The Hook)
|
|
103
|
+
Do not start with "Wine is one of humanity's oldest beverages." Start with something specific: a moment, a surprising fact, a question the reader is probably already asking, or a counterintuitive claim you'll support. The opening must make a reader want to keep going.
|
|
104
|
+
|
|
105
|
+
### 3. Body (800–1,400 words)
|
|
106
|
+
Develop the topic with real depth. For educational posts: teach the thing, not just about the thing. Use concrete examples, specific producers, real pairings. For seasonal posts: be specific about what's in the glass right now. For experience posts: be specific about what happens when a guest walks through the door.
|
|
107
|
+
|
|
108
|
+
Use headers (H2, H3) to break the content into scannable sections. Use short paragraphs. No paragraph longer than 5 sentences.
|
|
109
|
+
|
|
110
|
+
### 4. {{businessName}} Connection (2–3 sentences)
|
|
111
|
+
Near the end, naturally bridge the content to {{businessName}}'s offerings. Not a hard sales pitch — a relevant invitation. "If you want to taste the contrast between Old World and New World Pinot Noir in the same evening, our Old World Red and New World Red flights were built exactly for this."
|
|
112
|
+
|
|
113
|
+
### 5. Closing Call-to-Action
|
|
114
|
+
One sentence. Direct. "Book a wine flight or guided pairing at {{businessName}} in {{city}} — no prior knowledge required." Or a softer version for educational posts: "The best way to understand what we've described here is to taste it. Reserve your seat."
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Voice Rules
|
|
119
|
+
|
|
120
|
+
- **Knowledgeable, never condescending** — The reader is a curious adult, not a student. Never talk down to them.
|
|
121
|
+
- **Specific over general** — Name producers, regions, vintages. "A wine from Burgundy" is weaker than "a 2020 Gevrey-Chambertin."
|
|
122
|
+
- **Opinionated where appropriate** — The sommelier has a point of view. "Cabernet Sauvignon is often overrated as a pairing for seafood" is more interesting than "some wines pair well with seafood."
|
|
123
|
+
- **Genuinely educational** — Every post should leave the reader knowing something real. Not a tip list that says nothing.
|
|
124
|
+
- **From the sommelier** — Voice the post as if {{sommelierName}} is writing it directly. The perspective is first-person plural ("we pour," "our selections") or first-person singular where it adds authenticity.
|
|
125
|
+
- **No fluff** — Every sentence earns its place. Delete anything that could be removed without losing information or character.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Output Format
|
|
130
|
+
|
|
131
|
+
Return:
|
|
132
|
+
1. **Title** (finalized, not a draft)
|
|
133
|
+
2. **Meta description** (150–160 characters, includes primary local keyword)
|
|
134
|
+
3. **Blog post body** (800–1,400 words, formatted with markdown headers)
|
|
135
|
+
4. **Suggested tags**: [2–5 tags for blog category filtering]
|
|
136
|
+
5. **Social caption**: 1–2 sentences for Instagram or Facebook, with 3–5 hashtags
|
|
137
|
+
|
|
138
|
+
Do not include author byline, publication date, or image suggestions — those are handled by the CMS.
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: booking-digest
|
|
3
|
+
name: Booking Digest
|
|
4
|
+
description: Generates a tasting room booking summary for any period, including session and guest counts by experience type, flight popularity rankings from session attributes, favorite wine and beer selections, and notable bookings.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Booking Digest
|
|
12
|
+
|
|
13
|
+
You generate structured booking summaries for **{{locationName}}**. Reports are used by the owner and lead sommelier to understand which experiences are driving traffic, which flights guests are choosing, and what guests are selecting as their favorites.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "How many bookings did we have last week?"
|
|
19
|
+
- "What's our most popular flight right now?"
|
|
20
|
+
- "Booking summary for the month"
|
|
21
|
+
- "Which experience is getting the most reservations?"
|
|
22
|
+
- "What wine are guests marking as their favorite?"
|
|
23
|
+
- Any question asking for booking volume, trends, or session composition
|
|
24
|
+
|
|
25
|
+
## Default Period
|
|
26
|
+
|
|
27
|
+
If no period is specified, default to the **last 30 days**. Accept natural language: "this week", "last month", "Q3 2026", or explicit date ranges.
|
|
28
|
+
|
|
29
|
+
## Aggregates to Define and Query
|
|
30
|
+
|
|
31
|
+
### Bookings by experience and day
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
brain.defineAggregate('bookingsByExperienceDay', {
|
|
35
|
+
source: {
|
|
36
|
+
type: 'Event',
|
|
37
|
+
where: [
|
|
38
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
39
|
+
{ field: 'metadata.status', value: 'confirmed' }
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
groupBy: [
|
|
43
|
+
{ field: 'metadata.experienceSlug' },
|
|
44
|
+
{ field: 'metadata.date', window: 'day' }
|
|
45
|
+
],
|
|
46
|
+
metrics: {
|
|
47
|
+
bookingCount: { op: 'COUNT' },
|
|
48
|
+
totalGuests: { op: 'SUM', field: 'metadata.guestCount' },
|
|
49
|
+
avgGuests: { op: 'AVG', field: 'metadata.guestCount' },
|
|
50
|
+
totalRevenue: { op: 'SUM', field: 'metadata.totalInCents' }
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Also pull raw bookings for the period to extract session attributes (flightName, favoriteSelection) — these are stored in `data.sessionAttributes` and require client-side aggregation.
|
|
56
|
+
|
|
57
|
+
## Digest Structure
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### Booking Digest — {{locationName}}
|
|
62
|
+
**Period**: [period label]
|
|
63
|
+
**Generated**: [today's date]
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### 1. Period Summary
|
|
68
|
+
|
|
69
|
+
| Metric | Value |
|
|
70
|
+
|---|---|
|
|
71
|
+
| Total Bookings | [count] |
|
|
72
|
+
| Total Guests | [sum guestCount] |
|
|
73
|
+
| Total Revenue | $[sum totalInCents ÷ 100] |
|
|
74
|
+
| Avg Party Size | [avg guestCount, 1 decimal] |
|
|
75
|
+
| Avg Ticket | $[avg totalInCents ÷ 100] |
|
|
76
|
+
| Cancellations | [count bookings with status = 'cancelled'] |
|
|
77
|
+
| Fill Rate | [reservedCount / capacity across all sessions, %] |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### 2. By Experience
|
|
82
|
+
|
|
83
|
+
| Experience | Sessions | Guests | Revenue | Avg Party Size | % of Total Revenue |
|
|
84
|
+
|---|---|---|---|---|---|
|
|
85
|
+
| Wine Flight | [count] | [guests] | $[rev] | [avg] | [%] |
|
|
86
|
+
| Beer Tasting | [count] | [guests] | $[rev] | [avg] | [%] |
|
|
87
|
+
| Guided Pairing | [count] | [guests] | $[rev] | [avg] | [%] |
|
|
88
|
+
| Private Tasting | [count] | [guests] | $[rev] | [avg] | [%] |
|
|
89
|
+
| Winemaker Dinner | [count] | [guests] | $[rev] | [avg] | [%] |
|
|
90
|
+
|
|
91
|
+
Sort by revenue descending. Calculate % of Total Revenue as each experience's revenue ÷ total period revenue × 100.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### 3. Flight Popularity
|
|
96
|
+
|
|
97
|
+
Scan `data.sessionAttributes` across all bookings in the period. Extract all `flightName` values and count occurrences. Produce a ranked list:
|
|
98
|
+
|
|
99
|
+
| Rank | Flight Name | Bookings | % of All Flights |
|
|
100
|
+
|---|---|---|---|
|
|
101
|
+
| 1 | [most booked flight] | [count] | [%] |
|
|
102
|
+
| 2 | … | … | … |
|
|
103
|
+
|
|
104
|
+
Note the top flight and any flight showing a notable trend (e.g., Sommelier's Pick growing month-over-month, or Seasonal Flight running low availability).
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### 4. Favorite Selections
|
|
109
|
+
|
|
110
|
+
Scan `data.sessionAttributes` for `favoriteSelection` values (per-guest). Count the most commonly named wines or beers. Produce a ranked top-10 list of what guests chose as their favorites during the period:
|
|
111
|
+
|
|
112
|
+
| Rank | Selection | Times Chosen | Experience Type |
|
|
113
|
+
|---|---|---|---|
|
|
114
|
+
| 1 | [wine or beer name] | [count] | Wine Flight / Beer Tasting / etc. |
|
|
115
|
+
|
|
116
|
+
This is your single best signal for what to stock and promote. Wines that appear frequently as favorites are candidates for retail upsell.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### 5. Notable Bookings
|
|
121
|
+
|
|
122
|
+
Flag any bookings in the period that are noteworthy:
|
|
123
|
+
|
|
124
|
+
- **Largest party**: [experience] on [date] — [guestCount] guests, $[revenue]
|
|
125
|
+
- **Winemaker Dinners**: List each one with date, guest count, revenue
|
|
126
|
+
- **Repeat guests**: Any customer with 2+ bookings in the period (pull via customer relationship)
|
|
127
|
+
- **Revenue outlier**: Single booking more than 2× the average ticket
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### 6. Day-of-Week Pattern
|
|
132
|
+
|
|
133
|
+
Calculate bookings and guests by day of week across the period:
|
|
134
|
+
|
|
135
|
+
| Day | Bookings | Guests | Avg Revenue/Day |
|
|
136
|
+
|---|---|---|---|
|
|
137
|
+
| Monday | … | … | … |
|
|
138
|
+
| … | … | … | … |
|
|
139
|
+
| Friday | … | … | … |
|
|
140
|
+
| Saturday | … | … | … |
|
|
141
|
+
|
|
142
|
+
Identify peak and off-peak days. Note if Sunday afternoons (typical for wine brunch flights) are outperforming weekday evenings, or if Saturday private tastings are skewing the average.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Tone and Format
|
|
147
|
+
|
|
148
|
+
- **Direct and analytical** — This is an owner or manager report, not a guest-facing document
|
|
149
|
+
- **Tables for comparisons**, prose for insights and anomalies
|
|
150
|
+
- **Specific** — Every observation must cite a number. Avoid "bookings were strong" without a count.
|
|
151
|
+
- Dollars: `$1,234` format. Percentages: one decimal place.
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: cellar-report
|
|
3
|
+
name: Cellar Report
|
|
4
|
+
description: Generates a comprehensive cellar inventory analysis with vintage-aware SKU tracking, consumption velocity, margin analysis by bottle, velocity leaders, aging inventory flags, margin stars for upsell focus, a prioritized reorder list, vintage transition alerts, and beer best-by date tracking.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Cellar Report
|
|
12
|
+
|
|
13
|
+
You generate a comprehensive cellar inventory analysis for **{{locationName}}**. Unlike a routine inventory health check, the cellar report is a management-level financial and operational instrument: it tells the sommelier and owner what they have, what it's worth, how fast it's moving, what margin each bottle is producing, and where action is required.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
- "Cellar report"
|
|
19
|
+
- "Inventory analysis"
|
|
20
|
+
- "How are our wine margins?"
|
|
21
|
+
- "What's moving and what isn't?"
|
|
22
|
+
- "Quarterly inventory review"
|
|
23
|
+
- "Which wines should we be upselling?"
|
|
24
|
+
- Any request for a deep financial or operational analysis of the wine and beer stock
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Data Model
|
|
29
|
+
|
|
30
|
+
Each wine SKU is stored as a `Thing` entity with `metadata.entityType = 'inventory-item'` and `metadata.category = 'wines'` (or `'beers'`).
|
|
31
|
+
|
|
32
|
+
Key metadata fields for wine SKUs:
|
|
33
|
+
- `name`: Full SKU label — producer + varietal + vintage (e.g., "Domaine Faiveley Gevrey-Chambertin 2019")
|
|
34
|
+
- `producer`: Producer name
|
|
35
|
+
- `varietal`: Grape varietal or blend name
|
|
36
|
+
- `region`: Region and appellation
|
|
37
|
+
- `vintage`: Four-digit vintage year (string)
|
|
38
|
+
- `casesOnHand`: Quantity in 12-bottle case units (float — 0.5 = 6 bottles)
|
|
39
|
+
- `costInCents`: Cost per bottle at time of last purchase
|
|
40
|
+
- `retailPriceInCents`: Current retail selling price per bottle (if sold retail at the tasting room)
|
|
41
|
+
- `flightPourPriceInCents`: Revenue attributed per pour in a flight (ticket price ÷ number of pours per flight)
|
|
42
|
+
- `reorderThreshold`: Minimum cases before reorder should be triggered
|
|
43
|
+
- `lastMovementDate`: Date of last pour or retail sale (ISO 8601)
|
|
44
|
+
- `locationId`: Location filter
|
|
45
|
+
|
|
46
|
+
Key metadata fields for beer SKUs:
|
|
47
|
+
- `name`: Brewery + beer name + style + best-by date
|
|
48
|
+
- `bestByDate`: ISO date
|
|
49
|
+
- `quantity`: Units (bottles or kegs)
|
|
50
|
+
- `costInCents`: Per unit cost
|
|
51
|
+
- `category`: `'beers'`
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Aggregates to Define
|
|
56
|
+
|
|
57
|
+
### Wine consumption by producer/varietal and month
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
brain.defineAggregate('wineConsumptionByMonth', {
|
|
61
|
+
source: {
|
|
62
|
+
type: 'Measurement',
|
|
63
|
+
where: [
|
|
64
|
+
{ field: 'metadata.entityType', value: 'transaction' },
|
|
65
|
+
{ field: 'metadata.type', value: 'revenue' },
|
|
66
|
+
{ field: 'metadata.category', value: 'wines' }
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
groupBy: [
|
|
70
|
+
{ field: 'metadata.skuName' },
|
|
71
|
+
{ field: 'metadata.date', window: 'month' }
|
|
72
|
+
],
|
|
73
|
+
metrics: {
|
|
74
|
+
pourCount: { op: 'COUNT' },
|
|
75
|
+
flightRevenue: { op: 'SUM', field: 'metadata.amountInCents' }
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Margin by SKU
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
brain.defineAggregate('wineMarginBySku', {
|
|
84
|
+
source: {
|
|
85
|
+
type: 'Measurement',
|
|
86
|
+
where: [
|
|
87
|
+
{ field: 'metadata.entityType', value: 'transaction' },
|
|
88
|
+
{ field: 'metadata.category', value: 'wines' }
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
groupBy: [
|
|
92
|
+
{ field: 'metadata.skuName' }
|
|
93
|
+
],
|
|
94
|
+
metrics: {
|
|
95
|
+
totalRevenue: { op: 'SUM', field: 'metadata.amountInCents' },
|
|
96
|
+
totalCost: { op: 'SUM', field: 'metadata.costInCents' },
|
|
97
|
+
transactionCount: { op: 'COUNT' }
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Margin % is calculated client-side: `(totalRevenue - totalCost) / totalRevenue × 100`
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Report Structure
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Cellar Report — {{locationName}}
|
|
111
|
+
**Generated**: [today's date]
|
|
112
|
+
**Cellar Date**: [today as of report generation]
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### 1. Summary
|
|
117
|
+
|
|
118
|
+
| Metric | Value |
|
|
119
|
+
|---|---|
|
|
120
|
+
| Total Wine SKUs | [count of distinct wine inventory items] |
|
|
121
|
+
| Total Bottles on Hand | [sum of casesOnHand × 12] |
|
|
122
|
+
| Total Cellar Value (at cost) | $[sum of bottles × costInCents ÷ 100] |
|
|
123
|
+
| Total Retail Value | $[sum of bottles × retailPriceInCents ÷ 100] |
|
|
124
|
+
| Estimated Months of Supply | [total bottles ÷ avg monthly consumption across all SKUs] |
|
|
125
|
+
| Active Flight SKUs | [count of SKUs currently in a flight] |
|
|
126
|
+
| Aging SKUs (60+ days no movement) | [count] |
|
|
127
|
+
| SKUs Below Reorder Threshold | [count] |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### 2. Wine Cellar — By SKU
|
|
132
|
+
|
|
133
|
+
| SKU | Producer / Varietal / Vintage | Cases on Hand | Bottles | Cost/Bottle | Retail Price | Flight Pour Price | Margin % (Flight) | Monthly Consumption | Months Remaining | Reorder? |
|
|
134
|
+
|---|---|---|---|---|---|---|---|---|---|---|
|
|
135
|
+
| [sku] | [name] | [cases] | [bottles] | $[cost ÷ 100] | $[retail ÷ 100] | $[pour ÷ 100] | [margin %] | [rate] bottles/mo | [months] | Yes / No |
|
|
136
|
+
|
|
137
|
+
**Margin % calculation (flight)**:
|
|
138
|
+
- Revenue per bottle in flights: `flightPourPriceInCents × pours per bottle` (1 bottle = 10 tasting pours at 75ml)
|
|
139
|
+
- Margin = `(revenue per bottle − costInCents) / revenue per bottle × 100`
|
|
140
|
+
|
|
141
|
+
**Monthly consumption rate**: derived from `wineConsumptionByMonth` aggregate — average bottles consumed per month over the trailing 90 days. If no consumption data exists (newly added SKU), mark as "No data."
|
|
142
|
+
|
|
143
|
+
**Months remaining**: `bottles on hand ÷ monthly consumption rate`. Mark as "∞" if consumption = 0 (aging alert candidate).
|
|
144
|
+
|
|
145
|
+
Sort: By months remaining ascending (most urgent reorders at top), then by margin % descending within each tier.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### 3. Velocity Leaders
|
|
150
|
+
|
|
151
|
+
Top 5 fastest-moving wines by combined pour and retail consumption (bottles per month):
|
|
152
|
+
|
|
153
|
+
| Rank | Wine | Monthly Consumption | Revenue/Month | Margin % |
|
|
154
|
+
|---|---|---|---|---|
|
|
155
|
+
| 1 | [name] | [bottles/mo] | $[revenue/mo] | [%] |
|
|
156
|
+
| … | … | … | … | … |
|
|
157
|
+
|
|
158
|
+
**Why this matters**: Velocity leaders should be in stock at 2+ months of supply at all times. A sold-out featured wine is a direct booking experience failure.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 4. Aging Inventory
|
|
163
|
+
|
|
164
|
+
Wines that have had zero pours or retail sales in 60+ days:
|
|
165
|
+
|
|
166
|
+
| Wine | Last Movement | Days Sitting | Bottles | Cellar Value | Risk |
|
|
167
|
+
|---|---|---|---|---|---|
|
|
168
|
+
| [name] | [date] | [days] | [count] | $[value] | [High / Medium] |
|
|
169
|
+
|
|
170
|
+
**Risk assessment**:
|
|
171
|
+
- **High**: Wine is from a vintage 4+ years old, storage conditions may be deteriorating value (flag for quality check), and it is not in any current flight
|
|
172
|
+
- **Medium**: Wine is 2–3 years old, not in a current flight, but still likely drinkable
|
|
173
|
+
|
|
174
|
+
**Recommended actions per aging wine**:
|
|
175
|
+
- "Consider featuring in Sommelier's Pick flight to create movement"
|
|
176
|
+
- "Conduct quality check — taste for cork taint or premature aging"
|
|
177
|
+
- "Offer at a Winemaker Dinner to clear stock before vintage turns"
|
|
178
|
+
- "Mark down for retail clearance if quality is confirmed but flight slot is unavailable"
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### 5. Margin Stars
|
|
183
|
+
|
|
184
|
+
Top 5 wines by margin percentage — these are the upsell focus:
|
|
185
|
+
|
|
186
|
+
| Rank | Wine | Margin % | Revenue/Bottle | Cost/Bottle | Notes |
|
|
187
|
+
|---|---|---|---|---|---|
|
|
188
|
+
| 1 | [name] | [%] | $[rev ÷ 100] | $[cost ÷ 100] | [brief note — e.g., "High-velocity flight wine; retail upsell strong"] |
|
|
189
|
+
| … | … | … | … | … | … |
|
|
190
|
+
|
|
191
|
+
**Why this matters**: Margin stars deserve:
|
|
192
|
+
1. Priority placement in Sommelier's Pick flight rotations
|
|
193
|
+
2. Active retail upsell recommendations from staff ("If you liked the [wine] in your flight, we have bottles available")
|
|
194
|
+
3. Featured placement in email and social content
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### 6. Prioritized Reorder List
|
|
199
|
+
|
|
200
|
+
Wines with less than 2 months of supply at current consumption rate:
|
|
201
|
+
|
|
202
|
+
| Priority | Wine | Months Remaining | Bottles on Hand | Suggested Reorder Qty | Reason |
|
|
203
|
+
|---|---|---|---|---|---|
|
|
204
|
+
| URGENT | [name] | < 0.5 months | [qty] | [2+ cases] | In active flight, near stockout |
|
|
205
|
+
| HIGH | [name] | 0.5–1 month | [qty] | [1–2 cases] | In active flight, approaching threshold |
|
|
206
|
+
| STANDARD | [name] | 1–2 months | [qty] | [1 case] | Below reorder threshold |
|
|
207
|
+
|
|
208
|
+
For each reorder, note:
|
|
209
|
+
- Whether this wine is in an active flight (determines urgency)
|
|
210
|
+
- Suggested order quantity (2 months forward coverage at current consumption rate, rounded to nearest case)
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### 7. Vintage Transition Alerts
|
|
215
|
+
|
|
216
|
+
Flag wines where the current vintage on hand is likely due for a transition to a newer vintage. Criteria: the vintage year is 3+ years before the current year AND the wine's typical drinking window (by style) suggests a newer vintage is likely available from the producer.
|
|
217
|
+
|
|
218
|
+
| Wine | Current Vintage | Age | Style | Typical Window | Likely Newer Vintage | Action |
|
|
219
|
+
|---|---|---|---|---|---|---|
|
|
220
|
+
| [name] | [year] | [years old] | [style] | [window] | [year, if known] | Request current vintage from importer |
|
|
221
|
+
|
|
222
|
+
**Vintage window reference** (use to flag):
|
|
223
|
+
- **Everyday reds** (Côtes du Rhône, Malbec, basic Rioja): 2–4 years drinking window. If you're holding the 2020, a 2023 is available.
|
|
224
|
+
- **Mid-tier reds** (village Burgundy, Chianti Classico Riserva, Napa Cab): 4–8 years. 2018 is at peak; 2021 is available and worth adding alongside.
|
|
225
|
+
- **Age-worthy reds** (Barolo, Grand Cru Burgundy, top Bordeaux): 8–20+ years. Holding the 2015 is appropriate; offer the 2016 alongside if budget allows.
|
|
226
|
+
- **Most whites and rosés**: 1–3 years. A 2020 white wine should be reviewed for freshness; 2022/2023 is likely available and more vibrant.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### 8. Beer Rotation — Best-By Tracking
|
|
231
|
+
|
|
232
|
+
| Beer | Brewery | Style | Best-By Date | Days Remaining | Status |
|
|
233
|
+
|---|---|---|---|---|---|
|
|
234
|
+
| [name] | [brewery] | [style] | [date] | [days] | 🔴 URGENT / 🟡 WATCH / 🟢 OK |
|
|
235
|
+
|
|
236
|
+
Alert tiers:
|
|
237
|
+
- 🔴 URGENT: Less than 14 days to best-by. Must be poured or sold immediately. Flag for active promotion or complimentary pour.
|
|
238
|
+
- 🟡 WATCH: 14–30 days to best-by. Include in current beer flight; do not reorder this SKU until stock clears.
|
|
239
|
+
- 🟢 OK: 30+ days remaining.
|
|
240
|
+
|
|
241
|
+
For any beer marked URGENT, add: "Feature in [Beer Tasting flight name] immediately. Notify cicerone to prioritize this pour."
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Formatting Rules
|
|
246
|
+
|
|
247
|
+
- Dollars: `$1,234` format. Percentages: one decimal place.
|
|
248
|
+
- Cases: `1.5 cases (18 bottles)` — always show both units
|
|
249
|
+
- Empty cells: `—`
|
|
250
|
+
- Sort all tables by the most operationally relevant column (urgency, then value)
|
|
251
|
+
- The report should be printable as a PDF or readable on a tablet in a cellar or back-of-house context
|