luckiest-co 1.0.0 → 1.0.3
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/.claude-plugin/marketplace.json +16 -0
- package/.claude-plugin/plugin.json +1 -1
- package/LICENSE +24 -0
- package/bin/install.js +7 -5
- package/commands/{luckiest/finish.md → finish.md} +2 -0
- package/commands/go.md +53 -0
- package/commands/plan.md +66 -0
- package/package.json +16 -5
- package/skills/brainstorm/ATTRIBUTION.md +27 -0
- package/skills/brainstorm/SKILL.md +139 -0
- package/skills/luckiest-ab-testing/ATTRIBUTION.md +35 -0
- package/skills/luckiest-ab-testing/CHANGELOG.md +27 -0
- package/skills/luckiest-ab-testing/SKILL.md +379 -0
- package/skills/luckiest-ab-testing/evals/evals.json +118 -0
- package/skills/luckiest-ab-testing/references/sample-size-guide.md +290 -0
- package/skills/luckiest-ab-testing/references/test-templates.md +284 -0
- package/skills/luckiest-ad-creative/ATTRIBUTION.md +35 -0
- package/skills/luckiest-ad-creative/CHANGELOG.md +23 -0
- package/skills/luckiest-ad-creative/SKILL.md +393 -0
- package/skills/luckiest-ad-creative/evals/evals.json +90 -0
- package/skills/luckiest-ad-creative/references/generative-tools.md +637 -0
- package/skills/luckiest-ad-creative/references/platform-specs.md +213 -0
- package/skills/luckiest-ads/ATTRIBUTION.md +36 -0
- package/skills/luckiest-ads/CHANGELOG.md +24 -0
- package/skills/luckiest-ads/LICENSE +21 -0
- package/skills/luckiest-ads/SKILL.md +434 -0
- package/skills/luckiest-ads/evals/evals.json +90 -0
- package/skills/luckiest-ads/references/ad-copy-templates.md +207 -0
- package/skills/luckiest-ads/references/audience-targeting.md +243 -0
- package/skills/luckiest-ads/references/conversion-tracking.md +361 -0
- package/skills/luckiest-ads/references/platform-setup-checklists.md +277 -0
- package/skills/luckiest-advisors/ATTRIBUTION.md +16 -0
- package/skills/luckiest-advisors/CHANGELOG.md +99 -0
- package/skills/luckiest-advisors/SKILL.md +151 -0
- package/skills/luckiest-aeo-grader/ATTRIBUTION.md +19 -0
- package/skills/luckiest-aeo-grader/CHANGELOG.md +52 -0
- package/skills/luckiest-aeo-grader/SKILL.md +200 -0
- package/skills/luckiest-aeo-grader/evals/evals.json +19 -0
- package/skills/luckiest-aeo-grader/references/rubric.md +72 -0
- package/skills/luckiest-aeo-grader/scripts/scan.py +265 -0
- package/skills/luckiest-ai-seo/ATTRIBUTION.md +38 -0
- package/skills/luckiest-ai-seo/CHANGELOG.md +23 -0
- package/skills/luckiest-ai-seo/SKILL.md +510 -0
- package/skills/luckiest-ai-seo/evals/evals.json +90 -0
- package/skills/luckiest-ai-seo/references/content-patterns.md +285 -0
- package/skills/luckiest-ai-seo/references/content-types.md +71 -0
- package/skills/luckiest-ai-seo/references/okf.md +104 -0
- package/skills/luckiest-ai-seo/references/platform-ranking-factors.md +154 -0
- package/skills/luckiest-analytics/ATTRIBUTION.md +42 -0
- package/skills/luckiest-analytics/CHANGELOG.md +36 -0
- package/skills/luckiest-analytics/SKILL.md +380 -0
- package/skills/luckiest-analytics/evals/evals.json +90 -0
- package/skills/luckiest-analytics/references/event-library.md +260 -0
- package/skills/luckiest-analytics/references/ga4-implementation.md +300 -0
- package/skills/luckiest-analytics/references/gtm-implementation.md +390 -0
- package/skills/luckiest-aso/ATTRIBUTION.md +40 -0
- package/skills/luckiest-aso/CHANGELOG.md +33 -0
- package/skills/luckiest-aso/SKILL.md +327 -0
- package/skills/luckiest-aso/evals/evals.json +91 -0
- package/skills/luckiest-aso/references/apple-specs.md +107 -0
- package/skills/luckiest-aso/references/benchmarks.md +129 -0
- package/skills/luckiest-aso/references/google-play-specs.md +131 -0
- package/skills/luckiest-aso/references/report-template.md +213 -0
- package/skills/luckiest-aso/references/scoring-criteria.md +213 -0
- package/skills/luckiest-churn-prevention/ATTRIBUTION.md +41 -0
- package/skills/luckiest-churn-prevention/CHANGELOG.md +24 -0
- package/skills/luckiest-churn-prevention/SKILL.md +445 -0
- package/skills/luckiest-churn-prevention/evals/evals.json +93 -0
- package/skills/luckiest-churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/skills/luckiest-churn-prevention/references/dunning-playbook.md +408 -0
- package/skills/luckiest-co-marketing/ATTRIBUTION.md +38 -0
- package/skills/luckiest-co-marketing/CHANGELOG.md +25 -0
- package/skills/luckiest-co-marketing/SKILL.md +331 -0
- package/skills/luckiest-co-marketing/evals/evals.json +84 -0
- package/skills/luckiest-coder/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder/CHANGELOG.md +30 -0
- package/skills/luckiest-coder/SKILL.md +77 -0
- package/skills/luckiest-coder/references/antigravity-tools.md +23 -0
- package/skills/luckiest-coder/references/codex-tools.md +39 -0
- package/skills/luckiest-coder/references/pi-tools.md +16 -0
- package/skills/luckiest-coder-brainstorming/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-brainstorming/CHANGELOG.md +31 -0
- package/skills/luckiest-coder-brainstorming/SKILL.md +173 -0
- package/skills/luckiest-coder-brainstorming/scripts/frame-template.html +213 -0
- package/skills/luckiest-coder-brainstorming/scripts/helper.js +168 -0
- package/skills/luckiest-coder-brainstorming/scripts/server.cjs +721 -0
- package/skills/luckiest-coder-brainstorming/scripts/start-server.sh +209 -0
- package/skills/luckiest-coder-brainstorming/scripts/stop-server.sh +120 -0
- package/skills/luckiest-coder-brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/luckiest-coder-brainstorming/visual-companion.md +291 -0
- package/skills/luckiest-coder-consistency/ATTRIBUTION.md +30 -0
- package/skills/luckiest-coder-consistency/CHANGELOG.md +26 -0
- package/skills/luckiest-coder-consistency/SKILL.md +98 -0
- package/skills/luckiest-coder-constitution/ATTRIBUTION.md +28 -0
- package/skills/luckiest-coder-constitution/CHANGELOG.md +25 -0
- package/skills/luckiest-coder-constitution/SKILL.md +115 -0
- package/skills/luckiest-coder-debugging/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-debugging/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-debugging/CREATION-LOG.md +119 -0
- package/skills/luckiest-coder-debugging/SKILL.md +309 -0
- package/skills/luckiest-coder-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/luckiest-coder-debugging/condition-based-waiting.md +115 -0
- package/skills/luckiest-coder-debugging/defense-in-depth.md +122 -0
- package/skills/luckiest-coder-debugging/find-polluter.sh +63 -0
- package/skills/luckiest-coder-debugging/root-cause-tracing.md +169 -0
- package/skills/luckiest-coder-debugging/test-academic.md +14 -0
- package/skills/luckiest-coder-debugging/test-pressure-1.md +58 -0
- package/skills/luckiest-coder-debugging/test-pressure-2.md +68 -0
- package/skills/luckiest-coder-debugging/test-pressure-3.md +69 -0
- package/skills/luckiest-coder-dispatching-parallel-agents/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-dispatching-parallel-agents/CHANGELOG.md +23 -0
- package/skills/luckiest-coder-dispatching-parallel-agents/SKILL.md +198 -0
- package/skills/luckiest-coder-executing-plans/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-executing-plans/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-executing-plans/SKILL.md +83 -0
- package/skills/luckiest-coder-finishing-a-branch/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-finishing-a-branch/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-finishing-a-branch/SKILL.md +258 -0
- package/skills/luckiest-coder-git-worktrees/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-git-worktrees/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-git-worktrees/SKILL.md +215 -0
- package/skills/luckiest-coder-guard/ATTRIBUTION.md +29 -0
- package/skills/luckiest-coder-guard/CHANGELOG.md +48 -0
- package/skills/luckiest-coder-guard/LICENSE +21 -0
- package/skills/luckiest-coder-guard/SKILL.md +126 -0
- package/skills/luckiest-coder-guard/bin/check-careful.sh +65 -0
- package/skills/luckiest-coder-guard/bin/check-freeze.sh +48 -0
- package/skills/luckiest-coder-qa/ATTRIBUTION.md +28 -0
- package/skills/luckiest-coder-qa/CHANGELOG.md +49 -0
- package/skills/luckiest-coder-qa/LICENSE +21 -0
- package/skills/luckiest-coder-qa/SKILL.md +160 -0
- package/skills/luckiest-coder-qa/references/issue-taxonomy.md +85 -0
- package/skills/luckiest-coder-qa/references/qa-report-template.md +126 -0
- package/skills/luckiest-coder-receiving-code-review/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-receiving-code-review/CHANGELOG.md +28 -0
- package/skills/luckiest-coder-receiving-code-review/SKILL.md +226 -0
- package/skills/luckiest-coder-requesting-code-review/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-requesting-code-review/CHANGELOG.md +31 -0
- package/skills/luckiest-coder-requesting-code-review/SKILL.md +118 -0
- package/skills/luckiest-coder-requesting-code-review/code-reviewer.md +172 -0
- package/skills/luckiest-coder-shipping/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-shipping/CHANGELOG.md +48 -0
- package/skills/luckiest-coder-shipping/LICENSE +21 -0
- package/skills/luckiest-coder-shipping/SKILL.md +148 -0
- package/skills/luckiest-coder-shipping/references/canary.md +44 -0
- package/skills/luckiest-coder-shipping/references/test-and-coverage.md +91 -0
- package/skills/luckiest-coder-subagent-driven-development/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-subagent-driven-development/CHANGELOG.md +28 -0
- package/skills/luckiest-coder-subagent-driven-development/SKILL.md +439 -0
- package/skills/luckiest-coder-subagent-driven-development/implementer-prompt.md +139 -0
- package/skills/luckiest-coder-subagent-driven-development/scripts/review-package +44 -0
- package/skills/luckiest-coder-subagent-driven-development/scripts/sdd-workspace +22 -0
- package/skills/luckiest-coder-subagent-driven-development/scripts/task-brief +40 -0
- package/skills/luckiest-coder-subagent-driven-development/task-reviewer-prompt.md +188 -0
- package/skills/luckiest-coder-tdd/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-tdd/CHANGELOG.md +26 -0
- package/skills/luckiest-coder-tdd/SKILL.md +384 -0
- package/skills/luckiest-coder-tdd/testing-anti-patterns.md +299 -0
- package/skills/luckiest-coder-verification/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-verification/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-verification/SKILL.md +152 -0
- package/skills/luckiest-coder-writing-plans/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-writing-plans/CHANGELOG.md +22 -0
- package/skills/luckiest-coder-writing-plans/SKILL.md +191 -0
- package/skills/luckiest-coder-writing-plans/plan-document-reviewer-prompt.md +49 -0
- package/skills/luckiest-coder-writing-skills/ATTRIBUTION.md +26 -0
- package/skills/luckiest-coder-writing-skills/CHANGELOG.md +31 -0
- package/skills/luckiest-coder-writing-skills/SKILL.md +702 -0
- package/skills/luckiest-coder-writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/luckiest-coder-writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/luckiest-coder-writing-skills/graphviz-conventions.dot +172 -0
- package/skills/luckiest-coder-writing-skills/persuasion-principles.md +187 -0
- package/skills/luckiest-coder-writing-skills/render-graphs.js +168 -0
- package/skills/luckiest-coder-writing-skills/testing-skills-with-subagents.md +384 -0
- package/skills/luckiest-cold-email/ATTRIBUTION.md +36 -0
- package/skills/luckiest-cold-email/CHANGELOG.md +24 -0
- package/skills/luckiest-cold-email/SKILL.md +213 -0
- package/skills/luckiest-cold-email/evals/evals.json +94 -0
- package/skills/luckiest-cold-email/references/benchmarks.md +83 -0
- package/skills/luckiest-cold-email/references/follow-up-sequences.md +81 -0
- package/skills/luckiest-cold-email/references/frameworks.md +90 -0
- package/skills/luckiest-cold-email/references/personalization.md +79 -0
- package/skills/luckiest-cold-email/references/subject-lines.md +53 -0
- package/skills/luckiest-community-marketing/ATTRIBUTION.md +41 -0
- package/skills/luckiest-community-marketing/CHANGELOG.md +35 -0
- package/skills/luckiest-community-marketing/SKILL.md +200 -0
- package/skills/luckiest-community-marketing/evals/evals.json +89 -0
- package/skills/luckiest-competitor-profiling/ATTRIBUTION.md +36 -0
- package/skills/luckiest-competitor-profiling/CHANGELOG.md +24 -0
- package/skills/luckiest-competitor-profiling/SKILL.md +443 -0
- package/skills/luckiest-competitor-profiling/evals/evals.json +85 -0
- package/skills/luckiest-competitor-profiling/references/templates.md +167 -0
- package/skills/luckiest-competitor-profiling/references/tool-reference.md +179 -0
- package/skills/luckiest-competitors/ATTRIBUTION.md +36 -0
- package/skills/luckiest-competitors/CHANGELOG.md +25 -0
- package/skills/luckiest-competitors/SKILL.md +171 -0
- package/skills/luckiest-competitors/evals/evals.json +93 -0
- package/skills/luckiest-competitors/references/content-architecture.md +271 -0
- package/skills/luckiest-competitors/references/templates.md +223 -0
- package/skills/luckiest-content-strategy/ATTRIBUTION.md +39 -0
- package/skills/luckiest-content-strategy/CHANGELOG.md +23 -0
- package/skills/luckiest-content-strategy/SKILL.md +395 -0
- package/skills/luckiest-content-strategy/evals/evals.json +90 -0
- package/skills/luckiest-content-strategy/references/headless-cms.md +194 -0
- package/skills/luckiest-copy-editing/ATTRIBUTION.md +41 -0
- package/skills/luckiest-copy-editing/CHANGELOG.md +31 -0
- package/skills/luckiest-copy-editing/SKILL.md +491 -0
- package/skills/luckiest-copy-editing/evals/evals.json +89 -0
- package/skills/luckiest-copy-editing/references/checklist.md +66 -0
- package/skills/luckiest-copy-editing/references/content-refresh.md +38 -0
- package/skills/luckiest-copy-editing/references/plain-english-alternatives.md +394 -0
- package/skills/luckiest-copywriting/ATTRIBUTION.md +35 -0
- package/skills/luckiest-copywriting/CHANGELOG.md +23 -0
- package/skills/luckiest-copywriting/SKILL.md +296 -0
- package/skills/luckiest-copywriting/evals/evals.json +111 -0
- package/skills/luckiest-copywriting/references/copy-frameworks.md +344 -0
- package/skills/luckiest-copywriting/references/natural-transitions.md +272 -0
- package/skills/luckiest-cro/ATTRIBUTION.md +34 -0
- package/skills/luckiest-cro/CHANGELOG.md +23 -0
- package/skills/luckiest-cro/SKILL.md +215 -0
- package/skills/luckiest-cro/evals/evals.json +111 -0
- package/skills/luckiest-cro/references/experiments.md +248 -0
- package/skills/luckiest-cro/references/form.md +422 -0
- package/skills/luckiest-customer-research/ATTRIBUTION.md +40 -0
- package/skills/luckiest-customer-research/CHANGELOG.md +26 -0
- package/skills/luckiest-customer-research/SKILL.md +293 -0
- package/skills/luckiest-customer-research/evals/evals.json +162 -0
- package/skills/luckiest-customer-research/references/source-guides.md +401 -0
- package/skills/luckiest-directory-submissions/ATTRIBUTION.md +40 -0
- package/skills/luckiest-directory-submissions/CHANGELOG.md +33 -0
- package/skills/luckiest-directory-submissions/SKILL.md +419 -0
- package/skills/luckiest-directory-submissions/evals/evals.json +94 -0
- package/skills/luckiest-directory-submissions/references/directory-list.md +477 -0
- package/skills/luckiest-directory-submissions/references/positioning-variations.md +232 -0
- package/skills/luckiest-directory-submissions/references/submission-tracker-template.csv +266 -0
- package/skills/luckiest-emails/ATTRIBUTION.md +42 -0
- package/skills/luckiest-emails/CHANGELOG.md +33 -0
- package/skills/luckiest-emails/SKILL.md +220 -0
- package/skills/luckiest-emails/evals/evals.json +93 -0
- package/skills/luckiest-emails/references/copy-guidelines.md +120 -0
- package/skills/luckiest-emails/references/email-types.md +515 -0
- package/skills/luckiest-emails/references/sequence-templates.md +168 -0
- package/skills/luckiest-extract-design-system/ATTRIBUTION.md +8 -0
- package/skills/luckiest-extract-design-system/CHANGELOG.md +37 -0
- package/skills/luckiest-extract-design-system/SKILL.md +83 -0
- package/skills/luckiest-free-tools/ATTRIBUTION.md +43 -0
- package/skills/luckiest-free-tools/CHANGELOG.md +25 -0
- package/skills/luckiest-free-tools/SKILL.md +220 -0
- package/skills/luckiest-free-tools/evals/evals.json +90 -0
- package/skills/luckiest-free-tools/references/tool-types.md +217 -0
- package/skills/luckiest-image/ATTRIBUTION.md +43 -0
- package/skills/luckiest-image/CHANGELOG.md +23 -0
- package/skills/luckiest-image/SKILL.md +376 -0
- package/skills/luckiest-image/evals/evals.json +89 -0
- package/skills/luckiest-image/references/ai-image-prompting.md +229 -0
- package/skills/luckiest-launch/ATTRIBUTION.md +40 -0
- package/skills/luckiest-launch/CHANGELOG.md +43 -0
- package/skills/luckiest-launch/SKILL.md +385 -0
- package/skills/luckiest-launch/evals/evals.json +91 -0
- package/skills/luckiest-lead-magnets/ATTRIBUTION.md +35 -0
- package/skills/luckiest-lead-magnets/CHANGELOG.md +23 -0
- package/skills/luckiest-lead-magnets/SKILL.md +331 -0
- package/skills/luckiest-lead-magnets/evals/evals.json +87 -0
- package/skills/luckiest-lead-magnets/references/benchmarks.md +129 -0
- package/skills/luckiest-lead-magnets/references/format-guide.md +196 -0
- package/skills/luckiest-marketing-ideas/ATTRIBUTION.md +39 -0
- package/skills/luckiest-marketing-ideas/CHANGELOG.md +33 -0
- package/skills/luckiest-marketing-ideas/SKILL.md +191 -0
- package/skills/luckiest-marketing-ideas/evals/evals.json +90 -0
- package/skills/luckiest-marketing-ideas/references/ideas-by-category.md +366 -0
- package/skills/luckiest-marketing-plan/ATTRIBUTION.md +40 -0
- package/skills/luckiest-marketing-plan/CHANGELOG.md +23 -0
- package/skills/luckiest-marketing-plan/SKILL.md +285 -0
- package/skills/luckiest-marketing-plan/evals/evals.json +96 -0
- package/skills/luckiest-marketing-plan/references/aarrr-framework.md +180 -0
- package/skills/luckiest-marketing-plan/references/budget-planning.md +168 -0
- package/skills/luckiest-marketing-plan/references/client-types.md +373 -0
- package/skills/luckiest-marketing-plan/references/current-state-rubric.md +255 -0
- package/skills/luckiest-marketing-plan/references/example-quietude.md +972 -0
- package/skills/luckiest-marketing-plan/references/funding-stage-unlocks.md +230 -0
- package/skills/luckiest-marketing-plan/references/growth-patterns.md +148 -0
- package/skills/luckiest-marketing-plan/references/idea-cross-reference.md +265 -0
- package/skills/luckiest-marketing-plan/references/measurement-framework.md +213 -0
- package/skills/luckiest-marketing-plan/references/methodology.md +363 -0
- package/skills/luckiest-marketing-plan/references/ops-stack-mapping.md +197 -0
- package/skills/luckiest-marketing-plan/references/plan-template.md +494 -0
- package/skills/luckiest-marketing-plan/references/team-and-agency-model.md +278 -0
- package/skills/luckiest-marketing-psychology/ATTRIBUTION.md +31 -0
- package/skills/luckiest-marketing-psychology/CHANGELOG.md +32 -0
- package/skills/luckiest-marketing-psychology/SKILL.md +202 -0
- package/skills/luckiest-marketing-psychology/evals.json +88 -0
- package/skills/luckiest-model-router/ATTRIBUTION.md +11 -0
- package/skills/luckiest-model-router/CHANGELOG.md +45 -0
- package/skills/luckiest-model-router/SKILL.md +74 -0
- package/skills/luckiest-model-router/scripts/route.py +145 -0
- package/skills/luckiest-offers/ATTRIBUTION.md +39 -0
- package/skills/luckiest-offers/CHANGELOG.md +23 -0
- package/skills/luckiest-offers/SKILL.md +167 -0
- package/skills/luckiest-offers/references/bonus-stacking.md +150 -0
- package/skills/luckiest-offers/references/examples.md +215 -0
- package/skills/luckiest-offers/references/guarantee-design.md +172 -0
- package/skills/luckiest-offers/references/offer-anatomy.md +203 -0
- package/skills/luckiest-offers/references/offer-formats.md +240 -0
- package/skills/luckiest-offers/references/scarcity-urgency.md +175 -0
- package/skills/luckiest-offers/references/value-equation.md +134 -0
- package/skills/luckiest-onboarding/ATTRIBUTION.md +43 -0
- package/skills/luckiest-onboarding/CHANGELOG.md +31 -0
- package/skills/luckiest-onboarding/SKILL.md +243 -0
- package/skills/luckiest-onboarding/references/experiments.md +258 -0
- package/skills/luckiest-paywalls/ATTRIBUTION.md +39 -0
- package/skills/luckiest-paywalls/CHANGELOG.md +25 -0
- package/skills/luckiest-paywalls/SKILL.md +256 -0
- package/skills/luckiest-paywalls/evals/evals.json +93 -0
- package/skills/luckiest-paywalls/references/experiments.md +164 -0
- package/skills/luckiest-popups/ATTRIBUTION.md +35 -0
- package/skills/luckiest-popups/CHANGELOG.md +27 -0
- package/skills/luckiest-popups/SKILL.md +477 -0
- package/skills/luckiest-popups/evals/evals.json +107 -0
- package/skills/luckiest-pricing/ATTRIBUTION.md +35 -0
- package/skills/luckiest-pricing/CHANGELOG.md +31 -0
- package/skills/luckiest-pricing/SKILL.md +283 -0
- package/skills/luckiest-pricing/evals/evals.json +90 -0
- package/skills/luckiest-pricing/references/research-methods.md +152 -0
- package/skills/luckiest-pricing/references/tier-structure.md +232 -0
- package/skills/luckiest-product-marketing/ATTRIBUTION.md +38 -0
- package/skills/luckiest-product-marketing/CHANGELOG.md +23 -0
- package/skills/luckiest-product-marketing/SKILL.md +256 -0
- package/skills/luckiest-product-marketing/evals/evals.json +85 -0
- package/skills/luckiest-programmatic-seo/ATTRIBUTION.md +35 -0
- package/skills/luckiest-programmatic-seo/CHANGELOG.md +24 -0
- package/skills/luckiest-programmatic-seo/SKILL.md +286 -0
- package/skills/luckiest-programmatic-seo/evals/evals.json +95 -0
- package/skills/luckiest-programmatic-seo/references/playbooks.md +308 -0
- package/skills/luckiest-prompt-rewrite/ATTRIBUTION.md +39 -0
- package/skills/luckiest-prompt-rewrite/CHANGELOG.md +70 -0
- package/skills/luckiest-prompt-rewrite/LICENSE +21 -0
- package/skills/luckiest-prompt-rewrite/SKILL.md +494 -0
- package/skills/luckiest-prompt-rewrite/references/patterns.md +82 -0
- package/skills/luckiest-prompt-rewrite/references/templates.md +454 -0
- package/skills/luckiest-prospecting/ATTRIBUTION.md +29 -0
- package/skills/luckiest-prospecting/CHANGELOG.md +24 -0
- package/skills/luckiest-prospecting/SKILL.md +275 -0
- package/skills/luckiest-prospecting/evals/evals.json +107 -0
- package/skills/luckiest-prospecting/references/b2b-prospecting.md +106 -0
- package/skills/luckiest-prospecting/references/compliance.md +123 -0
- package/skills/luckiest-prospecting/references/data-sources.md +287 -0
- package/skills/luckiest-prospecting/references/local-prospecting.md +165 -0
- package/skills/luckiest-prospecting/references/saas-prospecting.md +123 -0
- package/skills/luckiest-public-relations/ATTRIBUTION.md +34 -0
- package/skills/luckiest-public-relations/CHANGELOG.md +23 -0
- package/skills/luckiest-public-relations/SKILL.md +154 -0
- package/skills/luckiest-public-relations/references/journalist-pitching.md +368 -0
- package/skills/luckiest-public-relations/references/media-outlets.md +207 -0
- package/skills/luckiest-public-relations/references/newsjacking.md +218 -0
- package/skills/luckiest-public-relations/references/press-platforms.md +188 -0
- package/skills/luckiest-referrals/ATTRIBUTION.md +41 -0
- package/skills/luckiest-referrals/CHANGELOG.md +23 -0
- package/skills/luckiest-referrals/SKILL.md +292 -0
- package/skills/luckiest-referrals/evals/evals.json +90 -0
- package/skills/luckiest-referrals/references/affiliate-programs.md +167 -0
- package/skills/luckiest-referrals/references/program-examples.md +143 -0
- package/skills/luckiest-revops/ATTRIBUTION.md +40 -0
- package/skills/luckiest-revops/CHANGELOG.md +24 -0
- package/skills/luckiest-revops/SKILL.md +362 -0
- package/skills/luckiest-revops/evals/evals.json +91 -0
- package/skills/luckiest-revops/references/automation-playbooks.md +290 -0
- package/skills/luckiest-revops/references/lifecycle-definitions.md +278 -0
- package/skills/luckiest-revops/references/routing-rules.md +203 -0
- package/skills/luckiest-revops/references/scoring-models.md +247 -0
- package/skills/luckiest-sales-enablement/ATTRIBUTION.md +39 -0
- package/skills/luckiest-sales-enablement/CHANGELOG.md +23 -0
- package/skills/luckiest-sales-enablement/SKILL.md +379 -0
- package/skills/luckiest-sales-enablement/evals/evals.json +91 -0
- package/skills/luckiest-sales-enablement/references/deck-frameworks.md +263 -0
- package/skills/luckiest-sales-enablement/references/demo-scripts.md +355 -0
- package/skills/luckiest-sales-enablement/references/objection-library.md +270 -0
- package/skills/luckiest-sales-enablement/references/one-pager-templates.md +208 -0
- package/skills/luckiest-schema/ATTRIBUTION.md +39 -0
- package/skills/luckiest-schema/CHANGELOG.md +25 -0
- package/skills/luckiest-schema/SKILL.md +209 -0
- package/skills/luckiest-schema/evals/evals.json +88 -0
- package/skills/luckiest-schema/references/schema-examples.md +398 -0
- package/skills/luckiest-seo-audit/ATTRIBUTION.md +39 -0
- package/skills/luckiest-seo-audit/CHANGELOG.md +23 -0
- package/skills/luckiest-seo-audit/SKILL.md +529 -0
- package/skills/luckiest-seo-audit/evals/evals.json +136 -0
- package/skills/luckiest-seo-audit/references/ai-writing-detection.md +200 -0
- package/skills/luckiest-seo-audit/references/international-seo.md +230 -0
- package/skills/luckiest-session-handoff/ATTRIBUTION.md +14 -0
- package/skills/luckiest-session-handoff/CHANGELOG.md +30 -0
- package/skills/luckiest-session-handoff/SKILL.md +96 -0
- package/skills/luckiest-signup/ATTRIBUTION.md +48 -0
- package/skills/luckiest-signup/CHANGELOG.md +24 -0
- package/skills/luckiest-signup/SKILL.md +382 -0
- package/skills/luckiest-signup/evals/evals.json +88 -0
- package/skills/luckiest-site-architecture/ATTRIBUTION.md +38 -0
- package/skills/luckiest-site-architecture/CHANGELOG.md +23 -0
- package/skills/luckiest-site-architecture/SKILL.md +383 -0
- package/skills/luckiest-site-architecture/evals/evals.json +88 -0
- package/skills/luckiest-site-architecture/references/mermaid-templates.md +216 -0
- package/skills/luckiest-site-architecture/references/navigation-patterns.md +305 -0
- package/skills/luckiest-site-architecture/references/site-type-templates.md +293 -0
- package/skills/luckiest-sms/ATTRIBUTION.md +27 -0
- package/skills/luckiest-sms/CHANGELOG.md +24 -0
- package/skills/luckiest-sms/SKILL.md +400 -0
- package/skills/luckiest-sms/evals/evals.json +100 -0
- package/skills/luckiest-sms/references/compliance.md +202 -0
- package/skills/luckiest-sms/references/platforms.md +318 -0
- package/skills/luckiest-sms/references/sequence-templates.md +282 -0
- package/skills/luckiest-social/ATTRIBUTION.md +27 -0
- package/skills/luckiest-social/CHANGELOG.md +24 -0
- package/skills/luckiest-social/SKILL.md +430 -0
- package/skills/luckiest-social/evals/evals.json +92 -0
- package/skills/luckiest-social/references/listening-sources-template.md +123 -0
- package/skills/luckiest-social/references/listening.md +283 -0
- package/skills/luckiest-social/references/platform-limits.md +110 -0
- package/skills/luckiest-social/references/platforms.md +170 -0
- package/skills/luckiest-social/references/post-templates.md +177 -0
- package/skills/luckiest-social/references/reverse-engineering.md +195 -0
- package/skills/luckiest-social/references/short-form-video.md +237 -0
- package/skills/luckiest-thinker/ATTRIBUTION.md +16 -0
- package/skills/luckiest-thinker/CHANGELOG.md +20 -0
- package/skills/luckiest-thinker/LICENSE +21 -0
- package/skills/luckiest-thinker/SKILL.md +92 -0
- package/skills/luckiest-thinker/references/distribution-calibration.md +106 -0
- package/skills/luckiest-thinker/references/research-foundations.md +214 -0
- package/skills/luckiest-thinker/references/thinking-patterns.md +138 -0
- package/skills/luckiest-trends/.skillignore +10 -0
- package/skills/luckiest-trends/ATTRIBUTION.md +43 -0
- package/skills/luckiest-trends/CHANGELOG.md +86 -0
- package/skills/luckiest-trends/LICENSE +21 -0
- package/skills/luckiest-trends/SKILL.md +194 -0
- package/skills/luckiest-trends/agents/openai.yaml +8 -0
- package/skills/luckiest-trends/references/engine-contract.md +2041 -0
- package/skills/luckiest-trends/references/save-html-brief.md +206 -0
- package/skills/luckiest-trends/scripts/briefing.py +272 -0
- package/skills/luckiest-trends/scripts/build-skill.sh +39 -0
- package/skills/luckiest-trends/scripts/compare.sh +61 -0
- package/skills/luckiest-trends/scripts/evaluate_search_quality.py +573 -0
- package/skills/luckiest-trends/scripts/last30days.py +1467 -0
- package/skills/luckiest-trends/scripts/lib/__init__.py +1 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/__init__.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/arxiv.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/bird_x.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/bluesky.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/categories.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/cjk.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/cluster.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/dates.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/dedupe.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/digg.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/entity_extract.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/env.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/fusion.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/github.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/grounding.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/hackernews.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/hiring_signals.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/html_render.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/http.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/instagram.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/jobs.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/linkedin.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/log.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/normalize.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/permission_preflight.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/perplexity.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/pinterest.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/pipeline.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/planner.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/polymarket.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/preflight.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/providers.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/quality_nudge.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/query.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_arctic.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_enrich.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_keyless.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_listing.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_public.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_rss.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_shreddit.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/relevance.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/render.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/rerank.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/resolve.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/schema.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/signals.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/skill_meta.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/snippet.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/subproc.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/techmeme.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/threads.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/tiktok.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/trustpilot.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/truthsocial.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/ui.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/web_search_keyless.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xai_x.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xiaohongshu_api.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xquik.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/xurl_x.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/__pycache__/youtube_yt.cpython-313.pyc +0 -0
- package/skills/luckiest-trends/scripts/lib/arxiv.py +290 -0
- package/skills/luckiest-trends/scripts/lib/bird_x.py +639 -0
- package/skills/luckiest-trends/scripts/lib/bluesky.py +323 -0
- package/skills/luckiest-trends/scripts/lib/categories.py +283 -0
- package/skills/luckiest-trends/scripts/lib/chrome_cookies.py +414 -0
- package/skills/luckiest-trends/scripts/lib/cjk.py +107 -0
- package/skills/luckiest-trends/scripts/lib/cluster.py +271 -0
- package/skills/luckiest-trends/scripts/lib/competitors.py +198 -0
- package/skills/luckiest-trends/scripts/lib/cookie_extract.py +508 -0
- package/skills/luckiest-trends/scripts/lib/dates.py +169 -0
- package/skills/luckiest-trends/scripts/lib/dedupe.py +145 -0
- package/skills/luckiest-trends/scripts/lib/digg.py +440 -0
- package/skills/luckiest-trends/scripts/lib/entity_extract.py +127 -0
- package/skills/luckiest-trends/scripts/lib/env.py +1073 -0
- package/skills/luckiest-trends/scripts/lib/fanout.py +84 -0
- package/skills/luckiest-trends/scripts/lib/fusion.py +207 -0
- package/skills/luckiest-trends/scripts/lib/github.py +996 -0
- package/skills/luckiest-trends/scripts/lib/grounding.py +331 -0
- package/skills/luckiest-trends/scripts/lib/hackernews.py +357 -0
- package/skills/luckiest-trends/scripts/lib/health.py +92 -0
- package/skills/luckiest-trends/scripts/lib/hiring_signals.py +326 -0
- package/skills/luckiest-trends/scripts/lib/html_publish.py +73 -0
- package/skills/luckiest-trends/scripts/lib/html_render.py +738 -0
- package/skills/luckiest-trends/scripts/lib/http.py +372 -0
- package/skills/luckiest-trends/scripts/lib/instagram.py +521 -0
- package/skills/luckiest-trends/scripts/lib/jobs.py +708 -0
- package/skills/luckiest-trends/scripts/lib/linkedin.py +363 -0
- package/skills/luckiest-trends/scripts/lib/log.py +35 -0
- package/skills/luckiest-trends/scripts/lib/normalize.py +759 -0
- package/skills/luckiest-trends/scripts/lib/permission_preflight.py +242 -0
- package/skills/luckiest-trends/scripts/lib/perplexity.py +745 -0
- package/skills/luckiest-trends/scripts/lib/pinterest.py +154 -0
- package/skills/luckiest-trends/scripts/lib/pipeline.py +1720 -0
- package/skills/luckiest-trends/scripts/lib/planner.py +763 -0
- package/skills/luckiest-trends/scripts/lib/polymarket.py +794 -0
- package/skills/luckiest-trends/scripts/lib/preflight.py +119 -0
- package/skills/luckiest-trends/scripts/lib/providers.py +380 -0
- package/skills/luckiest-trends/scripts/lib/quality_nudge.py +383 -0
- package/skills/luckiest-trends/scripts/lib/query.py +202 -0
- package/skills/luckiest-trends/scripts/lib/reddit.py +731 -0
- package/skills/luckiest-trends/scripts/lib/reddit_arctic.py +92 -0
- package/skills/luckiest-trends/scripts/lib/reddit_enrich.py +322 -0
- package/skills/luckiest-trends/scripts/lib/reddit_keyless.py +329 -0
- package/skills/luckiest-trends/scripts/lib/reddit_listing.py +188 -0
- package/skills/luckiest-trends/scripts/lib/reddit_public.py +275 -0
- package/skills/luckiest-trends/scripts/lib/reddit_rss.py +224 -0
- package/skills/luckiest-trends/scripts/lib/reddit_shreddit.py +184 -0
- package/skills/luckiest-trends/scripts/lib/relevance.py +200 -0
- package/skills/luckiest-trends/scripts/lib/render.py +2130 -0
- package/skills/luckiest-trends/scripts/lib/rerank.py +708 -0
- package/skills/luckiest-trends/scripts/lib/resolve.py +345 -0
- package/skills/luckiest-trends/scripts/lib/safari_cookies.py +193 -0
- package/skills/luckiest-trends/scripts/lib/schema.py +319 -0
- package/skills/luckiest-trends/scripts/lib/setup_wizard.py +843 -0
- package/skills/luckiest-trends/scripts/lib/signals.py +334 -0
- package/skills/luckiest-trends/scripts/lib/skill_meta.py +33 -0
- package/skills/luckiest-trends/scripts/lib/snippet.py +51 -0
- package/skills/luckiest-trends/scripts/lib/subproc.py +116 -0
- package/skills/luckiest-trends/scripts/lib/techmeme.py +239 -0
- package/skills/luckiest-trends/scripts/lib/threads.py +207 -0
- package/skills/luckiest-trends/scripts/lib/tiktok.py +596 -0
- package/skills/luckiest-trends/scripts/lib/transcribe.py +235 -0
- package/skills/luckiest-trends/scripts/lib/trustpilot.py +277 -0
- package/skills/luckiest-trends/scripts/lib/truthsocial.py +162 -0
- package/skills/luckiest-trends/scripts/lib/ui.py +626 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/LICENSE +21 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/bird-search.mjs +147 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/cookies.js +220 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/features.json +17 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/paginate-cursor.js +37 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/query-ids.json +20 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/runtime-features.js +151 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/runtime-query-ids.js +264 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-base.js +129 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-constants.js +50 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-features.js +347 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-search.js +157 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-types.js +2 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-utils.js +511 -0
- package/skills/luckiest-trends/scripts/lib/vendor/bird-search/package.json +13 -0
- package/skills/luckiest-trends/scripts/lib/web_fetch_keyless.py +105 -0
- package/skills/luckiest-trends/scripts/lib/web_search_keyless.py +158 -0
- package/skills/luckiest-trends/scripts/lib/xai_x.py +236 -0
- package/skills/luckiest-trends/scripts/lib/xiaohongshu_api.py +162 -0
- package/skills/luckiest-trends/scripts/lib/xquik.py +404 -0
- package/skills/luckiest-trends/scripts/lib/xurl_x.py +171 -0
- package/skills/luckiest-trends/scripts/lib/youtube_yt.py +1365 -0
- package/skills/luckiest-trends/scripts/setup-keychain.sh +123 -0
- package/skills/luckiest-trends/scripts/setup-pass.sh +132 -0
- package/skills/luckiest-trends/scripts/store.py +1020 -0
- package/skills/luckiest-trends/scripts/test-v1-vs-v2.sh +220 -0
- package/skills/luckiest-trends/scripts/test_device_auth.py +128 -0
- package/skills/luckiest-trends/scripts/verify_v3.py +195 -0
- package/skills/luckiest-trends/scripts/watchlist.py +318 -0
- package/skills/luckiest-video/ATTRIBUTION.md +27 -0
- package/skills/luckiest-video/CHANGELOG.md +23 -0
- package/skills/luckiest-video/SKILL.md +371 -0
- package/skills/luckiest-video/evals/evals.json +88 -0
- package/skills/luckiest-video/references/ai-video-prompting.md +175 -0
- package/skills/remix/SKILL.md +32 -0
- package/commands/luckiest/go.md +0 -45
- package/commands/luckiest/plan.md +0 -55
- /package/commands/{luckiest/charms.md → charms.md} +0 -0
- /package/commands/{luckiest/helpers.md → helpers.md} +0 -0
- /package/commands/{luckiest/home.md → home.md} +0 -0
- /package/commands/{luckiest/leaderboard.md → leaderboard.md} +0 -0
- /package/commands/{luckiest/merge.md → merge.md} +0 -0
- /package/commands/{luckiest/overlaps.md → overlaps.md} +0 -0
- /package/commands/{luckiest/skills.md → skills.md} +0 -0
- /package/commands/{luckiest/start.md → start.md} +0 -0
- /package/commands/{luckiest/status.md → status.md} +0 -0
- /package/commands/{luckiest/updates.md → updates.md} +0 -0
- /package/commands/{luckiest/vouch.md → vouch.md} +0 -0
- /package/commands/{luckiest/wishes.md → wishes.md} +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: luckiest-paywalls
|
|
3
|
+
description: When the user wants to create or optimize in-app paywalls, upgrade screens, upsell modals, or feature gates. Also use when the user mentions "paywall," "upgrade screen," "upgrade modal," "upsell," "feature gate," "convert free to paid," "freemium conversion," "trial expiration screen," "limit reached screen," "plan upgrade prompt," "in-app pricing," "free users won't upgrade," "trial to paid conversion," or "how do I get users to pay." Use this for any in-product moment where the user is asking someone to upgrade. Distinct from public pricing pages (see luckiest-cro) — this focuses on in-product upgrade moments where the user has already experienced value. For pricing decisions, see luckiest-pricing.
|
|
4
|
+
license: See ATTRIBUTION.md
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.1.0"
|
|
7
|
+
listing_id: luckiest-paywalls
|
|
8
|
+
author: luckiest
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Paywall and Upgrade Screen CRO
|
|
12
|
+
|
|
13
|
+
This skill guides expert work on in-app paywalls and upgrade flows. The goal is to convert free users to paid, or upgrade users to higher tiers, at moments when they have experienced enough value to justify the commitment.
|
|
14
|
+
|
|
15
|
+
## Staying current
|
|
16
|
+
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "luckiest-paywalls", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
|
+
|
|
19
|
+
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-paywalls", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
|
+
|
|
21
|
+
## Initial Assessment
|
|
22
|
+
|
|
23
|
+
**Check for product marketing context first:**
|
|
24
|
+
If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
|
|
25
|
+
|
|
26
|
+
**Verify the funnel is instrumented before optimizing.**
|
|
27
|
+
Before recommending tests or redesigns, confirm the paywall funnel is actually tracked: impression, view-to-click, click-to-checkout, checkout completion, and post-upgrade retention. If these events are not captured, fixing instrumentation is the first recommendation — optimization without measurement is guessing.
|
|
28
|
+
|
|
29
|
+
Before providing recommendations, understand:
|
|
30
|
+
|
|
31
|
+
1. **Upgrade Context** - Freemium → Paid? Trial → Paid? Tier upgrade? Feature upsell? Usage limit? Reactivation or price change?
|
|
32
|
+
2. **Product Model** - What is free? What is behind the paywall? What triggers prompts? Current conversion rate?
|
|
33
|
+
3. **User Journey** - When does this appear? What have they experienced? What are they trying to do?
|
|
34
|
+
4. **Platform** - Web, mobile app, or both? Mobile changes what is possible (see Platform Constraints).
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Core Principles
|
|
39
|
+
|
|
40
|
+
### 1. Value Before Ask
|
|
41
|
+
- The user should have experienced real value first
|
|
42
|
+
- The upgrade should feel like a natural next step
|
|
43
|
+
- Timing: after the "aha moment," not before
|
|
44
|
+
|
|
45
|
+
### 2. Show, Don't Just Tell
|
|
46
|
+
- Demonstrate the value of paid features
|
|
47
|
+
- Preview what they are missing
|
|
48
|
+
- Make the upgrade feel tangible
|
|
49
|
+
|
|
50
|
+
### 3. Friction-Free Path
|
|
51
|
+
- Easy to upgrade when ready
|
|
52
|
+
- Do not make them hunt for pricing
|
|
53
|
+
|
|
54
|
+
### 4. Respect the No
|
|
55
|
+
- Do not trap or pressure
|
|
56
|
+
- Make it easy to continue free
|
|
57
|
+
- Maintain trust for future conversion
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Paywall Trigger Points
|
|
62
|
+
|
|
63
|
+
### Feature Gates
|
|
64
|
+
When the user clicks a paid-only feature:
|
|
65
|
+
- Clear explanation of why it is paid
|
|
66
|
+
- Show what the feature does
|
|
67
|
+
- Quick path to unlock
|
|
68
|
+
- Option to continue without
|
|
69
|
+
|
|
70
|
+
### Usage Limits
|
|
71
|
+
When the user hits a limit:
|
|
72
|
+
- Clear indication of limit reached
|
|
73
|
+
- Show what upgrading provides
|
|
74
|
+
- Do not block abruptly
|
|
75
|
+
|
|
76
|
+
### Trial Expiration
|
|
77
|
+
When the trial is ending:
|
|
78
|
+
- Early warnings (7, 3, 1 day)
|
|
79
|
+
- Clear "what happens" on expiration
|
|
80
|
+
- Summarize value received
|
|
81
|
+
|
|
82
|
+
### Time-Based Prompts
|
|
83
|
+
After X days of free use:
|
|
84
|
+
- Gentle upgrade reminder
|
|
85
|
+
- Highlight unused paid features
|
|
86
|
+
- Easy to dismiss
|
|
87
|
+
|
|
88
|
+
### Reactivation and Price Changes
|
|
89
|
+
For lapsed or churned users, and existing users at a price increase:
|
|
90
|
+
- Reactivation: acknowledge the return, summarize what they built before, offer a low-friction path back
|
|
91
|
+
- Price change: grandfather where fair, explain the change plainly, give a clear window to lock the old rate. Avoid surprise increases — they drive churn and support load.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Paywall Screen Components
|
|
96
|
+
|
|
97
|
+
1. **Headline** - Focus on what they get: "Unlock [Feature] to [Benefit]"
|
|
98
|
+
2. **Value Demonstration** - Preview, before/after, "With Pro you could..."
|
|
99
|
+
3. **Feature Comparison** - Highlight key differences, current plan marked
|
|
100
|
+
4. **Pricing** - Clear, simple, annual vs. monthly options
|
|
101
|
+
5. **Social Proof** - Customer quotes, "X teams use this"
|
|
102
|
+
6. **CTA** - Specific and value-oriented: "Start Getting [Benefit]"
|
|
103
|
+
7. **Escape Hatch** - Clear "Not now" or "Continue with Free"
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Specific Paywall Types
|
|
108
|
+
|
|
109
|
+
### Feature Lock Paywall
|
|
110
|
+
```
|
|
111
|
+
[Lock Icon]
|
|
112
|
+
This feature is available on Pro
|
|
113
|
+
|
|
114
|
+
[Feature preview/screenshot]
|
|
115
|
+
|
|
116
|
+
[Feature name] helps you [benefit]:
|
|
117
|
+
• [Capability]
|
|
118
|
+
• [Capability]
|
|
119
|
+
|
|
120
|
+
[Upgrade to Pro - $X/mo]
|
|
121
|
+
[Maybe Later]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Usage Limit Paywall
|
|
125
|
+
```
|
|
126
|
+
You've reached your free limit
|
|
127
|
+
|
|
128
|
+
[Progress bar at 100%]
|
|
129
|
+
|
|
130
|
+
Free: 3 projects | Pro: Unlimited
|
|
131
|
+
|
|
132
|
+
[Upgrade to Pro] [Delete a project]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Trial Expiration Paywall
|
|
136
|
+
```
|
|
137
|
+
Your trial ends in 3 days
|
|
138
|
+
|
|
139
|
+
What you'll lose:
|
|
140
|
+
• [Feature used]
|
|
141
|
+
• [Data created]
|
|
142
|
+
|
|
143
|
+
What you've accomplished:
|
|
144
|
+
• Created X projects
|
|
145
|
+
|
|
146
|
+
[Continue with Pro]
|
|
147
|
+
[Remind me later] [Downgrade]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Platform Constraints (mobile)
|
|
153
|
+
|
|
154
|
+
Native mobile paywalls are not free-form web pages. Account for store rules:
|
|
155
|
+
|
|
156
|
+
- **In-app purchase requirement** - Apple and Google generally require digital subscriptions to go through StoreKit / Play Billing, which caps copy, pricing display, and CTA behavior.
|
|
157
|
+
- **External-link entitlements** - Post-litigation, some external-purchase links are allowed in some regions, but the rules are narrow and shifting. Do not assume a "just take them to the website" flow is compliant; verify against current store policy.
|
|
158
|
+
- **Required elements** - Store review often requires visible price, billing period, terms, and a restore-purchases path. Omitting these can block release.
|
|
159
|
+
- **Server-side entitlement** - Grant access based on validated receipts, not client state, so paid features unlock reliably across devices.
|
|
160
|
+
|
|
161
|
+
When the platform is unknown, ask before giving mobile-specific pricing or CTA copy.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Timing and Frequency
|
|
166
|
+
|
|
167
|
+
### When to Show
|
|
168
|
+
- After a value moment, before frustration
|
|
169
|
+
- After activation / aha moment
|
|
170
|
+
- When hitting genuine limits
|
|
171
|
+
|
|
172
|
+
### When NOT to Show
|
|
173
|
+
- During onboarding (too early)
|
|
174
|
+
- When they are in a flow
|
|
175
|
+
- Repeatedly after dismissal
|
|
176
|
+
|
|
177
|
+
### Frequency Rules
|
|
178
|
+
- Limit per session
|
|
179
|
+
- Cool-down after dismiss (days, not hours)
|
|
180
|
+
- Track annoyance signals
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Upgrade Flow Optimization
|
|
185
|
+
|
|
186
|
+
### From Paywall to Payment
|
|
187
|
+
- Minimize steps
|
|
188
|
+
- Keep in-context if possible
|
|
189
|
+
- Pre-fill known information
|
|
190
|
+
|
|
191
|
+
### Post-Upgrade
|
|
192
|
+
- Immediate access to features
|
|
193
|
+
- Confirmation and receipt
|
|
194
|
+
- Guide to new features
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## A/B Testing
|
|
199
|
+
|
|
200
|
+
### What to Test
|
|
201
|
+
- Trigger timing
|
|
202
|
+
- Headline / copy variations
|
|
203
|
+
- Price presentation
|
|
204
|
+
- Trial length
|
|
205
|
+
- Feature emphasis
|
|
206
|
+
- Design / layout
|
|
207
|
+
|
|
208
|
+
### Metrics to Track
|
|
209
|
+
- Paywall impression rate
|
|
210
|
+
- Click-through to upgrade
|
|
211
|
+
- Completion rate
|
|
212
|
+
- Revenue per user
|
|
213
|
+
- Churn rate post-upgrade
|
|
214
|
+
|
|
215
|
+
**For comprehensive experiment ideas**: load [references/experiments.md](references/experiments.md) when the user wants a menu of tests to run or is scoping an experimentation roadmap.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Anti-Patterns to Avoid
|
|
220
|
+
|
|
221
|
+
### Dark Patterns
|
|
222
|
+
- Hiding the close button
|
|
223
|
+
- Confusing plan selection
|
|
224
|
+
- Guilt-trip copy
|
|
225
|
+
|
|
226
|
+
### Conversion Killers
|
|
227
|
+
- Asking before value delivered
|
|
228
|
+
- Too frequent prompts
|
|
229
|
+
- Blocking critical flows
|
|
230
|
+
- Complicated upgrade process
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Task-Specific Questions
|
|
235
|
+
|
|
236
|
+
1. What is your current free → paid conversion rate?
|
|
237
|
+
2. What triggers upgrade prompts today?
|
|
238
|
+
3. What features are behind the paywall?
|
|
239
|
+
4. What is your "aha moment" for users?
|
|
240
|
+
5. What pricing model? (per seat, usage, flat)
|
|
241
|
+
6. Mobile app, web app, or both?
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Share with your tribe
|
|
246
|
+
|
|
247
|
+
After delivering a paywall design or optimization plan, offer (never auto-post, never send credentials): "Want me to share this paywall approach with your Luckiest tribe? Others working on freemium conversion can pick up where you left off." Only share if the user accepts. If they decline, stop.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Related Skills
|
|
252
|
+
|
|
253
|
+
- **luckiest-churn-prevention**: For cancel flows, save offers, and reducing churn post-upgrade
|
|
254
|
+
- **luckiest-cro**: For public pricing page optimization
|
|
255
|
+
- **luckiest-onboarding**: For driving to aha moment before upgrade
|
|
256
|
+
- **luckiest-ab-testing**: For testing paywall variations
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "luckiest-paywalls",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Help me design the upgrade paywall for our project management tool. Free users can have 3 projects, and we want to show an upgrade screen when they try to create a 4th project.",
|
|
7
|
+
"expected_output": "Should check for product-marketing.md first. Should identify this as a usage limit trigger point. Should apply the paywall screen components: headline (communicate the value of upgrading, not just the limit), value demonstration (show what they get with paid plan), plan comparison (free vs paid), social proof, CTA (specific and action-oriented), and escape hatch (option to go back). Should provide specific copy recommendations. Should address the emotional state of the user at this moment (frustrated by the limit). Should warn against anti-patterns.",
|
|
8
|
+
"assertions": [
|
|
9
|
+
"Checks for product-marketing.md",
|
|
10
|
+
"Identifies as usage limit trigger",
|
|
11
|
+
"Applies paywall screen components framework",
|
|
12
|
+
"Includes headline, value demo, comparison, social proof, CTA",
|
|
13
|
+
"Provides specific copy recommendations",
|
|
14
|
+
"Addresses user's emotional state at the limit",
|
|
15
|
+
"Includes escape hatch option",
|
|
16
|
+
"Warns against anti-patterns"
|
|
17
|
+
],
|
|
18
|
+
"files": []
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": 2,
|
|
22
|
+
"prompt": "Our free trial expires in 14 days and users see a generic 'Your trial has expired' screen. Upgrade rate from this screen is only 2%. How do we improve it?",
|
|
23
|
+
"expected_output": "Should identify this as a trial expiration trigger. Should apply the trial expiration paywall type guidance. Should recommend: show what they've built/accomplished during the trial (endowment effect), highlight specific features they used, show the value they'd lose, provide clear plan options, include social proof from similar users who upgraded. Should diagnose why 2% is low: likely a weak value prop, no personalization, no urgency or loss framing. Should provide specific redesign recommendations.",
|
|
24
|
+
"assertions": [
|
|
25
|
+
"Identifies as trial expiration trigger",
|
|
26
|
+
"Applies trial expiration paywall guidance",
|
|
27
|
+
"Recommends showing user's accomplishments during trial",
|
|
28
|
+
"Uses loss framing (what they'd lose)",
|
|
29
|
+
"Provides clear plan options",
|
|
30
|
+
"Includes social proof",
|
|
31
|
+
"Diagnoses why current 2% rate is low",
|
|
32
|
+
"Provides specific redesign recommendations"
|
|
33
|
+
],
|
|
34
|
+
"files": []
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": 3,
|
|
38
|
+
"prompt": "when should we show upgrade prompts? we don't want to be annoying but we also need to convert free users to paid.",
|
|
39
|
+
"expected_output": "Should trigger on casual phrasing. Should apply the timing and frequency rules. Should recommend trigger points from the skill: feature gates (when they try a paid feature), usage limits (when they hit a threshold), value moments (when they've just experienced success), and natural transition points. Should address frequency capping to avoid being annoying. Should recommend the anti-patterns to avoid (blocking basic functionality, too frequent popups, dark patterns). Should provide a balanced approach that respects user experience while driving upgrades.",
|
|
40
|
+
"assertions": [
|
|
41
|
+
"Triggers on casual phrasing",
|
|
42
|
+
"Applies timing and frequency rules",
|
|
43
|
+
"Recommends specific trigger points",
|
|
44
|
+
"Addresses frequency capping",
|
|
45
|
+
"Warns against anti-patterns",
|
|
46
|
+
"Balances user experience with conversion goals",
|
|
47
|
+
"Provides specific recommendations for each trigger type"
|
|
48
|
+
],
|
|
49
|
+
"files": []
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": 4,
|
|
53
|
+
"prompt": "Design a feature gate paywall. When free users click on 'Advanced Analytics' in our dashboard, we want to show them an upgrade prompt.",
|
|
54
|
+
"expected_output": "Should identify this as a feature gate trigger. Should apply the feature lock paywall type guidance. Should recommend: show a preview or screenshot of the advanced analytics feature, explain the specific benefit (not just 'this is a paid feature'), include a plan comparison relevant to analytics, provide a clear CTA to upgrade, and include an escape hatch to go back to basic analytics. Should recommend showing what insights they're missing. Should provide copy recommendations for the paywall screen.",
|
|
55
|
+
"assertions": [
|
|
56
|
+
"Identifies as feature gate trigger",
|
|
57
|
+
"Applies feature lock paywall guidance",
|
|
58
|
+
"Recommends showing preview of the feature",
|
|
59
|
+
"Explains specific benefit of the feature",
|
|
60
|
+
"Includes relevant plan comparison",
|
|
61
|
+
"Provides clear CTA and escape hatch",
|
|
62
|
+
"Provides copy recommendations"
|
|
63
|
+
],
|
|
64
|
+
"files": []
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": 5,
|
|
68
|
+
"prompt": "What are common mistakes to avoid with in-app paywalls? I don't want to be pushy or make users feel tricked.",
|
|
69
|
+
"expected_output": "Should apply the anti-patterns section. Should cover: dark patterns (making it hard to find the close button, confusing opt-out language), conversion killers (blocking basic functionality, showing paywalls too early before value is demonstrated, no escape hatch), frequency issues (too many prompts, showing the same paywall repeatedly). Should provide positive alternatives for each anti-pattern. Should emphasize that good paywalls feel helpful, not pushy.",
|
|
70
|
+
"assertions": [
|
|
71
|
+
"Applies anti-patterns section",
|
|
72
|
+
"Covers dark patterns to avoid",
|
|
73
|
+
"Covers conversion killers",
|
|
74
|
+
"Covers frequency issues",
|
|
75
|
+
"Provides positive alternatives for each",
|
|
76
|
+
"Emphasizes helpful over pushy approach"
|
|
77
|
+
],
|
|
78
|
+
"files": []
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": 6,
|
|
82
|
+
"prompt": "Can you help me optimize our public pricing page? We want more visitors to choose the Pro plan over the Basic plan.",
|
|
83
|
+
"expected_output": "Should recognize this is a public pricing page optimization task, not an in-app paywall task. Should defer to or cross-reference the luckiest-cro skill for pricing page CRO. luckiest-paywalls specifically handles in-app upgrade prompts for existing users, not public-facing pricing pages.",
|
|
84
|
+
"assertions": [
|
|
85
|
+
"Recognizes this as public pricing page optimization",
|
|
86
|
+
"References or defers to luckiest-cro skill",
|
|
87
|
+
"Explains that luckiest-paywalls is for in-app upgrade prompts",
|
|
88
|
+
"Does not attempt public pricing page optimization"
|
|
89
|
+
],
|
|
90
|
+
"files": []
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Paywall Experiment Ideas
|
|
2
|
+
|
|
3
|
+
Comprehensive list of A/B tests and experiments for paywall optimization.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
- Trigger & Timing Experiments (When to Show, Trigger Type)
|
|
7
|
+
- Paywall Design Experiments (Layout & Format, Value Presentation, Visual Elements)
|
|
8
|
+
- Pricing Presentation Experiments (Price Display, Plan Options, Discounts & Offers)
|
|
9
|
+
- Copy & Messaging Experiments (Headlines, CTAs, Objection Handling)
|
|
10
|
+
- Trial & Conversion Experiments (Trial Structure, Trial Expiration, Upgrade Path)
|
|
11
|
+
- Personalization Experiments (Usage-Based, Segment-Specific)
|
|
12
|
+
- Frequency & UX Experiments (Frequency Capping, Dismiss Behavior)
|
|
13
|
+
|
|
14
|
+
## Trigger & Timing Experiments
|
|
15
|
+
|
|
16
|
+
### When to Show
|
|
17
|
+
- Test trigger timing: after aha moment vs. at feature attempt
|
|
18
|
+
- Early trial reminder (7 days) vs. late reminder (1 day before)
|
|
19
|
+
- Show after X actions completed vs. after X days
|
|
20
|
+
- Test soft prompts at different engagement thresholds
|
|
21
|
+
- Trigger based on usage patterns vs. time-based only
|
|
22
|
+
|
|
23
|
+
### Trigger Type
|
|
24
|
+
- Hard gate (can't proceed) vs. soft gate (preview + prompt)
|
|
25
|
+
- Feature lock vs. usage limit as primary trigger
|
|
26
|
+
- In-context modal vs. dedicated upgrade page
|
|
27
|
+
- Banner reminder vs. modal prompt
|
|
28
|
+
- Exit-intent on free plan pages
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Paywall Design Experiments
|
|
33
|
+
|
|
34
|
+
### Layout & Format
|
|
35
|
+
- Full-screen paywall vs. modal overlay
|
|
36
|
+
- Minimal paywall (CTA-focused) vs. feature-rich paywall
|
|
37
|
+
- Single plan display vs. plan comparison
|
|
38
|
+
- Image/preview included vs. text-only
|
|
39
|
+
- Vertical layout vs. horizontal layout on desktop
|
|
40
|
+
|
|
41
|
+
### Value Presentation
|
|
42
|
+
- Feature list vs. benefit statements
|
|
43
|
+
- Show what they'll lose (loss aversion) vs. what they'll gain
|
|
44
|
+
- Personalized value summary based on usage
|
|
45
|
+
- Before/after demonstration
|
|
46
|
+
- ROI calculator or value quantification
|
|
47
|
+
|
|
48
|
+
### Visual Elements
|
|
49
|
+
- Add product screenshots or previews
|
|
50
|
+
- Include short demo video or GIF
|
|
51
|
+
- Test illustration vs. product imagery
|
|
52
|
+
- Animated vs. static paywall
|
|
53
|
+
- Progress visualization (what they've accomplished)
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Pricing Presentation Experiments
|
|
58
|
+
|
|
59
|
+
### Price Display
|
|
60
|
+
- Show monthly vs. annual vs. both with toggle
|
|
61
|
+
- Highlight savings for annual ($ amount vs. % off)
|
|
62
|
+
- Price per day framing ("Less than a coffee")
|
|
63
|
+
- Show price after trial vs. emphasize "Start Free"
|
|
64
|
+
- Display price prominently vs. de-emphasize until click
|
|
65
|
+
|
|
66
|
+
### Plan Options
|
|
67
|
+
- Single recommended plan vs. multiple tiers
|
|
68
|
+
- Add "Most Popular" badge to target plan
|
|
69
|
+
- Test number of visible plans (2 vs. 3)
|
|
70
|
+
- Show enterprise/custom tier vs. hide it
|
|
71
|
+
- Include one-time purchase option alongside subscription
|
|
72
|
+
|
|
73
|
+
### Discounts & Offers
|
|
74
|
+
- First month/year discount for conversion
|
|
75
|
+
- Limited-time upgrade offer with countdown
|
|
76
|
+
- Loyalty discount based on free usage duration
|
|
77
|
+
- Bundle discount for annual commitment
|
|
78
|
+
- Referral discount for social proof
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Copy & Messaging Experiments
|
|
83
|
+
|
|
84
|
+
### Headlines
|
|
85
|
+
- Benefit-focused ("Unlock unlimited projects") vs. feature-focused ("Get Pro features")
|
|
86
|
+
- Question format ("Ready to do more?") vs. statement format
|
|
87
|
+
- Urgency-based ("Don't lose your work") vs. value-based
|
|
88
|
+
- Personalized headline with user's name or usage data
|
|
89
|
+
- Social proof headline ("Join 10,000+ Pro users")
|
|
90
|
+
|
|
91
|
+
### CTAs
|
|
92
|
+
- "Start Free Trial" vs. "Upgrade Now" vs. "Continue with Pro"
|
|
93
|
+
- First person ("Start My Trial") vs. second person ("Start Your Trial")
|
|
94
|
+
- Value-specific ("Unlock Unlimited") vs. generic ("Upgrade")
|
|
95
|
+
- Add urgency ("Upgrade Today") vs. no pressure
|
|
96
|
+
- Include price in CTA vs. separate price display
|
|
97
|
+
|
|
98
|
+
### Objection Handling
|
|
99
|
+
- Add money-back guarantee messaging
|
|
100
|
+
- Show "Cancel anytime" prominently
|
|
101
|
+
- Include FAQ on paywall
|
|
102
|
+
- Address specific objections based on feature gated
|
|
103
|
+
- Add chat/support option on paywall
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Trial & Conversion Experiments
|
|
108
|
+
|
|
109
|
+
### Trial Structure
|
|
110
|
+
- 7-day vs. 14-day vs. 30-day trial length
|
|
111
|
+
- Credit card required vs. not required for trial
|
|
112
|
+
- Full-access trial vs. limited feature trial
|
|
113
|
+
- Trial extension offer for engaged users
|
|
114
|
+
- Second trial offer for expired/churned users
|
|
115
|
+
|
|
116
|
+
### Trial Expiration
|
|
117
|
+
- Countdown timer visibility (always vs. near end)
|
|
118
|
+
- Email reminders: frequency and timing
|
|
119
|
+
- Grace period after expiration vs. immediate downgrade
|
|
120
|
+
- "Last chance" offer with discount
|
|
121
|
+
- Pause option vs. immediate cancellation
|
|
122
|
+
|
|
123
|
+
### Upgrade Path
|
|
124
|
+
- One-click upgrade from paywall vs. separate checkout
|
|
125
|
+
- Pre-filled payment info for returning users
|
|
126
|
+
- Multiple payment methods offered
|
|
127
|
+
- Quarterly plan option alongside monthly/annual
|
|
128
|
+
- Team invite flow for solo-to-team conversion
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Personalization Experiments
|
|
133
|
+
|
|
134
|
+
### Usage-Based
|
|
135
|
+
- Personalize paywall copy based on features used
|
|
136
|
+
- Highlight most-used premium features
|
|
137
|
+
- Show usage stats ("You've created 50 projects")
|
|
138
|
+
- Recommend plan based on behavior patterns
|
|
139
|
+
- Dynamic feature emphasis based on user segment
|
|
140
|
+
|
|
141
|
+
### Segment-Specific
|
|
142
|
+
- Different paywall for power users vs. casual users
|
|
143
|
+
- B2B vs. B2C messaging variations
|
|
144
|
+
- Industry-specific value propositions
|
|
145
|
+
- Role-based feature highlighting
|
|
146
|
+
- Traffic source-based messaging
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Frequency & UX Experiments
|
|
151
|
+
|
|
152
|
+
### Frequency Capping
|
|
153
|
+
- Test number of prompts per session
|
|
154
|
+
- Cool-down period after dismiss (hours vs. days)
|
|
155
|
+
- Escalating urgency over time vs. consistent messaging
|
|
156
|
+
- Once per feature vs. consolidated prompts
|
|
157
|
+
- Re-show rules after major engagement
|
|
158
|
+
|
|
159
|
+
### Dismiss Behavior
|
|
160
|
+
- "Maybe later" vs. "No thanks" vs. "Remind me tomorrow"
|
|
161
|
+
- Ask reason for declining
|
|
162
|
+
- Offer alternative (lower tier, annual discount)
|
|
163
|
+
- Exit survey on dismiss
|
|
164
|
+
- Friendly vs. neutral decline copy
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Attribution
|
|
2
|
+
|
|
3
|
+
This skill, **luckiest-popups**, is a rebranded and modified ("Luckiest edition")
|
|
4
|
+
derivative of the original skill **"popups"** from the **marketingskills** project
|
|
5
|
+
(https://github.com/coreyhaines31/marketingskills) by **Corey Haines** (https://corey.co),
|
|
6
|
+
distributed under the MIT License.
|
|
7
|
+
|
|
8
|
+
The original copyright and license notice are reproduced verbatim below and are retained
|
|
9
|
+
in full as required by the MIT License.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Original License (verbatim)
|
|
14
|
+
|
|
15
|
+
MIT License
|
|
16
|
+
|
|
17
|
+
Copyright (c) 2025 Corey Haines
|
|
18
|
+
|
|
19
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
20
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
21
|
+
in the Software without restriction, including without limitation the rights
|
|
22
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
23
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
24
|
+
furnished to do so, subject to the following conditions:
|
|
25
|
+
|
|
26
|
+
The above copyright notice and this permission notice shall be included in all
|
|
27
|
+
copies or substantial portions of the Software.
|
|
28
|
+
|
|
29
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
30
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
31
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
33
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
34
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
35
|
+
SOFTWARE.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Changelog — luckiest-popups
|
|
2
|
+
|
|
3
|
+
## 1.1.0 — 2026-07-06
|
|
4
|
+
Skill updater pass: analytics integration.
|
|
5
|
+
|
|
6
|
+
### Analytics (report_usage)
|
|
7
|
+
- Updated `report_usage` call to `skill_version: "1.1.0"` and `check_updates`
|
|
8
|
+
`installedSemver: "1.1.0"`. The skill now reports usage to the Luckiest
|
|
9
|
+
telemetry pipeline on every run, making it visible on the admin Skill Usage
|
|
10
|
+
page (/owner/skill-usage).
|
|
11
|
+
|
|
12
|
+
## 1.0.0 — 2026-07-01
|
|
13
|
+
Rebranded from popups (marketingskills, MIT).
|
|
14
|
+
|
|
15
|
+
### Improve pass (/refract)
|
|
16
|
+
- Added a hard mobile guardrail under Google Guidelines: never let a popup render before main content paints on mobile, since a blocking overlay both triggers Google's intrusive-interstitial penalty and harms Core Web Vitals (LCP and interaction responsiveness/INP). The source warned about intrusive interstitials generically but had no first-paint / Core Web Vitals rule.
|
|
17
|
+
- Strengthened the Accessibility section: return focus to the triggering element on close (genuine a11y gap beyond the existing focus-trap), plus explicit `role="dialog"` / `aria-modal="true"` / labelled-heading guidance.
|
|
18
|
+
- Added a consent-management (CMP) note under GDPR/Privacy: in consent-required regions, sequence the marketing popup behind the consent banner and wire opt-in state into the site's CMP rather than firing independently.
|
|
19
|
+
- Added trigger phrases "my popups are annoying people" and "intrusive interstitial," and eval #7 covering the mobile-first-paint / Core Web Vitals edge case.
|
|
20
|
+
|
|
21
|
+
### Network hook
|
|
22
|
+
- Share-with-tribe: after a popup pattern proves itself (variant beats control, or complaints drop while conversion holds), the skill OFFERS to surface the sanitized winning pattern to the user's Luckiest tribe. Never auto-posts; strips raw traffic numbers, customer records, email addresses, discount codes, and anything resembling a credential or token.
|
|
23
|
+
|
|
24
|
+
### Trend pass (/newsjack + /luckiest-trends)
|
|
25
|
+
- Google's mobile intrusive-interstitial guidance remains an active ranking signal and interacts with Core Web Vitals; INP replaced FID as a Core Web Vital in March 2024, making blocking overlays a measurable responsiveness cost — Google Search Central "Intrusive interstitials and dialogs" + web.dev "INP" — 2026-07-01.
|
|
26
|
+
- EEA/UK consent-mode expectations (Google Consent Mode v2, enforced 2024) reinforce sequencing marketing popups behind the consent banner and wiring opt-in into a CMP — Google "Consent Mode v2" — 2026-07-01.
|
|
27
|
+
- Note: /luckiest-trends requires a full multi-source setup wizard outside this task's timebox; the signals above were gathered via host web knowledge and are dated/attributed. No fabricated live-feed data.
|