@stacksjs/defaults 0.75.109 → 0.75.110

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 (748) 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/ai/skills/stacks-technical-diagrams/{bunfig.toml → runtime.toml} +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: stacks-desktop
3
- description: Use when building or publishing desktop applications with Stacks - Craft native windows, system tray, desktop packaging, or Mac App Store delivery.
3
+ description: Use when building or publishing desktop applications with Stacks - Craft native windows, local launchers, helper processes, packaging, capability probes, or Mac App Store delivery. Covers @stacksjs/desktop-build and the browser bridge boundary.
4
4
  license: MIT
5
5
  compatibility: Bun >= 1.3.0, TypeScript
6
6
  allowed-tools: Read Edit Write Bash Grep Glob
@@ -13,7 +13,8 @@ allowed-tools: Read Edit Write Bash Grep Glob
13
13
  - Source: `storage/framework/core/desktop/src/index.ts`
14
14
  - System tray views: `storage/framework/defaults/views/system-tray/`
15
15
  - System tray layouts: `storage/framework/defaults/resources/layouts/`
16
- - Package: `@stacksjs/desktop`
16
+ - Build/host package: `@stacksjs/desktop-build`
17
+ - Browser bridge package: `@stacksjs/desktop/browser` (from the STX ecosystem)
17
18
 
18
19
  ## Runtime
19
20
 
