luckiest-co 1.0.47 → 1.0.48

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 (264) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/package.json +1 -1
  4. package/skills/ab-testing/CHANGELOG.md +5 -0
  5. package/skills/ab-testing/SKILL.md +12 -9
  6. package/skills/ab-testing/evals/evals.json +18 -7
  7. package/skills/ab-testing/references/sample-size-guide.md +2 -2
  8. package/skills/ads/CHANGELOG.md +5 -0
  9. package/skills/ads/SKILL.md +4 -4
  10. package/skills/ai-seo/CHANGELOG.md +7 -0
  11. package/skills/ai-seo/SKILL.md +27 -20
  12. package/skills/analytics/CHANGELOG.md +6 -0
  13. package/skills/analytics/SKILL.md +4 -3
  14. package/skills/analytics/evals/evals.json +27 -0
  15. package/skills/analytics/references/ga4-implementation.md +7 -3
  16. package/skills/analytics/references/gtm-implementation.md +8 -2
  17. package/skills/aso/CHANGELOG.md +5 -0
  18. package/skills/aso/SKILL.md +4 -4
  19. package/skills/aso/evals/evals.json +15 -2
  20. package/skills/aso/references/benchmarks.md +4 -2
  21. package/skills/aso/references/google-play-specs.md +5 -1
  22. package/skills/brainstorm/SKILL.md +59 -16
  23. package/skills/brainstorm/builder-check-prompt.md +23 -0
  24. package/skills/churn-prevention/CHANGELOG.md +5 -0
  25. package/skills/churn-prevention/SKILL.md +3 -3
  26. package/skills/churn-prevention/evals/evals.json +14 -0
  27. package/skills/churn-prevention/references/dunning-playbook.md +6 -1
  28. package/skills/coder-brainstorming/CHANGELOG.md +10 -0
  29. package/skills/coder-brainstorming/SKILL.md +62 -20
  30. package/skills/coder-brainstorming/builder-check-prompt.md +23 -0
  31. package/skills/coder-brainstorming/scripts/server.cjs +1 -1
  32. package/skills/coder-debugging/CHANGELOG.md +4 -0
  33. package/skills/coder-debugging/SKILL.md +5 -5
  34. package/skills/coder-requesting-code-review/CHANGELOG.md +4 -0
  35. package/skills/coder-requesting-code-review/SKILL.md +4 -4
  36. package/skills/coder-subagent-driven-development/CHANGELOG.md +4 -0
  37. package/skills/coder-subagent-driven-development/SKILL.md +3 -3
  38. package/skills/coder-subagent-driven-development/scripts/sdd-workspace +3 -1
  39. package/skills/cold-email/CHANGELOG.md +7 -0
  40. package/skills/cold-email/SKILL.md +27 -7
  41. package/skills/cold-email/evals/evals.json +30 -0
  42. package/skills/cold-email/references/benchmarks.md +15 -11
  43. package/skills/cold-email/references/deliverability.md +110 -0
  44. package/skills/cold-email/references/linkedin-outreach.md +91 -0
  45. package/skills/cold-email/references/multichannel-cadence.md +79 -0
  46. package/skills/cold-email/references/outbound-plays.md +88 -0
  47. package/skills/cold-email/references/personalization.md +11 -0
  48. package/skills/cold-email/references/reply-handling.md +65 -0
  49. package/skills/competitor-profiling/CHANGELOG.md +5 -0
  50. package/skills/competitor-profiling/SKILL.md +4 -4
  51. package/skills/content-strategy/CHANGELOG.md +5 -0
  52. package/skills/content-strategy/SKILL.md +5 -3
  53. package/skills/copy-editing/CHANGELOG.md +5 -0
  54. package/skills/copy-editing/SKILL.md +5 -5
  55. package/skills/copy-editing/references/content-refresh.md +33 -0
  56. package/skills/cro/CHANGELOG.md +5 -0
  57. package/skills/cro/SKILL.md +14 -3
  58. package/skills/cro/references/form.md +1 -1
  59. package/skills/directory-submissions/CHANGELOG.md +5 -0
  60. package/skills/directory-submissions/SKILL.md +13 -4
  61. package/skills/directory-submissions/evals/evals.json +15 -1
  62. package/skills/directory-submissions/references/directory-list.md +2 -4
  63. package/skills/emails/CHANGELOG.md +5 -0
  64. package/skills/emails/SKILL.md +14 -4
  65. package/skills/launch/CHANGELOG.md +7 -0
  66. package/skills/launch/SKILL.md +8 -4
  67. package/skills/launch/evals/evals.json +29 -0
  68. package/skills/launch/references/shipped-changes.md +84 -0
  69. package/skills/launch/references/site-launch-qa.md +55 -0
  70. package/skills/lead-magnets/CHANGELOG.md +5 -0
  71. package/skills/lead-magnets/SKILL.md +6 -4
  72. package/skills/lead-magnets/evals/evals.json +18 -0
  73. package/skills/lead-magnets/references/content-to-skill-corpus-design.md +89 -0
  74. package/skills/lead-magnets/references/content-to-skill-release.md +71 -0
  75. package/skills/lead-magnets/references/content-to-skill.md +108 -0
  76. package/skills/marketing-plan/CHANGELOG.md +5 -0
  77. package/skills/marketing-plan/SKILL.md +3 -3
  78. package/skills/marketing-plan/evals/evals.json +13 -0
  79. package/skills/marketing-plan/references/budget-planning.md +26 -17
  80. package/skills/pricing/CHANGELOG.md +5 -0
  81. package/skills/pricing/SKILL.md +4 -4
  82. package/skills/pricing/evals/evals.json +12 -0
  83. package/skills/pricing/references/research-methods.md +8 -4
  84. package/skills/programmatic-seo/CHANGELOG.md +5 -0
  85. package/skills/programmatic-seo/SKILL.md +8 -4
  86. package/skills/programmatic-seo/evals/evals.json +13 -0
  87. package/skills/programmatic-seo/references/implementation-platforms.md +37 -0
  88. package/skills/prospecting/CHANGELOG.md +7 -0
  89. package/skills/prospecting/SKILL.md +27 -13
  90. package/skills/prospecting/evals/evals.json +41 -0
  91. package/skills/prospecting/references/account-research.md +59 -0
  92. package/skills/prospecting/references/b2b-prospecting.md +1 -1
  93. package/skills/prospecting/references/compliance.md +44 -6
  94. package/skills/prospecting/references/data-sources.md +13 -15
  95. package/skills/prospecting/references/enrichment-playbook.md +61 -0
  96. package/skills/prospecting/references/saas-prospecting.md +1 -1
  97. package/skills/prospecting/references/signal-plays.md +99 -0
  98. package/skills/prospecting/references/sourcing-and-enrichment.md +89 -0
  99. package/skills/referrals/CHANGELOG.md +5 -0
  100. package/skills/referrals/SKILL.md +10 -4
  101. package/skills/referrals/evals/evals.json +99 -0
  102. package/skills/referrals/references/affiliate-operations.md +64 -0
  103. package/skills/referrals/references/affiliate-programs.md +2 -2
  104. package/skills/referrals/references/program-examples.md +14 -6
  105. package/skills/referrals/references/review-platform-rules.md +36 -0
  106. package/skills/referrals/references/review-program-operations.md +62 -0
  107. package/skills/referrals/references/review-programs.md +96 -0
  108. package/skills/revops/CHANGELOG.md +5 -0
  109. package/skills/revops/SKILL.md +10 -6
  110. package/skills/revops/evals/evals.json +13 -0
  111. package/skills/revops/references/automation-playbooks.md +1 -1
  112. package/skills/revops/references/inbound-routing.md +43 -0
  113. package/skills/revops/references/lifecycle-definitions.md +31 -0
  114. package/skills/sales-enablement/CHANGELOG.md +5 -0
  115. package/skills/sales-enablement/SKILL.md +6 -4
  116. package/skills/sales-enablement/evals/evals.json +14 -0
  117. package/skills/sales-enablement/references/cold-call-scripts.md +68 -0
  118. package/skills/schema/CHANGELOG.md +5 -0
  119. package/skills/schema/SKILL.md +20 -8
  120. package/skills/schema/evals/evals.json +40 -0
  121. package/skills/schema/references/schema-examples.md +9 -15
  122. package/skills/seo-audit/CHANGELOG.md +5 -0
  123. package/skills/seo-audit/SKILL.md +10 -16
  124. package/skills/seo-audit/evals/evals.json +68 -0
  125. package/skills/seo-audit/references/international-seo.md +9 -11
  126. package/skills/seo-audit/references/local-seo-pages-and-measurement.md +39 -0
  127. package/skills/seo-audit/references/local-seo-profile-and-citations.md +41 -0
  128. package/skills/seo-audit/references/local-seo.md +86 -0
  129. package/skills/seo-audit/references/rankings-push.md +62 -0
  130. package/skills/seo-audit/references/title-tags.md +89 -0
  131. package/skills/signup/CHANGELOG.md +5 -0
  132. package/skills/signup/SKILL.md +7 -3
  133. package/skills/site-architecture/CHANGELOG.md +5 -0
  134. package/skills/site-architecture/SKILL.md +5 -4
  135. package/skills/site-architecture/evals/evals.json +25 -0
  136. package/skills/site-architecture/references/platforms-and-migration.md +84 -0
  137. package/skills/social/CHANGELOG.md +5 -0
  138. package/skills/social/SKILL.md +4 -4
  139. package/skills/trends/.skillignore +3 -0
  140. package/skills/trends/CHANGELOG.md +20 -0
  141. package/skills/trends/SKILL.md +12 -8
  142. package/skills/trends/references/agent-mode.md +36 -0
  143. package/skills/trends/references/category-peers.md +38 -0
  144. package/skills/trends/references/comparison.md +227 -0
  145. package/skills/trends/references/competitors.md +29 -0
  146. package/skills/trends/references/discovery.md +90 -0
  147. package/skills/trends/references/engine-contract.md +111 -1889
  148. package/skills/trends/references/followups.md +112 -0
  149. package/skills/trends/references/grok-bot-x.md +55 -0
  150. package/skills/trends/references/hiring-signals.md +19 -0
  151. package/skills/trends/references/library-queue.md +33 -0
  152. package/skills/trends/references/recommendations.md +86 -0
  153. package/skills/trends/references/research-runbook.md +781 -0
  154. package/skills/trends/references/runtime.md +165 -0
  155. package/skills/trends/references/save-html-brief.md +39 -20
  156. package/skills/trends/references/setup-wizard.md +253 -0
  157. package/skills/trends/references/synthesis.md +289 -0
  158. package/skills/trends/scripts/box_chrome_login.py +209 -0
  159. package/skills/trends/scripts/briefing.py +9 -17
  160. package/skills/trends/scripts/last30days.py +3247 -280
  161. package/skills/trends/scripts/lib/agentcookie.py +196 -0
  162. package/skills/trends/scripts/lib/amazon.py +877 -0
  163. package/skills/trends/scripts/lib/arxiv.py +42 -8
  164. package/skills/trends/scripts/lib/backends.py +769 -0
  165. package/skills/trends/scripts/lib/bird_x.py +340 -57
  166. package/skills/trends/scripts/lib/bluesky.py +84 -10
  167. package/skills/trends/scripts/lib/bounded_get.py +156 -0
  168. package/skills/trends/scripts/lib/brightdata.py +291 -0
  169. package/skills/trends/scripts/lib/categories.py +7 -1
  170. package/skills/trends/scripts/lib/chrome_cdp.py +455 -0
  171. package/skills/trends/scripts/lib/chrome_cookies.py +132 -39
  172. package/skills/trends/scripts/lib/cluster.py +31 -54
  173. package/skills/trends/scripts/lib/competitors.py +10 -1
  174. package/skills/trends/scripts/lib/cookie_extract.py +221 -44
  175. package/skills/trends/scripts/lib/cookie_paths.py +27 -0
  176. package/skills/trends/scripts/lib/corpus.py +439 -0
  177. package/skills/trends/scripts/lib/devto.py +313 -0
  178. package/skills/trends/scripts/lib/discovery_handoff.py +988 -0
  179. package/skills/trends/scripts/lib/doctor.py +2166 -0
  180. package/skills/trends/scripts/lib/dripstack.py +203 -0
  181. package/skills/trends/scripts/lib/entity_extract.py +37 -0
  182. package/skills/trends/scripts/lib/env.py +1092 -138
  183. package/skills/trends/scripts/lib/fanout.py +11 -1
  184. package/skills/trends/scripts/lib/feed.py +61 -0
  185. package/skills/trends/scripts/lib/fetch_memo.py +135 -0
  186. package/skills/trends/scripts/lib/freshness.py +566 -0
  187. package/skills/trends/scripts/lib/fusion.py +314 -28
  188. package/skills/trends/scripts/lib/github.py +438 -24
  189. package/skills/trends/scripts/lib/grok_x.py +1237 -0
  190. package/skills/trends/scripts/lib/grounding.py +129 -11
  191. package/skills/trends/scripts/lib/hackernews.py +61 -4
  192. package/skills/trends/scripts/lib/health.py +373 -0
  193. package/skills/trends/scripts/lib/hosted.py +333 -0
  194. package/skills/trends/scripts/lib/html_publish.py +34 -0
  195. package/skills/trends/scripts/lib/html_render.py +169 -3
  196. package/skills/trends/scripts/lib/http.py +1215 -70
  197. package/skills/trends/scripts/lib/instagram.py +132 -9
  198. package/skills/trends/scripts/lib/jobs.py +4 -2
  199. package/skills/trends/scripts/lib/library.py +308 -0
  200. package/skills/trends/scripts/lib/library_index.py +477 -0
  201. package/skills/trends/scripts/lib/linkedin.py +271 -24
  202. package/skills/trends/scripts/lib/log.py +5 -2
  203. package/skills/trends/scripts/lib/meta_ads.py +982 -0
  204. package/skills/trends/scripts/lib/normalize.py +382 -28
  205. package/skills/trends/scripts/lib/parallel_mcp.py +234 -0
  206. package/skills/trends/scripts/lib/permission_preflight.py +42 -3
  207. package/skills/trends/scripts/lib/perplexity.py +1080 -468
  208. package/skills/trends/scripts/lib/pipeline.py +5079 -211
  209. package/skills/trends/scripts/lib/planner.py +396 -53
  210. package/skills/trends/scripts/lib/polymarket.py +285 -23
  211. package/skills/trends/scripts/lib/prescriptions.py +432 -0
  212. package/skills/trends/scripts/lib/private_files.py +21 -0
  213. package/skills/trends/scripts/lib/providers.py +231 -10
  214. package/skills/trends/scripts/lib/quality_nudge.py +122 -37
  215. package/skills/trends/scripts/lib/reddit.py +177 -12
  216. package/skills/trends/scripts/lib/reddit_arctic.py +146 -5
  217. package/skills/trends/scripts/lib/reddit_keyless.py +121 -60
  218. package/skills/trends/scripts/lib/reddit_listing.py +215 -14
  219. package/skills/trends/scripts/lib/reddit_public.py +12 -13
  220. package/skills/trends/scripts/lib/reddit_search.py +304 -0
  221. package/skills/trends/scripts/lib/reddit_shreddit.py +51 -7
  222. package/skills/trends/scripts/lib/registers.py +134 -0
  223. package/skills/trends/scripts/lib/relevance.py +17 -0
  224. package/skills/trends/scripts/lib/render.py +2161 -271
  225. package/skills/trends/scripts/lib/rerank.py +623 -55
  226. package/skills/trends/scripts/lib/resolve.py +50 -1
  227. package/skills/trends/scripts/lib/safari_cookies.py +42 -15
  228. package/skills/trends/scripts/lib/schema.py +782 -1
  229. package/skills/trends/scripts/lib/setup_wizard.py +779 -120
  230. package/skills/trends/scripts/lib/signals.py +206 -7
  231. package/skills/trends/scripts/lib/stocktwits.py +374 -0
  232. package/skills/trends/scripts/lib/subproc.py +307 -53
  233. package/skills/trends/scripts/lib/techmeme.py +89 -64
  234. package/skills/trends/scripts/lib/telegram.py +317 -0
  235. package/skills/trends/scripts/lib/tiktok.py +13 -9
  236. package/skills/trends/scripts/lib/topic_shape.py +340 -0
  237. package/skills/trends/scripts/lib/transcribe.py +12 -3
  238. package/skills/trends/scripts/lib/trustpilot.py +256 -5
  239. package/skills/trends/scripts/lib/truthsocial.py +9 -1
  240. package/skills/trends/scripts/lib/ui.py +6 -0
  241. package/skills/trends/scripts/lib/usage.py +132 -0
  242. package/skills/trends/scripts/lib/web_search_keyless.py +63 -4
  243. package/skills/trends/scripts/lib/windows_job.py +138 -0
  244. package/skills/trends/scripts/lib/x_api.py +824 -0
  245. package/skills/trends/scripts/lib/x_envelope.py +733 -0
  246. package/skills/trends/scripts/lib/x_judge.py +292 -0
  247. package/skills/trends/scripts/lib/xai_x.py +26 -3
  248. package/skills/trends/scripts/lib/xquik.py +89 -15
  249. package/skills/trends/scripts/lib/xurl_x.py +284 -91
  250. package/skills/trends/scripts/lib/youtube_yt.py +570 -119
  251. package/skills/trends/scripts/setup-keychain.sh +12 -4
  252. package/skills/trends/scripts/setup-pass.sh +3 -0
  253. package/skills/trends/scripts/store.py +444 -50
  254. package/skills/trends/scripts/watchlist.py +38 -11
  255. package/skills/trends/scripts/x_lane_parity.py +107 -0
  256. package/skills/video-studio/CHANGELOG.md +4 -0
  257. package/skills/video-studio/SKILL.md +4 -4
  258. package/skills/video-studio/references/styles/product-flight.md +45 -0
  259. package/skills/video-studio/references/styles.md +3 -1
  260. package/skills/video-studio-motion/ATTRIBUTION.md +1 -1
  261. package/skills/video-studio-motion/CHANGELOG.md +4 -0
  262. package/skills/video-studio-motion/SKILL.md +8 -5
  263. package/skills/coder-brainstorming/spec-document-reviewer-prompt.md +0 -49
  264. package/skills/trends/scripts/lib/reddit_rss.py +0 -224
