@stacksjs/defaults 0.75.109 → 0.75.111

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 (749) hide show
  1. package/ai/AGENTS.md +36 -1
  2. package/ai/README.md +39 -1
  3. package/ai/skills/stacks-actions/SKILL.md +64 -6
  4. package/ai/skills/stacks-ai/SKILL.md +36 -10
  5. package/ai/skills/stacks-alias/SKILL.md +40 -85
  6. package/ai/skills/stacks-analytics/SKILL.md +23 -3
  7. package/ai/skills/stacks-arrays/SKILL.md +35 -9
  8. package/ai/skills/stacks-audio/SKILL.md +34 -0
  9. package/ai/skills/stacks-auth/ACCOUNT-WORKFLOWS.md +113 -0
  10. package/ai/skills/stacks-auth/SKILL.md +90 -57
  11. package/ai/skills/stacks-auto-imports/SKILL.md +80 -138
  12. package/ai/skills/stacks-browser/SKILL.md +82 -138
  13. package/ai/skills/stacks-browser-extension/SKILL.md +40 -0
  14. package/ai/skills/stacks-buddy/SKILL.md +2 -0
  15. package/ai/skills/stacks-build/SKILL.md +42 -23
  16. package/ai/skills/stacks-cache/SKILL.md +75 -115
  17. package/ai/skills/stacks-calendar/SKILL.md +61 -97
  18. package/ai/skills/stacks-charts/SKILL.md +34 -0
  19. package/ai/skills/stacks-chat/SKILL.md +18 -2
  20. package/ai/skills/stacks-chief-of-staff/LICENSE +21 -0
  21. package/ai/skills/stacks-chief-of-staff/NOTICE.md +10 -0
  22. package/ai/skills/stacks-chief-of-staff/PLAYBOOK.md +42 -0
  23. package/ai/skills/stacks-chief-of-staff/SKILL.md +28 -0
  24. package/ai/skills/stacks-cli/SKILL.md +23 -7
  25. package/ai/skills/stacks-cloud/SKILL.md +37 -20
  26. package/ai/skills/stacks-cms/PAGES.md +70 -0
  27. package/ai/skills/stacks-cms/SKILL.md +30 -18
  28. package/ai/skills/stacks-codebase-design/LICENSE +21 -0
  29. package/ai/skills/stacks-codebase-design/NOTICE.md +10 -0
  30. package/ai/skills/stacks-codebase-design/SKILL.md +10 -0
  31. package/ai/skills/stacks-collections/SKILL.md +25 -8
  32. package/ai/skills/stacks-commerce/SKILL.md +25 -1
  33. package/ai/skills/stacks-composables/BROWSER.md +97 -0
  34. package/ai/skills/stacks-composables/SKILL.md +87 -181
  35. package/ai/skills/stacks-config/SKILL.md +108 -162
  36. package/ai/skills/stacks-cron/SKILL.md +27 -13
  37. package/ai/skills/stacks-crosswind/SKILL.md +62 -167
  38. package/ai/skills/stacks-dashboard/SKILL.md +8 -0
  39. package/ai/skills/stacks-database/SKILL.md +98 -68
  40. package/ai/skills/stacks-datetime/SKILL.md +21 -5
  41. package/ai/skills/stacks-deploy/SKILL.md +17 -1
  42. package/ai/skills/stacks-design-brutalist/SKILL.md +1 -1
  43. package/ai/skills/stacks-design-minimalist/SKILL.md +17 -3
  44. package/ai/skills/stacks-design-soft/SKILL.md +16 -4
  45. package/ai/skills/stacks-design-taste/SKILL.md +55 -35
  46. package/ai/skills/stacks-design-taste-codex/SKILL.md +5 -5
  47. package/ai/skills/stacks-desktop/SKILL.md +22 -16
  48. package/ai/skills/stacks-development/SKILL.md +19 -8
  49. package/ai/skills/stacks-dns/SKILL.md +72 -139
  50. package/ai/skills/stacks-domain-modeling/ADR-FORMAT.md +47 -0
  51. package/ai/skills/stacks-domain-modeling/GLOSSARY-FORMAT.md +60 -0
  52. package/ai/skills/stacks-domain-modeling/LICENSE +21 -0
  53. package/ai/skills/stacks-domain-modeling/NOTICE.md +10 -0
  54. package/ai/skills/stacks-domain-modeling/SKILL.md +11 -0
  55. package/ai/skills/stacks-email/DELIVERY-CONTROLS.md +84 -0
  56. package/ai/skills/stacks-email/SKILL.md +18 -2
  57. package/ai/skills/stacks-enums/SKILL.md +28 -81
  58. package/ai/skills/stacks-env/SKILL.md +23 -15
  59. package/ai/skills/stacks-error-handling/SKILL.md +68 -121
  60. package/ai/skills/stacks-events/SKILL.md +83 -264
  61. package/ai/skills/stacks-faker/SKILL.md +28 -13
  62. package/ai/skills/stacks-feature-flags/SKILL.md +41 -0
  63. package/ai/skills/stacks-features/SKILL.md +46 -0
  64. package/ai/skills/stacks-flow/ENGINEERING.md +84 -0
  65. package/ai/skills/stacks-flow/LICENSE +21 -0
  66. package/ai/skills/stacks-flow/NOTICE.md +10 -0
  67. package/ai/skills/stacks-flow/SKILL.md +32 -0
  68. package/ai/skills/stacks-flow/upstream-skills.json +726 -0
  69. package/ai/skills/stacks-forms/SKILL.md +44 -0
  70. package/ai/skills/stacks-git/LICENSE +21 -0
  71. package/ai/skills/stacks-git/NOTICE.md +10 -0
  72. package/ai/skills/stacks-git/SKILL.md +11 -0
  73. package/ai/skills/stacks-grill-with-docs/LICENSE +21 -0
  74. package/ai/skills/stacks-grill-with-docs/NOTICE.md +10 -0
  75. package/ai/skills/stacks-grill-with-docs/PLAYBOOK.md +4 -0
  76. package/ai/skills/stacks-grill-with-docs/SKILL.md +24 -0
  77. package/ai/skills/stacks-grilling/LICENSE +21 -0
  78. package/ai/skills/stacks-grilling/NOTICE.md +17 -0
  79. package/ai/skills/stacks-grilling/SKILL.md +7 -0
  80. package/ai/skills/stacks-guard/LICENSE +21 -0
  81. package/ai/skills/stacks-guard/NOTICE.md +10 -0
  82. package/ai/skills/stacks-guard/SKILL.md +6 -0
  83. package/ai/skills/stacks-handoff/LICENSE +21 -0
  84. package/ai/skills/stacks-handoff/NOTICE.md +17 -0
  85. package/ai/skills/stacks-handoff/SKILL.md +8 -0
  86. package/ai/skills/stacks-http/SKILL.md +64 -297
  87. package/ai/skills/stacks-humanizer/LICENSE +21 -0
  88. package/ai/skills/stacks-humanizer/NOTICE.md +19 -0
  89. package/ai/skills/stacks-humanizer/SKILL.md +85 -0
  90. package/ai/skills/stacks-humanizer/references/patterns.md +350 -0
  91. package/ai/skills/stacks-i18n/SKILL.md +33 -8
  92. package/ai/skills/stacks-image/SKILL.md +37 -0
  93. package/ai/skills/stacks-image-to-code/SKILL.md +11 -6
  94. package/ai/skills/stacks-implement/LICENSE +21 -0
  95. package/ai/skills/stacks-implement/NOTICE.md +10 -0
  96. package/ai/skills/stacks-implement/PLAYBOOK.md +14 -0
  97. package/ai/skills/stacks-implement/SKILL.md +24 -0
  98. package/ai/skills/stacks-implement-spec/LICENSE +21 -0
  99. package/ai/skills/stacks-implement-spec/NOTICE.md +10 -0
  100. package/ai/skills/stacks-implement-spec/PLAYBOOK.md +37 -0
  101. package/ai/skills/stacks-implement-spec/SKILL.md +24 -0
  102. package/ai/skills/stacks-improve-codebase-architecture/HTML-REPORT.md +126 -0
  103. package/ai/skills/stacks-improve-codebase-architecture/LICENSE +21 -0
  104. package/ai/skills/stacks-improve-codebase-architecture/NOTICE.md +10 -0
  105. package/ai/skills/stacks-improve-codebase-architecture/PLAYBOOK.md +68 -0
  106. package/ai/skills/stacks-improve-codebase-architecture/SKILL.md +24 -0
  107. package/ai/skills/stacks-investigate/LICENSE +21 -0
  108. package/ai/skills/stacks-investigate/NOTICE.md +10 -0
  109. package/ai/skills/stacks-investigate/SKILL.md +6 -0
  110. package/ai/skills/stacks-jobs/SKILL.md +29 -8
  111. package/ai/skills/stacks-listeners/SKILL.md +13 -5
  112. package/ai/skills/stacks-logging/SKILL.md +71 -68
  113. package/ai/skills/stacks-loop/LICENSE +21 -0
  114. package/ai/skills/stacks-loop/NOTICE.md +10 -0
  115. package/ai/skills/stacks-loop/PLAYBOOK.md +28 -0
  116. package/ai/skills/stacks-loop/SKILL.md +28 -0
  117. package/ai/skills/stacks-mail/SKILL.md +46 -7
  118. package/ai/skills/stacks-marketing/CATALOG.md +60 -0
  119. package/ai/skills/stacks-marketing/LICENSE +21 -0
  120. package/ai/skills/stacks-marketing/NOTICE.md +5 -0
  121. package/ai/skills/stacks-marketing/SKILL.md +27 -0
  122. package/ai/skills/stacks-marketing/WORKFLOW.md +83 -0
  123. package/ai/skills/stacks-marketing-ab-testing/LICENSE +21 -0
  124. package/ai/skills/stacks-marketing-ab-testing/NOTICE.md +13 -0
  125. package/ai/skills/stacks-marketing-ab-testing/PLAYBOOK.md +352 -0
  126. package/ai/skills/stacks-marketing-ab-testing/SKILL.md +30 -0
  127. package/ai/skills/stacks-marketing-ab-testing/evals/evals.json +116 -0
  128. package/ai/skills/stacks-marketing-ab-testing/references/sample-size-guide.md +263 -0
  129. package/ai/skills/stacks-marketing-ab-testing/references/test-templates.md +277 -0
  130. package/ai/skills/stacks-marketing-ad-creative/LICENSE +21 -0
  131. package/ai/skills/stacks-marketing-ad-creative/NOTICE.md +13 -0
  132. package/ai/skills/stacks-marketing-ad-creative/PLAYBOOK.md +434 -0
  133. package/ai/skills/stacks-marketing-ad-creative/SKILL.md +30 -0
  134. package/ai/skills/stacks-marketing-ad-creative/assets/creative-review-template.html +432 -0
  135. package/ai/skills/stacks-marketing-ad-creative/evals/evals.json +280 -0
  136. package/ai/skills/stacks-marketing-ad-creative/references/awareness-headlines.md +54 -0
  137. package/ai/skills/stacks-marketing-ad-creative/references/creative-review-page.md +109 -0
  138. package/ai/skills/stacks-marketing-ad-creative/references/creative-roadmap.md +118 -0
  139. package/ai/skills/stacks-marketing-ad-creative/references/generative-tools.md +613 -0
  140. package/ai/skills/stacks-marketing-ad-creative/references/hook-system.md +115 -0
  141. package/ai/skills/stacks-marketing-ad-creative/references/imessage-video-ads.md +197 -0
  142. package/ai/skills/stacks-marketing-ad-creative/references/meta-creative-formats.md +114 -0
  143. package/ai/skills/stacks-marketing-ad-creative/references/motion-video-ads.md +126 -0
  144. package/ai/skills/stacks-marketing-ad-creative/references/platform-specs.md +213 -0
  145. package/ai/skills/stacks-marketing-ad-creative/references/short-form-video-specs.md +213 -0
  146. package/ai/skills/stacks-marketing-ad-creative/references/static-ad-templates.md +308 -0
  147. package/ai/skills/stacks-marketing-ads/LICENSE +21 -0
  148. package/ai/skills/stacks-marketing-ads/NOTICE.md +13 -0
  149. package/ai/skills/stacks-marketing-ads/PLAYBOOK.md +464 -0
  150. package/ai/skills/stacks-marketing-ads/SKILL.md +30 -0
  151. package/ai/skills/stacks-marketing-ads/evals/evals.json +192 -0
  152. package/ai/skills/stacks-marketing-ads/references/abm-playbook.md +101 -0
  153. package/ai/skills/stacks-marketing-ads/references/ad-copy-templates.md +207 -0
  154. package/ai/skills/stacks-marketing-ads/references/audience-targeting.md +243 -0
  155. package/ai/skills/stacks-marketing-ads/references/audit-guardrails.md +83 -0
  156. package/ai/skills/stacks-marketing-ads/references/b2b-paid-playbook.md +115 -0
  157. package/ai/skills/stacks-marketing-ads/references/conversion-tracking.md +361 -0
  158. package/ai/skills/stacks-marketing-ads/references/creative-research-automation.md +103 -0
  159. package/ai/skills/stacks-marketing-ads/references/google-ads-audit-checklist.md +84 -0
  160. package/ai/skills/stacks-marketing-ads/references/google-search-playbook.md +120 -0
  161. package/ai/skills/stacks-marketing-ads/references/linkedin-b2b-playbook.md +107 -0
  162. package/ai/skills/stacks-marketing-ads/references/meta-andromeda-playbook.md +44 -0
  163. package/ai/skills/stacks-marketing-ads/references/meta-decision-system.md +176 -0
  164. package/ai/skills/stacks-marketing-ads/references/payback-period.md +73 -0
  165. package/ai/skills/stacks-marketing-ads/references/platform-setup-checklists.md +277 -0
  166. package/ai/skills/stacks-marketing-ads/references/reading-google-ads-data.md +121 -0
  167. package/ai/skills/stacks-marketing-ads/references/rsa-output-spec.md +88 -0
  168. package/ai/skills/stacks-marketing-ai-seo/LICENSE +21 -0
  169. package/ai/skills/stacks-marketing-ai-seo/NOTICE.md +13 -0
  170. package/ai/skills/stacks-marketing-ai-seo/PLAYBOOK.md +494 -0
  171. package/ai/skills/stacks-marketing-ai-seo/SKILL.md +30 -0
  172. package/ai/skills/stacks-marketing-ai-seo/evals/evals.json +163 -0
  173. package/ai/skills/stacks-marketing-ai-seo/references/agent-readiness.md +66 -0
  174. package/ai/skills/stacks-marketing-ai-seo/references/citations-vs-recommendations.md +89 -0
  175. package/ai/skills/stacks-marketing-ai-seo/references/content-patterns.md +287 -0
  176. package/ai/skills/stacks-marketing-ai-seo/references/content-types.md +82 -0
  177. package/ai/skills/stacks-marketing-ai-seo/references/format-volatility.md +95 -0
  178. package/ai/skills/stacks-marketing-ai-seo/references/linkedin-ai-citations.md +131 -0
  179. package/ai/skills/stacks-marketing-ai-seo/references/okf.md +104 -0
  180. package/ai/skills/stacks-marketing-ai-seo/references/platform-ranking-factors.md +167 -0
  181. package/ai/skills/stacks-marketing-ai-seo/references/positioning-and-consensus.md +102 -0
  182. package/ai/skills/stacks-marketing-ai-seo/references/youtube-ai-citations.md +66 -0
  183. package/ai/skills/stacks-marketing-analytics/LICENSE +21 -0
  184. package/ai/skills/stacks-marketing-analytics/NOTICE.md +13 -0
  185. package/ai/skills/stacks-marketing-analytics/PLAYBOOK.md +307 -0
  186. package/ai/skills/stacks-marketing-analytics/SKILL.md +30 -0
  187. package/ai/skills/stacks-marketing-analytics/evals/evals.json +117 -0
  188. package/ai/skills/stacks-marketing-analytics/references/event-library.md +260 -0
  189. package/ai/skills/stacks-marketing-analytics/references/ga4-implementation.md +304 -0
  190. package/ai/skills/stacks-marketing-analytics/references/gtm-implementation.md +396 -0
  191. package/ai/skills/stacks-marketing-aso/LICENSE +21 -0
  192. package/ai/skills/stacks-marketing-aso/NOTICE.md +13 -0
  193. package/ai/skills/stacks-marketing-aso/PLAYBOOK.md +310 -0
  194. package/ai/skills/stacks-marketing-aso/SKILL.md +30 -0
  195. package/ai/skills/stacks-marketing-aso/evals/evals.json +104 -0
  196. package/ai/skills/stacks-marketing-aso/references/apple-specs.md +107 -0
  197. package/ai/skills/stacks-marketing-aso/references/benchmarks.md +131 -0
  198. package/ai/skills/stacks-marketing-aso/references/google-play-specs.md +135 -0
  199. package/ai/skills/stacks-marketing-aso/references/report-template.md +213 -0
  200. package/ai/skills/stacks-marketing-aso/references/scoring-criteria.md +213 -0
  201. package/ai/skills/stacks-marketing-attribution/LICENSE +21 -0
  202. package/ai/skills/stacks-marketing-attribution/NOTICE.md +13 -0
  203. package/ai/skills/stacks-marketing-attribution/PLAYBOOK.md +223 -0
  204. package/ai/skills/stacks-marketing-attribution/SKILL.md +30 -0
  205. package/ai/skills/stacks-marketing-attribution/evals/evals.json +128 -0
  206. package/ai/skills/stacks-marketing-attribution/references/attribution-models.md +74 -0
  207. package/ai/skills/stacks-marketing-attribution/references/by-business-type.md +54 -0
  208. package/ai/skills/stacks-marketing-attribution/references/first-party-tracking.md +253 -0
  209. package/ai/skills/stacks-marketing-attribution/references/measurement-paradigms.md +85 -0
  210. package/ai/skills/stacks-marketing-churn-prevention/LICENSE +21 -0
  211. package/ai/skills/stacks-marketing-churn-prevention/NOTICE.md +13 -0
  212. package/ai/skills/stacks-marketing-churn-prevention/PLAYBOOK.md +420 -0
  213. package/ai/skills/stacks-marketing-churn-prevention/SKILL.md +30 -0
  214. package/ai/skills/stacks-marketing-churn-prevention/evals/evals.json +107 -0
  215. package/ai/skills/stacks-marketing-churn-prevention/references/cancel-flow-patterns.md +316 -0
  216. package/ai/skills/stacks-marketing-churn-prevention/references/dunning-playbook.md +413 -0
  217. package/ai/skills/stacks-marketing-co-marketing/LICENSE +21 -0
  218. package/ai/skills/stacks-marketing-co-marketing/NOTICE.md +13 -0
  219. package/ai/skills/stacks-marketing-co-marketing/PLAYBOOK.md +306 -0
  220. package/ai/skills/stacks-marketing-co-marketing/SKILL.md +30 -0
  221. package/ai/skills/stacks-marketing-co-marketing/evals/evals.json +98 -0
  222. package/ai/skills/stacks-marketing-co-marketing/references/partnership-types.md +100 -0
  223. package/ai/skills/stacks-marketing-cold-email/LICENSE +21 -0
  224. package/ai/skills/stacks-marketing-cold-email/NOTICE.md +13 -0
  225. package/ai/skills/stacks-marketing-cold-email/PLAYBOOK.md +210 -0
  226. package/ai/skills/stacks-marketing-cold-email/SKILL.md +30 -0
  227. package/ai/skills/stacks-marketing-cold-email/evals/evals.json +137 -0
  228. package/ai/skills/stacks-marketing-cold-email/references/benchmarks.md +87 -0
  229. package/ai/skills/stacks-marketing-cold-email/references/deliverability.md +111 -0
  230. package/ai/skills/stacks-marketing-cold-email/references/follow-up-sequences.md +81 -0
  231. package/ai/skills/stacks-marketing-cold-email/references/frameworks.md +90 -0
  232. package/ai/skills/stacks-marketing-cold-email/references/linkedin-outreach.md +91 -0
  233. package/ai/skills/stacks-marketing-cold-email/references/multichannel-cadence.md +79 -0
  234. package/ai/skills/stacks-marketing-cold-email/references/outbound-plays.md +88 -0
  235. package/ai/skills/stacks-marketing-cold-email/references/personalization.md +90 -0
  236. package/ai/skills/stacks-marketing-cold-email/references/reply-handling.md +65 -0
  237. package/ai/skills/stacks-marketing-cold-email/references/subject-lines.md +53 -0
  238. package/ai/skills/stacks-marketing-community-marketing/LICENSE +21 -0
  239. package/ai/skills/stacks-marketing-community-marketing/NOTICE.md +13 -0
  240. package/ai/skills/stacks-marketing-community-marketing/PLAYBOOK.md +171 -0
  241. package/ai/skills/stacks-marketing-community-marketing/SKILL.md +30 -0
  242. package/ai/skills/stacks-marketing-community-marketing/evals/evals.json +103 -0
  243. package/ai/skills/stacks-marketing-community-marketing/references/community-models.md +63 -0
  244. package/ai/skills/stacks-marketing-competitor-profiling/LICENSE +21 -0
  245. package/ai/skills/stacks-marketing-competitor-profiling/NOTICE.md +13 -0
  246. package/ai/skills/stacks-marketing-competitor-profiling/PLAYBOOK.md +436 -0
  247. package/ai/skills/stacks-marketing-competitor-profiling/SKILL.md +30 -0
  248. package/ai/skills/stacks-marketing-competitor-profiling/evals/evals.json +97 -0
  249. package/ai/skills/stacks-marketing-competitor-profiling/references/templates.md +167 -0
  250. package/ai/skills/stacks-marketing-competitor-profiling/references/tool-reference.md +314 -0
  251. package/ai/skills/stacks-marketing-competitors/LICENSE +21 -0
  252. package/ai/skills/stacks-marketing-competitors/NOTICE.md +13 -0
  253. package/ai/skills/stacks-marketing-competitors/PLAYBOOK.md +283 -0
  254. package/ai/skills/stacks-marketing-competitors/SKILL.md +30 -0
  255. package/ai/skills/stacks-marketing-competitors/evals/evals.json +119 -0
  256. package/ai/skills/stacks-marketing-competitors/references/content-architecture.md +277 -0
  257. package/ai/skills/stacks-marketing-competitors/references/templates.md +226 -0
  258. package/ai/skills/stacks-marketing-content-strategy/LICENSE +21 -0
  259. package/ai/skills/stacks-marketing-content-strategy/NOTICE.md +13 -0
  260. package/ai/skills/stacks-marketing-content-strategy/PLAYBOOK.md +437 -0
  261. package/ai/skills/stacks-marketing-content-strategy/SKILL.md +30 -0
  262. package/ai/skills/stacks-marketing-content-strategy/evals/evals.json +116 -0
  263. package/ai/skills/stacks-marketing-content-strategy/references/content-distribution.md +83 -0
  264. package/ai/skills/stacks-marketing-content-strategy/references/headless-cms.md +194 -0
  265. package/ai/skills/stacks-marketing-copy-editing/LICENSE +21 -0
  266. package/ai/skills/stacks-marketing-copy-editing/NOTICE.md +13 -0
  267. package/ai/skills/stacks-marketing-copy-editing/PLAYBOOK.md +485 -0
  268. package/ai/skills/stacks-marketing-copy-editing/SKILL.md +30 -0
  269. package/ai/skills/stacks-marketing-copy-editing/evals/evals.json +117 -0
  270. package/ai/skills/stacks-marketing-copy-editing/references/checklist.md +77 -0
  271. package/ai/skills/stacks-marketing-copy-editing/references/content-refresh.md +71 -0
  272. package/ai/skills/stacks-marketing-copy-editing/references/plain-english-alternatives.md +394 -0
  273. package/ai/skills/stacks-marketing-copywriting/LICENSE +21 -0
  274. package/ai/skills/stacks-marketing-copywriting/NOTICE.md +13 -0
  275. package/ai/skills/stacks-marketing-copywriting/PLAYBOOK.md +282 -0
  276. package/ai/skills/stacks-marketing-copywriting/SKILL.md +30 -0
  277. package/ai/skills/stacks-marketing-copywriting/evals/evals.json +140 -0
  278. package/ai/skills/stacks-marketing-copywriting/references/ai-tells.md +261 -0
  279. package/ai/skills/stacks-marketing-copywriting/references/copy-frameworks.md +432 -0
  280. package/ai/skills/stacks-marketing-copywriting/references/natural-transitions.md +256 -0
  281. package/ai/skills/stacks-marketing-council/LICENSE +21 -0
  282. package/ai/skills/stacks-marketing-council/NOTICE.md +13 -0
  283. package/ai/skills/stacks-marketing-council/PLAYBOOK.md +157 -0
  284. package/ai/skills/stacks-marketing-council/SKILL.md +30 -0
  285. package/ai/skills/stacks-marketing-council/evals/evals.json +70 -0
  286. package/ai/skills/stacks-marketing-council/references/advisor-template.md +51 -0
  287. package/ai/skills/stacks-marketing-council/references/advisors/alex-hormozi.md +43 -0
  288. package/ai/skills/stacks-marketing-council/references/advisors/ann-handley.md +43 -0
  289. package/ai/skills/stacks-marketing-council/references/advisors/april-dunford.md +41 -0
  290. package/ai/skills/stacks-marketing-council/references/advisors/byron-sharp.md +43 -0
  291. package/ai/skills/stacks-marketing-council/references/advisors/claude-hopkins.md +42 -0
  292. package/ai/skills/stacks-marketing-council/references/advisors/david-ogilvy.md +42 -0
  293. package/ai/skills/stacks-marketing-council/references/advisors/eugene-schwartz.md +42 -0
  294. package/ai/skills/stacks-marketing-council/references/advisors/gary-halbert.md +43 -0
  295. package/ai/skills/stacks-marketing-council/references/advisors/gary-vaynerchuk.md +43 -0
  296. package/ai/skills/stacks-marketing-council/references/advisors/rory-sutherland.md +42 -0
  297. package/ai/skills/stacks-marketing-council/references/advisors/russell-brunson.md +43 -0
  298. package/ai/skills/stacks-marketing-council/references/advisors/seth-godin.md +43 -0
  299. package/ai/skills/stacks-marketing-cro/LICENSE +21 -0
  300. package/ai/skills/stacks-marketing-cro/NOTICE.md +13 -0
  301. package/ai/skills/stacks-marketing-cro/PLAYBOOK.md +194 -0
  302. package/ai/skills/stacks-marketing-cro/SKILL.md +30 -0
  303. package/ai/skills/stacks-marketing-cro/evals/evals.json +111 -0
  304. package/ai/skills/stacks-marketing-cro/references/experiments.md +248 -0
  305. package/ai/skills/stacks-marketing-cro/references/form.md +422 -0
  306. package/ai/skills/stacks-marketing-customer-research/LICENSE +21 -0
  307. package/ai/skills/stacks-marketing-customer-research/NOTICE.md +13 -0
  308. package/ai/skills/stacks-marketing-customer-research/PLAYBOOK.md +304 -0
  309. package/ai/skills/stacks-marketing-customer-research/SKILL.md +30 -0
  310. package/ai/skills/stacks-marketing-customer-research/evals/evals.json +176 -0
  311. package/ai/skills/stacks-marketing-customer-research/references/interviews-and-surveys.md +155 -0
  312. package/ai/skills/stacks-marketing-customer-research/references/source-guides.md +401 -0
  313. package/ai/skills/stacks-marketing-directory-submissions/LICENSE +21 -0
  314. package/ai/skills/stacks-marketing-directory-submissions/NOTICE.md +13 -0
  315. package/ai/skills/stacks-marketing-directory-submissions/PLAYBOOK.md +397 -0
  316. package/ai/skills/stacks-marketing-directory-submissions/SKILL.md +30 -0
  317. package/ai/skills/stacks-marketing-directory-submissions/evals/evals.json +121 -0
  318. package/ai/skills/stacks-marketing-directory-submissions/references/directory-list.md +545 -0
  319. package/ai/skills/stacks-marketing-directory-submissions/references/positioning-variations.md +232 -0
  320. package/ai/skills/stacks-marketing-directory-submissions/references/submission-tracker-template.csv +272 -0
  321. package/ai/skills/stacks-marketing-emails/LICENSE +21 -0
  322. package/ai/skills/stacks-marketing-emails/NOTICE.md +13 -0
  323. package/ai/skills/stacks-marketing-emails/PLAYBOOK.md +336 -0
  324. package/ai/skills/stacks-marketing-emails/SKILL.md +30 -0
  325. package/ai/skills/stacks-marketing-emails/evals/evals.json +105 -0
  326. package/ai/skills/stacks-marketing-emails/references/copy-guidelines.md +113 -0
  327. package/ai/skills/stacks-marketing-emails/references/email-types.md +515 -0
  328. package/ai/skills/stacks-marketing-emails/references/sequence-templates.md +168 -0
  329. package/ai/skills/stacks-marketing-events/LICENSE +21 -0
  330. package/ai/skills/stacks-marketing-events/NOTICE.md +13 -0
  331. package/ai/skills/stacks-marketing-events/PLAYBOOK.md +127 -0
  332. package/ai/skills/stacks-marketing-events/SKILL.md +30 -0
  333. package/ai/skills/stacks-marketing-events/evals/evals.json +92 -0
  334. package/ai/skills/stacks-marketing-events/references/event-portfolio-strategy.md +80 -0
  335. package/ai/skills/stacks-marketing-events/references/speaking.md +49 -0
  336. package/ai/skills/stacks-marketing-events/references/sponsorship-roi.md +57 -0
  337. package/ai/skills/stacks-marketing-events/references/webinar-funnel.md +88 -0
  338. package/ai/skills/stacks-marketing-free-tools/LICENSE +21 -0
  339. package/ai/skills/stacks-marketing-free-tools/NOTICE.md +13 -0
  340. package/ai/skills/stacks-marketing-free-tools/PLAYBOOK.md +186 -0
  341. package/ai/skills/stacks-marketing-free-tools/SKILL.md +30 -0
  342. package/ai/skills/stacks-marketing-free-tools/evals/evals.json +103 -0
  343. package/ai/skills/stacks-marketing-free-tools/references/tool-benchmarks.md +35 -0
  344. package/ai/skills/stacks-marketing-free-tools/references/tool-types.md +217 -0
  345. package/ai/skills/stacks-marketing-ideas/LICENSE +21 -0
  346. package/ai/skills/stacks-marketing-ideas/NOTICE.md +13 -0
  347. package/ai/skills/stacks-marketing-ideas/PLAYBOOK.md +167 -0
  348. package/ai/skills/stacks-marketing-ideas/SKILL.md +30 -0
  349. package/ai/skills/stacks-marketing-ideas/evals/evals.json +105 -0
  350. package/ai/skills/stacks-marketing-ideas/references/guerrilla-marketing.md +56 -0
  351. package/ai/skills/stacks-marketing-ideas/references/ideas-by-category.md +366 -0
  352. package/ai/skills/stacks-marketing-image/LICENSE +21 -0
  353. package/ai/skills/stacks-marketing-image/NOTICE.md +13 -0
  354. package/ai/skills/stacks-marketing-image/PLAYBOOK.md +336 -0
  355. package/ai/skills/stacks-marketing-image/SKILL.md +30 -0
  356. package/ai/skills/stacks-marketing-image/evals/evals.json +89 -0
  357. package/ai/skills/stacks-marketing-image/references/ai-image-prompting.md +229 -0
  358. package/ai/skills/stacks-marketing-influencer-marketing/LICENSE +21 -0
  359. package/ai/skills/stacks-marketing-influencer-marketing/NOTICE.md +13 -0
  360. package/ai/skills/stacks-marketing-influencer-marketing/PLAYBOOK.md +198 -0
  361. package/ai/skills/stacks-marketing-influencer-marketing/SKILL.md +30 -0
  362. package/ai/skills/stacks-marketing-influencer-marketing/evals/evals.json +89 -0
  363. package/ai/skills/stacks-marketing-influencer-marketing/references/ugc-creator-program.md +91 -0
  364. package/ai/skills/stacks-marketing-launch/LICENSE +21 -0
  365. package/ai/skills/stacks-marketing-launch/NOTICE.md +13 -0
  366. package/ai/skills/stacks-marketing-launch/PLAYBOOK.md +381 -0
  367. package/ai/skills/stacks-marketing-launch/SKILL.md +30 -0
  368. package/ai/skills/stacks-marketing-launch/evals/evals.json +135 -0
  369. package/ai/skills/stacks-marketing-launch/references/shipped-changes.md +84 -0
  370. package/ai/skills/stacks-marketing-launch/references/site-launch-qa.md +57 -0
  371. package/ai/skills/stacks-marketing-lead-magnets/LICENSE +21 -0
  372. package/ai/skills/stacks-marketing-lead-magnets/NOTICE.md +13 -0
  373. package/ai/skills/stacks-marketing-lead-magnets/PLAYBOOK.md +308 -0
  374. package/ai/skills/stacks-marketing-lead-magnets/SKILL.md +30 -0
  375. package/ai/skills/stacks-marketing-lead-magnets/evals/evals.json +105 -0
  376. package/ai/skills/stacks-marketing-lead-magnets/references/benchmarks.md +129 -0
  377. package/ai/skills/stacks-marketing-lead-magnets/references/content-to-skill-corpus-design.md +89 -0
  378. package/ai/skills/stacks-marketing-lead-magnets/references/content-to-skill-release.md +71 -0
  379. package/ai/skills/stacks-marketing-lead-magnets/references/content-to-skill.md +109 -0
  380. package/ai/skills/stacks-marketing-lead-magnets/references/format-guide.md +196 -0
  381. package/ai/skills/stacks-marketing-loops/LICENSE +21 -0
  382. package/ai/skills/stacks-marketing-loops/NOTICE.md +13 -0
  383. package/ai/skills/stacks-marketing-loops/PLAYBOOK.md +111 -0
  384. package/ai/skills/stacks-marketing-loops/SKILL.md +30 -0
  385. package/ai/skills/stacks-marketing-loops/evals/evals.json +133 -0
  386. package/ai/skills/stacks-marketing-loops/references/loop-catalog.md +796 -0
  387. package/ai/skills/stacks-marketing-loops/references/loop-guardrails.md +73 -0
  388. package/ai/skills/stacks-marketing-loops/references/loop-orchestration.md +71 -0
  389. package/ai/skills/stacks-marketing-loops/references/loop-state.md +67 -0
  390. package/ai/skills/stacks-marketing-loops/references/loop-template.md +79 -0
  391. package/ai/skills/stacks-marketing-loops/references/outbound-operator.md +86 -0
  392. package/ai/skills/stacks-marketing-loops/references/seo-operator.md +110 -0
  393. package/ai/skills/stacks-marketing-offers/LICENSE +21 -0
  394. package/ai/skills/stacks-marketing-offers/NOTICE.md +13 -0
  395. package/ai/skills/stacks-marketing-offers/PLAYBOOK.md +151 -0
  396. package/ai/skills/stacks-marketing-offers/SKILL.md +30 -0
  397. package/ai/skills/stacks-marketing-offers/evals/evals.json +21 -0
  398. package/ai/skills/stacks-marketing-offers/references/bonus-stacking.md +150 -0
  399. package/ai/skills/stacks-marketing-offers/references/examples.md +215 -0
  400. package/ai/skills/stacks-marketing-offers/references/guarantee-design.md +172 -0
  401. package/ai/skills/stacks-marketing-offers/references/offer-anatomy.md +203 -0
  402. package/ai/skills/stacks-marketing-offers/references/offer-formats.md +240 -0
  403. package/ai/skills/stacks-marketing-offers/references/saas-offers.md +116 -0
  404. package/ai/skills/stacks-marketing-offers/references/scarcity-urgency.md +175 -0
  405. package/ai/skills/stacks-marketing-offers/references/value-equation.md +134 -0
  406. package/ai/skills/stacks-marketing-onboarding/LICENSE +21 -0
  407. package/ai/skills/stacks-marketing-onboarding/NOTICE.md +13 -0
  408. package/ai/skills/stacks-marketing-onboarding/PLAYBOOK.md +257 -0
  409. package/ai/skills/stacks-marketing-onboarding/SKILL.md +30 -0
  410. package/ai/skills/stacks-marketing-onboarding/evals/evals.json +108 -0
  411. package/ai/skills/stacks-marketing-onboarding/references/activation-models.md +57 -0
  412. package/ai/skills/stacks-marketing-onboarding/references/experiments.md +258 -0
  413. package/ai/skills/stacks-marketing-onboarding/references/minimum-path-to-value.md +49 -0
  414. package/ai/skills/stacks-marketing-paywalls/LICENSE +21 -0
  415. package/ai/skills/stacks-marketing-paywalls/NOTICE.md +13 -0
  416. package/ai/skills/stacks-marketing-paywalls/PLAYBOOK.md +223 -0
  417. package/ai/skills/stacks-marketing-paywalls/SKILL.md +30 -0
  418. package/ai/skills/stacks-marketing-paywalls/evals/evals.json +93 -0
  419. package/ai/skills/stacks-marketing-paywalls/references/experiments.md +164 -0
  420. package/ai/skills/stacks-marketing-plan/LICENSE +21 -0
  421. package/ai/skills/stacks-marketing-plan/NOTICE.md +13 -0
  422. package/ai/skills/stacks-marketing-plan/PLAYBOOK.md +300 -0
  423. package/ai/skills/stacks-marketing-plan/SKILL.md +30 -0
  424. package/ai/skills/stacks-marketing-plan/evals/evals.json +140 -0
  425. package/ai/skills/stacks-marketing-plan/references/aarrr-framework.md +180 -0
  426. package/ai/skills/stacks-marketing-plan/references/budget-planning.md +177 -0
  427. package/ai/skills/stacks-marketing-plan/references/client-types.md +373 -0
  428. package/ai/skills/stacks-marketing-plan/references/current-state-rubric.md +255 -0
  429. package/ai/skills/stacks-marketing-plan/references/example-quietude.md +972 -0
  430. package/ai/skills/stacks-marketing-plan/references/funding-stage-unlocks.md +230 -0
  431. package/ai/skills/stacks-marketing-plan/references/growth-patterns.md +190 -0
  432. package/ai/skills/stacks-marketing-plan/references/idea-cross-reference.md +265 -0
  433. package/ai/skills/stacks-marketing-plan/references/market-sizing.md +166 -0
  434. package/ai/skills/stacks-marketing-plan/references/measurement-framework.md +213 -0
  435. package/ai/skills/stacks-marketing-plan/references/methodology.md +365 -0
  436. package/ai/skills/stacks-marketing-plan/references/ops-stack-mapping.md +197 -0
  437. package/ai/skills/stacks-marketing-plan/references/plan-template.md +494 -0
  438. package/ai/skills/stacks-marketing-plan/references/team-and-agency-model.md +278 -0
  439. package/ai/skills/stacks-marketing-popups/LICENSE +21 -0
  440. package/ai/skills/stacks-marketing-popups/NOTICE.md +13 -0
  441. package/ai/skills/stacks-marketing-popups/PLAYBOOK.md +450 -0
  442. package/ai/skills/stacks-marketing-popups/SKILL.md +30 -0
  443. package/ai/skills/stacks-marketing-popups/evals/evals.json +94 -0
  444. package/ai/skills/stacks-marketing-pricing/LICENSE +21 -0
  445. package/ai/skills/stacks-marketing-pricing/NOTICE.md +13 -0
  446. package/ai/skills/stacks-marketing-pricing/PLAYBOOK.md +291 -0
  447. package/ai/skills/stacks-marketing-pricing/SKILL.md +30 -0
  448. package/ai/skills/stacks-marketing-pricing/evals/evals.json +131 -0
  449. package/ai/skills/stacks-marketing-pricing/references/pricing-models.md +66 -0
  450. package/ai/skills/stacks-marketing-pricing/references/pricing-page-teardown.md +87 -0
  451. package/ai/skills/stacks-marketing-pricing/references/research-methods.md +156 -0
  452. package/ai/skills/stacks-marketing-pricing/references/tier-structure.md +232 -0
  453. package/ai/skills/stacks-marketing-product-marketing/LICENSE +21 -0
  454. package/ai/skills/stacks-marketing-product-marketing/NOTICE.md +13 -0
  455. package/ai/skills/stacks-marketing-product-marketing/PLAYBOOK.md +255 -0
  456. package/ai/skills/stacks-marketing-product-marketing/SKILL.md +30 -0
  457. package/ai/skills/stacks-marketing-product-marketing/evals/evals.json +98 -0
  458. package/ai/skills/stacks-marketing-programmatic-seo/LICENSE +21 -0
  459. package/ai/skills/stacks-marketing-programmatic-seo/NOTICE.md +13 -0
  460. package/ai/skills/stacks-marketing-programmatic-seo/PLAYBOOK.md +238 -0
  461. package/ai/skills/stacks-marketing-programmatic-seo/SKILL.md +30 -0
  462. package/ai/skills/stacks-marketing-programmatic-seo/evals/evals.json +107 -0
  463. package/ai/skills/stacks-marketing-programmatic-seo/references/implementation-platforms.md +41 -0
  464. package/ai/skills/stacks-marketing-programmatic-seo/references/playbooks.md +308 -0
  465. package/ai/skills/stacks-marketing-prospecting/LICENSE +21 -0
  466. package/ai/skills/stacks-marketing-prospecting/NOTICE.md +13 -0
  467. package/ai/skills/stacks-marketing-prospecting/PLAYBOOK.md +273 -0
  468. package/ai/skills/stacks-marketing-prospecting/SKILL.md +30 -0
  469. package/ai/skills/stacks-marketing-prospecting/evals/evals.json +163 -0
  470. package/ai/skills/stacks-marketing-prospecting/references/account-research.md +59 -0
  471. package/ai/skills/stacks-marketing-prospecting/references/b2b-prospecting.md +106 -0
  472. package/ai/skills/stacks-marketing-prospecting/references/compliance.md +161 -0
  473. package/ai/skills/stacks-marketing-prospecting/references/data-sources.md +300 -0
  474. package/ai/skills/stacks-marketing-prospecting/references/demand-signals.md +131 -0
  475. package/ai/skills/stacks-marketing-prospecting/references/enrichment-playbook.md +61 -0
  476. package/ai/skills/stacks-marketing-prospecting/references/local-prospecting.md +165 -0
  477. package/ai/skills/stacks-marketing-prospecting/references/saas-prospecting.md +123 -0
  478. package/ai/skills/stacks-marketing-prospecting/references/signal-plays.md +99 -0
  479. package/ai/skills/stacks-marketing-prospecting/references/sourcing-and-enrichment.md +89 -0
  480. package/ai/skills/stacks-marketing-psychology/LICENSE +21 -0
  481. package/ai/skills/stacks-marketing-psychology/NOTICE.md +13 -0
  482. package/ai/skills/stacks-marketing-psychology/PLAYBOOK.md +451 -0
  483. package/ai/skills/stacks-marketing-psychology/SKILL.md +30 -0
  484. package/ai/skills/stacks-marketing-psychology/evals/evals.json +88 -0
  485. package/ai/skills/stacks-marketing-public-relations/LICENSE +21 -0
  486. package/ai/skills/stacks-marketing-public-relations/NOTICE.md +13 -0
  487. package/ai/skills/stacks-marketing-public-relations/PLAYBOOK.md +150 -0
  488. package/ai/skills/stacks-marketing-public-relations/SKILL.md +30 -0
  489. package/ai/skills/stacks-marketing-public-relations/evals/evals.json +36 -0
  490. package/ai/skills/stacks-marketing-public-relations/references/crisis-communications.md +113 -0
  491. package/ai/skills/stacks-marketing-public-relations/references/journalist-pitching.md +368 -0
  492. package/ai/skills/stacks-marketing-public-relations/references/media-outlets.md +207 -0
  493. package/ai/skills/stacks-marketing-public-relations/references/newsjacking.md +220 -0
  494. package/ai/skills/stacks-marketing-public-relations/references/podcast-guest-prep.md +60 -0
  495. package/ai/skills/stacks-marketing-public-relations/references/press-platforms.md +188 -0
  496. package/ai/skills/stacks-marketing-public-relations/references/statement-templates.md +145 -0
  497. package/ai/skills/stacks-marketing-public-relations/references/story-angles.md +87 -0
  498. package/ai/skills/stacks-marketing-referrals/LICENSE +21 -0
  499. package/ai/skills/stacks-marketing-referrals/NOTICE.md +13 -0
  500. package/ai/skills/stacks-marketing-referrals/PLAYBOOK.md +279 -0
  501. package/ai/skills/stacks-marketing-referrals/SKILL.md +30 -0
  502. package/ai/skills/stacks-marketing-referrals/evals/evals.json +202 -0
  503. package/ai/skills/stacks-marketing-referrals/references/affiliate-operations.md +64 -0
  504. package/ai/skills/stacks-marketing-referrals/references/affiliate-programs.md +167 -0
  505. package/ai/skills/stacks-marketing-referrals/references/program-examples.md +151 -0
  506. package/ai/skills/stacks-marketing-referrals/references/review-platform-rules.md +36 -0
  507. package/ai/skills/stacks-marketing-referrals/references/review-program-operations.md +62 -0
  508. package/ai/skills/stacks-marketing-referrals/references/review-programs.md +96 -0
  509. package/ai/skills/stacks-marketing-referrals/references/viral-mechanisms.md +102 -0
  510. package/ai/skills/stacks-marketing-revops/LICENSE +21 -0
  511. package/ai/skills/stacks-marketing-revops/NOTICE.md +13 -0
  512. package/ai/skills/stacks-marketing-revops/PLAYBOOK.md +345 -0
  513. package/ai/skills/stacks-marketing-revops/SKILL.md +30 -0
  514. package/ai/skills/stacks-marketing-revops/evals/evals.json +104 -0
  515. package/ai/skills/stacks-marketing-revops/references/automation-playbooks.md +290 -0
  516. package/ai/skills/stacks-marketing-revops/references/inbound-routing.md +43 -0
  517. package/ai/skills/stacks-marketing-revops/references/lifecycle-definitions.md +309 -0
  518. package/ai/skills/stacks-marketing-revops/references/routing-rules.md +203 -0
  519. package/ai/skills/stacks-marketing-revops/references/scoring-models.md +247 -0
  520. package/ai/skills/stacks-marketing-sales-enablement/LICENSE +21 -0
  521. package/ai/skills/stacks-marketing-sales-enablement/NOTICE.md +13 -0
  522. package/ai/skills/stacks-marketing-sales-enablement/PLAYBOOK.md +423 -0
  523. package/ai/skills/stacks-marketing-sales-enablement/SKILL.md +30 -0
  524. package/ai/skills/stacks-marketing-sales-enablement/evals/evals.json +153 -0
  525. package/ai/skills/stacks-marketing-sales-enablement/references/cold-call-scripts.md +68 -0
  526. package/ai/skills/stacks-marketing-sales-enablement/references/deck-frameworks.md +263 -0
  527. package/ai/skills/stacks-marketing-sales-enablement/references/demo-scripts.md +355 -0
  528. package/ai/skills/stacks-marketing-sales-enablement/references/objection-library.md +270 -0
  529. package/ai/skills/stacks-marketing-sales-enablement/references/one-pager-templates.md +208 -0
  530. package/ai/skills/stacks-marketing-sales-enablement/references/win-loss-analysis.md +72 -0
  531. package/ai/skills/stacks-marketing-schema/LICENSE +21 -0
  532. package/ai/skills/stacks-marketing-schema/NOTICE.md +13 -0
  533. package/ai/skills/stacks-marketing-schema/PLAYBOOK.md +187 -0
  534. package/ai/skills/stacks-marketing-schema/SKILL.md +30 -0
  535. package/ai/skills/stacks-marketing-schema/evals/evals.json +127 -0
  536. package/ai/skills/stacks-marketing-schema/references/schema-examples.md +392 -0
  537. package/ai/skills/stacks-marketing-seo-audit/LICENSE +21 -0
  538. package/ai/skills/stacks-marketing-seo-audit/NOTICE.md +13 -0
  539. package/ai/skills/stacks-marketing-seo-audit/PLAYBOOK.md +492 -0
  540. package/ai/skills/stacks-marketing-seo-audit/SKILL.md +30 -0
  541. package/ai/skills/stacks-marketing-seo-audit/evals/evals.json +204 -0
  542. package/ai/skills/stacks-marketing-seo-audit/references/ai-writing-detection.md +200 -0
  543. package/ai/skills/stacks-marketing-seo-audit/references/international-seo.md +228 -0
  544. package/ai/skills/stacks-marketing-seo-audit/references/local-seo-pages-and-measurement.md +39 -0
  545. package/ai/skills/stacks-marketing-seo-audit/references/local-seo-profile-and-citations.md +41 -0
  546. package/ai/skills/stacks-marketing-seo-audit/references/local-seo.md +86 -0
  547. package/ai/skills/stacks-marketing-seo-audit/references/rankings-push.md +62 -0
  548. package/ai/skills/stacks-marketing-seo-audit/references/title-tags.md +89 -0
  549. package/ai/skills/stacks-marketing-signup/LICENSE +21 -0
  550. package/ai/skills/stacks-marketing-signup/NOTICE.md +13 -0
  551. package/ai/skills/stacks-marketing-signup/PLAYBOOK.md +359 -0
  552. package/ai/skills/stacks-marketing-signup/SKILL.md +30 -0
  553. package/ai/skills/stacks-marketing-signup/evals/evals.json +88 -0
  554. package/ai/skills/stacks-marketing-site-architecture/LICENSE +21 -0
  555. package/ai/skills/stacks-marketing-site-architecture/NOTICE.md +13 -0
  556. package/ai/skills/stacks-marketing-site-architecture/PLAYBOOK.md +355 -0
  557. package/ai/skills/stacks-marketing-site-architecture/SKILL.md +30 -0
  558. package/ai/skills/stacks-marketing-site-architecture/evals/evals.json +113 -0
  559. package/ai/skills/stacks-marketing-site-architecture/references/mermaid-templates.md +216 -0
  560. package/ai/skills/stacks-marketing-site-architecture/references/navigation-patterns.md +305 -0
  561. package/ai/skills/stacks-marketing-site-architecture/references/platforms-and-migration.md +86 -0
  562. package/ai/skills/stacks-marketing-site-architecture/references/site-type-templates.md +293 -0
  563. package/ai/skills/stacks-marketing-sms/LICENSE +21 -0
  564. package/ai/skills/stacks-marketing-sms/NOTICE.md +13 -0
  565. package/ai/skills/stacks-marketing-sms/PLAYBOOK.md +348 -0
  566. package/ai/skills/stacks-marketing-sms/SKILL.md +30 -0
  567. package/ai/skills/stacks-marketing-sms/evals/evals.json +118 -0
  568. package/ai/skills/stacks-marketing-sms/references/compliance.md +202 -0
  569. package/ai/skills/stacks-marketing-sms/references/platforms.md +318 -0
  570. package/ai/skills/stacks-marketing-sms/references/sequence-templates.md +282 -0
  571. package/ai/skills/stacks-marketing-sms/references/whatsapp.md +260 -0
  572. package/ai/skills/stacks-marketing-social/LICENSE +21 -0
  573. package/ai/skills/stacks-marketing-social/NOTICE.md +13 -0
  574. package/ai/skills/stacks-marketing-social/PLAYBOOK.md +452 -0
  575. package/ai/skills/stacks-marketing-social/SKILL.md +30 -0
  576. package/ai/skills/stacks-marketing-social/evals/evals.json +150 -0
  577. package/ai/skills/stacks-marketing-social/references/carousel-frameworks.md +141 -0
  578. package/ai/skills/stacks-marketing-social/references/listening-sources-template.md +123 -0
  579. package/ai/skills/stacks-marketing-social/references/listening.md +288 -0
  580. package/ai/skills/stacks-marketing-social/references/platform-limits.md +110 -0
  581. package/ai/skills/stacks-marketing-social/references/platforms.md +176 -0
  582. package/ai/skills/stacks-marketing-social/references/post-templates.md +179 -0
  583. package/ai/skills/stacks-marketing-social/references/reverse-engineering.md +195 -0
  584. package/ai/skills/stacks-marketing-social/references/short-form-video.md +237 -0
  585. package/ai/skills/stacks-marketing-social/references/x-algorithm.md +69 -0
  586. package/ai/skills/stacks-marketing-video/LICENSE +21 -0
  587. package/ai/skills/stacks-marketing-video/NOTICE.md +13 -0
  588. package/ai/skills/stacks-marketing-video/PLAYBOOK.md +330 -0
  589. package/ai/skills/stacks-marketing-video/SKILL.md +30 -0
  590. package/ai/skills/stacks-marketing-video/evals/evals.json +118 -0
  591. package/ai/skills/stacks-marketing-video/references/ai-video-prompting.md +175 -0
  592. package/ai/skills/stacks-marketing-video/references/edit-anatomy.md +86 -0
  593. package/ai/skills/stacks-marketing-video/references/product-demo-recording.md +176 -0
  594. package/ai/skills/stacks-middleware/SKILL.md +37 -21
  595. package/ai/skills/stacks-migrations/SKILL.md +29 -5
  596. package/ai/skills/stacks-mobile/SKILL.md +25 -4
  597. package/ai/skills/stacks-models/SKILL.md +35 -15
  598. package/ai/skills/stacks-models/references/model-capabilities.md +104 -0
  599. package/ai/skills/stacks-native/CAPABILITIES.md +536 -0
  600. package/ai/skills/stacks-native/CATALOG.md +930 -0
  601. package/ai/skills/stacks-native/RECIPES.md +108 -0
  602. package/ai/skills/stacks-native/SKILL.md +79 -0
  603. package/ai/skills/stacks-newsletter/SKILL.md +39 -0
  604. package/ai/skills/stacks-notifications/SKILL.md +118 -203
  605. package/ai/skills/stacks-objects/SKILL.md +18 -4
  606. package/ai/skills/stacks-orm/SKILL.md +112 -328
  607. package/ai/skills/stacks-pagination/SKILL.md +40 -0
  608. package/ai/skills/stacks-path/SKILL.md +38 -18
  609. package/ai/skills/stacks-payments/SKILL.md +9 -1
  610. package/ai/skills/stacks-pr/CREDITS.md +3 -0
  611. package/ai/skills/stacks-pr/LICENSE +21 -0
  612. package/ai/skills/stacks-pr/NOTICE.md +10 -0
  613. package/ai/skills/stacks-pr/PLAYBOOK.md +127 -0
  614. package/ai/skills/stacks-pr/SKILL.md +23 -0
  615. package/ai/skills/stacks-prototype/LICENSE +21 -0
  616. package/ai/skills/stacks-prototype/NOTICE.md +10 -0
  617. package/ai/skills/stacks-prototype/SKILL.md +6 -0
  618. package/ai/skills/stacks-push/SKILL.md +20 -0
  619. package/ai/skills/stacks-query-builder/SKILL.md +21 -5
  620. package/ai/skills/stacks-queue/DURABLE-WORKFLOWS.md +121 -0
  621. package/ai/skills/stacks-queue/SKILL.md +37 -6
  622. package/ai/skills/stacks-realtime/SKILL.md +29 -140
  623. package/ai/skills/stacks-redesign/SKILL.md +1 -1
  624. package/ai/skills/stacks-registry/SKILL.md +20 -48
  625. package/ai/skills/stacks-repl/SKILL.md +31 -7
  626. package/ai/skills/stacks-research/LICENSE +21 -0
  627. package/ai/skills/stacks-research/NOTICE.md +10 -0
  628. package/ai/skills/stacks-research/PLAYBOOK.md +10 -0
  629. package/ai/skills/stacks-research/SKILL.md +23 -0
  630. package/ai/skills/stacks-retro/LICENSE +21 -0
  631. package/ai/skills/stacks-retro/NOTICE.md +10 -0
  632. package/ai/skills/stacks-retro/SKILL.md +10 -0
  633. package/ai/skills/stacks-review/LICENSE +21 -0
  634. package/ai/skills/stacks-review/NOTICE.md +10 -0
  635. package/ai/skills/stacks-review/SKILL.md +15 -0
  636. package/ai/skills/stacks-router/SKILL.md +33 -2
  637. package/ai/skills/stacks-routes/SKILL.md +25 -2
  638. package/ai/skills/stacks-scaffold-exercises/LICENSE +21 -0
  639. package/ai/skills/stacks-scaffold-exercises/NOTICE.md +10 -0
  640. package/ai/skills/stacks-scaffold-exercises/PLAYBOOK.md +106 -0
  641. package/ai/skills/stacks-scaffold-exercises/SKILL.md +23 -0
  642. package/ai/skills/stacks-scaffolding/SKILL.md +27 -11
  643. package/ai/skills/stacks-scheduler/SKILL.md +52 -25
  644. package/ai/skills/stacks-search-engine/SKILL.md +28 -7
  645. package/ai/skills/stacks-security/SKILL.md +22 -6
  646. package/ai/skills/stacks-server/SKILL.md +47 -85
  647. package/ai/skills/stacks-setup-deep-modules/LICENSE +21 -0
  648. package/ai/skills/stacks-setup-deep-modules/NOTICE.md +10 -0
  649. package/ai/skills/stacks-setup-deep-modules/SKILL.md +55 -0
  650. package/ai/skills/stacks-setup-engineering/LICENSE +21 -0
  651. package/ai/skills/stacks-setup-engineering/NOTICE.md +10 -0
  652. package/ai/skills/stacks-setup-engineering/PLAYBOOK.md +115 -0
  653. package/ai/skills/stacks-setup-engineering/SKILL.md +24 -0
  654. package/ai/skills/stacks-setup-engineering/domain.md +51 -0
  655. package/ai/skills/stacks-setup-engineering/issue-tracker-github.md +46 -0
  656. package/ai/skills/stacks-setup-engineering/issue-tracker-gitlab.md +46 -0
  657. package/ai/skills/stacks-setup-engineering/issue-tracker-local.md +30 -0
  658. package/ai/skills/stacks-setup-engineering/triage-labels.md +15 -0
  659. package/ai/skills/stacks-sites/SKILL.md +44 -0
  660. package/ai/skills/stacks-skills/SKILL.md +33 -0
  661. package/ai/skills/stacks-slug/SKILL.md +15 -12
  662. package/ai/skills/stacks-sms/SKILL.md +33 -6
  663. package/ai/skills/stacks-socials/SKILL.md +81 -294
  664. package/ai/skills/stacks-storage/SKILL.md +34 -15
  665. package/ai/skills/stacks-storage/UPLOADS-AND-DISKS.md +133 -0
  666. package/ai/skills/stacks-strings/SKILL.md +41 -35
  667. package/ai/skills/stacks-stx/SKILL.md +63 -58
  668. package/ai/skills/stacks-tdd/LICENSE +21 -0
  669. package/ai/skills/stacks-tdd/NOTICE.md +10 -0
  670. package/ai/skills/stacks-tdd/SKILL.md +10 -0
  671. package/ai/skills/stacks-tdd/mocking.md +59 -0
  672. package/ai/skills/stacks-tdd/tests.md +77 -0
  673. package/ai/skills/stacks-teach/GLOSSARY-FORMAT.md +35 -0
  674. package/ai/skills/stacks-teach/LEARNING-RECORD-FORMAT.md +46 -0
  675. package/ai/skills/stacks-teach/LICENSE +21 -0
  676. package/ai/skills/stacks-teach/MISSION-FORMAT.md +31 -0
  677. package/ai/skills/stacks-teach/NOTICE.md +10 -0
  678. package/ai/skills/stacks-teach/PLAYBOOK.md +136 -0
  679. package/ai/skills/stacks-teach/RESOURCES-FORMAT.md +32 -0
  680. package/ai/skills/stacks-teach/SKILL.md +24 -0
  681. package/ai/skills/stacks-technical-diagrams/SKILL.md +2 -2
  682. package/ai/skills/stacks-technical-diagrams/bin/diagrams +1 -1
  683. package/ai/skills/stacks-technical-diagrams/renderers/shared/bun-runtime.mjs +1 -1
  684. package/ai/skills/stacks-test-fixtures/LICENSE +21 -0
  685. package/ai/skills/stacks-test-fixtures/NOTICE.md +10 -0
  686. package/ai/skills/stacks-test-fixtures/SKILL.md +38 -0
  687. package/ai/skills/stacks-testing/SKILL.md +77 -4
  688. package/ai/skills/stacks-to-questionnaire/LICENSE +21 -0
  689. package/ai/skills/stacks-to-questionnaire/NOTICE.md +10 -0
  690. package/ai/skills/stacks-to-questionnaire/PLAYBOOK.md +51 -0
  691. package/ai/skills/stacks-to-questionnaire/SKILL.md +24 -0
  692. package/ai/skills/stacks-to-spec/LICENSE +21 -0
  693. package/ai/skills/stacks-to-spec/NOTICE.md +10 -0
  694. package/ai/skills/stacks-to-spec/PLAYBOOK.md +72 -0
  695. package/ai/skills/stacks-to-spec/SKILL.md +24 -0
  696. package/ai/skills/stacks-to-tickets/LICENSE +21 -0
  697. package/ai/skills/stacks-to-tickets/NOTICE.md +10 -0
  698. package/ai/skills/stacks-to-tickets/PLAYBOOK.md +102 -0
  699. package/ai/skills/stacks-to-tickets/SKILL.md +24 -0
  700. package/ai/skills/stacks-triage/AGENT-BRIEF.md +207 -0
  701. package/ai/skills/stacks-triage/LICENSE +21 -0
  702. package/ai/skills/stacks-triage/NOTICE.md +10 -0
  703. package/ai/skills/stacks-triage/OUT-OF-SCOPE.md +105 -0
  704. package/ai/skills/stacks-triage/PLAYBOOK.md +109 -0
  705. package/ai/skills/stacks-triage/SKILL.md +24 -0
  706. package/ai/skills/stacks-tunnel/SKILL.md +29 -19
  707. package/ai/skills/stacks-types/SKILL.md +77 -168
  708. package/ai/skills/stacks-ui/SKILL.md +66 -228
  709. package/ai/skills/stacks-unslop/NOTICE.md +25 -0
  710. package/ai/skills/stacks-unslop/SKILL.md +95 -0
  711. package/ai/skills/stacks-unslop/references/core-contract.md +88 -0
  712. package/ai/skills/stacks-unslop/references/patterns.md +110 -0
  713. package/ai/skills/stacks-unslop/references/presets.md +37 -0
  714. package/ai/skills/stacks-unslop/references/voice.md +95 -0
  715. package/ai/skills/stacks-utils/SKILL.md +45 -25
  716. package/ai/skills/stacks-validation/SKILL.md +67 -4
  717. package/ai/skills/stacks-video/SKILL.md +33 -0
  718. package/ai/skills/stacks-wait-what/LICENSE +21 -0
  719. package/ai/skills/stacks-wait-what/NOTICE.md +10 -0
  720. package/ai/skills/stacks-wait-what/PLAYBOOK.md +4 -0
  721. package/ai/skills/stacks-wait-what/SKILL.md +24 -0
  722. package/ai/skills/stacks-wayfinder/LICENSE +21 -0
  723. package/ai/skills/stacks-wayfinder/NOTICE.md +10 -0
  724. package/ai/skills/stacks-wayfinder/PLAYBOOK.md +125 -0
  725. package/ai/skills/stacks-wayfinder/SKILL.md +24 -0
  726. package/ai/skills/stacks-whois/SKILL.md +13 -3
  727. package/ai/skills/stacks-wizard/LICENSE +21 -0
  728. package/ai/skills/stacks-wizard/NOTICE.md +10 -0
  729. package/ai/skills/stacks-wizard/SKILL.md +8 -0
  730. package/ai/skills/stacks-wizard/scripts/template.sh +42 -26
  731. package/ai/skills/stacks-writing-beats/LICENSE +21 -0
  732. package/ai/skills/stacks-writing-beats/NOTICE.md +10 -0
  733. package/ai/skills/stacks-writing-beats/PLAYBOOK.md +64 -0
  734. package/ai/skills/stacks-writing-beats/SKILL.md +28 -0
  735. package/ai/skills/stacks-writing-for-agents/LICENSE +21 -0
  736. package/ai/skills/stacks-writing-for-agents/NOTICE.md +10 -0
  737. package/ai/skills/stacks-writing-for-agents/SKILL.md +7 -1
  738. package/ai/skills/stacks-writing-fragments/LICENSE +21 -0
  739. package/ai/skills/stacks-writing-fragments/NOTICE.md +10 -0
  740. package/ai/skills/stacks-writing-fragments/PLAYBOOK.md +76 -0
  741. package/ai/skills/stacks-writing-fragments/SKILL.md +28 -0
  742. package/ai/skills/stacks-writing-shape/LICENSE +21 -0
  743. package/ai/skills/stacks-writing-shape/NOTICE.md +10 -0
  744. package/ai/skills/stacks-writing-shape/PLAYBOOK.md +76 -0
  745. package/ai/skills/stacks-writing-shape/SKILL.md +28 -0
  746. package/ide/vscode/package.json +1 -1
  747. package/package.json +2 -2
  748. package/resources/components/NativeSheet.stx +7 -12
  749. /package/ai/skills/stacks-technical-diagrams/{bunfig.toml → runtime.toml} +0 -0
