skills/dispensary/menu-gap-analysis/SKILL.md
--- name: menu-gap-analysis description: Identify products a dispensary is missing relative to competitor menus, local customer demand, and category best practices — producing a prioritized gap report with procurement recommendations. Use when a store wants to know what it should be stocking that it isn't. Trigger phrases: "what are we missing on the menu", "menu gaps", "what do competitors carry that we don't", "should we add any products", "menu audit", "what's selling nearby that we don't hav
npx skillsauth add admin-baked/bakedbot-for-brands skills/dispensary/menu-gap-analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Surface the delta between what a dispensary currently stocks and what the local market demands — so operators can make confident procurement decisions and stop losing customers to competitors carrying products they don't have.
org_id — requiredcurrent_menu — current store inventory snapshot (pulled from POS or searchMenu())location — city/state for competitor scan radiuscategories — optional; default: flower, vapes, gummies, prerolls, beverages, concentrates, topicalscompetitor_data — optional; uses cached CI report or triggers fresh scanCompetitors() if absentA menu gap is only meaningful if local demand exists for the missing product. Three signals confirm demand:
1. Competitor velocity signal Products appearing on 2+ competitor menus with visible popularity (review count, featured placement, "staff pick") indicate local demand. One competitor carrying something = weak signal. Three = strong.
2. Customer request signal Smokey delegation logs, missed product searches, and "do you carry X?" queries from customers are direct demand evidence. Weight these heavily — customers told you what they want.
3. Category trend signal Category-level shifts (beverage cannabis growing, flower declining nationally) provide context, but only act on these if local evidence supports them. Label as "trend" not "gap" if unconfirmed locally.
Gap scoring:
What to NOT flag:
## Menu Gap Analysis — [Store] — [Date]
DATA SOURCES: [CI report dated X / live scan / customer request logs]
COMPETITORS ANALYZED: N
CATEGORIES REVIEWED: [list]
### Priority 1 Gaps (Strong procurement case)
| Product / Category | Seen At | Customer Requests | Estimated Weekly Demand |
|-------------------|---------|------------------|------------------------|
| ... | 3 competitors | 5 logged requests | ~$800/wk est. |
### Priority 2 Gaps (Investigate further)
| Product / Category | Signal | Confidence | Suggested Action |
|-------------------|--------|-----------|-----------------|
### Priority 3 Watch (Trend only — no local confirmation)
| Trend | Evidence | Monitor Until |
|-------|---------|--------------|
### Recommended Actions
| # | Action | Owner | Timeline |
|---|--------|-------|----------|
| 1 | Add [product] — strong local demand, 3 competitors carry it | Operator | This week |
### What's Working
[1–2 sentences on categories where the store's menu is strong or differentiated vs. competitors]
scanCompetitors() first.testing
--- name: executive-brief description: Produce a concise executive brief or portfolio digest for a super user or operator — use when summarizing multi-account performance, cross-org anomalies, top actions needed, or weekly business status for leadership review. Trigger phrases: "executive summary", "weekly brief", "portfolio digest", "top actions this week", "what needs my attention", "board update", "cross-account summary". version: 0.1.0 owner: platform agent_owner: pops allowed_roles: - sup
development
--- name: anomaly-to-action-memo description: Interpret a detected anomaly or signal and produce a decision-ready action memo — use when an alert, metric deviation, or operational signal needs to be turned into a prioritized recommendation with evidence, owner, and next step. Trigger phrases: "what does this anomaly mean", "something looks off", "explain this alert", "revenue is down", "traffic dropped", "flag this for review", "what should we do about this". version: 0.1.0 owner: ops-intelligen
testing
--- name: brand-voice description: Apply BakedBot brand voice standards to any customer-facing content — use when generating or reviewing copy that must match a dispensary or brand's approved tone, language patterns, and messaging constraints. Trigger phrases: "does this match our voice", "write in our brand voice", "on-brand copy", "brand guidelines", "tone check". version: 0.1.0 owner: platform agent_owner: craig allowed_roles: - super_user - dispensary_operator - brand_operator outputs:
testing
--- name: sell-through-partner-analysis description: Analyze which retail dispensary partners are selling through a grower's products effectively, identify top performers and laggards, and produce a prioritized partner action plan. Use when a grower wants to know where their products move fastest, which partners need attention, and where to focus wholesale sales effort. Trigger phrases: "which partners are selling our product", "sell-through analysis", "partner performance", "where is inventory