@@ -13,6 +13,31 @@ Start by understanding the current project context, then ask questions one at a
13
13
  Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.
14
14
  </HARD-GATE>
15
15
 
16
+ ## Your First Message
17
+
18
+ Before replying, ask what you actually know about what they want, and why.
19
+ If everything that matters is in the request ("make the icon cornflower
20
+ blue"), the request is the design: say it back in one line and get a yes. If something
21
+ non-trivial is missing, your first message is two things, in this order:
22
+
23
+ 1. One line saying that if they'd rather skip the questions and have you just
24
+ start, they can say so. If they do, state the design and any significant
25
+ how-it-gets-made choice (platform, language, medium) in a few plain lines,
26
+ and proceed on their yes.
27
+ 2. One open question that gets them describing a real moment or a concrete
28
+ picture: "What's the moment you find yourself wishing this existed?"
29
+
30
+ **Say your defaults out loud.** Find out early which choices about platform,
31
+ language, libraries, or materials they want to make and which they hand to
32
+ you. Any choice you make goes in the design as your call, never as something
33
+ they agreed to.
34
+
35
+ **Spikes.** A quick throwaway build is often the cheapest way to learn what
36
+ they want or whether something works. Offer one when it would help. With
37
+ their yes it may be built: it stays labeled throwaway, skips the plan and
38
+ the full test pass, and keeping what it produced is a new request that comes
39
+ back through the gate above.
40
+
16
41
  ## Anti-Pattern: "This Is Too Simple To Need A Design"
17
42
 
18
43
  Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.
@@ -22,11 +47,11 @@ Every project goes through this process. A todo list, a single-function utility,
22
47
  You MUST create a task for each of these items and complete them in order:
23
48
 
24
49
  1. **Explore project context** — check files, docs, recent commits
25
- 2. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
50
+ 2. **Ask clarifying questions** — one at a time, open questions before any menu, understand purpose/constraints/success criteria
26
51
  3. **Propose 2-3 approaches** — with trade-offs and your recommendation
27
52
  4. **Present design** — in sections scaled to their complexity, get user approval after each section
28
53
  5. **Write design doc** — save to `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commit
29
- 6. **Spec self-review** — quick inline check for placeholders, contradictions, ambiguity, scope (see below)
54
+ 6. **Builder check** — a fresh subagent reads the spec as its builder and lists what it would still have to guess (see below)
30
55
  7. **User reviews written spec** — ask user to review the spec file before proceeding
31
56
  8. **Transition to implementation** — invoke writing-plans skill to create implementation plan
32
57
 
@@ -40,7 +65,7 @@ digraph brainstorming {
40
65
  "Present design sections" [shape=box];
41
66
  "User approves design?" [shape=diamond];
42
67
  "Write design doc" [shape=box];
43
- "Spec self-review\n(fix inline)" [shape=box];
68
+ "Builder check" [shape=box];
44
69
  "User reviews spec?" [shape=diamond];
45
70
  "Invoke writing-plans skill" [shape=doublecircle];
46
71
 
@@ -50,8 +75,8 @@ digraph brainstorming {
50
75
  "Present design sections" -> "User approves design?";
51
76
  "User approves design?" -> "Present design sections" [label="no, revise"];
52
77
  "User approves design?" -> "Write design doc" [label="yes"];
53
- "Write design doc" -> "Spec self-review\n(fix inline)";
54
- "Spec self-review\n(fix inline)" -> "User reviews spec?";
78
+ "Write design doc" -> "Builder check";
79
+ "Builder check" -> "User reviews spec?";
55
80
  "User reviews spec?" -> "Write design doc" [label="changes requested"];
56
81
  "User reviews spec?" -> "Invoke writing-plans skill" [label="approved"];
57
82
  }
@@ -67,7 +92,7 @@ digraph brainstorming {
67
92
  - Before asking detailed questions, assess scope: if the request describes multiple independent subsystems (e.g., "build a platform with chat, file storage, billing, and analytics"), flag this immediately. Don't spend questions refining details of a project that needs to be decomposed first.
68
93
  - If the project is too large for a single spec, help the user decompose into sub-projects: what are the independent pieces, how do they relate, what order should they be built? Then brainstorm the first sub-project through the normal design flow. Each sub-project gets its own spec → plan → implementation cycle.
69
94
  - For appropriately-scoped projects, ask questions one at a time to refine the idea
70
- - Prefer multiple choice questions when possible, but open-ended is fine too
95
+ - Start with open questions that get them describing; offer a short menu only when they're stuck, and propose something concrete when they say "just guess"
71
96
  - Only one question per message - if a topic needs more exploration, break it into multiple questions
72
97
  - Focus on understanding: purpose, constraints, success criteria
73
98
 
@@ -107,22 +132,30 @@ digraph brainstorming {
107
132
  - Use elements-of-style:writing-clearly-and-concisely skill if available
108
133
  - Commit the design document to git
109
134
 
110
- **Spec Self-Review:**
111
- After writing the spec document, look at it with fresh eyes:
135
+ **Builder Check:**
136
+ After writing the spec document, dispatch a fresh subagent with
137
+ `builder-check-prompt.md` in this skill directory. When you tell the user
138
+ you're writing it up, say a reviewer will read it first and you may come back
139
+ once with a few questions. Sort what the builder asks into three piles:
140
+
141
+ - **Answered already** by the conversation or the project: put the answer in
142
+ the document.
143
+ - **Minor:** a sensible builder could settle it without changing what gets
144
+ built. Settle it yourself and mark it in the document as your call.
145
+ - **Theirs:** only the user can answer it, and the answer changes what gets
146
+ built. Bring these in one message, most important first.
112
147
 
113
- 1. **Placeholder scan:** Any "TBD", "TODO", incomplete sections, or vague requirements? Fix them.
114
- 2. **Internal consistency:** Do any sections contradict each other? Does the architecture match the feature descriptions?
115
- 3. **Scope check:** Is this focused enough for a single implementation plan, or does it need decomposition?
116
- 4. **Ambiguity check:** Could any requirement be interpreted two different ways? If so, pick one and make it explicit.
148
+ That is the only round of questions the check produces. Without a subagent
149
+ tool, read the document as that builder yourself, and still fix placeholders,
150
+ contradictions, and ambiguity inline.
117
151
 
118
- Fix any issues inline. No need to re-review — just fix and move on.
119
152
 
120
153
  **User Review Gate:**
121
- After the spec review loop passes, ask the user to review the written spec before proceeding:
154
+ After the builder check, ask the user to review the written spec before proceeding:
122
155
 
123
156
  > "Spec written and committed to `<path>`. Please review it and let me know if you want to make any changes before we start writing out the implementation plan."
124
157
 
125
- Wait for the user's response. If they request changes, make them and re-run the spec review loop. Only proceed once the user approves.
158
+ Wait for the user's response. If they request changes, make them and re-run the builder check. Only proceed once the user approves.
126
159
 
127
160
  **Implementation:**
128
161
 
@@ -132,8 +165,18 @@ Wait for the user's response. If they request changes, make them and re-run the
132
165
  ## Key Principles
133
166
 
134
167
  - **One question at a time** - Don't overwhelm with multiple questions
135
- - **Multiple choice preferred** - Easier to answer than open-ended when possible
168
+ - **Get them describing** - Open questions first, a short menu only when they're stuck
136
169
  - **YAGNI ruthlessly** - Remove unnecessary features from all designs
137
170
  - **Explore alternatives** - Always propose 2-3 approaches before settling
138
171
  - **Incremental validation** - Present design, get approval before moving on
139
172
  - **Be flexible** - Go back and clarify when something doesn't make sense
173
+
174
+ ## Red Flags
175
+
176
+ | Thought | Reality |
177
+ |---------|---------|
178
+ | "I'll offer options to save them effort" | Options steer. Ask them to describe it first. |
179
+ | "I'll fill in sensible defaults" | Good. Say them out loud. A default they never heard is one they couldn't reject. |
180
+ | "I should explain the process first" | Ask your question. The process shows itself. |
181
+ | "They said 'sounds good' to the idea" | Approval covers what you showed them. A design you haven't written isn't approved. |
182
+ | "The spike works, I'll keep building on it" | Keeping it is a new request. Back through the gate. |
@@ -0,0 +1,23 @@
1
+ # Builder Check Prompt
2
+
3
+ Dispatch a fresh general-purpose subagent with this prompt once the written
4
+ design exists. Fill in the domain and the document path.
5
+
6
+ ```
7
+ You are a talented [DOMAIN, e.g. "software engineer", "event planner"].
8
+ You've been handed a design document and asked to put together a plan to
9
+ build what it describes. You will not be able to talk to the person who
10
+ wrote it.
11
+
12
+ Read [DOCUMENT_PATH].
13
+
14
+ Report only the questions you'd still need answered before you could plan
15
+ this well: places where you'd have to guess and a wrong guess would matter.
16
+ For each, give the question and why the answer changes the plan. Rank them
17
+ by importance.
18
+
19
+ Skip anything the document explicitly leaves to the builder, and anything
20
+ you could reasonably decide yourself. Skip nitpicks about wording.
21
+
22
+ If nothing important is left, say "nothing important left".
23
+ ```
@@ -1,5 +1,10 @@
1
1
  # Changelog — luckiest-churn-prevention
2
2
 
3
+ ## 1.1.1 — 2026-10-16
4
+ From coreyhaines31/marketingskills at 1efedbc (issue #174, MIT).
5
+
6
+ - Paddle Billing webhook names corrected (`transaction.payment_failed`, `subscription.past_due`, `subscription.canceled`).
7
+
3
8
  ## 1.1.0 — 2026-07-06
4
9
  Skill updater pass: analytics integration.
5
10
 
@@ -3,7 +3,7 @@ name: churn-prevention
3
3
  description: "When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see luckiest-emails. For in-app upgrade paywalls, see luckiest-paywalls."
4
4
  license: See ATTRIBUTION.md
5
5
  metadata:
6
- version: "1.1.0"
6
+ version: "1.1.1"
7
7
  listing_id: luckiest-churn-prevention
8
8
  author: luckiest
9
9
  ---
@@ -14,9 +14,9 @@ This skill provides expert guidance on SaaS retention and churn prevention. Its
14
14
 
15
15
  ## Staying current
16
16
 
17
- On activation, call the Luckiest MCP check_updates tool with { listingId: "b4e5958d-e47d-4e84-a936-0ed6cfc99317", 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.
17
+ On activation, call the Luckiest MCP check_updates tool with { listingId: "b4e5958d-e47d-4e84-a936-0ed6cfc99317", installedSemver: "1.1.1" }. 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
18
 
19
- When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-churn-prevention", 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.
19
+ When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-churn-prevention", skill_version: "1.1.1", 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
20
 
21
21
  ## Before Starting
22
22
 
@@ -88,6 +88,20 @@
88
88
  "Does not attempt to write a full email sequence"
89
89
  ],
90
90
  "files": []
91
+ },
92
+ {
93
+ "id": 7,
94
+ "prompt": "Our Paddle Billing dunning handler listens for subscription.payment_failed and subscription.cancelled but never runs. A failed transaction has no subscription_id, and another active subscription has a scheduled cancellation next month. Which events should we configure, and should both customers lose access now?",
95
+ "expected_output": "Should use the linked dunning playbook and diagnose the invalid Paddle Billing event names. Should recommend transaction.payment_failed for payment attempts, subscription.past_due for overdue subscription state, and subscription.canceled for effective cancellation. Should distinguish one-off transaction failures using subscription_id and explain that a scheduled cancellation emits subscription.updated before subscription.canceled at its effective date. Should not treat either case as immediate subscription cancellation or confuse Paddle Classic alerts with Billing events.",
96
+ "assertions": [
97
+ "Corrects the payment event to transaction.payment_failed",
98
+ "Uses subscription.canceled with the Billing spelling",
99
+ "Uses subscription.past_due for overdue subscription state",
100
+ "Does not classify a failed transaction without subscription_id as subscription churn",
101
+ "Keeps scheduled cancellation distinct from effective cancellation",
102
+ "References current Paddle Billing documentation and separates Classic alert names"
103
+ ],
104
+ "files": []
91
105
  }
92
106
  ]
93
107
  }
@@ -316,7 +316,12 @@ Final: Mark subscription as unpaid after last retry
316
316
  **Managed dunning:**
317
317
  - Paddle handles retries and dunning automatically
318
318
  - Limited customization (Paddle manages the relationship)
319
- - Webhook: `subscription.payment_failed`, `subscription.cancelled`
319
+ - **Paddle Billing webhooks** (dot-separated `event_type` names):
320
+ - `transaction.payment_failed` reports a failed payment attempt. Use its `subscription_id` to associate a subscription renewal; a failed one-off transaction is not subscription churn.
321
+ - `subscription.past_due` reports that the subscription is past due.
322
+ - `subscription.canceled` reports an effective cancellation. A cancellation scheduled for the next billing period emits `subscription.updated` first; retain access according to the current subscription state until that change takes effect.
323
+ - Configure notification subscriptions for these exact names. `subscription.payment_failed` and `subscription.cancelled` are not Paddle Billing event types; do not mix Billing webhooks with the separate Paddle Classic alert names.
324
+ - Verify the [payment-failure](https://developer.paddle.com/webhooks/transactions/transaction-payment-failed/) and [cancellation](https://developer.paddle.com/webhooks/subscriptions/subscription-canceled/) contracts before wiring account state changes.
320
325
  - Best for hands-off approach
321
326
 
322
327
  ### Recurly
@@ -1,5 +1,15 @@
1
1
  # Changelog — luckiest-coder-brainstorming
2
2
 
3
+ ## 1.4.0 — 2026-10-16
4
+
5
+ - Rebuilt-brainstorming ideas from obra/superpowers at bb92a77 (v7.0.0, MIT): first message offers to skip the questions and opens with one open question, open questions before any menu, defaults said out loud, throwaway spikes with a gate exception, a builder-check subagent (`builder-check-prompt.md`) in place of the spec self-review, and a Red Flags table. Removed the unused `spec-document-reviewer-prompt.md`.
6
+ - Visual companion server: content containing `$&` or `$'` no longer corrupts the page (function replacement).
7
+
8
+ ## 1.3.0 — 2026-10-12
9
+ - Explore step runs the `luckiest-coder-components` lookup when the work involves
10
+ UI components, so reusable matches shape the proposed approaches.
11
+ - `check_updates` and `report_usage` -> 1.3.0.
12
+
3
13
  ## 1.2.0 — 2026-09-22
4
14
  Practices adopted from BuilderOS, Compound Engineering, and firstmate.
5
15
 
@@ -3,7 +3,7 @@ name: coder-brainstorming
3
3
  description: Use BEFORE any creative or build work — creating features, building components, adding functionality, or modifying behavior. Turns a rough idea into an approved design spec through one-question-at-a-time dialogue, then hands off to planning. Trigger phrases: "let's build", "I want to add", "design a feature", "how should this work", "new project", "brainstorm this". Gates all implementation until a design is approved.
4
4
  license: See ATTRIBUTION.md
5
5
  metadata:
6
- version: "1.2.0"
6
+ version: "1.4.0"
7
7
  listing_id: luckiest-coder-brainstorming
8
8
  author: luckiest
9
9
  ---
@@ -18,6 +18,31 @@ Start by understanding the current project context, then ask questions one at a
18
18
  Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.
19
19
  </HARD-GATE>
20
20
 
21
+ ## Your First Message
22
+
23
+ Before replying, ask what you actually know about what they want, and why.
24
+ If everything that matters is in the request ("make the icon cornflower
25
+ blue"), the request is the design: say it back in one line and get a yes. If something
26
+ non-trivial is missing, your first message is two things, in this order:
27
+
28
+ 1. One line saying that if they'd rather skip the questions and have you just
29
+ start, they can say so. If they do, state the design and any significant
30
+ how-it-gets-made choice (platform, language, medium) in a few plain lines,
31
+ and proceed on their yes.
32
+ 2. One open question that gets them describing a real moment or a concrete
33
+ picture: "What's the moment you find yourself wishing this existed?"
34
+
35
+ **Say your defaults out loud.** Find out early which choices about platform,
36
+ language, libraries, or materials they want to make and which they hand to
37
+ you. Any choice you make goes in the design as your call, never as something
38
+ they agreed to.
39
+
40
+ **Spikes.** A quick throwaway build is often the cheapest way to learn what
41
+ they want or whether something works. Offer one when it would help. With
42
+ their yes it may be built: it stays labeled throwaway, skips the plan and
43
+ the full test pass, and keeping what it produced is a new request that comes
44
+ back through the gate above.
45
+
21
46
  ## Anti-Pattern: "This Is Too Simple To Need A Design"
22
47
 
23
48
  Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.
@@ -28,13 +53,13 @@ Every project goes through this process. A todo list, a single-function utility,
28
53
 
29
54
  You MUST create a task for each of these items and complete them in order:
30
55
 
31
- 1. **Explore project context** — check files, docs, recent commits
56
+ 1. **Explore project context** — check files, docs, recent commits. If the work involves UI components, run the luckiest-coder-components lookup and bring any reusable match into the approaches
32
57
  2. **Offer the visual companion just-in-time** — NOT upfront. The first time a question would genuinely be clearer shown than described, offer it then (its own message); on approval its browser tab opens for you. If no visual question ever arises, never offer it. See the Visual Companion section below.
33
- 3. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
58
+ 3. **Ask clarifying questions** — one at a time, open questions before any menu, understand purpose/constraints/success criteria
34
59
  4. **Propose 2-3 approaches** — with trade-offs and your recommendation
35
60
  5. **Present design** — in sections scaled to their complexity, get user approval after each section
36
61
  6. **Write design doc** — save to `docs/luckiest-coder/specs/YYYY-MM-DD-<topic>-design.md` and commit
37
- 7. **Spec self-review** — quick inline check for placeholders, contradictions, ambiguity, scope (see below)
62
+ 7. **Builder check** — a fresh subagent reads the spec as its builder and lists what it would still have to guess (see below)
38
63
  8. **User reviews written spec** — ask user to review the spec file before proceeding
39
64
  9. **Transition to implementation** — invoke luckiest-coder-writing-plans skill to create implementation plan
40
65
 
@@ -48,7 +73,7 @@ digraph brainstorming {
48
73
  "Present design sections" [shape=box];
49
74
  "User approves design?" [shape=diamond];
50
75
  "Write design doc" [shape=box];
51
- "Spec self-review\n(fix inline)" [shape=box];
76
+ "Builder check" [shape=box];
52
77
  "User reviews spec?" [shape=diamond];
53
78
  "Invoke luckiest-coder-writing-plans skill" [shape=doublecircle];
54
79
 
@@ -58,8 +83,8 @@ digraph brainstorming {
58
83
  "Present design sections" -> "User approves design?";
59
84
  "User approves design?" -> "Present design sections" [label="no, revise"];
60
85
  "User approves design?" -> "Write design doc" [label="yes"];
61
- "Write design doc" -> "Spec self-review\n(fix inline)";
62
- "Spec self-review\n(fix inline)" -> "User reviews spec?";
86
+ "Write design doc" -> "Builder check";
87
+ "Builder check" -> "User reviews spec?";
63
88
  "User reviews spec?" -> "Write design doc" [label="changes requested"];
64
89
  "User reviews spec?" -> "Invoke luckiest-coder-writing-plans skill" [label="approved"];
65
90
  }
@@ -75,7 +100,7 @@ digraph brainstorming {
75
100
  - Before asking detailed questions, assess scope: if the request describes multiple independent subsystems (e.g., "build a platform with chat, file storage, billing, and analytics"), flag this immediately. Don't spend questions refining details of a project that needs to be decomposed first.
76
101
  - If the project is too large for a single spec, help the user decompose into sub-projects: what are the independent pieces, how do they relate, what order should they be built? Then brainstorm the first sub-project through the normal design flow. Each sub-project gets its own spec → plan → implementation cycle.
77
102
  - For appropriately-scoped projects, ask questions one at a time to refine the idea
78
- - Prefer multiple choice questions when possible, but open-ended is fine too
103
+ - Start with open questions that get them describing; offer a short menu only when they're stuck, and propose something concrete when they say "just guess"
79
104
  - Only one question per message - if a topic needs more exploration, break it into multiple questions
80
105
  - Focus on understanding: purpose, constraints, success criteria
81
106
 
@@ -115,22 +140,29 @@ digraph brainstorming {
115
140
  - Use elements-of-style:writing-clearly-and-concisely skill if available
116
141
  - Commit the design document to git
117
142
 
118
- **Spec Self-Review:**
119
- After writing the spec document, look at it with fresh eyes:
143
+ **Builder Check:**
144
+ After writing the spec document, dispatch a fresh subagent with
145
+ `builder-check-prompt.md` in this skill directory. When you tell the user
146
+ you're writing it up, say a reviewer will read it first and you may come back
147
+ once with a few questions. Sort what the builder asks into three piles:
120
148
 
121
- 1. **Placeholder scan:** Any "TBD", "TODO", incomplete sections, or vague requirements? Fix them.
122
- 2. **Internal consistency:** Do any sections contradict each other? Does the architecture match the feature descriptions?
123
- 3. **Scope check:** Is this focused enough for a single implementation plan, or does it need decomposition?
124
- 4. **Ambiguity check:** Could any requirement be interpreted two different ways? If so, pick one and make it explicit.
149
+ - **Answered already** by the conversation or the project: put the answer in
150
+ the document.
151
+ - **Minor:** a sensible builder could settle it without changing what gets
152
+ built. Settle it yourself and mark it in the document as your call.
153
+ - **Theirs:** only the user can answer it, and the answer changes what gets
154
+ built. Bring these in one message, most important first.
125
155
 
126
- Fix any issues inline. No need to re-review — just fix and move on.
156
+ That is the only round of questions the check produces. Without a subagent
157
+ tool, read the document as that builder yourself, and still fix placeholders,
158
+ contradictions, and ambiguity inline.
127
159
 
128
160
  **User Review Gate:**
129
- After the spec review loop passes, ask the user to review the written spec before proceeding:
161
+ After the builder check, ask the user to review the written spec before proceeding:
130
162
 
131
163
  > "Spec written and committed to `<path>`. Please review it and let me know if you want to make any changes before we start writing out the implementation plan."
132
164
 
133
- Wait for the user's response. If they request changes, make them and re-run the spec review loop. Only proceed once the user approves.
165
+ Wait for the user's response. If they request changes, make them and re-run the builder check. Only proceed once the user approves.
134
166
 
135
167
  **Implementation:**
136
168
 
@@ -141,12 +173,22 @@ Wait for the user's response. If they request changes, make them and re-run the
141
173
  ## Key Principles
142
174
 
143
175
  - **One question at a time** - Don't overwhelm with multiple questions
144
- - **Multiple choice preferred** - Easier to answer than open-ended when possible
176
+ - **Get them describing** - Open questions first, a short menu only when they're stuck
145
177
  - **YAGNI ruthlessly** - Remove unnecessary features from all designs
146
178
  - **Explore alternatives** - Always propose 2-3 approaches before settling
147
179
  - **Incremental validation** - Present design, get approval before moving on
148
180
  - **Be flexible** - Go back and clarify when something doesn't make sense
149
181
 
182
+ ## Red Flags
183
+
184
+ | Thought | Reality |
185
+ |---------|---------|
186
+ | "I'll offer options to save them effort" | Options steer. Ask them to describe it first. |
187
+ | "I'll fill in sensible defaults" | Good. Say them out loud. A default they never heard is one they couldn't reject. |
188
+ | "I should explain the process first" | Ask your question. The process shows itself. |
189
+ | "They said 'sounds good' to the idea" | Approval covers what you showed them. A design you haven't written isn't approved. |
190
+ | "The spike works, I'll keep building on it" | Keeping it is a new request. Back through the gate. |
191
+
150
192
  ## Visual Companion
151
193
 
152
194
  A browser-based companion for showing mockups, diagrams, and visual options during brainstorming. Available as a tool — not a mode. Accepting the companion means it's available for questions that benefit from visual treatment; it does NOT mean every question goes through the browser.
@@ -169,7 +211,7 @@ If they agree to the companion, read the detailed guide before proceeding:
169
211
  ## Staying current
170
212
 
171
213
  On activation, call the Luckiest MCP `check_updates` tool with
172
- `{ listingId: "a11fbe77-8a4e-47b7-b3f2-b70657c8e7f3", installedSemver: "1.2.0" }`.
214
+ `{ listingId: "a11fbe77-8a4e-47b7-b3f2-b70657c8e7f3", installedSemver: "1.4.0" }`.
173
215
  If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
174
216
 
175
- When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-brainstorming", skill_version: "1.2.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.
217
+ When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-brainstorming", skill_version: "1.4.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.
@@ -0,0 +1,23 @@
1
+ # Builder Check Prompt
2
+
3
+ Dispatch a fresh general-purpose subagent with this prompt once the written
4
+ design exists. Fill in the domain and the document path.
5
+
6
+ ```
7
+ You are a talented [DOMAIN, e.g. "software engineer", "event planner"].
8
+ You've been handed a design document and asked to put together a plan to
9
+ build what it describes. You will not be able to talk to the person who
10
+ wrote it.
11
+
12
+ Read [DOCUMENT_PATH].
13
+
14
+ Report only the questions you'd still need answered before you could plan
15
+ this well: places where you'd have to guess and a wrong guess would matter.
16
+ For each, give the question and why the answer changes the plan. Rank them
17
+ by importance.
18
+
19
+ Skip anything the document explicitly leaves to the builder, and anything
20
+ you could reasonably decide yourself. Skip nitpicks about wording.
21
+
22
+ If nothing important is left, say "nothing important left".
23
+ ```
@@ -259,7 +259,7 @@ function isFullDocument(html) {
259
259
  }
260
260
 
261
261
  function wrapInFrame(content) {
262
- return renderBranding(frameTemplate).replace('<!-- CONTENT -->', content);
262
+ return renderBranding(frameTemplate).replace('<!-- CONTENT -->', () => content);
263
263
  }
264
264
 
265
265
  function getNewestScreen() {
@@ -1,5 +1,9 @@
1
1
  # Changelog — luckiest-coder-debugging
2
2
 
3
+ ## 1.2.1 — 2026-10-16
4
+
5
+ - Secret-presence example prints only SET or UNSET and never the value (from obra/superpowers at bb92a77 (v7.0.0, MIT)).
6
+
3
7
  ## 1.2.0 — 2026-09-22
4
8
  Practices adopted from BuilderOS, Compound Engineering, and firstmate.
5
9
 
@@ -3,7 +3,7 @@ name: coder-debugging
3
3
  description: Use when hunting the root cause of any bug, test failure, crash, or unexpected behavior — before proposing or attempting a fix. Trigger phrases include "debug this", "why is this failing", "find the root cause", "this test is flaky", "the build broke", "it works sometimes", or "/luckiest-coder-debugging". Enforces a four-phase root-cause-first process (investigate, pattern-match, hypothesize, implement) and blocks symptom fixes.
4
4
  license: See ATTRIBUTION.md
5
5
  metadata:
6
- version: "1.2.0"
6
+ version: "1.2.1"
7
7
  listing_id: luckiest-coder-debugging
8
8
  author: luckiest
9
9
  ---
@@ -95,11 +95,11 @@ You MUST complete each phase before proceeding to the next.
95
95
  ```bash
96
96
  # Layer 1: Workflow
97
97
  echo "=== Secrets available in workflow: ==="
98
- echo "IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}"
98
+ echo "IDENTITY: $([ -n "${IDENTITY:-}" ] && echo SET || echo UNSET)"
99
99
 
100
100
  # Layer 2: Build script
101
101
  echo "=== Env vars in build script: ==="
102
- env | grep IDENTITY || echo "IDENTITY not in environment"
102
+ printenv IDENTITY >/dev/null 2>&1 && echo "IDENTITY in environment" || echo "IDENTITY not in environment"
103
103
 
104
104
  # Layer 3: Signing script
105
105
  echo "=== Keychain state: ==="
@@ -315,7 +315,7 @@ From debugging sessions:
315
315
  ## Staying current
316
316
 
317
317
  On activation, call the Luckiest MCP `check_updates` tool with
318
- `{ listingId: "5b9728f7-04b0-4be9-9962-3453d4a11d9a", installedSemver: "1.2.0" }`.
318
+ `{ listingId: "5b9728f7-04b0-4be9-9962-3453d4a11d9a", installedSemver: "1.2.1" }`.
319
319
  If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
320
320
 
321
- When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-debugging", skill_version: "1.2.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.
321
+ When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-debugging", skill_version: "1.2.1", 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.
@@ -1,5 +1,9 @@
1
1
  # Changelog — luckiest-coder-requesting-code-review
2
2
 
3
+ ## 1.1.1 — 2026-10-16
4
+
5
+ - BASE_SHA example uses `cut` instead of `awk` (from obra/superpowers at bb92a77 (v7.0.0, MIT)).
6
+
3
7
  ## 1.1.0 — 2026-07-06
4
8
  Skill updater pass: analytics integration.
5
9
 
@@ -3,7 +3,7 @@ name: coder-requesting-code-review
3
3
  description: Use when you have finished a task, implemented a major feature, fixed a complex bug, or are about to merge to main and want a fresh reviewer to catch issues before they cascade. Trigger phrases include "review this before I merge", "get a code review", "check my changes", "is this ready to merge". Dispatches a reviewer subagent with crafted context (a git SHA range), not your session history.
4
4
  license: See ATTRIBUTION.md
5
5
  metadata:
6
- version: "1.1.0"
6
+ version: "1.1.1"
7
7
  listing_id: luckiest-coder-requesting-code-review
8
8
  author: luckiest
9
9
  ---
@@ -59,7 +59,7 @@ Dispatch a `general-purpose` subagent, filling the template at [code-reviewer.md
59
59
 
60
60
  You: Let me request code review before proceeding.
61
61
 
62
- BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | awk '{print $1}')
62
+ BASE_SHA=$(git log --oneline | grep "Task 1" | head -1 | cut -d' ' -f1)
63
63
  HEAD_SHA=$(git rev-parse HEAD)
64
64
 
65
65
  [Dispatch code reviewer subagent]
@@ -112,7 +112,7 @@ See template at: [code-reviewer.md](code-reviewer.md)
112
112
  ## Staying current
113
113
 
114
114
  On activation, call the Luckiest MCP `check_updates` tool with
115
- `{ listingId: "010a144f-99ed-4b6e-a43e-9ab51574c45b", installedSemver: "1.1.0" }`.
115
+ `{ listingId: "010a144f-99ed-4b6e-a43e-9ab51574c45b", installedSemver: "1.1.1" }`.
116
116
  If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
117
117
 
118
- When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-requesting-code-review", 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.
118
+ When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-requesting-code-review", skill_version: "1.1.1", 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.
@@ -1,5 +1,9 @@
1
1
  # Changelog — luckiest-coder-subagent-driven-development
2
2
 
3
+ ## 1.2.1 — 2026-10-16
4
+
5
+ - `sdd-workspace` writes its `.gitignore` only when none exists, so a repo's committed one is kept (from obra/superpowers at bb92a77 (v7.0.0, MIT)).
6
+
3
7
  ## 1.2.0 — 2026-09-22
4
8
  Practices adopted from BuilderOS, Compound Engineering, and firstmate.
5
9
 
@@ -3,7 +3,7 @@ name: coder-subagent-driven-development
3
3
  description: Use when executing an implementation plan of mostly-independent tasks in the current session — dispatches a fresh implementer subagent per task, a spec+quality review after each, and a broad whole-branch review at the end. Trigger on "execute this plan", "run the plan with subagents", "implement these tasks one by one", or after writing a plan when you want same-session execution with review gates rather than a parallel session.
4
4
  license: See ATTRIBUTION.md
5
5
  metadata:
6
- version: "1.2.0"
6
+ version: "1.2.1"
7
7
  listing_id: luckiest-coder-subagent-driven-development
8
8
  author: luckiest
9
9
  ---
@@ -435,7 +435,7 @@ is unavailable.
435
435
  ## Staying current
436
436
 
437
437
  On activation, call the Luckiest MCP `check_updates` tool with
438
- `{ listingId: "7b994606-94cb-45a9-876d-1b5ecb856596", installedSemver: "1.2.0" }`.
438
+ `{ listingId: "7b994606-94cb-45a9-876d-1b5ecb856596", installedSemver: "1.2.1" }`.
439
439
  If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
440
440
 
441
- When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-subagent-driven-development", skill_version: "1.2.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.
441
+ When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-subagent-driven-development", skill_version: "1.2.1", 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.
@@ -18,5 +18,7 @@ set -euo pipefail
18
18
  root=$(git rev-parse --show-toplevel)
19
19
  dir="$root/.luckiest-coder/sdd"
20
20
  mkdir -p "$dir"
21
- printf '*\n' > "$dir/.gitignore"
21
+ # Create-only: a repo may commit its own .gitignore here; overwriting it would
22
+ # revert that on every run.
23
+ [ -e "$dir/.gitignore" ] || printf '*\n' > "$dir/.gitignore"
22
24
  cd "$dir" && pwd
@@ -1,5 +1,12 @@
1
1
  # Changelog — luckiest-cold-email
2
2
 
3
+ ## 1.3.0 — 2026-10-16
4
+ From coreyhaines31/marketingskills at 1efedbc (issue #174, MIT).
5
+
6
+ - New references: deliverability, LinkedIn outreach, multichannel cadence, outbound plays, reply handling. Sending setup (secondary domains, list verification, tracking off) folded into Deliverability; reply classification folded into Handling the Reply; new Beyond Email section.
7
+ - Benchmarks: vendor-sourced ranges, reply rate ~3.4% average, drop open rate as a metric; personalization with AI section.
8
+ - Two new evals. Skipped upstream's tools-registry table.
9
+
3
10
  ## 1.2.0 — 2026-10-08
4
11
  Upstream sync with coreyhaines31/marketingskills dda3841 (issue #112).
5
12