dreative 0.5.2 → 0.5.4
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/dist/cli/audit.js +87 -11
- package/dist/cli/audit.test.js +40 -1
- package/dist/cli/docsCheck.js +1 -1
- package/dist/server/index.js +10 -5
- package/dist/shared/artifacts.js +157 -4
- package/dist/shared/artifacts.test.js +101 -0
- package/dist/shared/design.js +212 -26
- package/dist/shared/design.test.js +70 -0
- package/dist/shared/ruleSystem.js +101 -11
- package/dist/shared/ruleSystem.test.js +94 -19
- package/dist/ui/assets/{index-CKwmbx2j.js → index-BQhYTdSa.js} +11 -11
- package/dist/ui/index.html +1 -1
- package/package.json +5 -5
- package/skill/dreative/DESIGN.md +47 -35
- package/skill/dreative/PLAN.md +97 -55
- package/skill/dreative/SKILL.md +35 -12
- package/skill/dreative/recipes/motion-recipes.md +24 -0
- package/skill/dreative/references/ARTIFACTS.md +52 -18
- package/skill/dreative/references/RULES.json +9 -9
- package/skill/dreative/references/TIERS.md +14 -6
- package/skill/dreative/schemas/plan.schema.json +161 -11
- package/skill/dreative/schemas/verify.schema.json +22 -2
- package/skill/dreative/skills/media.md +28 -14
- package/skill/dreative/skills/mobile.md +19 -13
- package/skill/dreative/skills/motion.md +45 -8
package/dist/ui/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Dreative</title>
|
|
7
|
-
<script type="module" crossorigin src="/assets/index-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-BQhYTdSa.js"></script>
|
|
8
8
|
<link rel="stylesheet" crossorigin href="/assets/index-y0gVjC7u.css">
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dreative",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "Frontend design skill for coding CLIs with typed planning, specialist treatments, verification, and an optional visual editor.",
|
|
3
|
+
"version": "0.5.4",
|
|
4
|
+
"description": "Frontend design skill for coding CLIs with typed planning, specialist treatments, verification, and an optional visual editor.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"dreative": "dist/cli/index.js"
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
"build": "npm run build:server && npm run build:ui",
|
|
15
15
|
"prepublishOnly": "npm run build",
|
|
16
16
|
"build:server": "tsc -p tsconfig.json",
|
|
17
|
-
"build:ui": "vite build",
|
|
18
|
-
"test": "npm run build:server && node --test dist/shared/*.test.js dist/cli/*.test.js",
|
|
19
|
-
"docs-check": "npm run build:server && node dist/cli/index.js docs-check",
|
|
17
|
+
"build:ui": "vite build",
|
|
18
|
+
"test": "npm run build:server && node --test dist/shared/*.test.js dist/cli/*.test.js",
|
|
19
|
+
"docs-check": "npm run build:server && node dist/cli/index.js docs-check",
|
|
20
20
|
"dev": "concurrently \"tsx watch src/cli/index.ts --no-open\" \"vite\"",
|
|
21
21
|
"start": "node dist/cli/index.js"
|
|
22
22
|
},
|
package/skill/dreative/DESIGN.md
CHANGED
|
@@ -4,7 +4,7 @@ You MUST read this file before servicing any `propose-skeletons`, `propose-varia
|
|
|
4
4
|
`design-page`, or `edit-element` request, and run §12 before every respond. It exists
|
|
5
5
|
because LLM-designed UIs converge on one templated look. Every rule corrects a known
|
|
6
6
|
model default, but its category determines how it governs. Requests may carry a `plan` (Dreative's
|
|
7
|
-
pre-computed
|
|
7
|
+
pre-computed constraints: dials, depth, source strategy, structural/mobile/expression contracts, budgets, and lints) — execute
|
|
8
8
|
the plan, apply this doctrine to everything the plan doesn't specify. When
|
|
9
9
|
`plan.skills` names specialist skills (`motion`, `3d`, `interaction`, `immersive`,
|
|
10
10
|
`cinematic`, `refined`, `media`, `ux`, `mobile`), the matching
|
|
@@ -156,7 +156,7 @@ its own plan didn't describe. Hard rules for any expressive+ no-media build:
|
|
|
156
156
|
the blueprint's layout-family words couldn't match them, the build
|
|
157
157
|
restyled a card list and called it the spine — that is a depth-honesty
|
|
158
158
|
failure (§11), not a detail.
|
|
159
|
-
2.
|
|
159
|
+
2. **Bespoke drawn/procedural artifacts carry the missing media role.** With no photography, the page
|
|
160
160
|
earns visual richness from things MADE for it: a live canvas (meter,
|
|
161
161
|
field, trace), custom SVG structure (rules, notches, connectors, dials —
|
|
162
162
|
drawn, not icon-font), procedural texture/grain, a data-driven ornament.
|
|
@@ -165,16 +165,14 @@ its own plan didn't describe. Hard rules for any expressive+ no-media build:
|
|
|
165
165
|
3. **Type does structural work.** Multi-scale composition (oversized
|
|
166
166
|
numerals/designators against small mono metadata), real hierarchy per §6
|
|
167
167
|
— not one font-size row layout repeated N times.
|
|
168
|
-
4. **Motion budget spends on the structure**, not on entrance fades: the
|
|
169
|
-
spine's own physicality (things racked, tossed, slid, stamped) is the
|
|
170
|
-
choreography. Motion.md's
|
|
171
|
-
5. **
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
parallax, a lit WebGL surface). A no-media award page with zero rendered
|
|
177
|
-
pixels is a text document with transitions. Vocabulary to draw from
|
|
168
|
+
4. **Motion budget spends on the structure**, not on entrance fades: the
|
|
169
|
+
spine's own physicality (things racked, tossed, slid, stamped) is the
|
|
170
|
+
choreography. Motion.md's treatment and verification rules apply.
|
|
171
|
+
5. **Choose a rendering layer only when it earns its cost.** No imagery can
|
|
172
|
+
justify Canvas/WebGL when a live procedural or data-driven surface is the
|
|
173
|
+
concept, but award ambition does not require one. Spatial typography,
|
|
174
|
+
layered DOM/SVG composition, masks, or other subject-grounded systems may be
|
|
175
|
+
stronger. Vocabulary to draw from when rendering is warranted
|
|
178
176
|
(subject-grounded, not decorative): oscilloscope/waveform traces driven by
|
|
179
177
|
real events · topographic contour lines drifting · dot-matrix/LED field
|
|
180
178
|
that spells live state · plexus line-network connecting related items ·
|
|
@@ -361,10 +359,17 @@ sites win on composition, not decoration; this is where that happens.
|
|
|
361
359
|
- Product register: responsive behavior is structural (collapse sidebar, responsive
|
|
362
360
|
table), not fluid type.
|
|
363
361
|
|
|
364
|
-
## 6. Motion
|
|
365
|
-
|
|
366
|
-
Every animation answers "what does this communicate?" — hierarchy, storytelling,
|
|
367
|
-
feedback, or state change. "It looked cool" = delete it.
|
|
362
|
+
## 6. Motion
|
|
363
|
+
|
|
364
|
+
Every animation answers "what does this communicate?" — hierarchy, storytelling,
|
|
365
|
+
feedback, or state change. "It looked cool" = delete it.
|
|
366
|
+
|
|
367
|
+
Motion has three roles. **Decorative motion** reveals, responds, or adds ambient
|
|
368
|
+
life. **Structural motion** controls hierarchy, pacing, pinning, and composition
|
|
369
|
+
handoffs. **Transformational motion** changes imagery/type/objects into a new
|
|
370
|
+
form or the next scene. Expressive/award pages evaluate key moments for the last
|
|
371
|
+
two roles; opacity, translate, scale, and slight parallax are not automatically
|
|
372
|
+
enough merely because they animate.
|
|
368
373
|
|
|
369
374
|
**The 100/300/500 rule:** 100-150ms instant feedback (press, toggle) · 200-300ms
|
|
370
375
|
state changes (menu, tooltip, hover) · 300-500ms layout changes (accordion, modal)
|
|
@@ -381,9 +386,12 @@ micro-interactions; the uniform fade-and-rise on every scrolled section is the
|
|
|
381
386
|
saturated AI tell. Some brands skip entrance motion entirely — restraint as voice.
|
|
382
387
|
Product = 150-250ms, state-conveying only, zero page-load choreography.
|
|
383
388
|
|
|
384
|
-
**Mechanics:**
|
|
385
|
-
|
|
386
|
-
|
|
389
|
+
**Mechanics:** use transform/opacity for ordinary local state when they fit, but
|
|
390
|
+
do not make them the unexamined expressive default. Select CSS, GSAP timelines,
|
|
391
|
+
ScrollTrigger, SVG, masks, `clip-path`, DOM fragments, Canvas, WebGL/shaders,
|
|
392
|
+
sequences, video, Lottie, or 3D by visual result, cost, responsiveness, and
|
|
393
|
+
available assets. Use the simplest mechanism capable of making the intended
|
|
394
|
+
transformation convincing. Never casually animate width/height/top/left/margins (use FLIP or
|
|
387
395
|
grid-template-rows). Sibling stagger `calc(var(--i) * 50ms)` capped at ~500ms total.
|
|
388
396
|
IntersectionObserver (unobserve after firing), CSS scroll-driven animations, or
|
|
389
397
|
Motion/GSAP scroll tools — `window.addEventListener("scroll")` is a hard ban. Reveals
|
|
@@ -541,8 +549,11 @@ route slugs, nav labels, form field names, logo, legal copy; extract brand token
|
|
|
541
549
|
before applying §4 (a purple brand stays purple); apply modernisation levers in
|
|
542
550
|
order — typography → spacing/rhythm → color recalibration → motion layer → hero
|
|
543
551
|
recomposition → full replacement only when unsalvageable. Honor existing
|
|
544
|
-
accessibility wins and analytics hooks.
|
|
545
|
-
`
|
|
552
|
+
accessibility wins and analytics hooks. `previousFile` is a composition source
|
|
553
|
+
only for `restyle`. For `relayout`, old code is a content/behavior inventory. For
|
|
554
|
+
`restructure` and `reimagine`, it is a wiring reference only: draft the new
|
|
555
|
+
blueprint independently, then reconcile routes, handlers, data, fields, states,
|
|
556
|
+
accessibility, analytics, required copy, and public APIs.
|
|
546
557
|
|
|
547
558
|
### The preservation contract (mandatory for ANY redesign of existing code)
|
|
548
559
|
|
|
@@ -637,9 +648,10 @@ coat of CSS on the old skeleton.
|
|
|
637
648
|
**The drastic-change floor (rungs 3–4).** The chronic failure at these rungs is
|
|
638
649
|
timidity: the agent rebuilds the components but reproduces the old page's shape,
|
|
639
650
|
so a before/after glance reads as a re-theme. That is a failed restructure. At
|
|
640
|
-
rung 3–4 the
|
|
641
|
-
|
|
642
|
-
|
|
651
|
+
rung 3–4 the structural-delta contract must name material changes to page
|
|
652
|
+
architecture, component boundaries, navigation, workflow, or interaction model.
|
|
653
|
+
Tokens, cards, decoration, and entrance motion cannot satisfy it. Relevant
|
|
654
|
+
paradigms can include:
|
|
643
655
|
|
|
644
656
|
- **Navigation model** — top bar → side rail / command palette / dock / sticky
|
|
645
657
|
chapter nav / full-screen overlay menu.
|
|
@@ -651,12 +663,12 @@ change at least TWO structural paradigms, not just their styling:
|
|
|
651
663
|
- **Hero concept** — a new signature idea (typographic monument, media plane,
|
|
652
664
|
3D object, kinetic composition), not the old hero with new colors.
|
|
653
665
|
|
|
654
|
-
Creativity is bounded by usability: every drastic move must still be MORE
|
|
666
|
+
These are diagnostic possibilities, not quotas. Creativity is bounded by usability: every drastic move must still be MORE
|
|
655
667
|
user-friendly than what it replaces — clearer hierarchy, fewer steps to the key
|
|
656
668
|
action, honest affordances, mobile ergonomics intact (§13, skills/ux.md). A
|
|
657
669
|
restructure that confuses users is as failed as one that changed nothing. The
|
|
658
|
-
self-critique pass
|
|
659
|
-
|
|
670
|
+
self-critique pass must explain why the implemented delta honestly satisfies the
|
|
671
|
+
chosen depth and how it improves use. If mid-work you discover the chosen rung cannot
|
|
660
672
|
honestly deliver the requested outcome (the reference look demands structure the
|
|
661
673
|
current markup can't express), say so and ask to move up one rung rather than
|
|
662
674
|
shipping an imitation. Rungs 3–4 on an extracted app still honor §11 preservation
|
|
@@ -734,11 +746,11 @@ On touch, whatever hover revealed must be visible by default or reachable by
|
|
|
734
746
|
tap — never lost. Custom cursors simply don't exist on touch; don't ship their
|
|
735
747
|
DOM/listeners there.
|
|
736
748
|
|
|
737
|
-
**Pinned/scrubbed sections**: pinning is fragile on mobile (URL-bar resize
|
|
749
|
+
**Pinned/scrubbed sections**: pinning is fragile on mobile (URL-bar resize
|
|
738
750
|
fires viewport changes mid-pin; iOS momentum scroll skips scrub frames).
|
|
739
|
-
Strategies in preference order: (1) keep the pin but shorten it
|
|
740
|
-
|
|
741
|
-
|
|
751
|
+
Strategies in preference order: (1) keep the pin but shorten it and drive it
|
|
752
|
+
with `position: sticky` when reliable; (2) redesign the same idea as a shorter
|
|
753
|
+
mask, layered-parallax, or state handoff sequence rather than merely disabling it;
|
|
742
754
|
(3) `ScrollTrigger.matchMedia()` / a `matchMedia` branch that swaps the whole
|
|
743
755
|
choreography. Never let a desktop pin length ride on a phone.
|
|
744
756
|
|
|
@@ -765,10 +777,10 @@ clamps DOWN gracefully (hero ≥ 2rem, body stays ≥ 16px — iOS zooms inputs
|
|
|
765
777
|
under 16px); sticky navs shrink rather than stack; test the three widths 320 /
|
|
766
778
|
768 / 1280 mentally before responding.
|
|
767
779
|
|
|
768
|
-
**Motion budget on mobile**:
|
|
769
|
-
|
|
770
|
-
off-screen
|
|
771
|
-
|
|
780
|
+
**Motion budget on mobile**: shorten travel and timelines according to content,
|
|
781
|
+
viewport, and measured device cost. Preserve one defining idea when feasible;
|
|
782
|
+
marquees pause off-screen and continuous rAF loops idle when nothing animates.
|
|
783
|
+
Battery is a design constraint, not a reason to erase the concept.
|
|
772
784
|
|
|
773
785
|
## 14. Typography sourcing (escape the first reflex)
|
|
774
786
|
|
package/skill/dreative/PLAN.md
CHANGED
|
@@ -34,17 +34,16 @@ Enumerate what your environment can actually produce, and write the result down
|
|
|
34
34
|
Rules:
|
|
35
35
|
- Probe by LOOKING (list your tools, `which ffmpeg`, check MCP config), never by
|
|
36
36
|
assuming. A capability you didn't verify doesn't exist.
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
generated stills + ken-burns or a shader surface; **no image-gen → media
|
|
37
|
+
- Missing video, 3D, or separated source layers is not automatically a blocker.
|
|
38
|
+
First plan the strongest honest treatment available from generated/sourced
|
|
39
|
+
stills, local image processing, transparent cutouts, SVG, CSS, Canvas,
|
|
40
|
+
generated keyframes, or existing project assets. Ask for a tool or source
|
|
41
|
+
asset only when the requested result cannot be approximated convincingly;
|
|
42
|
+
present the concrete best-effort fallback in that question. Never install a
|
|
43
|
+
tool silently and never leave an "advanced animation later" placeholder.
|
|
44
|
+
- The probe result changes the blueprint: no video-gen → stills become layered
|
|
45
|
+
scenes, masks, related keyframes, frame sequences, tiles/fragments, Canvas
|
|
46
|
+
samples, or shader textures as the concept warrants; **no image-gen → media
|
|
48
47
|
cells become `source-image` (DESIGN.md §7's priority: verified stock/CDN
|
|
49
48
|
photography), every planned cutout prop becomes a sourced-and-matted photo
|
|
50
49
|
or is cut, and any 3D of an organic real-world subject is re-planned as a
|
|
@@ -59,7 +58,7 @@ Rules:
|
|
|
59
58
|
Draft the page as a compact table BEFORE asking anything — the decision phase
|
|
60
59
|
presents choices about a concrete plan, not abstractions. Per section:
|
|
61
60
|
|
|
62
|
-
| section | layout family | media
|
|
61
|
+
| section | layout family | media + preparation | motion class/treatment | interaction | intensity | fallback |
|
|
63
62
|
|
|
64
63
|
- **media plan** — one of: `generate-image` (subject + exact aspect + palette/
|
|
65
64
|
light-temperature prompt notes), `generate-video` (loop subject, 5-10s,
|
|
@@ -72,8 +71,7 @@ presents choices about a concrete plan, not abstractions. Per section:
|
|
|
72
71
|
where media itself becomes the visitor-controlled spectacle, not a specific
|
|
73
72
|
catalog effect. A different solution uses a registered planning-time
|
|
74
73
|
substitution with observable success criteria and evidence IDs.
|
|
75
|
-
When
|
|
76
|
-
concepts with depth-capable assets), its
|
|
74
|
+
When a concept-led set-piece uses a depth dive, its
|
|
77
75
|
`generate-image` cell must plan a DEPTH-CAPABLE composition (a corridor,
|
|
78
76
|
room, landscape, machinery receding — something a camera can enter) and
|
|
79
77
|
the companion assets in the same cell: the depth map and/or the separated
|
|
@@ -102,17 +100,18 @@ presents choices about a concrete plan, not abstractions. Per section:
|
|
|
102
100
|
Every 3D prop cell also names its BERTH (3d.md §3): which lane/stage of
|
|
103
101
|
the section it occupies and what the layout does to make room — a prop
|
|
104
102
|
planned "over the hero image" or with no berth is an invalid cell.
|
|
105
|
-
At the `award` tier the outcome gate is one unmistakable
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
At
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
103
|
+
At the `award` tier the outcome gate is one unmistakable spatial, media,
|
|
104
|
+
typographic, or material signature that shapes the journey. If the concept
|
|
105
|
+
calls for a recognizable physical subject, use a real GLB or photoreal cutout
|
|
106
|
+
with a berth and source. Typography, layered photography, data, SVG/Canvas,
|
|
107
|
+
or a scene instrument may be the stronger direct choice; no substitution is
|
|
108
|
+
needed merely because 3D is absent. Generic orbs/blobs/toruses remain invalid.
|
|
109
|
+
At expressive/award, the media column records whether each hero/key image
|
|
110
|
+
stays flat or becomes motion-ready through cutouts, depth layers, masks,
|
|
111
|
+
fragments, maps, alternate states, a frame sequence, or a Canvas/WebGL
|
|
112
|
+
texture. Transform only where it strengthens the concept; a still may remain
|
|
113
|
+
flat as an intentional rest. The default in `media.keyAssetTreatment` is a
|
|
114
|
+
coherent asset-preparation decision, not a pixel-effect quota.
|
|
116
115
|
- **Travel map (mandatory when any element persists across sections).** If
|
|
117
116
|
the blueprint contains a fixed canvas object, a recurring signature, or any
|
|
118
117
|
scroll-morphing prop that lives through more than one section, add a travel
|
|
@@ -121,35 +120,67 @@ presents choices about a concrete plan, not abstractions. Per section:
|
|
|
121
120
|
it never sits over text or controls (DESIGN.md §15). No berth fits ⇒ the
|
|
122
121
|
object is scripted HIDDEN for that section. A persistent object without a
|
|
123
122
|
travel map is an unplanned collision that verify will find later — plan it
|
|
124
|
-
now.
|
|
125
|
-
|
|
123
|
+
now. When the set-piece claims transformation, its pixels, layers, form, or
|
|
124
|
+
role must visibly change; placement choreography alone does not qualify.
|
|
126
125
|
- **Diversity or development (dial ≥ 7 / expressive+).** Choose and record one
|
|
127
|
-
path in `creativeStrategy`. Diversity uses
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
plan gate, not a target:** at `expressive`/`award` ambition the blueprint
|
|
137
|
-
must enumerate every §9 item for its dial — which element carries it, what
|
|
138
|
-
triggers it — or explicitly name the item as cut with a reason. A plan that
|
|
139
|
-
neither covers nor justifies a §9 item is incomplete; rework it before
|
|
140
|
-
presenting, don't ship the gap to the build.
|
|
126
|
+
path in `creativeStrategy`. Diversity uses only the mechanisms and drivers the
|
|
127
|
+
concept needs, tied together by a shared language. Development evolves one
|
|
128
|
+
coherent signature through materially different roles with quieter support.
|
|
129
|
+
The same reveal repeated with different values is neither path. Do not add
|
|
130
|
+
unrelated mechanisms to satisfy a count.
|
|
131
|
+
- **motion treatment** — from motion.md/immersive.md/cinematic.md vocabulary,
|
|
132
|
+
with dial-appropriate ambition. At `expressive`/`award`, complete every
|
|
133
|
+
`motionTreatment` field below and name the element/driver for each planned
|
|
134
|
+
moment. A generic or incomplete treatment is reworked before presentation.
|
|
141
135
|
- **intensity (the pacing map)** — 1–10 per section: how loud this section is
|
|
142
136
|
(motion + media + visual weight combined). The page must read as a CURVE, not
|
|
143
137
|
a flat line: uniform intensity fails in both directions (all loud = exhausting,
|
|
144
|
-
all quiet = the set-piece feels bolted on). Place deliberate rests
|
|
145
|
-
|
|
146
|
-
|
|
138
|
+
all quiet = the set-piece feels bolted on). Place deliberate rests around
|
|
139
|
+
hero moments where the content permits so they land; supporting sections
|
|
140
|
+
should not compete with them. A blueprint whose
|
|
147
141
|
intensity column is all the same number is incomplete — rework the pacing
|
|
148
142
|
before presenting.
|
|
149
|
-
- **fallback** — for every ambitious cell (WebGL, sim, scrubbed sequence,
|
|
150
|
-
generated video), the concrete boring version that ships if the fancy one
|
|
151
|
-
fails runtime verification. A plan cell without a fallback is not ambitious,
|
|
152
|
-
it's fragile.
|
|
143
|
+
- **fallback** — for every ambitious cell (WebGL, sim, scrubbed sequence,
|
|
144
|
+
generated video), the concrete boring version that ships if the fancy one
|
|
145
|
+
fails runtime verification. A plan cell without a fallback is not ambitious,
|
|
146
|
+
it's fragile.
|
|
147
|
+
|
|
148
|
+
### Motion treatment and complexity budget
|
|
149
|
+
|
|
150
|
+
At expressive/award, write a coherent scene sequence before implementation. For
|
|
151
|
+
every major section record in `motionTreatment`:
|
|
152
|
+
|
|
153
|
+
- static composition and motion class (`none`, `decorative`, `structural`, or
|
|
154
|
+
`transformational`);
|
|
155
|
+
- starting and ending visual states;
|
|
156
|
+
- what changes, persists, pins, enters, transforms, combines, fragments, or exits;
|
|
157
|
+
- the handoff into the next composition;
|
|
158
|
+
- narrative/emotional purpose;
|
|
159
|
+
- rendering mechanism;
|
|
160
|
+
- mobile translation and reduced-motion state.
|
|
161
|
+
|
|
162
|
+
Decorative motion introduces or responds. Structural motion controls hierarchy,
|
|
163
|
+
pacing, pinning, and composition. Transformational motion changes form or turns
|
|
164
|
+
one composition into the next. Opacity, translate, scale, and light parallax are
|
|
165
|
+
not sufficient evidence of structural or transformational motion.
|
|
166
|
+
|
|
167
|
+
Record `motionComplexityBudget`: normally two or three hero moments (one is valid
|
|
168
|
+
for a short page), calm sections around them, shared motion language, target-
|
|
169
|
+
device limits, and progressive enhancement. Spend complexity where the story
|
|
170
|
+
changes state; do not distribute medium-complexity effects evenly.
|
|
171
|
+
|
|
172
|
+
Choose the simplest mechanism capable of producing the intended transformation
|
|
173
|
+
convincingly. Simplicity means implementation suitability, not visual blandness.
|
|
174
|
+
Choose deliberately among CSS, Motion, GSAP/ScrollTrigger, SVG masks/filters,
|
|
175
|
+
`clip-path`, DOM fragments, Canvas 2D, WebGL/shaders, image sequences, video,
|
|
176
|
+
Lottie/vector animation, and 3D. Neither basic transforms nor WebGL/3D/pixels are
|
|
177
|
+
an unexamined default.
|
|
178
|
+
|
|
179
|
+
Before approving the plan, record `antiDefaultReview` answers: are images mostly
|
|
180
|
+
fading/scaling/sliding; are sections independent reveals; where is the major
|
|
181
|
+
composition handoff; how does motion change visual state; could this system fit
|
|
182
|
+
an unrelated site; what is memorable; and how does movement express the concept?
|
|
183
|
+
If the result is generic at expressive/award, revise the scene plan now.
|
|
153
184
|
|
|
154
185
|
Plus four page-level lines: register + design read (DESIGN.md §2), signature
|
|
155
186
|
element, animation stack (ONE system: GSAP+Lenis or motion/react — motion.md §2),
|
|
@@ -160,10 +191,11 @@ discovered at build time: if the signature is a visual OBJECT, it must be a
|
|
|
160
191
|
subject a stranger names correctly (3d.md §1–2's subject test). An abstract
|
|
161
192
|
crude coded organic form is a hard-gate failure. Generic spheres/orbs/rings/
|
|
162
193
|
blobs/toruses with no brand-native function remain invalid signatures. The
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
194
|
+
award work chooses the medium that makes the signature most legible and
|
|
195
|
+
concept-specific. A real GLB or rung-2 transparent photoreal cutout is preferred
|
|
196
|
+
when the signature is a recognizable physical subject; spatial typography,
|
|
197
|
+
layered photography, data structure, or an interactive instrument can be the
|
|
198
|
+
direct plan when the concept supports it. **Coded custom 3D is
|
|
167
199
|
capability-gated at the probe (§1):** offer/plan it only when the probe
|
|
168
200
|
verified an actual quality path — a real GLB in reach, image-gen for
|
|
169
201
|
albedo/label textures, an HDRI/environment source. No verified texture path
|
|
@@ -231,8 +263,17 @@ hard cap 7). Structured tools always offer an "Other" free-text option, so
|
|
|
231
263
|
every question doubles as a remarks channel — and the last question asked
|
|
232
264
|
should explicitly invite extra direction.
|
|
233
265
|
|
|
234
|
-
1. **Depth** (redesigns of existing code only) — the §11 transformation-depth
|
|
235
|
-
ladder: restyle / re-layout / restructure / reimagine.
|
|
266
|
+
1. **Depth** (redesigns of existing code only) — the §11 transformation-depth
|
|
267
|
+
ladder: restyle / re-layout / restructure / reimagine.
|
|
268
|
+
Record it independently from ambition. For every page, write the current and
|
|
269
|
+
proposed models/paradigms, material changes, surviving/rebuilt boundaries,
|
|
270
|
+
preserved contracts, retained patterns with rationale, forbidden carryovers,
|
|
271
|
+
and a depth-honesty assessment. Then write the page-level mobile blueprint
|
|
272
|
+
(task, first viewport, exact order, thumb action, safe areas, navigation,
|
|
273
|
+
desktop translations, media/motion/forms, 390px and 320px compositions, and
|
|
274
|
+
why it is not desktop DOM stacking). Classify the page register before
|
|
275
|
+
composing; transactional, account, admin, and utility pages do not inherit a
|
|
276
|
+
marketing shell.
|
|
236
277
|
2. **Treatments** (multi-select — THE canonical skill-picker list). List every
|
|
237
278
|
option **individually**, never pre-bundled into a combo choice (a
|
|
238
279
|
"refined+motion+interaction+ux+mobile" single option is a bug — the user
|
|
@@ -472,7 +513,8 @@ Persist the approved plan first to `.dreative/plan.json` using
|
|
|
472
513
|
`references/ARTIFACTS.md` and `schemas/plan.schema.json`; this is the delivery
|
|
473
514
|
contract consumed by `dreative audit`. Render the same decisions as a readable
|
|
474
515
|
`.dreative/plan.md` for the user and session re-entry. Keep section and asset
|
|
475
|
-
statuses synchronized in JSON as the build progresses. Set `
|
|
516
|
+
statuses synchronized in JSON as the build progresses. Set `version: 3` and
|
|
517
|
+
`doctrineVersion: 3`,
|
|
476
518
|
record `implementationStartedAt` immediately before code changes, and ensure all
|
|
477
519
|
rule exceptions predate it. **The first time this run writes into
|
|
478
520
|
`.dreative/`, also write `.dreative/README.md`** with exactly this content
|
package/skill/dreative/SKILL.md
CHANGED
|
@@ -72,17 +72,30 @@ Detailed doctrine belongs in those references, not in this orchestration file.
|
|
|
72
72
|
work, show a page × skill matrix: the user can assign treatments to specific
|
|
73
73
|
pages, and approve routing for selected skills left unassigned. Every section
|
|
74
74
|
names its layout family, skills, assets, interactions, mobile translation,
|
|
75
|
-
fallback, and verification criteria.
|
|
75
|
+
fallback, and verification criteria. Expressive/award plans also include a
|
|
76
|
+
motion treatment for every major section: static composition, start/end
|
|
77
|
+
states, changes, pins, handoff, purpose, mechanism, mobile translation, and
|
|
78
|
+
reduced-motion state.
|
|
79
|
+
- For every existing page, record its register, source strategy, concrete
|
|
80
|
+
existing-versus-proposed structural delta, page-level mobile blueprint, and
|
|
81
|
+
typed verification criteria. `restyle` uses `patch`, `relayout` uses
|
|
82
|
+
`recompose`, and `restructure`/`reimagine` use `rebuild-from-contracts`.
|
|
83
|
+
Expressive/award pages also need a content/state-specific expression contract
|
|
84
|
+
or a documented intentional-calm rationale. Record project coherence without
|
|
85
|
+
repeating one branded shell across unlike page registers.
|
|
76
86
|
- Render a concise `.dreative/plan.md` for the user and for session re-entry.
|
|
77
87
|
|
|
78
88
|
The approved plan is a delivery contract. A section ends as `shipped`,
|
|
79
89
|
`fallback`, or `cut` with a reason—never silently omitted.
|
|
80
90
|
|
|
81
91
|
At `expressive` and `award`, choose one coherent quality path: `diversity`
|
|
82
|
-
(several mechanisms
|
|
83
|
-
mechanism evolving through
|
|
84
|
-
|
|
85
|
-
|
|
92
|
+
(several concept-related mechanisms/drivers) or `development` (one signature
|
|
93
|
+
mechanism evolving through materially different roles with quiet support).
|
|
94
|
+
Allocate a contextual motion-complexity budget: concentrate effort into a small
|
|
95
|
+
number of hero moments, name calm sections, and run the anti-default review.
|
|
96
|
+
Do not satisfy ambition through mechanism quotas. Experimental work explores one
|
|
97
|
+
non-obvious candidate per major section, then selects only the strongest two or
|
|
98
|
+
three to ship.
|
|
86
99
|
|
|
87
100
|
### 3.3 Select skills
|
|
88
101
|
|
|
@@ -117,16 +130,19 @@ must appear somewhere in the overall plan, but not on every page.
|
|
|
117
130
|
|
|
118
131
|
### 3.4 Build
|
|
119
132
|
|
|
120
|
-
- Prepare planned media before section implementation.
|
|
121
|
-
|
|
133
|
+
- Prepare planned media before section implementation. Treat generated stills as
|
|
134
|
+
raw material: decide whether each asset stays flat or needs cutouts, depth
|
|
135
|
+
layers, masks, fragments, variants, maps, or a frame sequence. Record the
|
|
136
|
+
decision, derivatives, rationale, and delivery status in the plan.
|
|
122
137
|
- Follow the chosen framework adapter and the repository's established patterns.
|
|
123
138
|
- Preserve the manifest unless the user explicitly approved a change; record
|
|
124
139
|
approved divergence with a reason.
|
|
125
140
|
- Implement blueprint sections in order. Keep the machine plan status current.
|
|
126
141
|
- Do not open recipe catalogs before `conceptExploration` records three
|
|
127
142
|
brand-native concepts. Record every recipe file and load time in `recipeAccess`.
|
|
128
|
-
- A restructure or reimagine
|
|
129
|
-
|
|
143
|
+
- A restructure or reimagine creates the new blueprint independently, uses old
|
|
144
|
+
code only as a behavior/wiring reference, and then reconciles preservation.
|
|
145
|
+
It is not a stylesheet-only restyle.
|
|
130
146
|
- Every heavy effect ships with its planned reduced-motion, mobile, loading, and
|
|
131
147
|
runtime fallback.
|
|
132
148
|
|
|
@@ -147,13 +163,20 @@ Verification is evidence, not prose asserting that something was checked.
|
|
|
147
163
|
|
|
148
164
|
1. Run the repository's targeted tests, typecheck, and build.
|
|
149
165
|
2. Run the page and perform the `ux` functional audit.
|
|
150
|
-
3. Verify desktop
|
|
166
|
+
3. Verify desktop (approximately 1280/1440px), 390×844 mobile, and a 320px
|
|
167
|
+
narrow-mobile fallback for every important page.
|
|
151
168
|
4. Check the console, links, forms, keyboard path, states, reduced motion,
|
|
152
169
|
responsive overflow, and pointer hit areas.
|
|
153
170
|
5. For motion/WebGL/video, record runtime evidence and performance numbers.
|
|
171
|
+
Capture initial, early, mid-transition, final, handoff, mobile, and
|
|
172
|
+
reduced-motion states; add pinned midpoint/exit states when pinning exists.
|
|
154
173
|
6. Reconcile every plan section and asset against what visibly shipped.
|
|
155
|
-
7.
|
|
156
|
-
|
|
174
|
+
7. At expressive/award, visually inspect the captured states, make at least one
|
|
175
|
+
refinement to timing, composition, readability, or continuity, and record it.
|
|
176
|
+
8. Write `.dreative/verify.json` v2. Associate each row to a typed criterion,
|
|
177
|
+
page/section, evidence kind, viewport class, and artifact/test. Run
|
|
178
|
+
`dreative audit`.
|
|
179
|
+
9. Fix every error. Warnings require either a fix or a recorded justification.
|
|
157
180
|
|
|
158
181
|
Every evidence-backed substitution references passing evidence IDs whose proof
|
|
159
182
|
meets its declared success criteria. Vague reasons such as "it did not fit",
|
|
@@ -21,6 +21,30 @@ in `recipeAccess`.
|
|
|
21
21
|
- Sticky CSS for simple pinning; cap pin length and remove/shorten on mobile.
|
|
22
22
|
- Velocity treatments use damped/clamped derivatives, never raw scroll deltas.
|
|
23
23
|
|
|
24
|
+
## Optional transformation patterns
|
|
25
|
+
|
|
26
|
+
Choose only patterns that express the concept:
|
|
27
|
+
|
|
28
|
+
- **Image fragmentation:** split a source into aligned DOM/SVG/Canvas tiles or
|
|
29
|
+
sampled pixels; disperse, filter, and reconstruct the actual image.
|
|
30
|
+
- **Composition handoff:** carry an object, mask, grid, or type structure from
|
|
31
|
+
one section into the next instead of resetting the page.
|
|
32
|
+
- **Layered image dive:** separate depth planes or use a depth map and move the
|
|
33
|
+
camera through the composition.
|
|
34
|
+
- **Mask migration:** evolve one mask window across images or sections.
|
|
35
|
+
- **Object persistence:** keep a key subject staged while its environment,
|
|
36
|
+
scale, supporting content, and berth change.
|
|
37
|
+
- **Generated-keyframe morph:** blend related still states through masking,
|
|
38
|
+
displacement, or a bounded frame sequence.
|
|
39
|
+
- **Pixel-to-object reconstruction:** assemble sampled text/image particles into
|
|
40
|
+
a recognizable subject.
|
|
41
|
+
- **Typography-to-image:** use readable type as mask, grid, path, or fragment
|
|
42
|
+
source that becomes imagery.
|
|
43
|
+
- **Environmental system:** drive texture, light, particles, type, and objects
|
|
44
|
+
from the same scroll/interaction state.
|
|
45
|
+
- **Editorial sequence:** treat a long section as one pinned timeline with
|
|
46
|
+
deliberate internal states rather than independent blocks.
|
|
47
|
+
|
|
24
48
|
## Type
|
|
25
49
|
|
|
26
50
|
- Split lines/words/characters only for selected display moments; keep accessible
|