package/ai/AGENTS.md CHANGED
@@ -63,9 +63,22 @@ same path under `app/` and it wins.
63
63
 
64
64
  ## Skills
65
65
 
66
- The framework ships two kinds of skill under
66
+ The framework ships task-specific skills under
67
67
  `storage/framework/defaults/ai/skills`.
68
68
 
69
+ Start with `stacks-native` when implementing a feature or checking what Stacks
70
+ already provides. Its catalog maps every core package to the appropriate skill,
71
+ its recipes connect model definitions to migrations and protected CRUD, and its
72
+ driver reference records supported, partial, and experimental capabilities.
73
+
74
+ Describe schema once in `app/Models/` with `defineModel()`; use `extendModel()`
75
+ for additive changes to a built-in model. Run `./buddy generate:migrations`,
76
+ review the generated SQL and snapshot, then apply with `./buddy migrate`.
77
+ `useApi` registers CRUD at runtime. Read `stacks-models`, `stacks-migrations`,
78
+ and `stacks-router` for selection, authentication, ownership, and mount behavior.
79
+ Use `stacks-auto-imports` to distinguish browser bindings from declarations
80
+ and explicit module imports.
81
+
69
82
  **Subsystem reference**, one per area (`stacks-orm`, `stacks-router`,
70
83
  `stacks-queue`, ...), each documenting it authoritatively. Read the relevant
