@aicopycoders/exodus 2026.6.2400

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/assets/references/awareness-framework.md +156 -0
  2. package/assets/references/cast-video.md +165 -0
  3. package/assets/references/copy-blocks.md +138 -0
  4. package/assets/references/creative-strategy.md +990 -0
  5. package/assets/references/editing-rules.md +81 -0
  6. package/assets/references/hook-quality-checklist.md +153 -0
  7. package/assets/references/iterations.md +73 -0
  8. package/assets/references/scrawls.md +483 -0
  9. package/assets/references/segments.md +79 -0
  10. package/assets/skills/exodus/SKILL.md +50 -0
  11. package/assets/skills/exodus-brand/SKILL.md +117 -0
  12. package/assets/skills/exodus-browse/SKILL.md +96 -0
  13. package/assets/skills/exodus-creative/SKILL.md +94 -0
  14. package/assets/skills/exodus-drive/SKILL.md +118 -0
  15. package/assets/skills/exodus-foundation/SKILL.md +170 -0
  16. package/assets/skills/exodus-genesis/SKILL.md +159 -0
  17. package/assets/skills/exodus-idea/SKILL.md +78 -0
  18. package/assets/skills/exodus-image/SKILL.md +224 -0
  19. package/assets/skills/exodus-meme/SKILL.md +183 -0
  20. package/assets/skills/exodus-primer/SKILL.md +145 -0
  21. package/assets/skills/exodus-strategist/SKILL.md +217 -0
  22. package/assets/skills/exodus-swipe/SKILL.md +85 -0
  23. package/assets/skills/exodus-template/SKILL.md +106 -0
  24. package/assets/skills/exodus-write/SKILL.md +157 -0
  25. package/assets/skills/genesis-bots/.env.example +12 -0
  26. package/assets/skills/genesis-bots/README.txt +29 -0
  27. package/assets/skills/genesis-bots/SKILL.md +219 -0
  28. package/assets/skills/genesis-bots/scripts/genesis-stream.mjs +307 -0
  29. package/assets/skills/genesis-bots/scripts/genesis-stream.py +220 -0
  30. package/dist/bin/exodus.d.ts +2 -0
  31. package/dist/bin/exodus.js +177 -0
  32. package/dist/commands/__tests__/genesis.hookgate.test.d.ts +1 -0
  33. package/dist/commands/__tests__/genesis.hookgate.test.js +12 -0
  34. package/dist/commands/brand.d.ts +24 -0
  35. package/dist/commands/brand.js +292 -0
  36. package/dist/commands/browse.d.ts +9 -0
  37. package/dist/commands/browse.js +132 -0
  38. package/dist/commands/creative.d.ts +2 -0
  39. package/dist/commands/creative.js +223 -0
  40. package/dist/commands/doctor.d.ts +21 -0
  41. package/dist/commands/doctor.js +590 -0
  42. package/dist/commands/drive.d.ts +2 -0
  43. package/dist/commands/drive.js +154 -0
  44. package/dist/commands/foundation.d.ts +2 -0
  45. package/dist/commands/foundation.js +468 -0
  46. package/dist/commands/genesis.d.ts +64 -0
  47. package/dist/commands/genesis.js +564 -0
  48. package/dist/commands/idea.d.ts +53 -0
  49. package/dist/commands/idea.js +333 -0
  50. package/dist/commands/image.d.ts +2 -0
  51. package/dist/commands/image.js +249 -0
  52. package/dist/commands/init.d.ts +13 -0
  53. package/dist/commands/init.js +70 -0
  54. package/dist/commands/keys.d.ts +2 -0
  55. package/dist/commands/keys.js +101 -0
  56. package/dist/commands/meme.d.ts +12 -0
  57. package/dist/commands/meme.js +272 -0
  58. package/dist/commands/migrate.d.ts +3 -0
  59. package/dist/commands/migrate.js +158 -0
  60. package/dist/commands/primer.d.ts +2 -0
  61. package/dist/commands/primer.js +540 -0
  62. package/dist/commands/read-doc.d.ts +3 -0
  63. package/dist/commands/read-doc.js +62 -0
  64. package/dist/commands/status.d.ts +6 -0
  65. package/dist/commands/status.js +205 -0
  66. package/dist/commands/swipe.d.ts +2 -0
  67. package/dist/commands/swipe.js +398 -0
  68. package/dist/commands/template.d.ts +2 -0
  69. package/dist/commands/template.js +225 -0
  70. package/dist/commands/whoami.d.ts +2 -0
  71. package/dist/commands/whoami.js +51 -0
  72. package/dist/lib/ad-library-write.d.ts +15 -0
  73. package/dist/lib/ad-library-write.js +67 -0
  74. package/dist/lib/assets.d.ts +3 -0
  75. package/dist/lib/assets.js +23 -0
  76. package/dist/lib/backend-hint.d.ts +2 -0
  77. package/dist/lib/backend-hint.js +22 -0
  78. package/dist/lib/cc-command.d.ts +1 -0
  79. package/dist/lib/cc-command.js +13 -0
  80. package/dist/lib/client.d.ts +23 -0
  81. package/dist/lib/client.js +213 -0
  82. package/dist/lib/format.d.ts +8 -0
  83. package/dist/lib/format.js +172 -0
  84. package/dist/lib/intel-format.d.ts +1 -0
  85. package/dist/lib/intel-format.js +38 -0
  86. package/dist/lib/keys-sync.d.ts +16 -0
  87. package/dist/lib/keys-sync.js +88 -0
  88. package/dist/lib/layout.d.ts +38 -0
  89. package/dist/lib/layout.js +153 -0
  90. package/dist/lib/load-env.d.ts +1 -0
  91. package/dist/lib/load-env.js +47 -0
  92. package/dist/lib/pixar-orchestrator-types.d.ts +54 -0
  93. package/dist/lib/pixar-orchestrator-types.js +1 -0
  94. package/dist/lib/poll.d.ts +14 -0
  95. package/dist/lib/poll.js +32 -0
  96. package/dist/lib/preflight.d.ts +18 -0
  97. package/dist/lib/preflight.js +56 -0
  98. package/dist/lib/prompts.d.ts +9 -0
  99. package/dist/lib/prompts.js +99 -0
  100. package/dist/lib/reel-write.d.ts +14 -0
  101. package/dist/lib/reel-write.js +59 -0
  102. package/dist/lib/release.d.ts +4 -0
  103. package/dist/lib/release.js +81 -0
  104. package/dist/lib/scaffold.d.ts +8 -0
  105. package/dist/lib/scaffold.js +67 -0
  106. package/dist/lib/scout-hydrate.d.ts +1 -0
  107. package/dist/lib/scout-hydrate.js +10 -0
  108. package/dist/lib/state.d.ts +6 -0
  109. package/dist/lib/state.js +49 -0
  110. package/dist/lib/template-constants.d.ts +4 -0
  111. package/dist/lib/template-constants.js +85 -0
  112. package/dist/lib/version.d.ts +1 -0
  113. package/dist/lib/version.js +19 -0
  114. package/package.json +30 -0
