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.
Files changed (618) hide show
  1. package/.claude-plugin/marketplace.json +16 -0
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/LICENSE +24 -0
  4. package/bin/install.js +7 -5
  5. package/commands/{luckiest/finish.md → finish.md} +2 -0
  6. package/commands/go.md +53 -0
  7. package/commands/plan.md +66 -0
  8. package/package.json +16 -5
  9. package/skills/brainstorm/ATTRIBUTION.md +27 -0
  10. package/skills/brainstorm/SKILL.md +139 -0
  11. package/skills/luckiest-ab-testing/ATTRIBUTION.md +35 -0
  12. package/skills/luckiest-ab-testing/CHANGELOG.md +27 -0
  13. package/skills/luckiest-ab-testing/SKILL.md +379 -0
  14. package/skills/luckiest-ab-testing/evals/evals.json +118 -0
  15. package/skills/luckiest-ab-testing/references/sample-size-guide.md +290 -0
  16. package/skills/luckiest-ab-testing/references/test-templates.md +284 -0
  17. package/skills/luckiest-ad-creative/ATTRIBUTION.md +35 -0
  18. package/skills/luckiest-ad-creative/CHANGELOG.md +23 -0
  19. package/skills/luckiest-ad-creative/SKILL.md +393 -0
  20. package/skills/luckiest-ad-creative/evals/evals.json +90 -0
  21. package/skills/luckiest-ad-creative/references/generative-tools.md +637 -0
  22. package/skills/luckiest-ad-creative/references/platform-specs.md +213 -0
  23. package/skills/luckiest-ads/ATTRIBUTION.md +36 -0
  24. package/skills/luckiest-ads/CHANGELOG.md +24 -0
  25. package/skills/luckiest-ads/LICENSE +21 -0
  26. package/skills/luckiest-ads/SKILL.md +434 -0
  27. package/skills/luckiest-ads/evals/evals.json +90 -0
  28. package/skills/luckiest-ads/references/ad-copy-templates.md +207 -0
  29. package/skills/luckiest-ads/references/audience-targeting.md +243 -0
  30. package/skills/luckiest-ads/references/conversion-tracking.md +361 -0
  31. package/skills/luckiest-ads/references/platform-setup-checklists.md +277 -0
  32. package/skills/luckiest-advisors/ATTRIBUTION.md +16 -0
  33. package/skills/luckiest-advisors/CHANGELOG.md +99 -0
  34. package/skills/luckiest-advisors/SKILL.md +151 -0
  35. package/skills/luckiest-aeo-grader/ATTRIBUTION.md +19 -0
  36. package/skills/luckiest-aeo-grader/CHANGELOG.md +52 -0
  37. package/skills/luckiest-aeo-grader/SKILL.md +200 -0
  38. package/skills/luckiest-aeo-grader/evals/evals.json +19 -0
  39. package/skills/luckiest-aeo-grader/references/rubric.md +72 -0
  40. package/skills/luckiest-aeo-grader/scripts/scan.py +265 -0
  41. package/skills/luckiest-ai-seo/ATTRIBUTION.md +38 -0
  42. package/skills/luckiest-ai-seo/CHANGELOG.md +23 -0
  43. package/skills/luckiest-ai-seo/SKILL.md +510 -0
  44. package/skills/luckiest-ai-seo/evals/evals.json +90 -0
  45. package/skills/luckiest-ai-seo/references/content-patterns.md +285 -0
  46. package/skills/luckiest-ai-seo/references/content-types.md +71 -0
  47. package/skills/luckiest-ai-seo/references/okf.md +104 -0
  48. package/skills/luckiest-ai-seo/references/platform-ranking-factors.md +154 -0
  49. package/skills/luckiest-analytics/ATTRIBUTION.md +42 -0
  50. package/skills/luckiest-analytics/CHANGELOG.md +36 -0
  51. package/skills/luckiest-analytics/SKILL.md +380 -0
  52. package/skills/luckiest-analytics/evals/evals.json +90 -0
  53. package/skills/luckiest-analytics/references/event-library.md +260 -0
  54. package/skills/luckiest-analytics/references/ga4-implementation.md +300 -0
  55. package/skills/luckiest-analytics/references/gtm-implementation.md +390 -0
  56. package/skills/luckiest-aso/ATTRIBUTION.md +40 -0
  57. package/skills/luckiest-aso/CHANGELOG.md +33 -0
  58. package/skills/luckiest-aso/SKILL.md +327 -0
  59. package/skills/luckiest-aso/evals/evals.json +91 -0
  60. package/skills/luckiest-aso/references/apple-specs.md +107 -0
  61. package/skills/luckiest-aso/references/benchmarks.md +129 -0
  62. package/skills/luckiest-aso/references/google-play-specs.md +131 -0
  63. package/skills/luckiest-aso/references/report-template.md +213 -0
  64. package/skills/luckiest-aso/references/scoring-criteria.md +213 -0
  65. package/skills/luckiest-churn-prevention/ATTRIBUTION.md +41 -0
  66. package/skills/luckiest-churn-prevention/CHANGELOG.md +24 -0
  67. package/skills/luckiest-churn-prevention/SKILL.md +445 -0
  68. package/skills/luckiest-churn-prevention/evals/evals.json +93 -0
  69. package/skills/luckiest-churn-prevention/references/cancel-flow-patterns.md +316 -0
  70. package/skills/luckiest-churn-prevention/references/dunning-playbook.md +408 -0
  71. package/skills/luckiest-co-marketing/ATTRIBUTION.md +38 -0
  72. package/skills/luckiest-co-marketing/CHANGELOG.md +25 -0
  73. package/skills/luckiest-co-marketing/SKILL.md +331 -0
  74. package/skills/luckiest-co-marketing/evals/evals.json +84 -0
  75. package/skills/luckiest-coder/ATTRIBUTION.md +26 -0
  76. package/skills/luckiest-coder/CHANGELOG.md +30 -0
  77. package/skills/luckiest-coder/SKILL.md +77 -0
  78. package/skills/luckiest-coder/references/antigravity-tools.md +23 -0
  79. package/skills/luckiest-coder/references/codex-tools.md +39 -0
  80. package/skills/luckiest-coder/references/pi-tools.md +16 -0
  81. package/skills/luckiest-coder-brainstorming/ATTRIBUTION.md +26 -0
  82. package/skills/luckiest-coder-brainstorming/CHANGELOG.md +31 -0
  83. package/skills/luckiest-coder-brainstorming/SKILL.md +173 -0
  84. package/skills/luckiest-coder-brainstorming/scripts/frame-template.html +213 -0
  85. package/skills/luckiest-coder-brainstorming/scripts/helper.js +168 -0
  86. package/skills/luckiest-coder-brainstorming/scripts/server.cjs +721 -0
  87. package/skills/luckiest-coder-brainstorming/scripts/start-server.sh +209 -0
  88. package/skills/luckiest-coder-brainstorming/scripts/stop-server.sh +120 -0
  89. package/skills/luckiest-coder-brainstorming/spec-document-reviewer-prompt.md +49 -0
  90. package/skills/luckiest-coder-brainstorming/visual-companion.md +291 -0
  91. package/skills/luckiest-coder-consistency/ATTRIBUTION.md +30 -0
  92. package/skills/luckiest-coder-consistency/CHANGELOG.md +26 -0
  93. package/skills/luckiest-coder-consistency/SKILL.md +98 -0
  94. package/skills/luckiest-coder-constitution/ATTRIBUTION.md +28 -0
  95. package/skills/luckiest-coder-constitution/CHANGELOG.md +25 -0
  96. package/skills/luckiest-coder-constitution/SKILL.md +115 -0
  97. package/skills/luckiest-coder-debugging/ATTRIBUTION.md +26 -0
  98. package/skills/luckiest-coder-debugging/CHANGELOG.md +22 -0
  99. package/skills/luckiest-coder-debugging/CREATION-LOG.md +119 -0
  100. package/skills/luckiest-coder-debugging/SKILL.md +309 -0
  101. package/skills/luckiest-coder-debugging/condition-based-waiting-example.ts +158 -0
  102. package/skills/luckiest-coder-debugging/condition-based-waiting.md +115 -0
  103. package/skills/luckiest-coder-debugging/defense-in-depth.md +122 -0
  104. package/skills/luckiest-coder-debugging/find-polluter.sh +63 -0
  105. package/skills/luckiest-coder-debugging/root-cause-tracing.md +169 -0
  106. package/skills/luckiest-coder-debugging/test-academic.md +14 -0
  107. package/skills/luckiest-coder-debugging/test-pressure-1.md +58 -0
  108. package/skills/luckiest-coder-debugging/test-pressure-2.md +68 -0
  109. package/skills/luckiest-coder-debugging/test-pressure-3.md +69 -0
  110. package/skills/luckiest-coder-dispatching-parallel-agents/ATTRIBUTION.md +26 -0
  111. package/skills/luckiest-coder-dispatching-parallel-agents/CHANGELOG.md +23 -0
  112. package/skills/luckiest-coder-dispatching-parallel-agents/SKILL.md +198 -0
  113. package/skills/luckiest-coder-executing-plans/ATTRIBUTION.md +26 -0
  114. package/skills/luckiest-coder-executing-plans/CHANGELOG.md +22 -0
  115. package/skills/luckiest-coder-executing-plans/SKILL.md +83 -0
  116. package/skills/luckiest-coder-finishing-a-branch/ATTRIBUTION.md +26 -0
  117. package/skills/luckiest-coder-finishing-a-branch/CHANGELOG.md +22 -0
  118. package/skills/luckiest-coder-finishing-a-branch/SKILL.md +258 -0
  119. package/skills/luckiest-coder-git-worktrees/ATTRIBUTION.md +26 -0
  120. package/skills/luckiest-coder-git-worktrees/CHANGELOG.md +22 -0
  121. package/skills/luckiest-coder-git-worktrees/SKILL.md +215 -0
  122. package/skills/luckiest-coder-guard/ATTRIBUTION.md +29 -0
  123. package/skills/luckiest-coder-guard/CHANGELOG.md +48 -0
  124. package/skills/luckiest-coder-guard/LICENSE +21 -0
  125. package/skills/luckiest-coder-guard/SKILL.md +126 -0
  126. package/skills/luckiest-coder-guard/bin/check-careful.sh +65 -0
  127. package/skills/luckiest-coder-guard/bin/check-freeze.sh +48 -0
  128. package/skills/luckiest-coder-qa/ATTRIBUTION.md +28 -0
  129. package/skills/luckiest-coder-qa/CHANGELOG.md +49 -0
  130. package/skills/luckiest-coder-qa/LICENSE +21 -0
  131. package/skills/luckiest-coder-qa/SKILL.md +160 -0
  132. package/skills/luckiest-coder-qa/references/issue-taxonomy.md +85 -0
  133. package/skills/luckiest-coder-qa/references/qa-report-template.md +126 -0
  134. package/skills/luckiest-coder-receiving-code-review/ATTRIBUTION.md +26 -0
  135. package/skills/luckiest-coder-receiving-code-review/CHANGELOG.md +28 -0
  136. package/skills/luckiest-coder-receiving-code-review/SKILL.md +226 -0
  137. package/skills/luckiest-coder-requesting-code-review/ATTRIBUTION.md +26 -0
  138. package/skills/luckiest-coder-requesting-code-review/CHANGELOG.md +31 -0
  139. package/skills/luckiest-coder-requesting-code-review/SKILL.md +118 -0
  140. package/skills/luckiest-coder-requesting-code-review/code-reviewer.md +172 -0
  141. package/skills/luckiest-coder-shipping/ATTRIBUTION.md +26 -0
  142. package/skills/luckiest-coder-shipping/CHANGELOG.md +48 -0
  143. package/skills/luckiest-coder-shipping/LICENSE +21 -0
  144. package/skills/luckiest-coder-shipping/SKILL.md +148 -0
  145. package/skills/luckiest-coder-shipping/references/canary.md +44 -0
  146. package/skills/luckiest-coder-shipping/references/test-and-coverage.md +91 -0
  147. package/skills/luckiest-coder-subagent-driven-development/ATTRIBUTION.md +26 -0
  148. package/skills/luckiest-coder-subagent-driven-development/CHANGELOG.md +28 -0
  149. package/skills/luckiest-coder-subagent-driven-development/SKILL.md +439 -0
  150. package/skills/luckiest-coder-subagent-driven-development/implementer-prompt.md +139 -0
  151. package/skills/luckiest-coder-subagent-driven-development/scripts/review-package +44 -0
  152. package/skills/luckiest-coder-subagent-driven-development/scripts/sdd-workspace +22 -0
  153. package/skills/luckiest-coder-subagent-driven-development/scripts/task-brief +40 -0
  154. package/skills/luckiest-coder-subagent-driven-development/task-reviewer-prompt.md +188 -0
  155. package/skills/luckiest-coder-tdd/ATTRIBUTION.md +26 -0
  156. package/skills/luckiest-coder-tdd/CHANGELOG.md +26 -0
  157. package/skills/luckiest-coder-tdd/SKILL.md +384 -0
  158. package/skills/luckiest-coder-tdd/testing-anti-patterns.md +299 -0
  159. package/skills/luckiest-coder-verification/ATTRIBUTION.md +26 -0
  160. package/skills/luckiest-coder-verification/CHANGELOG.md +22 -0
  161. package/skills/luckiest-coder-verification/SKILL.md +152 -0
  162. package/skills/luckiest-coder-writing-plans/ATTRIBUTION.md +26 -0
  163. package/skills/luckiest-coder-writing-plans/CHANGELOG.md +22 -0
  164. package/skills/luckiest-coder-writing-plans/SKILL.md +191 -0
  165. package/skills/luckiest-coder-writing-plans/plan-document-reviewer-prompt.md +49 -0
  166. package/skills/luckiest-coder-writing-skills/ATTRIBUTION.md +26 -0
  167. package/skills/luckiest-coder-writing-skills/CHANGELOG.md +31 -0
  168. package/skills/luckiest-coder-writing-skills/SKILL.md +702 -0
  169. package/skills/luckiest-coder-writing-skills/anthropic-best-practices.md +1150 -0
  170. package/skills/luckiest-coder-writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  171. package/skills/luckiest-coder-writing-skills/graphviz-conventions.dot +172 -0
  172. package/skills/luckiest-coder-writing-skills/persuasion-principles.md +187 -0
  173. package/skills/luckiest-coder-writing-skills/render-graphs.js +168 -0
  174. package/skills/luckiest-coder-writing-skills/testing-skills-with-subagents.md +384 -0
  175. package/skills/luckiest-cold-email/ATTRIBUTION.md +36 -0
  176. package/skills/luckiest-cold-email/CHANGELOG.md +24 -0
  177. package/skills/luckiest-cold-email/SKILL.md +213 -0
  178. package/skills/luckiest-cold-email/evals/evals.json +94 -0
  179. package/skills/luckiest-cold-email/references/benchmarks.md +83 -0
  180. package/skills/luckiest-cold-email/references/follow-up-sequences.md +81 -0
  181. package/skills/luckiest-cold-email/references/frameworks.md +90 -0
  182. package/skills/luckiest-cold-email/references/personalization.md +79 -0
  183. package/skills/luckiest-cold-email/references/subject-lines.md +53 -0
  184. package/skills/luckiest-community-marketing/ATTRIBUTION.md +41 -0
  185. package/skills/luckiest-community-marketing/CHANGELOG.md +35 -0
  186. package/skills/luckiest-community-marketing/SKILL.md +200 -0
  187. package/skills/luckiest-community-marketing/evals/evals.json +89 -0
  188. package/skills/luckiest-competitor-profiling/ATTRIBUTION.md +36 -0
  189. package/skills/luckiest-competitor-profiling/CHANGELOG.md +24 -0
  190. package/skills/luckiest-competitor-profiling/SKILL.md +443 -0
  191. package/skills/luckiest-competitor-profiling/evals/evals.json +85 -0
  192. package/skills/luckiest-competitor-profiling/references/templates.md +167 -0
  193. package/skills/luckiest-competitor-profiling/references/tool-reference.md +179 -0
  194. package/skills/luckiest-competitors/ATTRIBUTION.md +36 -0
  195. package/skills/luckiest-competitors/CHANGELOG.md +25 -0
  196. package/skills/luckiest-competitors/SKILL.md +171 -0
  197. package/skills/luckiest-competitors/evals/evals.json +93 -0
  198. package/skills/luckiest-competitors/references/content-architecture.md +271 -0
  199. package/skills/luckiest-competitors/references/templates.md +223 -0
  200. package/skills/luckiest-content-strategy/ATTRIBUTION.md +39 -0
  201. package/skills/luckiest-content-strategy/CHANGELOG.md +23 -0
  202. package/skills/luckiest-content-strategy/SKILL.md +395 -0
  203. package/skills/luckiest-content-strategy/evals/evals.json +90 -0
  204. package/skills/luckiest-content-strategy/references/headless-cms.md +194 -0
  205. package/skills/luckiest-copy-editing/ATTRIBUTION.md +41 -0
  206. package/skills/luckiest-copy-editing/CHANGELOG.md +31 -0
  207. package/skills/luckiest-copy-editing/SKILL.md +491 -0
  208. package/skills/luckiest-copy-editing/evals/evals.json +89 -0
  209. package/skills/luckiest-copy-editing/references/checklist.md +66 -0
  210. package/skills/luckiest-copy-editing/references/content-refresh.md +38 -0
  211. package/skills/luckiest-copy-editing/references/plain-english-alternatives.md +394 -0
  212. package/skills/luckiest-copywriting/ATTRIBUTION.md +35 -0
  213. package/skills/luckiest-copywriting/CHANGELOG.md +23 -0
  214. package/skills/luckiest-copywriting/SKILL.md +296 -0
  215. package/skills/luckiest-copywriting/evals/evals.json +111 -0
  216. package/skills/luckiest-copywriting/references/copy-frameworks.md +344 -0
  217. package/skills/luckiest-copywriting/references/natural-transitions.md +272 -0
  218. package/skills/luckiest-cro/ATTRIBUTION.md +34 -0
  219. package/skills/luckiest-cro/CHANGELOG.md +23 -0
  220. package/skills/luckiest-cro/SKILL.md +215 -0
  221. package/skills/luckiest-cro/evals/evals.json +111 -0
  222. package/skills/luckiest-cro/references/experiments.md +248 -0
  223. package/skills/luckiest-cro/references/form.md +422 -0
  224. package/skills/luckiest-customer-research/ATTRIBUTION.md +40 -0
  225. package/skills/luckiest-customer-research/CHANGELOG.md +26 -0
  226. package/skills/luckiest-customer-research/SKILL.md +293 -0
  227. package/skills/luckiest-customer-research/evals/evals.json +162 -0
  228. package/skills/luckiest-customer-research/references/source-guides.md +401 -0
  229. package/skills/luckiest-directory-submissions/ATTRIBUTION.md +40 -0
  230. package/skills/luckiest-directory-submissions/CHANGELOG.md +33 -0
  231. package/skills/luckiest-directory-submissions/SKILL.md +419 -0
  232. package/skills/luckiest-directory-submissions/evals/evals.json +94 -0
  233. package/skills/luckiest-directory-submissions/references/directory-list.md +477 -0
  234. package/skills/luckiest-directory-submissions/references/positioning-variations.md +232 -0
  235. package/skills/luckiest-directory-submissions/references/submission-tracker-template.csv +266 -0
  236. package/skills/luckiest-emails/ATTRIBUTION.md +42 -0
  237. package/skills/luckiest-emails/CHANGELOG.md +33 -0
  238. package/skills/luckiest-emails/SKILL.md +220 -0
  239. package/skills/luckiest-emails/evals/evals.json +93 -0
  240. package/skills/luckiest-emails/references/copy-guidelines.md +120 -0
  241. package/skills/luckiest-emails/references/email-types.md +515 -0
  242. package/skills/luckiest-emails/references/sequence-templates.md +168 -0
  243. package/skills/luckiest-extract-design-system/ATTRIBUTION.md +8 -0
  244. package/skills/luckiest-extract-design-system/CHANGELOG.md +37 -0
  245. package/skills/luckiest-extract-design-system/SKILL.md +83 -0
  246. package/skills/luckiest-free-tools/ATTRIBUTION.md +43 -0
  247. package/skills/luckiest-free-tools/CHANGELOG.md +25 -0
  248. package/skills/luckiest-free-tools/SKILL.md +220 -0
  249. package/skills/luckiest-free-tools/evals/evals.json +90 -0
  250. package/skills/luckiest-free-tools/references/tool-types.md +217 -0
  251. package/skills/luckiest-image/ATTRIBUTION.md +43 -0
  252. package/skills/luckiest-image/CHANGELOG.md +23 -0
  253. package/skills/luckiest-image/SKILL.md +376 -0
  254. package/skills/luckiest-image/evals/evals.json +89 -0
  255. package/skills/luckiest-image/references/ai-image-prompting.md +229 -0
  256. package/skills/luckiest-launch/ATTRIBUTION.md +40 -0
  257. package/skills/luckiest-launch/CHANGELOG.md +43 -0
  258. package/skills/luckiest-launch/SKILL.md +385 -0
  259. package/skills/luckiest-launch/evals/evals.json +91 -0
  260. package/skills/luckiest-lead-magnets/ATTRIBUTION.md +35 -0
  261. package/skills/luckiest-lead-magnets/CHANGELOG.md +23 -0
  262. package/skills/luckiest-lead-magnets/SKILL.md +331 -0
  263. package/skills/luckiest-lead-magnets/evals/evals.json +87 -0
  264. package/skills/luckiest-lead-magnets/references/benchmarks.md +129 -0
  265. package/skills/luckiest-lead-magnets/references/format-guide.md +196 -0
  266. package/skills/luckiest-marketing-ideas/ATTRIBUTION.md +39 -0
  267. package/skills/luckiest-marketing-ideas/CHANGELOG.md +33 -0
  268. package/skills/luckiest-marketing-ideas/SKILL.md +191 -0
  269. package/skills/luckiest-marketing-ideas/evals/evals.json +90 -0
  270. package/skills/luckiest-marketing-ideas/references/ideas-by-category.md +366 -0
  271. package/skills/luckiest-marketing-plan/ATTRIBUTION.md +40 -0
  272. package/skills/luckiest-marketing-plan/CHANGELOG.md +23 -0
  273. package/skills/luckiest-marketing-plan/SKILL.md +285 -0
  274. package/skills/luckiest-marketing-plan/evals/evals.json +96 -0
  275. package/skills/luckiest-marketing-plan/references/aarrr-framework.md +180 -0
  276. package/skills/luckiest-marketing-plan/references/budget-planning.md +168 -0
  277. package/skills/luckiest-marketing-plan/references/client-types.md +373 -0
  278. package/skills/luckiest-marketing-plan/references/current-state-rubric.md +255 -0
  279. package/skills/luckiest-marketing-plan/references/example-quietude.md +972 -0
  280. package/skills/luckiest-marketing-plan/references/funding-stage-unlocks.md +230 -0
  281. package/skills/luckiest-marketing-plan/references/growth-patterns.md +148 -0
  282. package/skills/luckiest-marketing-plan/references/idea-cross-reference.md +265 -0
  283. package/skills/luckiest-marketing-plan/references/measurement-framework.md +213 -0
  284. package/skills/luckiest-marketing-plan/references/methodology.md +363 -0
  285. package/skills/luckiest-marketing-plan/references/ops-stack-mapping.md +197 -0
  286. package/skills/luckiest-marketing-plan/references/plan-template.md +494 -0
  287. package/skills/luckiest-marketing-plan/references/team-and-agency-model.md +278 -0
  288. package/skills/luckiest-marketing-psychology/ATTRIBUTION.md +31 -0
  289. package/skills/luckiest-marketing-psychology/CHANGELOG.md +32 -0
  290. package/skills/luckiest-marketing-psychology/SKILL.md +202 -0
  291. package/skills/luckiest-marketing-psychology/evals.json +88 -0
  292. package/skills/luckiest-model-router/ATTRIBUTION.md +11 -0
  293. package/skills/luckiest-model-router/CHANGELOG.md +45 -0
  294. package/skills/luckiest-model-router/SKILL.md +74 -0
  295. package/skills/luckiest-model-router/scripts/route.py +145 -0
  296. package/skills/luckiest-offers/ATTRIBUTION.md +39 -0
  297. package/skills/luckiest-offers/CHANGELOG.md +23 -0
  298. package/skills/luckiest-offers/SKILL.md +167 -0
  299. package/skills/luckiest-offers/references/bonus-stacking.md +150 -0
  300. package/skills/luckiest-offers/references/examples.md +215 -0
  301. package/skills/luckiest-offers/references/guarantee-design.md +172 -0
  302. package/skills/luckiest-offers/references/offer-anatomy.md +203 -0
  303. package/skills/luckiest-offers/references/offer-formats.md +240 -0
  304. package/skills/luckiest-offers/references/scarcity-urgency.md +175 -0
  305. package/skills/luckiest-offers/references/value-equation.md +134 -0
  306. package/skills/luckiest-onboarding/ATTRIBUTION.md +43 -0
  307. package/skills/luckiest-onboarding/CHANGELOG.md +31 -0
  308. package/skills/luckiest-onboarding/SKILL.md +243 -0
  309. package/skills/luckiest-onboarding/references/experiments.md +258 -0
  310. package/skills/luckiest-paywalls/ATTRIBUTION.md +39 -0
  311. package/skills/luckiest-paywalls/CHANGELOG.md +25 -0
  312. package/skills/luckiest-paywalls/SKILL.md +256 -0
  313. package/skills/luckiest-paywalls/evals/evals.json +93 -0
  314. package/skills/luckiest-paywalls/references/experiments.md +164 -0
  315. package/skills/luckiest-popups/ATTRIBUTION.md +35 -0
  316. package/skills/luckiest-popups/CHANGELOG.md +27 -0
  317. package/skills/luckiest-popups/SKILL.md +477 -0
  318. package/skills/luckiest-popups/evals/evals.json +107 -0
  319. package/skills/luckiest-pricing/ATTRIBUTION.md +35 -0
  320. package/skills/luckiest-pricing/CHANGELOG.md +31 -0
  321. package/skills/luckiest-pricing/SKILL.md +283 -0
  322. package/skills/luckiest-pricing/evals/evals.json +90 -0
  323. package/skills/luckiest-pricing/references/research-methods.md +152 -0
  324. package/skills/luckiest-pricing/references/tier-structure.md +232 -0
  325. package/skills/luckiest-product-marketing/ATTRIBUTION.md +38 -0
  326. package/skills/luckiest-product-marketing/CHANGELOG.md +23 -0
  327. package/skills/luckiest-product-marketing/SKILL.md +256 -0
  328. package/skills/luckiest-product-marketing/evals/evals.json +85 -0
  329. package/skills/luckiest-programmatic-seo/ATTRIBUTION.md +35 -0
  330. package/skills/luckiest-programmatic-seo/CHANGELOG.md +24 -0
  331. package/skills/luckiest-programmatic-seo/SKILL.md +286 -0
  332. package/skills/luckiest-programmatic-seo/evals/evals.json +95 -0
  333. package/skills/luckiest-programmatic-seo/references/playbooks.md +308 -0
  334. package/skills/luckiest-prompt-rewrite/ATTRIBUTION.md +39 -0
  335. package/skills/luckiest-prompt-rewrite/CHANGELOG.md +70 -0
  336. package/skills/luckiest-prompt-rewrite/LICENSE +21 -0
  337. package/skills/luckiest-prompt-rewrite/SKILL.md +494 -0
  338. package/skills/luckiest-prompt-rewrite/references/patterns.md +82 -0
  339. package/skills/luckiest-prompt-rewrite/references/templates.md +454 -0
  340. package/skills/luckiest-prospecting/ATTRIBUTION.md +29 -0
  341. package/skills/luckiest-prospecting/CHANGELOG.md +24 -0
  342. package/skills/luckiest-prospecting/SKILL.md +275 -0
  343. package/skills/luckiest-prospecting/evals/evals.json +107 -0
  344. package/skills/luckiest-prospecting/references/b2b-prospecting.md +106 -0
  345. package/skills/luckiest-prospecting/references/compliance.md +123 -0
  346. package/skills/luckiest-prospecting/references/data-sources.md +287 -0
  347. package/skills/luckiest-prospecting/references/local-prospecting.md +165 -0
  348. package/skills/luckiest-prospecting/references/saas-prospecting.md +123 -0
  349. package/skills/luckiest-public-relations/ATTRIBUTION.md +34 -0
  350. package/skills/luckiest-public-relations/CHANGELOG.md +23 -0
  351. package/skills/luckiest-public-relations/SKILL.md +154 -0
  352. package/skills/luckiest-public-relations/references/journalist-pitching.md +368 -0
  353. package/skills/luckiest-public-relations/references/media-outlets.md +207 -0
  354. package/skills/luckiest-public-relations/references/newsjacking.md +218 -0
  355. package/skills/luckiest-public-relations/references/press-platforms.md +188 -0
  356. package/skills/luckiest-referrals/ATTRIBUTION.md +41 -0
  357. package/skills/luckiest-referrals/CHANGELOG.md +23 -0
  358. package/skills/luckiest-referrals/SKILL.md +292 -0
  359. package/skills/luckiest-referrals/evals/evals.json +90 -0
  360. package/skills/luckiest-referrals/references/affiliate-programs.md +167 -0
  361. package/skills/luckiest-referrals/references/program-examples.md +143 -0
  362. package/skills/luckiest-revops/ATTRIBUTION.md +40 -0
  363. package/skills/luckiest-revops/CHANGELOG.md +24 -0
  364. package/skills/luckiest-revops/SKILL.md +362 -0
  365. package/skills/luckiest-revops/evals/evals.json +91 -0
  366. package/skills/luckiest-revops/references/automation-playbooks.md +290 -0
  367. package/skills/luckiest-revops/references/lifecycle-definitions.md +278 -0
  368. package/skills/luckiest-revops/references/routing-rules.md +203 -0
  369. package/skills/luckiest-revops/references/scoring-models.md +247 -0
  370. package/skills/luckiest-sales-enablement/ATTRIBUTION.md +39 -0
  371. package/skills/luckiest-sales-enablement/CHANGELOG.md +23 -0
  372. package/skills/luckiest-sales-enablement/SKILL.md +379 -0
  373. package/skills/luckiest-sales-enablement/evals/evals.json +91 -0
  374. package/skills/luckiest-sales-enablement/references/deck-frameworks.md +263 -0
  375. package/skills/luckiest-sales-enablement/references/demo-scripts.md +355 -0
  376. package/skills/luckiest-sales-enablement/references/objection-library.md +270 -0
  377. package/skills/luckiest-sales-enablement/references/one-pager-templates.md +208 -0
  378. package/skills/luckiest-schema/ATTRIBUTION.md +39 -0
  379. package/skills/luckiest-schema/CHANGELOG.md +25 -0
  380. package/skills/luckiest-schema/SKILL.md +209 -0
  381. package/skills/luckiest-schema/evals/evals.json +88 -0
  382. package/skills/luckiest-schema/references/schema-examples.md +398 -0
  383. package/skills/luckiest-seo-audit/ATTRIBUTION.md +39 -0
  384. package/skills/luckiest-seo-audit/CHANGELOG.md +23 -0
  385. package/skills/luckiest-seo-audit/SKILL.md +529 -0
  386. package/skills/luckiest-seo-audit/evals/evals.json +136 -0
  387. package/skills/luckiest-seo-audit/references/ai-writing-detection.md +200 -0
  388. package/skills/luckiest-seo-audit/references/international-seo.md +230 -0
  389. package/skills/luckiest-session-handoff/ATTRIBUTION.md +14 -0
  390. package/skills/luckiest-session-handoff/CHANGELOG.md +30 -0
  391. package/skills/luckiest-session-handoff/SKILL.md +96 -0
  392. package/skills/luckiest-signup/ATTRIBUTION.md +48 -0
  393. package/skills/luckiest-signup/CHANGELOG.md +24 -0
  394. package/skills/luckiest-signup/SKILL.md +382 -0
  395. package/skills/luckiest-signup/evals/evals.json +88 -0
  396. package/skills/luckiest-site-architecture/ATTRIBUTION.md +38 -0
  397. package/skills/luckiest-site-architecture/CHANGELOG.md +23 -0
  398. package/skills/luckiest-site-architecture/SKILL.md +383 -0
  399. package/skills/luckiest-site-architecture/evals/evals.json +88 -0
  400. package/skills/luckiest-site-architecture/references/mermaid-templates.md +216 -0
  401. package/skills/luckiest-site-architecture/references/navigation-patterns.md +305 -0
  402. package/skills/luckiest-site-architecture/references/site-type-templates.md +293 -0
  403. package/skills/luckiest-sms/ATTRIBUTION.md +27 -0
  404. package/skills/luckiest-sms/CHANGELOG.md +24 -0
  405. package/skills/luckiest-sms/SKILL.md +400 -0
  406. package/skills/luckiest-sms/evals/evals.json +100 -0
  407. package/skills/luckiest-sms/references/compliance.md +202 -0
  408. package/skills/luckiest-sms/references/platforms.md +318 -0
  409. package/skills/luckiest-sms/references/sequence-templates.md +282 -0
  410. package/skills/luckiest-social/ATTRIBUTION.md +27 -0
  411. package/skills/luckiest-social/CHANGELOG.md +24 -0
  412. package/skills/luckiest-social/SKILL.md +430 -0
  413. package/skills/luckiest-social/evals/evals.json +92 -0
  414. package/skills/luckiest-social/references/listening-sources-template.md +123 -0
  415. package/skills/luckiest-social/references/listening.md +283 -0
  416. package/skills/luckiest-social/references/platform-limits.md +110 -0
  417. package/skills/luckiest-social/references/platforms.md +170 -0
  418. package/skills/luckiest-social/references/post-templates.md +177 -0
  419. package/skills/luckiest-social/references/reverse-engineering.md +195 -0
  420. package/skills/luckiest-social/references/short-form-video.md +237 -0
  421. package/skills/luckiest-thinker/ATTRIBUTION.md +16 -0
  422. package/skills/luckiest-thinker/CHANGELOG.md +20 -0
  423. package/skills/luckiest-thinker/LICENSE +21 -0
  424. package/skills/luckiest-thinker/SKILL.md +92 -0
  425. package/skills/luckiest-thinker/references/distribution-calibration.md +106 -0
  426. package/skills/luckiest-thinker/references/research-foundations.md +214 -0
  427. package/skills/luckiest-thinker/references/thinking-patterns.md +138 -0
  428. package/skills/luckiest-trends/.skillignore +10 -0
  429. package/skills/luckiest-trends/ATTRIBUTION.md +43 -0
  430. package/skills/luckiest-trends/CHANGELOG.md +86 -0
  431. package/skills/luckiest-trends/LICENSE +21 -0
  432. package/skills/luckiest-trends/SKILL.md +194 -0
  433. package/skills/luckiest-trends/agents/openai.yaml +8 -0
  434. package/skills/luckiest-trends/references/engine-contract.md +2041 -0
  435. package/skills/luckiest-trends/references/save-html-brief.md +206 -0
  436. package/skills/luckiest-trends/scripts/briefing.py +272 -0
  437. package/skills/luckiest-trends/scripts/build-skill.sh +39 -0
  438. package/skills/luckiest-trends/scripts/compare.sh +61 -0
  439. package/skills/luckiest-trends/scripts/evaluate_search_quality.py +573 -0
  440. package/skills/luckiest-trends/scripts/last30days.py +1467 -0
  441. package/skills/luckiest-trends/scripts/lib/__init__.py +1 -0
  442. package/skills/luckiest-trends/scripts/lib/__pycache__/__init__.cpython-313.pyc +0 -0
  443. package/skills/luckiest-trends/scripts/lib/__pycache__/arxiv.cpython-313.pyc +0 -0
  444. package/skills/luckiest-trends/scripts/lib/__pycache__/bird_x.cpython-313.pyc +0 -0
  445. package/skills/luckiest-trends/scripts/lib/__pycache__/bluesky.cpython-313.pyc +0 -0
  446. package/skills/luckiest-trends/scripts/lib/__pycache__/categories.cpython-313.pyc +0 -0
  447. package/skills/luckiest-trends/scripts/lib/__pycache__/cjk.cpython-313.pyc +0 -0
  448. package/skills/luckiest-trends/scripts/lib/__pycache__/cluster.cpython-313.pyc +0 -0
  449. package/skills/luckiest-trends/scripts/lib/__pycache__/dates.cpython-313.pyc +0 -0
  450. package/skills/luckiest-trends/scripts/lib/__pycache__/dedupe.cpython-313.pyc +0 -0
  451. package/skills/luckiest-trends/scripts/lib/__pycache__/digg.cpython-313.pyc +0 -0
  452. package/skills/luckiest-trends/scripts/lib/__pycache__/entity_extract.cpython-313.pyc +0 -0
  453. package/skills/luckiest-trends/scripts/lib/__pycache__/env.cpython-313.pyc +0 -0
  454. package/skills/luckiest-trends/scripts/lib/__pycache__/fusion.cpython-313.pyc +0 -0
  455. package/skills/luckiest-trends/scripts/lib/__pycache__/github.cpython-313.pyc +0 -0
  456. package/skills/luckiest-trends/scripts/lib/__pycache__/grounding.cpython-313.pyc +0 -0
  457. package/skills/luckiest-trends/scripts/lib/__pycache__/hackernews.cpython-313.pyc +0 -0
  458. package/skills/luckiest-trends/scripts/lib/__pycache__/hiring_signals.cpython-313.pyc +0 -0
  459. package/skills/luckiest-trends/scripts/lib/__pycache__/html_render.cpython-313.pyc +0 -0
  460. package/skills/luckiest-trends/scripts/lib/__pycache__/http.cpython-313.pyc +0 -0
  461. package/skills/luckiest-trends/scripts/lib/__pycache__/instagram.cpython-313.pyc +0 -0
  462. package/skills/luckiest-trends/scripts/lib/__pycache__/jobs.cpython-313.pyc +0 -0
  463. package/skills/luckiest-trends/scripts/lib/__pycache__/linkedin.cpython-313.pyc +0 -0
  464. package/skills/luckiest-trends/scripts/lib/__pycache__/log.cpython-313.pyc +0 -0
  465. package/skills/luckiest-trends/scripts/lib/__pycache__/normalize.cpython-313.pyc +0 -0
  466. package/skills/luckiest-trends/scripts/lib/__pycache__/permission_preflight.cpython-313.pyc +0 -0
  467. package/skills/luckiest-trends/scripts/lib/__pycache__/perplexity.cpython-313.pyc +0 -0
  468. package/skills/luckiest-trends/scripts/lib/__pycache__/pinterest.cpython-313.pyc +0 -0
  469. package/skills/luckiest-trends/scripts/lib/__pycache__/pipeline.cpython-313.pyc +0 -0
  470. package/skills/luckiest-trends/scripts/lib/__pycache__/planner.cpython-313.pyc +0 -0
  471. package/skills/luckiest-trends/scripts/lib/__pycache__/polymarket.cpython-313.pyc +0 -0
  472. package/skills/luckiest-trends/scripts/lib/__pycache__/preflight.cpython-313.pyc +0 -0
  473. package/skills/luckiest-trends/scripts/lib/__pycache__/providers.cpython-313.pyc +0 -0
  474. package/skills/luckiest-trends/scripts/lib/__pycache__/quality_nudge.cpython-313.pyc +0 -0
  475. package/skills/luckiest-trends/scripts/lib/__pycache__/query.cpython-313.pyc +0 -0
  476. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit.cpython-313.pyc +0 -0
  477. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_arctic.cpython-313.pyc +0 -0
  478. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_enrich.cpython-313.pyc +0 -0
  479. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_keyless.cpython-313.pyc +0 -0
  480. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_listing.cpython-313.pyc +0 -0
  481. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_public.cpython-313.pyc +0 -0
  482. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_rss.cpython-313.pyc +0 -0
  483. package/skills/luckiest-trends/scripts/lib/__pycache__/reddit_shreddit.cpython-313.pyc +0 -0
  484. package/skills/luckiest-trends/scripts/lib/__pycache__/relevance.cpython-313.pyc +0 -0
  485. package/skills/luckiest-trends/scripts/lib/__pycache__/render.cpython-313.pyc +0 -0
  486. package/skills/luckiest-trends/scripts/lib/__pycache__/rerank.cpython-313.pyc +0 -0
  487. package/skills/luckiest-trends/scripts/lib/__pycache__/resolve.cpython-313.pyc +0 -0
  488. package/skills/luckiest-trends/scripts/lib/__pycache__/schema.cpython-313.pyc +0 -0
  489. package/skills/luckiest-trends/scripts/lib/__pycache__/signals.cpython-313.pyc +0 -0
  490. package/skills/luckiest-trends/scripts/lib/__pycache__/skill_meta.cpython-313.pyc +0 -0
  491. package/skills/luckiest-trends/scripts/lib/__pycache__/snippet.cpython-313.pyc +0 -0
  492. package/skills/luckiest-trends/scripts/lib/__pycache__/subproc.cpython-313.pyc +0 -0
  493. package/skills/luckiest-trends/scripts/lib/__pycache__/techmeme.cpython-313.pyc +0 -0
  494. package/skills/luckiest-trends/scripts/lib/__pycache__/threads.cpython-313.pyc +0 -0
  495. package/skills/luckiest-trends/scripts/lib/__pycache__/tiktok.cpython-313.pyc +0 -0
  496. package/skills/luckiest-trends/scripts/lib/__pycache__/trustpilot.cpython-313.pyc +0 -0
  497. package/skills/luckiest-trends/scripts/lib/__pycache__/truthsocial.cpython-313.pyc +0 -0
  498. package/skills/luckiest-trends/scripts/lib/__pycache__/ui.cpython-313.pyc +0 -0
  499. package/skills/luckiest-trends/scripts/lib/__pycache__/web_search_keyless.cpython-313.pyc +0 -0
  500. package/skills/luckiest-trends/scripts/lib/__pycache__/xai_x.cpython-313.pyc +0 -0
  501. package/skills/luckiest-trends/scripts/lib/__pycache__/xiaohongshu_api.cpython-313.pyc +0 -0
  502. package/skills/luckiest-trends/scripts/lib/__pycache__/xquik.cpython-313.pyc +0 -0
  503. package/skills/luckiest-trends/scripts/lib/__pycache__/xurl_x.cpython-313.pyc +0 -0
  504. package/skills/luckiest-trends/scripts/lib/__pycache__/youtube_yt.cpython-313.pyc +0 -0
  505. package/skills/luckiest-trends/scripts/lib/arxiv.py +290 -0
  506. package/skills/luckiest-trends/scripts/lib/bird_x.py +639 -0
  507. package/skills/luckiest-trends/scripts/lib/bluesky.py +323 -0
  508. package/skills/luckiest-trends/scripts/lib/categories.py +283 -0
  509. package/skills/luckiest-trends/scripts/lib/chrome_cookies.py +414 -0
  510. package/skills/luckiest-trends/scripts/lib/cjk.py +107 -0
  511. package/skills/luckiest-trends/scripts/lib/cluster.py +271 -0
  512. package/skills/luckiest-trends/scripts/lib/competitors.py +198 -0
  513. package/skills/luckiest-trends/scripts/lib/cookie_extract.py +508 -0
  514. package/skills/luckiest-trends/scripts/lib/dates.py +169 -0
  515. package/skills/luckiest-trends/scripts/lib/dedupe.py +145 -0
  516. package/skills/luckiest-trends/scripts/lib/digg.py +440 -0
  517. package/skills/luckiest-trends/scripts/lib/entity_extract.py +127 -0
  518. package/skills/luckiest-trends/scripts/lib/env.py +1073 -0
  519. package/skills/luckiest-trends/scripts/lib/fanout.py +84 -0
  520. package/skills/luckiest-trends/scripts/lib/fusion.py +207 -0
  521. package/skills/luckiest-trends/scripts/lib/github.py +996 -0
  522. package/skills/luckiest-trends/scripts/lib/grounding.py +331 -0
  523. package/skills/luckiest-trends/scripts/lib/hackernews.py +357 -0
  524. package/skills/luckiest-trends/scripts/lib/health.py +92 -0
  525. package/skills/luckiest-trends/scripts/lib/hiring_signals.py +326 -0
  526. package/skills/luckiest-trends/scripts/lib/html_publish.py +73 -0
  527. package/skills/luckiest-trends/scripts/lib/html_render.py +738 -0
  528. package/skills/luckiest-trends/scripts/lib/http.py +372 -0
  529. package/skills/luckiest-trends/scripts/lib/instagram.py +521 -0
  530. package/skills/luckiest-trends/scripts/lib/jobs.py +708 -0
  531. package/skills/luckiest-trends/scripts/lib/linkedin.py +363 -0
  532. package/skills/luckiest-trends/scripts/lib/log.py +35 -0
  533. package/skills/luckiest-trends/scripts/lib/normalize.py +759 -0
  534. package/skills/luckiest-trends/scripts/lib/permission_preflight.py +242 -0
  535. package/skills/luckiest-trends/scripts/lib/perplexity.py +745 -0
  536. package/skills/luckiest-trends/scripts/lib/pinterest.py +154 -0
  537. package/skills/luckiest-trends/scripts/lib/pipeline.py +1720 -0
  538. package/skills/luckiest-trends/scripts/lib/planner.py +763 -0
  539. package/skills/luckiest-trends/scripts/lib/polymarket.py +794 -0
  540. package/skills/luckiest-trends/scripts/lib/preflight.py +119 -0
  541. package/skills/luckiest-trends/scripts/lib/providers.py +380 -0
  542. package/skills/luckiest-trends/scripts/lib/quality_nudge.py +383 -0
  543. package/skills/luckiest-trends/scripts/lib/query.py +202 -0
  544. package/skills/luckiest-trends/scripts/lib/reddit.py +731 -0
  545. package/skills/luckiest-trends/scripts/lib/reddit_arctic.py +92 -0
  546. package/skills/luckiest-trends/scripts/lib/reddit_enrich.py +322 -0
  547. package/skills/luckiest-trends/scripts/lib/reddit_keyless.py +329 -0
  548. package/skills/luckiest-trends/scripts/lib/reddit_listing.py +188 -0
  549. package/skills/luckiest-trends/scripts/lib/reddit_public.py +275 -0
  550. package/skills/luckiest-trends/scripts/lib/reddit_rss.py +224 -0
  551. package/skills/luckiest-trends/scripts/lib/reddit_shreddit.py +184 -0
  552. package/skills/luckiest-trends/scripts/lib/relevance.py +200 -0
  553. package/skills/luckiest-trends/scripts/lib/render.py +2130 -0
  554. package/skills/luckiest-trends/scripts/lib/rerank.py +708 -0
  555. package/skills/luckiest-trends/scripts/lib/resolve.py +345 -0
  556. package/skills/luckiest-trends/scripts/lib/safari_cookies.py +193 -0
  557. package/skills/luckiest-trends/scripts/lib/schema.py +319 -0
  558. package/skills/luckiest-trends/scripts/lib/setup_wizard.py +843 -0
  559. package/skills/luckiest-trends/scripts/lib/signals.py +334 -0
  560. package/skills/luckiest-trends/scripts/lib/skill_meta.py +33 -0
  561. package/skills/luckiest-trends/scripts/lib/snippet.py +51 -0
  562. package/skills/luckiest-trends/scripts/lib/subproc.py +116 -0
  563. package/skills/luckiest-trends/scripts/lib/techmeme.py +239 -0
  564. package/skills/luckiest-trends/scripts/lib/threads.py +207 -0
  565. package/skills/luckiest-trends/scripts/lib/tiktok.py +596 -0
  566. package/skills/luckiest-trends/scripts/lib/transcribe.py +235 -0
  567. package/skills/luckiest-trends/scripts/lib/trustpilot.py +277 -0
  568. package/skills/luckiest-trends/scripts/lib/truthsocial.py +162 -0
  569. package/skills/luckiest-trends/scripts/lib/ui.py +626 -0
  570. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/LICENSE +21 -0
  571. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/bird-search.mjs +147 -0
  572. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/cookies.js +220 -0
  573. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/features.json +17 -0
  574. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/paginate-cursor.js +37 -0
  575. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/query-ids.json +20 -0
  576. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/runtime-features.js +151 -0
  577. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/runtime-query-ids.js +264 -0
  578. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-base.js +129 -0
  579. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-constants.js +50 -0
  580. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-features.js +347 -0
  581. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-search.js +157 -0
  582. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-types.js +2 -0
  583. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/lib/twitter-client-utils.js +511 -0
  584. package/skills/luckiest-trends/scripts/lib/vendor/bird-search/package.json +13 -0
  585. package/skills/luckiest-trends/scripts/lib/web_fetch_keyless.py +105 -0
  586. package/skills/luckiest-trends/scripts/lib/web_search_keyless.py +158 -0
  587. package/skills/luckiest-trends/scripts/lib/xai_x.py +236 -0
  588. package/skills/luckiest-trends/scripts/lib/xiaohongshu_api.py +162 -0
  589. package/skills/luckiest-trends/scripts/lib/xquik.py +404 -0
  590. package/skills/luckiest-trends/scripts/lib/xurl_x.py +171 -0
  591. package/skills/luckiest-trends/scripts/lib/youtube_yt.py +1365 -0
  592. package/skills/luckiest-trends/scripts/setup-keychain.sh +123 -0
  593. package/skills/luckiest-trends/scripts/setup-pass.sh +132 -0
  594. package/skills/luckiest-trends/scripts/store.py +1020 -0
  595. package/skills/luckiest-trends/scripts/test-v1-vs-v2.sh +220 -0
  596. package/skills/luckiest-trends/scripts/test_device_auth.py +128 -0
  597. package/skills/luckiest-trends/scripts/verify_v3.py +195 -0
  598. package/skills/luckiest-trends/scripts/watchlist.py +318 -0
  599. package/skills/luckiest-video/ATTRIBUTION.md +27 -0
  600. package/skills/luckiest-video/CHANGELOG.md +23 -0
  601. package/skills/luckiest-video/SKILL.md +371 -0
  602. package/skills/luckiest-video/evals/evals.json +88 -0
  603. package/skills/luckiest-video/references/ai-video-prompting.md +175 -0
  604. package/skills/remix/SKILL.md +32 -0
  605. package/commands/luckiest/go.md +0 -45
  606. package/commands/luckiest/plan.md +0 -55
  607. /package/commands/{luckiest/charms.md → charms.md} +0 -0
  608. /package/commands/{luckiest/helpers.md → helpers.md} +0 -0
  609. /package/commands/{luckiest/home.md → home.md} +0 -0
  610. /package/commands/{luckiest/leaderboard.md → leaderboard.md} +0 -0
  611. /package/commands/{luckiest/merge.md → merge.md} +0 -0
  612. /package/commands/{luckiest/overlaps.md → overlaps.md} +0 -0
  613. /package/commands/{luckiest/skills.md → skills.md} +0 -0
  614. /package/commands/{luckiest/start.md → start.md} +0 -0
  615. /package/commands/{luckiest/status.md → status.md} +0 -0
  616. /package/commands/{luckiest/updates.md → updates.md} +0 -0
  617. /package/commands/{luckiest/vouch.md → vouch.md} +0 -0
  618. /package/commands/{luckiest/wishes.md → wishes.md} +0 -0
