@marver-design/marver 0.2.2 → 0.2.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/{build-CNoXE13J.mjs → build-Bqd6OEsQ.mjs} +2 -2
- package/dist/cli.mjs +3 -3
- package/dist/{dev-Blyy4jOL.mjs → dev-9-80L5i5.mjs} +2 -2
- package/dist/{init-3h9pXEzp.mjs → init-Di4geblA.mjs} +171 -24
- package/dist/{manifest-CHmKAAtG.mjs → manifest-mYlO_1Pj.mjs} +78 -2
- package/dist/{plugin-DiDJA9n-.mjs → plugin-YVpBNTB3.mjs} +1 -1
- package/package.json +1 -1
- package/src/client/shell/App.tsx +78 -16
- package/src/client/shell/Play.tsx +36 -0
- package/src/client/shell/canvas/Canvas.tsx +54 -7
- package/src/client/shell/canvas/FrameNode.tsx +14 -1
- package/src/client/shell/icons.tsx +2 -0
- package/src/client/shell/store.ts +115 -14
- package/src/client/shell/styles.css +86 -0
- package/src/client/shell/tidy.ts +347 -17
- package/src/client/stage/main.tsx +11 -3
- package/templates/AGENTS-embedded.md +25 -11
- package/templates/AGENTS-studio.md +25 -11
- package/templates/design-tsconfig.json +7 -2
- package/templates/instructions/boards.md +47 -1
- package/templates/instructions/configure.md +5 -2
- package/templates/instructions/discover.md +8 -1
- package/templates/instructions/welcome.md +122 -0
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Run this phase for any NEW surface, feature, or project. Skip it only when a brief
|
|
4
4
|
already answers everything below. Its output is a written brief; nothing gets designed
|
|
5
|
-
until the brief has a human nod.
|
|
5
|
+
until the brief has a human nod. (One exception: the first-session draft
|
|
6
|
+
(welcome.md) skips the brief - the human just said what they are building.)
|
|
6
7
|
|
|
7
8
|
## 1. Read the repo, then interview
|
|
8
9
|
|
|
@@ -41,6 +42,12 @@ Create `design/scenes/<scene>/_brief.md`: audience + scene, the one job, mode, t
|
|
|
41
42
|
flow as a numbered list, content sources, out-of-scope. Ten lines, not a document.
|
|
42
43
|
Show it. Get the nod.
|
|
43
44
|
|
|
45
|
+
**Unattended?** When the human is away or has said "don't ask", the interview and
|
|
46
|
+
the nod convert to obligations, not blockers: answer the five questions yourself
|
|
47
|
+
from the repo and reasonable product judgment, mark the brief `UNCONFIRMED` at the
|
|
48
|
+
top, proceed - and surface the brief FIRST when the human returns. Never stall on
|
|
49
|
+
an absent human; never hide that the brief was self-answered.
|
|
50
|
+
|
|
44
51
|
## 4. Align on flow with a diagram frame
|
|
45
52
|
|
|
46
53
|
When the flow has branches or more than four screens, draw it before wireframing:
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Welcome - the human's first session
|
|
2
|
+
|
|
3
|
+
Run this the FIRST time you work with the human in a repo, or whenever they ask
|
|
4
|
+
what marver is or how it works. Unsure whether they were already welcomed? If
|
|
5
|
+
design/DESIGN.md is missing or no curated board exists yet, treat it as not
|
|
6
|
+
yet. The job: by the end of the session the human understands the tool, has
|
|
7
|
+
seen their own product on the canvas, and knows what to do next. Narrate as you
|
|
8
|
+
go - one short plain sentence per step, teaching by doing, never a lecture.
|
|
9
|
+
|
|
10
|
+
## Voice - tell the story, not the machinery
|
|
11
|
+
|
|
12
|
+
These instruction files are stage directions, not a script to read aloud. Never
|
|
13
|
+
narrate them to the human ("setup.md says...", "step 2 requires...", "per the
|
|
14
|
+
generated instructions I must...") - speak as a designer who is excited to
|
|
15
|
+
start: what we're doing, why it matters, what comes next. Intent over
|
|
16
|
+
internals; one warm, concrete sentence beats three procedural ones.
|
|
17
|
+
|
|
18
|
+
- Robotic: "Init flagged that there's no app yet and pointed me to setup.md.
|
|
19
|
+
I'm following that file now, and step one is a conversation with you."
|
|
20
|
+
- Human: "Canvas is in. Before anything gets built I want to know what we're
|
|
21
|
+
making - that decides everything else."
|
|
22
|
+
|
|
23
|
+
Precision still matters - engineers are reading - but the file paths, step
|
|
24
|
+
numbers, and phase names are yours, not theirs.
|
|
25
|
+
|
|
26
|
+
When you ask the human to choose (the stack, a variant direction), use your
|
|
27
|
+
harness's structured question tool (AskUserQuestion or similar) if one exists -
|
|
28
|
+
short option labels, one-line trade-offs, and a small ASCII sketch per option
|
|
29
|
+
when the choice is visual. Plain prose is the fallback, never the preference.
|
|
30
|
+
Asking through the tool IS the stop: no further tool calls after it, wait for
|
|
31
|
+
the answer.
|
|
32
|
+
|
|
33
|
+
## The pitch (say it early, in your own words)
|
|
34
|
+
|
|
35
|
+
marver co-designs the user experience with the human in real code. Frames are
|
|
36
|
+
not mockups - they are components using the app's actual theme and component
|
|
37
|
+
library. The theme, components, and screens shaped while designing ARE the
|
|
38
|
+
app's building blocks: by the time the design is agreed, most of the UI work
|
|
39
|
+
already exists, and building the product means plugging functionality into it.
|
|
40
|
+
The goal is full alignment on look and feel - across light and dark, across
|
|
41
|
+
every device size - before app logic is written.
|
|
42
|
+
|
|
43
|
+
## Empty repo?
|
|
44
|
+
|
|
45
|
+
design/instructions/setup.md is the authority (it exists only while the repo
|
|
46
|
+
has no app). Follow it end to end; it sends you back here for the reveal.
|
|
47
|
+
|
|
48
|
+
## The waiting room - hand them the hosted tour while you build
|
|
49
|
+
|
|
50
|
+
Building well takes real minutes, and the human should spend them inside a
|
|
51
|
+
canvas, not watching a terminal. The moment the plan is agreed (the stack nod,
|
|
52
|
+
or the Path B confirmation below), send them to the marver tour - a published
|
|
53
|
+
canvas made to be explored: https://tour.marver.design - password `welcome`.
|
|
54
|
+
It teaches selection, devices, themes, variants, and play mode from inside the
|
|
55
|
+
frames, and it ends by sending them back to check on your work. Then build
|
|
56
|
+
without narrating into the void; your next message is the reveal.
|
|
57
|
+
|
|
58
|
+
## Existing codebase - first session flow
|
|
59
|
+
|
|
60
|
+
1. **Say what the app is.** Read the repo (entry point, routes, key screens).
|
|
61
|
+
State your understanding of the product in 2-3 sentences, ask "did I get
|
|
62
|
+
that right?" - then STOP: no further tool calls, end your turn, resume when
|
|
63
|
+
the human replies. (Only exception: they explicitly asked for unattended
|
|
64
|
+
execution - assume, mark UNCONFIRMED, surface it first.)
|
|
65
|
+
2. **Confirm the stack aloud - what detection ACTUALLY found.** Read AGENTS.md's
|
|
66
|
+
UI line and design/theme.css and narrate the reality, for example: "Tailwind
|
|
67
|
+
+ shadcn/ui; brand tokens in <file>; design/theme.css imports them." No
|
|
68
|
+
component library? Say that, and what it means (shared pieces get extracted
|
|
69
|
+
to design/components/). Anything wrong gets fixed now, while it is cheap
|
|
70
|
+
(configure.md, old-repo checklist). Once confirmed, hand them the hosted
|
|
71
|
+
tour (the waiting room above) and get to work.
|
|
72
|
+
3. **Put THEIR product on the canvas - impressively.** Recreate 3-4 of the
|
|
73
|
+
app's real screens as frames from its real components, linked with data-goto
|
|
74
|
+
so play mode flows, working in both themes, responsive. This is the human's
|
|
75
|
+
first impression of the canvas: hold it to the craft bar
|
|
76
|
+
(instructions/craft.md, instructions/reference/slop.md). Create a curated
|
|
77
|
+
board for the set. First sessions skip the written-brief ceremony, never the
|
|
78
|
+
quality bar; real work after the tour runs the full method ladder.
|
|
79
|
+
4. **Explain the working model while building:** existing components are reused
|
|
80
|
+
as-is; missing pieces are created as presentational components - fixture
|
|
81
|
+
props, placeholder handlers - and get real wiring at promotion (where they
|
|
82
|
+
live is AGENTS.md's structure ladder). Look and feel converges first;
|
|
83
|
+
production becomes plugging functionality into agreed UI.
|
|
84
|
+
5. **Offer a divergence.** "Want a variant of <frame> exploring a different
|
|
85
|
+
direction?" One a-/b- pair teaches the variant workflow better than any
|
|
86
|
+
explanation.
|
|
87
|
+
6. **Give the tour** (below), ending with the deep link.
|
|
88
|
+
|
|
89
|
+
## The reveal
|
|
90
|
+
|
|
91
|
+
Deliver conversationally when the first draft is ready - a short guided
|
|
92
|
+
message, not a manual. Start `npx marver dev` if it is not already running
|
|
93
|
+
(allowed for this purpose) and ALWAYS hand a deep link to the board you
|
|
94
|
+
prepared, using the port the dev server PRINTED:
|
|
95
|
+
`http://localhost:<port>/#/b/<board>` - never the bare root URL. The link goes
|
|
96
|
+
at the BOTTOM of the message, on its own line: the human reads through, then
|
|
97
|
+
clicks. The human has already played with the hosted tour by now, so keep it
|
|
98
|
+
short - let their own product carry the moment. The highlights, all real
|
|
99
|
+
features:
|
|
100
|
+
|
|
101
|
+
- **Select and preview.** Click frames (shift-click for several). Digit keys
|
|
102
|
+
switch device presets - 1-4 for the configured devices, 0 back to each
|
|
103
|
+
frame's own size - scoped to the selection when one exists, the whole board
|
|
104
|
+
otherwise. `d` cycles light/dark the same way: selected frames, or the
|
|
105
|
+
entire canvas view (frames pinned to a theme in their meta stay put).
|
|
106
|
+
- **Touch it.** Double-click a frame - the purple ring is interact mode: the
|
|
107
|
+
frame is live, clickable, scrollable.
|
|
108
|
+
- **Play it.** `p` opens play mode: the design full screen in a device, with
|
|
109
|
+
data-goto links navigating between frames like the real app. `[` and `]`
|
|
110
|
+
switch variants in place; devices switch inside play too, including
|
|
111
|
+
full-screen fill.
|
|
112
|
+
- **Explore alternatives.** Letter-prefixed sibling files (a-bold.tsx,
|
|
113
|
+
b-minimal.tsx) form a variant group - badged, kept contiguous, compared at a
|
|
114
|
+
glance. The cheap way to diverge on a direction before committing.
|
|
115
|
+
- **Compose.** `t` re-tidies; boards carry a `layout` recipe for deliberate
|
|
116
|
+
arrangement (instructions/boards.md).
|
|
117
|
+
- **Share it.** `marver build` bundles the boards; `marver serve` with
|
|
118
|
+
MARVER_PASSWORD on any Node host (Railway, Fly, a VPS) publishes them as a
|
|
119
|
+
password-gated canvas the human owns - colleagues get the link plus the
|
|
120
|
+
password. Comments on the board are coming soon.
|
|
121
|
+
|
|
122
|
+
Close by asking what they want to design first.
|