@@ -86,7 +87,7 @@ interface Desktop {
86
87
 
87
88
  The launcher Stacks compiles opens a Craft window on the URL in `desktop.json`,
88
89
  which is what a hosted Stacks application wants. An app whose subject is the
89
- machine it runs on — a disk cleaner, a log viewer, a device tool — has no such
90
+ machine it runs on - a disk cleaner, a log viewer, a device tool - has no such
90
91
  URL: it starts something locally and opens a window on that, on a port it does
91
92
  not know until launch.
92
93
 
@@ -95,7 +96,7 @@ same way anything under `app/` overrides its framework default. `DESKTOP_URL`
95
96
  and `APP_URL` then become optional, because the launcher decides what to open.
96
97
 
97
98
  ```ts
98
- // app/Desktop/launcher.ts — compiled to Contents/MacOS/<AppName>
99
+ // app/Desktop/launcher.ts - compiled to Contents/MacOS/<AppName>
99
100
  import { dirname, join } from 'node:path'
100
101
 
101
102
  const macos = dirname(process.execPath) // siblings live here
@@ -117,7 +118,7 @@ Two things follow from declaring your own launcher:
117
118
  copied into `Contents/MacOS`.** Compile the sibling binaries your launcher
118
119
  spawns into that directory and they ship with it.
119
120
  - **`app/Desktop/Resources/` is copied into `Contents/Resources`.** A
120
- prerendered UI, a schema, seed data — a local-first app has a payload, and
121
+ prerendered UI, a schema, seed data - a local-first app has a payload, and
121
122
  this is where it goes.
122
123
 
123
124
  `build:dmg` also narrows App Transport Security for these bundles: an exception
@@ -127,7 +128,7 @@ permit every unencrypted host on the internet.
127
128
  ### Info.plist entries
128
129
 
129
130
  `app/Desktop/Info.plist.json` is merged into the generated `Info.plist`. The
130
- entries that matter most are the `NS*UsageDescription` strings — they are the
131
+ entries that matter most are the `NS*UsageDescription` strings - they are the
131
132
  sentences a person reads when macOS asks whether your app may look in their
132
133
  Downloads folder or drive Finder, and without them the prompt is generic or the
133
134
  request is refused outright.
@@ -144,38 +145,38 @@ JSON, not XML: a malformed plist produces a bundle macOS silently refuses to
144
145
  launch, which surfaces long after the build reported success. Strings, numbers,
145
146
  booleans, arrays, and nested objects all render.
146
147
 
147
- Keys the bundle must own — `CFBundleIdentifier`, `CFBundleExecutable`,
148
- `CFBundleVersion`, and the rest of the identity — are ignored with a note.
148
+ Keys the bundle must own - `CFBundleIdentifier`, `CFBundleExecutable`,
149
+ `CFBundleVersion`, and the rest of the identity - are ignored with a note.
149
150
  Rewriting those produces a bundle that does not match what was signed.
150
151
 
151
152
  Inside the bundle the launcher is named after the app, not `stacks-desktop`.
152
153
  macOS names the *process* in every permission prompt, so a launcher keeping the
153
154
  framework's build name asks "stacks-desktop would like to access files in your
154
- Downloads folder" — which reads like something to refuse.
155
+ Downloads folder" - which reads like something to refuse.
155
156
 
156
157
  Application data belongs in `~/Library/Application Support/<AppName>`, never
157
- inside the bundle — `/Applications` is not writable by the user, and the bundle
158
+ inside the bundle - `/Applications` is not writable by the user, and the bundle
158
159
  is replaced wholesale on update.
159
160
 
160
161
  ## Helper processes: one binary, not three
161
162
 
162
- An app that owns its launcher usually needs more than the launcher — an agent
163
+ An app that owns its launcher usually needs more than the launcher - an agent
163
164
  serving on loopback, a worker doing something slow out of process. Compile each
164
165
  as its own binary and the bundle gets very large very quietly.
165
166
 
166
167
  `bun build --compile` embeds the entire Bun runtime in **every** executable it
167
168
  writes. `console.log("hi")` measures **60.5 MB**. So three binaries means three
168
- copies of the same runtime, and nothing says so — the bundle is simply big, and
169
+ copies of the same runtime, and nothing says so - the bundle is simply big, and
169
170
  a big desktop app looks unremarkable. One real app shipped 230 MB this way, of
170
171
  which about 180 MB was the runtime repeated; its own code plus the native Craft
171
172
  runtime came to under 40 MB.
172
173
 
173
174
  Compile **one** binary and dispatch on a subcommand. The helpers stay separate
174
- *processes* — which is what actually matters for isolation and for killing one
175
- that wedges — they just stop being separate *files*.
175
+ *processes* - which is what actually matters for isolation and for killing one
176
+ that wedges - they just stop being separate *files*.
176
177
 
177
178
  ```ts
178
- // app/Desktop/launcher.ts — before anything else at module scope
179
+ // app/Desktop/launcher.ts - before anything else at module scope
179
180
  const subcommand = process.argv[2]
180
181
 
181
182
  if (subcommand === 'agent' || subcommand === 'scan') {
@@ -205,7 +206,7 @@ Two things that bite, both silently:
205
206
  - **The dispatch must come first.** A launcher's body is top-level code that
206
207
  starts a server and opens a window as a side effect of loading.
207
208
  - **Do not `process.exit()` after starting a server.** A `runAgent()` that
208
- returns once `Bun.serve` is listening has not finished — `Bun.serve` is what
209
+ returns once `Bun.serve` is listening has not finished - `Bun.serve` is what
209
210
  holds the process open. Exiting after it kills the agent one line after it
210
211
  printed the port the launcher is still waiting for, and the launcher reports
211
212
  a timeout that says nothing about the cause.
@@ -287,6 +288,11 @@ Repository secrets:
287
288
  - `APP_STORE_CONNECT_API_ISSUER_ID`
288
289
 
289
290
  ## Gotchas
291
+ - Configure build identity and browser UI separately; the host build package is
292
+ not a browser-safe native API import. Verify bridge readiness inside the
293
+ actual Craft window before enabling native-only flows.
294
+ - Probe results describe the recorded host/runtime version. A successful
295
+ packaging command is not evidence of input/audio/graphics capability parity.
290
296
  - App Store packaging runs on macOS with Xcode command-line tools.
291
297
  - The embedded Craft runtime must inherit the parent App Sandbox.
292
298
  - A Mac App Distribution identity and Mac Installer Distribution identity serve different signing steps.
@@ -9,7 +9,7 @@ allowed-tools: Read Edit Write Bash Grep Glob
9
9
  # Stacks Development
10
10
 
11
11
  ## Key Paths
12
- - Development package: `storage/framework/core/development/` (stub — exports `{}`)
12
+ - Development package: `storage/framework/core/development/` (stub - exports `{}`)
13
13
  - Dev server entry: `storage/framework/server/src/index.ts`
14
14
  - Dev server utils: `storage/framework/server/src/utils.ts`
15
15
  - Server build script: `storage/framework/server/build.ts`
@@ -32,13 +32,13 @@ actions/src/dev/
32
32
  ├── dashboard.ts # Dashboard dev server (STX + native Craft window + config API)
33
33
  ├── dashboard-utils.ts # Model discovery, sidebar config, icon map, waitForServer()
34
34
  ├── docs.ts # Docs dev server (@stacksjs/bunpress, watch mode)
35
- ├── components.ts # Components dev server (runs `bun run dev` in libs/components/vue)
35
+ ├── components.ts # Components dev server (native stx component playground)
36
36
  ├── desktop.ts # Desktop dev server (runs `bun run dev` in framework/views/desktop)
37
37
  └── system-tray.ts # System tray dev server (runs `bun run dev` in framework/system-tray)
38
38
 
39
39
  server/
40
40
  ├── src/
41
- │ ├── index.ts # Production server entry (Bun.serve, WebSocket, queue worker mode)
41
+ │ ├── index.ts # Production HTTP server entry (Bun.serve, one-shot queue worker mode)
42
42
  │ └── utils.ts # cleanCopy(), useCustomOrDefaultServerConfig(), buildDockerImage()
43
43
  ├── build.ts # Server build script (Bun.build for ESM, Docker image)
44
44
  ├── dev # Shell script for running server via Docker with volume mounts
@@ -86,7 +86,7 @@ buddy/src/commands/
86
86
  - `buddy dev:api` -- API server only
87
87
  - `buddy dev:dashboard` (alias: `dev:admin`) -- Dashboard with native Craft window
88
88
  - `buddy dev:docs` -- Documentation server only
89
- - `buddy dev:components` -- Vue component library dev server
89
+ - `buddy dev:components` -- stx component playground
90
90
  - `buddy dev:desktop` -- Desktop app dev server
91
91
  - `buddy dev:native` -- Equivalent native app development flow
92
92
  - `buddy dev:system-tray` (alias: `dev:tray`) -- System tray dev server
@@ -184,7 +184,7 @@ When `APP_URL` is set to a custom domain (not `localhost`):
184
184
  - **Frontend (STX)**: `bun-plugin-stx/serve` has its own built-in watch/HMR for `.stx` templates
185
185
  - **API server**: Runs via `bun --watch`, restarts on route or handler changes
186
186
  - **Docs**: `@stacksjs/bunpress` runs with `watch: true` for live documentation updates
187
- - **Components**: Delegates to the component library's own `bun run dev` (typically Vite-based HMR)
187
+ - **Components**: Uses the native component development workflow; inspect core/actions/src/dev/components.ts for the selected entry
188
188
 
189
189
  ## Preloader (preloader.ts)
190
190
 
@@ -226,7 +226,7 @@ linker = "hoisted"
226
226
 
227
227
  - **Queue worker mode**: When `QUEUE_WORKER` env var is set, imports and runs the job from `app/Jobs/<JOB>.ts` with retry support (configurable via `JOB_RETRIES`, `JOB_BACKOFF_FACTOR`, `JOB_INITIAL_DELAY`, `JOB_JITTER`)
228
228
  - **HTTP server**: `Bun.serve()` on `PORT` (default 3000), delegates to `serverResponse()` from `@stacksjs/router`
229
- - **WebSocket**: Built-in WebSocket upgrade support (open/message/close handlers as stubs)
229
+ - **Realtime**: Separate authenticated broadcast server; the HTTP entry does not upgrade WebSocket requests
230
230
  - **Development mode**: Auto-enabled when `APP_ENV` is not `production` or `prod`
231
231
  - **Docker**: Multi-stage build with `oven/bun:1.3.10`, runs as non-root `bun` user, exposes port 3000, includes curl for healthchecks
232
232
 
@@ -269,13 +269,13 @@ Default configurations provided at `storage/framework/defaults/ide/`:
269
269
  ## Doctor Health Checks
270
270
 
271
271
  `buddy doctor` verifies:
272
- - Bun runtime version (pass if v1.0+, warn otherwise, fail if missing)
272
+ - Bun runtime version against the installed framework minimum (Bun >= 1.3.0)
273
273
  - Node.js version (pass if v18+, warn otherwise)
274
274
  - package.json existence and project name
275
275
  - `.env` file presence (warn if missing, not a failure)
276
276
  - `APP_KEY` is set (warn if not, suggests `buddy key:generate`)
277
277
 
278
- ## STX Configuration (config/ui.ts)
278
+ ## STX Configuration (config/stx.ts)
279
279
 
280
280
  ```typescript
281
281
  {
@@ -303,3 +303,14 @@ Note: Dashboard mode overrides these settings via its own `serve()` options.
303
303
  - The `bun-plugin-stx` serve plugin is resolved with a fallback: first tries normal `import('bun-plugin-stx/serve')`, then falls back to `pantry/bun-plugin-stx/dist/serve.js`
304
304
  - `buddy fresh` is NOT the same as `buddy clean` -- `fresh` cleans AND reinstalls dependencies, while `clean` only removes artifacts
305
305
  - The Craft native window for the dashboard uses `http://localhost:<port>` directly (not HTTPS) even when a custom domain proxy is running
306
+
307
+
308
+ ## Verify the selected entrypoint
309
+
310
+ Use `core/actions/src/dev.ts` and `dev/views.ts` for the actual launch and STX
311
+ request pipeline. Page middleware, API forwarding, request scopes and SEO are
312
+ installed there and in `core/buddy/src/production-server.ts`, not by copying an
313
+ example Bun.serve into a page. Native launch, marketing-site launch and browser
314
+ launch are distinct options; read config/app.ts and buddy dev --help.
315
+ A preloader skip does not mean the selected server never initializes model
316
+ globals: server entrypoints invoke their own runtime boot.
@@ -8,142 +8,75 @@ allowed-tools: Read Edit Write Bash Grep Glob
8
8
 
9
9
  # Stacks DNS
10
10
 
11
- ## Key Paths
12
- - Core package: `storage/framework/core/dns/src/`
13
- - AWS driver: `storage/framework/core/dns/src/drivers/aws.ts`
14
- - Config: `config/dns.ts`
15
- - Package: `@stacksjs/dns`
16
-
17
- ## Source Files
18
- ```
19
- dns/src/
20
- ├── index.ts # Re-exports from drivers and @stacksjs/dnsx
21
- └── drivers/
22
- └── aws.ts # AWS Route53 DNS management
23
- ```
24
-
25
- ## AWS Route53 API
26
-
27
- ```typescript
28
- import {
29
- createHostedZone,
30
- deleteHostedZone,
31
- deleteHostedZoneRecords,
32
- getNameservers,
33
- getHostedZoneNameservers,
34
- updateNameservers,
35
- findHostedZone,
36
- hasUserDomainBeenAddedToCloud,
37
- writeNameserversToConfig,
38
- addDomain,
39
- } from '@stacksjs/dns'
40
- ```
41
-
42
- ### Hosted Zone Management
43
-
44
- ```typescript
45
- // Create or retrieve a hosted zone
46
- createHostedZone(domainName: string): Promise<Result<HostedZone | CreateHostedZoneResult | string | null, Error>>
47
-
48
- // Delete a zone and all its records
49
- deleteHostedZone(domainName: string): Promise<Result<string, Error>>
50
-
51
- // Delete records only, keep zone
52
- deleteHostedZoneRecords(domainName: string): Promise<Result<string, Error>>
53
-
54
- // Find a zone by domain name
55
- findHostedZone(domain: string): Promise<Result<string | null | undefined, Error>>
56
-
57
- // Check if domain is in cloud
58
- hasUserDomainBeenAddedToCloud(domainName?: string): Promise<boolean>
59
- ```
60
-
61
- ### Nameserver Management
62
-
63
- ```typescript
64
- // Get nameservers from Route53 Domains
65
- getNameservers(domainName?: string): Promise<string[] | undefined>
66
-
67
- // Get nameservers from hosted zone delegation set
68
- getHostedZoneNameservers(domainName: string): Promise<string[]>
69
-
70
- // Update domain nameservers in Route53
71
- updateNameservers(hostedZoneNameservers: string[], domainName?: string): Promise<boolean | undefined>
72
-
73
- // Persist nameservers to config/dns.ts
74
- writeNameserversToConfig(nameservers: string[]): void
75
- ```
76
-
77
- ### Domain Actions
78
-
79
- ```typescript
80
- // Run domain add action (delegates to CLI action)
81
- addDomain(options: DeployOptions): Promise<Result<Subprocess, CommandError>>
82
- ```
83
-
84
- ### Helpers
85
-
86
- ```typescript
87
- // Internal helpers
88
- deleteRecordsForZone(zoneId: string): Promise<void>
89
- normalizeDomain(domain: string): string
90
- sanitizeNameserver(ns: string): string
91
- ```
92
-
93
- ## Configuration (config/dns.ts)
94
-
95
- ```typescript
96
- import { defineDns } from '@stacksjs/config'
97
-
98
- export default defineDns({
99
- a: [{ name: 'example.com', value: '1.2.3.4', ttl: 300 }],
100
- aaaa: [],
101
- cname: [],
102
- mx: [],
103
- txt: [],
104
- nameservers: [
105
- 'ns-1731.awsdns-24.co.uk',
106
- 'ns-355.awsdns-44.com',
107
- 'ns-536.awsdns-03.net',
108
- 'ns-1395.awsdns-46.org',
109
- ],
110
- redirects: [],
111
- })
112
- ```
113
-
114
- ### DnsConfig Interface
115
-
116
- ```typescript
117
- interface DnsConfig {
118
- a: Array<{ name: string, value: string, ttl?: number }>
119
- aaaa: Array<{ name: string, value: string, ttl?: number }>
120
- cname: Array<{ name: string, value: string, ttl?: number }>
121
- mx: Array<{ name: string, value: string, ttl?: number, priority?: number }>
122
- txt: Array<{ name: string, value: string, ttl?: number }>
123
- nameservers: string[]
124
- redirects?: Array<{ from: string, to: string }>
125
- }
126
- ```
127
-
128
- ## CLI Commands
129
-
130
- ```bash
131
- buddy dns # DNS management
132
- buddy domains # Domain management
133
- buddy domains:add # Add a domain to cloud
134
- buddy domains:remove # Remove a domain
135
- buddy domains:purchase # Purchase a domain
136
- ```
137
-
138
- ## Re-exports from @stacksjs/dnsx
139
-
140
- Additional DNS utilities (lookups, resolution) are re-exported from the `@stacksjs/dnsx` package.
141
-
142
- ## Gotchas
143
- - **AWS-only** — currently only supports AWS Route53 as the DNS provider
144
- - **Uses ts-cloud SDK** — Route53 API calls go through the ts-cloud abstraction
145
- - **Result type** — most functions return `Result<T, Error>` from `ts-error-handling`, not plain values
146
- - **`writeNameserversToConfig` mutates config/dns.ts** — directly writes to the config file
147
- - **Domain name normalization** — trailing dots and www prefixes are handled automatically
148
- - **`createHostedZone` is idempotent** — returns existing zone if it already exists
149
- - **Nameservers must be synced** — hosted zone nameservers must match domain registrar nameservers for DNS to work
11
+ Use the native declarative DNS planner for config reconciliation, and Route53
12
+ helpers for hosted-zone/delegation management. Previewing a plan and applying
13
+ provider changes are separate operations.
14
+
15
+ ## Declarative additive sync
16
+
17
+ ~~~ts
18
+ import { syncDnsConfig } from '@stacksjs/dns'
19
+ import { dns, overridesReady } from '@stacksjs/config'
20
+
21
+ await overridesReady
22
+ const preview = await syncDnsConfig('example.com', dns, { dryRun: true })
23
+ console.log(preview.plan.create, preview.plan.keep, preview.plan.skip)
24
+ ~~~
25
+
26
+ desiredDnsRecords(domain, config) converts native config to provider records.
27
+ planDnsSync(desired, current, { zone? }) returns create/keep/skip with reasons.
28
+ syncDnsConfig(domain, config, { dryRun?, provider? }) reports created/kept/failed,
29
+ failures/skipped/applied/provider. It only creates missing declared records;
30
+ it never deletes or overwrites an existing value. Single-value A/AAAA/CNAME
31
+ records are kept when present; TXT/MX can add distinct values. Editing config
32
+ does not imply changing an already-present provider value.
33
+
34
+ dryRun reads public DNS without provider credentials; that is not a complete
35
+ zone export. Actual apply selects a ts-cloud DNS provider by domain/nameservers
36
+ and credentials. A missing provider yields an unapplied plan, not fake success.
37
+ The native sync interface supports Route53/Porkbun/GoDaddy/Cloudflare through
38
+ the provider factory; retained request/planner tests are not live provider parity.
39
+
40
+ ## Native config record shapes
41
+
42
+ config/dns.ts uses a/aaaa records with address, cname with target, txt with
43
+ content, and mx with mailServer/priority. Each has name and optional ttl.
44
+ The older generic value field is not this contract. nameservers describe
45
+ delegation and are not included in desired zone records.
46
+
47
+ Names @/empty mean the apex; names already in the zone or ending in a dot are
48
+ absolute. A/AAAA address @ copies an apex address declared in the same config;
49
+ without one it is skipped with a reason. CNAME target @ names the apex.
50
+ Private/loopback/placeholder addresses and out-of-zone records are skipped;
51
+ TTL normalization applies the planner's current minimum. Resolve conflicts
52
+ deliberately rather than interpreting keep as identical desired content.
53
+
54
+ resolveLiveRecords(domain) reads public DNS. renderDnsConfig(domain, records)
55
+ renders source for review; dnsProviderForDomain(domain) resolves the mutable
56
+ provider. Use buddy dns:* --help for pull/sync command flags and output paths.
57
+
58
+ ## Route53 zone and registrar helpers
59
+
60
+ The public entry also exports createHostedZone, findHostedZone,
61
+ deleteHostedZone/deleteHostedZoneRecords, getNameservers/getHostedZoneNameservers,
62
+ updateNameservers, writeNameserversToConfig and addDomain. Their source is
63
+ drivers/aws.ts; most zone operations return Result and require inspecting isOk.
64
+ Registrar nameservers and hosted-zone delegation are different state. Deleting
65
+ a zone or publishing delegation requires the task's authorization.
66
+
67
+ writeNameserversToConfig changes config/dns.ts. addDomain delegates to the native
68
+ application action. Normalization, idempotent zone lookup and provider API errors
69
+ are defined by their implementations; use real results instead of assuming
70
+ await means a record was published.
71
+
72
+ ## Boundaries and evidence
73
+
74
+ `@stacksjs/dns` does not currently re-export dnsx: the dependency's missing
75
+ runtime entry was intentionally removed from the public graph. Use an installed
76
+ working resolver package or native DNS where appropriate, not an import promised
77
+ only by ambient declarations. Deploy mail DNS reconciliation has its own owned
78
+ record policy in buddy, distinct from this strictly additive planner.
79
+
80
+ Source: `storage/framework/core/dns/src/index.ts`, sync.ts, drivers/aws.ts,
81
+ config/dns.ts and core/types/src/dns.ts. Evidence: core/dns/tests/sync.test.ts
82
+ and dns.test.ts. No live DNS mutations are needed to review the planner.
@@ -0,0 +1,47 @@
1
+ # ADR Format
2
+
3
+ ADRs live in `docs/adr/` and use sequential numbering: `0001-slug.md`, `0002-slug.md`, etc.
4
+
5
+ Create the `docs/adr/` directory lazily: only when the first ADR is needed.
6
+
7
+ ## Template
8
+
9
+ ```md
10
+ # {Short title of the decision}
11
+
12
+ {1-3 sentences: what's the context, what did we decide, and why.}
13
+ ```
14
+
15
+ That's it. An ADR can be a single paragraph. The value is in recording *that* a decision was made and *why*, not in filling out sections.
16
+
17
+ ## Optional sections
18
+
19
+ Only include these when they add genuine value. Most ADRs won't need them.
20
+
21
+ - **Status** frontmatter (`proposed | accepted | deprecated | superseded by ADR-NNNN`): useful when decisions are revisited
22
+ - **Considered Options**: only when the rejected alternatives are worth remembering
23
+ - **Consequences**: only when non-obvious downstream effects need to be called out
24
+
25
+ ## Numbering
26
+
27
+ Scan `docs/adr/` for the highest existing number and increment by one.
28
+
29
+ ## When to offer an ADR
30
+
31
+ All three of these must be true:
32
+
33
+ 1. **Hard to reverse**: the cost of changing your mind later is meaningful
34
+ 2. **Surprising without context**: a future reader will look at the code and wonder "why on earth did they do it this way?"
35
+ 3. **The result of a real trade-off**: there were genuine alternatives and you picked one for specific reasons
36
+
37
+ If a decision is easy to reverse, skip it: you'll just reverse it. If it's not surprising, nobody will wonder why. If there was no real alternative, there's nothing to record beyond "we did the obvious thing."
38
+
39
+ ### What qualifies
40
+
41
+ - **Architectural shape.** "We're using a monorepo." "The write model is event-sourced, the read model is projected into Postgres."
42
+ - **Integration patterns between contexts.** "Ordering and Billing communicate via domain events, not synchronous HTTP."
43
+ - **Technology choices that carry lock-in.** Database, message bus, auth provider, deployment target. Not every library: just the ones that would take a quarter to swap out.
44
+ - **Boundary and scope decisions.** "Customer data is owned by the Customer context; other contexts reference it by ID only." The explicit no-s are as valuable as the yes-s.
45
+ - **Deliberate deviations from the obvious path.** "We're using manual SQL instead of an ORM because X." Anything where a reasonable reader would assume the opposite. These stop the next engineer from "fixing" something that was deliberate.
46
+ - **Constraints not visible in the code.** "We can't use AWS because of compliance requirements." "Response times must be under 200ms because of the partner API contract."
47
+ - **Rejected alternatives when the rejection is non-obvious.** If you considered GraphQL and picked REST for subtle reasons, record it; otherwise someone will suggest GraphQL again in six months.
@@ -0,0 +1,60 @@
1
+ # GLOSSARY.md Format
2
+
3
+ ## Structure
4
+
5
+ ```md
6
+ # {Context Name}
7
+
8
+ {One or two sentence description of what this context is and why it exists.}
9
+
10
+ ## Language
11
+
12
+ **Order**:
13
+ {A one or two sentence description of the term}
14
+ _Avoid_: Purchase, transaction
15
+
16
+ **Invoice**:
17
+ A request for payment sent to a customer after delivery.
18
+ _Avoid_: Bill, payment request
19
+
20
+ **Customer**:
21
+ A person or organization that places orders.
22
+ _Avoid_: Client, buyer, account
23
+ ```
24
+
25
+ ## Rules
26
+
27
+ - **Be opinionated.** When multiple words exist for the same concept, pick the best one and list the others under `_Avoid_`.
28
+ - **Keep definitions tight.** One or two sentences max. Define what it IS, not what it does.
29
+ - **Only include terms specific to this project's context.** General programming concepts (timeouts, error types, utility patterns) don't belong even if the project uses them extensively. Before adding a term, ask: is this a concept unique to this context, or a general programming concept? Only the former belongs.
30
+ - **Group terms under subheadings** when natural clusters emerge. If all terms belong to a single cohesive area, a flat list is fine.
31
+
32
+ ## Single vs multi-context repos
33
+
34
+ **Single context (most repos):** One `GLOSSARY.md` at the repo root.
35
+
36
+ **Multiple contexts:** A `GLOSSARY-MAP.md` at the repo root lists the contexts, where they live, and how they relate to each other:
37
+
38
+ ```md
39
+ # Glossary Map
40
+
41
+ ## Contexts
42
+
43
+ - [Ordering](src/ordering/GLOSSARY.md): receives and tracks customer orders
44
+ - [Billing](src/billing/GLOSSARY.md): generates invoices and processes payments
45
+ - [Fulfillment](src/fulfillment/GLOSSARY.md): manages warehouse picking and shipping
46
+
47
+ ## Relationships
48
+
49
+ - **Ordering → Fulfillment**: Ordering emits `OrderPlaced` events; Fulfillment consumes them to start picking
50
+ - **Fulfillment → Billing**: Fulfillment emits `ShipmentDispatched` events; Billing consumes them to generate invoices
51
+ - **Ordering ↔ Billing**: Shared types for `CustomerId` and `Money`
52
+ ```
53
+
54
+ The skill infers which structure applies:
55
+
56
+ - If `GLOSSARY-MAP.md` exists, read it to find contexts
57
+ - If only a root `GLOSSARY.md` exists, single context
58
+ - If neither exists, create a root `GLOSSARY.md` lazily when the first term is resolved
59
+
60
+ When multiple contexts exist, infer which one the current topic relates to. If unclear, ask.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Matt Pocock
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,10 @@
1
+ # Source and license
2
+
3
+ The upstream MIT notice is preserved in [LICENSE](LICENSE).
4
+
5
+ ## domain-modeling
6
+
7
+ Source: [skills/engineering/domain-modeling/SKILL.md](https://github.com/mattpocock/skills/blob/49dd158d1076134a641b33efb035946536778336/skills/engineering/domain-modeling/SKILL.md),
8
+ revision `49dd158d1076134a641b33efb035946536778336`.
9
+
10
+ Reviewed against the existing Stacks workflow. Stacks API guidance is retained; current workflow changes and supporting references are integrated where applicable.
@@ -24,6 +24,13 @@ Credit: adapted from Matt Pocock's `domain-modeling` skill (MIT),
24
24
 
25
25
  ## File structure
26
26
 
27
+ Honor the existing domain source. A project using `GLOSSARY.md` or
28
+ `GLOSSARY-MAP.md` keeps that layout; a project using `CONTEXT.md` keeps this
29
+ skill's existing layout. Follow map pointers to the relevant context rather
30
+ than putting every bounded context into one glossary. Keep definitions about
31
+ domain meaning; specs and ADRs hold implementation decisions. The updated
32
+ glossary-only template is [GLOSSARY-FORMAT.md](GLOSSARY-FORMAT.md).
33
+
27
34
  Most repos have a single context:
28
35
 
29
36
  ```
@@ -104,6 +111,10 @@ If any of the three is missing, skip it.
104
111
 
105
112
  ## Downstream
106
113
 
114
+ `stacks-grill-with-docs` combines this discipline with `stacks-grilling`.
115
+ Current upstream provenance is in [NOTICE.md](NOTICE.md); read
116
+ [the Stacks adaptation rules](../stacks-flow/ENGINEERING.md) with this workflow.
117
+
107
118
  > Reach for `stacks-codebase-design` when the argument is about a module's
108
119
  > shape rather than its name, and `stacks-grilling` when the term will not
109
120
  > settle without an interview.