luckiest-co 1.0.46 → 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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/ab-testing/CHANGELOG.md +5 -0
- package/skills/ab-testing/SKILL.md +12 -9
- package/skills/ab-testing/evals/evals.json +18 -7
- package/skills/ab-testing/references/sample-size-guide.md +2 -2
- package/skills/ads/CHANGELOG.md +5 -0
- package/skills/ads/SKILL.md +4 -4
- package/skills/ai-seo/CHANGELOG.md +7 -0
- package/skills/ai-seo/SKILL.md +27 -20
- package/skills/analytics/CHANGELOG.md +6 -0
- package/skills/analytics/SKILL.md +4 -3
- package/skills/analytics/evals/evals.json +27 -0
- package/skills/analytics/references/ga4-implementation.md +7 -3
- package/skills/analytics/references/gtm-implementation.md +8 -2
- package/skills/aso/CHANGELOG.md +5 -0
- package/skills/aso/SKILL.md +4 -4
- package/skills/aso/evals/evals.json +15 -2
- package/skills/aso/references/benchmarks.md +4 -2
- package/skills/aso/references/google-play-specs.md +5 -1
- package/skills/brainstorm/SKILL.md +59 -16
- package/skills/brainstorm/builder-check-prompt.md +23 -0
- package/skills/churn-prevention/CHANGELOG.md +5 -0
- package/skills/churn-prevention/SKILL.md +3 -3
- package/skills/churn-prevention/evals/evals.json +14 -0
- package/skills/churn-prevention/references/dunning-playbook.md +6 -1
- package/skills/coder-brainstorming/CHANGELOG.md +10 -0
- package/skills/coder-brainstorming/SKILL.md +62 -20
- package/skills/coder-brainstorming/builder-check-prompt.md +23 -0
- package/skills/coder-brainstorming/scripts/server.cjs +1 -1
- package/skills/coder-debugging/CHANGELOG.md +4 -0
- package/skills/coder-debugging/SKILL.md +5 -5
- package/skills/coder-requesting-code-review/CHANGELOG.md +4 -0
- package/skills/coder-requesting-code-review/SKILL.md +4 -4
- package/skills/coder-subagent-driven-development/CHANGELOG.md +4 -0
- package/skills/coder-subagent-driven-development/SKILL.md +3 -3
- package/skills/coder-subagent-driven-development/scripts/sdd-workspace +3 -1
- package/skills/cold-email/CHANGELOG.md +7 -0
- package/skills/cold-email/SKILL.md +27 -7
- package/skills/cold-email/evals/evals.json +30 -0
- package/skills/cold-email/references/benchmarks.md +15 -11
- package/skills/cold-email/references/deliverability.md +110 -0
- package/skills/cold-email/references/linkedin-outreach.md +91 -0
- package/skills/cold-email/references/multichannel-cadence.md +79 -0
- package/skills/cold-email/references/outbound-plays.md +88 -0
- package/skills/cold-email/references/personalization.md +11 -0
- package/skills/cold-email/references/reply-handling.md +65 -0
- package/skills/competitor-profiling/CHANGELOG.md +5 -0
- package/skills/competitor-profiling/SKILL.md +4 -4
- package/skills/content-strategy/CHANGELOG.md +5 -0
- package/skills/content-strategy/SKILL.md +5 -3
- package/skills/copy-editing/CHANGELOG.md +5 -0
- package/skills/copy-editing/SKILL.md +5 -5
- package/skills/copy-editing/references/content-refresh.md +33 -0
- package/skills/cro/CHANGELOG.md +5 -0
- package/skills/cro/SKILL.md +14 -3
- package/skills/cro/references/form.md +1 -1
- package/skills/directory-submissions/CHANGELOG.md +5 -0
- package/skills/directory-submissions/SKILL.md +13 -4
- package/skills/directory-submissions/evals/evals.json +15 -1
- package/skills/directory-submissions/references/directory-list.md +2 -4
- package/skills/emails/CHANGELOG.md +5 -0
- package/skills/emails/SKILL.md +14 -4
- package/skills/launch/CHANGELOG.md +7 -0
- package/skills/launch/SKILL.md +8 -4
- package/skills/launch/evals/evals.json +29 -0
- package/skills/launch/references/shipped-changes.md +84 -0
- package/skills/launch/references/site-launch-qa.md +55 -0
- package/skills/lead-magnets/CHANGELOG.md +5 -0
- package/skills/lead-magnets/SKILL.md +6 -4
- package/skills/lead-magnets/evals/evals.json +18 -0
- package/skills/lead-magnets/references/content-to-skill-corpus-design.md +89 -0
- package/skills/lead-magnets/references/content-to-skill-release.md +71 -0
- package/skills/lead-magnets/references/content-to-skill.md +108 -0
- package/skills/marketing-plan/CHANGELOG.md +5 -0
- package/skills/marketing-plan/SKILL.md +3 -3
- package/skills/marketing-plan/evals/evals.json +13 -0
- package/skills/marketing-plan/references/budget-planning.md +26 -17
- package/skills/pricing/CHANGELOG.md +5 -0
- package/skills/pricing/SKILL.md +4 -4
- package/skills/pricing/evals/evals.json +12 -0
- package/skills/pricing/references/research-methods.md +8 -4
- package/skills/programmatic-seo/CHANGELOG.md +5 -0
- package/skills/programmatic-seo/SKILL.md +8 -4
- package/skills/programmatic-seo/evals/evals.json +13 -0
- package/skills/programmatic-seo/references/implementation-platforms.md +37 -0
- package/skills/prospecting/CHANGELOG.md +7 -0
- package/skills/prospecting/SKILL.md +27 -13
- package/skills/prospecting/evals/evals.json +41 -0
- package/skills/prospecting/references/account-research.md +59 -0
- package/skills/prospecting/references/b2b-prospecting.md +1 -1
- package/skills/prospecting/references/compliance.md +44 -6
- package/skills/prospecting/references/data-sources.md +13 -15
- package/skills/prospecting/references/enrichment-playbook.md +61 -0
- package/skills/prospecting/references/saas-prospecting.md +1 -1
- package/skills/prospecting/references/signal-plays.md +99 -0
- package/skills/prospecting/references/sourcing-and-enrichment.md +89 -0
- package/skills/referrals/CHANGELOG.md +5 -0
- package/skills/referrals/SKILL.md +10 -4
- package/skills/referrals/evals/evals.json +99 -0
- package/skills/referrals/references/affiliate-operations.md +64 -0
- package/skills/referrals/references/affiliate-programs.md +2 -2
- package/skills/referrals/references/program-examples.md +14 -6
- package/skills/referrals/references/review-platform-rules.md +36 -0
- package/skills/referrals/references/review-program-operations.md +62 -0
- package/skills/referrals/references/review-programs.md +96 -0
- package/skills/revops/CHANGELOG.md +5 -0
- package/skills/revops/SKILL.md +10 -6
- package/skills/revops/evals/evals.json +13 -0
- package/skills/revops/references/automation-playbooks.md +1 -1
- package/skills/revops/references/inbound-routing.md +43 -0
- package/skills/revops/references/lifecycle-definitions.md +31 -0
- package/skills/sales-enablement/CHANGELOG.md +5 -0
- package/skills/sales-enablement/SKILL.md +6 -4
- package/skills/sales-enablement/evals/evals.json +14 -0
- package/skills/sales-enablement/references/cold-call-scripts.md +68 -0
- package/skills/schema/CHANGELOG.md +5 -0
- package/skills/schema/SKILL.md +20 -8
- package/skills/schema/evals/evals.json +40 -0
- package/skills/schema/references/schema-examples.md +9 -15
- package/skills/seo-audit/CHANGELOG.md +5 -0
- package/skills/seo-audit/SKILL.md +10 -16
- package/skills/seo-audit/evals/evals.json +68 -0
- package/skills/seo-audit/references/international-seo.md +9 -11
- package/skills/seo-audit/references/local-seo-pages-and-measurement.md +39 -0
- package/skills/seo-audit/references/local-seo-profile-and-citations.md +41 -0
- package/skills/seo-audit/references/local-seo.md +86 -0
- package/skills/seo-audit/references/rankings-push.md +62 -0
- package/skills/seo-audit/references/title-tags.md +89 -0
- package/skills/signup/CHANGELOG.md +5 -0
- package/skills/signup/SKILL.md +7 -3
- package/skills/site-architecture/CHANGELOG.md +5 -0
- package/skills/site-architecture/SKILL.md +5 -4
- package/skills/site-architecture/evals/evals.json +25 -0
- package/skills/site-architecture/references/platforms-and-migration.md +84 -0
- package/skills/social/CHANGELOG.md +5 -0
- package/skills/social/SKILL.md +4 -4
- package/skills/trends/.skillignore +3 -0
- package/skills/trends/CHANGELOG.md +20 -0
- package/skills/trends/SKILL.md +12 -8
- package/skills/trends/references/agent-mode.md +36 -0
- package/skills/trends/references/category-peers.md +38 -0
- package/skills/trends/references/comparison.md +227 -0
- package/skills/trends/references/competitors.md +29 -0
- package/skills/trends/references/discovery.md +90 -0
- package/skills/trends/references/engine-contract.md +111 -1889
- package/skills/trends/references/followups.md +112 -0
- package/skills/trends/references/grok-bot-x.md +55 -0
- package/skills/trends/references/hiring-signals.md +19 -0
- package/skills/trends/references/library-queue.md +33 -0
- package/skills/trends/references/recommendations.md +86 -0
- package/skills/trends/references/research-runbook.md +781 -0
- package/skills/trends/references/runtime.md +165 -0
- package/skills/trends/references/save-html-brief.md +39 -20
- package/skills/trends/references/setup-wizard.md +253 -0
- package/skills/trends/references/synthesis.md +289 -0
- package/skills/trends/scripts/box_chrome_login.py +209 -0
- package/skills/trends/scripts/briefing.py +9 -17
- package/skills/trends/scripts/last30days.py +3247 -280
- package/skills/trends/scripts/lib/agentcookie.py +196 -0
- package/skills/trends/scripts/lib/amazon.py +877 -0
- package/skills/trends/scripts/lib/arxiv.py +42 -8
- package/skills/trends/scripts/lib/backends.py +769 -0
- package/skills/trends/scripts/lib/bird_x.py +340 -57
- package/skills/trends/scripts/lib/bluesky.py +84 -10
- package/skills/trends/scripts/lib/bounded_get.py +156 -0
- package/skills/trends/scripts/lib/brightdata.py +291 -0
- package/skills/trends/scripts/lib/categories.py +7 -1
- package/skills/trends/scripts/lib/chrome_cdp.py +455 -0
- package/skills/trends/scripts/lib/chrome_cookies.py +132 -39
- package/skills/trends/scripts/lib/cluster.py +31 -54
- package/skills/trends/scripts/lib/competitors.py +10 -1
- package/skills/trends/scripts/lib/cookie_extract.py +221 -44
- package/skills/trends/scripts/lib/cookie_paths.py +27 -0
- package/skills/trends/scripts/lib/corpus.py +439 -0
- package/skills/trends/scripts/lib/devto.py +313 -0
- package/skills/trends/scripts/lib/discovery_handoff.py +988 -0
- package/skills/trends/scripts/lib/doctor.py +2166 -0
- package/skills/trends/scripts/lib/dripstack.py +203 -0
- package/skills/trends/scripts/lib/entity_extract.py +37 -0
- package/skills/trends/scripts/lib/env.py +1092 -138
- package/skills/trends/scripts/lib/fanout.py +11 -1
- package/skills/trends/scripts/lib/feed.py +61 -0
- package/skills/trends/scripts/lib/fetch_memo.py +135 -0
- package/skills/trends/scripts/lib/freshness.py +566 -0
- package/skills/trends/scripts/lib/fusion.py +314 -28
- package/skills/trends/scripts/lib/github.py +438 -24
- package/skills/trends/scripts/lib/grok_x.py +1237 -0
- package/skills/trends/scripts/lib/grounding.py +129 -11
- package/skills/trends/scripts/lib/hackernews.py +61 -4
- package/skills/trends/scripts/lib/health.py +373 -0
- package/skills/trends/scripts/lib/hosted.py +333 -0
- package/skills/trends/scripts/lib/html_publish.py +34 -0
- package/skills/trends/scripts/lib/html_render.py +169 -3
- package/skills/trends/scripts/lib/http.py +1215 -70
- package/skills/trends/scripts/lib/instagram.py +132 -9
- package/skills/trends/scripts/lib/jobs.py +4 -2
- package/skills/trends/scripts/lib/library.py +308 -0
- package/skills/trends/scripts/lib/library_index.py +477 -0
- package/skills/trends/scripts/lib/linkedin.py +271 -24
- package/skills/trends/scripts/lib/log.py +5 -2
- package/skills/trends/scripts/lib/meta_ads.py +982 -0
- package/skills/trends/scripts/lib/normalize.py +382 -28
- package/skills/trends/scripts/lib/parallel_mcp.py +234 -0
- package/skills/trends/scripts/lib/permission_preflight.py +42 -3
- package/skills/trends/scripts/lib/perplexity.py +1080 -468
- package/skills/trends/scripts/lib/pipeline.py +5079 -211
- package/skills/trends/scripts/lib/planner.py +396 -53
- package/skills/trends/scripts/lib/polymarket.py +285 -23
- package/skills/trends/scripts/lib/prescriptions.py +432 -0
- package/skills/trends/scripts/lib/private_files.py +21 -0
- package/skills/trends/scripts/lib/providers.py +231 -10
- package/skills/trends/scripts/lib/quality_nudge.py +122 -37
- package/skills/trends/scripts/lib/reddit.py +177 -12
- package/skills/trends/scripts/lib/reddit_arctic.py +146 -5
- package/skills/trends/scripts/lib/reddit_keyless.py +121 -60
- package/skills/trends/scripts/lib/reddit_listing.py +215 -14
- package/skills/trends/scripts/lib/reddit_public.py +12 -13
- package/skills/trends/scripts/lib/reddit_search.py +304 -0
- package/skills/trends/scripts/lib/reddit_shreddit.py +51 -7
- package/skills/trends/scripts/lib/registers.py +134 -0
- package/skills/trends/scripts/lib/relevance.py +17 -0
- package/skills/trends/scripts/lib/render.py +2161 -271
- package/skills/trends/scripts/lib/rerank.py +623 -55
- package/skills/trends/scripts/lib/resolve.py +50 -1
- package/skills/trends/scripts/lib/safari_cookies.py +42 -15
- package/skills/trends/scripts/lib/schema.py +782 -1
- package/skills/trends/scripts/lib/setup_wizard.py +779 -120
- package/skills/trends/scripts/lib/signals.py +206 -7
- package/skills/trends/scripts/lib/stocktwits.py +374 -0
- package/skills/trends/scripts/lib/subproc.py +307 -53
- package/skills/trends/scripts/lib/techmeme.py +89 -64
- package/skills/trends/scripts/lib/telegram.py +317 -0
- package/skills/trends/scripts/lib/tiktok.py +13 -9
- package/skills/trends/scripts/lib/topic_shape.py +340 -0
- package/skills/trends/scripts/lib/transcribe.py +12 -3
- package/skills/trends/scripts/lib/trustpilot.py +256 -5
- package/skills/trends/scripts/lib/truthsocial.py +9 -1
- package/skills/trends/scripts/lib/ui.py +6 -0
- package/skills/trends/scripts/lib/usage.py +132 -0
- package/skills/trends/scripts/lib/web_search_keyless.py +63 -4
- package/skills/trends/scripts/lib/windows_job.py +138 -0
- package/skills/trends/scripts/lib/x_api.py +824 -0
- package/skills/trends/scripts/lib/x_envelope.py +733 -0
- package/skills/trends/scripts/lib/x_judge.py +292 -0
- package/skills/trends/scripts/lib/xai_x.py +26 -3
- package/skills/trends/scripts/lib/xquik.py +89 -15
- package/skills/trends/scripts/lib/xurl_x.py +284 -91
- package/skills/trends/scripts/lib/youtube_yt.py +570 -119
- package/skills/trends/scripts/setup-keychain.sh +12 -4
- package/skills/trends/scripts/setup-pass.sh +3 -0
- package/skills/trends/scripts/store.py +444 -50
- package/skills/trends/scripts/watchlist.py +38 -11
- package/skills/trends/scripts/x_lane_parity.py +107 -0
- package/skills/video-studio/CHANGELOG.md +8 -0
- package/skills/video-studio/SKILL.md +6 -5
- package/skills/video-studio/references/styles/product-flight.md +45 -0
- package/skills/video-studio/references/styles.md +3 -1
- package/skills/video-studio/scripts/qa.mjs +64 -2
- package/skills/video-studio/scripts/qa.test.mjs +29 -1
- package/skills/video-studio-motion/ATTRIBUTION.md +1 -1
- package/skills/video-studio-motion/CHANGELOG.md +4 -0
- package/skills/video-studio-motion/SKILL.md +8 -5
- package/skills/coder-brainstorming/spec-document-reviewer-prompt.md +0 -49
- 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. **
|
|
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
|
-
"
|
|
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" -> "
|
|
54
|
-
"
|
|
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
|
-
-
|
|
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
|
-
**
|
|
111
|
-
After writing the spec document,
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
|
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
|
|
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
|
-
- **
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
-
|
|
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.
|
|
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. **
|
|
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
|
-
"
|
|
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" -> "
|
|
62
|
-
"
|
|
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
|
-
-
|
|
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
|
-
**
|
|
119
|
-
After writing the spec document,
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
- **
|
|
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.
|
|
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.
|
|
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.
|
|
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: $
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
@@ -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.
|
|
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 |
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
|