@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.
Files changed (528) hide show
  1. package/kits/ai-content-studio/kit.json +358 -0
  2. package/kits/api-documentation/kit.json +358 -0
  3. package/kits/api-documentation/skills/api-examples/SKILL.md +176 -0
  4. package/kits/api-documentation/skills/api-review/SKILL.md +35 -0
  5. package/kits/api-documentation/skills/api-versioning/SKILL.md +156 -0
  6. package/kits/api-documentation/skills/create-code-examples/SKILL.md +42 -0
  7. package/kits/api-documentation/skills/define-resource/SKILL.md +39 -0
  8. package/kits/api-documentation/skills/document-auth/SKILL.md +39 -0
  9. package/kits/api-documentation/skills/document-endpoint/SKILL.md +40 -0
  10. package/kits/api-documentation/skills/kit-expertise/SKILL.md +78 -0
  11. package/kits/api-documentation/skills/openapi-spec/SKILL.md +174 -0
  12. package/kits/axe-house/kit.json +931 -0
  13. package/kits/axe-house/skills/axe-expertise/SKILL.md +259 -0
  14. package/kits/axe-house/skills/blog-draft/SKILL.md +147 -0
  15. package/kits/axe-house/skills/booking-digest/SKILL.md +188 -0
  16. package/kits/axe-house/skills/customer-insights/SKILL.md +215 -0
  17. package/kits/axe-house/skills/demand-forecast/SKILL.md +183 -0
  18. package/kits/axe-house/skills/email-campaign/SKILL.md +135 -0
  19. package/kits/axe-house/skills/experience-copy/SKILL.md +142 -0
  20. package/kits/axe-house/skills/guest-letter/SKILL.md +171 -0
  21. package/kits/axe-house/skills/inventory-health/SKILL.md +234 -0
  22. package/kits/axe-house/skills/league-manager/SKILL.md +264 -0
  23. package/kits/axe-house/skills/revenue-report/SKILL.md +240 -0
  24. package/kits/axe-house/skills/safety-briefing/SKILL.md +248 -0
  25. package/kits/axe-house/skills/social-calendar/SKILL.md +203 -0
  26. package/kits/axe-house/skills/staff-briefing/SKILL.md +231 -0
  27. package/kits/axe-house/skills/venue-data-model/SKILL.md +225 -0
  28. package/kits/blog-series/kit.json +363 -0
  29. package/kits/blog-series/skills/content-hooks/SKILL.md +158 -0
  30. package/kits/blog-series/skills/headline-brainstorm/SKILL.md +40 -0
  31. package/kits/blog-series/skills/kit-expertise/SKILL.md +78 -0
  32. package/kits/blog-series/skills/repurpose-content/SKILL.md +40 -0
  33. package/kits/blog-series/skills/seo-review/SKILL.md +41 -0
  34. package/kits/blog-series/skills/seo-writing/SKILL.md +135 -0
  35. package/kits/blog-series/skills/series-audit/SKILL.md +36 -0
  36. package/kits/blog-series/skills/write-post-outline/SKILL.md +42 -0
  37. package/kits/business-plan/kit.json +437 -0
  38. package/kits/business-plan/skills/competitor-analysis/SKILL.md +34 -0
  39. package/kits/business-plan/skills/financial-modeling/SKILL.md +180 -0
  40. package/kits/business-plan/skills/financial-projections/SKILL.md +42 -0
  41. package/kits/business-plan/skills/kit-expertise/SKILL.md +101 -0
  42. package/kits/business-plan/skills/market-analysis/SKILL.md +155 -0
  43. package/kits/business-plan/skills/market-research/SKILL.md +35 -0
  44. package/kits/business-plan/skills/sba-compliance/SKILL.md +163 -0
  45. package/kits/business-plan/skills/swot-analysis/SKILL.md +36 -0
  46. package/kits/canvas-and-corks/kit.json +910 -0
  47. package/kits/canvas-and-corks/skills/blog-draft/SKILL.md +160 -0
  48. package/kits/canvas-and-corks/skills/booking-digest/SKILL.md +147 -0
  49. package/kits/canvas-and-corks/skills/class-description/SKILL.md +53 -0
  50. package/kits/canvas-and-corks/skills/class-roster/SKILL.md +163 -0
  51. package/kits/canvas-and-corks/skills/customer-insights/SKILL.md +174 -0
  52. package/kits/canvas-and-corks/skills/demand-forecast/SKILL.md +191 -0
  53. package/kits/canvas-and-corks/skills/email-campaign/SKILL.md +154 -0
  54. package/kits/canvas-and-corks/skills/experience-copy/SKILL.md +152 -0
  55. package/kits/canvas-and-corks/skills/guest-letter/SKILL.md +127 -0
  56. package/kits/canvas-and-corks/skills/inventory-health/SKILL.md +204 -0
  57. package/kits/canvas-and-corks/skills/painting-memory/SKILL.md +76 -0
  58. package/kits/canvas-and-corks/skills/revenue-report/SKILL.md +196 -0
  59. package/kits/canvas-and-corks/skills/social-calendar/SKILL.md +146 -0
  60. package/kits/canvas-and-corks/skills/staff-briefing/SKILL.md +134 -0
  61. package/kits/canvas-and-corks/skills/studio-expertise/SKILL.md +181 -0
  62. package/kits/canvas-and-corks/skills/venue-data-model/SKILL.md +325 -0
  63. package/kits/character-relationship-map/kit.json +367 -0
  64. package/kits/character-relationship-map/skills/ensemble-balance/SKILL.md +189 -0
  65. package/kits/character-relationship-map/skills/kit-expertise/SKILL.md +83 -0
  66. package/kits/character-relationship-map/skills/relationship-dynamics/SKILL.md +158 -0
  67. package/kits/clay-and-co/kit.json +938 -0
  68. package/kits/clay-and-co/skills/blog-draft/SKILL.md +135 -0
  69. package/kits/clay-and-co/skills/booking-digest/SKILL.md +163 -0
  70. package/kits/clay-and-co/skills/customer-insights/SKILL.md +207 -0
  71. package/kits/clay-and-co/skills/demand-forecast/SKILL.md +166 -0
  72. package/kits/clay-and-co/skills/email-campaign/SKILL.md +125 -0
  73. package/kits/clay-and-co/skills/experience-copy/SKILL.md +132 -0
  74. package/kits/clay-and-co/skills/guest-letter/SKILL.md +104 -0
  75. package/kits/clay-and-co/skills/inventory-health/SKILL.md +211 -0
  76. package/kits/clay-and-co/skills/kiln-scheduler/SKILL.md +206 -0
  77. package/kits/clay-and-co/skills/piece-tracker/SKILL.md +165 -0
  78. package/kits/clay-and-co/skills/pottery-expertise/SKILL.md +165 -0
  79. package/kits/clay-and-co/skills/pottery-memory/SKILL.md +119 -0
  80. package/kits/clay-and-co/skills/revenue-report/SKILL.md +205 -0
  81. package/kits/clay-and-co/skills/social-calendar/SKILL.md +130 -0
  82. package/kits/clay-and-co/skills/staff-briefing/SKILL.md +213 -0
  83. package/kits/clay-and-co/skills/venue-data-model/SKILL.md +230 -0
  84. package/kits/concept-map/kit.json +353 -0
  85. package/kits/concept-map/skills/add-concept/SKILL.md +41 -0
  86. package/kits/concept-map/skills/assess-understanding/SKILL.md +36 -0
  87. package/kits/concept-map/skills/concept-hierarchy/SKILL.md +148 -0
  88. package/kits/concept-map/skills/create-learning-map/SKILL.md +42 -0
  89. package/kits/concept-map/skills/find-cross-links/SKILL.md +34 -0
  90. package/kits/concept-map/skills/identify-prerequisites/SKILL.md +40 -0
  91. package/kits/concept-map/skills/kit-expertise/SKILL.md +78 -0
  92. package/kits/concept-map/skills/relationship-types/SKILL.md +160 -0
  93. package/kits/content-calendar/kit.json +420 -0
  94. package/kits/content-calendar/skills/content-strategy/SKILL.md +174 -0
  95. package/kits/content-calendar/skills/create-brief/SKILL.md +40 -0
  96. package/kits/content-calendar/skills/generate-ideas/SKILL.md +40 -0
  97. package/kits/content-calendar/skills/kit-expertise/SKILL.md +100 -0
  98. package/kits/content-calendar/skills/plan-series/SKILL.md +40 -0
  99. package/kits/content-calendar/skills/repurpose-content/SKILL.md +38 -0
  100. package/kits/content-calendar/skills/repurposing/SKILL.md +179 -0
  101. package/kits/content-calendar/skills/weekly-review/SKILL.md +34 -0
  102. package/kits/coworking-space/kit.json +1068 -0
  103. package/kits/escape-vault/kit.json +1028 -0
  104. package/kits/escape-vault/skills/blog-draft/SKILL.md +157 -0
  105. package/kits/escape-vault/skills/booking-digest/SKILL.md +151 -0
  106. package/kits/escape-vault/skills/customer-insights/SKILL.md +185 -0
  107. package/kits/escape-vault/skills/demand-forecast/SKILL.md +188 -0
  108. package/kits/escape-vault/skills/email-campaign/SKILL.md +157 -0
  109. package/kits/escape-vault/skills/escape-expertise/SKILL.md +200 -0
  110. package/kits/escape-vault/skills/escape-memory/SKILL.md +99 -0
  111. package/kits/escape-vault/skills/experience-copy/SKILL.md +159 -0
  112. package/kits/escape-vault/skills/guest-letter/SKILL.md +143 -0
  113. package/kits/escape-vault/skills/inventory-health/SKILL.md +222 -0
  114. package/kits/escape-vault/skills/leaderboard-report/SKILL.md +204 -0
  115. package/kits/escape-vault/skills/revenue-report/SKILL.md +202 -0
  116. package/kits/escape-vault/skills/room-designer/SKILL.md +182 -0
  117. package/kits/escape-vault/skills/social-calendar/SKILL.md +148 -0
  118. package/kits/escape-vault/skills/staff-briefing/SKILL.md +159 -0
  119. package/kits/escape-vault/skills/venue-data-model/SKILL.md +335 -0
  120. package/kits/family-tree/kit.json +380 -0
  121. package/kits/family-tree/skills/add-family-member/SKILL.md +42 -0
  122. package/kits/family-tree/skills/analyze-relationship/SKILL.md +41 -0
  123. package/kits/family-tree/skills/export-gedcom/SKILL.md +34 -0
  124. package/kits/family-tree/skills/genealogy-research/SKILL.md +188 -0
  125. package/kits/family-tree/skills/kit-expertise/SKILL.md +107 -0
  126. package/kits/family-tree/skills/record-oral-history/SKILL.md +43 -0
  127. package/kits/family-tree/skills/relationship-mapping/SKILL.md +171 -0
  128. package/kits/family-tree/skills/research-ancestor/SKILL.md +43 -0
  129. package/kits/farkle-dice-game/kit.json +316 -0
  130. package/kits/farkle-dice-game/skills/kit-expertise/SKILL.md +137 -0
  131. package/kits/franchise-ops/kit.json +326 -0
  132. package/kits/freelance-portfolio/kit.json +435 -0
  133. package/kits/game-design-doc/kit.json +353 -0
  134. package/kits/game-design-doc/skills/balance-system/SKILL.md +40 -0
  135. package/kits/game-design-doc/skills/create-character/SKILL.md +40 -0
  136. package/kits/game-design-doc/skills/design-mechanic/SKILL.md +40 -0
  137. package/kits/game-design-doc/skills/economy-design/SKILL.md +152 -0
  138. package/kits/game-design-doc/skills/game-mechanics/SKILL.md +141 -0
  139. package/kits/game-design-doc/skills/ideate-features/SKILL.md +36 -0
  140. package/kits/game-design-doc/skills/kit-expertise/SKILL.md +78 -0
  141. package/kits/game-design-doc/skills/playtest-feedback/SKILL.md +142 -0
  142. package/kits/game-design-doc/skills/review-gdd/SKILL.md +33 -0
  143. package/kits/gather-and-grill/kit.json +966 -0
  144. package/kits/gather-and-grill/skills/blog-draft/SKILL.md +120 -0
  145. package/kits/gather-and-grill/skills/booking-digest/SKILL.md +171 -0
  146. package/kits/gather-and-grill/skills/cooking-memory/SKILL.md +100 -0
  147. package/kits/gather-and-grill/skills/culinary-expertise/SKILL.md +180 -0
  148. package/kits/gather-and-grill/skills/customer-insights/SKILL.md +184 -0
  149. package/kits/gather-and-grill/skills/demand-forecast/SKILL.md +200 -0
  150. package/kits/gather-and-grill/skills/email-campaign/SKILL.md +97 -0
  151. package/kits/gather-and-grill/skills/experience-copy/SKILL.md +92 -0
  152. package/kits/gather-and-grill/skills/guest-letter/SKILL.md +98 -0
  153. package/kits/gather-and-grill/skills/inventory-health/SKILL.md +193 -0
  154. package/kits/gather-and-grill/skills/menu-planner/SKILL.md +175 -0
  155. package/kits/gather-and-grill/skills/recipe-card/SKILL.md +194 -0
  156. package/kits/gather-and-grill/skills/revenue-report/SKILL.md +245 -0
  157. package/kits/gather-and-grill/skills/social-calendar/SKILL.md +139 -0
  158. package/kits/gather-and-grill/skills/staff-briefing/SKILL.md +167 -0
  159. package/kits/gather-and-grill/skills/venue-data-model/SKILL.md +336 -0
  160. package/kits/gtd-productivity-system/kit.json +389 -0
  161. package/kits/gtd-productivity-system/skills/break-down-project/SKILL.md +41 -0
  162. package/kits/gtd-productivity-system/skills/clarify-task/SKILL.md +42 -0
  163. package/kits/gtd-productivity-system/skills/gtd-methodology/SKILL.md +185 -0
  164. package/kits/gtd-productivity-system/skills/inbox-processing/SKILL.md +173 -0
  165. package/kits/gtd-productivity-system/skills/kit-expertise/SKILL.md +111 -0
  166. package/kits/gtd-productivity-system/skills/mind-sweep/SKILL.md +35 -0
  167. package/kits/gtd-productivity-system/skills/process-inbox/SKILL.md +40 -0
  168. package/kits/gtd-productivity-system/skills/weekly-review/SKILL.md +197 -0
  169. package/kits/gym-fitness/kit.json +1037 -0
  170. package/kits/interactive-fiction/kit.json +471 -0
  171. package/kits/invoice-generator/kit.json +466 -0
  172. package/kits/loyalty-program/kit.json +323 -0
  173. package/kits/marketing-plan/kit.json +417 -0
  174. package/kits/marketing-plan/skills/allocate-budget/SKILL.md +34 -0
  175. package/kits/marketing-plan/skills/campaign-metrics/SKILL.md +184 -0
  176. package/kits/marketing-plan/skills/channel-strategy/SKILL.md +156 -0
  177. package/kits/marketing-plan/skills/content-calendar/SKILL.md +34 -0
  178. package/kits/marketing-plan/skills/create-persona/SKILL.md +40 -0
  179. package/kits/marketing-plan/skills/kit-expertise/SKILL.md +109 -0
  180. package/kits/marketing-plan/skills/measure-performance/SKILL.md +34 -0
  181. package/kits/marketing-plan/skills/plan-campaign/SKILL.md +41 -0
  182. package/kits/marketing-site/kit.json +230 -0
  183. package/kits/marketing-site/skills/add-page/SKILL.md +28 -0
  184. package/kits/marketing-site/skills/add-section/SKILL.md +29 -0
  185. package/kits/marketing-site/skills/change-colors/SKILL.md +24 -0
  186. package/kits/marketing-site/skills/conversion-copy/SKILL.md +152 -0
  187. package/kits/marketing-site/skills/export-deploy/SKILL.md +24 -0
  188. package/kits/marketing-site/skills/kit-expertise/SKILL.md +77 -0
  189. package/kits/marketing-site/skills/landing-page/SKILL.md +156 -0
  190. package/kits/match-3-puzzle/kit.json +245 -0
  191. package/kits/match-3-puzzle/skills/kit-expertise/SKILL.md +96 -0
  192. package/kits/mind-map/kit.json +355 -0
  193. package/kits/mind-map/skills/add-branch/SKILL.md +40 -0
  194. package/kits/mind-map/skills/brainstorm-topic/SKILL.md +41 -0
  195. package/kits/mind-map/skills/branch-expansion/SKILL.md +181 -0
  196. package/kits/mind-map/skills/find-connections/SKILL.md +34 -0
  197. package/kits/mind-map/skills/kit-expertise/SKILL.md +78 -0
  198. package/kits/mind-map/skills/organize-map/SKILL.md +35 -0
  199. package/kits/mind-map/skills/radiant-thinking/SKILL.md +184 -0
  200. package/kits/mind-map/skills/summarize-map/SKILL.md +34 -0
  201. package/kits/music-collection/kit.json +403 -0
  202. package/kits/music-collection/skills/add-album/SKILL.md +44 -0
  203. package/kits/music-collection/skills/create-playlist/SKILL.md +37 -0
  204. package/kits/music-collection/skills/explore-artist/SKILL.md +37 -0
  205. package/kits/music-collection/skills/journal-session/SKILL.md +40 -0
  206. package/kits/music-collection/skills/kit-expertise/SKILL.md +98 -0
  207. package/kits/music-collection/skills/music-metadata/SKILL.md +209 -0
  208. package/kits/music-collection/skills/playlist-curator/SKILL.md +182 -0
  209. package/kits/music-collection/skills/recommend-similar/SKILL.md +36 -0
  210. package/kits/music-venue/kit.json +986 -0
  211. package/kits/novel-writing-system/kit.json +481 -0
  212. package/kits/novel-writing-system/skills/character-arc/SKILL.md +164 -0
  213. package/kits/novel-writing-system/skills/develop-character-arc/SKILL.md +42 -0
  214. package/kits/novel-writing-system/skills/kit-expertise/SKILL.md +84 -0
  215. package/kits/novel-writing-system/skills/outline-review/SKILL.md +34 -0
  216. package/kits/novel-writing-system/skills/plot-doctor/SKILL.md +221 -0
  217. package/kits/novel-writing-system/skills/plot-hole-check/SKILL.md +35 -0
  218. package/kits/novel-writing-system/skills/scene-development/SKILL.md +38 -0
  219. package/kits/novel-writing-system/skills/scene-sequel/SKILL.md +162 -0
  220. package/kits/novel-writing-system/skills/worldbuilding-session/SKILL.md +40 -0
  221. package/kits/organization-chart/kit.json +349 -0
  222. package/kits/organization-chart/skills/add-role/SKILL.md +41 -0
  223. package/kits/organization-chart/skills/analyze-span/SKILL.md +34 -0
  224. package/kits/organization-chart/skills/create-raci/SKILL.md +42 -0
  225. package/kits/organization-chart/skills/kit-expertise/SKILL.md +78 -0
  226. package/kits/organization-chart/skills/org-design/SKILL.md +188 -0
  227. package/kits/organization-chart/skills/org-health-check/SKILL.md +35 -0
  228. package/kits/organization-chart/skills/plan-reorg/SKILL.md +42 -0
  229. package/kits/organization-chart/skills/role-definition/SKILL.md +180 -0
  230. package/kits/paws-and-pour/kit.json +969 -0
  231. package/kits/paws-and-pour/skills/adoption-report/SKILL.md +273 -0
  232. package/kits/paws-and-pour/skills/animal-profile/SKILL.md +206 -0
  233. package/kits/paws-and-pour/skills/blog-draft/SKILL.md +137 -0
  234. package/kits/paws-and-pour/skills/booking-digest/SKILL.md +251 -0
  235. package/kits/paws-and-pour/skills/cafe-expertise/SKILL.md +218 -0
  236. package/kits/paws-and-pour/skills/cafe-memory/SKILL.md +114 -0
  237. package/kits/paws-and-pour/skills/customer-insights/SKILL.md +216 -0
  238. package/kits/paws-and-pour/skills/demand-forecast/SKILL.md +200 -0
  239. package/kits/paws-and-pour/skills/email-campaign/SKILL.md +154 -0
  240. package/kits/paws-and-pour/skills/experience-copy/SKILL.md +139 -0
  241. package/kits/paws-and-pour/skills/guest-letter/SKILL.md +183 -0
  242. package/kits/paws-and-pour/skills/inventory-health/SKILL.md +213 -0
  243. package/kits/paws-and-pour/skills/revenue-report/SKILL.md +273 -0
  244. package/kits/paws-and-pour/skills/social-calendar/SKILL.md +183 -0
  245. package/kits/paws-and-pour/skills/staff-briefing/SKILL.md +223 -0
  246. package/kits/paws-and-pour/skills/venue-data-model/SKILL.md +260 -0
  247. package/kits/persona-driven-strategy/kit.json +352 -0
  248. package/kits/persona-driven-strategy/skills/empathy-mapping/SKILL.md +221 -0
  249. package/kits/persona-driven-strategy/skills/journey-mapping/SKILL.md +219 -0
  250. package/kits/persona-driven-strategy/skills/kit-expertise/SKILL.md +81 -0
  251. package/kits/persona-driven-strategy/skills/persona-development/SKILL.md +189 -0
  252. package/kits/personal-crm/kit.json +373 -0
  253. package/kits/personal-crm/skills/add-contact/SKILL.md +42 -0
  254. package/kits/personal-crm/skills/connect-contacts/SKILL.md +41 -0
  255. package/kits/personal-crm/skills/find-dormant/SKILL.md +35 -0
  256. package/kits/personal-crm/skills/kit-expertise/SKILL.md +82 -0
  257. package/kits/personal-crm/skills/log-interaction/SKILL.md +43 -0
  258. package/kits/personal-crm/skills/network-analysis/SKILL.md +161 -0
  259. package/kits/personal-crm/skills/relationship-insights/SKILL.md +153 -0
  260. package/kits/personal-wiki/kit.json +322 -0
  261. package/kits/personal-wiki/skills/kit-expertise/SKILL.md +81 -0
  262. package/kits/personal-wiki/skills/orphan-finder/SKILL.md +155 -0
  263. package/kits/personal-wiki/skills/wiki-structure/SKILL.md +179 -0
  264. package/kits/petal-press/kit.json +996 -0
  265. package/kits/petal-press/skills/arrangement-memory/SKILL.md +143 -0
  266. package/kits/petal-press/skills/blog-draft/SKILL.md +167 -0
  267. package/kits/petal-press/skills/booking-digest/SKILL.md +196 -0
  268. package/kits/petal-press/skills/care-card/SKILL.md +173 -0
  269. package/kits/petal-press/skills/customer-insights/SKILL.md +213 -0
  270. package/kits/petal-press/skills/demand-forecast/SKILL.md +203 -0
  271. package/kits/petal-press/skills/email-campaign/SKILL.md +204 -0
  272. package/kits/petal-press/skills/experience-copy/SKILL.md +184 -0
  273. package/kits/petal-press/skills/floral-expertise/SKILL.md +244 -0
  274. package/kits/petal-press/skills/guest-letter/SKILL.md +153 -0
  275. package/kits/petal-press/skills/inventory-health/SKILL.md +201 -0
  276. package/kits/petal-press/skills/revenue-report/SKILL.md +219 -0
  277. package/kits/petal-press/skills/seasonal-guide/SKILL.md +238 -0
  278. package/kits/petal-press/skills/social-calendar/SKILL.md +217 -0
  279. package/kits/petal-press/skills/staff-briefing/SKILL.md +217 -0
  280. package/kits/petal-press/skills/venue-data-model/SKILL.md +226 -0
  281. package/kits/pitch-deck/kit.json +416 -0
  282. package/kits/pitch-deck/skills/calculate-market-size/SKILL.md +41 -0
  283. package/kits/pitch-deck/skills/develop-problem-slide/SKILL.md +39 -0
  284. package/kits/pitch-deck/skills/investor-qa/SKILL.md +182 -0
  285. package/kits/pitch-deck/skills/investor-qa-prep/SKILL.md +36 -0
  286. package/kits/pitch-deck/skills/kit-expertise/SKILL.md +112 -0
  287. package/kits/pitch-deck/skills/pitch-structure/SKILL.md +186 -0
  288. package/kits/pitch-deck/skills/practice-pitch/SKILL.md +36 -0
  289. package/kits/podcast-series/kit.json +324 -0
  290. package/kits/podcast-series/skills/audience-growth/SKILL.md +38 -0
  291. package/kits/podcast-series/skills/create-guest-profile/SKILL.md +42 -0
  292. package/kits/podcast-series/skills/episode-structure/SKILL.md +189 -0
  293. package/kits/podcast-series/skills/guest-research/SKILL.md +167 -0
  294. package/kits/podcast-series/skills/kit-expertise/SKILL.md +81 -0
  295. package/kits/podcast-series/skills/plan-episode/SKILL.md +44 -0
  296. package/kits/podcast-series/skills/prepare-guest/SKILL.md +45 -0
  297. package/kits/podcast-series/skills/show-notes/SKILL.md +182 -0
  298. package/kits/podcast-series/skills/write-show-notes/SKILL.md +43 -0
  299. package/kits/pour-house/kit.json +912 -0
  300. package/kits/pour-house/skills/blog-draft/SKILL.md +138 -0
  301. package/kits/pour-house/skills/booking-digest/SKILL.md +151 -0
  302. package/kits/pour-house/skills/cellar-report/SKILL.md +251 -0
  303. package/kits/pour-house/skills/customer-insights/SKILL.md +184 -0
  304. package/kits/pour-house/skills/demand-forecast/SKILL.md +156 -0
  305. package/kits/pour-house/skills/email-campaign/SKILL.md +130 -0
  306. package/kits/pour-house/skills/experience-copy/SKILL.md +125 -0
  307. package/kits/pour-house/skills/guest-letter/SKILL.md +136 -0
  308. package/kits/pour-house/skills/inventory-health/SKILL.md +159 -0
  309. package/kits/pour-house/skills/pour-memory/SKILL.md +89 -0
  310. package/kits/pour-house/skills/revenue-report/SKILL.md +232 -0
  311. package/kits/pour-house/skills/social-calendar/SKILL.md +140 -0
  312. package/kits/pour-house/skills/sommelier-expertise/SKILL.md +324 -0
  313. package/kits/pour-house/skills/staff-briefing/SKILL.md +176 -0
  314. package/kits/pour-house/skills/tasting-notes/SKILL.md +179 -0
  315. package/kits/pour-house/skills/venue-data-model/SKILL.md +323 -0
  316. package/kits/presentation/kit.json +296 -0
  317. package/kits/product-requirements-doc/kit.json +365 -0
  318. package/kits/product-requirements-doc/skills/acceptance-criteria/SKILL.md +219 -0
  319. package/kits/product-requirements-doc/skills/create-user-story/SKILL.md +43 -0
  320. package/kits/product-requirements-doc/skills/define-success-metrics/SKILL.md +41 -0
  321. package/kits/product-requirements-doc/skills/kit-expertise/SKILL.md +81 -0
  322. package/kits/product-requirements-doc/skills/prd-review/SKILL.md +39 -0
  323. package/kits/product-requirements-doc/skills/prd-structure/SKILL.md +206 -0
  324. package/kits/product-requirements-doc/skills/prioritize-features/SKILL.md +43 -0
  325. package/kits/product-requirements-doc/skills/synthesize-research/SKILL.md +43 -0
  326. package/kits/product-requirements-doc/skills/user-stories/SKILL.md +198 -0
  327. package/kits/project-timeline/kit.json +367 -0
  328. package/kits/project-timeline/skills/add-milestone/SKILL.md +44 -0
  329. package/kits/project-timeline/skills/add-task/SKILL.md +43 -0
  330. package/kits/project-timeline/skills/assess-risks/SKILL.md +39 -0
  331. package/kits/project-timeline/skills/dependency-analysis/SKILL.md +176 -0
  332. package/kits/project-timeline/skills/identify-critical-path/SKILL.md +37 -0
  333. package/kits/project-timeline/skills/kit-expertise/SKILL.md +81 -0
  334. package/kits/project-timeline/skills/milestone-planning/SKILL.md +169 -0
  335. package/kits/project-timeline/skills/status-update/SKILL.md +39 -0
  336. package/kits/reading-tracker/kit.json +368 -0
  337. package/kits/reading-tracker/skills/add-book/SKILL.md +32 -0
  338. package/kits/reading-tracker/skills/book-connections/SKILL.md +161 -0
  339. package/kits/reading-tracker/skills/kit-expertise/SKILL.md +72 -0
  340. package/kits/reading-tracker/skills/log-progress/SKILL.md +29 -0
  341. package/kits/reading-tracker/skills/reading-insights/SKILL.md +179 -0
  342. package/kits/reading-tracker/skills/save-quote/SKILL.md +30 -0
  343. package/kits/recipe-manager/kit.json +376 -0
  344. package/kits/recipe-manager/skills/add-recipe/SKILL.md +33 -0
  345. package/kits/recipe-manager/skills/generate-shopping-list/SKILL.md +27 -0
  346. package/kits/recipe-manager/skills/ingredient-substitutions/SKILL.md +157 -0
  347. package/kits/recipe-manager/skills/kit-expertise/SKILL.md +72 -0
  348. package/kits/recipe-manager/skills/meal-planning/SKILL.md +184 -0
  349. package/kits/recipe-manager/skills/plan-meal/SKILL.md +31 -0
  350. package/kits/recipe-manager/skills/scaling-recipes/SKILL.md +183 -0
  351. package/kits/saas-app/kit.json +405 -0
  352. package/kits/saas-app/skills/churn-analysis/SKILL.md +219 -0
  353. package/kits/saas-app/skills/onboarding-flow/SKILL.md +217 -0
  354. package/kits/saas-app/skills/pricing-model/SKILL.md +192 -0
  355. package/kits/saas-app/skills/saas-expertise/SKILL.md +95 -0
  356. package/kits/salon-barbershop/kit.json +1021 -0
  357. package/kits/screenplay-writing/kit.json +412 -0
  358. package/kits/screenplay-writing/skills/analyze-scene/SKILL.md +42 -0
  359. package/kits/screenplay-writing/skills/beat-sheet/SKILL.md +134 -0
  360. package/kits/screenplay-writing/skills/create-scene-card/SKILL.md +46 -0
  361. package/kits/screenplay-writing/skills/develop-character/SKILL.md +43 -0
  362. package/kits/screenplay-writing/skills/generate-beat-sheet/SKILL.md +49 -0
  363. package/kits/screenplay-writing/skills/kit-expertise/SKILL.md +90 -0
  364. package/kits/screenplay-writing/skills/scene-analysis/SKILL.md +164 -0
  365. package/kits/screenplay-writing/skills/screenplay-format/SKILL.md +108 -0
  366. package/kits/social-media-manager/kit.json +476 -0
  367. package/kits/teacher-lesson-plan/kit.json +410 -0
  368. package/kits/teacher-lesson-plan/skills/assessment-design/SKILL.md +162 -0
  369. package/kits/teacher-lesson-plan/skills/blooms-taxonomy/SKILL.md +139 -0
  370. package/kits/teacher-lesson-plan/skills/create-lesson/SKILL.md +34 -0
  371. package/kits/teacher-lesson-plan/skills/design-unit/SKILL.md +28 -0
  372. package/kits/teacher-lesson-plan/skills/differentiate-lesson/SKILL.md +28 -0
  373. package/kits/teacher-lesson-plan/skills/differentiation/SKILL.md +180 -0
  374. package/kits/teacher-lesson-plan/skills/kit-expertise/SKILL.md +96 -0
  375. package/kits/teacher-lesson-plan/skills/schedule-lesson/SKILL.md +31 -0
  376. package/kits/technical-specification/kit.json +369 -0
  377. package/kits/technical-specification/skills/architecture-decision/SKILL.md +42 -0
  378. package/kits/technical-specification/skills/architecture-decisions/SKILL.md +180 -0
  379. package/kits/technical-specification/skills/data-model-design/SKILL.md +43 -0
  380. package/kits/technical-specification/skills/data-modeling/SKILL.md +159 -0
  381. package/kits/technical-specification/skills/define-component/SKILL.md +43 -0
  382. package/kits/technical-specification/skills/kit-expertise/SKILL.md +81 -0
  383. package/kits/technical-specification/skills/requirements-analysis/SKILL.md +42 -0
  384. package/kits/technical-specification/skills/security-review/SKILL.md +170 -0
  385. package/kits/technical-specification/skills/spec-review/SKILL.md +39 -0
  386. package/kits/wanderlands/kit.json +399 -0
  387. package/kits/wanderlands/skills/kit-expertise/SKILL.md +376 -0
  388. package/kits/web-application/kit.json +257 -0
  389. package/kits/web-application/skills/kit-expertise/SKILL.md +211 -0
  390. package/kits/wicks-and-whiskers/kit.json +1267 -0
  391. package/kits/wicks-and-whiskers/skills/blog-draft/SKILL.md +145 -0
  392. package/kits/wicks-and-whiskers/skills/booking-digest/SKILL.md +142 -0
  393. package/kits/wicks-and-whiskers/skills/candle-expertise/SKILL.md +69 -0
  394. package/kits/wicks-and-whiskers/skills/customer-insights/SKILL.md +176 -0
  395. package/kits/wicks-and-whiskers/skills/demand-forecast/SKILL.md +159 -0
  396. package/kits/wicks-and-whiskers/skills/email-campaign/SKILL.md +131 -0
  397. package/kits/wicks-and-whiskers/skills/experience-copy/SKILL.md +135 -0
  398. package/kits/wicks-and-whiskers/skills/guest-letter/SKILL.md +154 -0
  399. package/kits/wicks-and-whiskers/skills/inventory-health/SKILL.md +185 -0
  400. package/kits/wicks-and-whiskers/skills/kitten-profile/SKILL.md +159 -0
  401. package/kits/wicks-and-whiskers/skills/memory-narrative/SKILL.md +71 -0
  402. package/kits/wicks-and-whiskers/skills/revenue-report/SKILL.md +197 -0
  403. package/kits/wicks-and-whiskers/skills/social-calendar/SKILL.md +161 -0
  404. package/kits/wicks-and-whiskers/skills/staff-briefing/SKILL.md +174 -0
  405. package/kits/wicks-and-whiskers/skills/venue-data-model/SKILL.md +228 -0
  406. package/kits/world-building/kit.json +497 -0
  407. package/kits/world-building/skills/consistency-check/SKILL.md +179 -0
  408. package/kits/world-building/skills/create-character/SKILL.md +44 -0
  409. package/kits/world-building/skills/create-faction/SKILL.md +44 -0
  410. package/kits/world-building/skills/create-location/SKILL.md +44 -0
  411. package/kits/world-building/skills/create-timeline/SKILL.md +39 -0
  412. package/kits/world-building/skills/culture-builder/SKILL.md +171 -0
  413. package/kits/world-building/skills/design-magic-system/SKILL.md +38 -0
  414. package/kits/world-building/skills/kit-expertise/SKILL.md +110 -0
  415. package/kits/world-building/skills/magic-systems/SKILL.md +161 -0
  416. package/kits/youtube-content-plan/kit.json +346 -0
  417. package/kits/youtube-content-plan/skills/analytics-insights/SKILL.md +166 -0
  418. package/kits/youtube-content-plan/skills/analyze-performance/SKILL.md +43 -0
  419. package/kits/youtube-content-plan/skills/develop-video-idea/SKILL.md +45 -0
  420. package/kits/youtube-content-plan/skills/generate-ideas/SKILL.md +42 -0
  421. package/kits/youtube-content-plan/skills/kit-expertise/SKILL.md +81 -0
  422. package/kits/youtube-content-plan/skills/optimize-metadata/SKILL.md +43 -0
  423. package/kits/youtube-content-plan/skills/script-writing/SKILL.md +180 -0
  424. package/kits/youtube-content-plan/skills/write-script/SKILL.md +44 -0
  425. package/kits/youtube-content-plan/skills/youtube-seo/SKILL.md +172 -0
  426. package/package.json +43 -0
  427. package/src/index.ts +35 -0
  428. package/src/kits/ai-content-studio.ts +377 -0
  429. package/src/kits/api-documentation.ts +352 -0
  430. package/src/kits/axe-house.ts +949 -0
  431. package/src/kits/blog-series.ts +357 -0
  432. package/src/kits/business-plan.ts +406 -0
  433. package/src/kits/canvas-and-corks.ts +928 -0
  434. package/src/kits/character-relationship-map.ts +368 -0
  435. package/src/kits/clay-and-co.ts +956 -0
  436. package/src/kits/concept-map.ts +354 -0
  437. package/src/kits/content-calendar.ts +399 -0
  438. package/src/kits/coworking-space.ts +1084 -0
  439. package/src/kits/escape-vault.ts +1046 -0
  440. package/src/kits/family-tree.ts +381 -0
  441. package/src/kits/farkle-dice-game.ts +318 -0
  442. package/src/kits/franchise-ops.ts +345 -0
  443. package/src/kits/freelance-portfolio.ts +453 -0
  444. package/src/kits/game-design-doc.ts +353 -0
  445. package/src/kits/gather-and-grill.ts +984 -0
  446. package/src/kits/gtd-productivity-system.ts +389 -0
  447. package/src/kits/gym-fitness.ts +1053 -0
  448. package/src/kits/index.ts +76 -0
  449. package/src/kits/interactive-fiction.ts +489 -0
  450. package/src/kits/invoice-generator.ts +484 -0
  451. package/src/kits/loyalty-program.ts +342 -0
  452. package/src/kits/marketing-plan.ts +398 -0
  453. package/src/kits/marketing-site.ts +248 -0
  454. package/src/kits/match-3-puzzle.ts +248 -0
  455. package/src/kits/mind-map.ts +356 -0
  456. package/src/kits/music-collection.ts +404 -0
  457. package/src/kits/music-venue.ts +1002 -0
  458. package/src/kits/novel-writing-system.ts +461 -0
  459. package/src/kits/organization-chart.ts +350 -0
  460. package/src/kits/paws-and-pour.ts +987 -0
  461. package/src/kits/persona-driven-strategy.ts +345 -0
  462. package/src/kits/personal-crm.ts +391 -0
  463. package/src/kits/personal-wiki.ts +323 -0
  464. package/src/kits/petal-press.ts +1014 -0
  465. package/src/kits/pitch-deck.ts +395 -0
  466. package/src/kits/podcast-series.ts +324 -0
  467. package/src/kits/pour-house.ts +930 -0
  468. package/src/kits/presentation.ts +276 -0
  469. package/src/kits/product-requirements-doc.ts +359 -0
  470. package/src/kits/project-timeline.ts +368 -0
  471. package/src/kits/reading-tracker.ts +368 -0
  472. package/src/kits/recipe-manager.ts +376 -0
  473. package/src/kits/saas-app.ts +423 -0
  474. package/src/kits/salon-barbershop.ts +1037 -0
  475. package/src/kits/screenplay-writing.ts +412 -0
  476. package/src/kits/social-media-manager.ts +494 -0
  477. package/src/kits/teacher-lesson-plan.ts +410 -0
  478. package/src/kits/technical-specification.ts +363 -0
  479. package/src/kits/wanderlands.ts +401 -0
  480. package/src/kits/web-application.ts +275 -0
  481. package/src/kits/wicks-and-whiskers.ts +1285 -0
  482. package/src/kits/world-building.ts +476 -0
  483. package/src/kits/youtube-content-plan.ts +339 -0
  484. package/src/registry.ts +60 -0
  485. package/src/skills/api-documentation/index.ts +47 -0
  486. package/src/skills/axe-house/index.ts +71 -0
  487. package/src/skills/blog-series/index.ts +43 -0
  488. package/src/skills/business-plan/index.ts +43 -0
  489. package/src/skills/canvas-and-corks/index.ts +75 -0
  490. package/src/skills/character-relationship-map/index.ts +23 -0
  491. package/src/skills/clay-and-co/index.ts +75 -0
  492. package/src/skills/concept-map/index.ts +43 -0
  493. package/src/skills/content-calendar/index.ts +43 -0
  494. package/src/skills/escape-vault/index.ts +75 -0
  495. package/src/skills/family-tree/index.ts +43 -0
  496. package/src/skills/farkle-dice-game/index.ts +15 -0
  497. package/src/skills/game-design-doc/index.ts +47 -0
  498. package/src/skills/gather-and-grill/index.ts +75 -0
  499. package/src/skills/gtd-productivity-system/index.ts +43 -0
  500. package/src/skills/index.ts +109 -0
  501. package/src/skills/marketing-plan/index.ts +43 -0
  502. package/src/skills/marketing-site/index.ts +39 -0
  503. package/src/skills/match-3-puzzle/index.ts +15 -0
  504. package/src/skills/mind-map/index.ts +43 -0
  505. package/src/skills/music-collection/index.ts +43 -0
  506. package/src/skills/novel-writing-system/index.ts +47 -0
  507. package/src/skills/organization-chart/index.ts +43 -0
  508. package/src/skills/paws-and-pour/index.ts +75 -0
  509. package/src/skills/persona-driven-strategy/index.ts +27 -0
  510. package/src/skills/personal-crm/index.ts +39 -0
  511. package/src/skills/personal-wiki/index.ts +23 -0
  512. package/src/skills/petal-press/index.ts +75 -0
  513. package/src/skills/pitch-deck/index.ts +39 -0
  514. package/src/skills/podcast-series/index.ts +47 -0
  515. package/src/skills/pour-house/index.ts +75 -0
  516. package/src/skills/product-requirements-doc/index.ts +47 -0
  517. package/src/skills/project-timeline/index.ts +43 -0
  518. package/src/skills/reading-tracker/index.ts +35 -0
  519. package/src/skills/recipe-manager/index.ts +39 -0
  520. package/src/skills/saas-app/index.ts +27 -0
  521. package/src/skills/screenplay-writing/index.ts +43 -0
  522. package/src/skills/teacher-lesson-plan/index.ts +43 -0
  523. package/src/skills/technical-specification/index.ts +47 -0
  524. package/src/skills/wanderlands/index.ts +15 -0
  525. package/src/skills/web-application/index.ts +15 -0
  526. package/src/skills/wicks-and-whiskers/index.ts +71 -0
  527. package/src/skills/world-building/index.ts +47 -0
  528. package/src/skills/youtube-content-plan/index.ts +47 -0