@@ -0,0 +1,483 @@
1
+ # SCRAWLS Pipeline Reference
2
+
3
+ > Comprehensive reference for building the SCRAWLS static image ad pipeline into Exodus.
4
+ > Compiled from the Creative Strategy Knowledge Base: Monday Gospels (Jan 5, Jan 12, Mar 16, Mar 23 2026), Creative Strategist Ascension Workshop (Day 3), meeting notes, and wiki concepts.
5
+
6
+ ---
7
+
8
+ ## What SCRAWLS Is
9
+
10
+ SCRAWLS is Luke Mills' proprietary framework for generating static image ad concepts, specifically for **unaware and problem-aware** audiences. It is the image counterpart to STORMING (which handles copy ideation).
11
+
12
+ The name is an acronym for 7 concept sources. The rule: **"Scrawl through every source before you generate a single image."**
13
+
14
+ SCRAWLS applies specifically to in-feed native static image ads -- ads designed to look like organic Facebook/Instagram content, not polished brand creative.
15
+
16
+ > **Where this sits in the v2 set.** SCRAWLS is the **native-static** branch of the Re-Skin
17
+ > knob in the iterations framework (`iterations.md`); templated and branded statics are the
18
+ > other two branches. The hooks/copy SCRAWLS derives from follow the Copy Blocks model
19
+ > (`copy-blocks.md`), and for the video equivalent of "swap the format to manufacture novelty"
20
+ > see the CAST grammar (`cast-video.md`). In Exodus you brief these renders through `image` →
21
+ > `creative` (native / copy-derived) and `template` (structured formats).
22
+
23
+ ---
24
+
25
+ ## Where SCRAWLS Fits in the System
26
+
27
+ Luke's system has two parallel tracks based on awareness level:
28
+
29
+ | Awareness Level | Copy Ideation | Image Ideation |
30
+ |----------------|--------------|----------------|
31
+ | Unaware / Problem Aware | STORMING | **SCRAWLS** |
32
+ | Solution Aware / Product Aware | STORMING | Standard Static Ad Types (21+ formats) |
33
+
34
+ **The awareness level should be auto-detected.** When an ad idea comes in, the system classifies it and routes to the right image pipeline. Luke was explicit about this in the April 20 meeting: "It should just do it automatically. The goal is when I get the idea, it looks -- is this unaware problem aware? Or is it solution aware, product aware? There's two buckets and it just automatically detects which one it is. And then uses the right primer."
35
+
36
+ ---
37
+
38
+ ## The 7 SCRAWLS Sources (Deep Detail)
39
+
40
+ ### S -- Swipe Mining
41
+
42
+ **What:** Find static image ads that are already spending money in the market or adjacent markets.
43
+
44
+ **Where to look:**
45
+ - Facebook Ad Library (direct competitors)
46
+ - AdSpy (broader market, essential when Ad Library doesn't surface health ads)
47
+ - Foreplay (discovery feature with filters: image, platform, language, recency, niche)
48
+ - Dummy Facebook/Instagram accounts (follow brands, let the algorithm serve you ads)
49
+ - App Spy Hero (affiliate ads)
50
+ - Anstrex (native ads)
51
+
52
+ **What to look for:** Non-branded accounts running native-looking statics. Accounts that look like regular people, not brands. These are the ones spending real money on direct response.
53
+
54
+ **Key principle from Luke:** "If you can only do one thing, swiping is better." Swiping is the highest-probability approach because something already proven in-market has a head start over any novel idea.
55
+
56
+ **Modular swiping (not wholesale):** Don't copy the whole ad. Break it into components using CASH (Concept, Angle, Style, Hook) and swipe individual elements. Swipe the CONCEPT from Ad A but use a different STYLE. Swipe the visual STYLE from Ad B but apply it to a different CONCEPT. This creates novel combinations while maintaining proven DNA.
57
+
58
+ **AdSpy search methods:**
59
+ - By brand name
60
+ - By keyword
61
+ - By URL
62
+ - Filters: static images only, likes threshold, language
63
+
64
+ **Data sources:** competitor ad libraries (Meta Ad Library) and high-engagement organic content (Instagram/TikTok).
65
+
66
+ ---
67
+
68
+ ### C -- Copy-Derived
69
+
70
+ **What:** Feed finished ad text into image concept generation. Let the copy inspire the visual.
71
+
72
+ **How:** Take the completed body copy for an ad and ask: "What images does this specific copy evoke?"
73
+
74
+ **Critical instruction:** Push twice. The first pass is always literal and boring. The first set of ideas will be obvious (product shots, generic lifestyle). Push past that to get concepts that are unexpected, visceral, metaphorical.
75
+
76
+ **Example from an example brand (March 23 Gospel):**
77
+ - Ad copy is about inflammation, electrical disconnection, rubber-soled shoes blocking the Earth's charge
78
+ - First-pass images might be: feet on grass, grounding sheet on bed (boring, literal)
79
+ - Pushed concepts: car battery with corroded terminals (metaphor for electrical disconnection), swollen ankles in compression socks on a La-Z-Boy (visceral reality of the audience), writing on body showing electrical pathways
80
+ - The car battery concept works because "the corrosion is visually gross -- something familiar rendered disgusting. Works as a perfect metaphor for electrical disconnection inside the body without ever saying a word about it. People post this exact photo when their car dies."
81
+
82
+ **Genesis bots for this step:** Universal Static Ad Idea Bot takes finished copy and generates image concepts.
83
+
84
+ ---
85
+
86
+ ### R -- Reptile Triggers
87
+
88
+ **What:** Run your concepts through 13 primal psychological triggers that bypass rational thinking and activate the reptilian brain. Each trigger creates an involuntary attention response.
89
+
90
+ **The 13 Triggers:**
91
+
92
+ | # | Trigger | Description | Examples |
93
+ |---|---------|-------------|----------|
94
+ | 1 | **Ultra-Real** | Facebook group photos, unpolished candids, hyper-specific real moments | Phone photos in bad lighting, grainy shots of real situations |
95
+ | 2 | **Bizarre** | Strange situations, WTF imagery, things that don't compute | Unexpected combinations, things that make you do a double-take |
96
+ | 3 | **Voyeur** | Screenshots of texts/DMs, private conversations, leaked moments | Text message screenshots, private group posts, "wasn't meant to be shared" |
97
+ | 4 | **Suffering** | Gripping lower back, rubbing temples, can't get out of bed | Physical expressions of pain that trigger empathy |
98
+ | 5 | **Gorey** | Medical close-ups, weird body parts, visceral imagery | Bloodshot eyes, corroded car batteries, close-ups of skin conditions |
99
+ | 6 | **Sexual** | Suggestive poses, attractive people, subtle heat | "Sexy grandma" concept from an example brand |
100
+ | 7 | **Primal Fear** | Danger signals, alarming visuals, something feels wrong | Warning signs, alarms, visuals that trigger fight-or-flight |
101
+ | 8 | **Odd Contrast** | Two things that don't belong together, jarring pairings | Unexpected juxtaposition (was originally called "Inside Joke" but expanded) |
102
+ | 9 | **Inside Joke** | Niche-specific imagery, tribal knowledge, stuff only they recognize | Things the target audience would instantly identify with |
103
+ | 10 | **Time Warp** | Vintage photos, old newspaper clippings, historical imagery | Historical photos, sepia-toned images, "remember when" visuals |
104
+ | 11 | **Victory Lap** | Aspirational outcome, transformation moment, life on the other side | Active seniors, before/after moments, celebrations |
105
+ | 12 | **Selfie** | Demographic reflected back, "that's literally me," age/lifestyle match | People who look exactly like the target audience in their natural habitat |
106
+ | 13 | **Uncanny Objects** | Weird fruits, strange foods, objects that feel off | Objects that look slightly wrong, unusual shapes, things that feel "off" |
107
+
108
+ **Top 5 Most Reliable (Luke's ranking):**
109
+ 1. Bizarre
110
+ 2. Ultra-Real
111
+ 3. Gorey
112
+ 4. Sexual/Hot
113
+ 5. Niche-Specific (Inside Joke)
114
+
115
+ **How to apply:** Take any concept and run it through each trigger. Not all will apply, but some will transform a bland concept into something vicious. The Reptile Trigger step is "where concepts get vicious."
116
+
117
+ **Genesis bots:** 13 Reptile Triggers Bot generates reptile-trigger-enhanced prompts from ad concepts.
118
+
119
+ ---
120
+
121
+ ### A -- Audience Language
122
+
123
+ **What:** Mine real customer language for visual scenes. Real people describe their reality in vivid, specific, visual terms that make perfect image concepts.
124
+
125
+ **Where to mine:**
126
+ - Ad comments (from winning ads)
127
+ - Amazon reviews
128
+ - Facebook group posts
129
+ - Testimonials
130
+ - Customer support tickets
131
+ - Reddit threads
132
+
133
+ **The key insight:** Customers describe real scenes in their own words. These descriptions are already proven to resonate because they come from the audience itself.
134
+
135
+ **Example:** "I was white-knuckling the toilet seat" -- that's an instant image concept. Someone gripping a toilet seat in desperation. It's visceral, real, and immediately understood by the audience.
136
+
137
+ **Other examples from an example brand:**
138
+ - "Yes, I tried to copper wire duct tape..."
139
+ - "Use direct metal to skin contact strap, connected to same ground"
140
+ - "Piece of silver in water"
141
+ - These are real customer comments that reveal visual concepts: copper/duct tape rigs, DIY grounding attempts
142
+
143
+ **Data sources:** ad-comment scraping and analysis, plus prior winning-ad data (loopback).
144
+
145
+ ---
146
+
147
+ ### W -- Wild Sourcing
148
+
149
+ **What:** Find real native photos from the wild internet. High-engagement organic posts that are proven scroll-stoppers.
150
+
151
+ **Where to look:**
152
+ - Reddit (search by niche keywords + objects from your concepts)
153
+ - Google Images (reverse image search, keyword search)
154
+ - Facebook groups (the less polished, the better)
155
+ - TikTok/Instagram (look for organic posts with outsized engagement)
156
+
157
+ **What makes this different from Swipe Mining:** Swipe Mining looks at paid ads. Wild Sourcing looks at organic content that got outsized engagement. These images weren't designed as ads -- they're real moments that stopped people's scroll organically.
158
+
159
+ **Search strategy:** Use niche keywords + objects that came up in your concepts. If you generated a concept about "corroded car battery," search Reddit and Google Images for exactly that. Find the most visceral, real-looking version.
160
+
161
+ **Why it works:** Real native photos trigger the Ultra-Real reptile trigger. They look like something a friend posted, not something a brand made. This is the core of "in-feed native" creative.
162
+
163
+ ---
164
+
165
+ ### L -- Loopback
166
+
167
+ **What:** Feed winners back into the system. Analyze what worked, extract vectors (ranked features), expand into new territory. The flywheel that makes every batch smarter.
168
+
169
+ **The process:**
170
+ 1. **Collect** what's working (winning ad images, high-CTR statics)
171
+ 2. **Analyze** with your brain + AI: "Why is this working?"
172
+ 3. **Isolate vectors** -- Every winning element is a vector:
173
+ - Visual style (grainy, polished, dark, bright)
174
+ - Subject matter (body parts, objects, people, text)
175
+ - Composition (close-up, wide, overhead, POV)
176
+ - Lighting (dim, natural, fluorescent, harsh)
177
+ - Emotional tone (fear, curiosity, disgust, hope)
178
+ - Trigger category (which reptile trigger does it activate?)
179
+ 4. **Expand** each vector independently
180
+
181
+ **Vector Expansion Example (from Jan 5 Gospel):**
182
+
183
+ Starting point: "bloodshot eye" (Gorey trigger)
184
+
185
+ Vectors identified and expanded:
186
+ - bloodshot eye --> other bloodshot eyes, more bloodshot, yellow eyes
187
+ - ultra close-up --> ultra close-up of other body parts (feet, toes, nails, mouth, lips, nose)
188
+ - eye --> both eyes (two instead of one)
189
+ - eye details --> eye bags, eye wrinkles, dilated pupils
190
+ - environmental version --> foggy bathroom mirror (same "exhaustion" concept, totally different visual)
191
+
192
+ Each expansion creates a new image concept that shares the DNA of the winner but explores new territory.
193
+
194
+ **Why this is critical for automation:** The Loopback step is what creates the learning loop. Once ads are deployed and performance data comes back, the system can identify winners and automatically generate expanded concepts. This is the "flywheel" Luke references repeatedly.
195
+
196
+ **Data sources:** ad performance data (Meta API) and winning-ad identification.
197
+
198
+ ---
199
+
200
+ ### S -- Source
201
+
202
+ **What:** Your own brain. Personal observation and creative intuition.
203
+
204
+ **Luke's philosophy:** After saturating yourself with all the other sources, let ideas come naturally. This is the "intuition" source from Luke's Ad Concept Generation framework. It produces the majority of losers AND the majority of big outlier winners. It has the lowest floor and the highest ceiling.
205
+
206
+ **In an automated pipeline:** This maps to the "human input" step. The user can inject their own ideas, observations, or creative directions that don't come from any data source. Important to keep this as an explicit input option.
207
+
208
+ ---
209
+
210
+ ## The 3-Step Static Image Creation Workflow
211
+
212
+ After generating concepts through SCRAWLS, the actual image creation follows three steps:
213
+
214
+ ### Step 1: Generate Ideas via SCRAWLS
215
+ Run through all 7 sources to build a pool of image concepts. Each concept should include:
216
+ - A description of the visual scene
217
+ - Which reptile trigger(s) it activates
218
+ - The awareness level it targets
219
+ - A brief rationale for why it should work
220
+
221
+ ### Step 2: Pull Starter/Reference Images
222
+ For each concept, find a reference image that captures the vibe:
223
+ - From swipes (actual winning ad images)
224
+ - From wild sourcing (Reddit, Google Images)
225
+ - From existing brand assets
226
+ - From stock photos that match the aesthetic
227
+
228
+ The reference image is NOT the final ad. It's the visual starting point for AI generation.
229
+
230
+ ### Step 3: Generate Using AI
231
+ Two sub-paths:
232
+
233
+ **Path A: Reverse Image Prompt**
234
+ 1. Take the reference image
235
+ 2. Generate a detailed description of it (AI describes what it sees)
236
+ 3. Modify the description to match your concept
237
+ 4. Feed the modified prompt into an image generator
238
+
239
+ **Path B: Create New Prompt from Concept**
240
+ 1. Take the concept description directly
241
+ 2. Create an image generation prompt from it
242
+ 3. Generate the image
243
+
244
+ **Image generation tools:**
245
+ - Nano Banana Pro (Gemini) -- primary tool, best for native-looking statics
246
+ - ChatGPT Image Generator (GPT image model)
247
+ - Flux
248
+ - Midjourney (original tool, less used now)
249
+
250
+ **Batch generation:** Poe allows generating multiple images at once. NanoBanana requires waiting for each. For high-volume production, batch generation is essential.
251
+
252
+ **"Less is More" principle:** Luke is emphatic that over-engineering AI inputs makes it behave like an "overeager intern trying to use everything." Give minimum information and let it have confidence to figure things out. Don't dump the entire foundation doc into an image prompt.
253
+
254
+ ---
255
+
256
+ ## The 21+ Standard Static Ad Types (Solution/Product Aware Path)
257
+
258
+ When awareness is solution-aware or product-aware, skip SCRAWLS and route to format-specific generation using one of these types:
259
+
260
+ 1. Headline + Image
261
+ 2. Side by Side / Before and After
262
+ 3. Infographic
263
+ 4. Product Breakdown
264
+ 5. Animation
265
+ 6. Comparison
266
+ 7. Scientific Study
267
+ 8. Collage
268
+ 9. Holding Sign
269
+ 10. Native News
270
+ 11. Note From The Founder
271
+ 12. Testimonial
272
+ 13. Lofi / Ugly Ads
273
+ 14. Bold
274
+ 15. Meme
275
+ 16. Hero
276
+ 17. Comment/Review
277
+ 18. Handwritten Note
278
+ 19. Screenshot
279
+ 20. Breaking News
280
+ 21. Carousel
281
+
282
+ **Workflow for these types:**
283
+ 1. Generate idea using Universal Static Idea Bot, Static Swiper Bot, or a specific type bot
284
+ 2. Create image using Static Ad Image Generator (1:1 or 9:16)
285
+
286
+ **User choice vs auto-selection (from Apr 20 meeting):**
287
+ Luke doesn't fully trust the universal chatbot's auto-selection of which type to use. The options are:
288
+ - Let the user choose which types they want
289
+ - Auto-generate from all types (gets expensive)
290
+ - Hybrid: "Do you want to decide which options, or do you want me to just choose the ones for you? And then how many do you want of each?"
291
+
292
+ ---
293
+
294
+ ## Genesis Bots for the Image Pipeline
295
+
296
+ From the Creative Strategist Ascension Workshop (Day 3), there are 4 categories of static image bots:
297
+
298
+ ### 1. Universal Static Ad Idea Bot
299
+ - Input: finished ad copy
300
+ - Output: image concept ideas across multiple triggers and styles
301
+ - Use when you have no specific visual direction
302
+
303
+ ### 2. Static Ad Swiper Bot
304
+ - Input: an existing static ad image you want to adapt
305
+ - Output: a swiped version adapted for your product
306
+ - Use when you find a winning ad image you want to riff on
307
+
308
+ ### 3. 21+ Static Ad Type Bots (one per format)
309
+ - Input: product info, messaging, and the specific format
310
+ - Output: ideas tailored to that format (infographic, meme, native news, etc.)
311
+ - Use when you want a specific format
312
+
313
+ ### 4. Image Generators
314
+ - Static Ad Image Generator (1:1)
315
+ - Static Ad Image Generator (9:16)
316
+ - Input: concept description and/or reference image
317
+ - Output: generated image
318
+
319
+ There are **48 Genesis bots** specifically for image prompt generation in the current bot catalog.
320
+
321
+ Additionally, standalone bots on Poe (from the SOP documents):
322
+ - **Copy to Native Image Generation Bot** -- Takes copy and generates native-looking image concepts
323
+ - **13 Reptile Triggers Bot** -- Generates reptile-trigger-enhanced prompts from concepts
324
+ - **Winner Analysis Prompt Bot** -- Analyzes winning images to extract vectors
325
+ - **Vector Expansion Prompt Bot** -- Takes extracted vectors and generates expanded concepts
326
+
327
+ ---
328
+
329
+ ## Standard Output Per Concept
330
+
331
+ Per Luke's workflow, each ad concept should produce:
332
+ - 2 hooks
333
+ - 2 headlines
334
+ - 1 body copy
335
+ - **6-8 static images**
336
+
337
+ The images are the high-volume component. A batch of 10 ads = 60-80 static images.
338
+
339
+ ---
340
+
341
+ ## Awareness Level Distribution
342
+
343
+ For a standard batch of 10 ads:
344
+ - **6 Unaware/Problem Aware** (4 unaware, 2 problem aware) --> SCRAWLS pipeline
345
+ - **4 Solution Aware/Product Aware** --> Standard static ad types
346
+
347
+ This means roughly 60% of image generation should go through the SCRAWLS process and 40% through standard types.
348
+
349
+ ---
350
+
351
+ ## The Creative Diversity Matrix
352
+
353
+ SCRAWLS serves creative diversity at multiple levels:
354
+
355
+ | Diversity Level | What It Covers | How SCRAWLS Helps |
356
+ |----------------|---------------|-------------------|
357
+ | Level 1: Segments | Different audience personas | Audience Language source mines segment-specific visuals |
358
+ | Level 2: Awareness | Where on the spectrum | SCRAWLS = unaware/problem; Types = solution/product |
359
+ | Level 3: Source | Where the concept came from | Each SCRAWLS letter is a different source |
360
+ | Level 4: Styles | Format and visual treatment | Reptile triggers create style diversity |
361
+
362
+ The Diversity Matrix is 5 Segments x 5 Awareness Levels = 25 Buckets. SCRAWLS helps ensure image concepts cover as many buckets as possible, not just cluster in the obvious ones.
363
+
364
+ ---
365
+
366
+ ## Key Principles for Pipeline Design
367
+
368
+ ### 1. Auto-detect awareness level
369
+ The system reads the ad idea/brief and classifies: unaware/problem-aware vs solution/product-aware. Then routes to the right pipeline. No manual selection.
370
+
371
+ ### 2. Run all SCRAWLS sources, not just one
372
+ The whole point is diversity. Don't let the system shortcut to just Copy-Derived or just Swipe Mining. Run all available sources and aggregate the concepts.
373
+
374
+ ### 3. Push past the literal
375
+ First-pass image concepts are always boring and literal. The pipeline should include a "push" step that forces more creative, unexpected, visceral concepts. This is especially important for the Copy-Derived source.
376
+
377
+ ### 4. Reference images before generation
378
+ Don't go straight from concept to AI image generation. Finding/selecting a reference image first dramatically improves output quality.
379
+
380
+ ### 5. Less is more with prompts
381
+ Don't dump entire foundation docs into image generation prompts. Minimal, specific, confident prompts produce better results.
382
+
383
+ ### 6. The Loopback flywheel is the long-term differentiator
384
+ Building the feedback loop from performance data back into concept generation is what makes the system get smarter over time. V1 can work without it, but it needs to be designed in as a data path.
385
+
386
+ ### 7. Human approval gates
387
+ Luke was clear in the April 20 meeting: "Do you want to decide which options, or do you want me to just choose?" There should be a checkpoint between concept generation and image generation where the user can curate, modify, or reject concepts before spending compute on generation.
388
+
389
+ ---
390
+
391
+ ## Existing Exodus Infrastructure That Maps to SCRAWLS
392
+
393
+ | SCRAWLS Source | Data source | Status |
394
+ |---------------|----------------------|--------|
395
+ | Swipe Mining | Competitor ad libraries (Meta Ad Library) | Working (needs brand population) |
396
+ | Copy-Derived | Copy pipeline output (Genesis runs) | Working |
397
+ | Reptile Triggers | Image classification taxonomy | Taxonomy defined |
398
+ | Audience Language | Ad-comment scraping & analysis | Comment scraping working |
399
+ | Wild Sourcing | Organic content (Instagram/TikTok) | Partial |
400
+ | Loopback | Ad performance data | Needs connection |
401
+ | Source | User input via CLI | Available |
402
+
403
+ The static-images run kind is defined in the dashboard schema (`kind: "static-images"`) with feed card and detail components built but no runs yet.
404
+
405
+ ---
406
+
407
+ ## Example Brand: Full SCRAWLS Walkthrough
408
+
409
+ From the March 23, 2026 Monday Gospel, Luke walked through SCRAWLS live for an example brand:
410
+
411
+ **Ad:** "The 1 Daily Habit Silently Destroying Seniors From The Inside Out"
412
+
413
+ **Copy-Derived concepts (Tab 20):**
414
+ 1. Car battery with corroded terminals
415
+ 2. Swollen ankles in compression socks
416
+ 3. Writing on body (showing electrical pathways)
417
+ 4. Montage of body parts
418
+ 5. Sexy grandma
419
+ 6. Whiteboard
420
+ 7. Anatomy diagram
421
+ 8. Silvadene (medical cream)
422
+ 9. Copper/duct tape (DIY grounding attempt)
423
+ 10. Sisters picture (from the story in the ad)
424
+
425
+ **Additional concepts from other sources:**
426
+ - Historical images (Time Warp trigger)
427
+ - Feet pictures (Ultra-Real trigger)
428
+ - Pets -- dogs, cats (Selfie/relatable trigger)
429
+
430
+ **Reptile triggers activated:**
431
+ - Car battery = Gorey + Uncanny Object + Ultra-Real
432
+ - Swollen ankles = Suffering + Ultra-Real
433
+ - Sexy grandma = Sexual
434
+ - Anatomy = Scientific/Bizarre
435
+ - Copper/duct tape = Ultra-Real + Bizarre
436
+
437
+ **Then the workflow continued:**
438
+ 1. Pull starter images (find reference photos for each concept)
439
+ 2. Reverse prompt from reference (describe the reference image)
440
+ 3. Generate via Midjourney or Nano Banana
441
+
442
+ ---
443
+
444
+ ## Data Inputs the Pipeline Needs
445
+
446
+ For each brand/workspace, the SCRAWLS pipeline needs access to:
447
+
448
+ 1. **Finished ad copy** (from any copy pipeline run) -- for Copy-Derived
449
+ 2. **Competitor brand data** (ad libraries) -- for Swipe Mining
450
+ 3. **Ad comment data** (comment scraping & analysis) -- for Audience Language
451
+ 4. **Winning ad performance data** (Meta API) -- for Loopback
452
+ 5. **Organic post data** (organic content scraping) -- for Wild Sourcing + Swipe Mining
453
+ 6. **Foundation docs** (buyer profile, pain matrix, offer brief) -- for Reptile Triggers context
454
+ 7. **Image classification taxonomy** -- for routing and tagging output
455
+ 8. **User input/creative direction** -- for Source
456
+
457
+ ---
458
+
459
+ ## Sources
460
+
461
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/scrawls-framework.md`
462
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/storming-framework.md`
463
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/reptile-triggers.md`
464
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/vector-expansion.md`
465
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/static-ad-workflows.md`
466
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/static-ad-types.md`
467
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/creative-diversity.md`
468
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/creative-coverage.md`
469
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/swiping-strategy.md`
470
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/modular-swiping.md`
471
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/ad-concept-generation.md`
472
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/concepts/hook-types.md`
473
+ - `domain-knowledge/creative-strategy/Domain Creative Strategy/topics/static-ad-formats.md`
474
+ - `domain-knowledge/creative-strategy/wiki/topics/creative-strategist-ascension-workshop.md`
475
+ - `domain-knowledge/creative-strategy/wiki/topics/keyword-research-by-vertical.md`
476
+ - `domain-knowledge/creative-strategy/wiki/entities/luke-mills.md`
477
+ - `domain-knowledge/creative-strategy/raw/weekly-monday-gospels/january-5-2026-creating-winning-static-image-ads.md`
478
+ - `domain-knowledge/creative-strategy/raw/weekly-monday-gospels/march-23-2026-how-to-write-better-ads-faster-part-2.md`
479
+ - `domain-knowledge/creative-strategy/raw/creative-strategist-ascension/day-3.md`
480
+ - `meeting-notes/2026-04-20-brad-x-luke.md` (transcript provided in conversation)
481
+ - `meeting-notes/2026-04-13-brad-x-luke.md`
482
+ - `meeting-notes/2026-04-01-ai-agent-meeting.md`
483
+ - `meeting-notes/2026-03-23-brad-x-luke.md`
@@ -0,0 +1,79 @@
1
+ # Segments & Strategy Map — the spine + facets model, and finding gaps
2
+
3
+ > Part of the creative-strategy framework set. The compact index lives in the
4
+ > `exodus-strategist` skill; this file is the depth. Strategy is *what to make* — and
5
+ > **segments are the biggest unlock.** A new slice nobody targets wins even with imperfect
6
+ > copy, because the algorithm and the audience both reward a message they haven't seen.
7
+ > "Making is cheap now. Choosing what to make is the job."
8
+
9
+ This is the **Strategy** layer of the wheel (Strategy → Analysis → Ideation → Copy →
10
+ Editing → Creative → Iterations). Strategy governs everything downstream: it doesn't turn
11
+ with every cycle, it sets the map the rest of the work fills in.
12
+
13
+ ---
14
+
15
+ ## A segment is a slice; a persona is that slice as a person
16
+ Don't let "our 6 personas" cap you — there are thousands of slices. A brand profile's named
17
+ personas are a starting set, not the ceiling. The job is to keep finding slices nobody is
18
+ serving yet.
19
+
20
+ ## Spine + facets (not an N-cube)
21
+ Model the market as an **outcome spine** with **facets hanging off it** — not a giant grid
22
+ of every-attribute-times-every-other (that explodes into noise).
23
+
24
+ - **Outcome is the spine** (the vertical axis) — the desire or pain. This is the chunkiest,
25
+ primary cut. Go narrower underneath it (joint pain → knee, hip). Add as many outcomes as
26
+ the market has.
27
+ - **Demographic crosses** (the horizontal axis) — gender, age, identity.
28
+ - **Qualifiers are filters** that thin a slice rather than define it:
29
+ - **Mechanism** = *universal, mass-market beliefs ONLY* (cortisol, testosterone — what the
30
+ whole market already believes causes the problem). This is **not** your product's own
31
+ proprietary mechanism (that lives in the copy, as Curiosity — see `copy-blocks.md`).
32
+ - **Condition** = a fact that limits fit (vegetarian, GLP-1 user, pregnant). *Stress-test
33
+ it* — copy can fall inside a condition's bucket without the condition being the actual
34
+ carve-out the ad is built on.
35
+ - **Value** = a soft preference (organic-only, no-needle).
36
+
37
+ Clean rule for the blurry ones:
38
+ **Demographic** = what they ARE · **Identity** = who they SAY they are ·
39
+ **Condition** = a fact that limits fit · **Value** = what they PREFER.
40
+
41
+ A **persona** = an outcome × a specific set of facets, named.
42
+
43
+ ## Two ways to add a new segment
44
+ 1. **New outcome / pain point** → add a column (grow the spine).
45
+ 2. **Go narrower** → add a condition or sub-slice inside one you already have.
46
+
47
+ ## Awareness is the layer ABOVE — not a facet
48
+ Unaware · Problem-aware · Solution-aware · Product-aware · Most-aware. Collapse to working
49
+ buckets (Unaware/Problem · Solution/Product · Most-aware). The difference between awareness
50
+ levels is mostly the **hook and the entry point**; the underlying job is the same (install
51
+ mechanism → create desire → bridge to product). Keep awareness *out* of the segment cube or
52
+ you double-count the same slice five times. (Routing detail: `awareness-framework.md`.)
53
+
54
+ ## Coverage & gaps — the Strategy Map
55
+ The map = all possible slices (the terrain, with no holes). It only becomes useful when you
56
+ overlay reality:
57
+
58
+ 1. **Map the terrain** — outcomes (spine) × facets, with awareness as the layer above.
59
+ 2. **Overlay your real ads** — classify each *whole* ad to the one persona it actually lands
60
+ on (its net impression, not every attribute it touches). Shade what's covered.
61
+ 3. **Empty cells = gaps.** That's the live output: a ranked list of slices you could own.
62
+
63
+ **Rank gaps with Chad logic** (judgment): gap size · urgency of the outcome (usually pain) ·
64
+ TAM · what competitors are doing / what's already working · zeitgeist. Then blend with
65
+ **taste** — the intuition beneath words, built by saturating in the actual accounts.
66
+ Judgment + taste, fed back every cycle, compound into **instinct** (the 1-of-1 read no bot
67
+ can hand you). That compounding is the human half of the dual flywheel.
68
+
69
+ ## Finding new segments (process)
70
+ Pull real market language — customer reviews, ad comments, competitor swipes (`swipe` writes
71
+ fresh ads off a single competitor ad; the brand's competitor library feeds the rest) — read
72
+ it until you can feel the specific outcomes and desires underneath, then extract them into a
73
+ master list of candidate segments. New outcomes grow the spine; new conditions grow the
74
+ facets. The point isn't perfect taxonomy — it's surfacing the slice nobody's serving.
75
+
76
+ ## Output of this layer
77
+ A **Strategy Map** (the living terrain + the ranked gaps) and, feeding into Analysis, a
78
+ sense of where to plant the flag this cycle. Hand the chosen gaps to Ideation (`idea`,
79
+ STORMING) and they become briefs.
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: exodus
3
+ description: The front door for ALL Exodus requests — the done-for-you ad system (copy pipelines, image engines, idea bank, brand onboarding) driven by the `npx @aicopycoders/exodus` CLI. Invoke whenever the user says "exodus" and hasn't already named a specific exodus-* skill — "exodus, write me some ads", "use exodus to make images", "exodus swipe this ad", "set up my brand in exodus", "what can exodus do", "show me my exodus runs". This skill reads the request and routes it to the right exodus-* skill; it never does the pipeline work itself. Only invoke when the user explicitly says "exodus" (or is clearly continuing an Exodus conversation) — never claim generic copywriting/image/idea requests; in shared folders those may belong to the user's other tools. The bare word "Genesis" without "exodus" refers to the member's own Genesis API key and personal bot recipes, NOT to Exodus — if the user asks for "genesis" alone, they mean their own direct Genesis workflow, so do not route them here.
4
+ ---
5
+
6
+ # Exodus — the front door
7
+
8
+ Exodus is the done-for-you ad system: pre-built pipelines that run Luke's full creative process (writing, images, ideas, onboarding) through the `npx @aicopycoders/exodus` CLI against the member's brand workspace. The member's only setup is the `EXODUS_API_KEY` already in this folder's `.env` — Exodus handles its own Genesis access internally; the user never configures a Genesis key for Exodus.
9
+
10
+ This skill ROUTES. Read what the user wants, name the destination skill, and hand off to it. Don't run pipelines from here.
11
+
12
+ ## Routing map
13
+
14
+ | The user wants… | Route to |
15
+ |---|---|
16
+ | Write ad copy, has a brief, "where do I start" | `exodus-write` (the copy front door — it sequences onboarding → writing) |
17
+ | Run the full writing pipeline on a brief / winning ad / pasted reel | `exodus-genesis` |
18
+ | Static image ads ("make images", "statics", "render this ad") | `exodus-image` (the image front door — it menus engines and confirms before firing) |
19
+ | A specific image engine they already chose | `exodus-creative` (native / copy-derived / ref-match) or `exodus-template` (33 ad-type formats) |
20
+ | Meme ads ("exodus, meme this offer", "make me meme ads") | `exodus-meme` |
21
+ | Capture/curate/write from the Idea Bank | `exodus-idea` |
22
+ | Swipe a Facebook Ad Library ad | `exodus-swipe` |
23
+ | Onboard a new brand / build the primer | `exodus-primer` (with winning ads) or `exodus-foundation` (no ads yet) |
24
+ | List/switch/troubleshoot brands | `exodus-brand` |
25
+ | See past runs / find an output | `exodus-browse` |
26
+ | Open or create Google Docs/Sheets | `exodus-drive` |
27
+ | Update the CLI + skills | run `npx @aicopycoders/exodus@latest init` |
28
+
29
+ If a custom pipeline skill is installed in this folder (any additional `exodus-*` directory under `.claude/skills/`), it routes the same way — match the user's words to that skill's description.
30
+
31
+ For any creative judgment along the way (awareness calls, hook critique, which pipeline fits), `exodus-strategist` is the operating persona — it activates with the work.
32
+
33
+ ## Two systems, one folder — keep them straight
34
+
35
+ Think of it as a car: **Genesis is the manual transmission** — the member calls the copywriting
36
+ bots directly with their own `gen_` key and shifts every gear themselves. **Exodus is the
37
+ automatic** — same engine underneath (it drives those same Genesis bots), but the pre-built
38
+ `npx @aicopycoders/exodus` pipelines do the driving. A member who doesn't know the internals just wants their
39
+ ads; your job is to put them in the right one.
40
+
41
+ Members often have TWO ways to use the Genesis bots, and they may both live in this folder:
42
+
43
+ 1. **Exodus (this system)** — automatic. Pre-built pipelines, `npx @aicopycoders/exodus` commands, `EXODUS_API_KEY` in `.env`. Genesis access is internal — there is nothing to configure, fix, or debug about Genesis keys for Exodus. If an Exodus command fails, run `npx @aicopycoders/exodus doctor` first and follow what it prints.
44
+ 2. **The member's own Genesis API workflow** — manual. Their personal `gen_` key (`GENESIS_API_KEY` in `.env`) calling `gas.copycoders.ai` directly, usually via their own skills/recipes from the workshop. That workflow is NOT Exodus and is not owned by the exodus-* skills.
45
+
46
+ When the user says "genesis" without "exodus", they mean #2 — leave it to their own tooling. Never paste a `gen_` key into Exodus configuration, never register any of these URLs as an MCP server, and never invent constraints about either system that aren't documented in these skills or printed by the CLI.
47
+
48
+ ## If the request is ambiguous
49
+
50
+ Ask one short question ("Do you want this through Exodus, or your own Genesis bots?") rather than guessing — in shared folders, guessing wrong sends the user down the wrong system entirely.