@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.
- package/ai/AGENTS.md +36 -1
- package/ai/README.md +39 -1
- package/ai/skills/stacks-actions/SKILL.md +64 -6
- package/ai/skills/stacks-ai/SKILL.md +36 -10
- package/ai/skills/stacks-alias/SKILL.md +40 -85
- package/ai/skills/stacks-analytics/SKILL.md +23 -3
- package/ai/skills/stacks-arrays/SKILL.md +35 -9
- package/ai/skills/stacks-audio/SKILL.md +34 -0
- package/ai/skills/stacks-auth/ACCOUNT-WORKFLOWS.md +113 -0
- package/ai/skills/stacks-auth/SKILL.md +90 -57
- package/ai/skills/stacks-auto-imports/SKILL.md +80 -138
- package/ai/skills/stacks-browser/SKILL.md +82 -138
- package/ai/skills/stacks-browser-extension/SKILL.md +40 -0
- package/ai/skills/stacks-buddy/SKILL.md +2 -0
- package/ai/skills/stacks-build/SKILL.md +42 -23
- package/ai/skills/stacks-cache/SKILL.md +75 -115
- package/ai/skills/stacks-calendar/SKILL.md +61 -97
- package/ai/skills/stacks-charts/SKILL.md +34 -0
- package/ai/skills/stacks-chat/SKILL.md +18 -2
- package/ai/skills/stacks-chief-of-staff/LICENSE +21 -0
- package/ai/skills/stacks-chief-of-staff/NOTICE.md +10 -0
- package/ai/skills/stacks-chief-of-staff/PLAYBOOK.md +42 -0
- package/ai/skills/stacks-chief-of-staff/SKILL.md +28 -0
- package/ai/skills/stacks-cli/SKILL.md +23 -7
- package/ai/skills/stacks-cloud/SKILL.md +37 -20
- package/ai/skills/stacks-cms/PAGES.md +70 -0
- package/ai/skills/stacks-cms/SKILL.md +30 -18
- package/ai/skills/stacks-codebase-design/LICENSE +21 -0
- package/ai/skills/stacks-codebase-design/NOTICE.md +10 -0
- package/ai/skills/stacks-codebase-design/SKILL.md +10 -0
- package/ai/skills/stacks-collections/SKILL.md +25 -8
- package/ai/skills/stacks-commerce/SKILL.md +25 -1
- package/ai/skills/stacks-composables/BROWSER.md +97 -0
- package/ai/skills/stacks-composables/SKILL.md +87 -181
- package/ai/skills/stacks-config/SKILL.md +108 -162
- package/ai/skills/stacks-cron/SKILL.md +27 -13
- package/ai/skills/stacks-crosswind/SKILL.md +62 -167
- package/ai/skills/stacks-dashboard/SKILL.md +8 -0
- package/ai/skills/stacks-database/SKILL.md +98 -68
- package/ai/skills/stacks-datetime/SKILL.md +21 -5
- package/ai/skills/stacks-deploy/SKILL.md +17 -1
- package/ai/skills/stacks-design-brutalist/SKILL.md +1 -1
- package/ai/skills/stacks-design-minimalist/SKILL.md +17 -3
- package/ai/skills/stacks-design-soft/SKILL.md +16 -4
- package/ai/skills/stacks-design-taste/SKILL.md +55 -35
- package/ai/skills/stacks-design-taste-codex/SKILL.md +5 -5
- package/ai/skills/stacks-desktop/SKILL.md +22 -16
- package/ai/skills/stacks-development/SKILL.md +19 -8
- package/ai/skills/stacks-dns/SKILL.md +72 -139
- package/ai/skills/stacks-domain-modeling/ADR-FORMAT.md +47 -0
- package/ai/skills/stacks-domain-modeling/GLOSSARY-FORMAT.md +60 -0
- package/ai/skills/stacks-domain-modeling/LICENSE +21 -0
- package/ai/skills/stacks-domain-modeling/NOTICE.md +10 -0
- package/ai/skills/stacks-domain-modeling/SKILL.md +11 -0
- package/ai/skills/stacks-email/DELIVERY-CONTROLS.md +84 -0
- package/ai/skills/stacks-email/SKILL.md +18 -2
- package/ai/skills/stacks-enums/SKILL.md +28 -81
- package/ai/skills/stacks-env/SKILL.md +23 -15
- package/ai/skills/stacks-error-handling/SKILL.md +68 -121
- package/ai/skills/stacks-events/SKILL.md +83 -264
- package/ai/skills/stacks-faker/SKILL.md +28 -13
- package/ai/skills/stacks-feature-flags/SKILL.md +41 -0
- package/ai/skills/stacks-features/SKILL.md +46 -0
- package/ai/skills/stacks-flow/ENGINEERING.md +84 -0
- package/ai/skills/stacks-flow/LICENSE +21 -0
- package/ai/skills/stacks-flow/NOTICE.md +10 -0
- package/ai/skills/stacks-flow/SKILL.md +32 -0
- package/ai/skills/stacks-flow/upstream-skills.json +726 -0
- package/ai/skills/stacks-forms/SKILL.md +44 -0
- package/ai/skills/stacks-git/LICENSE +21 -0
- package/ai/skills/stacks-git/NOTICE.md +10 -0
- package/ai/skills/stacks-git/SKILL.md +11 -0
- package/ai/skills/stacks-grill-with-docs/LICENSE +21 -0
- package/ai/skills/stacks-grill-with-docs/NOTICE.md +10 -0
- package/ai/skills/stacks-grill-with-docs/PLAYBOOK.md +4 -0
- package/ai/skills/stacks-grill-with-docs/SKILL.md +24 -0
- package/ai/skills/stacks-grilling/LICENSE +21 -0
- package/ai/skills/stacks-grilling/NOTICE.md +17 -0
- package/ai/skills/stacks-grilling/SKILL.md +7 -0
- package/ai/skills/stacks-guard/LICENSE +21 -0
- package/ai/skills/stacks-guard/NOTICE.md +10 -0
- package/ai/skills/stacks-guard/SKILL.md +6 -0
- package/ai/skills/stacks-handoff/LICENSE +21 -0
- package/ai/skills/stacks-handoff/NOTICE.md +17 -0
- package/ai/skills/stacks-handoff/SKILL.md +8 -0
- package/ai/skills/stacks-http/SKILL.md +64 -297
- package/ai/skills/stacks-humanizer/LICENSE +21 -0
- package/ai/skills/stacks-humanizer/NOTICE.md +19 -0
- package/ai/skills/stacks-humanizer/SKILL.md +85 -0
- package/ai/skills/stacks-humanizer/references/patterns.md +350 -0
- package/ai/skills/stacks-i18n/SKILL.md +33 -8
- package/ai/skills/stacks-image/SKILL.md +37 -0
- package/ai/skills/stacks-image-to-code/SKILL.md +11 -6
- package/ai/skills/stacks-implement/LICENSE +21 -0
- package/ai/skills/stacks-implement/NOTICE.md +10 -0
- package/ai/skills/stacks-implement/PLAYBOOK.md +14 -0
- package/ai/skills/stacks-implement/SKILL.md +24 -0
- package/ai/skills/stacks-implement-spec/LICENSE +21 -0
- package/ai/skills/stacks-implement-spec/NOTICE.md +10 -0
- package/ai/skills/stacks-implement-spec/PLAYBOOK.md +37 -0
- package/ai/skills/stacks-implement-spec/SKILL.md +24 -0
- package/ai/skills/stacks-improve-codebase-architecture/HTML-REPORT.md +126 -0
- package/ai/skills/stacks-improve-codebase-architecture/LICENSE +21 -0
- package/ai/skills/stacks-improve-codebase-architecture/NOTICE.md +10 -0
- package/ai/skills/stacks-improve-codebase-architecture/PLAYBOOK.md +68 -0
- package/ai/skills/stacks-improve-codebase-architecture/SKILL.md +24 -0
- package/ai/skills/stacks-investigate/LICENSE +21 -0
- package/ai/skills/stacks-investigate/NOTICE.md +10 -0
- package/ai/skills/stacks-investigate/SKILL.md +6 -0
- package/ai/skills/stacks-jobs/SKILL.md +29 -8
- package/ai/skills/stacks-listeners/SKILL.md +13 -5
- package/ai/skills/stacks-logging/SKILL.md +71 -68
- package/ai/skills/stacks-loop/LICENSE +21 -0
- package/ai/skills/stacks-loop/NOTICE.md +10 -0
- package/ai/skills/stacks-loop/PLAYBOOK.md +28 -0
- package/ai/skills/stacks-loop/SKILL.md +28 -0
- package/ai/skills/stacks-mail/SKILL.md +46 -7
- package/ai/skills/stacks-marketing/CATALOG.md +60 -0
- package/ai/skills/stacks-marketing/LICENSE +21 -0
- package/ai/skills/stacks-marketing/NOTICE.md +5 -0
- package/ai/skills/stacks-marketing/SKILL.md +27 -0
- package/ai/skills/stacks-marketing/WORKFLOW.md +83 -0
- package/ai/skills/stacks-marketing-ab-testing/LICENSE +21 -0
- package/ai/skills/stacks-marketing-ab-testing/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-ab-testing/PLAYBOOK.md +352 -0
- package/ai/skills/stacks-marketing-ab-testing/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-ab-testing/evals/evals.json +116 -0
- package/ai/skills/stacks-marketing-ab-testing/references/sample-size-guide.md +263 -0
- package/ai/skills/stacks-marketing-ab-testing/references/test-templates.md +277 -0
- package/ai/skills/stacks-marketing-ad-creative/LICENSE +21 -0
- package/ai/skills/stacks-marketing-ad-creative/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-ad-creative/PLAYBOOK.md +434 -0
- package/ai/skills/stacks-marketing-ad-creative/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-ad-creative/assets/creative-review-template.html +432 -0
- package/ai/skills/stacks-marketing-ad-creative/evals/evals.json +280 -0
- package/ai/skills/stacks-marketing-ad-creative/references/awareness-headlines.md +54 -0
- package/ai/skills/stacks-marketing-ad-creative/references/creative-review-page.md +109 -0
- package/ai/skills/stacks-marketing-ad-creative/references/creative-roadmap.md +118 -0
- package/ai/skills/stacks-marketing-ad-creative/references/generative-tools.md +613 -0
- package/ai/skills/stacks-marketing-ad-creative/references/hook-system.md +115 -0
- package/ai/skills/stacks-marketing-ad-creative/references/imessage-video-ads.md +197 -0
- package/ai/skills/stacks-marketing-ad-creative/references/meta-creative-formats.md +114 -0
- package/ai/skills/stacks-marketing-ad-creative/references/motion-video-ads.md +126 -0
- package/ai/skills/stacks-marketing-ad-creative/references/platform-specs.md +213 -0
- package/ai/skills/stacks-marketing-ad-creative/references/short-form-video-specs.md +213 -0
- package/ai/skills/stacks-marketing-ad-creative/references/static-ad-templates.md +308 -0
- package/ai/skills/stacks-marketing-ads/LICENSE +21 -0
- package/ai/skills/stacks-marketing-ads/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-ads/PLAYBOOK.md +464 -0
- package/ai/skills/stacks-marketing-ads/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-ads/evals/evals.json +192 -0
- package/ai/skills/stacks-marketing-ads/references/abm-playbook.md +101 -0
- package/ai/skills/stacks-marketing-ads/references/ad-copy-templates.md +207 -0
- package/ai/skills/stacks-marketing-ads/references/audience-targeting.md +243 -0
- package/ai/skills/stacks-marketing-ads/references/audit-guardrails.md +83 -0
- package/ai/skills/stacks-marketing-ads/references/b2b-paid-playbook.md +115 -0
- package/ai/skills/stacks-marketing-ads/references/conversion-tracking.md +361 -0
- package/ai/skills/stacks-marketing-ads/references/creative-research-automation.md +103 -0
- package/ai/skills/stacks-marketing-ads/references/google-ads-audit-checklist.md +84 -0
- package/ai/skills/stacks-marketing-ads/references/google-search-playbook.md +120 -0
- package/ai/skills/stacks-marketing-ads/references/linkedin-b2b-playbook.md +107 -0
- package/ai/skills/stacks-marketing-ads/references/meta-andromeda-playbook.md +44 -0
- package/ai/skills/stacks-marketing-ads/references/meta-decision-system.md +176 -0
- package/ai/skills/stacks-marketing-ads/references/payback-period.md +73 -0
- package/ai/skills/stacks-marketing-ads/references/platform-setup-checklists.md +277 -0
- package/ai/skills/stacks-marketing-ads/references/reading-google-ads-data.md +121 -0
- package/ai/skills/stacks-marketing-ads/references/rsa-output-spec.md +88 -0
- package/ai/skills/stacks-marketing-ai-seo/LICENSE +21 -0
- package/ai/skills/stacks-marketing-ai-seo/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-ai-seo/PLAYBOOK.md +494 -0
- package/ai/skills/stacks-marketing-ai-seo/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-ai-seo/evals/evals.json +163 -0
- package/ai/skills/stacks-marketing-ai-seo/references/agent-readiness.md +66 -0
- package/ai/skills/stacks-marketing-ai-seo/references/citations-vs-recommendations.md +89 -0
- package/ai/skills/stacks-marketing-ai-seo/references/content-patterns.md +287 -0
- package/ai/skills/stacks-marketing-ai-seo/references/content-types.md +82 -0
- package/ai/skills/stacks-marketing-ai-seo/references/format-volatility.md +95 -0
- package/ai/skills/stacks-marketing-ai-seo/references/linkedin-ai-citations.md +131 -0
- package/ai/skills/stacks-marketing-ai-seo/references/okf.md +104 -0
- package/ai/skills/stacks-marketing-ai-seo/references/platform-ranking-factors.md +167 -0
- package/ai/skills/stacks-marketing-ai-seo/references/positioning-and-consensus.md +102 -0
- package/ai/skills/stacks-marketing-ai-seo/references/youtube-ai-citations.md +66 -0
- package/ai/skills/stacks-marketing-analytics/LICENSE +21 -0
- package/ai/skills/stacks-marketing-analytics/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-analytics/PLAYBOOK.md +307 -0
- package/ai/skills/stacks-marketing-analytics/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-analytics/evals/evals.json +117 -0
- package/ai/skills/stacks-marketing-analytics/references/event-library.md +260 -0
- package/ai/skills/stacks-marketing-analytics/references/ga4-implementation.md +304 -0
- package/ai/skills/stacks-marketing-analytics/references/gtm-implementation.md +396 -0
- package/ai/skills/stacks-marketing-aso/LICENSE +21 -0
- package/ai/skills/stacks-marketing-aso/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-aso/PLAYBOOK.md +310 -0
- package/ai/skills/stacks-marketing-aso/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-aso/evals/evals.json +104 -0
- package/ai/skills/stacks-marketing-aso/references/apple-specs.md +107 -0
- package/ai/skills/stacks-marketing-aso/references/benchmarks.md +131 -0
- package/ai/skills/stacks-marketing-aso/references/google-play-specs.md +135 -0
- package/ai/skills/stacks-marketing-aso/references/report-template.md +213 -0
- package/ai/skills/stacks-marketing-aso/references/scoring-criteria.md +213 -0
- package/ai/skills/stacks-marketing-attribution/LICENSE +21 -0
- package/ai/skills/stacks-marketing-attribution/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-attribution/PLAYBOOK.md +223 -0
- package/ai/skills/stacks-marketing-attribution/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-attribution/evals/evals.json +128 -0
- package/ai/skills/stacks-marketing-attribution/references/attribution-models.md +74 -0
- package/ai/skills/stacks-marketing-attribution/references/by-business-type.md +54 -0
- package/ai/skills/stacks-marketing-attribution/references/first-party-tracking.md +253 -0
- package/ai/skills/stacks-marketing-attribution/references/measurement-paradigms.md +85 -0
- package/ai/skills/stacks-marketing-churn-prevention/LICENSE +21 -0
- package/ai/skills/stacks-marketing-churn-prevention/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-churn-prevention/PLAYBOOK.md +420 -0
- package/ai/skills/stacks-marketing-churn-prevention/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-churn-prevention/evals/evals.json +107 -0
- package/ai/skills/stacks-marketing-churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/ai/skills/stacks-marketing-churn-prevention/references/dunning-playbook.md +413 -0
- package/ai/skills/stacks-marketing-co-marketing/LICENSE +21 -0
- package/ai/skills/stacks-marketing-co-marketing/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-co-marketing/PLAYBOOK.md +306 -0
- package/ai/skills/stacks-marketing-co-marketing/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-co-marketing/evals/evals.json +98 -0
- package/ai/skills/stacks-marketing-co-marketing/references/partnership-types.md +100 -0
- package/ai/skills/stacks-marketing-cold-email/LICENSE +21 -0
- package/ai/skills/stacks-marketing-cold-email/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-cold-email/PLAYBOOK.md +210 -0
- package/ai/skills/stacks-marketing-cold-email/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-cold-email/evals/evals.json +137 -0
- package/ai/skills/stacks-marketing-cold-email/references/benchmarks.md +87 -0
- package/ai/skills/stacks-marketing-cold-email/references/deliverability.md +111 -0
- package/ai/skills/stacks-marketing-cold-email/references/follow-up-sequences.md +81 -0
- package/ai/skills/stacks-marketing-cold-email/references/frameworks.md +90 -0
- package/ai/skills/stacks-marketing-cold-email/references/linkedin-outreach.md +91 -0
- package/ai/skills/stacks-marketing-cold-email/references/multichannel-cadence.md +79 -0
- package/ai/skills/stacks-marketing-cold-email/references/outbound-plays.md +88 -0
- package/ai/skills/stacks-marketing-cold-email/references/personalization.md +90 -0
- package/ai/skills/stacks-marketing-cold-email/references/reply-handling.md +65 -0
- package/ai/skills/stacks-marketing-cold-email/references/subject-lines.md +53 -0
- package/ai/skills/stacks-marketing-community-marketing/LICENSE +21 -0
- package/ai/skills/stacks-marketing-community-marketing/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-community-marketing/PLAYBOOK.md +171 -0
- package/ai/skills/stacks-marketing-community-marketing/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-community-marketing/evals/evals.json +103 -0
- package/ai/skills/stacks-marketing-community-marketing/references/community-models.md +63 -0
- package/ai/skills/stacks-marketing-competitor-profiling/LICENSE +21 -0
- package/ai/skills/stacks-marketing-competitor-profiling/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-competitor-profiling/PLAYBOOK.md +436 -0
- package/ai/skills/stacks-marketing-competitor-profiling/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-competitor-profiling/evals/evals.json +97 -0
- package/ai/skills/stacks-marketing-competitor-profiling/references/templates.md +167 -0
- package/ai/skills/stacks-marketing-competitor-profiling/references/tool-reference.md +314 -0
- package/ai/skills/stacks-marketing-competitors/LICENSE +21 -0
- package/ai/skills/stacks-marketing-competitors/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-competitors/PLAYBOOK.md +283 -0
- package/ai/skills/stacks-marketing-competitors/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-competitors/evals/evals.json +119 -0
- package/ai/skills/stacks-marketing-competitors/references/content-architecture.md +277 -0
- package/ai/skills/stacks-marketing-competitors/references/templates.md +226 -0
- package/ai/skills/stacks-marketing-content-strategy/LICENSE +21 -0
- package/ai/skills/stacks-marketing-content-strategy/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-content-strategy/PLAYBOOK.md +437 -0
- package/ai/skills/stacks-marketing-content-strategy/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-content-strategy/evals/evals.json +116 -0
- package/ai/skills/stacks-marketing-content-strategy/references/content-distribution.md +83 -0
- package/ai/skills/stacks-marketing-content-strategy/references/headless-cms.md +194 -0
- package/ai/skills/stacks-marketing-copy-editing/LICENSE +21 -0
- package/ai/skills/stacks-marketing-copy-editing/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-copy-editing/PLAYBOOK.md +485 -0
- package/ai/skills/stacks-marketing-copy-editing/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-copy-editing/evals/evals.json +117 -0
- package/ai/skills/stacks-marketing-copy-editing/references/checklist.md +77 -0
- package/ai/skills/stacks-marketing-copy-editing/references/content-refresh.md +71 -0
- package/ai/skills/stacks-marketing-copy-editing/references/plain-english-alternatives.md +394 -0
- package/ai/skills/stacks-marketing-copywriting/LICENSE +21 -0
- package/ai/skills/stacks-marketing-copywriting/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-copywriting/PLAYBOOK.md +282 -0
- package/ai/skills/stacks-marketing-copywriting/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-copywriting/evals/evals.json +140 -0
- package/ai/skills/stacks-marketing-copywriting/references/ai-tells.md +261 -0
- package/ai/skills/stacks-marketing-copywriting/references/copy-frameworks.md +432 -0
- package/ai/skills/stacks-marketing-copywriting/references/natural-transitions.md +256 -0
- package/ai/skills/stacks-marketing-council/LICENSE +21 -0
- package/ai/skills/stacks-marketing-council/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-council/PLAYBOOK.md +157 -0
- package/ai/skills/stacks-marketing-council/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-council/evals/evals.json +70 -0
- package/ai/skills/stacks-marketing-council/references/advisor-template.md +51 -0
- package/ai/skills/stacks-marketing-council/references/advisors/alex-hormozi.md +43 -0
- package/ai/skills/stacks-marketing-council/references/advisors/ann-handley.md +43 -0
- package/ai/skills/stacks-marketing-council/references/advisors/april-dunford.md +41 -0
- package/ai/skills/stacks-marketing-council/references/advisors/byron-sharp.md +43 -0
- package/ai/skills/stacks-marketing-council/references/advisors/claude-hopkins.md +42 -0
- package/ai/skills/stacks-marketing-council/references/advisors/david-ogilvy.md +42 -0
- package/ai/skills/stacks-marketing-council/references/advisors/eugene-schwartz.md +42 -0
- package/ai/skills/stacks-marketing-council/references/advisors/gary-halbert.md +43 -0
- package/ai/skills/stacks-marketing-council/references/advisors/gary-vaynerchuk.md +43 -0
- package/ai/skills/stacks-marketing-council/references/advisors/rory-sutherland.md +42 -0
- package/ai/skills/stacks-marketing-council/references/advisors/russell-brunson.md +43 -0
- package/ai/skills/stacks-marketing-council/references/advisors/seth-godin.md +43 -0
- package/ai/skills/stacks-marketing-cro/LICENSE +21 -0
- package/ai/skills/stacks-marketing-cro/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-cro/PLAYBOOK.md +194 -0
- package/ai/skills/stacks-marketing-cro/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-cro/evals/evals.json +111 -0
- package/ai/skills/stacks-marketing-cro/references/experiments.md +248 -0
- package/ai/skills/stacks-marketing-cro/references/form.md +422 -0
- package/ai/skills/stacks-marketing-customer-research/LICENSE +21 -0
- package/ai/skills/stacks-marketing-customer-research/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-customer-research/PLAYBOOK.md +304 -0
- package/ai/skills/stacks-marketing-customer-research/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-customer-research/evals/evals.json +176 -0
- package/ai/skills/stacks-marketing-customer-research/references/interviews-and-surveys.md +155 -0
- package/ai/skills/stacks-marketing-customer-research/references/source-guides.md +401 -0
- package/ai/skills/stacks-marketing-directory-submissions/LICENSE +21 -0
- package/ai/skills/stacks-marketing-directory-submissions/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-directory-submissions/PLAYBOOK.md +397 -0
- package/ai/skills/stacks-marketing-directory-submissions/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-directory-submissions/evals/evals.json +121 -0
- package/ai/skills/stacks-marketing-directory-submissions/references/directory-list.md +545 -0
- package/ai/skills/stacks-marketing-directory-submissions/references/positioning-variations.md +232 -0
- package/ai/skills/stacks-marketing-directory-submissions/references/submission-tracker-template.csv +272 -0
- package/ai/skills/stacks-marketing-emails/LICENSE +21 -0
- package/ai/skills/stacks-marketing-emails/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-emails/PLAYBOOK.md +336 -0
- package/ai/skills/stacks-marketing-emails/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-emails/evals/evals.json +105 -0
- package/ai/skills/stacks-marketing-emails/references/copy-guidelines.md +113 -0
- package/ai/skills/stacks-marketing-emails/references/email-types.md +515 -0
- package/ai/skills/stacks-marketing-emails/references/sequence-templates.md +168 -0
- package/ai/skills/stacks-marketing-events/LICENSE +21 -0
- package/ai/skills/stacks-marketing-events/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-events/PLAYBOOK.md +127 -0
- package/ai/skills/stacks-marketing-events/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-events/evals/evals.json +92 -0
- package/ai/skills/stacks-marketing-events/references/event-portfolio-strategy.md +80 -0
- package/ai/skills/stacks-marketing-events/references/speaking.md +49 -0
- package/ai/skills/stacks-marketing-events/references/sponsorship-roi.md +57 -0
- package/ai/skills/stacks-marketing-events/references/webinar-funnel.md +88 -0
- package/ai/skills/stacks-marketing-free-tools/LICENSE +21 -0
- package/ai/skills/stacks-marketing-free-tools/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-free-tools/PLAYBOOK.md +186 -0
- package/ai/skills/stacks-marketing-free-tools/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-free-tools/evals/evals.json +103 -0
- package/ai/skills/stacks-marketing-free-tools/references/tool-benchmarks.md +35 -0
- package/ai/skills/stacks-marketing-free-tools/references/tool-types.md +217 -0
- package/ai/skills/stacks-marketing-ideas/LICENSE +21 -0
- package/ai/skills/stacks-marketing-ideas/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-ideas/PLAYBOOK.md +167 -0
- package/ai/skills/stacks-marketing-ideas/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-ideas/evals/evals.json +105 -0
- package/ai/skills/stacks-marketing-ideas/references/guerrilla-marketing.md +56 -0
- package/ai/skills/stacks-marketing-ideas/references/ideas-by-category.md +366 -0
- package/ai/skills/stacks-marketing-image/LICENSE +21 -0
- package/ai/skills/stacks-marketing-image/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-image/PLAYBOOK.md +336 -0
- package/ai/skills/stacks-marketing-image/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-image/evals/evals.json +89 -0
- package/ai/skills/stacks-marketing-image/references/ai-image-prompting.md +229 -0
- package/ai/skills/stacks-marketing-influencer-marketing/LICENSE +21 -0
- package/ai/skills/stacks-marketing-influencer-marketing/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-influencer-marketing/PLAYBOOK.md +198 -0
- package/ai/skills/stacks-marketing-influencer-marketing/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-influencer-marketing/evals/evals.json +89 -0
- package/ai/skills/stacks-marketing-influencer-marketing/references/ugc-creator-program.md +91 -0
- package/ai/skills/stacks-marketing-launch/LICENSE +21 -0
- package/ai/skills/stacks-marketing-launch/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-launch/PLAYBOOK.md +381 -0
- package/ai/skills/stacks-marketing-launch/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-launch/evals/evals.json +135 -0
- package/ai/skills/stacks-marketing-launch/references/shipped-changes.md +84 -0
- package/ai/skills/stacks-marketing-launch/references/site-launch-qa.md +57 -0
- package/ai/skills/stacks-marketing-lead-magnets/LICENSE +21 -0
- package/ai/skills/stacks-marketing-lead-magnets/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-lead-magnets/PLAYBOOK.md +308 -0
- package/ai/skills/stacks-marketing-lead-magnets/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-lead-magnets/evals/evals.json +105 -0
- package/ai/skills/stacks-marketing-lead-magnets/references/benchmarks.md +129 -0
- package/ai/skills/stacks-marketing-lead-magnets/references/content-to-skill-corpus-design.md +89 -0
- package/ai/skills/stacks-marketing-lead-magnets/references/content-to-skill-release.md +71 -0
- package/ai/skills/stacks-marketing-lead-magnets/references/content-to-skill.md +109 -0
- package/ai/skills/stacks-marketing-lead-magnets/references/format-guide.md +196 -0
- package/ai/skills/stacks-marketing-loops/LICENSE +21 -0
- package/ai/skills/stacks-marketing-loops/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-loops/PLAYBOOK.md +111 -0
- package/ai/skills/stacks-marketing-loops/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-loops/evals/evals.json +133 -0
- package/ai/skills/stacks-marketing-loops/references/loop-catalog.md +796 -0
- package/ai/skills/stacks-marketing-loops/references/loop-guardrails.md +73 -0
- package/ai/skills/stacks-marketing-loops/references/loop-orchestration.md +71 -0
- package/ai/skills/stacks-marketing-loops/references/loop-state.md +67 -0
- package/ai/skills/stacks-marketing-loops/references/loop-template.md +79 -0
- package/ai/skills/stacks-marketing-loops/references/outbound-operator.md +86 -0
- package/ai/skills/stacks-marketing-loops/references/seo-operator.md +110 -0
- package/ai/skills/stacks-marketing-offers/LICENSE +21 -0
- package/ai/skills/stacks-marketing-offers/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-offers/PLAYBOOK.md +151 -0
- package/ai/skills/stacks-marketing-offers/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-offers/evals/evals.json +21 -0
- package/ai/skills/stacks-marketing-offers/references/bonus-stacking.md +150 -0
- package/ai/skills/stacks-marketing-offers/references/examples.md +215 -0
- package/ai/skills/stacks-marketing-offers/references/guarantee-design.md +172 -0
- package/ai/skills/stacks-marketing-offers/references/offer-anatomy.md +203 -0
- package/ai/skills/stacks-marketing-offers/references/offer-formats.md +240 -0
- package/ai/skills/stacks-marketing-offers/references/saas-offers.md +116 -0
- package/ai/skills/stacks-marketing-offers/references/scarcity-urgency.md +175 -0
- package/ai/skills/stacks-marketing-offers/references/value-equation.md +134 -0
- package/ai/skills/stacks-marketing-onboarding/LICENSE +21 -0
- package/ai/skills/stacks-marketing-onboarding/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-onboarding/PLAYBOOK.md +257 -0
- package/ai/skills/stacks-marketing-onboarding/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-onboarding/evals/evals.json +108 -0
- package/ai/skills/stacks-marketing-onboarding/references/activation-models.md +57 -0
- package/ai/skills/stacks-marketing-onboarding/references/experiments.md +258 -0
- package/ai/skills/stacks-marketing-onboarding/references/minimum-path-to-value.md +49 -0
- package/ai/skills/stacks-marketing-paywalls/LICENSE +21 -0
- package/ai/skills/stacks-marketing-paywalls/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-paywalls/PLAYBOOK.md +223 -0
- package/ai/skills/stacks-marketing-paywalls/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-paywalls/evals/evals.json +93 -0
- package/ai/skills/stacks-marketing-paywalls/references/experiments.md +164 -0
- package/ai/skills/stacks-marketing-plan/LICENSE +21 -0
- package/ai/skills/stacks-marketing-plan/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-plan/PLAYBOOK.md +300 -0
- package/ai/skills/stacks-marketing-plan/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-plan/evals/evals.json +140 -0
- package/ai/skills/stacks-marketing-plan/references/aarrr-framework.md +180 -0
- package/ai/skills/stacks-marketing-plan/references/budget-planning.md +177 -0
- package/ai/skills/stacks-marketing-plan/references/client-types.md +373 -0
- package/ai/skills/stacks-marketing-plan/references/current-state-rubric.md +255 -0
- package/ai/skills/stacks-marketing-plan/references/example-quietude.md +972 -0
- package/ai/skills/stacks-marketing-plan/references/funding-stage-unlocks.md +230 -0
- package/ai/skills/stacks-marketing-plan/references/growth-patterns.md +190 -0
- package/ai/skills/stacks-marketing-plan/references/idea-cross-reference.md +265 -0
- package/ai/skills/stacks-marketing-plan/references/market-sizing.md +166 -0
- package/ai/skills/stacks-marketing-plan/references/measurement-framework.md +213 -0
- package/ai/skills/stacks-marketing-plan/references/methodology.md +365 -0
- package/ai/skills/stacks-marketing-plan/references/ops-stack-mapping.md +197 -0
- package/ai/skills/stacks-marketing-plan/references/plan-template.md +494 -0
- package/ai/skills/stacks-marketing-plan/references/team-and-agency-model.md +278 -0
- package/ai/skills/stacks-marketing-popups/LICENSE +21 -0
- package/ai/skills/stacks-marketing-popups/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-popups/PLAYBOOK.md +450 -0
- package/ai/skills/stacks-marketing-popups/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-popups/evals/evals.json +94 -0
- package/ai/skills/stacks-marketing-pricing/LICENSE +21 -0
- package/ai/skills/stacks-marketing-pricing/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-pricing/PLAYBOOK.md +291 -0
- package/ai/skills/stacks-marketing-pricing/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-pricing/evals/evals.json +131 -0
- package/ai/skills/stacks-marketing-pricing/references/pricing-models.md +66 -0
- package/ai/skills/stacks-marketing-pricing/references/pricing-page-teardown.md +87 -0
- package/ai/skills/stacks-marketing-pricing/references/research-methods.md +156 -0
- package/ai/skills/stacks-marketing-pricing/references/tier-structure.md +232 -0
- package/ai/skills/stacks-marketing-product-marketing/LICENSE +21 -0
- package/ai/skills/stacks-marketing-product-marketing/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-product-marketing/PLAYBOOK.md +255 -0
- package/ai/skills/stacks-marketing-product-marketing/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-product-marketing/evals/evals.json +98 -0
- package/ai/skills/stacks-marketing-programmatic-seo/LICENSE +21 -0
- package/ai/skills/stacks-marketing-programmatic-seo/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-programmatic-seo/PLAYBOOK.md +238 -0
- package/ai/skills/stacks-marketing-programmatic-seo/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-programmatic-seo/evals/evals.json +107 -0
- package/ai/skills/stacks-marketing-programmatic-seo/references/implementation-platforms.md +41 -0
- package/ai/skills/stacks-marketing-programmatic-seo/references/playbooks.md +308 -0
- package/ai/skills/stacks-marketing-prospecting/LICENSE +21 -0
- package/ai/skills/stacks-marketing-prospecting/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-prospecting/PLAYBOOK.md +273 -0
- package/ai/skills/stacks-marketing-prospecting/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-prospecting/evals/evals.json +163 -0
- package/ai/skills/stacks-marketing-prospecting/references/account-research.md +59 -0
- package/ai/skills/stacks-marketing-prospecting/references/b2b-prospecting.md +106 -0
- package/ai/skills/stacks-marketing-prospecting/references/compliance.md +161 -0
- package/ai/skills/stacks-marketing-prospecting/references/data-sources.md +300 -0
- package/ai/skills/stacks-marketing-prospecting/references/demand-signals.md +131 -0
- package/ai/skills/stacks-marketing-prospecting/references/enrichment-playbook.md +61 -0
- package/ai/skills/stacks-marketing-prospecting/references/local-prospecting.md +165 -0
- package/ai/skills/stacks-marketing-prospecting/references/saas-prospecting.md +123 -0
- package/ai/skills/stacks-marketing-prospecting/references/signal-plays.md +99 -0
- package/ai/skills/stacks-marketing-prospecting/references/sourcing-and-enrichment.md +89 -0
- package/ai/skills/stacks-marketing-psychology/LICENSE +21 -0
- package/ai/skills/stacks-marketing-psychology/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-psychology/PLAYBOOK.md +451 -0
- package/ai/skills/stacks-marketing-psychology/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-psychology/evals/evals.json +88 -0
- package/ai/skills/stacks-marketing-public-relations/LICENSE +21 -0
- package/ai/skills/stacks-marketing-public-relations/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-public-relations/PLAYBOOK.md +150 -0
- package/ai/skills/stacks-marketing-public-relations/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-public-relations/evals/evals.json +36 -0
- package/ai/skills/stacks-marketing-public-relations/references/crisis-communications.md +113 -0
- package/ai/skills/stacks-marketing-public-relations/references/journalist-pitching.md +368 -0
- package/ai/skills/stacks-marketing-public-relations/references/media-outlets.md +207 -0
- package/ai/skills/stacks-marketing-public-relations/references/newsjacking.md +220 -0
- package/ai/skills/stacks-marketing-public-relations/references/podcast-guest-prep.md +60 -0
- package/ai/skills/stacks-marketing-public-relations/references/press-platforms.md +188 -0
- package/ai/skills/stacks-marketing-public-relations/references/statement-templates.md +145 -0
- package/ai/skills/stacks-marketing-public-relations/references/story-angles.md +87 -0
- package/ai/skills/stacks-marketing-referrals/LICENSE +21 -0
- package/ai/skills/stacks-marketing-referrals/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-referrals/PLAYBOOK.md +279 -0
- package/ai/skills/stacks-marketing-referrals/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-referrals/evals/evals.json +202 -0
- package/ai/skills/stacks-marketing-referrals/references/affiliate-operations.md +64 -0
- package/ai/skills/stacks-marketing-referrals/references/affiliate-programs.md +167 -0
- package/ai/skills/stacks-marketing-referrals/references/program-examples.md +151 -0
- package/ai/skills/stacks-marketing-referrals/references/review-platform-rules.md +36 -0
- package/ai/skills/stacks-marketing-referrals/references/review-program-operations.md +62 -0
- package/ai/skills/stacks-marketing-referrals/references/review-programs.md +96 -0
- package/ai/skills/stacks-marketing-referrals/references/viral-mechanisms.md +102 -0
- package/ai/skills/stacks-marketing-revops/LICENSE +21 -0
- package/ai/skills/stacks-marketing-revops/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-revops/PLAYBOOK.md +345 -0
- package/ai/skills/stacks-marketing-revops/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-revops/evals/evals.json +104 -0
- package/ai/skills/stacks-marketing-revops/references/automation-playbooks.md +290 -0
- package/ai/skills/stacks-marketing-revops/references/inbound-routing.md +43 -0
- package/ai/skills/stacks-marketing-revops/references/lifecycle-definitions.md +309 -0
- package/ai/skills/stacks-marketing-revops/references/routing-rules.md +203 -0
- package/ai/skills/stacks-marketing-revops/references/scoring-models.md +247 -0
- package/ai/skills/stacks-marketing-sales-enablement/LICENSE +21 -0
- package/ai/skills/stacks-marketing-sales-enablement/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-sales-enablement/PLAYBOOK.md +423 -0
- package/ai/skills/stacks-marketing-sales-enablement/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-sales-enablement/evals/evals.json +153 -0
- package/ai/skills/stacks-marketing-sales-enablement/references/cold-call-scripts.md +68 -0
- package/ai/skills/stacks-marketing-sales-enablement/references/deck-frameworks.md +263 -0
- package/ai/skills/stacks-marketing-sales-enablement/references/demo-scripts.md +355 -0
- package/ai/skills/stacks-marketing-sales-enablement/references/objection-library.md +270 -0
- package/ai/skills/stacks-marketing-sales-enablement/references/one-pager-templates.md +208 -0
- package/ai/skills/stacks-marketing-sales-enablement/references/win-loss-analysis.md +72 -0
- package/ai/skills/stacks-marketing-schema/LICENSE +21 -0
- package/ai/skills/stacks-marketing-schema/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-schema/PLAYBOOK.md +187 -0
- package/ai/skills/stacks-marketing-schema/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-schema/evals/evals.json +127 -0
- package/ai/skills/stacks-marketing-schema/references/schema-examples.md +392 -0
- package/ai/skills/stacks-marketing-seo-audit/LICENSE +21 -0
- package/ai/skills/stacks-marketing-seo-audit/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-seo-audit/PLAYBOOK.md +492 -0
- package/ai/skills/stacks-marketing-seo-audit/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-seo-audit/evals/evals.json +204 -0
- package/ai/skills/stacks-marketing-seo-audit/references/ai-writing-detection.md +200 -0
- package/ai/skills/stacks-marketing-seo-audit/references/international-seo.md +228 -0
- package/ai/skills/stacks-marketing-seo-audit/references/local-seo-pages-and-measurement.md +39 -0
- package/ai/skills/stacks-marketing-seo-audit/references/local-seo-profile-and-citations.md +41 -0
- package/ai/skills/stacks-marketing-seo-audit/references/local-seo.md +86 -0
- package/ai/skills/stacks-marketing-seo-audit/references/rankings-push.md +62 -0
- package/ai/skills/stacks-marketing-seo-audit/references/title-tags.md +89 -0
- package/ai/skills/stacks-marketing-signup/LICENSE +21 -0
- package/ai/skills/stacks-marketing-signup/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-signup/PLAYBOOK.md +359 -0
- package/ai/skills/stacks-marketing-signup/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-signup/evals/evals.json +88 -0
- package/ai/skills/stacks-marketing-site-architecture/LICENSE +21 -0
- package/ai/skills/stacks-marketing-site-architecture/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-site-architecture/PLAYBOOK.md +355 -0
- package/ai/skills/stacks-marketing-site-architecture/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-site-architecture/evals/evals.json +113 -0
- package/ai/skills/stacks-marketing-site-architecture/references/mermaid-templates.md +216 -0
- package/ai/skills/stacks-marketing-site-architecture/references/navigation-patterns.md +305 -0
- package/ai/skills/stacks-marketing-site-architecture/references/platforms-and-migration.md +86 -0
- package/ai/skills/stacks-marketing-site-architecture/references/site-type-templates.md +293 -0
- package/ai/skills/stacks-marketing-sms/LICENSE +21 -0
- package/ai/skills/stacks-marketing-sms/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-sms/PLAYBOOK.md +348 -0
- package/ai/skills/stacks-marketing-sms/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-sms/evals/evals.json +118 -0
- package/ai/skills/stacks-marketing-sms/references/compliance.md +202 -0
- package/ai/skills/stacks-marketing-sms/references/platforms.md +318 -0
- package/ai/skills/stacks-marketing-sms/references/sequence-templates.md +282 -0
- package/ai/skills/stacks-marketing-sms/references/whatsapp.md +260 -0
- package/ai/skills/stacks-marketing-social/LICENSE +21 -0
- package/ai/skills/stacks-marketing-social/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-social/PLAYBOOK.md +452 -0
- package/ai/skills/stacks-marketing-social/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-social/evals/evals.json +150 -0
- package/ai/skills/stacks-marketing-social/references/carousel-frameworks.md +141 -0
- package/ai/skills/stacks-marketing-social/references/listening-sources-template.md +123 -0
- package/ai/skills/stacks-marketing-social/references/listening.md +288 -0
- package/ai/skills/stacks-marketing-social/references/platform-limits.md +110 -0
- package/ai/skills/stacks-marketing-social/references/platforms.md +176 -0
- package/ai/skills/stacks-marketing-social/references/post-templates.md +179 -0
- package/ai/skills/stacks-marketing-social/references/reverse-engineering.md +195 -0
- package/ai/skills/stacks-marketing-social/references/short-form-video.md +237 -0
- package/ai/skills/stacks-marketing-social/references/x-algorithm.md +69 -0
- package/ai/skills/stacks-marketing-video/LICENSE +21 -0
- package/ai/skills/stacks-marketing-video/NOTICE.md +13 -0
- package/ai/skills/stacks-marketing-video/PLAYBOOK.md +330 -0
- package/ai/skills/stacks-marketing-video/SKILL.md +30 -0
- package/ai/skills/stacks-marketing-video/evals/evals.json +118 -0
- package/ai/skills/stacks-marketing-video/references/ai-video-prompting.md +175 -0
- package/ai/skills/stacks-marketing-video/references/edit-anatomy.md +86 -0
- package/ai/skills/stacks-marketing-video/references/product-demo-recording.md +176 -0
- package/ai/skills/stacks-middleware/SKILL.md +37 -21
- package/ai/skills/stacks-migrations/SKILL.md +29 -5
- package/ai/skills/stacks-mobile/SKILL.md +25 -4
- package/ai/skills/stacks-models/SKILL.md +35 -15
- package/ai/skills/stacks-models/references/model-capabilities.md +104 -0
- package/ai/skills/stacks-native/CAPABILITIES.md +536 -0
- package/ai/skills/stacks-native/CATALOG.md +930 -0
- package/ai/skills/stacks-native/RECIPES.md +108 -0
- package/ai/skills/stacks-native/SKILL.md +79 -0
- package/ai/skills/stacks-newsletter/SKILL.md +39 -0
- package/ai/skills/stacks-notifications/SKILL.md +118 -203
- package/ai/skills/stacks-objects/SKILL.md +18 -4
- package/ai/skills/stacks-orm/SKILL.md +112 -328
- package/ai/skills/stacks-pagination/SKILL.md +40 -0
- package/ai/skills/stacks-path/SKILL.md +38 -18
- package/ai/skills/stacks-payments/SKILL.md +9 -1
- package/ai/skills/stacks-pr/CREDITS.md +3 -0
- package/ai/skills/stacks-pr/LICENSE +21 -0
- package/ai/skills/stacks-pr/NOTICE.md +10 -0
- package/ai/skills/stacks-pr/PLAYBOOK.md +127 -0
- package/ai/skills/stacks-pr/SKILL.md +23 -0
- package/ai/skills/stacks-prototype/LICENSE +21 -0
- package/ai/skills/stacks-prototype/NOTICE.md +10 -0
- package/ai/skills/stacks-prototype/SKILL.md +6 -0
- package/ai/skills/stacks-push/SKILL.md +20 -0
- package/ai/skills/stacks-query-builder/SKILL.md +21 -5
- package/ai/skills/stacks-queue/DURABLE-WORKFLOWS.md +121 -0
- package/ai/skills/stacks-queue/SKILL.md +37 -6
- package/ai/skills/stacks-realtime/SKILL.md +29 -140
- package/ai/skills/stacks-redesign/SKILL.md +1 -1
- package/ai/skills/stacks-registry/SKILL.md +20 -48
- package/ai/skills/stacks-repl/SKILL.md +31 -7
- package/ai/skills/stacks-research/LICENSE +21 -0
- package/ai/skills/stacks-research/NOTICE.md +10 -0
- package/ai/skills/stacks-research/PLAYBOOK.md +10 -0
- package/ai/skills/stacks-research/SKILL.md +23 -0
- package/ai/skills/stacks-retro/LICENSE +21 -0
- package/ai/skills/stacks-retro/NOTICE.md +10 -0
- package/ai/skills/stacks-retro/SKILL.md +10 -0
- package/ai/skills/stacks-review/LICENSE +21 -0
- package/ai/skills/stacks-review/NOTICE.md +10 -0
- package/ai/skills/stacks-review/SKILL.md +15 -0
- package/ai/skills/stacks-router/SKILL.md +33 -2
- package/ai/skills/stacks-routes/SKILL.md +25 -2
- package/ai/skills/stacks-scaffold-exercises/LICENSE +21 -0
- package/ai/skills/stacks-scaffold-exercises/NOTICE.md +10 -0
- package/ai/skills/stacks-scaffold-exercises/PLAYBOOK.md +106 -0
- package/ai/skills/stacks-scaffold-exercises/SKILL.md +23 -0
- package/ai/skills/stacks-scaffolding/SKILL.md +27 -11
- package/ai/skills/stacks-scheduler/SKILL.md +52 -25
- package/ai/skills/stacks-search-engine/SKILL.md +28 -7
- package/ai/skills/stacks-security/SKILL.md +22 -6
- package/ai/skills/stacks-server/SKILL.md +47 -85
- package/ai/skills/stacks-setup-deep-modules/LICENSE +21 -0
- package/ai/skills/stacks-setup-deep-modules/NOTICE.md +10 -0
- package/ai/skills/stacks-setup-deep-modules/SKILL.md +55 -0
- package/ai/skills/stacks-setup-engineering/LICENSE +21 -0
- package/ai/skills/stacks-setup-engineering/NOTICE.md +10 -0
- package/ai/skills/stacks-setup-engineering/PLAYBOOK.md +115 -0
- package/ai/skills/stacks-setup-engineering/SKILL.md +24 -0
- package/ai/skills/stacks-setup-engineering/domain.md +51 -0
- package/ai/skills/stacks-setup-engineering/issue-tracker-github.md +46 -0
- package/ai/skills/stacks-setup-engineering/issue-tracker-gitlab.md +46 -0
- package/ai/skills/stacks-setup-engineering/issue-tracker-local.md +30 -0
- package/ai/skills/stacks-setup-engineering/triage-labels.md +15 -0
- package/ai/skills/stacks-sites/SKILL.md +44 -0
- package/ai/skills/stacks-skills/SKILL.md +33 -0
- package/ai/skills/stacks-slug/SKILL.md +15 -12
- package/ai/skills/stacks-sms/SKILL.md +33 -6
- package/ai/skills/stacks-socials/SKILL.md +81 -294
- package/ai/skills/stacks-storage/SKILL.md +34 -15
- package/ai/skills/stacks-storage/UPLOADS-AND-DISKS.md +133 -0
- package/ai/skills/stacks-strings/SKILL.md +41 -35
- package/ai/skills/stacks-stx/SKILL.md +63 -58
- package/ai/skills/stacks-tdd/LICENSE +21 -0
- package/ai/skills/stacks-tdd/NOTICE.md +10 -0
- package/ai/skills/stacks-tdd/SKILL.md +10 -0
- package/ai/skills/stacks-tdd/mocking.md +59 -0
- package/ai/skills/stacks-tdd/tests.md +77 -0
- package/ai/skills/stacks-teach/GLOSSARY-FORMAT.md +35 -0
- package/ai/skills/stacks-teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/ai/skills/stacks-teach/LICENSE +21 -0
- package/ai/skills/stacks-teach/MISSION-FORMAT.md +31 -0
- package/ai/skills/stacks-teach/NOTICE.md +10 -0
- package/ai/skills/stacks-teach/PLAYBOOK.md +136 -0
- package/ai/skills/stacks-teach/RESOURCES-FORMAT.md +32 -0
- package/ai/skills/stacks-teach/SKILL.md +24 -0
- package/ai/skills/stacks-technical-diagrams/SKILL.md +2 -2
- package/ai/skills/stacks-technical-diagrams/bin/diagrams +1 -1
- package/ai/skills/stacks-technical-diagrams/renderers/shared/bun-runtime.mjs +1 -1
- package/ai/skills/stacks-test-fixtures/LICENSE +21 -0
- package/ai/skills/stacks-test-fixtures/NOTICE.md +10 -0
- package/ai/skills/stacks-test-fixtures/SKILL.md +38 -0
- package/ai/skills/stacks-testing/SKILL.md +77 -4
- package/ai/skills/stacks-to-questionnaire/LICENSE +21 -0
- package/ai/skills/stacks-to-questionnaire/NOTICE.md +10 -0
- package/ai/skills/stacks-to-questionnaire/PLAYBOOK.md +51 -0
- package/ai/skills/stacks-to-questionnaire/SKILL.md +24 -0
- package/ai/skills/stacks-to-spec/LICENSE +21 -0
- package/ai/skills/stacks-to-spec/NOTICE.md +10 -0
- package/ai/skills/stacks-to-spec/PLAYBOOK.md +72 -0
- package/ai/skills/stacks-to-spec/SKILL.md +24 -0
- package/ai/skills/stacks-to-tickets/LICENSE +21 -0
- package/ai/skills/stacks-to-tickets/NOTICE.md +10 -0
- package/ai/skills/stacks-to-tickets/PLAYBOOK.md +102 -0
- package/ai/skills/stacks-to-tickets/SKILL.md +24 -0
- package/ai/skills/stacks-triage/AGENT-BRIEF.md +207 -0
- package/ai/skills/stacks-triage/LICENSE +21 -0
- package/ai/skills/stacks-triage/NOTICE.md +10 -0
- package/ai/skills/stacks-triage/OUT-OF-SCOPE.md +105 -0
- package/ai/skills/stacks-triage/PLAYBOOK.md +109 -0
- package/ai/skills/stacks-triage/SKILL.md +24 -0
- package/ai/skills/stacks-tunnel/SKILL.md +29 -19
- package/ai/skills/stacks-types/SKILL.md +77 -168
- package/ai/skills/stacks-ui/SKILL.md +66 -228
- package/ai/skills/stacks-unslop/NOTICE.md +25 -0
- package/ai/skills/stacks-unslop/SKILL.md +95 -0
- package/ai/skills/stacks-unslop/references/core-contract.md +88 -0
- package/ai/skills/stacks-unslop/references/patterns.md +110 -0
- package/ai/skills/stacks-unslop/references/presets.md +37 -0
- package/ai/skills/stacks-unslop/references/voice.md +95 -0
- package/ai/skills/stacks-utils/SKILL.md +45 -25
- package/ai/skills/stacks-validation/SKILL.md +67 -4
- package/ai/skills/stacks-video/SKILL.md +33 -0
- package/ai/skills/stacks-wait-what/LICENSE +21 -0
- package/ai/skills/stacks-wait-what/NOTICE.md +10 -0
- package/ai/skills/stacks-wait-what/PLAYBOOK.md +4 -0
- package/ai/skills/stacks-wait-what/SKILL.md +24 -0
- package/ai/skills/stacks-wayfinder/LICENSE +21 -0
- package/ai/skills/stacks-wayfinder/NOTICE.md +10 -0
- package/ai/skills/stacks-wayfinder/PLAYBOOK.md +125 -0
- package/ai/skills/stacks-wayfinder/SKILL.md +24 -0
- package/ai/skills/stacks-whois/SKILL.md +13 -3
- package/ai/skills/stacks-wizard/LICENSE +21 -0
- package/ai/skills/stacks-wizard/NOTICE.md +10 -0
- package/ai/skills/stacks-wizard/SKILL.md +8 -0
- package/ai/skills/stacks-wizard/scripts/template.sh +42 -26
- package/ai/skills/stacks-writing-beats/LICENSE +21 -0
- package/ai/skills/stacks-writing-beats/NOTICE.md +10 -0
- package/ai/skills/stacks-writing-beats/PLAYBOOK.md +64 -0
- package/ai/skills/stacks-writing-beats/SKILL.md +28 -0
- package/ai/skills/stacks-writing-for-agents/LICENSE +21 -0
- package/ai/skills/stacks-writing-for-agents/NOTICE.md +10 -0
- package/ai/skills/stacks-writing-for-agents/SKILL.md +7 -1
- package/ai/skills/stacks-writing-fragments/LICENSE +21 -0
- package/ai/skills/stacks-writing-fragments/NOTICE.md +10 -0
- package/ai/skills/stacks-writing-fragments/PLAYBOOK.md +76 -0
- package/ai/skills/stacks-writing-fragments/SKILL.md +28 -0
- package/ai/skills/stacks-writing-shape/LICENSE +21 -0
- package/ai/skills/stacks-writing-shape/NOTICE.md +10 -0
- package/ai/skills/stacks-writing-shape/PLAYBOOK.md +76 -0
- package/ai/skills/stacks-writing-shape/SKILL.md +28 -0
- package/ide/vscode/package.json +1 -1
- package/package.json +2 -2
- package/resources/components/NativeSheet.stx +7 -12
- /package/ai/skills/stacks-technical-diagrams/{bunfig.toml → runtime.toml} +0 -0
|
@@ -8,141 +8,85 @@ allowed-tools: Read Edit Write Bash Grep Glob
|
|
|
8
8
|
|
|
9
9
|
# Stacks Browser
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
// Date
|
|
95
|
-
useDateFormat(date, 'YYYY-MM-DD')
|
|
96
|
-
useNow()
|
|
97
|
-
|
|
98
|
-
// Formatting
|
|
99
|
-
formatAreaSize(sqMeters) // '1,234 sq ft' or 'X acres'
|
|
100
|
-
formatDistance(miles) // '1.5 mi' or '2,640 ft'
|
|
101
|
-
formatElevation(feet) // '1,234 ft'
|
|
102
|
-
formatDuration(seconds) // '2h 15m'
|
|
103
|
-
getRelativeTime(dateString) // '5 minutes ago'
|
|
104
|
-
|
|
105
|
-
// Async
|
|
106
|
-
fetchData(fetcher, { onError, fallback })
|
|
107
|
-
|
|
108
|
-
// Random
|
|
109
|
-
random(size?) // nanoid
|
|
110
|
-
customAlphabet(alphabet, size) // custom nanoid
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// Retry
|
|
114
|
-
retry(fn, { retries: 3, initialDelay: 100, backoffFactor: 2 })
|
|
115
|
-
|
|
116
|
-
// Sleep
|
|
117
|
-
sleep(ms), wait(ms), delay(ms)
|
|
118
|
-
waitUntil(condition, { interval, timeout })
|
|
119
|
-
waitWhile(condition, options)
|
|
120
|
-
|
|
121
|
-
// Promise
|
|
122
|
-
createSingletonPromise(fn)
|
|
123
|
-
createControlledPromise()
|
|
124
|
-
createPromiseLock()
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## Guards
|
|
128
|
-
- `notNullish(v)` — type guard for non-null/undefined
|
|
129
|
-
- `noNull(v)` — excludes null
|
|
130
|
-
- `notUndefined(v)` — excludes undefined
|
|
131
|
-
- `isTruthy(v)` — excludes falsy values
|
|
132
|
-
|
|
133
|
-
## Auto-Initialization
|
|
134
|
-
```typescript
|
|
135
|
-
autoInit() // initializes all browser utilities, exposes on window.StacksBrowser
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## Re-exports from Composables
|
|
139
|
-
`useDark`, `useFetch`, `useOnline`, `useStorage`, `useToggle`, `useDateFormat`, `useNow`, `usePreferredDark`
|
|
140
|
-
|
|
141
|
-
## Gotchas
|
|
142
|
-
- All browser utilities are auto-imported in STX templates
|
|
143
|
-
- `initApi()` must be called before using `Fetch`
|
|
144
|
-
- `loadCardElement()` requires Stripe.js to be loaded
|
|
145
|
-
- `publishableKey` must be set for Stripe integration
|
|
146
|
-
- Browser models use a different query builder than server-side models
|
|
147
|
-
- `autoInit()` exposes utilities on `window.StacksBrowser`
|
|
148
|
-
- Do NOT use `document.*`, `window.*` directly in STX templates
|
|
11
|
+
Use `@stacksjs/browser` for client authentication, API transport, browser models,
|
|
12
|
+
request error messages and imported billing/utilities. Imported availability is
|
|
13
|
+
different from an STX runtime global.
|
|
14
|
+
|
|
15
|
+
## Imports and runtime boundary
|
|
16
|
+
|
|
17
|
+
Import useAuth/authGuard, initApi/Fetch and needed helpers explicitly. The package
|
|
18
|
+
initializes browser API config as an import side effect, using public injected
|
|
19
|
+
config or same-origin /api; initApi is an optional override. autoInit itself is
|
|
20
|
+
internal, not a public entry export. window.StacksBrowser is a bag of utilities
|
|
21
|
+
and registered models, not proof that each name is attached as a bare global.
|
|
22
|
+
Read stacks-auto-imports for the actual STX runtime names.
|
|
23
|
+
|
|
24
|
+
The public query builder comes from bun-query-builder/browser, so client bundles
|
|
25
|
+
avoid server SQLite/child_process dependencies. configureBrowser/getBrowserConfig,
|
|
26
|
+
browserQuery/BrowserQueryBuilder/BrowserQueryError, browserAuth and
|
|
27
|
+
createBrowserDb/createBrowserModel are native browser exports. API access remains
|
|
28
|
+
subject to server routes, permissions and row scoping; a client model is not a
|
|
29
|
+
direct SQL connection or authorization layer.
|
|
30
|
+
|
|
31
|
+
## Authentication and session recovery
|
|
32
|
+
|
|
33
|
+
~~~ts
|
|
34
|
+
import { useAuth } from '@stacksjs/browser'
|
|
35
|
+
|
|
36
|
+
const session = useAuth()
|
|
37
|
+
const result = await session.login({ email: 'user@example.com', password: 'secret' })
|
|
38
|
+
~~~
|
|
39
|
+
|
|
40
|
+
useAuth returns shared client refs and login/register/logout/session methods.
|
|
41
|
+
Login returns a union including validation/refusal and a two-factor challenge;
|
|
42
|
+
inspect the result, rather than assuming a resolved call means signed-in state.
|
|
43
|
+
Browser state uses imported storage helpers, not direct document/window mutation
|
|
44
|
+
inside STX scripts.
|
|
45
|
+
|
|
46
|
+
refreshSession coalesces concurrent refresh attempts. A server refusal clears the
|
|
47
|
+
session and returns false; a transport failure throws and keeps the existing
|
|
48
|
+
credential. authFetch retries the eligible request after refresh using the native
|
|
49
|
+
credential/CSRF flow. Cookie/session behavior and refresh-token availability
|
|
50
|
+
depend on server browser-session policy. A fixed-lifetime login cannot be made
|
|
51
|
+
renewable by keeping an old client refresh token.
|
|
52
|
+
|
|
53
|
+
completeSocialLogin applies the native handoff through the same storage refs and
|
|
54
|
+
strips its URL fragment. Use socialHandoffRedirect on the server; a hand-built
|
|
55
|
+
inline script writing token/user keys duplicates the encoding/security contract.
|
|
56
|
+
authGuard controls client navigation; guard server pages/actions independently.
|
|
57
|
+
|
|
58
|
+
## API transports and errors
|
|
59
|
+
|
|
60
|
+
initApi configures the browser query builder. The older Fetch facade has its own
|
|
61
|
+
baseURL/token/request path; do not assume initApi changes Fetch's baseURL.
|
|
62
|
+
Fetch.get uses query parameters, post/patch/put JSON bodies, and destroy sends
|
|
63
|
+
DELETE with query parameters. Non-2xx throws an error with status/data after
|
|
64
|
+
body parsing. Its methods return parsed response data, not query-builder Results.
|
|
65
|
+
|
|
66
|
+
For cookie writes prefer the native auth/composable request flow and
|
|
67
|
+
readCsrfToken/withCsrfHeader. The low-level Fetch facade is not that complete
|
|
68
|
+
session/CSRF abstraction. describeResponseError(status, body?) and
|
|
69
|
+
describeThrownError(error) normalize useful client messages and field errors.
|
|
70
|
+
Read request-error.ts before displaying raw server/provider data to a user.
|
|
71
|
+
|
|
72
|
+
## Models, billing and utilities
|
|
73
|
+
|
|
74
|
+
registerModelModules or loadBrowserModels(modules?) registers bundled model
|
|
75
|
+
definitions; loadBrowserModels is synchronous and does not dynamically scan
|
|
76
|
+
server app/Models over HTTP. Only definitions with traits.useApi.uri become
|
|
77
|
+
browser models, with server-only factories/validators stripped. getBrowserModel
|
|
78
|
+
returns a model or null; getBrowserModelNames lists the registered model entries.
|
|
79
|
+
|
|
80
|
+
Stripe helpers (loadCardElement/loadPaymentElement/confirmCardSetup/
|
|
81
|
+
confirmCardPayment/createPaymentMethod/confirmPayment) are imported exports;
|
|
82
|
+
Stripe.js and the public key are prerequisites. Server payment actions retain
|
|
83
|
+
authority over amounts, ownership and payment completion. Utility/composable
|
|
84
|
+
re-exports have their own signatures in utils/ and composables/; read the native
|
|
85
|
+
composable skill instead of copying another fixed inventory of globals.
|
|
86
|
+
|
|
87
|
+
## Source and evidence
|
|
88
|
+
|
|
89
|
+
`storage/framework/core/browser/src/index.ts`, auto-init.ts, model-loader.ts,
|
|
90
|
+
composables/useAuth.ts/useApi.ts/csrf.ts/request-error.ts and utils/fetch.ts.
|
|
91
|
+
Tests: client-bundle-safety.test.ts, use-auth-refresh.test.ts, csrf.test.ts,
|
|
92
|
+
request-error.test.ts and api-url.test.ts under core/browser/tests.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stacks-browser-extension
|
|
3
|
+
description: Use when scaffolding, building, packaging or preparing store submission for a native Stacks MV3 browser extension. Covers @stacksjs/browser-extension and Chrome/Firefox/Safari target boundaries.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Bun >= 1.3.0, TypeScript
|
|
6
|
+
allowed-tools: Read Edit Write Bash Grep Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Browser extensions
|
|
10
|
+
|
|
11
|
+
Use the native ExtensionConfig and scaffold/build/package APIs for MV3 targets.
|
|
12
|
+
Read the current target and store adapters before planning distribution; a
|
|
13
|
+
successful local bundle is not proof of store acceptance or device behavior.
|
|
14
|
+
|
|
15
|
+
## Build workflow
|
|
16
|
+
|
|
17
|
+
scaffoldExtensionProject creates the established project layout;
|
|
18
|
+
scaffoldSafariApp owns Safari container scaffolding. buildExtension configures
|
|
19
|
+
popup/options pages, background/content scripts,
|
|
20
|
+
static assets and declarativeNetRequest rules. Native page builds use stx,
|
|
21
|
+
resource partials and CSP sanitization rather than embedding arbitrary inline
|
|
22
|
+
script. Keep code in permitted bundled entrypoints and minimize permissions.
|
|
23
|
+
|
|
24
|
+
Target-specific manifest generation, packaging and validation support Chrome
|
|
25
|
+
and Firefox. Safari additionally uses container-app scaffolding, resource sync
|
|
26
|
+
and xcodebuild on a suitable macOS toolchain. Target limitations are explicit;
|
|
27
|
+
do not substitute one browser's package for another.
|
|
28
|
+
|
|
29
|
+
## Store preparation and publication
|
|
30
|
+
|
|
31
|
+
The package includes publish plans and adapters for Chrome Web Store, Firefox
|
|
32
|
+
Add-ons/previews and App Store Connect submission. Prepare a reviewable plan,
|
|
33
|
+
credentials prerequisites and the actual artifacts before an authorized upload.
|
|
34
|
+
Do not upload or submit merely because the build finished. Never put store
|
|
35
|
+
credentials into the extension's public files.
|
|
36
|
+
|
|
37
|
+
Verify generated manifests, CSP, permissions, scripts, packaged file lists,
|
|
38
|
+
and target-specific tests. Device and store outcomes need their own evidence.
|
|
39
|
+
Source: core/browser-extension/src/{config,manifest,build,package,scaffold,
|
|
40
|
+
publish-plan,safari}.ts and store adapters. Tests cover these same boundaries.
|
|
@@ -624,6 +624,8 @@ buddy changelog # generate CHANGELOG.md
|
|
|
624
624
|
-d/--dry-run # preview without writing
|
|
625
625
|
buddy release # release new version via GitHub Actions
|
|
626
626
|
--dry-run # preview without releasing
|
|
627
|
+
--bump <type> # non-interactive bump, including build, calendar, or x.y.z
|
|
628
|
+
--preid <identifier> # prerelease channel, for example beta or rc
|
|
627
629
|
buddy route # route management
|
|
628
630
|
buddy share [type] # share local dev server via public tunnel (localtunnel)
|
|
629
631
|
-p/--port <port> # local port
|
|
@@ -20,7 +20,7 @@ allowed-tools: Read Edit Write Bash Grep Glob
|
|
|
20
20
|
## Source Files
|
|
21
21
|
```
|
|
22
22
|
build/src/
|
|
23
|
-
├── index.ts # intro() and outro()
|
|
23
|
+
├── index.ts # intro() and outro() - build logging and timing
|
|
24
24
|
├── web-types.ts # Web types generation for IDE support
|
|
25
25
|
└── build.ts # Package build config (Bun.build)
|
|
26
26
|
|
|
@@ -86,24 +86,27 @@ buddy build --server --verbose --project [name]
|
|
|
86
86
|
|
|
87
87
|
## Standard Build Pattern
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
For a library barrel or a package with public subpaths, preserve the module
|
|
90
|
+
graph with the shared transpiler. Identifier-minifying bundles have produced
|
|
91
|
+
invalid re-export bindings on supported Bun versions. Separate bundles also
|
|
92
|
+
duplicate shared objects across entrypoints, such as validation's schema proxy.
|
|
90
93
|
|
|
91
94
|
```typescript
|
|
92
|
-
import {
|
|
93
|
-
import { intro, outro } from '../build/src'
|
|
95
|
+
import { rm } from 'node:fs/promises'
|
|
96
|
+
import { frameworkExternal, intro, outro, transpilePackage } from '../build/src'
|
|
94
97
|
|
|
95
98
|
const { startTime } = await intro({ dir: import.meta.dir })
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
format: 'esm',
|
|
100
|
-
target: 'bun',
|
|
101
|
-
minify: true,
|
|
102
|
-
plugins: [dts({ root: '.', outdir: './dist' })],
|
|
103
|
-
})
|
|
104
|
-
await outro({ dir: import.meta.dir, startTime, result })
|
|
99
|
+
await rm('./dist', { recursive: true, force: true })
|
|
100
|
+
await transpilePackage({ dir: import.meta.dir, external: frameworkExternal() })
|
|
101
|
+
await outro({ dir: import.meta.dir, startTime, result: { errors: [], warnings: [] } })
|
|
105
102
|
```
|
|
106
103
|
|
|
104
|
+
The helper emits every source module and its declaration with whitespace-only
|
|
105
|
+
minification. Keep package-specific assets, declaration rewriting, and runtime
|
|
106
|
+
probes around this call. Use Bun.build for intentional executable bundles and
|
|
107
|
+
verify the emitted artifact. ORM inference builds validation before ORM because
|
|
108
|
+
the published ORM imports validation's narrow runtime entry.
|
|
109
|
+
|
|
107
110
|
## Releasing libraries out of `resources/`
|
|
108
111
|
|
|
109
112
|
`resources/functions` and `resources/components` are not limited to one npm
|
|
@@ -163,7 +166,7 @@ generated and gitignored.
|
|
|
163
166
|
### Release flow
|
|
164
167
|
|
|
165
168
|
`buddy release` runs `generate/lib-entries`, which stages sources and writes
|
|
166
|
-
each manifest without compiling
|
|
169
|
+
each manifest without compiling - so a broken library config fails before a tag
|
|
167
170
|
exists rather than after. Versions follow the project version unless a package
|
|
168
171
|
pins its own, which is why the build (not the generate) is what CI runs after
|
|
169
172
|
the bump, and `buddy libs:publish` after that.
|
|
@@ -214,24 +217,40 @@ enum Action {
|
|
|
214
217
|
| Tool | Usage |
|
|
215
218
|
|------|-------|
|
|
216
219
|
| **Bun** | Primary bundler (`target: 'bun'`, `format: 'esm'`) |
|
|
217
|
-
| **
|
|
220
|
+
| **stx** | Component library builds |
|
|
218
221
|
| **bun-plugin-dtsx** | TypeScript declaration generation |
|
|
219
222
|
| **Docker** | Server containerization |
|
|
220
223
|
| **@babel/traverse** | AST traversal for export cleanup |
|
|
221
224
|
|
|
222
225
|
## Gotchas
|
|
223
|
-
- **Two result formats**
|
|
224
|
-
- **Server build mutates import paths**
|
|
225
|
-
- **Core build is sequential**
|
|
226
|
-
- **Docker build requires cloud config**
|
|
226
|
+
- **Two result formats** - `outro()` must handle both Bun.build and esbuild formats
|
|
227
|
+
- **Server build mutates import paths** - stage 5 rewrites references in compiled output
|
|
228
|
+
- **Core build is sequential** - packages built one at a time, failures collected and reported
|
|
229
|
+
- **Docker build requires cloud config** - only builds if cloud deployment is enabled
|
|
227
230
|
- **Component libraries compile through stx**, not Vite. `buildComponentLibrary`
|
|
228
231
|
emits its own index and each generated component registers its custom element
|
|
229
232
|
on import, which is why a `web-components` package needs no entry file of its
|
|
230
|
-
own
|
|
233
|
+
own - it publishes `bundle.js` instead of `index.js`.
|
|
231
234
|
- **A library barrel is generated with `.ts` specifiers on purpose.**
|
|
232
235
|
`transpilePackage` rewrites relative `.ts` to `.js` on the way into `dist`. An
|
|
233
236
|
extensionless specifier survives as-is and only resolves under Bun, so the
|
|
234
237
|
package installs cleanly and fails on first import from Node or Vite.
|
|
235
|
-
- **`build:stacks` builds CLI first**
|
|
236
|
-
- **Server build cleans aggressively**
|
|
237
|
-
- **The build package has @babel deps**
|
|
238
|
+
- **`build:stacks` builds CLI first** - Buddy binary compiled before core packages
|
|
239
|
+
- **Server build cleans aggressively** - deletes app, config, dist, docs, storage before rebuild
|
|
240
|
+
- **The build package has @babel deps** - uses Babel for AST traversal during export cleanup
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
## Package build contracts
|
|
244
|
+
|
|
245
|
+
`@stacksjs/build` exports `transpilePackage` and
|
|
246
|
+
`frameworkExternal(extras?)` alongside intro/outro. Inspect a neighboring
|
|
247
|
+
core build.ts before configuring declaration roots or external dependencies;
|
|
248
|
+
the source example is a pattern, not a universal package manifest. Type-only
|
|
249
|
+
dependencies that escape the package degrade consumers even when local paths
|
|
250
|
+
resolve.
|
|
251
|
+
|
|
252
|
+
`validateDeclarations(dir)` and `validateRuntimeExports(dir)` are native
|
|
253
|
+
checks used by the build contract. A type declaration export without a matching
|
|
254
|
+
runtime file is a package failure, not a successful build. The current public
|
|
255
|
+
implementation is `storage/framework/core/build/src/index.ts`. Use Bun/TS
|
|
256
|
+
for supporting build scripts and pickier for lint.
|
|
@@ -8,118 +8,78 @@ allowed-tools: Read Edit Write Bash Grep Glob
|
|
|
8
8
|
|
|
9
9
|
# Stacks Cache
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
database: 0,
|
|
87
|
-
tls: false,
|
|
88
|
-
stdTTL: 3600,
|
|
89
|
-
prefix: 'app:'
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
// Auto-detect from config
|
|
93
|
-
const cache = createCache('memory')
|
|
94
|
-
const cache = createCache('redis', { host: 'localhost' })
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## config/cache.ts
|
|
98
|
-
```typescript
|
|
99
|
-
{
|
|
100
|
-
driver: 'memory', // 'memory' | 'redis'
|
|
101
|
-
prefix: 'stacks',
|
|
102
|
-
ttl: 3600, // 1 hour default
|
|
103
|
-
maxKeys: -1, // unlimited
|
|
104
|
-
useClones: true,
|
|
105
|
-
drivers: {
|
|
106
|
-
redis: { host: 'localhost', port: 6379 },
|
|
107
|
-
memory: {}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Default Instance
|
|
113
|
-
- `cache` — default memory cache (pre-configured)
|
|
114
|
-
- `memory` — alias for `cache`
|
|
115
|
-
|
|
116
|
-
## Gotchas
|
|
117
|
-
- Default driver is `memory` — data lost on restart
|
|
118
|
-
- Redis driver requires a running Redis server
|
|
119
|
-
- `getOrSet()` is the cache-aside pattern — fetches only on miss
|
|
120
|
-
- `useClones: true` means mutations to retrieved objects don't affect cache
|
|
121
|
-
- `take()` atomically gets and deletes — useful for one-time tokens
|
|
122
|
-
- Cache stats track hits, misses, and hit rate — useful for tuning
|
|
123
|
-
- `keys()` supports glob patterns for key listing
|
|
124
|
-
- Framework caches (auto-imports, discovered packages) are in `storage/framework/cache/`
|
|
125
|
-
- Use `buddy clean` or `buddy fresh` to clear framework caches
|
|
11
|
+
Use `@stacksjs/cache` for cache-aside reads, explicit TTLs and invalidation.
|
|
12
|
+
Read `config/cache.ts` and the selected factory before assuming shared state.
|
|
13
|
+
|
|
14
|
+
## API and TTL
|
|
15
|
+
|
|
16
|
+
~~~ts
|
|
17
|
+
import { cache } from '@stacksjs/cache'
|
|
18
|
+
|
|
19
|
+
await cache.set('product:42', { name: 'Widget' }, 60)
|
|
20
|
+
const product = await cache.get<{ name: string }>('product:42')
|
|
21
|
+
const products = await cache.mget<{ name: string }>(['product:42', 'product:43'])
|
|
22
|
+
// mget returns a record keyed by cache key, not an array.
|
|
23
|
+
~~~
|
|
24
|
+
|
|
25
|
+
- TTL is in seconds. Zero means forever; omitted TTL uses the factory's
|
|
26
|
+
stdTTL, which defaults to zero. The exported cache/memory singleton is a
|
|
27
|
+
memory instance with no default expiry. Config's ttl value does not silently
|
|
28
|
+
turn that singleton into a configured Redis instance.
|
|
29
|
+
- `setForever` stores without expiry; `getTtl` reads remaining TTL and
|
|
30
|
+
`ttl(key, seconds)` updates it. Missing values are undefined.
|
|
31
|
+
- `mset([{ key, value, ttl? }])` writes entries. `del(keyOrKeys)` and
|
|
32
|
+
`deleteMany(keys)` return counts; `remove(key)` returns void.
|
|
33
|
+
- `has/missing/take`, `keys(pattern?)`, `getStats`,
|
|
34
|
+
`clear/flush` and `close/disconnect` provide the remaining facade API.
|
|
35
|
+
Consult the driver before relying on take for a distributed atomic claim.
|
|
36
|
+
|
|
37
|
+
## Cache-aside and concurrent misses
|
|
38
|
+
|
|
39
|
+
`getOrSet(key, fetcher, ttl?)` computes and stores only on a miss.
|
|
40
|
+
`remember(key, ttl, callback)` is its Laravel-style argument order;
|
|
41
|
+
`rememberForever(key, callback)` uses TTL zero.
|
|
42
|
+
|
|
43
|
+
Concurrent misses share a promise within one StacksCache instance. Its bounded
|
|
44
|
+
inflight timeout rejects every joined caller and frees that slot for retry.
|
|
45
|
+
The underlying fetcher continues running after timeout; this is not cancellation
|
|
46
|
+
or a lock shared across worker processes. For a distributed lock, inspect the
|
|
47
|
+
re-exported CacheLock contract and selected driver separately.
|
|
48
|
+
|
|
49
|
+
## Drivers
|
|
50
|
+
|
|
51
|
+
`createMemoryCache(options?)` accepts stdTTL, checkPeriod, maxKeys, useClones
|
|
52
|
+
and prefix. Clone-on-read/write is enabled by default.
|
|
53
|
+
`createRedisCache(options?)` accepts URL or host/port/credentials/database/TLS
|
|
54
|
+
plus TTL/prefix options. `createSingleStoreCache(options?)` exposes the
|
|
55
|
+
experimental SQL-backed cache. `createCache(driver, options?)` selects one
|
|
56
|
+
of memory, redis or singlestore.
|
|
57
|
+
|
|
58
|
+
The `cache` export is the same memory instance as `memory`. Use an explicit
|
|
59
|
+
Redis instance for application data that must be shared across processes.
|
|
60
|
+
The capability registry proves memory and a versioned Redis core/TTL contract;
|
|
61
|
+
TLS/authenticated Redis deployments need separate provider evidence. SingleStore
|
|
62
|
+
has no dedicated service conformance matrix. Source:
|
|
63
|
+
`storage/framework/core/config/src/capabilities.ts`.
|
|
64
|
+
|
|
65
|
+
## Tag invalidation and advanced patterns
|
|
66
|
+
|
|
67
|
+
`StacksCache.tags(['products', 'tenant-7'])` creates a TaggedCache supporting
|
|
68
|
+
put/set/setForever, remember/rememberForever, get/has and flush. Its tag index
|
|
69
|
+
uses the same backend; process persistence depends on that backend. Tags label
|
|
70
|
+
shared keys rather than granting tenant authorization. Construct an explicit
|
|
71
|
+
tenant key/prefix as well when isolation matters.
|
|
72
|
+
|
|
73
|
+
The package also re-exports CacheAsidePattern, MultiLevelPattern,
|
|
74
|
+
RefreshAheadPattern, WriteThroughPattern, BatchOperations, CacheInvalidation,
|
|
75
|
+
CacheLock, CircuitBreaker, memoize and RateLimiter from ts-cache. Read the
|
|
76
|
+
installed upstream types before using these advanced classes; their signatures
|
|
77
|
+
are distinct from StacksCache and auth's RateLimiter.
|
|
78
|
+
|
|
79
|
+
## Source and verification
|
|
80
|
+
|
|
81
|
+
`storage/framework/core/cache/src/drivers/index.ts` is the facade/factory
|
|
82
|
+
contract. `drivers/singlestore.ts` owns the experimental backend.
|
|
83
|
+
Retained tests: `ttl.test.ts`, `getorset-timeout.test.ts`,
|
|
84
|
+
`tagged-flush-race.test.ts`, `redis-contract.test.ts` and
|
|
85
|
+
`cache-factory.test.ts` under `core/cache/tests/`.
|