dreative 0.4.1 → 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.
- package/README.md +35 -35
- package/dist/cli/index.js +38 -1
- package/dist/server/ai.js +177 -0
- package/dist/server/preview.js +73 -73
- package/dist/ui/index.html +11 -11
- package/package.json +1 -1
- package/skill/dreative/DESIGN.md +206 -15
- package/skill/dreative/PLAN.md +455 -157
- package/skill/dreative/SKILL.md +149 -128
- package/skill/dreative/skills/3d.md +113 -3
- package/skill/dreative/skills/cinematic.md +232 -232
- package/skill/dreative/skills/experimental.md +98 -0
- package/skill/dreative/skills/immersive.md +223 -223
- package/skill/dreative/skills/media.md +564 -216
- package/skill/dreative/skills/mobile.md +117 -117
- package/skill/dreative/skills/motion.md +31 -4
- package/skill/dreative/skills/refined.md +102 -102
- package/skill/dreative/skills/ux.md +144 -144
package/skill/dreative/PLAN.md
CHANGED
|
@@ -1,157 +1,455 @@
|
|
|
1
|
-
# Dreative Plan Mode — decide everything before the first line of code
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
**
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
1
|
+
# Dreative Plan Mode — decide everything before the first line of code
|
|
2
|
+
|
|
3
|
+
This skill is for **drastic change** — a section, a page, or the whole site being
|
|
4
|
+
meaningfully redesigned or built. It is not for button tweaks or single-token
|
|
5
|
+
nudges unless the user explicitly invokes it for one.
|
|
6
|
+
|
|
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.
|
|
12
|
+
|
|
13
|
+
The failure this file prevents: jumping into code with half a brief, discovering
|
|
14
|
+
mid-build that media/tools/structure are missing, and shipping a page that is
|
|
15
|
+
60% of what the user actually wanted.
|
|
16
|
+
|
|
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.
|
|
21
|
+
|
|
22
|
+
## 1. Capability probe (before proposing anything)
|
|
23
|
+
|
|
24
|
+
Enumerate what your environment can actually produce, and write the result down
|
|
25
|
+
(one line per capability in the plan file, §4). Check for:
|
|
26
|
+
|
|
27
|
+
- **Image generation** — an image-gen tool/MCP, or a CLI that produces images.
|
|
28
|
+
- **Video generation** — a video-gen tool/MCP (seamless loops, image-to-video).
|
|
29
|
+
- **Browser tools** — screenshot + console + interaction (needed for the
|
|
30
|
+
verification protocol; note it if absent).
|
|
31
|
+
- **Asset tooling** — anything for compression/conversion (ffmpeg on PATH,
|
|
32
|
+
sharp/squoosh in the project) for posters, loops, and frame sequences.
|
|
33
|
+
|
|
34
|
+
Rules:
|
|
35
|
+
- Probe by LOOKING (list your tools, `which ffmpeg`, check MCP config), never by
|
|
36
|
+
assuming. A capability you didn't verify doesn't exist.
|
|
37
|
+
- If a capability is missing but the design clearly wants it (e.g. a cinematic
|
|
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
|
+
- The probe result changes the blueprint: no video-gen → hero loops become
|
|
47
|
+
generated stills + ken-burns or a shader surface; **no image-gen → media
|
|
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
|
|
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).
|
|
56
|
+
|
|
57
|
+
## 2. The blueprint (section-by-section, media-first)
|
|
58
|
+
|
|
59
|
+
Draft the page as a compact table BEFORE asking anything — the question round
|
|
60
|
+
presents choices about a concrete plan, not abstractions. Per section:
|
|
61
|
+
|
|
62
|
+
| section | layout family | media plan | motion treatment | interaction | intensity | fallback |
|
|
63
|
+
|
|
64
|
+
- **media plan** — one of: `generate-image` (subject + exact aspect + palette/
|
|
65
|
+
light-temperature prompt notes), `generate-video` (loop subject, 5-10s,
|
|
66
|
+
seamless), `generate-sequence` (N frames for scroll scrub), `real-asset`
|
|
67
|
+
(exists in repo / user must supply — name it), `none`. Media enters through
|
|
68
|
+
the motion system per `skills/media.md` — name the treatment (curtain reveal,
|
|
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.
|
|
124
|
+
- **motion treatment** — from motion.md/immersive.md/cinematic.md vocabulary,
|
|
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.
|
|
139
|
+
- **fallback** — for every ambitious cell (WebGL, sim, scrubbed sequence,
|
|
140
|
+
generated video), the concrete boring version that ships if the fancy one
|
|
141
|
+
fails runtime verification. A plan cell without a fallback is not ambitious,
|
|
142
|
+
it's fragile.
|
|
143
|
+
|
|
144
|
+
Plus four page-level lines: register + design read (DESIGN.md §2), signature
|
|
145
|
+
element, animation stack (ONE system: GSAP+Lenis or motion/react — motion.md §0),
|
|
146
|
+
and the mobile strategy per ambitious effect (DESIGN.md §13).
|
|
147
|
+
|
|
148
|
+
## 3. The questions (ONE question per call, asked in sequence)
|
|
149
|
+
|
|
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.
|
|
169
|
+
|
|
170
|
+
1. **Depth** (redesigns of existing code only) — the §11 transformation-depth
|
|
171
|
+
ladder: restyle / re-layout / restructure / reimagine.
|
|
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.
|
|
229
|
+
3. **Media & asset types** (multi-select) — offer every asset class the probe
|
|
230
|
+
found tools for, and let choices stack: `generated images` · `generated
|
|
231
|
+
video loops` · `custom 3D` (real models/geometry, textures, and shaders
|
|
232
|
+
built in code — top-tier 3D sites are made of custom 3D assets, not
|
|
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)".
|
|
239
|
+
**State the cost honestly: image/video generation is token-intensive** — say
|
|
240
|
+
roughly how many assets the blueprint wants and that each costs real
|
|
241
|
+
tokens/time, so "images only" or "placeholders" is a legitimate budget
|
|
242
|
+
choice, not a downgrade. If a needed tool is missing, this is where the
|
|
243
|
+
install offer goes ("I can add <X> MCP for video generation — ok?").
|
|
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
|
|
275
|
+
designing (SKILL.md's references rule: fetch the site / read the image,
|
|
276
|
+
distill what specifically to borrow — palette, type feel, layout family,
|
|
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.
|
|
283
|
+
6. **Vibe & audience** (when the brief is thin) — 3-4 contrasting directions
|
|
284
|
+
as options, each a one-line register + palette + energy sketch ("quiet
|
|
285
|
+
luxury: bone, near-black serif, almost no motion" vs "electric launch:
|
|
286
|
+
drenched color, kinetic type"), plus who the page must convince (buyers /
|
|
287
|
+
investors / recruiters / fans). This seeds DESIGN.md §2's design read.
|
|
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
|
|
302
|
+
(existing brand tokens to keep, CMS/content that must survive, deadline
|
|
303
|
+
implying the safe tier).
|
|
304
|
+
8. **Mockups first?** — offer to build 1:1 mockups BEFORE the full build:
|
|
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.
|
|
319
|
+
9. **Final remarks** — close the round with an open catch-all: "Anything else
|
|
320
|
+
I should know or you'd love to see — specific effects, colors you hate,
|
|
321
|
+
sections to add or kill?" Options: "no, go build" / "yes (write it in
|
|
322
|
+
Other)". Everything written here lands verbatim in the plan file and is
|
|
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.
|
|
328
|
+
|
|
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);
|
|
335
|
+
ambiguity discovered mid-build resolves by the plan's spirit + doctrine
|
|
336
|
+
defaults.
|
|
337
|
+
|
|
338
|
+
### Calibration references (what the top tiers actually look like)
|
|
339
|
+
|
|
340
|
+
When the user picks award-site ambition or 3d/immersive/cinematic treatments,
|
|
341
|
+
these are the bar (fetch and study whichever is closest before designing):
|
|
342
|
+
|
|
343
|
+
- https://www.experiencethebestyou.com/en-GB/ — coordinated scroll choreography
|
|
344
|
+
+ heavy custom 3D/motion throughout.
|
|
345
|
+
- https://unseen.co/projects/contra/ and https://unseen.co/projects/letter/ —
|
|
346
|
+
WebGL media planes, shader transitions, kinetic type (browse
|
|
347
|
+
https://unseen.co/projects for more in the same family).
|
|
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.
|
|
378
|
+
|
|
379
|
+
Common thread: their 3D is **custom models, textures, and shaders**, not
|
|
380
|
+
generated wallpapers behind text. If the environment has 3D-capable tooling and
|
|
381
|
+
the user opted in, build real 3D material (geometry, materials, lighting,
|
|
382
|
+
shader surfaces per `skills/3d.md`); reserve generated images/video for what
|
|
383
|
+
3D can't do. This tier only happens when the user explicitly chose it in the
|
|
384
|
+
question round — never impose it.
|
|
385
|
+
|
|
386
|
+
## 4. Write the plan, then execute it
|
|
387
|
+
|
|
388
|
+
Persist the approved plan to `.dreative/plan.md` (or the scratchpad if
|
|
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.
|
|
409
|
+
|
|
410
|
+
## 4b. Mockups (when the user opted in)
|
|
411
|
+
|
|
412
|
+
Pick the page(s) with the **biggest/most important planned change** (usually
|
|
413
|
+
1–2; the blueprint tells you which). For each, build a mockup that is a **1:1
|
|
414
|
+
replica of exactly what the full build would produce** — same stack, same
|
|
415
|
+
markup structure, same type/color/spacing, same motion and effects actually
|
|
416
|
+
running (real GSAP/Lenis/three.js code, not a note saying "animation here").
|
|
417
|
+
It is built for VISUAL judgment, not function: strip data fetching, handlers,
|
|
418
|
+
and routing to representative literals — like SKILL.md's replica/design-page
|
|
419
|
+
files (single file, default export, self-contained). The rule is: what the
|
|
420
|
+
user sees in the mockup is what they'd see in the shipped page; nothing in the
|
|
421
|
+
mockup that the build wouldn't do, nothing in the build's look that the mockup
|
|
422
|
+
hides.
|
|
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
|
+
|
|
430
|
+
Write mockups to `.dreative/mockups/<page>.tsx` (or the scratchpad), serve or
|
|
431
|
+
screenshot them for the user, and ask one approval question: approve / tweak
|
|
432
|
+
(what) / rethink. Approved mockups become the source of truth — the full build
|
|
433
|
+
replicates them exactly and extends the system to the remaining pages. Fold
|
|
434
|
+
tweak feedback into the plan file before building.
|
|
435
|
+
|
|
436
|
+
**Execution order (always):**
|
|
437
|
+
|
|
438
|
+
1. **Assets first.** Generate every planned image/video/sequence NOW, at the
|
|
439
|
+
blueprint's aspect ratios, graded to the palette (media.md §1). Sections get
|
|
440
|
+
designed around real assets, not around placeholders that "will be swapped".
|
|
441
|
+
2. **Foundation.** Install and WIRE the animation stack (motion.md §8), fonts,
|
|
442
|
+
tokens, providers — before any section code.
|
|
443
|
+
3. **Sections** in blueprint order, each honoring its row (skills tagged per
|
|
444
|
+
section apply to that section).
|
|
445
|
+
4. **Effects + choreography** across sections (page-level timelines, transitions,
|
|
446
|
+
the signature element).
|
|
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".
|
|
451
|
+
|
|
452
|
+
Report against the plan when done: each blueprint row → shipped / fallback /
|
|
453
|
+
cut (with reason), plus the motion inventory (motion.md §9) and the preservation
|
|
454
|
+
ledger when §11 applies. A build that silently diverges from its approved plan
|
|
455
|
+
is a bug even when it looks good.
|