71
84
  `SKILL.md` before doing non-trivial work rather than guessing at an API.
@@ -85,6 +98,24 @@ The framework ships two kinds of skill under
85
98
  | A step only a human can take | `stacks-wizard` |
86
99
  | Improve the environment for next time | `stacks-retro` |
87
100
  | Write a skill or any doc an agent reads | `stacks-writing-for-agents` |
101
+ | Humanize prose with a broad editorial rewrite | `stacks-humanizer` |
102
+ | Audit AI-sounding prose, suggest minimal edits, or learn and match a voice | `stacks-unslop` |
103
+ | Persist design decisions, write a spec, and create linked tickets | `stacks-grill-with-docs`, `stacks-to-spec`, `stacks-to-tickets` |
104
+ | Implement a ticket or a spec's task graph | `stacks-implement`, `stacks-implement-spec` |
105
+ | Triage reports or resolve a large decision map | `stacks-triage`, `stacks-wayfinder` |
106
+ | Research, architecture improvements, or PR descriptions | `stacks-research`, `stacks-improve-codebase-architecture`, `stacks-pr` |
107
+ | Learn, collect writing material, or shape an article | `stacks-teach`, `stacks-writing-fragments`, `stacks-writing-shape`, `stacks-writing-beats` |
108
+ | Specify a recurring workflow or coordinate a long-running effort | `stacks-loop`, `stacks-chief-of-staff` |
109
+
110
+ **Marketing**: read `stacks-marketing`, then choose the task-specific skill from
111
+ its `CATALOG.md`. The framework bundles all 50 reviewed marketing playbooks,
112
+ including copywriting, SEO, acquisition, conversion, retention, and measurement.
113
+ They complement framework skills such as `stacks-analytics` and `stacks-email`.
114
+ Use stx and Crosswind for implementation. A draft does not authorize sending,
115
+ spending, publishing, or scheduling; existing explicit authorization carries forward.
116
+
117
+ Source revisions, hashes, native substitutes, and all 38 reviewed Matt Pocock
118
+ skill mappings live in `stacks-flow/upstream-skills.json` beside its entrypoint.
88
119
 
