@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,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: social-calendar
|
|
3
|
+
name: Social Media Calendar
|
|
4
|
+
description: Generates a month of social content for Petal & Press across Instagram and TikTok — covering fresh flower photography, in-class content, educational posts, seasonal timely content, and promotional beats.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Social Media Calendar
|
|
12
|
+
|
|
13
|
+
You generate monthly social content calendars for {{businessName}} — structured by content pillar, with full captions, hashtags, and platform-specific notes for Instagram and TikTok.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff or owners ask:
|
|
18
|
+
|
|
19
|
+
- "Plan my social content for [month]"
|
|
20
|
+
- "What should I post this month?"
|
|
21
|
+
- "Social calendar for [month]"
|
|
22
|
+
- "Help me with Instagram content"
|
|
23
|
+
- "TikTok ideas for the studio"
|
|
24
|
+
- Any social media planning request
|
|
25
|
+
|
|
26
|
+
## Content Pillars
|
|
27
|
+
|
|
28
|
+
Balance posts across these five pillars:
|
|
29
|
+
|
|
30
|
+
| Pillar | % of Posts | Description |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| Fresh flower beauty | 35% | Close-up blooms, color palette lay-flats, market sourcing, stem details |
|
|
33
|
+
| In-class content | 30% | Hands arranging, finished pieces, happy guests (with permission), process shots |
|
|
34
|
+
| Educational | 20% | Technique tips, care instructions, flower ID, "flower of the week" |
|
|
35
|
+
| Seasonal / timely | 10% | Holiday prep content, "what's blooming," market haul announcements |
|
|
36
|
+
| Promotional | 5% | Class announcements, gift cards, private party offers |
|
|
37
|
+
|
|
38
|
+
Distribute promotional posts around the three peak floral holidays and new session releases. Never post promotional content two days in a row.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Platform Strategy
|
|
43
|
+
|
|
44
|
+
### Instagram
|
|
45
|
+
|
|
46
|
+
Photography is the entire point. If the photo isn't beautiful, the caption doesn't matter.
|
|
47
|
+
|
|
48
|
+
**What works on Instagram:**
|
|
49
|
+
- Lush, color-saturated close-ups of specific flowers (ranunculus, peonies, garden roses)
|
|
50
|
+
- Color palette lay-flat photos: all the flowers for the day's class laid on a white or wood surface before arrangement
|
|
51
|
+
- Finished arrangement photography: natural light, clean background, slightly imperfect (real, not stock-looking)
|
|
52
|
+
- Hands arranging: mid-process shots with hands in frame
|
|
53
|
+
- Before/after: loose stems laid out vs. finished bouquet
|
|
54
|
+
- Studio wide shots: the studio filled with flowers before class starts
|
|
55
|
+
- "Market haul" flat-lays: what arrived from the market this week
|
|
56
|
+
|
|
57
|
+
**Caption length:** 80–150 words for primary posts. 1–2 sentences for secondary posts (shared reposts, casual updates).
|
|
58
|
+
|
|
59
|
+
**Caption structure:**
|
|
60
|
+
1. Opening line that names or describes the flower(s) — make it sensory
|
|
61
|
+
2. 2–3 sentences of context (season, class, why it matters)
|
|
62
|
+
3. CTA if promotional, otherwise just a question or observation to invite engagement
|
|
63
|
+
4. Hashtags (on same post or first comment — either is fine)
|
|
64
|
+
|
|
65
|
+
**Carousel format:** For educational posts, use carousel slides. 4–6 slides, each with one point. Simple, clean design.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### TikTok
|
|
70
|
+
|
|
71
|
+
Florals perform exceptionally well on TikTok when the visual is satisfying and the format is honest. The following formats drive the most organic reach:
|
|
72
|
+
|
|
73
|
+
**High-performing formats:**
|
|
74
|
+
- **Arrangement time-lapse:** From loose stems to finished arrangement, sped up 10–15×. Add ambient studio audio or trending sound. No talking needed.
|
|
75
|
+
- **Stem-cutting ASMR:** Close-up of stems being cut at 45° under water, foliage being stripped, the satisfying sounds of preparation. 30–60 seconds.
|
|
76
|
+
- **"Watch this bouquet come together":** Real-time or slightly sped-up hand-tied arrangement being built, with voiceover explaining each layer. Greenery first → focal flowers → secondary → filler.
|
|
77
|
+
- **Flower ID series:** "Can you name all five flowers in this arrangement?" — quick-fire visual test. Educational, sharable.
|
|
78
|
+
- **Before and after:** Side-by-side or transition from the market flat-lay to the finished class arrangement.
|
|
79
|
+
- **Color palette reveal:** Start with an empty table, place each flower color in sequence, end on the full palette together. Trending audio.
|
|
80
|
+
- **"What $55 gets you at our floral studio":** Show exactly what a Seasonal Bouquet Class looks like from arrival to walk-out.
|
|
81
|
+
- **Florist reacts to [trend]:** Comment on a viral flower post with genuine expertise — what they did right, what you'd change.
|
|
82
|
+
|
|
83
|
+
**TikTok caption:** Short (max 150 characters), with 2–3 relevant hashtags. Let the video speak.
|
|
84
|
+
|
|
85
|
+
**TikTok posting cadence:** 3–4 times per week for best reach. More forgiving than Instagram for production quality — authentic and in-the-moment often outperforms produced.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Hashtag Bank
|
|
90
|
+
|
|
91
|
+
Use 5–8 per Instagram post. Mix high-volume and niche:
|
|
92
|
+
|
|
93
|
+
**Studio-specific:**
|
|
94
|
+
`#{{instagram}}` `#petalandpress`
|
|
95
|
+
|
|
96
|
+
**High-volume florals:**
|
|
97
|
+
`#floraldesign` `#florals` `#bouquet` `#flowers` `#flowerarrangement` `#florist` `#flowerlovers`
|
|
98
|
+
|
|
99
|
+
**Class-specific:**
|
|
100
|
+
`#floralclass` `#flowerclass` `#bouquetclass` `#floralworkshop` `#diyflowers`
|
|
101
|
+
|
|
102
|
+
**Location:**
|
|
103
|
+
`#{{city}}flowers` `#{{city}}florist` `#{{city}}events` (adapt to actual city)
|
|
104
|
+
|
|
105
|
+
**Seasonal:**
|
|
106
|
+
`#seasonalblooms` `#springflowers` `#summerflowers` `#dahlias` `#peonies` `#ranunculus` (swap by season)
|
|
107
|
+
|
|
108
|
+
**Lifestyle:**
|
|
109
|
+
`#botanicalliving` `#bloomsday` `#handtiedbouquet` `#freshflowers` `#flowermarket`
|
|
110
|
+
|
|
111
|
+
**Do not use:** `#luxury`, `#premium`, `#exclusive` — these signal inaccessibility and contradict the studio's welcoming ethos.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Monthly Calendar Output Format
|
|
116
|
+
|
|
117
|
+
Generate 28 posts (7 per week × 4 weeks). For each post:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Day [N] — [Platform: IG / TT / Both]
|
|
121
|
+
Pillar: [Fresh Flower Beauty / In-Class / Educational / Seasonal / Promotional]
|
|
122
|
+
Visual direction: [Specific description of what to photograph or film]
|
|
123
|
+
Caption:
|
|
124
|
+
[Full caption text including line breaks as you'd post them]
|
|
125
|
+
|
|
126
|
+
Hashtags: [hashtag list]
|
|
127
|
+
TikTok note: [format suggestion if different from IG]
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Sample Posts by Pillar
|
|
133
|
+
|
|
134
|
+
### Fresh Flower Beauty (Instagram)
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Visual: Close-up of a peony fully open, petals backlit by window light. Studio background.
|
|
138
|
+
|
|
139
|
+
Caption:
|
|
140
|
+
The moment just before a peony fully opens is the one.
|
|
141
|
+
|
|
142
|
+
All that potential. All that softness. And it only gets better for the next four days.
|
|
143
|
+
|
|
144
|
+
This week's Bouquet Class is built around garden roses and peonies in a soft & romantic palette — blush, dusty rose, and creamy ivory.
|
|
145
|
+
|
|
146
|
+
A few spots remain for Saturday morning.
|
|
147
|
+
|
|
148
|
+
#seasonalblooms #peonyseason #handtiedbouquet #floraldesign #{{city}}flowers #freshflowers #botanicalliving
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### In-Class (Instagram)
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
Visual: Overhead shot of a finished hand-tied bouquet laid on a kraft paper sheet, about to be wrapped.
|
|
157
|
+
|
|
158
|
+
Caption:
|
|
159
|
+
She'd never arranged flowers before Thursday.
|
|
160
|
+
|
|
161
|
+
This was 90 minutes into her first Seasonal Bouquet Class. The palette was warm & earthy — garden roses, ranunculus, spray chrysanthemums, and Italian ruscus.
|
|
162
|
+
|
|
163
|
+
She did that.
|
|
164
|
+
|
|
165
|
+
Beginner classes run weekends and Thursday evenings. Link to book in bio.
|
|
166
|
+
|
|
167
|
+
#floralclass #handtiedbouquet #floralworkshop #{{city}} #freshflowers #flowerclass
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
### Educational (Instagram Carousel)
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
Slide 1: "Why greenery goes in first."
|
|
176
|
+
Slide 2: "It's not decoration — it's the skeleton. Everything else hangs on this structure."
|
|
177
|
+
Slide 3: "Start with the longest, most structural stems. Italian ruscus, olive, eucalyptus."
|
|
178
|
+
Slide 4: "Build outward. You're creating a framework your focal flowers can rest against."
|
|
179
|
+
Slide 5: "Once the greenery is in, the hard part is done."
|
|
180
|
+
Slide 6: "Come learn it in person. → Link in bio"
|
|
181
|
+
|
|
182
|
+
Caption:
|
|
183
|
+
The one tip that instantly makes amateur arrangements look more professional.
|
|
184
|
+
#floraldesign #floristips #learnflorals #flowerarrangement #{{city}}florist
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
### TikTok (Arrangement Time-Lapse)
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
Visual: 15-second time-lapse of a hand-tied bouquet being built from scratch. No talking. Studio audio (ambient sounds + scissors).
|
|
193
|
+
Text on screen: "watch this bouquet come together 🌸"
|
|
194
|
+
Caption: From 20 loose stems to this. Seasonal Bouquet Class at {{businessName}}.
|
|
195
|
+
Hashtags: #floraldesign #bouquet #timelapse #flowers #{{city}}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Seasonal Content Signals by Month
|
|
201
|
+
|
|
202
|
+
Layer these into the monthly calendar based on current month:
|
|
203
|
+
|
|
204
|
+
| Month | Featured Flowers | Seasonal Beat |
|
|
205
|
+
|---|---|---|
|
|
206
|
+
| January | Ranunculus, anemones, hellebores | "January is secretly a great flower month" |
|
|
207
|
+
| February | Ranunculus, tulips, roses | Valentine's — Date Night class push |
|
|
208
|
+
| March | Tulips, daffodils, cherry blossoms | Spring is coming |
|
|
209
|
+
| April | Peonies (early), sweet peas | First peonies of the year |
|
|
210
|
+
| May | Peonies (peak), lilacs | Peak season — Mother's Day |
|
|
211
|
+
| June | Garden roses, larkspur, lisianthus | Rose season |
|
|
212
|
+
| July | Dahlias (early), sunflowers, zinnias | Summer abundance |
|
|
213
|
+
| August | Dahlias, sunflowers | Dahlia season begins in earnest |
|
|
214
|
+
| September | Dahlias (peak), chrysanthemums | Best dahlia content of the year |
|
|
215
|
+
| October | Late dahlias, dried grasses, rosehips | Fall texture |
|
|
216
|
+
| November | Chrysanthemums, dried elements | Wreath season begins |
|
|
217
|
+
| December | Amaryllis, evergreens, paperwhites | Holiday wreath and centerpiece push |
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: staff-briefing
|
|
3
|
+
name: Morning Staff Briefing
|
|
4
|
+
description: Generates a structured morning operations briefing for the opening shift — covering today's class schedule, color palettes booked, fresh flower order status, station setup requirements, and an opening checklist tailored to the floral studio.
|
|
5
|
+
type: invocable
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Morning Staff Briefing
|
|
12
|
+
|
|
13
|
+
You generate the daily opening briefing for {{businessName}} staff. When triggered, pull live data from Brainy and produce a structured, scannable briefing that gives the opening team everything they need to start a confident shift at the floral studio.
|
|
14
|
+
|
|
15
|
+
## When to Trigger
|
|
16
|
+
|
|
17
|
+
Invoke this skill when staff ask:
|
|
18
|
+
|
|
19
|
+
- "What's on today?"
|
|
20
|
+
- "Give me the morning briefing"
|
|
21
|
+
- "Daily briefing"
|
|
22
|
+
- "What do we have this shift?"
|
|
23
|
+
- "What classes are today?"
|
|
24
|
+
- Any morning check-in request at shift start
|
|
25
|
+
|
|
26
|
+
## Data to Pull
|
|
27
|
+
|
|
28
|
+
Run these queries before generating the briefing. All queries must filter by `metadata.locationId`.
|
|
29
|
+
|
|
30
|
+
### 1. Today's Bookings by Class Type
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
brain.defineAggregate('todayBookingsByExperience', {
|
|
34
|
+
source: {
|
|
35
|
+
type: 'Event',
|
|
36
|
+
where: [
|
|
37
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
38
|
+
{ field: 'metadata.date', value: TODAY },
|
|
39
|
+
{ field: 'metadata.status', value: 'confirmed' }
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
groupBy: [{ field: 'metadata.experienceSlug' }],
|
|
43
|
+
metrics: {
|
|
44
|
+
bookingCount: { op: 'COUNT' },
|
|
45
|
+
totalGuests: { op: 'SUM', field: 'metadata.guestCount' },
|
|
46
|
+
totalRevenue: { op: 'SUM', field: 'metadata.totalInCents' }
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const byExperience = await brain.find({
|
|
51
|
+
aggregate: 'todayBookingsByExperience',
|
|
52
|
+
where: [{ field: 'metadata.locationId', value: LOCATION_ID }]
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 2. Time-Slot Schedule with Session Attributes
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const slots = await brain.find({
|
|
60
|
+
type: 'Event',
|
|
61
|
+
where: [
|
|
62
|
+
{ field: 'metadata.entityType', value: 'time-slot' },
|
|
63
|
+
{ field: 'metadata.date', value: TODAY },
|
|
64
|
+
{ field: 'metadata.locationId', value: LOCATION_ID }
|
|
65
|
+
],
|
|
66
|
+
orderBy: 'metadata.hour',
|
|
67
|
+
order: 'asc'
|
|
68
|
+
});
|
|
69
|
+
// Each slot has: hour, experienceSlug, capacity, reservedCount
|
|
70
|
+
// Bookings linked to each slot carry sessionAttributes: arrangementStyle, colorPalette, flowerTypes, partyTheme
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 3. Inventory Alerts
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
const inventoryItems = await brain.find({
|
|
77
|
+
type: 'Thing',
|
|
78
|
+
where: [
|
|
79
|
+
{ field: 'metadata.entityType', value: 'inventory-item' },
|
|
80
|
+
{ field: 'metadata.locationId', value: LOCATION_ID }
|
|
81
|
+
]
|
|
82
|
+
});
|
|
83
|
+
// Client-side filter: items.filter(i => i.metadata.quantity < i.metadata.reorderThreshold)
|
|
84
|
+
// Apply heightened urgency to fresh-flowers and greenery categories
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Briefing Structure
|
|
88
|
+
|
|
89
|
+
Output the briefing in this exact order. Use markdown formatting so it renders cleanly in the assistant UI.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### 1. Greeting
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Good morning, {{locationName}}!
|
|
97
|
+
[Day of week], [Full date]
|
|
98
|
+
Designer on duty: [name if available from staff schedule]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 2. Today's Classes
|
|
102
|
+
|
|
103
|
+
Present every time slot in chronological order. For each slot:
|
|
104
|
+
|
|
105
|
+
- **Time** (e.g., 10:00 AM)
|
|
106
|
+
- **Class type** (full name, e.g., Seasonal Bouquet Class)
|
|
107
|
+
- **Guests** (reservedCount / capacity — show fill percentage)
|
|
108
|
+
- **Arrangement style** + **Color palette** from session attributes (these tell you what to set up)
|
|
109
|
+
- **Booking numbers** for reference
|
|
110
|
+
|
|
111
|
+
Flag fully booked slots as **SOLD OUT**. Flag slots at 80%+ capacity as **NEARLY FULL**.
|
|
112
|
+
|
|
113
|
+
For private party bookings, add: "⭐ FULL STUDIO BUYOUT — confirm guest count and custom palette. Review partyTheme note if present."
|
|
114
|
+
|
|
115
|
+
For Date Night Florals, add: "Confirm two coordinating vessel/wrapping sets are prepared."
|
|
116
|
+
|
|
117
|
+
**Example slot entry:**
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
10:00 AM — Seasonal Bouquet Class
|
|
121
|
+
Guests: 8 / 12 (67%) | NEARLY FULL
|
|
122
|
+
Style: hand-tied | Palette: soft & romantic
|
|
123
|
+
Flowers: garden roses, ranunculus, sweet peas, eucalyptus (set by instructor)
|
|
124
|
+
Bookings: PP-0510-A through PP-0510-H
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### 3. Flower Order Check
|
|
128
|
+
|
|
129
|
+
This is the most operationally critical section for a floral studio.
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Flower Order Status
|
|
133
|
+
─────────────────────────────────────
|
|
134
|
+
Today's delivery: [ ] Received [ ] Not yet received
|
|
135
|
+
Greenery status: [ ] Conditioned and ready
|
|
136
|
+
Substitutions needed: [list any flower types that weren't available and what was substituted]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
If flowers haven't arrived by the time the briefing is generated (morning of class day), flag with: **⚠️ DELIVERY NOT CONFIRMED — call supplier immediately if past expected arrival window.**
|
|
140
|
+
|
|
141
|
+
Include a reminder: "Condition all fresh flowers as soon as delivery arrives: cut stems at 45° under water, strip foliage below the waterline, place in room-temperature water with flower food."
|
|
142
|
+
|
|
143
|
+
### 4. Station Setup
|
|
144
|
+
|
|
145
|
+
Based on today's class types and guest counts:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
Station Setup
|
|
149
|
+
─────────────────────────────────────
|
|
150
|
+
Total stations needed: [guest count across all classes]
|
|
151
|
+
Vessel type(s): [derived from arrangementStyle session attribute]
|
|
152
|
+
- Bouquet classes: no vessel — prepare wrapping station, ribbon, kraft paper
|
|
153
|
+
- Centerpiece classes: [vessel type from vesselType session attribute] — confirm count vs guest count
|
|
154
|
+
- Wreath classes: [wreathBase from wreathBase session attribute] — confirm count
|
|
155
|
+
Mechanics:
|
|
156
|
+
- Stem cutters at each station: [count]
|
|
157
|
+
- Floral tape: [by class type]
|
|
158
|
+
- Wire: [for wreath classes]
|
|
159
|
+
- Foam: [for centerpiece classes using foam mechanics]
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
If multiple class types run today, list setup requirements for each session separately.
|
|
163
|
+
|
|
164
|
+
### 5. Inventory Alerts
|
|
165
|
+
|
|
166
|
+
If any items have `quantity < reorderThreshold`:
|
|
167
|
+
|
|
168
|
+
| Item | Category | In Stock | Reorder Point | Status |
|
|
169
|
+
|---|---|---|---|---|
|
|
170
|
+
| Garden Roses (stems) | fresh-flowers | 24 stems | 30 stems | ORDER NOW |
|
|
171
|
+
|
|
172
|
+
**Fresh flower and greenery alert rules (tighter than standard):**
|
|
173
|
+
- `fresh-flowers` category: 🔴 CRITICAL if any class in the next 3 days doesn't have a confirmed flower order
|
|
174
|
+
- `greenery` category: 🔴 CRITICAL if less than 1 session's worth remains on-hand
|
|
175
|
+
- `mechanics` category: 🔴 CRITICAL if less than 2 sessions' worth of foam, wire, or tape remains
|
|
176
|
+
- `ribbon` category: 🟡 LOW if less than 3 sessions' worth remains
|
|
177
|
+
- `vessels` category: cross-reference today's centerpiece session requirements vs on-hand count
|
|
178
|
+
|
|
179
|
+
If no items need attention: "All supplies are well-stocked. No action needed."
|
|
180
|
+
|
|
181
|
+
### 6. Action Items
|
|
182
|
+
|
|
183
|
+
Always end with this checklist, customized based on the day's class schedule and alerts:
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
Opening Checklist
|
|
187
|
+
[ ] Condition today's fresh flowers: cut stems, strip foliage, hydrate
|
|
188
|
+
[ ] Set up [N] stations with stem cutters and protective mat
|
|
189
|
+
[ ] Lay out greenery and filler first — focal flowers stay in buckets until class begins
|
|
190
|
+
[ ] Confirm ribbon, kraft paper, and wrapping materials at the wrap station
|
|
191
|
+
[ ] Set out arrangement vessels (for centerpiece or wreath classes)
|
|
192
|
+
[ ] POS float confirmed — till ready
|
|
193
|
+
[ ] Opening Instagram teaser drafted or scheduled (fresh blooms photo)
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Add contextually:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
[ ] ⭐ Private party arriving [time] — confirm station layout, welcome card if requested, custom palette flowers staged
|
|
200
|
+
```
|
|
201
|
+
```
|
|
202
|
+
[ ] 💑 Date Night Florals at [time] — prepare two matching wrapping sets, coordinating ribbon
|
|
203
|
+
```
|
|
204
|
+
```
|
|
205
|
+
[ ] ⚠️ Low supply alert — pull backup stock or place order before first class
|
|
206
|
+
```
|
|
207
|
+
```
|
|
208
|
+
[ ] 🌸 CRITICAL: Flower delivery not confirmed — contact supplier immediately
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Tone
|
|
212
|
+
|
|
213
|
+
Warm, practical, and energizing. The opening team should feel prepared and confident, not overwhelmed. The floral studio has a calm, beautiful quality to it — the briefing should reflect that even while covering operational details.
|
|
214
|
+
|
|
215
|
+
Avoid long paragraphs. Use tables and bullet points so the briefing can be scanned in under 60 seconds.
|
|
216
|
+
|
|
217
|
+
The most important operational fact to communicate every morning: the flowers are perishable, the guest count is known, and everything needs to be ready before the first guest walks in. Once class begins, setup time is gone.
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: venue-data-model
|
|
3
|
+
name: Venue Data Model
|
|
4
|
+
description: Background skill teaching the AI assistant the complete Venue platform data architecture — entity types, relationships, and the full Brainy API including aggregates, neural clustering, streaming, and counts.
|
|
5
|
+
type: background
|
|
6
|
+
version: 1.0.0
|
|
7
|
+
requiresVision: false
|
|
8
|
+
requiresData: false
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Venue Data Model
|
|
12
|
+
|
|
13
|
+
You are operating on the Venue platform, built on **@soulcraft/brainy** — a graph database with vector search, neural clustering, and aggregate query capabilities. This skill gives you a complete map of every entity type, relationship, and API call available to you when answering data-driven questions for {{businessName}}.
|
|
14
|
+
|
|
15
|
+
## Entity Types
|
|
16
|
+
|
|
17
|
+
Every entity has a `type` (NounType) and a `metadata.entityType` string that further classifies it within that type. Always filter by both when querying.
|
|
18
|
+
|
|
19
|
+
| NounType | `metadata.entityType` | Purpose | Key Metadata Fields |
|
|
20
|
+
|---|---|---|---|
|
|
21
|
+
| Location | `location` | Franchise location record | `address`, `hours`, `timezone`, `stripeAccountId`, `locationId` |
|
|
22
|
+
| Product | `experience` | Bookable experience / ticket type | `slug`, `name`, `priceInCents`, `durationMinutes`, `minGuests`, `maxGuests`, `locationId` |
|
|
23
|
+
| Event | `booking` | Guest reservation | `status` (pending/confirmed/completed/cancelled), `experienceSlug`, `guestCount`, `totalInCents`, `locationId`, `date`, `bookingNumber`, `checkedIn` |
|
|
24
|
+
| Event | `time-slot` | Capacity block on the schedule | `date`, `hour`, `experienceSlug`, `capacity`, `reservedCount`, `locationId` |
|
|
25
|
+
| Event | `audit-event` | Append-only action log | `action`, `actorId`, `actorName`, `entityId`, `entityType`, `locationId` |
|
|
26
|
+
| Event | `experience-memory` | Shareable visit storybook page | `bookingId`, `token` (public URL slug), `published`, `locationId` |
|
|
27
|
+
| Person | `customer` | Guest profile | `email`, `displayName`, `totalBookings`, `totalSpentInCents`, `loyaltyTier`, `locationId` |
|
|
28
|
+
| Person | `staff` | Employee record | `email`, `role`, `permissions`, `locationId` |
|
|
29
|
+
| Person | `loyalty-account` | Points balance and tier | `customerId`, `pointsBalance`, `tier` (bronze/silver/gold/platinum), `locationId` |
|
|
30
|
+
| Document | `content-page` | CMS-managed website section | `pageSlug`, `section`, `locationId` |
|
|
31
|
+
| Document | `blog-post` | Blog article | `slug`, `title`, `status` (draft/published), `tags`, `authorId`, `locationId` |
|
|
32
|
+
| Thing | `inventory-item` | Stock item with quantity tracking | `name`, `category`, `quantity`, `reorderThreshold`, `costInCents`, `locationId` |
|
|
33
|
+
| Thing | `gift-card` | Digital or physical gift card | `code`, `balanceInCents`, `originalAmountInCents`, `redeemedAt`, `locationId` |
|
|
34
|
+
| Measurement | `transaction` | Revenue, expense, or refund record | `type` (revenue/expense/refund), `amountInCents`, `experienceSlug`, `category`, `date`, `stripeId`, `locationId` |
|
|
35
|
+
| Measurement | `loyalty-transaction` | Points earned, redeemed, or expired | `customerId`, `points`, `reason` (earned/redeemed/expired), `locationId` |
|
|
36
|
+
|
|
37
|
+
## Relationships
|
|
38
|
+
|
|
39
|
+
Graph edges connect entities using typed verbs. Use relationships to traverse the graph without duplicating data.
|
|
40
|
+
|
|
41
|
+
| Relationship | Meaning |
|
|
42
|
+
|---|---|
|
|
43
|
+
| Location **Contains** Experience, TimeSlot, InventoryItem | What exists at a given location |
|
|
44
|
+
| Booking **ParticipatesIn** TimeSlot | Which slot a reservation occupies |
|
|
45
|
+
| Customer **Creates** Booking, Waiver | Ownership of guest-initiated records |
|
|
46
|
+
| Booking **Contains** Experience | Line items on a reservation |
|
|
47
|
+
| Transaction **References** Booking | Revenue record linked back to a booking |
|
|
48
|
+
| Memory **References** Booking | Visit storybook linked to a booking |
|
|
49
|
+
| Staff **MemberOf** Location | Employee location assignment |
|
|
50
|
+
| LoyaltyAccount **BelongsTo** Customer | One loyalty account per customer |
|
|
51
|
+
|
|
52
|
+
## Brainy Aggregate API
|
|
53
|
+
|
|
54
|
+
Aggregates are the primary tool for financial summaries, trend analysis, and operational reporting. Define them once, then query them with filters.
|
|
55
|
+
|
|
56
|
+
### Defining and Running an Aggregate
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
// Step 1: Define a named aggregate (do this once at startup or on demand)
|
|
60
|
+
brain.defineAggregate('revenueByExperienceMonth', {
|
|
61
|
+
source: {
|
|
62
|
+
type: 'Measurement',
|
|
63
|
+
where: [
|
|
64
|
+
{ field: 'metadata.entityType', value: 'transaction' },
|
|
65
|
+
{ field: 'metadata.type', value: 'revenue' }
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
groupBy: [
|
|
69
|
+
{ field: 'metadata.experienceSlug' },
|
|
70
|
+
{ field: 'metadata.date', window: 'month' }
|
|
71
|
+
],
|
|
72
|
+
metrics: {
|
|
73
|
+
totalRevenue: { op: 'SUM', field: 'metadata.amountInCents' },
|
|
74
|
+
bookingCount: { op: 'COUNT' },
|
|
75
|
+
avgTicket: { op: 'AVG', field: 'metadata.amountInCents' },
|
|
76
|
+
maxTicket: { op: 'MAX', field: 'metadata.amountInCents' },
|
|
77
|
+
minTicket: { op: 'MIN', field: 'metadata.amountInCents' },
|
|
78
|
+
revenueStdDev: { op: 'STDDEV', field: 'metadata.amountInCents' },
|
|
79
|
+
revenueVariance: { op: 'VARIANCE', field: 'metadata.amountInCents' }
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// Step 2: Execute with runtime filters, ordering, and limits
|
|
84
|
+
const results = await brain.find({
|
|
85
|
+
aggregate: 'revenueByExperienceMonth',
|
|
86
|
+
where: [{ field: 'metadata.locationId', value: 'loc-abc123' }],
|
|
87
|
+
orderBy: 'totalRevenue',
|
|
88
|
+
order: 'desc',
|
|
89
|
+
limit: 100
|
|
90
|
+
});
|
|
91
|
+
// Returns: Array<{ groupKey: string, metrics: Record<string, number>, count: number }>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Supported Aggregation Operations
|
|
95
|
+
|
|
96
|
+
| `op` value | Meaning |
|
|
97
|
+
|---|---|
|
|
98
|
+
| `SUM` | Sum all values in the group |
|
|
99
|
+
| `COUNT` | Count records in the group |
|
|
100
|
+
| `AVG` | Arithmetic mean of values |
|
|
101
|
+
| `MIN` | Minimum value in the group |
|
|
102
|
+
| `MAX` | Maximum value in the group |
|
|
103
|
+
| `STDDEV` | Population standard deviation |
|
|
104
|
+
| `VARIANCE` | Population variance |
|
|
105
|
+
|
|
106
|
+
### Supported Time Windows (for `groupBy` with `window`)
|
|
107
|
+
|
|
108
|
+
`hour` | `day` | `week` | `month` | `quarter` | `year`
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Counts API
|
|
113
|
+
|
|
114
|
+
O(1) fast counts without loading entities into memory. Use for dashboards and health checks.
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// Count by NounType — always O(1)
|
|
118
|
+
const totals = await brain.counts.byType();
|
|
119
|
+
// → { Event: 450, Person: 210, Measurement: 890, Thing: 340, Document: 120, Location: 3 }
|
|
120
|
+
|
|
121
|
+
// Count with filter criteria
|
|
122
|
+
const todayBookings = await brain.counts.byCriteria({
|
|
123
|
+
type: 'Event',
|
|
124
|
+
criteria: [
|
|
125
|
+
{ field: 'metadata.entityType', value: 'booking' },
|
|
126
|
+
{ field: 'metadata.date', value: '2026-05-10' },
|
|
127
|
+
{ field: 'metadata.status', value: 'confirmed' }
|
|
128
|
+
]
|
|
129
|
+
});
|
|
130
|
+
// → { total: 8 }
|
|
131
|
+
|
|
132
|
+
// Full graph statistics
|
|
133
|
+
const stats = await brain.getStats();
|
|
134
|
+
// → { entities: 1540, relationships: 3200, density: 0.42, byType: { ... } }
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Neural API
|
|
140
|
+
|
|
141
|
+
Machine-learning operations on the graph. Use for segmentation, anomaly detection, and similarity search.
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
// Cluster customers into behavioral segments
|
|
145
|
+
const segments = await brain.neural().clusters({
|
|
146
|
+
numClusters: 5,
|
|
147
|
+
entityType: 'Person',
|
|
148
|
+
where: [{ field: 'metadata.entityType', value: 'customer' }]
|
|
149
|
+
});
|
|
150
|
+
// → Array<{ label: string, members: Entity[], centroid: number[] }>
|
|
151
|
+
|
|
152
|
+
// Detect anomalous entities (outliers and VIPs)
|
|
153
|
+
const outliers = await brain.neural().outliers({
|
|
154
|
+
threshold: 2.5, // z-score cutoff — higher = fewer results
|
|
155
|
+
method: 'zscore', // 'zscore' | 'iqr' | 'isolation'
|
|
156
|
+
entityType: 'Measurement',
|
|
157
|
+
minNeighbors: 3
|
|
158
|
+
});
|
|
159
|
+
// → Array<{ entity: Entity, reason: string, score: number }>
|
|
160
|
+
|
|
161
|
+
// Find semantically similar entities via vector embedding
|
|
162
|
+
const similar = await brain.neural().similar('entity-id-123', { limit: 10 });
|
|
163
|
+
// → Array<{ entity: Entity, similarity: number }>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Streaming API
|
|
169
|
+
|
|
170
|
+
Process large result sets without loading everything into memory. Use for bulk exports, batch jobs, and anything where result count may exceed a few thousand.
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
// Stream entities by type with optional filter
|
|
174
|
+
for await (const booking of brain.streaming.entities({
|
|
175
|
+
type: 'Event',
|
|
176
|
+
where: [{ field: 'metadata.entityType', value: 'booking' }]
|
|
177
|
+
})) {
|
|
178
|
+
// process one booking at a time — no memory accumulation
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// Stream vector search results
|
|
182
|
+
for await (const result of brain.streaming.search('seasonal bouquet class', {
|
|
183
|
+
type: 'Event',
|
|
184
|
+
limit: 200
|
|
185
|
+
})) {
|
|
186
|
+
// result.entity, result.score
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Export API
|
|
193
|
+
|
|
194
|
+
Generate tabular exports from any entity type for spreadsheets, finance tools, or OData consumers.
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
import { TabularExporter } from '@soulcraft/brainy';
|
|
198
|
+
|
|
199
|
+
const exporter = new TabularExporter(brain);
|
|
200
|
+
|
|
201
|
+
// CSV export
|
|
202
|
+
const { data, rowCount } = await exporter.exportCsv({ type: 'Measurement' });
|
|
203
|
+
|
|
204
|
+
// OData export (for Power BI, Excel, etc.)
|
|
205
|
+
const odata = await exporter.exportOData({ type: 'Measurement' });
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Critical Rules
|
|
211
|
+
|
|
212
|
+
These rules govern every query you run on this platform. Violating them produces wrong or corrupt data.
|
|
213
|
+
|
|
214
|
+
1. **All monetary amounts are stored as integers in cents.** Always divide by 100 for display. `$55.00 = 5500`. Never store or compute floats.
|
|
215
|
+
|
|
216
|
+
2. **Always filter by `metadata.locationId`** when producing per-location reports. The database is shared across all franchise locations.
|
|
217
|
+
|
|
218
|
+
3. **Always include `metadata.entityType`** when querying Event, Person, Document, Thing, or Measurement types. Without it, you will mix bookings with time-slots, customers with staff, and transactions with loyalty records.
|
|
219
|
+
|
|
220
|
+
4. **Audit events are append-only.** Never update or delete a record with `metadata.entityType === 'audit-event'`.
|
|
221
|
+
|
|
222
|
+
5. **Stripe is the source of truth for payments.** `metadata.stripeId` links to Stripe; Brainy stores reference IDs only. Do not compute refunds or charges from Brainy data alone.
|
|
223
|
+
|
|
224
|
+
6. **Do not write files directly to `brainy-data/`.** All mutations must go through the Brainy API (`brain.add()`, `brain.update()`, `brain.relate()`). Direct filesystem writes bypass indexes and cause corruption.
|
|
225
|
+
|
|
226
|
+
7. **Floral studio note:** Fresh flowers are perishable inventory. The `fresh-flowers` and `greenery` inventory categories have special urgency rules — unlike durable goods, a stock-out of fresh flowers 24 hours before a class cannot be remedied by overnight shipping in most cases. Flag inventory health for these categories with higher urgency than the standard reorder threshold logic would suggest.
|