@@ -0,0 +1,167 @@
1
+ # Profile Templates
2
+
3
+ Ready-to-use templates for competitor profile sections and the summary document.
4
+
5
+ ## Contents
6
+ - Quick Scan Template
7
+ - Summary Comparison Table
8
+ - Positioning Map
9
+ - Competitive SWOT
10
+ - Profile Update Changelog
11
+
12
+ ---
13
+
14
+ ## Quick Scan Template
15
+
16
+ Abbreviated profile for when speed matters more than depth.
17
+
18
+ ```markdown
19
+ # [Competitor Name] — Quick Profile
20
+
21
+ **URL**: [website]
22
+ **Generated**: [date]
23
+
24
+ ## At a Glance
25
+
26
+ | Metric | Value |
27
+ |--------|-------|
28
+ | Tagline | [from homepage] |
29
+ | Target audience | [inferred from copy] |
30
+ | Pricing starts at | [lowest paid tier] |
31
+ | Free tier/trial | [yes/no + details] |
32
+ | Domain rank | [from DataForSEO] |
33
+ | Est. organic traffic | [monthly] |
34
+ | Organic keywords (top 10) | [count] |
35
+ | Referring domains | [count] |
36
+
37
+ ## Positioning
38
+
39
+ **Headline**: "[exact homepage headline]"
40
+ **Subheadline**: "[exact subheadline]"
41
+ **Positioning angle**: [1-2 sentence summary of how they position]
42
+
43
+ ## Pricing Summary
44
+
45
+ | Tier | Price | Notable Inclusions |
46
+ |------|-------|-------------------|
47
+ | [tier] | [price] | [key items] |
48
+ | [tier] | [price] | [key items] |
49
+
50
+ ## Key Takeaway
51
+
52
+ [2-3 sentences: what makes this competitor notable, where they're strong, where they're weak]
53
+ ```
54
+
55
+ ---
56
+
57
+ ## Summary Comparison Table
58
+
59
+ Use after profiling all competitors to create a side-by-side view.
60
+
61
+ ```markdown
62
+ # Competitive Landscape Summary
63
+
64
+ **Generated**: [date]
65
+ **Your product**: [name]
66
+ **Competitors profiled**: [count]
67
+
68
+ ## Side-by-Side Comparison
69
+
70
+ | Dimension | [Your Product] | [Competitor 1] | [Competitor 2] | [Competitor 3] |
71
+ |-----------|---------------|----------------|----------------|----------------|
72
+ | **Tagline** | [yours] | [theirs] | [theirs] | [theirs] |
73
+ | **Target audience** | [yours] | [theirs] | [theirs] | [theirs] |
74
+ | **Positioning** | [angle] | [angle] | [angle] | [angle] |
75
+ | **Starting price** | $[X]/mo | $[X]/mo | $[X]/mo | $[X]/mo |
76
+ | **Free tier** | [yes/no] | [yes/no] | [yes/no] | [yes/no] |
77
+ | **Domain rank** | [score] | [score] | [score] | [score] |
78
+ | **Est. organic traffic** | [number] | [number] | [number] | [number] |
79
+ | **Referring domains** | [count] | [count] | [count] | [count] |
80
+ | **G2 rating** | [score] | [score] | [score] | [score] |
81
+ | **Key strength** | [one-liner] | [one-liner] | [one-liner] | [one-liner] |
82
+ | **Key weakness** | [one-liner] | [one-liner] | [one-liner] | [one-liner] |
83
+ ```
84
+
85
+ ---
86
+
87
+ ## Positioning Map
88
+
89
+ Visual representation of where competitors sit along two key dimensions. Choose the two axes most relevant to your market.
90
+
91
+ ### Common Axis Pairs
92
+
93
+ | Market Type | X-Axis | Y-Axis |
94
+ |-------------|--------|--------|
95
+ | SaaS tools | Simple → Complex | Cheap → Expensive |
96
+ | Developer tools | Low-code → Code-first | Individual → Team |
97
+ | B2B platforms | SMB-focused → Enterprise-focused | Point solution → Platform |
98
+ | Content tools | Template-driven → Custom | Self-serve → Managed |
99
+
100
+ ### Format
101
+
102
+ ```markdown
103
+ ## Positioning Map
104
+
105
+ **Axes**: [X-axis label] vs. [Y-axis label]
106
+
107
+ [Y-axis high label]
108
+ │
109
+ │
110
+ [Competitor A] │ [Competitor B]
111
+ │
112
+ ───────────────────────┼───────────────────────
113
+ [X-axis low] │ [X-axis high]
114
+ │
115
+ [Your Product] │ [Competitor C]
116
+ │
117
+ [Y-axis low label]
118
+
119
+ ### Interpretation
120
+ - [1-2 sentences about what the map reveals]
121
+ - [where the whitespace / opportunity is]
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Competitive SWOT
127
+
128
+ Per-competitor SWOT relative to your product.
129
+
130
+ ```markdown
131
+ ## SWOT: [Competitor] vs. [Your Product]
132
+
133
+ ### Strengths (theirs vs. ours)
134
+ - [Where they genuinely outperform us — be honest]
135
+
136
+ ### Weaknesses (theirs vs. ours)
137
+ - [Where they fall short compared to us — with evidence]
138
+
139
+ ### Opportunities (for us)
140
+ - [Gaps in their offering we can exploit]
141
+ - [Segments they're ignoring]
142
+ - [Messaging angles they're missing]
143
+
144
+ ### Threats (from them)
145
+ - [Areas where they're improving fast]
146
+ - [Features they're building that overlap with us]
147
+ - [Market moves that could shift perception]
148
+ ```
149
+
150
+ ---
151
+
152
+ ## Profile Update Changelog
153
+
154
+ Append to the bottom of any profile when updating it.
155
+
156
+ ```markdown
157
+ ---
158
+
159
+ ## Change Log
160
+
161
+ | Date | What Changed | Source |
162
+ |------|-------------|--------|
163
+ | [date] | Pricing increased from $X to $Y | Pricing page re-scrape |
164
+ | [date] | Launched [feature] | Changelog scrape |
165
+ | [date] | Domain rank changed from X to Y | DataForSEO re-pull |
166
+ | [date] | Added [integration] | Integrations page re-scrape |
167
+ ```
@@ -0,0 +1,179 @@
1
+ # MCP Tool Reference for Competitor Profiling
2
+
3
+ Quick reference for the Firecrawl and DataForSEO MCP tools used in competitor profiling.
4
+
5
+ ## Contents
6
+ - Firecrawl Tools (site scraping)
7
+ - DataForSEO Tools (SEO & market data)
8
+ - Recommended Execution Order
9
+ - Error Handling
10
+
11
+ ---
12
+
13
+ ## Firecrawl Tools
14
+
15
+ ### firecrawl_map
16
+ **Purpose**: Discover all URLs on a competitor's site to identify key pages.
17
+ **When to use**: First step for every competitor — before scraping individual pages.
18
+ **Key output**: List of URLs with their page types/paths.
19
+ **Tip**: Look for paths containing `/pricing`, `/features`, `/about`, `/customers`, `/integrations`, `/blog`, `/changelog`.
20
+
21
+ ### firecrawl_scrape
22
+ **Purpose**: Extract content from a single page as clean markdown.
23
+ **When to use**: After mapping, scrape each key page individually.
24
+ **Key output**: Page content in markdown format — headlines, body text, structured data.
25
+ **Tip**: Scrape homepage first — it reveals positioning, audience, and social proof in one shot.
26
+
27
+ ### firecrawl_search
28
+ **Purpose**: Search the web for specific content about a competitor.
29
+ **When to use**: Finding review pages, press coverage, or competitor mentions not on their own site.
30
+ **Example queries**:
31
+ - `"[Competitor Name]" site:g2.com`
32
+ - `"[Competitor Name]" review`
33
+ - `"[Competitor Name]" funding OR raised`
34
+
35
+ ### firecrawl_crawl
36
+ **Purpose**: Crawl multiple pages from a site in one operation.
37
+ **When to use**: Deep profiles where you want to analyze many pages (e.g., all feature pages, all blog posts). More expensive — use selectively.
38
+ **Tip**: Set page limits to avoid crawling entire sites. Target specific URL patterns.
39
+
40
+ ### firecrawl_extract
41
+ **Purpose**: Extract structured data from a page using a schema.
42
+ **When to use**: When you need specific data points in a consistent format (e.g., pricing tier details, feature lists).
43
+ **Tip**: Define a clear schema for what you want extracted — more reliable than parsing raw markdown.
44
+
45
+ ---
46
+
47
+ ## DataForSEO MCP Tools
48
+
49
+ ### Domain-Level Intelligence
50
+
51
+ #### backlinks_summary
52
+ **Purpose**: Get domain authority, total backlinks, referring domains, spam score.
53
+ **Input**: Target domain (e.g., `competitor.com`)
54
+ **Key metrics**: `domain_rank`, `total_backlinks`, `referring_domains`, `backlinks_spam_score`
55
+
56
+ #### backlinks_referring_domains
57
+ **Purpose**: List top referring domains — shows where their link equity comes from.
58
+ **Input**: Target domain + limit
59
+ **Key metrics**: Per-domain: `rank`, `backlinks`, `domain` name
60
+
61
+ #### dataforseo_labs_google_domain_rank_overview
62
+ **Purpose**: Organic search overview — traffic, keywords, traffic value.
63
+ **Input**: Target domain
64
+ **Key metrics**: `organic_count` (keywords), `organic_traffic` (estimated monthly), `organic_cost` (traffic value in $)
65
+
66
+ #### dataforseo_labs_google_ranked_keywords
67
+ **Purpose**: What keywords a domain ranks for, with positions.
68
+ **Input**: Target domain
69
+ **Key metrics**: Per-keyword: `keyword`, `position`, `search_volume`, `url` (ranking page)
70
+ **Tip**: Sort by traffic to find their highest-value keywords.
71
+
72
+ #### dataforseo_labs_google_keywords_for_site
73
+ **Purpose**: Keywords relevant to a domain — broader than ranked keywords, includes opportunities.
74
+ **Input**: Target domain
75
+ **Key metrics**: `keyword`, `search_volume`, `competition`, `cpc`
76
+
77
+ ### Competitive Analysis
78
+
79
+ #### dataforseo_labs_google_competitors_domain
80
+ **Purpose**: Find a domain's closest organic competitors by keyword overlap.
81
+ **Input**: Target domain
82
+ **Key metrics**: `domain`, `avg_position`, `intersections` (shared keywords), `full_domain_rank`
83
+ **Tip**: May reveal competitors the user hasn't considered.
84
+
85
+ #### dataforseo_labs_google_domain_intersection
86
+ **Purpose**: Find keywords where two domains both rank — shows direct competition.
87
+ **Input**: Two target domains
88
+ **Key metrics**: `keyword`, position for each domain, `search_volume`
89
+ **Tip**: Use this to compare the user's domain vs. each competitor.
90
+
91
+ #### dataforseo_labs_google_relevant_pages
92
+ **Purpose**: Find a domain's most important pages by organic traffic.
93
+ **Input**: Target domain
94
+ **Key metrics**: `page`, `metrics` (traffic, keywords per page)
95
+ **Tip**: Reveals their content strategy — which pages drive the most value.
96
+
97
+ ### Technology Detection
98
+
99
+ #### domain_analytics_technologies_domain_technologies
100
+ **Purpose**: Detect the technology stack a domain uses.
101
+ **Input**: Target domain
102
+ **Key metrics**: Technologies grouped by category (CMS, analytics, marketing, payments, etc.)
103
+
104
+ ### Backlink Deep Dive
105
+
106
+ #### backlinks_backlinks
107
+ **Purpose**: List individual backlinks to a domain.
108
+ **Input**: Target domain + limit
109
+ **Key metrics**: `url_from`, `url_to`, `anchor`, `domain_from_rank`, `is_new`
110
+
111
+ #### backlinks_bulk_ranks
112
+ **Purpose**: Compare domain ranks across multiple domains at once.
113
+ **Input**: Array of target domains
114
+ **Key metrics**: `domain_rank` per domain
115
+ **Tip**: Use this for the summary comparison table.
116
+
117
+ ---
118
+
119
+ ## Recommended Execution Order
120
+
121
+ ### Quick Scan (per competitor)
122
+
123
+ ```
124
+ 1. firecrawl_map → get site URLs
125
+ 2. In parallel:
126
+ a. firecrawl_scrape → homepage
127
+ b. firecrawl_scrape → pricing page
128
+ c. dataforseo_labs_google_domain_rank_overview → organic metrics
129
+ d. backlinks_summary → domain authority
130
+ 3. Synthesize into abbreviated profile
131
+ ```
132
+
133
+ ### Deep Profile (per competitor)
134
+
135
+ ```
136
+ 1. firecrawl_map → get site URLs
137
+ 2. In parallel (batch 1 — scraping):
138
+ a. firecrawl_scrape → homepage
139
+ b. firecrawl_scrape → pricing page
140
+ c. firecrawl_scrape → features page(s)
141
+ d. firecrawl_scrape → about page
142
+ e. firecrawl_scrape → customers/case studies page
143
+ f. firecrawl_scrape → integrations page
144
+ 3. In parallel (batch 2 — SEO data):
145
+ a. dataforseo_labs_google_domain_rank_overview
146
+ b. dataforseo_labs_google_ranked_keywords
147
+ c. backlinks_summary
148
+ d. backlinks_referring_domains
149
+ e. dataforseo_labs_google_relevant_pages
150
+ f. dataforseo_labs_google_competitors_domain
151
+ 4. In parallel (batch 3 — optional extras):
152
+ a. domain_analytics_technologies_domain_technologies
153
+ b. firecrawl_search → G2/Capterra reviews
154
+ c. dataforseo_labs_google_domain_intersection (vs. user's domain)
155
+ 5. Synthesize into full profile
156
+ ```
157
+
158
+ ### Multi-Competitor (3+ competitors)
159
+
160
+ ```
161
+ 1. Map all competitor sites in parallel
162
+ 2. Scrape all homepages in parallel, then pricing pages in parallel
163
+ 3. Pull domain_rank_overview for all in parallel
164
+ 4. Pull backlinks_bulk_ranks for all at once
165
+ 5. Build profiles in sequence (synthesis requires focus)
166
+ 6. Build summary comparison last
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Error Handling
172
+
173
+ | Issue | Action |
174
+ |-------|--------|
175
+ | Firecrawl scrape returns empty/blocked | Try with `firecrawl_browser_create` for JS-heavy sites |
176
+ | Pricing page not found in map | Search for `/pricing`, `/plans`, `/packages` — some sites use different paths |
177
+ | DataForSEO returns no data for domain | Domain may be too new or too small — note "insufficient data" in profile |
178
+ | Rate limits hit | Space out requests; prioritize highest-value data first |
179
+ | Review page scraping blocked | Use `firecrawl_search` to find cached or alternative review sources |
@@ -0,0 +1,36 @@
1
+ # Attribution
2
+
3
+ This skill, **luckiest-competitors**, is a rebranded and hardened "Luckiest edition" derived from an open-source skill.
4
+
5
+ - **Original skill**: `competitors`
6
+ - **Project**: marketingskills (https://github.com/coreyhaines31/marketingskills)
7
+ - **Author**: Corey Haines (https://corey.co)
8
+ - **License**: MIT
9
+
10
+ The original copyright is preserved in full below. This Luckiest edition adds security hardening, best-practice restructuring, AEO guidance, sourcing guardrails, a Luckiest-network share hook, and update-check versioning. It does not modify the original skill.
11
+
12
+ ---
13
+
14
+ ## Original LICENSE (verbatim)
15
+
16
+ MIT License
17
+
18
+ Copyright (c) 2025 Corey Haines
19
+
20
+ Permission is hereby granted, free of charge, to any person obtaining a copy
21
+ of this software and associated documentation files (the "Software"), to deal
22
+ in the Software without restriction, including without limitation the rights
23
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
24
+ copies of the Software, and to permit persons to whom the Software is
25
+ furnished to do so, subject to the following conditions:
26
+
27
+ The above copyright notice and this permission notice shall be included in all
28
+ copies or substantial portions of the Software.
29
+
30
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
31
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
32
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
33
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
34
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
35
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
36
+ SOFTWARE.
@@ -0,0 +1,25 @@
1
+ # Changelog — luckiest-competitors
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 competitors (marketingskills, MIT).
14
+
15
+ ### Improve pass (/refract)
16
+ - Added AI answer-engine (AEO) optimization section and a "best alternative to X" trigger phrase — comparison queries are increasingly answered by ChatGPT, Perplexity, and AI Overviews; pages must be extractable and citable.
17
+ - Added a Sourcing & Accuracy guardrail: competitor claims must trace to verifiable, dated sources; no fabricated weaknesses or review quotes.
18
+ - Made freshness an explicit default: "Last updated" date and dated pricing on every page (stale comparison pages erode trust and create liability).
19
+ - Dropped as novelty-for-novelty: interactive comparison widgets, automated sentiment scoring (out of scope for a copy skill).
20
+
21
+ ### Network hook
22
+ - Share-with-tribe (offer only): after producing a competitor data file or page set, offer once to share the teardown with the user's Luckiest tribe. Never auto-posts, never transmits credentials or private product data.
23
+
24
+ ### Trend pass (/newsjack + /luckiest-trends)
25
+ - No actionable dated signal. The newsjack CLI was unavailable in this environment; the AI-answer-engine shift is a durable trend rather than a dated news event and was folded into the Improve pass instead of fabricating a citation.
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: luckiest-competitors
3
+ description: "Creates competitor comparison and alternative pages for SEO, AI answer engines, and sales enablement. Use when the user mentions 'alternative page,' 'vs page,' 'competitor comparison,' 'comparison page,' '[Product] vs [Product],' '[Product] alternative,' 'best alternative to X,' 'competitive landing pages,' 'how do we compare to X,' 'battle card,' or 'competitor teardown.' Handles content that positions a product against competitors across four formats: singular alternative, plural alternatives, you vs competitor, and competitor vs competitor. For sales-specific competitor docs, see luckiest-sales-enablement."
4
+ license: See ATTRIBUTION.md
5
+ metadata:
6
+ version: "1.1.0"
7
+ listing_id: luckiest-competitors
8
+ author: luckiest
9
+ ---
10
+
11
+ # Competitor & Alternative Pages
12
+
13
+ This skill builds competitor comparison and alternative pages that rank for competitive search terms, get cited by AI answer engines, provide genuine value to evaluators, and position the product effectively.
14
+
15
+ ## Staying current
16
+
17
+ On activation, call the Luckiest MCP check_updates tool with { listingId: "luckiest-competitors", 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-competitors", 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
+ Before creating competitor pages, understand:
27
+
28
+ 1. **The Product** — core value proposition, key differentiators, ideal customer profile, pricing model, strengths and honest weaknesses.
29
+ 2. **Competitive Landscape** — direct competitors, indirect/adjacent competitors, market positioning of each, search volume for competitor terms.
30
+ 3. **Goals** — SEO traffic capture, AI answer-engine citations, sales enablement, conversion from competitor users, brand positioning.
31
+
32
+ ---
33
+
34
+ ## Core Principles
35
+
36
+ ### 1. Honesty Builds Trust
37
+ - Acknowledge competitor strengths and be accurate about your own limitations.
38
+ - Do not misrepresent competitor features. Readers are comparing — they will verify claims.
39
+
40
+ ### 2. Sourcing & Accuracy Guardrail
41
+ - Every claim about a competitor's pricing, features, or weaknesses must trace to a verifiable source (their site, docs, or dated reviews). Do not invent competitor weaknesses or fabricate review quotes.
42
+ - When citing review themes (G2, Capterra, TrustRadius), attribute them as review themes and note when the data was gathered. Pricing and feature claims go stale — date them.
43
+
44
+ ### 3. Depth Over Surface
45
+ - Go beyond feature checklists. Explain *why* differences matter, include use cases and scenarios, show rather than tell.
46
+
47
+ ### 4. Help Them Decide
48
+ - Different tools fit different needs. Be clear about who you are best for and who the competitor is best for. Reduce evaluation friction.
49
+
50
+ ### 5. Modular Content Architecture
51
+ - Centralize competitor data so updates propagate to all pages. Maintain a single source of truth per competitor.
52
+
53
+ ---
54
+
55
+ ## Page Formats
56
+
57
+ ### Format 1: [Competitor] Alternative (Singular)
58
+ **Search intent**: actively looking to switch from a specific competitor.
59
+ **URL pattern**: `/alternatives/[competitor]` or `/[competitor]-alternative`
60
+ **Target keywords**: "[Competitor] alternative", "alternative to [Competitor]", "switch from [Competitor]"
61
+ **Structure**: 1) why people look for alternatives (validate pain) 2) you as the alternative (quick positioning) 3) detailed comparison (features, service, pricing) 4) who should switch (and who shouldn't) 5) migration path 6) social proof from switchers 7) CTA.
62
+
63
+ ### Format 2: [Competitor] Alternatives (Plural)
64
+ **Search intent**: researching options, earlier in journey.
65
+ **URL pattern**: `/alternatives/[competitor]-alternatives`
66
+ **Target keywords**: "[Competitor] alternatives", "best [Competitor] alternatives", "tools like [Competitor]"
67
+ **Structure**: 1) why people look for alternatives 2) what to look for (criteria framework) 3) list of alternatives (you first, but include real options) 4) comparison table 5) detailed breakdown of each 6) recommendation by use case 7) CTA.
68
+ **Important**: Include 4-7 real alternatives. Being genuinely helpful builds trust and ranks better.
69
+
70
+ ### Format 3: You vs [Competitor]
71
+ **Search intent**: directly comparing you to a specific competitor.
72
+ **URL pattern**: `/vs/[competitor]` or `/compare/[you]-vs-[competitor]`
73
+ **Target keywords**: "[You] vs [Competitor]", "[Competitor] vs [You]"
74
+ **Structure**: 1) TL;DR (2-3 sentences) 2) at-a-glance comparison table 3) detailed comparison by category (Features, Pricing, Support, Ease of use, Integrations) 4) who [You] is best for 5) who [Competitor] is best for (be honest) 6) what customers say (switchers) 7) migration support 8) CTA.
75
+
76
+ ### Format 4: [Competitor A] vs [Competitor B]
77
+ **Search intent**: comparing two competitors (not you directly).
78
+ **URL pattern**: `/compare/[competitor-a]-vs-[competitor-b]`
79
+ **Structure**: 1) overview of both 2) comparison by category 3) who each is best for 4) the third option (introduce yourself) 5) comparison table (all three) 6) CTA.
80
+ **Why this works**: captures competitor search traffic and positions you as knowledgeable.
81
+
82
+ ---
83
+
84
+ ## Essential Sections
85
+
86
+ - **TL;DR Summary**: open every page with key differences in 2-3 sentences for scanners.
87
+ - **Paragraph Comparisons**: for each dimension, write a paragraph explaining the differences and when each matters — not just tables.
88
+ - **Feature Comparison**: describe how each handles it, list strengths and limitations, give a bottom-line recommendation.
89
+ - **Pricing Comparison**: tier-by-tier, what's included, hidden costs, total cost for a sample team size. Date the pricing.
90
+ - **Who It's For**: be explicit about the ideal customer for each option.
91
+ - **Migration Section**: what transfers, what needs reconfiguration, support offered, quotes from switchers.
92
+
93
+ **For detailed section templates**, load [references/templates.md](references/templates.md).
94
+
95
+ ---
96
+
97
+ ## AI Answer-Engine (AEO) Optimization
98
+
99
+ Comparison and "best alternative" queries are increasingly answered by ChatGPT, Perplexity, Google AI Overviews, and Claude. To be extractable and citable:
100
+ - Put a direct, self-contained answer near the top (the TL;DR doubles as the extractable snippet).
101
+ - Use clean comparison tables and clear category headings so engines can lift structured facts.
102
+ - State concrete, sourced numbers (pricing, limits) rather than vague superlatives.
103
+ - Consider FAQ schema for questions like "What is the best alternative to [Competitor]?" (see luckiest-schema).
104
+
105
+ ---
106
+
107
+ ## Content Architecture
108
+
109
+ Create a single source of truth per competitor: positioning, target audience, pricing (all tiers), feature ratings, strengths and weaknesses, best-for / not-ideal-for, common complaints (from dated reviews), and migration notes.
110
+
111
+ **For data structure and examples**, load [references/content-architecture.md](references/content-architecture.md).
112
+
113
+ ---
114
+
115
+ ## Research Process
116
+
117
+ For each competitor, gather:
118
+ 1. **Product research** — sign up, use it, document features/UX/limitations.
119
+ 2. **Pricing research** — current pricing, what's included, hidden costs.
120
+ 3. **Review mining** — G2, Capterra, TrustRadius for recurring praise/complaint themes (attribute and date them).
121
+ 4. **Customer feedback** — talk to customers who switched, both directions.
122
+ 5. **Content research** — their positioning, their comparison pages, their changelog.
123
+
124
+ **Ongoing updates**: quarterly verify pricing and check major feature changes; refresh when a customer flags a competitor change; do a full annual refresh. Show a "Last updated" date on each page — a stale comparison page erodes trust and can be a legal liability.
125
+
126
+ ---
127
+
128
+ ## SEO Considerations
129
+
130
+ | Format | Primary Keywords |
131
+ |--------|-----------------|
132
+ | Alternative (singular) | [Competitor] alternative, alternative to [Competitor] |
133
+ | Alternatives (plural) | [Competitor] alternatives, best [Competitor] alternatives |
134
+ | You vs Competitor | [You] vs [Competitor], [Competitor] vs [You] |
135
+ | Competitor vs Competitor | [A] vs [B], [B] vs [A] |
136
+
137
+ - **Internal linking**: link between related comparison pages; link from feature pages to relevant comparisons; create a hub page linking to all competitor content.
138
+ - **Schema markup**: consider FAQ schema for common "best alternative to [Competitor]" questions.
139
+
140
+ ---
141
+
142
+ ## Output Format
143
+
144
+ - **Competitor Data File**: complete competitor profile in YAML for reuse across pages.
145
+ - **Page Content**: per page — URL, meta tags, full page copy by section, comparison tables, CTAs.
146
+ - **Page Set Plan**: recommended pages in priority order based on search volume.
147
+
148
+ ---
149
+
150
+ ## Task-Specific Questions
151
+
152
+ 1. What are common reasons people switch to you?
153
+ 2. Do you have customer quotes about switching?
154
+ 3. What's your pricing vs. competitors?
155
+ 4. Do you offer migration support?
156
+
157
+ ---
158
+
159
+ ## Share with your tribe (offer, never automatic)
160
+
161
+ After producing a competitor data file or comparison page set, offer once: "Want to share this competitor teardown with your Luckiest tribe?" A well-researched teardown helps others targeting the same competitors build on your work. Only act if the user says yes. Never auto-post, and never transmit credentials or private product data.
162
+
163
+ ---
164
+
165
+ ## Related Skills
166
+
167
+ - **luckiest-programmatic-seo**: building competitor pages at scale
168
+ - **luckiest-copywriting**: writing compelling comparison copy
169
+ - **luckiest-seo-audit**: optimizing competitor pages
170
+ - **luckiest-schema**: FAQ and comparison schema
171
+ - **luckiest-sales-enablement**: internal sales collateral, decks, and objection docs
@@ -0,0 +1,93 @@
1
+ {
2
+ "skill_name": "luckiest-competitors",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Create a 'Best Asana Alternatives' page for our project management tool. We compete mainly on price (we're $8/user vs their $24/user) and simplicity (they've become bloated). Target audience is small teams (5-20 people).",
7
+ "expected_output": "Should check for product-marketing.md first. Should identify this as the plural alternatives format ([Competitor] Alternatives). Should include the essential sections: TL;DR comparison, brief paragraphs on each alternative (including the user's product positioned first or prominently), feature comparison table, pricing comparison, who each alternative is best for. Should use the modular content architecture approach. Should address SEO considerations for the target keyword 'Asana alternatives.' Should position the user's product with the stated differentiators (price, simplicity).",
8
+ "assertions": [
9
+ "Checks for product-marketing.md",
10
+ "Identifies as plural alternatives format",
11
+ "Includes TL;DR comparison section",
12
+ "Includes feature comparison table",
13
+ "Includes pricing comparison",
14
+ "Includes 'who it's best for' per alternative",
15
+ "Positions user's product prominently with differentiators",
16
+ "Addresses SEO for target keyword"
17
+ ],
18
+ "files": []
19
+ },
20
+ {
21
+ "id": 2,
22
+ "prompt": "Write a 'HubSpot vs Salesforce' comparison page. We're HubSpot and want to show why we're the better choice for SMBs.",
23
+ "expected_output": "Should identify this as the 'you vs competitor' format. Should include structured comparison sections: overview of both, feature-by-feature comparison, pricing comparison, pros/cons of each, who each is best for, and migration path. Should be factually accurate about the competitor while strategically positioning the user's product. Should include a TL;DR at the top. Should address the SMB angle throughout. Should use the centralized competitor data architecture pattern.",
24
+ "assertions": [
25
+ "Identifies as 'you vs competitor' format",
26
+ "Includes structured comparison sections",
27
+ "Includes feature-by-feature comparison",
28
+ "Includes pricing comparison",
29
+ "Includes TL;DR at the top",
30
+ "Factually accurate about competitor",
31
+ "Strategically positions user's product for SMBs",
32
+ "Includes migration path or switching section"
33
+ ],
34
+ "files": []
35
+ },
36
+ {
37
+ "id": 3,
38
+ "prompt": "we need a page targeting 'mailchimp alternative' (singular). we're an email marketing platform focused on e-commerce brands.",
39
+ "expected_output": "Should trigger on casual phrasing. Should identify this as the singular alternative format ([Competitor] Alternative — positioning your product as THE alternative). Should focus the entire page on why the user's product is the best Mailchimp alternative for e-commerce. Should include: why people switch from Mailchimp, what the user's product does better (e-commerce specific features), feature comparison, pricing comparison, migration guide, customer testimonials. Should optimize for the singular keyword 'Mailchimp alternative.'",
40
+ "assertions": [
41
+ "Triggers on casual phrasing",
42
+ "Identifies as singular alternative format",
43
+ "Focuses on user's product as THE alternative",
44
+ "Includes why people switch from Mailchimp",
45
+ "Highlights e-commerce-specific advantages",
46
+ "Includes feature and pricing comparison",
47
+ "Includes migration guide",
48
+ "Optimizes for singular keyword"
49
+ ],
50
+ "files": []
51
+ },
52
+ {
53
+ "id": 4,
54
+ "prompt": "Can you create a comparison page for 'Notion vs Coda'? We're a third-party review site, not affiliated with either product.",
55
+ "expected_output": "Should identify this as the 'competitor vs competitor' format (third-party perspective). Should maintain objectivity since the user isn't either product. Should include balanced comparison: overview of both, feature comparison, pricing, pros/cons, use case recommendations. Should use the essential page sections from the skill. Should suggest how to monetize the page (affiliate links, CTA to the user's own product if relevant). Should address SEO for the 'Notion vs Coda' keyword.",
56
+ "assertions": [
57
+ "Identifies as 'competitor vs competitor' format",
58
+ "Maintains objectivity (third-party perspective)",
59
+ "Includes balanced feature comparison",
60
+ "Includes pricing comparison",
61
+ "Includes use case recommendations",
62
+ "Addresses SEO considerations",
63
+ "Suggests monetization approach"
64
+ ],
65
+ "files": []
66
+ },
67
+ {
68
+ "id": 5,
69
+ "prompt": "We want to build a whole competitor comparison hub. We have 5 main competitors and want to create alternative pages for each, plus head-to-head comparisons. How should we structure this?",
70
+ "expected_output": "Should apply the centralized competitor data architecture. Should recommend a hub structure with: individual alternative pages for each competitor (5 singular pages), a 'best alternatives' roundup page, head-to-head comparison pages for key matchups. Should address internal linking strategy between these pages. Should recommend the research process for gathering competitive data. Should address URL structure and site architecture for the hub.",
71
+ "assertions": [
72
+ "Applies centralized competitor data architecture",
73
+ "Recommends hub structure with multiple page types",
74
+ "Suggests individual and roundup alternative pages",
75
+ "Addresses internal linking between comparison pages",
76
+ "Recommends research process for competitive data",
77
+ "Addresses URL structure"
78
+ ],
79
+ "files": []
80
+ },
81
+ {
82
+ "id": 6,
83
+ "prompt": "I need to create a battle card for our sales team comparing us to Zendesk. It should help reps handle competitive objections during sales calls.",
84
+ "expected_output": "Should recognize this as internal sales enablement material, not a public comparison page. Should defer to or cross-reference the sales-enablement skill, which handles battle cards, objection handling docs, and internal competitive collateral. May provide some competitive positioning advice but should make clear that sales-enablement is the right skill for internal sales materials.",
85
+ "assertions": [
86
+ "Recognizes this as internal sales enablement material",
87
+ "References or defers to sales-enablement skill",
88
+ "Does not attempt to create internal battle card using public comparison page patterns"
89
+ ],
90
+ "files": []
91
+ }
92
+ ]
93
+ }