89
120
  Add your own with `app/Skills/<name>/SKILL.md`, then re-run `buddy setup:ai`.
90
121
  A project skill shadows a bundled one of the same name. Read
@@ -95,6 +126,10 @@ enforces and how to write a description that actually fires.
95
126
 
96
127
  ## Before finishing
97
128
 
129
+ Generated user-visible copy uses regular hyphens and ordinary sentence
130
+ punctuation. Never emit em-dashes or separator en-dashes. Preserve verbatim
131
+ source quotations; flag a punctuation conflict rather than altering a quote.
132
+
98
133
  - Lint: `./buddy lint` (fix with `./buddy lint:fix`)
99
134
  - Type check: `./buddy typecheck`
100
135
  - Test: `./buddy test`
package/ai/README.md CHANGED
@@ -38,7 +38,14 @@ reference for a task instead of guessing at an API.
38
38
  symlinks by default so skills stay in sync when you upgrade the framework. Pass
39
39
  `--copy` if you would rather edit them per project.
40
40
 
41
- ### Two kinds
41
+ ### Collections
42
+
43
+ `stacks-native` is the starting point for native implementation. Its catalog
44
+ maps every core package to a subsystem skill and source entrypoint. Its recipes
45
+ cover model-driven migrations and protected CRUD; its capability reference
46
+ records current driver evidence and limitations. The framework repository
47
+ regenerates these references with `buddy docs:native-skills` and verifies them
48
+ in CI with `buddy docs:native-skills:check`.
42
49
 
