dreative 0.5.0 → 0.5.1

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.
@@ -4,23 +4,20 @@ This skill is for **drastic change** — a section, a page, or the whole site be
4
4
  meaningfully redesigned or built. It is not for button tweaks or single-token
5
5
  nudges unless the user explicitly invokes it for one.
6
6
 
7
- **The plan gate (ask EVERY time).** At the start of ANY Mode A request in scope,
8
- your FIRST action is one structured question: **"Plan it first, or build
9
- directly?"** with "Plan first (Recommended)" as the leading option. Say plainly
10
- why plan wins: you'll probe capabilities, agree on treatments/media/mockups up
11
- front, and the result lands far closer to what they wanted on the first build.
12
- "Build directly" skips to DESIGN.md + doctrine defaults. Never silently skip the
13
- gate — even a request that looks simple gets asked; only skip when the user
14
- already said "no plan / just do it" this session. When plan is accepted, run the
15
- protocol below.
7
+ **Plan Mode is MANDATORY.** Every Mode A request in scope runs this protocol —
8
+ do not ask "plan or build directly?", do not offer a skip, do not silently jump
9
+ to code. The ONLY exception is the user explicitly saying "no plan / just do
10
+ it" this session; then note you're skipping and go straight to DESIGN.md +
11
+ doctrine defaults.
16
12
 
17
13
  The failure this file prevents: jumping into code with half a brief, discovering
18
14
  mid-build that media/tools/structure are missing, and shipping a page that is
19
15
  60% of what the user actually wanted.
20
16
 
21
- Plan Mode is ONE planning pass → ONE structured question round → a written plan
22
- → (optional) mockups for approval → execution in the plan's order. Never turn it
23
- into a long interview; the user answers once and you build.
17
+ Plan Mode is ONE planning pass → a short sequence of single questions (§3) → a
18
+ written plan → (optional) mockups for approval → execution in the plan's order.
19
+ Questions come one at a time so each is easy to answer, but the interview stays
20
+ short: only what the prompt genuinely leaves open, then build.
24
21
 
25
22
  ## 1. Capability probe (before proposing anything)
26
23
 
@@ -38,21 +35,31 @@ Rules:
38
35
  - Probe by LOOKING (list your tools, `which ffmpeg`, check MCP config), never by
39
36
  assuming. A capability you didn't verify doesn't exist.
40
37
  - If a capability is missing but the design clearly wants it (e.g. a cinematic
41
- brief with no video-gen), include an **offer to install** in the question round
42
- (§3): name the concrete option (an MCP server the user can add, or
43
- falling back to generated stills / pre-rendered loops from image sequences)
44
- and let the user decide. Never install tools silently; never silently degrade
45
- either the user must know the fancy version was available.
38
+ brief with no video-gen), you MUST ask a real question with a real choice —
39
+ **stating the gap and moving on is not an offer, it's a disclosure.** The
40
+ bug this catches: saying "video generation isn't available, so I'll use
41
+ stills" and continuing is a FAILURE even though it's honest. The fix is a
42
+ question with at least two live options: "install <concrete MCP/tool name>
43
+ now and use it" vs "skip it, use <the specific fallback>". Ask it in the
44
+ question round (§3), phrased as a genuine fork, not a heads-up. Never
45
+ install tools silently; never silently degrade either.
46
46
  - The probe result changes the blueprint: no video-gen → hero loops become
47
- generated stills + ken-burns or a shader surface; no browser tools the
47
+ generated stills + ken-burns or a shader surface; **no image-genmedia
48
+ cells become `source-image` (DESIGN.md §7's priority: verified stock/CDN
49
+ photography), every planned cutout prop becomes a sourced-and-matted photo
50
+ or is cut, and any 3D of an organic real-world subject is re-planned as a
51
+ photo billboard, an abstract form, or cut (3d.md §3 rungs 2/4 — coded
52
+ organic geometry never becomes the fallback)**; no browser tools → the
48
53
  verification protocol's manual fallback (SKILL.md) must be declared up front.
54
+ Missing tools change WHERE assets come from, never whether media/3D rules
55
+ apply — sourced media carries the same treatment obligations (media.md §0).
49
56
 
