luckiest-co 1.0.17 → 1.0.18
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/luckiest-ab-testing/SKILL.md +1 -1
- package/skills/luckiest-ad-creative/SKILL.md +1 -1
- package/skills/luckiest-ads/SKILL.md +1 -1
- package/skills/luckiest-advisors/SKILL.md +1 -1
- package/skills/luckiest-aeo-grader/SKILL.md +1 -1
- package/skills/luckiest-ai-seo/SKILL.md +1 -1
- package/skills/luckiest-analytics/SKILL.md +1 -1
- package/skills/luckiest-aso/SKILL.md +1 -1
- package/skills/luckiest-churn-prevention/SKILL.md +1 -1
- package/skills/luckiest-co-marketing/SKILL.md +1 -1
- package/skills/luckiest-coder/SKILL.md +1 -1
- package/skills/luckiest-coder-brainstorming/SKILL.md +1 -1
- package/skills/luckiest-coder-consistency/SKILL.md +1 -1
- package/skills/luckiest-coder-constitution/SKILL.md +1 -1
- package/skills/luckiest-coder-debugging/SKILL.md +1 -1
- package/skills/luckiest-coder-dispatching-parallel-agents/SKILL.md +1 -1
- package/skills/luckiest-coder-executing-plans/SKILL.md +1 -1
- package/skills/luckiest-coder-finishing-a-branch/SKILL.md +1 -1
- package/skills/luckiest-coder-git-worktrees/SKILL.md +1 -1
- package/skills/luckiest-coder-guard/SKILL.md +1 -1
- package/skills/luckiest-coder-qa/SKILL.md +1 -1
- package/skills/luckiest-coder-receiving-code-review/SKILL.md +1 -1
- package/skills/luckiest-coder-requesting-code-review/SKILL.md +1 -1
- package/skills/luckiest-coder-shipping/SKILL.md +1 -1
- package/skills/luckiest-coder-subagent-driven-development/SKILL.md +1 -1
- package/skills/luckiest-coder-tdd/SKILL.md +1 -1
- package/skills/luckiest-coder-verification/SKILL.md +1 -1
- package/skills/luckiest-coder-writing-plans/SKILL.md +1 -1
- package/skills/luckiest-coder-writing-skills/SKILL.md +1 -1
- package/skills/luckiest-cold-email/SKILL.md +1 -1
- package/skills/luckiest-community-marketing/SKILL.md +1 -1
- package/skills/luckiest-competitor-profiling/SKILL.md +1 -1
- package/skills/luckiest-competitors/SKILL.md +1 -1
- package/skills/luckiest-content-strategy/SKILL.md +1 -1
- package/skills/luckiest-copy-editing/SKILL.md +1 -1
- package/skills/luckiest-copywriting/SKILL.md +1 -1
- package/skills/luckiest-cro/SKILL.md +1 -1
- package/skills/luckiest-customer-research/SKILL.md +1 -1
- package/skills/luckiest-design-website/ATTRIBUTION.md +38 -0
- package/skills/luckiest-design-website/CHANGELOG.md +104 -0
- package/skills/luckiest-design-website/LICENSE +21 -0
- package/skills/luckiest-design-website/SKILL.md +372 -0
- package/skills/luckiest-design-website/UPSTREAM-CHANGELOG.md +526 -0
- package/skills/luckiest-design-website/engine/scrollcraft.css +432 -0
- package/skills/luckiest-design-website/engine/scrollcraft.js +1167 -0
- package/skills/luckiest-design-website/evals/evals.json +33 -0
- package/skills/luckiest-design-website/references/assets.md +286 -0
- package/skills/luckiest-design-website/references/device-diag.html +214 -0
- package/skills/luckiest-design-website/references/devices.md +466 -0
- package/skills/luckiest-design-website/references/feel.md +277 -0
- package/skills/luckiest-design-website/references/registry-examples.md +305 -0
- package/skills/luckiest-design-website/references/taste.md +304 -0
- package/skills/luckiest-design-website/references/template.html +138 -0
- package/skills/luckiest-design-website/references/uniqueness.md +480 -0
- package/skills/luckiest-design-website/references/verify.md +381 -0
- package/skills/luckiest-design-website/references/worldflight.md +349 -0
- package/skills/luckiest-design-website/references/worlds.md +178 -0
- package/skills/luckiest-design-website/scripts/doctor.mjs +177 -0
- package/skills/luckiest-design-website/scripts/encode.sh +80 -0
- package/skills/luckiest-design-website/scripts/kie.mjs +202 -0
- package/skills/luckiest-design-website/scripts/serve.mjs +52 -0
- package/skills/luckiest-design-website/scripts/shoot.mjs +644 -0
- package/skills/luckiest-design-website/scripts/workspace.mjs +106 -0
- package/skills/luckiest-design-website/scripts/worldflight-assert.mjs +273 -0
- package/skills/luckiest-design-website/templates/FINGERPRINTS.md +65 -0
- package/skills/luckiest-directory-submissions/SKILL.md +1 -1
- package/skills/luckiest-emails/SKILL.md +1 -1
- package/skills/luckiest-extract-design-system/SKILL.md +1 -1
- package/skills/luckiest-free-tools/SKILL.md +1 -1
- package/skills/luckiest-image/SKILL.md +1 -1
- package/skills/luckiest-launch/SKILL.md +1 -1
- package/skills/luckiest-lead-magnets/SKILL.md +1 -1
- package/skills/luckiest-marketing-ideas/SKILL.md +1 -1
- package/skills/luckiest-marketing-plan/SKILL.md +1 -1
- package/skills/luckiest-marketing-psychology/SKILL.md +1 -1
- package/skills/luckiest-model-router/SKILL.md +1 -1
- package/skills/luckiest-offers/SKILL.md +1 -1
- package/skills/luckiest-onboarding/SKILL.md +1 -1
- package/skills/luckiest-paywalls/SKILL.md +1 -1
- package/skills/luckiest-popups/SKILL.md +1 -1
- package/skills/luckiest-pricing/SKILL.md +1 -1
- package/skills/luckiest-product-marketing/SKILL.md +1 -1
- package/skills/luckiest-programmatic-seo/SKILL.md +1 -1
- package/skills/luckiest-prompt-rewrite/SKILL.md +1 -1
- package/skills/luckiest-prospecting/SKILL.md +1 -1
- package/skills/luckiest-public-relations/SKILL.md +1 -1
- package/skills/luckiest-referrals/SKILL.md +1 -1
- package/skills/luckiest-revops/SKILL.md +1 -1
- package/skills/luckiest-sales-enablement/SKILL.md +1 -1
- package/skills/luckiest-schema/SKILL.md +1 -1
- package/skills/luckiest-seo-audit/SKILL.md +1 -1
- package/skills/luckiest-session-handoff/SKILL.md +1 -1
- package/skills/luckiest-signup/SKILL.md +1 -1
- package/skills/luckiest-site-architecture/SKILL.md +1 -1
- package/skills/luckiest-sms/SKILL.md +1 -1
- package/skills/luckiest-social/SKILL.md +1 -1
- package/skills/luckiest-thinker/SKILL.md +1 -1
- package/skills/luckiest-trends/SKILL.md +1 -1
- package/skills/luckiest-video/SKILL.md +1 -1
- package/skills/luckiest-website-cloner/ATTRIBUTION.md +29 -0
- package/skills/luckiest-website-cloner/CHANGELOG.md +8 -0
- package/skills/luckiest-website-cloner/LICENSE +21 -0
- package/skills/luckiest-website-cloner/SKILL.md +289 -0
- package/skills/luckiest-website-cloner/references/builtin-browser-recipes.md +74 -0
- package/skills/luckiest-website-cloner/references/compositing.md +65 -0
- package/skills/luckiest-website-cloner/references/fidelity-fast-path.md +92 -0
- package/skills/luckiest-website-cloner/references/playwright-cli-recipes.md +68 -0
- package/skills/luckiest-website-cloner/references/teardown.md +142 -0
- package/skills/luckiest-website-cloner/references/visual-qa.md +102 -0
- package/skills/luckiest-website-cloner/scripts/build-bundle.cjs +12 -0
- package/skills/luckiest-website-cloner/scripts/motion-probe.js +423 -0
- package/skills/luckiest-website-cloner/scripts/surface-map.js +392 -0
- package/skills/luckiest-website-cloner/scripts/tokens-probe.js +178 -0
- package/skills/luckiest-website-cloner-dom/ATTRIBUTION.md +4 -0
- package/skills/luckiest-website-cloner-dom/CHANGELOG.md +8 -0
- package/skills/luckiest-website-cloner-dom/LICENSE +21 -0
- package/skills/luckiest-website-cloner-dom/SKILL.md +170 -0
- package/skills/luckiest-website-cloner-dom/references/asset-resolution.md +93 -0
- package/skills/luckiest-website-cloner-dom/references/interaction-fingerprints.md +85 -0
- package/skills/luckiest-website-cloner-remix/ATTRIBUTION.md +4 -0
- package/skills/luckiest-website-cloner-remix/CHANGELOG.md +8 -0
- package/skills/luckiest-website-cloner-remix/LICENSE +21 -0
- package/skills/luckiest-website-cloner-remix/SKILL.md +202 -0
- package/skills/luckiest-website-cloner-remix/references/directions.md +82 -0
- package/skills/luckiest-website-cloner-remix/references/reskin.md +84 -0
- package/skills/luckiest-website-cloner-remix/references/tweak-panel.md +72 -0
- package/skills/luckiest-website-cloner-remix/scripts/apply-overrides.cjs +105 -0
- package/skills/luckiest-website-cloner-remix/scripts/gallery.cjs +71 -0
- package/skills/luckiest-website-cloner-remix/scripts/tokenize-css.cjs +127 -0
- package/skills/luckiest-website-cloner-remix/scripts/tweak-panel.js +169 -0
- package/skills/luckiest-website-cloner-shaders/ATTRIBUTION.md +11 -0
- package/skills/luckiest-website-cloner-shaders/CHANGELOG.md +8 -0
- package/skills/luckiest-website-cloner-shaders/LICENSE +21 -0
- package/skills/luckiest-website-cloner-shaders/SKILL.md +129 -0
- package/skills/luckiest-website-cloner-shaders/references/capture-backends.md +89 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/SKILL.md +123 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/capture-backends.md +201 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/evidence-policy.md +93 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/operating-contract.md +82 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/qa-failure-policy.md +100 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/recon-kernel.md +206 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/replay-policy.md +145 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/shaders-com.md +212 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/source-analysis.md +112 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/surface-discovery.md +113 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/target-lock.md +205 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/three-shader-reconstruction.md +155 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/tool-capability-matrix.md +57 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/references/unicorn-studio.md +387 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/scripts/fetch-rendered-dom.mjs +178 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/scripts/scan-bundle.sh +80 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/templates/extraction-report.md +41 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/templates/known-gaps.md +14 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/templates/qa-report.md +74 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/templates/replay-manifest.json +147 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/templates/run-state.json +75 -0
- package/skills/luckiest-website-cloner-shaders/vendor/web-shader-extractor/templates/scout-card.json +106 -0
package/package.json
CHANGED
|
@@ -14,7 +14,7 @@ You are an expert in experimentation and A/B testing. Your goal is to help desig
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "dbff1677-8ede-4016-b52d-21db4aec7801", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-ab-testing", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill drives an expert performance creative strategist. The goal is to gene
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "9ce2c363-e379-45f7-b7d2-c398992ed30f", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-ad-creative", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill acts as an expert performance marketer focused on paid customer acqui
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "5fb8bb24-2d95-4a8e-8778-e403be972d7a", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-ads", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -24,7 +24,7 @@ Two things make the council different from a generic "give me feedback" prompt:
|
|
|
24
24
|
## Staying current
|
|
25
25
|
|
|
26
26
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
27
|
-
`{ listingId: "
|
|
27
|
+
`{ listingId: "dd39cba2-1e8a-4eba-907e-a086547a5f5c", installedSemver: "1.3.0" }`.
|
|
28
28
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing further if `upToDate: true`.
|
|
29
29
|
|
|
30
30
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-advisors", skill_version: "1.3.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,7 +19,7 @@ source — and to say, sharply, what to change.
|
|
|
19
19
|
|
|
20
20
|
## Staying current
|
|
21
21
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
22
|
-
`{ listingId: "
|
|
22
|
+
`{ listingId: "4e85fafc-177c-4ecf-b4b5-18508c0cb492", installedSemver: "1.1.0" }`.
|
|
23
23
|
If it returns `upToDate: false`, surface the `notice` to the user once, then
|
|
24
24
|
continue. Do nothing further if `upToDate: true`. Never block the audit on this
|
|
25
25
|
check — if the tool is unavailable, proceed.
|
|
@@ -14,7 +14,7 @@ This skill provides expertise in AI search optimization — the practice of maki
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "658062d1-7ff2-498f-a355-0ed2e2a516fb", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-ai-seo", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill helps set up analytics tracking and measurement that provides actiona
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "f1cb04a5-ae1d-44bd-90c3-7c267e04a9eb", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-analytics", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -12,7 +12,7 @@ metadata:
|
|
|
12
12
|
|
|
13
13
|
## Staying current
|
|
14
14
|
|
|
15
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
15
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "e6e130cc-12b7-4873-a858-0c1f37602164", 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.
|
|
16
16
|
|
|
17
17
|
Analyze App Store and Google Play listings against ASO best practices. Fetches
|
|
18
18
|
live listing data, scores metadata, visuals, and ratings, then produces a
|
|
@@ -14,7 +14,7 @@ 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: "
|
|
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.
|
|
18
18
|
|
|
19
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.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ Acts as a co-marketing strategist who helps SaaS companies identify ideal partne
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP `check_updates` tool with `{ listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP `check_updates` tool with `{ listingId: "cb4293c1-e599-4621-b5b0-18c41b8224f4", installedSemver: "1.1.0" }`. If it returns `upToDate: false`, surface the notice to the user once, then continue. Do nothing further if `upToDate: true`. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-co-marketing", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -71,7 +71,7 @@ User instructions (CLAUDE.md, AGENTS.md, GEMINI.md, etc, direct requests) take p
|
|
|
71
71
|
## Staying current
|
|
72
72
|
|
|
73
73
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
74
|
-
`{ listingId: "
|
|
74
|
+
`{ listingId: "3cb8177a-23bc-413a-9055-c419329096bb", installedSemver: "1.1.0" }`.
|
|
75
75
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
76
76
|
|
|
77
77
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder", 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.
|
|
@@ -167,7 +167,7 @@ If they agree to the companion, read the detailed guide before proceeding:
|
|
|
167
167
|
## Staying current
|
|
168
168
|
|
|
169
169
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
170
|
-
`{ listingId: "
|
|
170
|
+
`{ listingId: "a11fbe77-8a4e-47b7-b3f2-b70657c8e7f3", installedSemver: "1.1.0" }`.
|
|
171
171
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
172
172
|
|
|
173
173
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-brainstorming", 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.
|
|
@@ -92,7 +92,7 @@ shipping.
|
|
|
92
92
|
## Staying current
|
|
93
93
|
|
|
94
94
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
95
|
-
`{ listingId: "
|
|
95
|
+
`{ listingId: "de4ae0d9-e7fd-4b6d-900a-2b921f7f019f", installedSemver: "1.1.0" }`.
|
|
96
96
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
97
97
|
|
|
98
98
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-consistency", 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.
|
|
@@ -109,7 +109,7 @@ The constitution is only worth having if it is actually checked.
|
|
|
109
109
|
## Staying current
|
|
110
110
|
|
|
111
111
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
112
|
-
`{ listingId: "
|
|
112
|
+
`{ listingId: "6b0d7046-d85f-43b6-be52-d008fa229b99", installedSemver: "1.1.0" }`.
|
|
113
113
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
114
114
|
|
|
115
115
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-constitution", 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.
|
|
@@ -303,7 +303,7 @@ From debugging sessions:
|
|
|
303
303
|
## Staying current
|
|
304
304
|
|
|
305
305
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
306
|
-
`{ listingId: "
|
|
306
|
+
`{ listingId: "5b9728f7-04b0-4be9-9962-3453d4a11d9a", installedSemver: "1.1.0" }`.
|
|
307
307
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
308
308
|
|
|
309
309
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-debugging", 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.
|
|
@@ -192,7 +192,7 @@ From debugging session (2025-10-03):
|
|
|
192
192
|
## Staying current
|
|
193
193
|
|
|
194
194
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
195
|
-
`{ listingId: "
|
|
195
|
+
`{ listingId: "1a542769-81ed-4ad0-b9ac-a41668d02991", installedSemver: "1.1.0" }`.
|
|
196
196
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
197
197
|
|
|
198
198
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-dispatching-parallel-agents", 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.
|
|
@@ -77,7 +77,7 @@ After all tasks complete and verified:
|
|
|
77
77
|
## Staying current
|
|
78
78
|
|
|
79
79
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
80
|
-
`{ listingId: "
|
|
80
|
+
`{ listingId: "1a5e6d68-f1e2-4c4b-99dc-2de5b829660b", installedSemver: "1.1.0" }`.
|
|
81
81
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
82
82
|
|
|
83
83
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-executing-plans", 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.
|
|
@@ -252,7 +252,7 @@ git worktree prune # Self-healing: clean up any stale registrations
|
|
|
252
252
|
## Staying current
|
|
253
253
|
|
|
254
254
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
255
|
-
`{ listingId: "
|
|
255
|
+
`{ listingId: "ec07ca19-9db4-4092-bb85-3f0204897a67", installedSemver: "1.1.0" }`.
|
|
256
256
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
257
257
|
|
|
258
258
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-finishing-a-branch", 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.
|
|
@@ -209,7 +209,7 @@ Ready to implement <feature-name>
|
|
|
209
209
|
## Staying current
|
|
210
210
|
|
|
211
211
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
212
|
-
`{ listingId: "
|
|
212
|
+
`{ listingId: "5d932bcb-3dab-4b66-915e-4dffbec3ef59", installedSemver: "1.1.0" }`.
|
|
213
213
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
214
214
|
|
|
215
215
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-git-worktrees", 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.
|
|
@@ -51,7 +51,7 @@ careful). Two protections, independently controllable:
|
|
|
51
51
|
## Staying current
|
|
52
52
|
|
|
53
53
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
54
|
-
`{ listingId: "
|
|
54
|
+
`{ listingId: "b5c418c2-ccae-4d25-bb50-45ddad56d121", installedSemver: "1.1.0" }`. If it returns
|
|
55
55
|
`upToDate: false`, surface the `notice`. Do nothing if `upToDate: true`.
|
|
56
56
|
|
|
57
57
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-guard", 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.
|
|
@@ -37,7 +37,7 @@ fix and re-verify. Two outcomes:
|
|
|
37
37
|
## Staying current
|
|
38
38
|
|
|
39
39
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
40
|
-
`{ listingId: "
|
|
40
|
+
`{ listingId: "9f4d60ff-052b-49b6-8125-dd93159db07d", installedSemver: "1.1.0" }`. If it returns
|
|
41
41
|
`upToDate: false`, surface the `notice`. Do nothing if `upToDate: true`.
|
|
42
42
|
|
|
43
43
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-qa", 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.
|
|
@@ -220,7 +220,7 @@ No performative agreement. Technical rigor always.
|
|
|
220
220
|
## Staying current
|
|
221
221
|
|
|
222
222
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
223
|
-
`{ listingId: "
|
|
223
|
+
`{ listingId: "3ebf2650-feb3-4682-b6de-d47a0558bbf8", installedSemver: "1.1.0" }`.
|
|
224
224
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
225
225
|
|
|
226
226
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-receiving-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.
|
|
@@ -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: "
|
|
115
|
+
`{ listingId: "010a144f-99ed-4b6e-a43e-9ab51574c45b", installedSemver: "1.1.0" }`.
|
|
116
116
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
117
117
|
|
|
118
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.
|
|
@@ -35,7 +35,7 @@ they say "deploy", "land", or "ship to production".
|
|
|
35
35
|
## Staying current
|
|
36
36
|
|
|
37
37
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
38
|
-
`{ listingId: "
|
|
38
|
+
`{ listingId: "29b23fab-2386-4547-a8f3-b60583dda01d", installedSemver: "1.1.0" }`. If it returns
|
|
39
39
|
`upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
40
40
|
|
|
41
41
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-shipping", 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.
|
|
@@ -433,7 +433,7 @@ is unavailable.
|
|
|
433
433
|
## Staying current
|
|
434
434
|
|
|
435
435
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
436
|
-
`{ listingId: "
|
|
436
|
+
`{ listingId: "7b994606-94cb-45a9-876d-1b5ecb856596", installedSemver: "1.1.0" }`.
|
|
437
437
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
438
438
|
|
|
439
439
|
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.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.
|
|
@@ -378,7 +378,7 @@ No exceptions without your human partner's permission.
|
|
|
378
378
|
## Staying current
|
|
379
379
|
|
|
380
380
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
381
|
-
`{ listingId: "
|
|
381
|
+
`{ listingId: "5f41680a-1863-466e-83b5-a9c3c4a365d6", installedSemver: "1.1.0" }`.
|
|
382
382
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
383
383
|
|
|
384
384
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-tdd", 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.
|
|
@@ -146,7 +146,7 @@ This is non-negotiable.
|
|
|
146
146
|
## Staying current
|
|
147
147
|
|
|
148
148
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
149
|
-
`{ listingId: "
|
|
149
|
+
`{ listingId: "73549bc3-ff71-4df8-82e1-8f52b1238cae", installedSemver: "1.1.0" }`.
|
|
150
150
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
151
151
|
|
|
152
152
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-verification", 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.
|
|
@@ -185,7 +185,7 @@ After saving the plan, you may offer: "Want to share this plan with your tribe v
|
|
|
185
185
|
## Staying current
|
|
186
186
|
|
|
187
187
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
188
|
-
`{ listingId: "
|
|
188
|
+
`{ listingId: "6d9ecc50-d84a-44ef-b6d6-6425affe0fca", installedSemver: "1.1.0" }`.
|
|
189
189
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
190
190
|
|
|
191
191
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-writing-plans", 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.
|
|
@@ -696,7 +696,7 @@ If you follow TDD for code, follow it for skills. It's the same discipline appli
|
|
|
696
696
|
## Staying current
|
|
697
697
|
|
|
698
698
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
699
|
-
`{ listingId: "
|
|
699
|
+
`{ listingId: "edc6a229-ad24-4633-a72d-cfe1812c7203", installedSemver: "1.1.0" }`.
|
|
700
700
|
If it returns `upToDate: false`, surface the `notice` to the user. Do nothing if `upToDate: true`.
|
|
701
701
|
|
|
702
702
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-coder-writing-skills", 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.
|
|
@@ -14,7 +14,7 @@ The assistant acts as an expert cold email writer. The goal is to write emails t
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "0a9558ab-50e1-44fd-bf5a-63661542c9c2", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-cold-email", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ The agent acts as an expert community builder and community-led growth strategis
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "1bc06a93-b44f-48d6-8f0f-5a5d92580244", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-community-marketing", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ The assistant acts as an expert competitive intelligence analyst. The goal is to
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "ba5cb7e6-afc1-4035-a3d4-ce5b4229535f", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-competitor-profiling", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill builds competitor comparison and alternative pages that rank for comp
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "60fdbf13-4d85-49b9-9579-0776d6da0e7e", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-competitors", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ The agent acts as a content strategist. The goal is to plan content that drives
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "72a19125-282a-4954-b958-4d71934ce77f", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-content-strategy", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill acts as an expert copy editor specializing in marketing and conversio
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "8f895dc3-9d85-4b40-9c80-2b1d396bc579", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-copy-editing", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill drives an expert conversion copywriter. The goal is to write marketin
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "56b1b8dd-a19e-4056-89c1-c476aefcf08b", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-copywriting", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill analyzes marketing pages and produces actionable recommendations to i
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "5273389c-5f29-4e4e-9068-03e7c3fe5f4c", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-cro", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -14,7 +14,7 @@ This skill acts as an expert customer researcher. Its goal is to help uncover wh
|
|
|
14
14
|
|
|
15
15
|
## Staying current
|
|
16
16
|
|
|
17
|
-
On activation, call the Luckiest MCP check_updates tool with { listingId: "
|
|
17
|
+
On activation, call the Luckiest MCP check_updates tool with { listingId: "8e289fdd-4950-4503-ae10-c1426e861a12", installedSemver: "1.1.0" }. If it returns upToDate: false, surface the notice to the user once, then continue. Do nothing further if upToDate: true. Never block on this check — if the tool is unavailable, proceed.
|
|
18
18
|
|
|
19
19
|
When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-customer-research", skill_version: "1.1.0", matched: true, success: <true if the skill completed, false otherwise> }. Metadata only, never prompt text. Never block on it — if the tool is unavailable, skip silently.
|
|
20
20
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Attribution
|
|
2
|
+
|
|
3
|
+
This skill, `luckiest-design-website`, is the Luckiest edition of the original
|
|
4
|
+
skill **"scrollcraft"** from the **scroll-craft** project
|
|
5
|
+
(https://github.com/nateherkai/scroll-craft) by **Nate Herk**
|
|
6
|
+
(https://github.com/nateherkai), released under the MIT License.
|
|
7
|
+
|
|
8
|
+
The original work has been rebranded, security-reviewed, and improved. The
|
|
9
|
+
engine (`engine/scrollcraft.js`, `engine/scrollcraft.css`), the scripts, the
|
|
10
|
+
`SCROLLCRAFT_*` environment variables and the `.scrollcraft.json` workspace file
|
|
11
|
+
keep their original names so the upstream mechanism runs unchanged. The
|
|
12
|
+
original copyright and license are preserved verbatim below and in `LICENSE`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Original License (verbatim)
|
|
17
|
+
|
|
18
|
+
MIT License
|
|
19
|
+
|
|
20
|
+
Copyright (c) 2026 Nate Herk
|
|
21
|
+
|
|
22
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
23
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
24
|
+
in the Software without restriction, including without limitation the rights
|
|
25
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
26
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
27
|
+
furnished to do so, subject to the following conditions:
|
|
28
|
+
|
|
29
|
+
The above copyright notice and this permission notice shall be included in all
|
|
30
|
+
copies or substantial portions of the Software.
|
|
31
|
+
|
|
32
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
33
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
34
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
35
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
36
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
37
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
38
|
+
SOFTWARE.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Changelog — luckiest-design-website
|
|
2
|
+
|
|
3
|
+
## 1.0.0 — 2026-09-04
|
|
4
|
+
Rebranded from scrollcraft (scroll-craft by Nate Herk, MIT, upstream v0.2.0).
|
|
5
|
+
|
|
6
|
+
### Security pass
|
|
7
|
+
- PASS. 29 files scanned. One low advisory, now documented in the skill body:
|
|
8
|
+
`scripts/kie.mjs` reads `KIE_AI_API_KEY` from env or the nearest `.env` and
|
|
9
|
+
sends it as a bearer token to two kie.ai hosts (`api.kie.ai` and the upload
|
|
10
|
+
host `kieai.redpandaai.co`). Only the `--ref` image the user names is
|
|
11
|
+
uploaded. Both hosts are central to the skill's stated purpose. The skill
|
|
12
|
+
now tells the agent to reference the env var name only and never ask for the
|
|
13
|
+
key in chat.
|
|
14
|
+
|
|
15
|
+
### Best-practices pass
|
|
16
|
+
- SKILL.md rewritten from 415 to 372 lines, third person, each reference
|
|
17
|
+
named with when to load it. `license`, `metadata.version`, and
|
|
18
|
+
`metadata.listing_id` added. `allowed-tools` kept minimal (Bash is required
|
|
19
|
+
for the doctor, encode, serve and shoot scripts).
|
|
20
|
+
- Upstream `CHANGELOG.md` preserved as `UPSTREAM-CHANGELOG.md`; upstream
|
|
21
|
+
`EXAMPLES.md` preserved as `references/registry-examples.md`.
|
|
22
|
+
- Engine, scripts, env vars and workspace file names kept verbatim so the
|
|
23
|
+
upstream mechanism runs unchanged. Prose self-references rebranded.
|
|
24
|
+
- `scripts/doctor.mjs`: ffmpeg hint now names the macOS and Linux installs
|
|
25
|
+
next to the Windows one. The preflight was run on macOS during this rebrand
|
|
26
|
+
and works; upstream said it had only ever been run on Windows.
|
|
27
|
+
|
|
28
|
+
### Improve pass (/refract)
|
|
29
|
+
- Interview question 9: a dollar spend cap for generated assets. Zero routes
|
|
30
|
+
the build to the user's own footage plus CSS-only devices. The source had a
|
|
31
|
+
first-class no-spend route but never asked for the cap up front.
|
|
32
|
+
- CSS-first device rule: `reveal`, `parallax`, `in` and `drift` run on
|
|
33
|
+
`animation-timeline: scroll()` / `view()` behind `@supports`, with the engine
|
|
34
|
+
as fallback; the engine keeps `scrub`, `pin`, `pan` and `--sc-p` consumers.
|
|
35
|
+
- Performance budget in the verify step: LCP under 2.5s on the hero poster,
|
|
36
|
+
INP under 200ms while scrubbing, and a mobile poster-plus-CSS fallback for
|
|
37
|
+
any act that cannot hold it.
|
|
38
|
+
- New triggers: "rebuild my landing page as an experience", "this looks
|
|
39
|
+
AI-made", "design my website".
|
|
40
|
+
- Copy is now a step, not an afterthought: `luckiest-copywriting` writes the
|
|
41
|
+
act headlines, belief sentence and CTA label; `luckiest-copywriting-humanize`
|
|
42
|
+
is the finishing pass.
|
|
43
|
+
- Head metadata and one JSON-LD block via `luckiest-schema`; an event plan
|
|
44
|
+
(act reached, peak reached, CTA click) via `luckiest-analytics`. The peak
|
|
45
|
+
reach rate is named as the page's success metric.
|
|
46
|
+
- `luckiest-extract-design-system` seeds tokens from an existing site when no
|
|
47
|
+
brand kit exists. `luckiest-image` and `luckiest-video` are offered as asset
|
|
48
|
+
generators alongside kie.ai. `luckiest-cro` reviews the close act.
|
|
49
|
+
- Hard rules extended with the AI-slop tells the trend pass surfaced: uniform
|
|
50
|
+
radius and card heights, Inter or system font as the display face, blue-purple
|
|
51
|
+
gradients, "Build the future" class headlines, and the INP ship-blocker.
|
|
52
|
+
|
|
53
|
+
### Network hooks
|
|
54
|
+
- Assist-request: when the human is unreachable, offer to raise an
|
|
55
|
+
assist-request to the tribe before self-authoring the brief.
|
|
56
|
+
- Share-with-tribe: after the report, OFFER to share the fingerprint row and
|
|
57
|
+
contact sheet only. Never BRIEF.md, brand assets, client names or copy.
|
|
58
|
+
- Pick-up-where-they-left: offer to seed a follow-up Luckiest plan (events
|
|
59
|
+
wired, real-phone check, one A/B test on the peak or close).
|
|
60
|
+
|
|
61
|
+
### Trend pass (/newsjack + /luckiest-trends)
|
|
62
|
+
- The luckiest-trends engine ran with a query plan but timed out on YouTube
|
|
63
|
+
transcript fetching before emitting evidence and saved no output. The
|
|
64
|
+
newsjack CLI is not installed. Signals below came from host web search on
|
|
65
|
+
2026-09-04 and are best-effort on freshness.
|
|
66
|
+
- CSS scroll-driven animations (`animation-timeline: scroll()` / `view()`) at
|
|
67
|
+
roughly 84% global support, compositor-driven, Chrome 115+, Firefox 132+,
|
|
68
|
+
Safari 18+. Acted on as the CSS-first device rule. Sources: MDN CSS
|
|
69
|
+
scroll-driven animations guide; CSSAWWWARDS "Scroll Timelines Guide (2026)";
|
|
70
|
+
dev.to "Creating Complex Scroll-driven Animations with Pure CSS in 2026".
|
|
71
|
+
Retrieved 2026-09-04.
|
|
72
|
+
- Safari 26.2 (released 2025-12-12) ships LCP and the Event Timing API behind
|
|
73
|
+
INP, so iOS can now be measured; INP is the most-failed Core Web Vital
|
|
74
|
+
(about 43% of sites over 200ms) and scrollytelling video scrub is a known
|
|
75
|
+
offender on phones. Acted on as the performance budget and the INP
|
|
76
|
+
ship-blocker. Sources: DebugBear "Firefox And Safari Now Support Two Core
|
|
77
|
+
Web Vitals Metrics"; RUMvision "Safari catching up: INP and LCP in 26.2";
|
|
78
|
+
scrollytelling.ai examples review. Retrieved 2026-09-04.
|
|
79
|
+
- "AI slop" web design is being named by its tells: Inter or system fonts,
|
|
80
|
+
blue-purple gradients, "Build the future" headlines, uniform 16px radius,
|
|
81
|
+
identical card heights, distributional convergence. Acted on as new hard
|
|
82
|
+
rules and new triggers. Source: 925 Studios "AI Slop Web Design: Complete
|
|
83
|
+
Guide to Spotting and Fixing Generic Websites (2026)". Retrieved 2026-09-04.
|
|
84
|
+
|
|
85
|
+
### Thumbnail
|
|
86
|
+
- Routes to the `nodes` scene via "design" in the title (also "structure",
|
|
87
|
+
"design", "system" in the description). No hash fallback.
|
|
88
|
+
|
|
89
|
+
### Recommendations not implemented (next versions)
|
|
90
|
+
- R1. Ship a `scripts/vitals.mjs` that reads LCP and INP from the shoot run,
|
|
91
|
+
so the budget is measured by the harness rather than by hand. Small
|
|
92
|
+
Playwright addition to `shoot.mjs`.
|
|
93
|
+
- R2. Emit the CSS-first devices as a documented `engine/scrollcraft-css.css`
|
|
94
|
+
layer with `@supports` fallbacks, so builds do not hand-write the same
|
|
95
|
+
`animation-timeline` blocks.
|
|
96
|
+
- R3. Replace the kie.ai-only generator with a provider switch in `kie.mjs`
|
|
97
|
+
(kie.ai, fal, Replicate) so `luckiest-image` and `luckiest-video` routes
|
|
98
|
+
share the encode pipeline instead of ending at a file handoff.
|
|
99
|
+
- R4. A `--brand <dir>` flag on `workspace.mjs` that reads
|
|
100
|
+
`luckiest-extract-design-system` tokens straight into the `:root` block of
|
|
101
|
+
`template.html`.
|
|
102
|
+
- R5. An eval fixture: one recorded interview plus expected BRIEF.md, grammar
|
|
103
|
+
choice and gate result, so a regression in the procedure is caught without
|
|
104
|
+
a real build.
|