43
50
  Most bundled skills are **subsystem reference**: one per part of the framework,
44
51
  model-invoked, found by the agent from the task at hand. A smaller set are
@@ -50,6 +57,37 @@ package it touches: `stacks-flow` routes between them, and `stacks-grilling`,
50
57
  [mattpocock/skills](https://github.com/mattpocock/skills) (MIT), with credit in
51
58
  each `SKILL.md`.
52
59
 
60
+ The current Matt Pocock refresh includes specs, dependency-linked tickets,
61
+ implementation graphs, triage, wayfinding, research, PR writing, and optional
62
+ productivity workflows. All 38 upstream skills have a recorded destination or
63
+ Stacks-native substitute. Hooks stay on pickier and bun-git-hooks; imported
64
+ workflows do not commit, publish, or start schedules without authorization.
65
+
66
+ **Marketing** is a third collection: `stacks-marketing` routes over all 50
67
+ playbooks from [coreyhaines31/marketingskills](https://github.com/coreyhaines31/marketingskills).
68
+ Each keeps its supporting references, templates, and original MIT notice.
69
+ Names are distinct from runtime package skills. The shared workflow explains
70
+ product context, verified claims, Stacks implementation, and optional connectors.
71
+
72
+ `skills/stacks-flow/upstream-skills.json` records both source revisions and
73
+ every source-to-Stacks mapping. Shared engineering rules, marketing guidance,
74
+ and source manifests live inside skill directories so both symlink and `--copy`
75
+ agent setups retain them. The docs site has matching marketing, engineering,
76
+ and productivity pages plus an upstream-porting report.
77
+
78
+ The prose skills are `stacks-humanizer` for broad editorial rewrites and
79
+ `stacks-unslop` for contextual audits, minimal edits, and voice matching. They
80
+ adapt [blader/humanizer](https://github.com/blader/humanizer) and
81
+ [theclaymethod/unslop](https://github.com/theclaymethod/unslop), with attribution
82
+ and revision details in each skill's `NOTICE.md`. They require no runtime
83
+ scripts or extra dependencies.
84
+
85
+ The `@stacksjs/defaults` build includes this entire `ai/` directory. New
86
+ package-based apps and framework upgrades receive the skills through the
87
+ managed defaults sync; vendored apps carry them directly. `buddy setup:ai`
88
+ then exposes them through the existing agent setup mechanism. No remote skill
89
+ installation is needed.
90
+
53
91
  Each skill also has a page in the documentation site, under `docs/skills/`, one
54
92
  per skill with a landing page per section. `tests/unit/skills-docs-contract.test.ts`
55
93
  fails when a skill gains or loses a page, so the two cannot drift apart.
@@ -30,12 +30,12 @@ export default new Action({
30
30
  method: 'POST',
31
31
  model: Widget,
32
32
 
33
- async handle(request: RequestInstance) {
33
+ async handle(request) {
34
34
  await request.validate()
35
35
 
36
36
  const widget = await Widget.create(toSnakeCaseKeys(request.all()))
37
37
 
38
- return response.json(widget, 201)
38
+ return response.created(widget)
39
39
  },
40
40
  })
41
41
  ```
@@ -44,6 +44,59 @@ Use the `Action` class, an explicit HTTP method, and `response` helpers. Store a
44
44
  update actions should set `model` and call `request.validate()` before persisting
45
45
  input. Import framework helpers explicitly, following the default actions.
46
46
 
47
+ Let `handle(request)` infer its request type. An explicit broad annotation loses
48
+ the model or validation field types that `Action` can derive. The typed Action
49
+ contract lives in `core/actions/src/action.ts`; the execution pipeline lives in
50
+ `core/router/src/stacks-router.ts`.
51
+
52
+ ## Validation, lifecycle, and typed clients
53
+
54
+ An explicit `validations` object is inferred from its validators and runs
55
+ automatically before `authorize`, `before`, and `handle`. A `model` supplies
56
+ the rules used by an explicit `request.validate()` call; do not assume attaching
57
+ a model means every custom handler has already validated all its input.
58
+
59
+ ```ts
60
+ import { Action } from '@stacksjs/actions'
61
+ import { schema } from '@stacksjs/validation'
62
+
63
+ export default new Action({
64
+ method: 'POST',
65
+ validations: {
66
+ title: { rule: schema.string().min(1).max(120) },
67
+ },
68
+ async handle(request) {
69
+ return { title: request.get('title') }
70
+ },
71
+ })
72
+ ```
73
+
74
+ `authorize` can return true, false, or an exact Response; false short-circuits
75
+ with 403. `before` can prepare context or return a Response early. Both run
76
+ after declared validation. Directly registered actions and action strings use
77
+ the same `wrapAction` pipeline. Register an imported action with
78
+ `createTypedRouter` when its inferred request/response types should reach a
79
+ `createTypedClient`; lazy strings do not carry that response inference.
80
+
81
+ `responses`, `responseHeaders`, and `requestHeaders` enrich OpenAPI documentation.
82
+ They describe the contract and do not validate the actual response at runtime.
83
+ Test the endpoint's wire shape. `apiResponse` controls JSON formatting;
84
+ returning a raw Response owns the wire format and yields unknown client output.
85
+
86
+ `dependencies` lazily creates per-action dependencies exposed through
87
+ `this.deps`. `overrideDependencies` and `resetDependencies` let a test replace
88
+ external boundaries without module-wide mocking. They do not justify mocking
89
+ every internal collaborator or replacing a real database test with a fake.
90
+
91
+ `Precognition: true` or `?_validate=1` requests a validation-only probe.
92
+ `Precognition-Validate-Only` narrows explicit validation fields. Probes stop
93
+ before authorization/hooks/handler side effects, and do not magically run
94
+ custom `request.validate()` calls inside `handle`.
95
+
96
+ For event actions, declare `invocation: 'event'` and infer the payload from
97
+ `validations` when supplied. Event discovery calls `handle(payload, event)`;
98
+ it does not hand an HTTP Request to an event handler.
99
+
47
100
  ## Resource Action Contract
48
101
 
49
102
  Show, update, and destroy actions must distinguish malformed identifiers,
@@ -51,8 +104,9 @@ missing records, invalid input, and operational failures:
51
104
 
52
105
  1. Read resource identifiers from `request.getParam('id')`, never from the
53
106
  request body.
54
- 2. Convert the value to a number and require a safe positive integer. Return
55
- `422` when it is malformed.
107
+ 2. Validate its actual identifier contract. Numeric resource IDs require a safe
108
+ positive integer; UUIDs or string keys need their own validation. The built-in
109
+ Commerce contract returns `422` for malformed numeric IDs.
56
110
  3. Validate update input with the action model, then normalize persisted keys
57
111
  with `toSnakeCaseKeys(request.all())` when the service expects database
58
112
  column names.
@@ -71,7 +125,9 @@ copying the contract across every resource. The built-in Commerce actions use
71
125
 
72
126
  ## Auto-Generated API Actions (useApi Trait)
73
127
 
74
- When a model defines `useApi`, the framework auto-generates REST actions:
128
+ When a model defines `useApi`, the runtime registers native CRUD routes and
129
+ handlers from the merged model registry. It does not require generated action
130
+ files or a separate model-class generation step:
75
131
 
76
132
  ```typescript
77
133
  defineModel({
@@ -92,7 +148,7 @@ This generates:
92
148
  - `PUT /api/products/{id}` → Update action
93
149
  - `DELETE /api/products/{id}` → Destroy action
94
150
 
95
- ## Default Framework Actions (80+)
151
+ ## Default framework action families
96
152
 
97
153
  ### Authentication Actions
98
154
  - `LoginAction` — POST /login (validates email + password, returns token + user)
@@ -158,6 +214,8 @@ route.post('/users', 'Actions/CreateUser')
158
214
  - The `handle()` method is required — it receives the request object
159
215
  - Actions used as event listeners also have a `handle(event)` method
160
216
  - The `useApi` model trait auto-generates CRUD actions + routes
217
+ - Custom actions retain their own domain contract; generic CRUD also applies
218
+ model middleware, ownership, dashboard roles and per-row policy checks.
161
219
  - Actions are resolved dynamically at runtime via string names
162
220
  - The HealthAction at `/health` is useful for container health checks
163
221
  - Login action returns `{ token: string, user: { id, email, name } }`
@@ -18,9 +18,9 @@ Comprehensive AI/LLM integration with 4 provider drivers, image generation, visi
18
18
  ```
19
19
  ai/src/
20
20
  ├── drivers/
21
- │ ├── anthropic.ts # Claude driver
22
- │ ├── openai.ts # GPT + DALL-E + Whisper + TTS
23
- │ ├── ollama.ts # Local LLM driver
21
+ │ ├── anthropic/index.ts # Claude driver
22
+ │ ├── openai/index.ts # GPT + image + transcription + TTS
23
+ │ ├── ollama/index.ts # Local LLM driver
24
24
  │ └── bedrock/ # Amazon Bedrock, through the Converse API
25
25
  ├── image.ts # Image generation & vision
26
26
  ├── speech.ts # Provider-neutral text-to-speech & speech-to-text
@@ -210,7 +210,7 @@ const index = await indexText(text, { chunkSize: 500 })
210
210
  const answer = await rag('What is X?', index, { model: 'claude-sonnet-4-20250514', maxTokens: 1000 })
211
211
 
212
212
  // VectorIndex class
213
- const idx = new VectorIndex({ dimensions: 1536 })
213
+ const idx = new VectorIndex({ provider: 'openai', model: 'text-embedding-3-small' })
214
214
  await idx.add([{ id: '1', content: 'Hello', metadata: {} }])
215
215
  const results = await idx.search('greeting', 5)
216
216
  const results2 = await idx.searchByVector(queryEmbedding, 5)
@@ -239,9 +239,9 @@ const openaiTools = client.toOpenAITools()
239
239
 
240
240
  // Multiple servers
241
241
  const manager = new MCPManager()
242
- manager.addServer({ name: 'server1', transport: 'stdio', command: '...' })
243
- manager.addServer({ name: 'server2', transport: 'streamable-http', url: '...' })
244
- const allTools = await manager.getAllTools()
242
+ await manager.addServer({ name: 'server1', transport: 'stdio', command: '...' })
243
+ await manager.addServer({ name: 'server2', transport: 'streamable-http', url: '...' })
244
+ const allTools = manager.getAllTools() // cached tools from connected servers
245
245
  await manager.callTool('server1/tool-name', args)
246
246
  await manager.disconnectAll()
247
247
 
@@ -356,14 +356,40 @@ await driver.resumeSession(sessionId, 'Add validation')
356
356
  ```
357
357
 
358
358
  ## Gotchas
359
- - API keys should be in `.env` — `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`
359
+ - API keys should be in `.env` - `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`
360
360
  - Ollama requires a local server running on port 11434
361
361
  - Image generation uses OpenAI DALL-E by default
362
362
  - Vision supports both GPT-4V and Claude models
363
- - VectorIndex is in-memory — not persisted between restarts
363
+ - VectorIndex is in-memory - not persisted between restarts
364
364
  - RAG combines chunking + embedding + vector search + LLM generation
365
365
  - MCP supports stdio (subprocess), SSE, and HTTP transports
366
366
  - The buddy assistant has git integration (commit, push, apply changes)
367
367
  - Claude Agent SDK wraps the Claude Code CLI for agentic workflows
368
368
  - A Bedrock id as `default` selects the Bedrock driver; it never reaches api.anthropic.com
369
- - Sentiment/classification use AI models — they're not rule-based
369
+ - Sentiment/classification use AI models - they're not rule-based
370
+
371
+
372
+ ## Usage, retries and multimodal messages
373
+
374
+ The public package also exposes `onUsage/recordUsage/listUsageReporters`
375
+ (and clearUsageReporters for teardown), `estimateTokens/estimateMessageTokens`,
376
+ `sanitizePrompt`, `fetchWithRetry`, and
377
+ `buildMessageWithImages/normalizeMessagesForProvider`. Use the exported
378
+ types and their `utils/` implementations before composing a provider-neutral
379
+ message or reporting costs. Token estimates are heuristic, usage callback data
380
+ comes from provider results, and sanitizing a prompt is not authorization for
381
+ executing a suggested tool.
382
+
383
+ Provider capabilities differ: embeddings currently use OpenAI/Ollama; RAG supports
384
+ Anthropic/OpenAI/Ollama; speech uses OpenAI only. The shared chat client and
385
+ tool-turn helpers support the four chat providers but do not imply those other
386
+ features are implemented by Bedrock. VectorIndex is memory-only; its constructor
387
+ accepts EmbeddingOptions (provider/model), not an arbitrary vector dimensions
388
+ setting. Runtime credentials come from env/provider configuration, never a
389
+ browser-exported config response.
390
+
391
+ Tests: `storage/framework/core/ai/tests/usage-and-tokens.test.ts`,
392
+ `vision.test.ts`, `retry.test.ts`, `driver-retry.test.ts`,
393
+ `tool-calls.test.ts` and `client.test.ts`. Verify chosen model/provider
394
+ capabilities from config and registry rather than assuming a marketing model name
395
+ is usable for every API.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: stacks-alias
3
- description: Use when working with path aliases in a Stacks project - import resolution, module aliasing, or debugging import paths. Covers @stacksjs/alias which defines 260+ path mappings for the entire framework.
3
+ description: Use when debugging source aliases, package/subpath resolution, or the boundary between checkout and published imports. Covers @stacksjs/alias and its active resolver consumers.
4
4
  license: MIT
5
5
  compatibility: Bun >= 1.3.0, TypeScript
6
6
  allowed-tools: Read Edit Write Bash Grep Glob
@@ -8,87 +8,42 @@ allowed-tools: Read Edit Write Bash Grep Glob
8
8
 
9
9
  # Stacks Path Aliases
10
10
 
11
- ## Key Paths
12
- - Core package: `storage/framework/core/alias/src/`
13
- - Source: `storage/framework/core/alias/src/index.ts`
14
- - Package: `@stacksjs/alias`
15
-
16
- ## API
17
-
18
- ```typescript
19
- import { alias } from '@stacksjs/alias'
20
-
21
- const alias: Record<string, string> // 260+ entries
22
- ```
23
-
24
- ## Alias Categories
25
-
26
- ### Framework Module Aliases
27
- Maps `@stacksjs/*` and `stacks/*` imports to their source files:
28
-
29
- ```typescript
30
- '@stacksjs/ai': 'storage/framework/core/ai/src/index.ts'
31
- '@stacksjs/auth': 'storage/framework/core/auth/src/index.ts'
32
- '@stacksjs/database': 'storage/framework/core/database/src/index.ts'
33
- '@stacksjs/router': 'storage/framework/core/router/src/index.ts'
34
- '@stacksjs/cache': 'storage/framework/core/cache/src/index.ts'
35
- '@stacksjs/cli': 'storage/framework/core/buddy/src/index.ts'
36
- '@stacksjs/config': 'storage/framework/core/config/src/index.ts'
37
- // ... all core packages
38
- ```
39
-
40
- Both `@stacksjs/` and `stacks/` prefixes are supported:
41
-
42
- ```typescript
43
- 'stacks/auth': 'storage/framework/core/auth/src/index.ts'
44
- 'stacks/database': 'storage/framework/core/database/src/index.ts'
45
- ```
46
-
47
- ### Config Aliases
48
- Maps `~/config/*` to config files:
49
-
50
- ```typescript
51
- '~/config/database': 'config/database.ts'
52
- '~/config/dns': 'config/dns.ts'
53
- '~/config/docs': 'config/docs.ts'
54
- '~/config/email': 'config/email.ts'
55
- // ... all 44 config files
56
- ```
57
-
58
- ### Resource Aliases
59
- Maps `~/` paths to project directories:
60
-
61
- ```typescript
62
- '~/app/*': 'app/*'
63
- '~/components/*': 'resources/components/*'
64
- '~/functions/*': 'resources/functions/*'
65
- '~/views/*': 'resources/views/*'
66
- '~/lang/*': 'locales/*'
67
- '~/*': '*'
68
- ```
69
-
70
- ### Framework Aliases
71
- ```typescript
72
- 'framework/*': 'storage/framework/*'
73
- '@/*': '*'
74
- ```
75
-
76
- ## Usage
77
-
78
- Aliases are automatically resolved by Bun at runtime and by the build system for production:
79
-
80
- ```typescript
81
- // These all work because of aliases
82
- import { db } from '@stacksjs/database'
83
- import { route } from '@stacksjs/router'
84
- import { auth } from 'stacks/auth'
85
- import dbConfig from '~/config/database'
86
- ```
87
-
88
- ## Gotchas
89
- - **260+ entries** — covers every core package, config file, and resource directory
90
- - **Dual prefixes** — both `@stacksjs/` and `stacks/` resolve to the same source files
91
- - **Runtime resolution** — Bun resolves these at runtime via `bunfig.toml` preloading
92
- - **Build-time resolution** — the build system resolves aliases to actual paths for production
93
- - **Always use aliases** — never use relative paths between packages in the monorepo
94
- - **Adding new packages** — requires adding alias entries for both `@stacksjs/` and `stacks/` prefixes
11
+ Use `@stacksjs/alias` to inspect the framework's source alias map and debug a
12
+ configured build resolver. The exported alias object is metadata; importing it
13
+ does not install a universal module resolver.
14
+
15
+ ## Actual mappings
16
+
17
+ The map in `storage/framework/core/alias/src/index.ts` uses @stacksjs/path to
18
+ resolve project-relative resources to concrete paths. Many packages have
19
+ @stacksjs/name and stacks/name aliases plus wildcard subpaths, but only entries
20
+ actually in the map are promised. Cli maps to core/cli, Buddy to core/buddy;
21
+ they are separate packages.
22
+
23
+ Configuration/resource aliases cover declared config paths and resources. Read
24
+ that source and the active tsconfig/bun/build configuration for exact spellings;
25
+ a fixed count or schematic wildcard table cannot establish runtime resolution.
26
+ An application override changes the source root resolved by @stacksjs/path.
27
+
28
+ ## Source versus published consumers
29
+
30
+ Public @stacksjs package names and declared subpaths are the portable imports.
31
+ Source aliases help the framework checkout and configured Stacks app build.
32
+ A published consumer must resolve package exports without reaching outside its
33
+ installed package. Do not invent a subpath merely because a matching source
34
+ file exists behind a wildcard alias. Declaration and runtime export validation
35
+ are separate checks.
36
+
37
+ When adding a source alias, update the actual map and the consuming resolver;
38
+ check its package's exports/build entries as well. Relative imports within a
39
+ package are ordinary implementation imports; using a relative path that escapes
40
+ into another package's unpublished types is the problem. Avoid the former rule
41
+ that all relative imports are forbidden, since framework code itself uses them
42
+ to keep internal modules and cycle boundaries explicit.
43
+
44
+ ## Verification
45
+
46
+ Source: `core/alias/src/index.ts`, active tsconfig.json and the build/runtime
47
+ consumer reading the map. Retained coverage: `core/alias/tests/alias.test.ts`.
48
+ For missing globals, read stacks-auto-imports; aliases solve module resolution,
49
+ not injection of ambient names into a browser or server request.
@@ -8,8 +8,7 @@ allowed-tools: Read Edit Write Bash Grep Glob
8
8
 
9
9
  # Stacks Analytics
10
10
 
11
- Privacy-friendly analytics with four drivers: Fathom, Plausible, Google Analytics
12
- and self-hosted.
11
+ Analytics drivers: AnalyticsHQ, Fathom, Plausible, Google Analytics and self-hosted.
13
12
 
14
13
  ## Key Paths
15
14
  - Core package: `storage/framework/core/analytics/src/`
@@ -46,7 +45,7 @@ that should carry it.
46
45
  ## Drivers
47
46
 
48
47
  ### Fathom
49
- Hosted, cookie-free, GDPR-compliant. Requires a Fathom account.
48
+ Hosted tracker script. Requires a Fathom account; compliance depends on the complete application and provider setup.
50
49
  `scriptUrl` points the tag at your own origin so a content blocker does not drop it.
51
50
 
52
51
  ```typescript
@@ -178,3 +177,24 @@ Analytics dashboard at `/dashboard/analytics` displays:
178
177
  - `trackOutboundLinks` adds click handlers to external `<a>` tags
179
178
  - `capturePageviews` is server-side and independent of `driver`
180
179
  - AnalyticsHQ custom events need no script: `data-analyticshq-event="Ticket click"` on any element, with other `data-analyticshq-*` attributes as properties
180
+
181
+
182
+ ## Environment and capture boundaries
183
+
184
+ enabled:false returns no tags. When environments is explicitly supplied,
185
+ getAnalyticsHead runs the shared integration gate and forwards the resolved label
186
+ to AnalyticsHQ. If environments is absent, the current registry preserves its
187
+ older ungated behavior; the shipped config explicitly lists production/staging.
188
+ Do not assume every caller gets that allowlist when constructing config itself.
189
+
190
+ First-party capturePageviews is separate from script injection and the remote
191
+ driver gate. recordPageview(req) writes qualifying GET page requests to
192
+ analytics_events; isPageviewRequest filters assets/API/internal paths and obvious
193
+ bots/monitors. classifyAgent/referrerHost are coarse helpers, not unique visitor
194
+ identification. Capture failures are swallowed so a statistic cannot break a
195
+ page. Apply the table/model migration before relying on the dashboard data.
196
+
197
+ Source: `storage/framework/core/analytics/src/registry.ts`, capture.ts and
198
+ drivers/. Tests: environment-gate.test.ts, capture.test.ts and drivers.test.ts.
199
+ A configured script does not certify analytics consent/privacy compliance or
200
+ prove a provider received an event. Read stacks-env for the shared gate.
@@ -21,10 +21,11 @@ export * as arr from './arr'
21
21
  export * from './macro'
22
22
  ```
23
23
 
24
- The `arr.ts` re-exports from three submodules:
25
- - `contains.ts` — containment check functions
26
- - `helpers.ts` — array manipulation (toArray, flatten, partition, unique, shuffle, etc.)
27
- - `math.ts` — statistical functions (average, median, mode, variance, etc.)
24
+ The `arr.ts` re-exports these submodules:
25
+ - `contains.ts` - containment check functions
26
+ - `helpers.ts` - array manipulation (toArray, flatten, partition, unique, shuffle, etc.)
27
+ - `math.ts` - statistical functions (average, median, mode, variance, etc.)
28
+ - `transform.ts` - typed grouping, selectors, ordering, sets and zip helpers
28
29
 
29
30
  The `macro.ts` provides the `Arr` and `arr` facade objects.
30
31
 
@@ -140,10 +141,10 @@ All containment functions work with `string[]`. The `contains` function checks i
140
141
  contains('foobar', ['foo', 'baz']) // true -- 'foobar'.includes('foo')
141
142
  contains('hello', ['foo', 'bar']) // false
142
143
 
143
- containsAll(['foo', 'bar'], ['foobar', 'barx']) // true -- all needles found
144
+ containsAll(['foobar', 'barx'], ['foo', 'bar']) // true -- each needle contains a haystack substring
144
145
  containsAll(['foo', 'qux'], ['foobar']) // false -- 'qux' not found
145
146
 
146
- containsAny(['foo', 'qux'], ['foobar']) // true -- at least one found
147
+ containsAny(['foobar', 'qux'], ['foo']) // true -- at least one needle contains a haystack substring
147
148
  containsAny(['baz', 'qux'], ['foobar']) // false
148
149
 
149
150
  containsNone(['baz', 'qux'], ['foobar']) // true -- none found
@@ -153,7 +154,7 @@ containsOnly(['foo', 'bar'], ['foobar', 'barx']) // checks if haystack items onl
153
154
  // Implemented as: containsAll(haystack, needles) -- reversed args
154
155
 
155
156
  doesNotContain('qux', ['foo', 'bar']) // true
156
- doesNotContain('foo', ['foobar']) // false
157
+ doesNotContain('foo', ['foobar']) // true -- 'foo' does not contain 'foobar'
157
158
  ```
158
159
 
159
160
  **Important**: `contains` uses `needle.includes(hay)`, NOT `haystack.includes(needle)`. It checks if the needle string contains any of the haystack substrings. This is substring matching, not array membership.
@@ -211,7 +212,10 @@ covariance([1, 2, 3, 4], [4, 3, 2, 1]) // -1.25 -- negative correlation
211
212
 
212
213
  ## Arr Facade (`macro.ts`)
213
214
 
214
- Both `Arr` and `arr` are exported as equivalent facade objects.
215
+ Use `Arr` for the facade. The root's lowercase `arr` is the namespace exported
216
+ from `arr.ts`, with all standalone functions. It is not the same object as
217
+ `Arr` and does not include the facade-only `random` method. A lowercase alias
218
+ also exists in `macro.ts`, but the root namespace export wins.
215
219
 
216
220
  ```typescript
217
221
  import { Arr, arr } from '@stacksjs/arrays'
@@ -256,7 +260,29 @@ The facade adds one extra method not in the standalone functions:
256
260
  Arr.random(arr, count) // like sample but filters null/undefined from results
257
261
  ```
258
262
 
259
- ## Exported Types
263
+ ## Typed transformations
264
+
265
+ These standalone functions are also available through the root `arr` namespace:
266
+
267
+ - `groupBy`, `keyBy`, `countBy` use selector functions and return typed records.
268
+ Repeated keyBy keys overwrite earlier entries; groupBy accumulates them.
269
+ - `sortBy(array, ...selectors)` copies before sorting, supports multiple keys,
270
+ and accepts `{ by, order: 'desc' }` selectors.
271
+ - `sumBy`, `meanBy`, `minBy`, `maxBy` aggregate selected values. `meanBy` returns
272
+ undefined on an empty input; extrema return the selected element, not its value.
273
+ - `zip`, `zipWith` stop at the shorter input; `unzip` splits pairs.
274
+ - `difference` keeps first-input duplicates that are not excluded;
275
+ `intersection` and `union` deduplicate by Set identity.
276
+ - `chunk` validates a positive integer size; `compact` removes only null and
277
+ undefined, preserving false, zero and empty strings.
278
+ - `splitAt` supports negative indexes; `splitWhen` starts the second half at
279
+ the first match; `times` requires a non-negative integer count.
280
+
281
+ Read `core/arrays/src/transform.ts` and `tests/transform.test.ts` for precise
282
+ empty-input and selector behavior. These pure helpers are preferable to a new
283
+ utility dependency for common native transformations.
284
+
285
+ ## Type example
260
286
 
261
287
  ```typescript
262
288
  type PartitionFilter<T> = (item: T, index: number, array: readonly T[]) => any
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: stacks-audio
3
+ description: Use when planning native audio derivatives, processing supported audio formats, generating waveforms/transcripts, or signing audio delivery. Covers @stacksjs/audio and runtime encoder capability checks.
4
+ license: MIT
5
+ compatibility: Bun >= 1.3.0, TypeScript
6
+ allowed-tools: Read Edit Write Bash Grep Glob
7
+ ---
8
+
9
+ # Native audio planning and delivery
10
+
11
+ audio(source) builds a profile-driven delivery plan. Supply an inspected
12
+ AudioProfile and actual runtime encoder/codec capabilities. A declared output
13
+ does not prove that an encoder is available.
14
+
15
+ ## Plan versus process
16
+
17
+ generate() returns the plan, including copy/transcode actions and availability.
18
+ assertAudioPlanExecutable rejects an unavailable encoding path. process() or
19
+ processAudioPlan delegates executable work to the installed native-transcode
20
+ implementation. Do not report a generated plan as finished media bytes.
21
+
22
+ Content type, format and source characteristics determine bitrate/output
23
+ selection. negotiateAudioOutput handles accept preferences. createWaveform and
24
+ normalizeTranscript build waveform data and transcript/VTT output from supplied
25
+ samples/segments; they do not infer spoken text from an audio file themselves.
26
+
27
+ audioResponseHeaders supports delivery caching; signAudioAsset/verifyAudioAsset
28
+ and createProtectedAudioPlaylist support protected delivery. Preserve expiration,
29
+ path and key handling; a protected playlist still needs an authorized key route.
30
+
31
+ Tests prove planning, capability rejection, helpers and delegated processing.
32
+ The processing test mocks the transcoder, so it is not evidence that every codec
33
+ works on every host. Verify the real target runtime when producing assets.
34
+ Source: core/audio/src/index.ts. Evidence: audio.test.ts and process.test.ts.