50
57
  ## 2. The blueprint (section-by-section, media-first)
51
58
 
52
59
  Draft the page as a compact table BEFORE asking anything — the question round
53
60
  presents choices about a concrete plan, not abstractions. Per section:
54
61
 
55
- | section | layout family | media plan | motion treatment | interaction | fallback |
62
+ | section | layout family | media plan | motion treatment | interaction | intensity | fallback |
56
63
 
57
64
  - **media plan** — one of: `generate-image` (subject + exact aspect + palette/
58
65
  light-temperature prompt notes), `generate-video` (loop subject, 5-10s,
@@ -60,8 +67,75 @@ presents choices about a concrete plan, not abstractions. Per section:
60
67
  (exists in repo / user must supply — name it), `none`. Media enters through
61
68
  the motion system per `skills/media.md` — name the treatment (curtain reveal,
62
69
  mask-shaped, hover-woken, media-plane distortion…), never "add an image".
70
+ At dial ≥ 7 the blueprint also names the page's ONE media set-piece
71
+ (media.md §0 — image tornado, disintegration on scroll, shatter/reassemble,
72
+ living overlay…) and which section carries it; a dial-7+ plan whose media
73
+ column is all quiet treatments is incomplete.
74
+ When the set-piece is a media.md §3.5 dive (the award-tier default), its
75
+ `generate-image` cell must plan a DEPTH-CAPABLE composition (a corridor,
76
+ room, landscape, machinery receding — something a camera can enter) and
77
+ the companion assets in the same cell: the depth map and/or the separated
78
+ foreground/background plates, generated in the same prompt world.
79
+ The set-piece is chosen via
80
+ media.md's exploration protocol: invent three brand-native candidates not
81
+ listed in the catalogs, record them + the pick in the plan file — a media
82
+ plan assembled only from listed effects with no rejected invention on
83
+ record is minimum-effort compliance. **Custom 3D in a media cell must name
84
+ its asset source in the blueprint** — a GLB path, a generated/sourced
85
+ texture (the actual prompt or file), or the billboard cutout it will ride
86
+ on. "Custom 3D bean/bottle/plant geometry" with no named source is an
87
+ invalid cell: primitives can't produce an organic subject (3d.md §3), so
88
+ re-plan it as rung 2 (photo billboard) or an abstract SUPPORTING form
89
+ (3d.md §3 rung 3 — never the promoted signature object) at plan time —
90
+ don't let the build stage discover this. The user picking "custom 3D" in
91
+ the media question grants the *medium*, not an exemption from the ladder.
92
+ Every 3D prop cell also names its BERTH (3d.md §1.5): which lane/stage of
93
+ the section it occupies and what the layout does to make room — a prop
94
+ planned "over the hero image" or with no berth is an invalid cell.
95
+ At award-site ambition the blueprint must contain at least one 3D prop
96
+ cell (3d.md §0's required prop — GLB or cutout billboard, with its berth
97
+ and asset source named); zero prop cells = incomplete plan.
98
+ At dial ≥ 8 the media column additionally marks each hero/key image's
99
+ treatment as quiet-class or PIXEL-class (media.md §0) and must already
100
+ satisfy the coverage floor on paper: at least half pixel-class (min 3,
101
+ set-piece included), each a different mechanism, quiet cells tied to the
102
+ intensity curve's rests.
103
+ - **Travel map (mandatory when any element persists across sections).** If
104
+ the blueprint contains a fixed canvas object, a recurring signature, or any
105
+ scroll-morphing prop that lives through more than one section, add a travel
106
+ map under the table: one line per section giving the object's position /
107
+ scale / opacity there, each berth chosen against that section's layout so
108
+ it never sits over text or controls (DESIGN.md §15). No berth fits ⇒ the
109
+ object is scripted HIDDEN for that section. A persistent object without a
110
+ travel map is an unplanned collision that verify will find later — plan it
111
+ now. The set-piece at dial ≥ 8 must also be pixel-transforming per
112
+ media.md §0 (placement choreography like orbit/collapse doesn't qualify).
113
+ - **Mechanism-diversity quota (dial ≥ 7 / expressive+).** Floors measure the
114
+ weakest item; quotas measure the whole page. Across the blueprint's media +
115
+ interaction columns count the DISTINCT mechanisms (curtain reveal, media
116
+ plane, drag gallery, cursor torch, disintegration… — by name) and the
117
+ DISTINCT drivers (scroll, cursor/hover, drag, click, time/idle): the page
118
+ needs **≥ 4 distinct mechanisms spanning ≥ 3 distinct drivers, and no
119
+ mechanism used more than twice**. Every hero/key image gets BOTH an idle
120
+ life and an input response — one or the other is the floor, not the plan.
121
+ "Curtain reveal ×5 + one set-piece" fails the quota: that is a page grazing
122
+ its rules, not a designed page. The quota tallies go in the plan file and
123
+ are re-counted at verify.
63
124
  - **motion treatment** — from motion.md/immersive.md/cinematic.md vocabulary,
64
- with the dial-appropriate ambition (motion.md §9 inventory is the target).
125
+ with the dial-appropriate ambition. **motion.md §9's inventory is a hard
126
+ plan gate, not a target:** at expressive/award-site ambition the blueprint
127
+ must enumerate every §9 item for its dial — which element carries it, what
128
+ triggers it — or explicitly name the item as cut with a reason. A plan that
129
+ neither covers nor justifies a §9 item is incomplete; rework it before
130
+ presenting, don't ship the gap to the build.
131
+ - **intensity (the pacing map)** — 1–10 per section: how loud this section is
132
+ (motion + media + visual weight combined). The page must read as a CURVE, not
133
+ a flat line: uniform intensity fails in both directions (all loud = exhausting,
134
+ all quiet = the set-piece feels bolted on). Place deliberate rests (≤ 3)
135
+ immediately before and after the set-piece so it lands; the hero and the
136
+ set-piece section are the peaks, nothing else matches them. A blueprint whose
137
+ intensity column is all the same number is incomplete — rework the pacing
138
+ before presenting.
65
139
  - **fallback** — for every ambitious cell (WebGL, sim, scrubbed sequence,
66
140
  generated video), the concrete boring version that ships if the fancy one
67
141
  fails runtime verification. A plan cell without a fallback is not ambitious,
@@ -71,66 +145,193 @@ Plus four page-level lines: register + design read (DESIGN.md §2), signature
71
145
  element, animation stack (ONE system: GSAP+Lenis or motion/react — motion.md §0),
72
146
  and the mobile strategy per ambitious effect (DESIGN.md §13).
73
147
 
74
- ## 3. The question round (one AskUserQuestion call, ≤4 questions)
148
+ ## 3. The questions (ONE question per call, asked in sequence)
75
149
 
76
- Bundle EVERYTHING the user must decide into one structured round (multi-select
77
- where choices stack). The pool below holds more than 4 questions pick the
78
- ones the request leaves genuinely open, most-decision-changing first; skip any
79
- the request already answers. Structured tools always offer an "Other" free-text
80
- option, so every question doubles as a remarks channel — and the round's last
81
- question should explicitly invite extra direction.
150
+ Ask with the structured question tool (AskUserQuestion), **one question at a
151
+ time** never dump the whole pool in a single round; a wall of 4 simultaneous
152
+ questions is exactly the failure this section prevents. Each answer can change
153
+ what you ask next (e.g. a "cinematic" treatment pick makes the media question
154
+ matter more; "restyle" depth kills the mockup question).
155
+
156
+ **Skip what the prompt already answers.** Before asking anything, walk the pool
157
+ below against the user's prompt + attachments: a question whose answer is
158
+ already CLEAR in the prompt is never asked (asking it anyway is a bug). But
159
+ clear means clear — if the prompt touches a topic ambiguously ("make it
160
+ animated" — which treatments? how far?), ask that question anyway, narrowed to
161
+ the ambiguity ("you said animated — full scroll choreography, or calm
162
+ micro-interactions?"). Restate what you inferred from the prompt in the plan
163
+ file so silently-skipped questions are still auditable.
164
+
165
+ Order most-decision-changing first, keep the total short (typically 3–5 asked,
166
+ hard cap 7). Structured tools always offer an "Other" free-text option, so
167
+ every question doubles as a remarks channel — and the last question asked
168
+ should explicitly invite extra direction.
82
169
 
83
170
  1. **Depth** (redesigns of existing code only) — the §11 transformation-depth
84
171
  ladder: restyle / re-layout / restructure / reimagine.
85
- 2. **Treatments** (multi-select)the specialist skills with one-line plain
86
- descriptions, obvious ones marked "(Recommended)":
87
- motion · interaction · 3d · immersive · cinematic · refined · media
88
- (generated images/video woven into the motion system) · ux (make every
89
- control, form, and state actually work recommended by default) · mobile
90
- (first-class phone experience, calmer but equally crafted) · none.
172
+ 2. **Treatments** (multi-select — THE canonical skill-picker list). List every
173
+ option **individually**, never pre-bundled into a combo choice (a
174
+ "refined+motion+interaction+ux+mobile" single option is a bug the user
175
+ can't select a subset of a bundle). Mark the ones the request obviously
176
+ implies "(Recommended)" on their own line, and always offer a literal
177
+ **"select all"** option separately from any individual recommendation
178
+ for structured-question tools that support multiSelect, this is the
179
+ multiSelect list itself; for text-mode fallback, spell out "say 'all' to
180
+ pick every treatment below".
181
+ **Word the options for a non-designer**: each label/description names what
182
+ the VISITOR sees or feels, in plain words, with one concrete example —
183
+ never bare technique jargon ("kinetic type", "editorial restraint",
184
+ "scroll choreography" mean nothing to most users). The canonical list,
185
+ with user-facing phrasing to adapt:
186
+ - **motion** — "things move as you scroll: sections glide in, headlines animate, layers drift at different speeds"
187
+ - **interaction** — "everything feels touchable: buttons react, cards respond to hover, small satisfying feedback everywhere"
188
+ - **3d** — "real 3D on the page: an object or scene you can see depth in, lit and rendered live (like a product you scroll around)"
189
+ - **immersive** — "the page feels like a place you travel through — scrolling is a journey with chapters, not a document"
190
+ - **cinematic** — "dark, moody, movie-like atmosphere: glow, particles, fluid surfaces (think film title sequence)"
191
+ - **refined** — "quiet luxury: lots of space, beautiful photography, very little movement — Apple/fashion-brand calm"
192
+ - **media** — "AI-generated images/video made for this page and woven into the motion (hero film loop, images that come alive)"
193
+ - **ux** — "everything actually works: menus, forms, cart, keyboard — pretty AND functional" (recommend by default)
194
+ - **mobile** — first-class phone experience: bespoke mobile choreography and
195
+ layout treatment beyond baseline responsiveness (thumb-ergonomic redesign,
196
+ animations re-authored for touch, not just scaled down). **NOT recommended
197
+ by default** — baseline responsive/working-on-phone is already guaranteed
198
+ for every build via `ux` + DESIGN.md §13's required mobile strategy line,
199
+ so don't mark this "(Recommended)" just because a build is ambitious.
200
+ Recommend it only when the user asks for it, or the brief signals mobile
201
+ is a primary surface (e.g. explicitly mobile-first, or a mobile-heavy
202
+ audience/product).
203
+ - **experimental** — user-facing phrasing: "go weird: images that tear/
204
+ dissolve/reassemble as you scroll, the camera diving into scenes, one
205
+ never-seen-before idea per section". Internally this is the
206
+ creative-mindset dial (`skills/experimental.md`): full
207
+ scroll-reactive assets (images that disperse/reform/refract as you
208
+ scroll, not just sit still with particles in front), textured/materialed
209
+ 3D instead of smooth plain geometry, camera/dimension shifts on
210
+ scroll/interaction (zoom into a scene, rotate to a new view, transition
211
+ between spatial "worlds"), willingness to try a genuinely unusual idea
212
+ per section rather than the safe default of that treatment. Recommend
213
+ this whenever the user's language points at "crazy", "bizarre", "wow",
214
+ "never seen before", or award-tier + immersive/cinematic/3d stacked
215
+ together — it's the difference between effects *placed on* the page and
216
+ the page *behaving* like the reference sites when you interact with it.
217
+ Plus "none — plain design doctrine only". Skip only when the user already
218
+ named the treatments or the request is trivially a restyle; read each
219
+ chosen `skills/<name>.md` before designing.
220
+
221
+ **Propose extra, request-specific skills beyond this fixed list** when the
222
+ brief hints at something the 10 named treatments don't cover well (sound
223
+ design, generative/procedural patterns, data-driven visuals, AR-ish
224
+ camera tricks, a custom cursor system, easter eggs). Name each candidate
225
+ in the same question as an extra option with a one-line description —
226
+ don't invent a `skills/<name>.md` file for a one-off idea; fold ad hoc
227
+ candidates into the blueprint under the closest existing skill (usually
228
+ `experimental` or `interaction`) and note the specific technique inline.
91
229
  3. **Media & asset types** (multi-select) — offer every asset class the probe
92
230
  found tools for, and let choices stack: `generated images` · `generated
93
231
  video loops` · `custom 3D` (real models/geometry, textures, and shaders
94
232
  built in code — top-tier 3D sites are made of custom 3D assets, not
95
- wallpaper images behind a canvas) · `real assets` (in repo / user supplies)
96
- · `placeholders only`. Mark the probe-backed recommendation "(Recommended)".
233
+ wallpaper images behind a canvas) · `custom props` (small isolated
234
+ compositional elements transparent-bg cutout images or lightweight
235
+ textured 3D objects, per `skills/media.md` §1.5 — scattered/floating
236
+ decoration distinct from hero/gallery media) · `real assets` (in repo /
237
+ user supplies) · `placeholders only`. Mark the probe-backed recommendation
238
+ "(Recommended)".
97
239
  **State the cost honestly: image/video generation is token-intensive** — say
98
240
  roughly how many assets the blueprint wants and that each costs real
99
241
  tokens/time, so "images only" or "placeholders" is a legitimate budget
100
242
  choice, not a downgrade. If a needed tool is missing, this is where the
101
243
  install offer goes ("I can add <X> MCP for video generation — ok?").
102
- 4. **Ambition tier** — safe (clean + light motion) / expressive (full motion.md
103
- dial 7-8 inventory) / award-site (dial 9-10, immersive/cinematic
104
- architecture). State the cost honestly: higher tiers mean heavier builds and
105
- a mandatory runtime verification pass.
106
- 5. **References** "Do you have a reference — a website you love, a
107
- screenshot, a brand whose feel to chase?" Options like: paste a URL /
108
- attach screenshots / "surprise me invent it from the brand" / match the
109
- existing brand. When a URL or image arrives, actually study it before
244
+ 4. **Ambition tier** — present each tier with a plain description, a
245
+ best-fit use case, AND its honest tradeoff (a user choosing blind between
246
+ "cool-sounding" labels is the failure this wording prevents):
247
+ - **safe** polished, clean, light motion. *Best for:* dashboards, apps,
248
+ content-heavy sites, corporate audiences, tight deadlines. *Tradeoff:*
249
+ looks professional, won't turn heads.
250
+ - **expressive**rich scroll motion, 3D accents, everything still
251
+ instantly usable. *Best for:* most product, e-commerce, and marketing
252
+ sites — the show/usability sweet spot and the default recommendation.
253
+ *Tradeoff:* heavier than safe, but visitors never fight the page.
254
+ - **award-site** — the page becomes an experience: immersive 3D, cinematic
255
+ pacing, experimental transitions (dial 9-10). *Best for:* portfolios,
256
+ launches, brand showcases, agency work — anywhere wow IS the goal.
257
+ *Tradeoff:* heaviest build, longest load, and deliberately unconventional —
258
+ visitors explore rather than skim, so it can frustrate someone who just
259
+ wants the price list. Say this plainly when offering it.
260
+ Higher tiers also mean a longer build and a mandatory runtime verification
261
+ pass — state that cost too.
262
+ **Which option gets "(Recommended)" is computed, and the default bias is
263
+ UP:** when the brief carries no strong signal either way, recommend
264
+ **expressive** — unnamed ambition becomes beige (DESIGN.md §2), and this
265
+ skill exists for drastic change. Recommend **safe** only on concrete
266
+ counter-signals: explicit "minimal / corporate / clean / subtle" language,
267
+ a product/app/dashboard surface rather than a marketing page, or a hard
268
+ deadline constraint (item 7). Recommending safe to a signal-free brief is
269
+ a bug, same class as the item-8 mockup inversion.
270
+ 5. **References (ask unless the prompt already supplied them)** — "Do you have
271
+ any reference — an image/screenshot, a website you love, or a video of a
272
+ feel/motion to chase?" Options like: attach image(s) / paste a website URL /
273
+ share a video (URL or file) / "surprise me — invent it from the brand" /
274
+ match the existing brand. When a reference arrives, actually study it before
110
275
  designing (SKILL.md's references rule: fetch the site / read the image,
111
276
  distill what specifically to borrow — palette, type feel, layout family,
112
- motion cues — never guess a named site from memory).
277
+ motion cues — never guess a named site from memory). **Video references:**
278
+ if the environment has no tool that can actually watch video, say so and
279
+ recommend (optional, never required) installing a video-analysis MCP so you
280
+ can study the clip's motion/pacing for real; if the user declines, fall back
281
+ to their own description of the video plus any frames/screenshots they can
282
+ paste — never pretend to have watched it.
113
283
  6. **Vibe & audience** (when the brief is thin) — 3-4 contrasting directions
114
284
  as options, each a one-line register + palette + energy sketch ("quiet
115
285
  luxury: bone, near-black serif, almost no motion" vs "electric launch:
116
286
  drenched color, kinetic type"), plus who the page must convince (buyers /
117
287
  investors / recruiters / fans). This seeds DESIGN.md §2's design read.
118
- 7. **Scope & priorities** (multi-page or vague requests) which pages/flows
119
- matter most, what's in this pass vs later, and any hard constraints
288
+ **Always include an explicit "describe your own theme" option** (own
289
+ words: palette, mood, a brand they admire) alongside the presets the
290
+ presets are a starting menu, not the only path, and a user with a theme
291
+ already in mind shouldn't have to force-fit one of 3-4 canned directions.
292
+ If the user has already given any theme/description language in the
293
+ prompt, skip the presets and just confirm what was inferred instead of
294
+ re-asking.
295
+ 7. **Scope & priorities** (multi-page or vague requests) — when the codebase
296
+ has more than one page/route, always ask explicitly which are in scope:
297
+ list the discovered pages by name and offer **"all pages"** as one option
298
+ alongside individually-named pages (multi-select, so the user can pick a
299
+ subset like "home + product page" without getting everything). Never
300
+ assume "all" just because the brief said "redesign the site" — confirm it.
301
+ Also capture what's in this pass vs later, and any hard constraints
120
302
  (existing brand tokens to keep, CMS/content that must survive, deadline
121
303
  implying the safe tier).
122
304
  8. **Mockups first?** — offer to build 1:1 mockups BEFORE the full build:
123
- "Mockup the key pages first (Recommended for big changes)" / "Straight to
124
- build". If yes, execute §4b before touching real code.
305
+ "Mockup the key pages first" / "Straight to build". **Which one is marked
306
+ "(Recommended)" is NOT static compute it from the depth + ambition
307
+ answers already given:** reimagine or restructure depth, OR award-site
308
+ ambition, mean this is among the biggest changes the tool can make, so
309
+ **"Mockup first" is the recommended option.** Recommend "Straight to
310
+ build" only when depth is restyle/re-layout AND ambition is safe/
311
+ expressive. Getting this backwards (recommending straight-to-build on a
312
+ reimagine + award-site combo) is a bug, not a stylistic choice. When depth
313
+ is restructure/reimagine OR ambition is award-site, also offer a third
314
+ option: **"two divergent mockups"** — the two strongest concepts from the
315
+ explore pass (DESIGN.md §2) each built as a mockup, user picks. State the
316
+ honest cost (a second mockup is real tokens/time); it's an offer, never
317
+ the default. If yes to any mockup option, execute §4b before touching
318
+ real code.
125
319
  9. **Final remarks** — close the round with an open catch-all: "Anything else
126
320
  I should know or you'd love to see — specific effects, colors you hate,
127
321
  sections to add or kill?" Options: "no, go build" / "yes (write it in
128
322
  Other)". Everything written here lands verbatim in the plan file and is
129
- honored like the brief.
323
+ honored like the brief. **This question is asked on every single round,
324
+ with no exception** — it is the fixed closer, never trimmed, never
325
+ replaced by ending the round on whatever question happened to be last
326
+ (e.g. references or mockups). If references was the last substantive
327
+ question asked, final remarks still follows it as its own separate call.
130
328
 
131
- Cap at 4 per round: depth/treatments/media/mockups usually win; fold
132
- ambition into treatments' recommendations when crowded, and vibe/scope into
133
- the blueprint you present for approval. Never re-ask in later rounds;
329
+ When trimming to stay under the cap: depth / treatments / references / media
330
+ usually win; fold ambition into treatments' recommendations when crowded, and
331
+ vibe/scope into the blueprint you present for approval. **Mockups (§8) and
332
+ final remarks (§9) are never trimmed** — they are the last two questions of
333
+ every round, in that order, regardless of how many others got cut. Never
334
+ re-ask a question already answered (in the prompt or in an earlier answer);
134
335
  ambiguity discovered mid-build resolves by the plan's spirit + doctrine
135
336
  defaults.
136
337
 
@@ -142,8 +343,38 @@ these are the bar (fetch and study whichever is closest before designing):
142
343
  - https://www.experiencethebestyou.com/en-GB/ — coordinated scroll choreography
143
344
  + heavy custom 3D/motion throughout.
144
345
  - https://unseen.co/projects/contra/ and https://unseen.co/projects/letter/ —
145
- WebGL media planes, shader transitions, kinetic type.
346
+ WebGL media planes, shader transitions, kinetic type (browse
347
+ https://unseen.co/projects for more in the same family).
146
348
  - https://25residences.com/ — luxury real-estate register, cinematic pacing.
349
+ - https://www.ciaoenergy.com/ — THE reference for a real 3D product on the
350
+ page (stack verified from source): ONE `can.glb` + a small `base.glb`, an
351
+ `.hdr` environment map for lighting, `MeshPhysicalMaterial`, and six
352
+ per-flavor **label textures** (AVIF) swapped onto the same geometry via
353
+ `TextureLoader` — one model, N palettes. Scroll drives it with plain
354
+ `ScrollTrigger.create`; backgrounds are pre-rendered per-flavor video
355
+ loops, not live sims. Lesson: photoreal product 3D = real GLB + real label
356
+ texture + HDRI environment — never coded geometry (3d.md §3) — and the
357
+ cheap parts (backgrounds) are pre-rendered video.
358
+ - https://www.cinetica.studio/ — the "composed chaos" register (stack
359
+ verified): Webflow + the FULL GSAP plugin suite (ScrollTrigger, SplitText,
360
+ ScrambleText, Flip, Draggable, InertiaPlugin, Observer, CustomEase) +
361
+ Lenis + embedded WebGL shader scenes (Unicorn Studio) + Spline + video.
362
+ Lesson: the crazy feel is mostly ELABORATE TEXT/LAYOUT CHOREOGRAPHY
363
+ (scramble, split-line, flip transitions, drag/inertia) layered over a few
364
+ shader surfaces — not one giant 3D scene.
365
+ - https://www.penguin-capital.co.jp/en and https://designxhand.com/experience
366
+ — the clean-expressive pole: Next.js/custom builds with three.js + GSAP +
367
+ Lenis (+ Lottie), a single full-page background canvas
368
+ (`pointer-events: none`) behind calm editorial type. Lesson: one quiet
369
+ WebGL layer + disciplined type can read premium-crazy without cinematic
370
+ darkness.
371
+
372
+ These teardowns were verified July 2026 and will age — sites redesign and
373
+ registers move on. At award-site ambition, when browser tools exist, spend ONE
374
+ fetch on a current source (Awwwards SOTD or godly.website) to confirm the
375
+ register you're chasing is still the frontier, and note in plan.md what you
376
+ saw. The stack LESSONS above outlive the sites themselves; the aesthetics
377
+ don't.
147
378
 
148
379
  Common thread: their 3D is **custom models, textures, and shaders**, not
149
380
  generated wallpapers behind text. If the environment has 3D-capable tooling and
@@ -155,10 +386,26 @@ question round — never impose it.
155
386
  ## 4. Write the plan, then execute it
156
387
 
157
388
  Persist the approved plan to `.dreative/plan.md` (or the scratchpad if
158
- `.dreative/` doesn't exist): capability manifest, every answer verbatim
159
- (including references studied with the distilled borrow-list and all
160
- free-text remarks), blueprint table, stack, mobile strategy, fallbacks. Long sessions lose context; the plan file is
161
- the re-entry point re-read it instead of re-deciding.
389
+ `.dreative/` doesn't exist): capability manifest, the **full Q&A transcript**
390
+ (each question asked + the answer, verbatim, including free-text remarks),
391
+ each SKIPPED question with the inference drawn from the prompt, references
392
+ studied with the distilled borrow-list, the concept exploration (DESIGN.md §2:
393
+ the three divergent concepts, the pick, and the rejects' one-line reasons —
394
+ same duty as media.md's set-piece exploration), blueprint table, stack, mobile
395
+ strategy, fallbacks. Long sessions lose context; the plan file is the re-entry
396
+ point — a resumed session re-reads it instead of re-deciding or re-asking.
397
+
398
+ **Then show the plan to the user in chat, before touching code.** Writing
399
+ `plan.md` is not the same as the user having seen it — after the last
400
+ question (§3.9) is answered, post a readable recap in the same conversation:
401
+ the blueprint table (§2), the ambition/depth/treatments chosen, the asset
402
+ plan and its honest cost, references studied and what was borrowed, and any
403
+ install offers taken. This is a plan RECAP, not another approval gate — don't
404
+ block on it unless mockups (§4b) were opted into — but skipping straight from
405
+ the last answer to "building now" without ever surfacing the plan is a bug:
406
+ the user answered several questions and is owed a look at what they add up to
407
+ before code starts. Keep it scannable (the table + a few bullets), not a
408
+ restatement of this whole file.
162
409
 
163
410
  ## 4b. Mockups (when the user opted in)
164
411
 
@@ -174,6 +421,12 @@ user sees in the mockup is what they'd see in the shipped page; nothing in the
174
421
  mockup that the build wouldn't do, nothing in the build's look that the mockup
175
422
  hides.
176
423
 
424
+ If the user chose **two divergent mockups** (§3.8), build the highest-impact
425
+ page twice — once per surviving explore-pass concept (genuinely different
426
+ palette/type/signature, not two tints of one idea) — and present both;
427
+ the user's pick becomes the committed concept and its reject reason goes in
428
+ the plan file.
429
+
177
430
  Write mockups to `.dreative/mockups/<page>.tsx` (or the scratchpad), serve or
178
431
  screenshot them for the user, and ask one approval question: approve / tweak
179
432
  (what) / rethink. Approved mockups become the source of truth — the full build
@@ -191,9 +444,10 @@ tweak feedback into the plan file before building.
191
444
  section apply to that section).
192
445
  4. **Effects + choreography** across sections (page-level timelines, transitions,
193
446
  the signature element).
194
- 5. **Verification** — the full runtime protocol (SKILL.md self-critique +
195
- runtime gates). Any effect that fails gets its planned fallback, and the
196
- final report says so: "shipped the §2 fallback for X because Y".
447
+ 5. **Verification** — the full runtime protocol (SKILL.md §V: runtime gates +
448
+ self-critique, mobile first, evidence written to `.dreative/verify.md`).
449
+ Any effect that fails gets its planned fallback, and the final report says
450
+ so: "shipped the §2 fallback for X because Y".
197
451
 
198
452
  Report against the plan when done: each blueprint row → shipped / fallback /
199
453
  cut (with reason), plus the motion inventory (motion.md §9) and the preservation