luckiest-co 1.0.65 → 1.0.66

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.
@@ -9,7 +9,7 @@
9
9
  "name": "luckiest",
10
10
  "source": "./",
11
11
  "description": "Plan, go, finish, plus bundled free Luckiest skills that work in Claude Code, web chat, and Cowork.",
12
- "version": "0.1.64",
12
+ "version": "0.1.65",
13
13
  "author": { "name": "Luckiest" }
14
14
  }
15
15
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "luckiest",
3
3
  "description": "Plan, go, finish. Guided planning, progress dashboards, and your luckiest.co tribe inside Claude Code.",
4
- "version": "0.1.64",
4
+ "version": "0.1.65",
5
5
  "author": { "name": "Luckiest" }
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "luckiest-co",
3
- "version": "1.0.65",
3
+ "version": "1.0.66",
4
4
  "description": "Luckiest for Claude Code: plan, go, finish. Your luckiest.co skills and tribe, inside Claude.",
5
5
  "bin": {
6
6
  "luckiest-co": "./bin/install.js"
@@ -1,5 +1,8 @@
1
1
  # Changelog — luckiest-ad-creative
2
2
 
3
+ ## 1.6.0 — 2026-11-10
4
+ - New sub-skill `luckiest-beauty-photography` owns Generating Ad Visuals for physical beauty products (product photo to campaign images with fidelity QA). Added a Sub-skills table.
5
+
3
6
  ## 1.5.1 — 2026-10-23
4
7
  - Removed dead `tools/` registry and integration links and the upstream `tools/clis` commands. The platforms stay as plain names: pull data via API, MCP, or CSV export.
5
8
 
@@ -3,7 +3,7 @@ name: ad-creative
3
3
  description: "Generates, iterates, and scales ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform, and iterates from real performance data. Use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' 'ad performance optimization,' 'write me some ads,' 'Facebook ad copy,' 'Google ad headlines,' 'LinkedIn ad text,' or 'I need more ad variations.' Use whenever someone needs to produce ad copy at scale or iterate on existing ads. For campaign strategy and targeting, see luckiest-ads. For landing page copy, see luckiest-copywriting."
4
4
  license: See ATTRIBUTION.md
5
5
  metadata:
6
- version: "1.5.1"
6
+ version: "1.6.0"
7
7
  listing_id: luckiest-ad-creative
8
8
  author: luckiest
9
9
  ---
@@ -14,9 +14,9 @@ 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: "9ce2c363-e379-45f7-b7d2-c398992ed30f", installedSemver: "1.5.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.
17
+ On activation, call the Luckiest MCP check_updates tool with { listingId: "9ce2c363-e379-45f7-b7d2-c398992ed30f", installedSemver: "1.6.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
- When the skill's work is done, call the Luckiest MCP report_usage tool once with { listing_id: "luckiest-ad-creative", skill_version: "1.5.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.
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.6.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
 
21
21
  ## Before Starting
22
22
 
@@ -143,8 +143,18 @@ When something is risky, deliver a compliant alternative alongside the flag rath
143
143
 
144
144
  ---
145
145
 
146
+ ## Sub-skills
147
+
148
+ | Step | Sub-skill | Owns |
149
+ |---|---|---|
150
+ | Generating Ad Visuals | `luckiest-beauty-photography` | Ad images for a physical beauty product (perfume, skincare, makeup) from the user's product photo: 3 concepts, 3 shots in A/B variants, product-fidelity QA, optional short video |
151
+
152
+ If a sub-skill is not installed, say so in one line and do its step with the rules in this skill's references.
153
+
146
154
  ## Generating Ad Visuals
147
155
 
156
+ **Beauty products:** when the ad is for a perfume, skincare, makeup, or other beauty product and the user has a product photo, use `luckiest-beauty-photography` for the visuals, then come back here for copy and platform specs.
157
+
148
158
  For image and video ad creative, use generative AI tools and code-based video rendering. See [references/generative-tools.md](references/generative-tools.md) for the complete guide covering:
149
159
 
150
160
  - **Image generation** — Nano Banana Pro (Gemini), Flux, Ideogram for static ad images
@@ -0,0 +1,2 @@
1
+ # Dev-only eval prompts; not needed at install time.
2
+ evals/
@@ -0,0 +1,17 @@
1
+ # Attribution
2
+
3
+ This skill is adapted from the "beauty-photography-master" skill
4
+ (`E-Commerce/beauty-photography`) in FancyAI's skills collection
5
+ (https://github.com/fancyai-official/skills) by FancyAI (fancyai-official),
6
+ used under the Apache License 2.0.
7
+
8
+ The original repository was deleted. This edition was built from commit
9
+ d3b0f0227a924ac4972cb993bc2895e598fede49 (2026-04-29), recovered from the
10
+ public fork https://github.com/DYAI2025/industry-skills, whose HEAD matches the
11
+ same commit in two other independent forks.
12
+
13
+ Modified by Luckiest: rewritten SKILL.md, adapted references, rewritten
14
+ compression script, generic eval prompts. See CHANGELOG.md for the full list.
15
+
16
+ The full license text is in LICENSE in this directory. Original copyright
17
+ notices are retained.
@@ -0,0 +1,80 @@
1
+ # Changelog — luckiest-beauty-photography
2
+
3
+ ## 1.0.0 — 2026-11-10
4
+ Rebranded from beauty-photography-master (FancyAI skills, Apache-2.0), commit
5
+ d3b0f022, recovered from fork DYAI2025/industry-skills after the original repo
6
+ was deleted.
7
+
8
+ ### Security pass
9
+ - PASS, 5 files. No network calls, credential reads, obfuscation, or hidden
10
+ Unicode. The bundled script reads local files only.
11
+ - Removed the "Keep Technical Details Private" rule, which made the agent
12
+ refuse the user's own questions about prompts, models, and settings with a
13
+ fixed sales line. The skill now answers plainly when asked. Same change in
14
+ `references/video-generation.md`.
15
+
16
+ ### Best-practices pass
17
+ - Rewrote the description: the source had empty trigger slots (", , , , ,")
18
+ left by stripped non-English triggers. New description covers skincare,
19
+ makeup, and sets, not only perfume.
20
+ - Moved `photography-styles.md` into `references/`. The body says which
21
+ section to load at which step.
22
+ - `scripts/compress_product_img.py` rewritten: docstring now matches the code
23
+ (JPEG 85, 145 KB cap, not "quality 100" and "1 MB"), clear error if Pillow
24
+ is missing, `--out-dir` (default system temp) instead of hardcoded `/tmp`.
25
+ - Eval prompts no longer name real brands. `evals/` is dev-only via
26
+ `.skillignore`.
27
+
28
+ ### Improve pass (/luckiest-thinker + /luckiest-research)
29
+ - Covers skincare tubes, jars, droppers, compacts, lipsticks, and multi-product
30
+ sets (one ID card per product, a hero product chosen).
31
+ - Channel aspect ratios up front (4:5, 9:16, 1:1, 16:9 or 3:2); generate at
32
+ the ratio rather than cropping.
33
+ - Named geometry QA checks: cap height, pump tiers, extra dip tube, fill line,
34
+ label scale, body width. After 2 failed tries, show the best one and name
35
+ the defect.
36
+ - Composite the real label or packshot over finals instead of shipping AI
37
+ label text.
38
+ - Model pick by risk (least-drift model by default, text and hands model only
39
+ when needed).
40
+ - Rights rule: only the user's own or client products. Real-brand campaigns in
41
+ the references are style study only.
42
+ - Texture shot option for skincare and makeup.
43
+ - Tool routing: generation uses the session's reference-image tool or
44
+ `luckiest-image` models. Multi-shot video hands off to
45
+ `luckiest-video-studio`. Art director section 3b applies to every prompt.
46
+
47
+ ### Network hook
48
+ - Share-with-tribe: offer to share the concept and prompt recipe (not the
49
+ user's unreleased product images) after delivery.
50
+
51
+ ### Sub-skill fit
52
+ - luckiest-ad-creative: owns the Generating Ad Visuals step for physical
53
+ beauty products. Parent bumped to 1.6.0, added to its `BUNDLES` entry.
54
+ - Checked and not a fit: luckiest-image (its product step is UI screenshots),
55
+ luckiest-brandkit (logo-on-merch mockups, not product campaigns).
56
+ - Listing `details.docs.complements` for both listings is still owed. It is set
57
+ when the listing is published.
58
+
59
+ ### Trend pass (/luckiest-trends + /luckiest-research + /newsjack-detector)
60
+ - Same-product fidelity test of image models: Nano Banana 2 drifted least,
61
+ GPT Image 2 grew the cap and widened the bottle, label words held better
62
+ than shape. Small sample. masonry.so/blog/ai-product-photo-fidelity-test,
63
+ updated 2026-10-27.
64
+ - Pennsylvania Act 99 of 2026 requires prominent disclosure on deceptive
65
+ AI-generated ad content, effective 2026-12-21. consumerfinancemonitor.com,
66
+ 2026-11-02, and whyy.org, 2026-11-09. Added a disclosure note at delivery.
67
+ - NAD warns beauty marketers about AI ads that overpromise. Citeline HBW
68
+ Insight, 2026-10-27. Added "no before/after or efficacy visuals".
69
+ - Product photographers report client "AI fatigue". r/productphotography,
70
+ 2026-10-30. Supports the art-director 3b realism default.
71
+ - Discarded: Dior holiday AI backlash (WWD, 2026-11-09), context only; other
72
+ newsjack candidates were off-domain.
73
+ - Ran: luckiest-research, luckiest-thinker, luckiest-trends (--days 30;
74
+ Reddit, HN, YouTube; X not enabled), newsjack-detector (quick ad-hoc
75
+ profile).
76
+
77
+ ### Thumbnail
78
+ - Routes to the `video` micrographic scene via "video" in the description.
79
+ There is no photo or image scene, so the card reads as video. A
80
+ /luckiest-micrographic task can add one later.
@@ -0,0 +1,176 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
@@ -0,0 +1,213 @@
1
+ ---
2
+ name: beauty-photography
3
+ description: >-
4
+ Turns a photo of a perfume, skincare, makeup, or other beauty product into a
5
+ luxury ad campaign: identifies the product and its materials, proposes 3
6
+ distinct creative concepts, generates 3 shots in 2 variants each with the
7
+ photo as the reference, checks every image against the real product (shape,
8
+ cap, glass, label), lets the user pick, and can turn a pick into a short
9
+ video ad. Sub-skill of luckiest-ad-creative for beauty product visuals.
10
+ Trigger on "perfume ad", "fragrance campaign", "beauty product photography",
11
+ "cosmetic ad", "skincare product shot", "make my bottle look luxury",
12
+ "product photo to ad", "lipstick campaign", "serum hero shot", or
13
+ "/luckiest-beauty-photography". For ad copy and platform specs use
14
+ luckiest-ad-creative. For general marketing images use luckiest-image. For a
15
+ full video edit use luckiest-video-studio.
16
+ argument-hint: "[product photo path] [style or channel]"
17
+ user-invocable: true
18
+ license: See ATTRIBUTION.md
19
+ metadata:
20
+ version: "1.0.0"
21
+ listing_id: luckiest-beauty-photography
22
+ author: luckiest
23
+ ---
24
+
25
+ # Beauty product campaign photography
26
+
27
+ A white-background product photo becomes a set of luxury campaign images that
28
+ still show the real product. The hard part is not the mood, it is fidelity: AI
29
+ image models swap caps, melt bottles, and invent labels. This skill puts the
30
+ product's real structure first and checks every image against it.
31
+
32
+ ## Staying current
33
+
34
+ On activation, call the Luckiest MCP `check_updates` tool with
35
+ `{ listingId: "luckiest-beauty-photography", installedSemver: "1.0.0" }`. If
36
+ `upToDate: false`, surface the `notice` once and continue. Never block on it.
37
+
38
+ When done, call `report_usage` once with
39
+ `{ listing_id: "luckiest-beauty-photography", skill_version: "1.0.0", matched: true, success: <true|false> }`.
40
+ Metadata only, never prompt text. Skip silently if unavailable.
41
+
42
+ ## Before starting
43
+
44
+ - **Inputs.** One product photo, ideally on white. If the user has several
45
+ angles, use all of them. If the file is too large for the Read tool, run
46
+ `python3 scripts/compress_product_img.py --images <path>` (needs Pillow) and
47
+ read the printed path.
48
+ - **Rights.** Make campaigns only for products the user owns, sells, or is
49
+ hired to shoot. The real-brand campaigns in `references/photography-styles.md`
50
+ are style study only. Do not put another brand's name or logo on the user's
51
+ product.
52
+ - **Channel.** Ask where the images run only if the user has not said. Generate
53
+ to that aspect ratio: 4:5 for Instagram feed, 9:16 for Stories, Reels, and
54
+ TikTok, 1:1 for marketplace listings, 16:9 or 3:2 for web heroes. Default 4:5.
55
+ - **Image tool.** Use a reference-image tool in this session (a connected image
56
+ MCP, or the models `luckiest-image` lists). It must accept the product photo
57
+ as a reference. Text-only generation cannot keep the product true. If no such
58
+ tool is available, say so and deliver the concepts and prompts only. Pick by
59
+ risk: in a same-product test (Masonry, updated 2026-10-27, small sample) Nano
60
+ Banana 2 changed the product least, while GPT Image 2 rendered new text and
61
+ hands best but grew the cap and widened the bottle. Default to the
62
+ least-drift model, and switch only for hand-held or new-text shots.
63
+ - **Look.** If `luckiest-video-studio-art-director` is installed, apply its
64
+ section 3b (Real, not generated) to every prompt. Skip its motion sections.
65
+
66
+ ## 1. Identify the product
67
+
68
+ Look at the photo and fill this card. List only the parts the product has.
69
+
70
+ | Attribute | Details |
71
+ |---|---|
72
+ | Brand and line | From the label, or "unbranded" |
73
+ | Category | Fragrance / skincare / makeup / hair / body / set |
74
+ | Container | Bottle, jar, tube, dropper, compact, stick, pump, palette |
75
+ | Material | Clear glass / frosted glass / faceted crystal / metal / ceramic / plastic / composite (name each part) |
76
+ | Silhouette | Exact geometry and proportions |
77
+ | Closure | Stopper, screw cap, snap cap, spray pump, dropper, press-down, magnetic |
78
+ | Part list | Every visible part |
79
+ | Product color | Liquid, cream, powder, or packaging color |
80
+ | Label | Placement, color, type style, and the exact words on it |
81
+ | Design language | The brand mood the packaging already signals |
82
+ | Size | e.g. 50 ml, 100 ml, 30 g jar, mini |
83
+
84
+ Material sets the lighting. Clear glass refracts and throws caustics. Frosted
85
+ glass and opaque packaging glow and scatter instead, so never prompt caustics
86
+ for them. Read `references/photography-styles.md` Section I for the product's
87
+ material only.
88
+
89
+ For a set of several products, fill one card per product and decide which one
90
+ is the hero.
91
+
92
+ ## 2. Propose 3 concepts
93
+
94
+ Read Sections VI (four commercial approaches), VII (fragrance-mood starting
95
+ points), and III (echo vs. contrast) of `references/photography-styles.md`.
96
+ For non-fragrance products, map the product's claim (hydrating, matte, glow,
97
+ clean, clinical) to the mood column instead of a scent family.
98
+
99
+ Fill the diversity matrix before writing any concept:
100
+
101
+ | Dimension | Concept 1 | Concept 2 | Concept 3 |
102
+ |---|---|---|---|
103
+ | Commercial approach | Botanical / Light & Shadow / Lifestyle / Abstract | | |
104
+ | Lighting family | Dark / Bright / Warm | | |
105
+ | Background tone | Light / Dark / Color / Textured | | |
106
+ | Color strategy | Echo / Contrast / Monochrome / Complementary | | |
107
+
108
+ Rules: at least 2 lighting families and 2 approaches across the 3, and at least
109
+ 1 contrast concept when the product's own mood is strong. If all 3 could be
110
+ frames from one shoot, revise before showing them. If the user gave a style up
111
+ front, honor it in at least one concept.
112
+
113
+ Write each concept as: title, one-line idea, approach and why, lighting (what
114
+ the light does on this material), set and props, palette, emotional tone, best
115
+ shot types. Ask the user to pick one or ask for changes.
116
+
117
+ ## 3. Generate the campaign
118
+
119
+ **Shot list.** Pick 3 shots for the chosen concept. Default Hero + Detail +
120
+ Environment. Other types: Flat lay (overhead editorial) and Artistic (cropped,
121
+ asymmetric). Skincare and makeup often want a Texture shot (swatch, smear, or
122
+ drop of the formula) in place of Detail.
123
+
124
+ **Prompts.** Read Section IV of `references/photography-styles.md` for prompt
125
+ wording. Each prompt states, in this order of effort:
126
+
127
+ 1. Scene, lighting behavior on this material, surface and props, palette
128
+ 2. Composition: shot type, angle, placement, depth of field
129
+ 3. A short named product description, e.g. "the frosted pink bottle with the
130
+ gold honeycomb cap". The reference image carries the structure, so do not
131
+ spend the prompt re-describing every part
132
+ 4. Fidelity line: keep the silhouette, closure, materials, label position, and
133
+ every visible part exactly as in the reference
134
+ 5. Style: high-end beauty campaign photography, real set, real light
135
+
136
+ Describe the visual result, not camera gear. Lens names and f-stops do not
137
+ change the output.
138
+
139
+ **Label text.** Models keep the label words more often than the product's
140
+ exact shape, but small text still drifts. Ask for the label "as in the
141
+ reference", never retype long label copy in the prompt. For any final the user
142
+ will publish, composite the real label, logo, or packshot over the generated
143
+ one rather than trusting generation.
144
+
145
+ **Generate.** 2 variants per shot, 6 images by default, in parallel. The user's
146
+ photo is the primary reference for every image. Extra official packshots may be
147
+ secondary references. Never let them override the user's photo.
148
+
149
+ **QA.** Before showing anything, compare each image to the product photo:
150
+
151
+ | Check | Fail when |
152
+ |---|---|
153
+ | Silhouette | Proportions, curves, or corners differ, or the body got wider |
154
+ | Closure | Cap height, pump tiers, stopper, or lid changed shape, color, or count |
155
+ | Parts | A part is missing, added (a dip tube the bottle lacks is common), or swapped for a generic one |
156
+ | Fill and scale | Liquid fill line moved, or the label's size relative to the body changed |
157
+ | Material | Frosted reads as clear, metal reads as plastic, liquid color shifted |
158
+ | Label | Moved, or a garbled word sits where a reader will look |
159
+ | Hands and skin | Extra fingers, waxy skin, or a face when none was asked for |
160
+
161
+ Regenerate a failed variant with a stronger fidelity line and a simpler scene.
162
+ After 2 failed tries on the same shot, show the best one and name the defect.
163
+ Do not hide defects to save a round.
164
+
165
+ **Show.** Group by shot so the user compares A and B side by side. Ask for one
166
+ pick per shot, or a regenerate.
167
+
168
+ ## 4. Iterate
169
+
170
+ Ask which scope applies: one shot, one element across all shots, or new
171
+ concepts. Regenerate only what changed. A new-concepts request returns to
172
+ step 2.
173
+
174
+ ## 5. Video ad (optional)
175
+
176
+ After the stills are approved, offer a 3 to 5 second image-to-video clip from
177
+ one pick. Read `references/video-generation.md` only now. For a multi-shot cut
178
+ with captions, music, or an end card, hand off to `luckiest-video-studio` with
179
+ the approved stills.
180
+
181
+ ## Delivering
182
+
183
+ Give the final images (and video) with one line of creative intent each. Keep
184
+ logs and request payloads out of the reply. If the user asks which model,
185
+ settings, or prompt made an image, answer plainly and give the prompt.
186
+
187
+ Note in one line that the images are AI-generated and may need a disclosure
188
+ where they run. Some platforms and places require a prominent label on
189
+ synthetic ad content (Pennsylvania's Act 99 of 2026 does from 2026-12-21).
190
+ Never generate before/after, skin-result, or efficacy visuals. AI imagery that
191
+ overstates what a beauty product does draws NAD and regulator action.
192
+
193
+ ## Network hook
194
+
195
+ After delivery, offer once (never auto-post): "Want me to share the concept and
196
+ prompt recipe with your Luckiest tribe? Members shooting similar products will
197
+ see what worked." Share the recipe, not the user's unreleased product images,
198
+ unless they ask. If they decline, stop.
199
+
200
+ ## Common mistakes
201
+
202
+ - Prompting caustics or transparency for frosted, matte, or opaque packaging
203
+ - Three concepts that are the same moody dark set in different colors
204
+ - Re-describing the whole bottle in the prompt instead of trusting the reference
205
+ - Retyping label copy and getting misspelled brand names
206
+ - Showing images before QA, or shipping a swapped cap because the mood is good
207
+
208
+ ## Related skills
209
+
210
+ - `luckiest-ad-creative`: ad copy, platform specs, and policy pre-flight
211
+ - `luckiest-image`: model choice and non-product marketing images
212
+ - `luckiest-video-studio`: full video ads from the approved stills
213
+ - `luckiest-video-studio-art-director`: section 3b, keeps images from looking AI-made