synthesisui 0.16.62 → 0.16.63

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.
@@ -166,29 +166,107 @@ about which one is the page. Read a screen and see.
166
166
  **\`fonts\` and \`concept\`** - the voice, and one paragraph on what this product is. The concept
167
167
  feeds every recommendation downstream, so a real one beats a generic one by a wide margin.
168
168
 
169
- ### 3. Confirm once, then send
169
+ ### 3. Walk them through the decisions, one at a time
170
170
 
171
- You have made three decisions on their behalf by now - **where** you measured, **what** it will
172
- be called, and **which values** carry which meaning. Put all three in one place and ask. Not a
173
- report that contains a question at the bottom: a question.
171
+ Four decisions are theirs. **Ask them as separate questions with selectable options** - use your
172
+ question tool, one call per decision, so they pick instead of reading a wall and composing a
173
+ reply. A single block containing everything is a report, and a report gets read, not answered.
174
174
 
175
- Offer the alternatives you actually considered, so choosing is a choice and not a veto:
175
+ Every question carries **your recommendation first, marked as such**, and the evidence for it in
176
+ one line. They are choosing, not auditing you.
176
177
 
178
+ **3a. Source** - the folder you measure the system out of.
179
+
180
+ Options are the candidates the CLI already ranked, each with what it would produce, plus the
181
+ whole repo, plus *somewhere else* for a path they type:
182
+
183
+ \`\`\`
184
+ Where should the system come from?
185
+
186
+ packages/ui (recommended) 114 files · 47% of its values already named ·
187
+ 92 tokens of their own · every app imports it
188
+ the whole repo 2797 files · 36% · the average of one dark app
189
+ and two light ones, which is a diagnosis and
190
+ not a system
191
+ apps/web-dashboard the heaviest consumer, if you want one app's
192
+ vocabulary rather than the shared one
193
+ somewhere else a path you name
194
+ \`\`\`
195
+
196
+ If they name a path you cannot use, say which of the two it is and offer the list again:
197
+
198
+ - **it does not exist**, or holds no files you can read
199
+ - **it holds no design values** - no colours, no radii, no tokens. A folder of server code or
200
+ config is not a design system, and measuring it produces a system of nothing.
201
+
202
+ **3b. Name** - suggest theirs, and let Enter take it:
203
+
204
+ \`\`\`
205
+ What should it be called? (SignalUI)
206
+ \`\`\`
207
+
208
+ Say where the suggestion came from - \`Introduction.mdx\`, the package name, the folder. A name
209
+ they recognise is worth more than a clever one. The slug is derived once and never changes, so
210
+ this is the moment.
211
+
212
+ **3c. Primary** - and explain the role before offering the choice, because *primary* is our word
213
+ and not necessarily theirs:
214
+
215
+ \`\`\`
216
+ Primary is the colour that carries action - buttons, links, focus, the thing
217
+ you want pressed. Everything else in the system is measured for contrast
218
+ against it.
219
+
220
+ #059aed ocean-500 (recommended) your ColorPalette.mdx calls Ocean the
221
+ "Primary branding scale"
222
+ #1a4ed8 royal-blue-500 your docs label this one secondary
223
+ #ec4899 vivid-pink-500 half of your signature AI gradient
224
+ #4A90E2 blue-500 the most-painted blue in the folder,
225
+ but it sits after your own
226
+ /* End - Signal UI */ marker
177
227
  \`\`\`
178
- I'd create a system from packages/ui, called SignalUI, opening dark.
179
228
 
180
- from packages/ui 114 files, 47% of its values already named
181
- (apps/web-dashboard, apps/web-review and apps/web-admin
182
- are the consumers; measuring all of them gave 36%, which
183
- is the average of a light app and two dark ones)
184
- called SignalUI their own name, from Introduction.mdx
185
- brand #059aed their docs call Ocean the primary scale
186
- opens dark data-theme="dark" in the root layout
229
+ Always name the hex AND the token, and always give the reason a value is *not* recommended when
230
+ frequency would have picked it. That last row is the whole point of asking.
187
231
 
188
- This creates it on your account. Go ahead, or change any of these?
232
+ **3d. Default theme** - which face it opens in:
233
+
234
+ \`\`\`
235
+ dark (recommended) data-theme="dark" in the root layout, next-themes
236
+ defaultTheme="dark", enableSystem={false}
237
+ light the other one, also real here
238
+ \`\`\`
239
+
240
+ **Two is all there is** - a SynthesisUI system carries one palette and one alternate, and the
241
+ schema is \`"light" | "dark"\`. So this is not "which themes do you support", it is "which one do
242
+ docs and installs open in". If both are real, both get built from their own tokens; this picks
243
+ the face.
244
+
245
+ **3e. Canvas** - confirm, do not offer a list. The page is measured, not chosen:
246
+
247
+ \`\`\`
248
+ canvas #222326 darkgray-500 - what DashboardLayout paints on <main>
249
+ (your sidebar sits a step deeper at darkgray-700)
189
250
  \`\`\`
190
251
 
191
- Then, and only after they answer:
252
+ Say it and let them object. Offering five near-blacks to pick between is asking someone to
253
+ re-decide something their code already decided.
254
+
255
+ **3f. Fonts** - do not ask at all. Report and move on:
256
+
257
+ \`\`\`
258
+ fonts Figtree for both display and body - the only family declared
259
+ (--font-sans, and next/font Figtree in all three root layouts)
260
+ \`\`\`
261
+
262
+ If a project genuinely declares two families, say which is which and why you paired them that
263
+ way. If it declares one, there is nothing to decide.
264
+
265
+ **A note on colour swatches.** You cannot paint a hex in this conversation, so the token name
266
+ carries the weight - \`ocean-500\` tells someone more than a square would. When they run
267
+ \`npx synthesisui import\` themselves in a terminal, the CLI paints them.
268
+
269
+ Then, and only after all four are answered:
192
270
 
193
271
  \`\`\`
194
272
  npx synthesisui import --census _synthesisui/census.json --name "<the name>" [--registry <from step 0>]
@@ -196,10 +274,11 @@ npx synthesisui import --census _synthesisui/census.json --name "<the name>" [--
196
274
 
197
275
  **This is the one real write.** Everything before it is on their disk and costs nothing to redo.
198
276
 
199
- The CLI asks for a name unless \`--name\` is passed, and it does **not** ask about the scheme when
200
- your reading already answered - a second question would only be a chance to contradict you. So
201
- if you skip the confirmation above, nobody is asked about the scope at all, and the first time
202
- they learn where their system came from is when they open it.
277
+ Pass every answer explicitly - \`--name\`, \`--scope\` if they changed it, and the reading rewritten
278
+ with their primary and their theme. The CLI cannot ask anything when you are the one running it:
279
+ it has no terminal, so its own prompts are skipped by design. **Whatever you did not ask, nobody
280
+ asked.** Skip 3a and the first time they learn where their system came from is when they open
281
+ it.
203
282
 
204
283
  If it refuses, it says which of the three it is: no session, an expired one, or a token issued
205
284
  by a different host. All are recoverable from the census on disk; none need a re-measure.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synthesisui",
3
- "version": "0.16.62",
3
+ "version": "0.16.63",
4
4
  "description": "Bring SynthesisUI design systems into any project - tokens, typed components, whole pages and an agent-ready CLAUDE.md manifest.",
5
5
  "type": "module",
6
6
  "bin": {