@@ -0,0 +1,171 @@
1
+ ---
2
+ id: guest-letter
3
+ name: Guest Follow-Up Letter
4
+ description: Writes a personalized 150–250 word post-session thank-you email referencing the guest's specific session type, best score, throw style, coach notes, and loyalty points earned — in the brand's energetic, coach-like voice.
5
+ type: invocable
6
+ version: 1.0.0
7
+ requiresVision: false
8
+ requiresData: true
9
+ ---
10
+
11
+ # Guest Follow-Up Letter
12
+
13
+ You write the post-session follow-up email that guests receive after completing a session at {{businessName}}. It is energetic, specific, and reads like a note from a coach who actually remembers them — because the session data behind it does. Every letter must reference real details from the session: throw style, best score, coach notes, team name for league guests.
14
+
15
+ ## When to Trigger
16
+
17
+ Invoke this skill when:
18
+
19
+ - A booking is marked as completed / checked out
20
+ - A staff member asks: "Send a thank-you to [booking]"
21
+ - "Follow up with guests from [date]"
22
+ - "Post-session email for booking [number]"
23
+ - Any post-visit guest communication request
24
+
25
+ ## Input Data
26
+
27
+ Pull these fields from the booking record and related entities. All filtered by `bookingId` and `locationId`.
28
+
29
+ ```typescript
30
+ // Booking record
31
+ const booking = await brain.find({
32
+ type: 'Event',
33
+ where: [
34
+ { field: 'metadata.entityType', value: 'booking' },
35
+ { field: 'metadata.bookingNumber', value: BOOKING_NUMBER },
36
+ { field: 'metadata.locationId', value: LOCATION_ID }
37
+ ]
38
+ });
39
+ // booking.metadata: { guestCount, date, experienceSlug, totalInCents, checkedIn }
40
+ // booking.data: { partyNames, sessionAttributes, staffNotes }
41
+
42
+ // Session attributes (per-guest fields from session)
43
+ // booking.data.sessionAttributes as:
44
+ // [{ guestName, throwStyle, bestScore, laneNumber, teamName, leagueSeason,
45
+ // competitionFormat, coachNotes }, ...]
46
+ ```
47
+
48
+ ```typescript
49
+ // Loyalty points earned on this session
50
+ const loyaltyTx = await brain.find({
51
+ type: 'Measurement',
52
+ where: [
53
+ { field: 'metadata.entityType', value: 'loyalty-transaction' },
54
+ { field: 'metadata.reason', value: 'earned' },
55
+ { field: 'metadata.bookingId', value: booking.id }
56
+ ]
57
+ });
58
+ // loyaltyTx.metadata: { points, customerId }
59
+
60
+ // Customer loyalty account for current tier
61
+ const loyaltyAccount = await brain.find({
62
+ type: 'Person',
63
+ where: [
64
+ { field: 'metadata.entityType', value: 'loyalty-account' },
65
+ { field: 'metadata.customerId', value: booking.metadata.customerId }
66
+ ]
67
+ });
68
+ // loyaltyAccount.metadata: { pointsBalance, tier }
69
+ ```
70
+
71
+ ## Letter Structure
72
+
73
+ Write a **150–250 word** email. Follow this order of beats — but write it as a flowing letter, not a list. No section headers in the output.
74
+
75
+ ### 1. Personalized Opener
76
+
77
+ Address the guest(s) by first name(s). Never "Dear Valued Customer" or "Hi there."
78
+
79
+ If multiple guests: use both first names (e.g., "Marcus and Jordan,").
80
+ If party size > 2 and names are available: use "Marcus, Jordan, and the whole crew —".
81
+ For league guests: reference the team name if available (e.g., "Iron Shoulders —").
82
+
83
+ ### 2. Specific Session Callback
84
+
85
+ Reference exactly what happened in the session. Best score, throw style, a coaching breakthrough, competition result, or a memorable moment from coach notes.
86
+
87
+ Good: "That hatchet form in the second half of the session was genuinely impressive — from inconsistent sticks to four bullseyes in a row is a big jump for one hour."
88
+ Good for league: "Season 3, Week 5 — and Iron Shoulders just went 2-1 against a team that's been on a 4-week win streak. The standings are tighter than they look."
89
+ Bad: "We hope you enjoyed your time throwing axes with us."
90
+
91
+ If bestScore is available: "Hitting a [score] in that clutch call takes nerve. You called it, you stuck it."
92
+
93
+ If no session attribute data is available at all, write around it gracefully: "Whatever happened on Lane [number] Thursday night, the marks on the board tell a story."
94
+
95
+ ### 3. Technique Note (if coach notes exist)
96
+
97
+ If `coachNotes` is present in session attributes, reference the specific coaching point — the thing they improved or the thing to work on next time. This is what makes the letter feel real.
98
+
99
+ Good: "Your coach noted that your release timing cleaned up significantly in the back half of the session — that's the single hardest adjustment for hatchet throwers. Come back and see if you can make it the default."
100
+
101
+ If no coach notes: skip this beat entirely.
102
+
103
+ ### 4. Loyalty Points (if loyalty program active)
104
+
105
+ If points were earned, mention them with current balance and tier. One sentence, brief.
106
+
107
+ Example: "You earned 25 points on this visit, bringing your total to 180 — Bronze tier."
108
+
109
+ If no loyalty account or no points data, omit this beat entirely.
110
+
111
+ ### 5. Return Invitation
112
+
113
+ One natural sentence that implies they'll be back, not that they should feel obligated. Match the session type:
114
+
115
+ - Open throw: "Whenever you want to work on that release timing, Lane [number] will be waiting."
116
+ - League: "Week 6 standings update coming {{leagueNights}} — we'll be watching Iron Shoulders."
117
+ - Private party: "If you want to do it again — or if your group wants a rematch — we can set up the same format."
118
+ - Axe 101: "You've got the foundation now. Come back and throw a full session — the difference will be obvious."
119
+
120
+ ### 6. Social Share Invite
121
+
122
+ One line. Include the handle.
123
+
124
+ Example: "If you caught your bullseye on video, tag us @{{instagram}} — the good throws deserve an audience."
125
+
126
+ ### 7. Sign-Off
127
+
128
+ From a named coach if available (use the staff member who ran the session, from booking or session data). Otherwise: "The {{businessName}} team."
129
+
130
+ ## Tone Rules
131
+
132
+ The letter should feel like a note from a coach who actually ran the session and paid attention — not a CRM automation.
133
+
134
+ - Energetic and direct — not corporate, not overly casual
135
+ - Specific to the sport: use correct terminology (bullseye, clutch, hatchet, stick)
136
+ - Short paragraphs. Two to four sentences per beat.
137
+ - If coach notes include something exceptional (a guest who hit their first-ever bullseye, a team that came back from a big deficit, a corporate group where the expected performer got dominated by a quiet colleague), build the emotional center of the letter around it
138
+ - Match energy to the session: a league win letter is competitive and celebratory; a first-timer letter is encouraging; a corporate event letter can acknowledge the team dynamic
139
+
140
+ ## Absolute Rules
141
+
142
+ - NEVER: "Dear Valued Customer"
143
+ - NEVER: Generic coaching praise ("great effort today!")
144
+ - NEVER: Hard sell language ("Book now for 10% off!")
145
+ - NEVER: Reference payment amounts or confirmation IDs
146
+ - NEVER: Describe throw style as "your style of throwing" — use the actual term (hatchet, big axe)
147
+ - NEVER: Make up scores or coaching details that aren't in the session data
148
+
149
+ ## Example Output
150
+
151
+ ```
152
+ Marcus and Jordan,
153
+
154
+ That session was one of the better first-time showings we've had in a while. Jordan,
155
+ hitting a 38 on your last set — hatchet, two-hand grip, consistent release point from
156
+ throw 8 onward — that's not beginner form anymore. Marcus, the coach noted your stance
157
+ opened up nicely after the first 20 minutes. The fact that you were sticking 4s and 5s
158
+ by the end of the session is exactly what that adjustment is supposed to produce.
159
+
160
+ Come back with a score target: if Jordan's going to clear 40 in a set, it's going to
161
+ require a consistent clutch call strategy, not just landing rings.
162
+
163
+ You each earned 25 points this visit — 50 combined if you have a joint account.
164
+ Enough to start thinking about Silver.
165
+
166
+ Whenever you're ready to run it back, Lane 4 is open most weekday evenings.
167
+
168
+ If you got the bullseye on video, tag us @{{instagram}}.
169
+
170
+ — Coach Ryan and the {{businessName}} team
171
+ ```
@@ -0,0 +1,234 @@
1
+ ---
2
+ id: inventory-health
3
+ name: Inventory Health Check
4
+ description: Analyzes axe throwing venue stock levels with special logic for axe maintenance cycles, target board rotation schedules, and beverage par levels — producing tiered alerts and a prioritized action list.
5
+ type: invocable
6
+ version: 1.0.0
7
+ requiresVision: false
8
+ requiresData: true
9
+ ---
10
+
11
+ # Inventory Health Check
12
+
13
+ You analyze {{businessName}} inventory with context-specific logic for an axe throwing venue. Axes are not consumed — they are maintained. Targets are consumed over time. Beverages run on standard par logic. Safety equipment requires its own threshold. This skill handles all three models and produces a clear, tiered alert report.
14
+
15
+ ## When to Trigger
16
+
17
+ Invoke this skill when someone asks:
18
+
19
+ - "Check inventory"
20
+ - "What needs restocking?"
21
+ - "Which axes are due for sharpening?"
22
+ - "Target board status"
23
+ - "What are we running low on?"
24
+ - "Inventory alert"
25
+ - Also runs automatically as section 4 of the Staff Briefing skill
26
+
27
+ ## Inventory Categories at {{businessName}}
28
+
29
+ | Category ID | What It Covers | Tracking Model |
30
+ |---|---|---|
31
+ | `hatchet` | Throwing hatchets — numbered by ID | Maintenance cycle (sharpen every 50 sessions) |
32
+ | `big-axe` | Big axes — numbered by ID | Maintenance cycle (sharpen every 30 sessions) |
33
+ | `targets` | Target boards (2×10 pine) and mounting hardware | Consumption cycle (flip at ~200 sessions, replace at ~400) |
34
+ | `lane-supplies` | Chalk, markers, scorecards, tape, lane barriers | Standard consumption |
35
+ | `safety` | Safety barriers, floor mats, warning signs, first aid | Count + condition check |
36
+ | `beverages` | Draft beer kegs, canned beverages, wine, non-alcoholic | Standard par level |
37
+ | `retail` | Branded merchandise, gift items | Standard par level |
38
+ | `maintenance` | Sharpening stones, axe oil, handle wrap, wood filler | Standard consumption |
39
+
40
+ ## Step 1: Pull Current Stock
41
+
42
+ ```typescript
43
+ const inventoryItems = await brain.find({
44
+ type: 'Thing',
45
+ where: [
46
+ { field: 'metadata.entityType', value: 'inventory-item' },
47
+ { field: 'metadata.locationId', value: LOCATION_ID }
48
+ ]
49
+ });
50
+ // Each item: { metadata: { name, category, quantity, reorderThreshold, costInCents,
51
+ // lastMaintenanceDate, sessionsSinceMaintenance, locationId } }
52
+ ```
53
+
54
+ ## Step 2: Axe Maintenance Logic
55
+
56
+ Axes are tracked individually by ID. They are not "consumed" — they rotate through a maintenance cycle.
57
+
58
+ ```typescript
59
+ const hatchets = inventoryItems.filter(i => i.metadata.category === 'hatchet');
60
+ const bigAxes = inventoryItems.filter(i => i.metadata.category === 'big-axe');
61
+
62
+ // Maintenance thresholds (from axe-expertise skill)
63
+ const HATCHET_SHARPEN_INTERVAL = 50; // sessions
64
+ const BIG_AXE_SHARPEN_INTERVAL = 30; // sessions
65
+ const HATCHET_FULL_SERVICE = 200; // sessions
66
+ const BIG_AXE_FULL_SERVICE = 150; // sessions
67
+
68
+ // Flag axes where sessionsSinceMaintenance >= threshold
69
+ const hatchetsDue = hatchets.filter(
70
+ i => (i.metadata.sessionsSinceMaintenance ?? 0) >= HATCHET_SHARPEN_INTERVAL
71
+ );
72
+ const bigAxesDue = bigAxes.filter(
73
+ i => (i.metadata.sessionsSinceMaintenance ?? 0) >= BIG_AXE_SHARPEN_INTERVAL
74
+ );
75
+ const hatchetsFullService = hatchets.filter(
76
+ i => (i.metadata.sessionsSinceMaintenance ?? 0) >= HATCHET_FULL_SERVICE
77
+ );
78
+ ```
79
+
80
+ Axes flagged for maintenance should be pulled from rotation before the first session of the day, not after. Safety equipment past its maintenance threshold is a 🔴 CRITICAL alert.
81
+
82
+ ## Step 3: Target Board Logic
83
+
84
+ Target boards are consumed over time through repeated axe impacts.
85
+
86
+ ```typescript
87
+ const targetBoards = inventoryItems.filter(i => i.metadata.category === 'targets');
88
+
89
+ // Estimate based on session count metadata on each board item
90
+ const BOARD_FLIP_THRESHOLD = 200; // sessions — flip to reverse face
91
+ const BOARD_REPLACE_THRESHOLD = 400; // sessions — replace entirely
92
+
93
+ const boardsToFlip = targetBoards.filter(b => b.metadata.sessionCount >= BOARD_FLIP_THRESHOLD
94
+ && b.metadata.sessionCount < BOARD_REPLACE_THRESHOLD);
95
+ const boardsToReplace = targetBoards.filter(b => b.metadata.sessionCount >= BOARD_REPLACE_THRESHOLD);
96
+ ```
97
+
98
+ If session count is not tracked per board, check `metadata.lastRotationDate` and estimate based on average sessions per week. Alert if any board has not been rotated in more than 4 weeks (assuming any operational venue runs 50+ sessions per week).
99
+
100
+ ## Step 4: Standard Consumption Rate (Beverages, Lane Supplies, Retail)
101
+
102
+ ```typescript
103
+ brain.defineAggregate('weeklyConsumptionByCategory', {
104
+ source: {
105
+ type: 'Measurement',
106
+ where: [
107
+ { field: 'metadata.entityType', value: 'transaction' },
108
+ { field: 'metadata.type', value: 'expense' }
109
+ ]
110
+ },
111
+ groupBy: [
112
+ { field: 'metadata.category' },
113
+ { field: 'metadata.date', window: 'week' }
114
+ ],
115
+ metrics: {
116
+ weeklyCount: { op: 'COUNT' },
117
+ weeklySpend: { op: 'SUM', field: 'metadata.amountInCents' },
118
+ avgPerWeek: { op: 'AVG', field: 'metadata.amountInCents' }
119
+ }
120
+ });
121
+
122
+ const consumption = await brain.find({
123
+ aggregate: 'weeklyConsumptionByCategory',
124
+ where: [
125
+ { field: 'metadata.locationId', value: LOCATION_ID },
126
+ { field: 'metadata.date', value: { gte: FOUR_WEEKS_AGO, lte: TODAY } }
127
+ ]
128
+ });
129
+ ```
130
+
131
+ ## Alert Tiers
132
+
133
+ | Tier | Condition | Action Required |
134
+ |---|---|---|
135
+ | 🔴 CRITICAL | Safety equipment below minimum count; axes past full service interval; boards past replace threshold; beverages at zero | Immediate action before opening |
136
+ | 🟡 LOW | Axes due for sharpening (not full service); boards approaching flip threshold; beverages below par; lane supplies running low | Action this week |
137
+ | 🟢 OK | All within safe thresholds | No action needed |
138
+
139
+ ## Output Structure
140
+
141
+ ---
142
+
143
+ ### 1. Status Summary
144
+
145
+ ```
146
+ Inventory Health — {{locationName}}
147
+ As of: [today's date]
148
+ ─────────────────────────────────────────
149
+ 🔴 CRITICAL: 1 item (action before opening)
150
+ 🟡 LOW: 6 items (order or service this week)
151
+ 🟢 OK: 28 items
152
+ ```
153
+
154
+ ### 2. Critical Items
155
+
156
+ Items requiring immediate action before any session begins:
157
+
158
+ | Item | Category | Issue | Action Required |
159
+ |---|---|---|---|
160
+ | Safety Mat — Lane 3 | safety | Torn edge — trip hazard | Replace before opening |
161
+ | Big Axe #4 | big-axe | 148 sessions — past full service interval | Pull from rotation immediately |
162
+
163
+ Safety category items are always CRITICAL regardless of days-until-empty logic.
164
+
165
+ ### 3. Axe Maintenance Queue
166
+
167
+ List all axes due for sharpening (not yet critical) in order of urgency:
168
+
169
+ | Axe ID | Type | Sessions Since Last Maintenance | Threshold | Status |
170
+ |---|---|---|---|---|
171
+ | Hatchet #7 | Hatchet | 52 | 50 | 🟡 Due for sharpening |
172
+ | Hatchet #12 | Hatchet | 56 | 50 | 🟡 Due for sharpening |
173
+ | Big Axe #2 | Big Axe | 28 | 30 | 🟡 Due next week |
174
+
175
+ **Sharpening action**: Pull from rotation before the day's sessions begin. Return after sharpening is complete. Do not sharpen in-session — remove and replace with a spare.
176
+
177
+ If no axes are due: "All axes within maintenance thresholds."
178
+
179
+ ### 4. Target Board Rotation Schedule
180
+
181
+ | Board / Lane | Sessions Used | Flip At | Replace At | Status | Action |
182
+ |---|---|---|---|---|---|
183
+ | Board — Lane 2 | 198 | 200 | 400 | 🟡 Flip this week | Schedule flip before next private party |
184
+ | Board — Lane 6 | 412 | 200 | 400 | 🔴 Replace immediately | Order replacement board |
185
+ | Board — Lane 1 | 87 | 200 | 400 | 🟢 OK | None |
186
+
187
+ If no boards need attention: "All target boards are within rotation thresholds."
188
+
189
+ ### 5. Beverage Par Status
190
+
191
+ | Item | Category | In Stock | Par Level | Status |
192
+ |---|---|---|---|---|
193
+ | Pale Ale (1/6 bbl) | beverages | 1 keg | 3 kegs | 🟡 LOW — order this week |
194
+ | IPA (1/2 bbl) | beverages | 2 kegs | 2 kegs | 🟢 OK |
195
+ | Non-Alcoholic Cider | beverages | 4 cans | 24 cans | 🔴 CRITICAL |
196
+
197
+ ### 6. Weekly Consumption Rates (Last 4 Weeks)
198
+
199
+ | Category | Avg Weekly Spend | Trend |
200
+ |---|---|---|
201
+ | beverages | $680 / week | +12% vs prior 4 wks |
202
+ | targets | $140 / week | stable |
203
+ | lane-supplies | $48 / week | stable |
204
+ | maintenance | $62 / week | +5% vs prior 4 wks |
205
+ | retail | $110 / week | -8% vs prior 4 wks |
206
+
207
+ A rising beverage trend with low stock is a compounding risk — flag it.
208
+
209
+ ### 7. Recommended Action List
210
+
211
+ A consolidated prioritized list of all required actions:
212
+
213
+ | Priority | Item | Action | Urgency |
214
+ |---|---|---|---|
215
+ | 1 | Safety Mat — Lane 3 | Replace torn mat before opening | 🔴 NOW |
216
+ | 2 | Non-Alcoholic Cider | Reorder — stock at critical level | 🔴 TODAY |
217
+ | 3 | Hatchet #7, #12 | Pull from rotation; sharpen and return | 🟡 THIS SESSION |
218
+ | 4 | Board — Lane 6 | Order replacement 2×10 pine board | 🟡 THIS WEEK |
219
+ | 5 | Board — Lane 2 | Schedule flip — before next private party | 🟡 THIS WEEK |
220
+ | 6 | Pale Ale keg | Order 2 additional 1/6 bbl kegs | 🟡 THIS WEEK |
221
+
222
+ Suggested reorder quantities for consumable items: `(reorderThreshold × 2) − currentQuantity`, rounded up to nearest supplier unit.
223
+
224
+ ### 8. Axe Count Check
225
+
226
+ Confirm operational readiness:
227
+
228
+ ```
229
+ Axe Availability Summary
230
+ Total Hatchets: [N] Available: [N-flagged] In Maintenance Queue: [N]
231
+ Total Big Axes: [N] Available: [N-flagged] In Maintenance Queue: [N]
232
+
233
+ Session Readiness: [status — e.g., "Sufficient for all scheduled sessions today" or "Warning: if both flagged hatchets are pulled, open throw capacity is reduced by 2 lanes"]
234
+ ```
@@ -0,0 +1,264 @@
1
+ ---
2
+ id: league-manager
3
+ name: League Manager
4
+ description: Manages axe throwing league operations — season scheduling, weekly standings calculation, player stat leaderboards, and playoff bracket generation — using session attribute data stored on League Night bookings.
5
+ type: invocable
6
+ version: 1.0.0
7
+ requiresVision: false
8
+ requiresData: true
9
+ ---
10
+
11
+ # League Manager
12
+
13
+ You manage axe throwing league operations for {{businessName}}. When triggered, you pull league session data from Brainy, compute standings and player stats using WATL-style scoring logic, and produce formatted reports for staff, coaches, and league participants.
14
+
15
+ ## When to Trigger
16
+
17
+ Invoke this skill when someone asks:
18
+
19
+ - "League standings"
20
+ - "Schedule for this season"
21
+ - "Playoff bracket"
22
+ - "How's our league doing?"
23
+ - "Player leaderboard"
24
+ - "Set up the new season schedule"
25
+ - "Which teams are in playoffs?"
26
+ - Any league management, standings, or scheduling request
27
+
28
+ ## League Data Model
29
+
30
+ League data is stored across three entity types in Brainy:
31
+
32
+ ### 1. Season Document
33
+
34
+ ```typescript
35
+ // Each league season is stored as a Document entity
36
+ const season = await brain.find({
37
+ type: 'Document',
38
+ where: [
39
+ { field: 'metadata.entityType', value: 'league-season' },
40
+ { field: 'metadata.locationId', value: LOCATION_ID },
41
+ { field: 'metadata.status', value: 'active' } // or 'completed'
42
+ ]
43
+ });
44
+ // season.metadata: { seasonName, startDate, endDate, format, weekCount, teamCount }
45
+ // season.data: { teams: [{ teamName, playerIds: string[] }] }
46
+ ```
47
+
48
+ ### 2. Weekly Match Results
49
+
50
+ Match results are stored as session attributes on League Night booking records:
51
+
52
+ ```typescript
53
+ const leagueBookings = await brain.find({
54
+ type: 'Event',
55
+ where: [
56
+ { field: 'metadata.entityType', value: 'booking' },
57
+ { field: 'metadata.experienceSlug', value: 'league-night' },
58
+ { field: 'metadata.locationId', value: LOCATION_ID },
59
+ { field: 'metadata.date', value: { gte: season.metadata.startDate,
60
+ lte: season.metadata.endDate } }
61
+ ],
62
+ orderBy: 'metadata.date',
63
+ order: 'asc'
64
+ });
65
+
66
+ // Each booking.data.sessionAttributes contains:
67
+ // {
68
+ // laneNumber: string,
69
+ // teamName: string, // home team for this lane
70
+ // leagueSeason: string, // "Season 3"
71
+ // throwStyle: string, // 'hatchet' | 'big-axe'
72
+ // weekNumber: number,
73
+ // opponentTeam: string,
74
+ // teamScore: number, // total points this team scored this match
75
+ // opponentScore: number, // total points opponent scored
76
+ // playerScores: [{ guestName, setScores: number[], totalScore: number, clutchesCalled: number, clutchesHit: number }]
77
+ // }
78
+ ```
79
+
80
+ ### 3. Standing Calculation Logic
81
+
82
+ ```typescript
83
+ brain.defineAggregate('leagueStandingsByTeam', {
84
+ source: {
85
+ type: 'Event',
86
+ where: [
87
+ { field: 'metadata.entityType', value: 'booking' },
88
+ { field: 'metadata.experienceSlug', value: 'league-night' }
89
+ ]
90
+ },
91
+ groupBy: [
92
+ { field: 'metadata.teamName' }
93
+ ],
94
+ metrics: {
95
+ matchesPlayed: { op: 'COUNT' },
96
+ totalPoints: { op: 'SUM', field: 'metadata.teamScore' },
97
+ totalOpponent: { op: 'SUM', field: 'metadata.opponentScore' },
98
+ avgScore: { op: 'AVG', field: 'metadata.teamScore' },
99
+ maxScore: { op: 'MAX', field: 'metadata.teamScore' }
100
+ }
101
+ });
102
+ ```
103
+
104
+ Wins and losses are computed client-side: for each match record, `teamScore > opponentScore` → win, else loss. Point differential = `SUM(teamScore) - SUM(opponentScore)` across all matches.
105
+
106
+ **Standings sort order**: wins (desc) → point differential (desc) → total points (desc).
107
+
108
+ ## WATL Scoring Reminder
109
+
110
+ Every match is 5 throws per player per set, best of 3 sets. Team score = sum of all player scores across all 5 throws in the winning set(s).
111
+
112
+ Clutch scoring: if a player calls "clutch" before a throw and hits the clutch zone, score 8. If they call it and miss, score 0. If they don't call it, score based on standard ring value (typically 1 for the clutch zone area).
113
+
114
+ ## Output Structure
115
+
116
+ ---
117
+
118
+ ### 1. Season Overview
119
+
120
+ ```
121
+ League — {{locationName}}
122
+ Season: [seasonName]
123
+ Week [N] of [weekCount] | [N] weeks remaining
124
+ Teams: [teamCount] | Format: WATL Head-to-Head, Best of 3
125
+ ```
126
+
127
+ ### 2. Current Standings
128
+
129
+ Full standings table sorted by wins, then point differential, then total points:
130
+
131
+ | Rank | Team | W | L | Pts For | Pts Against | Diff | Last 3 | Streak |
132
+ |---|---|---|---|---|---|---|---|---|
133
+ | 1 | Iron Shoulders | 7 | 1 | 1,842 | 1,604 | +238 | W-W-W | W3 |
134
+ | 2 | Axe Factors | 6 | 2 | 1,798 | 1,642 | +156 | W-L-W | W1 |
135
+ | 3 | Hatchet Heroes | 5 | 3 | 1,756 | 1,700 | +56 | L-W-W | W2 |
136
+ | 4 | Target Practice | 5 | 3 | 1,710 | 1,724 | -14 | W-W-L | L1 |
137
+ | 5 | The Bullseye Club | 4 | 4 | 1,682 | 1,718 | -36 | L-L-W | W1 |
138
+ | 6 | Stick & Stones | 3 | 5 | 1,640 | 1,780 | -140 | L-W-L | L1 |
139
+ | 7 | No Clutch | 2 | 6 | 1,594 | 1,842 | -248 | L-L-W | W1 |
140
+ | 8 | Wild Hatchets | 0 | 8 | 1,488 | 1,920 | -432 | L-L-L | L8 |
141
+
142
+ Add a separator line after the playoff cutoff (top 8 advance by default, or configurable per season).
143
+
144
+ ### 3. This Week's Match Results
145
+
146
+ For the most recent completed week:
147
+
148
+ ```
149
+ Week [N] Results — [Date]
150
+ ──────────────────────────
151
+ Lane 1: Iron Shoulders def. No Clutch (442 – 384)
152
+ Lane 2: Axe Factors def. Wild Hatchets (408 – 362)
153
+ Lane 3: Hatchet Heroes def. Stick & Stones (398 – 376)
154
+ Lane 4: Target Practice def. Bullseye Club (416 – 398)
155
+ ```
156
+
157
+ ### 4. Individual Player Leaderboard
158
+
159
+ Top 10 players by average score per set this season:
160
+
161
+ | Rank | Player | Team | Avg Score/Set | Total Throws | Clutches Hit | Clutch % |
162
+ |---|---|---|---|---|---|---|
163
+ | 1 | Marcus T. | Iron Shoulders | 28.4 | 200 | 6 | 60% |
164
+ | 2 | Jordan K. | Axe Factors | 27.8 | 200 | 4 | 44% |
165
+ | 3 | Alex R. | Hatchet Heroes | 26.2 | 200 | 8 | 72% |
166
+
167
+ Privacy: display first name + last initial only.
168
+
169
+ Clutch % = clutches hit / clutches called. A player who never calls clutch will show `0 / 0` — display as "—" rather than 0%.
170
+
171
+ ### 5. Notable Stats This Season
172
+
173
+ ```
174
+ Season Records
175
+ Highest single-match team score: Iron Shoulders, 502 pts (Week 3 vs Wild Hatchets)
176
+ Most clutches called in a match: Alex R., 4 called (Hatchet Heroes, Week 6)
177
+ Most clutches hit in a match: Alex R., 3 hit (Hatchet Heroes, Week 6)
178
+ Longest winning streak: Iron Shoulders, 5 consecutive wins (Weeks 2–6)
179
+ Highest-scoring individual set: Marcus T., 38 pts (Week 4)
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Playoff Bracket Generator
185
+
186
+ When the regular season is complete (or on request), generate the playoff bracket.
187
+
188
+ **Top 8 teams by final standings advance.** Single-elimination bracket, seeded by final standings position.
189
+
190
+ ```
191
+ Playoff Bracket — {{businessName}} League [seasonName]
192
+ ══════════════════════════════════════════════════
193
+
194
+ QUARTERFINALS (Week [N])
195
+ QF1: [1] Iron Shoulders vs. [8] Wild Hatchets Lane 1, [time]
196
+ QF2: [2] Axe Factors vs. [7] No Clutch Lane 2, [time]
197
+ QF3: [3] Hatchet Heroes vs. [6] Stick & Stones Lane 3, [time]
198
+ QF4: [4] Target Practice vs. [5] Bullseye Club Lane 4, [time]
199
+
200
+ SEMIFINALS (Week [N+1])
201
+ SF1: Winner QF1 vs. Winner QF4 Lane 1, [time]
202
+ SF2: Winner QF2 vs. Winner QF3 Lane 2, [time]
203
+
204
+ CHAMPIONSHIP (Week [N+2])
205
+ Champion Match: Winner SF1 vs. Winner SF2 Lane 1, [time]
206
+ Third Place: Loser SF1 vs. Loser SF2 Lane 2, [time]
207
+ ```
208
+
209
+ For each bracket position, show the seed number and team name. As playoff results come in, update the bracket with actual results and advance teams appropriately.
210
+
211
+ ---
212
+
213
+ ## Season Schedule Generator
214
+
215
+ For new season setup, generate a round-robin schedule ensuring each team plays each other once before playoffs.
216
+
217
+ **Input required**:
218
+ - Number of teams (even number required for clean round-robin; if odd, add a "bye" team)
219
+ - Number of weeks in regular season
220
+ - Nights per week (typically 1)
221
+ - Available lanes ({{laneCount}})
222
+
223
+ **Algorithm**: Standard round-robin rotation. Fix Team 1's position, rotate all other teams around it. Each rotation produces one week of matchups.
224
+
225
+ **Output format**:
226
+
227
+ ```
228
+ Season Schedule — [seasonName]
229
+ [N] teams | [N]-week regular season | Playoffs: Weeks [N+1]–[N+3]
230
+ ────────────────────────────────────────────────────────────
231
+
232
+ Week 1 — [Date]
233
+ Lane 1: Iron Shoulders vs. Wild Hatchets
234
+ Lane 2: Axe Factors vs. No Clutch
235
+ Lane 3: Hatchet Heroes vs. Stick & Stones
236
+ Lane 4: Target Practice vs. Bullseye Club
237
+
238
+ Week 2 — [Date]
239
+ Lane 1: [matchup]
240
+ ...
241
+ ```
242
+
243
+ If the number of teams exceeds `floor({{laneCount}} / 1)` simultaneous matches, split the evening into two time blocks (e.g., 6:00 PM and 8:00 PM) to accommodate all matches.
244
+
245
+ ---
246
+
247
+ ## League Registration Output
248
+
249
+ When helping set up a new season, produce a registration summary suitable for sharing with prospective teams:
250
+
251
+ ```
252
+ {{businessName}} Axe Throwing League — [seasonName]
253
+ ────────────────────────────────────────────────────
254
+ Format: WATL Head-to-Head, Best of 3 Sets
255
+ Teams: 4–8 players per team
256
+ Season Length: 8 weeks + playoffs
257
+ Night: {{leagueNights}} evenings
258
+ Cost: $20/player/night (season registration)
259
+ Registration Opens: [date]
260
+ Season Starts: [date]
261
+
262
+ How to Register: Email {{email}} or visit [booking link]
263
+ Spots are limited — last season filled in [N] days.
264
+ ```