@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.
- package/assets/references/awareness-framework.md +156 -0
- package/assets/references/cast-video.md +165 -0
- package/assets/references/copy-blocks.md +138 -0
- package/assets/references/creative-strategy.md +990 -0
- package/assets/references/editing-rules.md +81 -0
- package/assets/references/hook-quality-checklist.md +153 -0
- package/assets/references/iterations.md +73 -0
- package/assets/references/scrawls.md +483 -0
- package/assets/references/segments.md +79 -0
- package/assets/skills/exodus/SKILL.md +50 -0
- package/assets/skills/exodus-brand/SKILL.md +117 -0
- package/assets/skills/exodus-browse/SKILL.md +96 -0
- package/assets/skills/exodus-creative/SKILL.md +94 -0
- package/assets/skills/exodus-drive/SKILL.md +118 -0
- package/assets/skills/exodus-foundation/SKILL.md +170 -0
- package/assets/skills/exodus-genesis/SKILL.md +159 -0
- package/assets/skills/exodus-idea/SKILL.md +78 -0
- package/assets/skills/exodus-image/SKILL.md +224 -0
- package/assets/skills/exodus-meme/SKILL.md +183 -0
- package/assets/skills/exodus-primer/SKILL.md +145 -0
- package/assets/skills/exodus-strategist/SKILL.md +217 -0
- package/assets/skills/exodus-swipe/SKILL.md +85 -0
- package/assets/skills/exodus-template/SKILL.md +106 -0
- package/assets/skills/exodus-write/SKILL.md +157 -0
- package/assets/skills/genesis-bots/.env.example +12 -0
- package/assets/skills/genesis-bots/README.txt +29 -0
- package/assets/skills/genesis-bots/SKILL.md +219 -0
- package/assets/skills/genesis-bots/scripts/genesis-stream.mjs +307 -0
- package/assets/skills/genesis-bots/scripts/genesis-stream.py +220 -0
- package/dist/bin/exodus.d.ts +2 -0
- package/dist/bin/exodus.js +177 -0
- package/dist/commands/__tests__/genesis.hookgate.test.d.ts +1 -0
- package/dist/commands/__tests__/genesis.hookgate.test.js +12 -0
- package/dist/commands/brand.d.ts +24 -0
- package/dist/commands/brand.js +292 -0
- package/dist/commands/browse.d.ts +9 -0
- package/dist/commands/browse.js +132 -0
- package/dist/commands/creative.d.ts +2 -0
- package/dist/commands/creative.js +223 -0
- package/dist/commands/doctor.d.ts +21 -0
- package/dist/commands/doctor.js +590 -0
- package/dist/commands/drive.d.ts +2 -0
- package/dist/commands/drive.js +154 -0
- package/dist/commands/foundation.d.ts +2 -0
- package/dist/commands/foundation.js +468 -0
- package/dist/commands/genesis.d.ts +64 -0
- package/dist/commands/genesis.js +564 -0
- package/dist/commands/idea.d.ts +53 -0
- package/dist/commands/idea.js +333 -0
- package/dist/commands/image.d.ts +2 -0
- package/dist/commands/image.js +249 -0
- package/dist/commands/init.d.ts +13 -0
- package/dist/commands/init.js +70 -0
- package/dist/commands/keys.d.ts +2 -0
- package/dist/commands/keys.js +101 -0
- package/dist/commands/meme.d.ts +12 -0
- package/dist/commands/meme.js +272 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.js +158 -0
- package/dist/commands/primer.d.ts +2 -0
- package/dist/commands/primer.js +540 -0
- package/dist/commands/read-doc.d.ts +3 -0
- package/dist/commands/read-doc.js +62 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.js +205 -0
- package/dist/commands/swipe.d.ts +2 -0
- package/dist/commands/swipe.js +398 -0
- package/dist/commands/template.d.ts +2 -0
- package/dist/commands/template.js +225 -0
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.js +51 -0
- package/dist/lib/ad-library-write.d.ts +15 -0
- package/dist/lib/ad-library-write.js +67 -0
- package/dist/lib/assets.d.ts +3 -0
- package/dist/lib/assets.js +23 -0
- package/dist/lib/backend-hint.d.ts +2 -0
- package/dist/lib/backend-hint.js +22 -0
- package/dist/lib/cc-command.d.ts +1 -0
- package/dist/lib/cc-command.js +13 -0
- package/dist/lib/client.d.ts +23 -0
- package/dist/lib/client.js +213 -0
- package/dist/lib/format.d.ts +8 -0
- package/dist/lib/format.js +172 -0
- package/dist/lib/intel-format.d.ts +1 -0
- package/dist/lib/intel-format.js +38 -0
- package/dist/lib/keys-sync.d.ts +16 -0
- package/dist/lib/keys-sync.js +88 -0
- package/dist/lib/layout.d.ts +38 -0
- package/dist/lib/layout.js +153 -0
- package/dist/lib/load-env.d.ts +1 -0
- package/dist/lib/load-env.js +47 -0
- package/dist/lib/pixar-orchestrator-types.d.ts +54 -0
- package/dist/lib/pixar-orchestrator-types.js +1 -0
- package/dist/lib/poll.d.ts +14 -0
- package/dist/lib/poll.js +32 -0
- package/dist/lib/preflight.d.ts +18 -0
- package/dist/lib/preflight.js +56 -0
- package/dist/lib/prompts.d.ts +9 -0
- package/dist/lib/prompts.js +99 -0
- package/dist/lib/reel-write.d.ts +14 -0
- package/dist/lib/reel-write.js +59 -0
- package/dist/lib/release.d.ts +4 -0
- package/dist/lib/release.js +81 -0
- package/dist/lib/scaffold.d.ts +8 -0
- package/dist/lib/scaffold.js +67 -0
- package/dist/lib/scout-hydrate.d.ts +1 -0
- package/dist/lib/scout-hydrate.js +10 -0
- package/dist/lib/state.d.ts +6 -0
- package/dist/lib/state.js +49 -0
- package/dist/lib/template-constants.d.ts +4 -0
- package/dist/lib/template-constants.js +85 -0
- package/dist/lib/version.d.ts +1 -0
- package/dist/lib/version.js +19 -0
- 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.
|