@momentiq/dark-factory-cli 3.0.2 → 3.1.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.
Files changed (52) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +3 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/mode.d.ts.map +1 -1
  5. package/dist/commands/mode.js +120 -22
  6. package/dist/commands/mode.js.map +1 -1
  7. package/dist/commands/skills.d.ts.map +1 -1
  8. package/dist/commands/skills.js +11 -1
  9. package/dist/commands/skills.js.map +1 -1
  10. package/dist/commands/verify.d.ts.map +1 -1
  11. package/dist/commands/verify.js +113 -8
  12. package/dist/commands/verify.js.map +1 -1
  13. package/dist/mcp/tools/skills-install.d.ts.map +1 -1
  14. package/dist/mcp/tools/skills-install.js +8 -3
  15. package/dist/mcp/tools/skills-install.js.map +1 -1
  16. package/dist/mode/critic-registration.d.ts +30 -10
  17. package/dist/mode/critic-registration.d.ts.map +1 -1
  18. package/dist/mode/critic-registration.js +31 -10
  19. package/dist/mode/critic-registration.js.map +1 -1
  20. package/dist/mode/guard.d.ts.map +1 -1
  21. package/dist/mode/guard.js +30 -2
  22. package/dist/mode/guard.js.map +1 -1
  23. package/dist/mode/init.d.ts +8 -4
  24. package/dist/mode/init.d.ts.map +1 -1
  25. package/dist/mode/init.js +148 -12
  26. package/dist/mode/init.js.map +1 -1
  27. package/dist/mode/preview-capture.d.ts +3 -0
  28. package/dist/mode/preview-capture.d.ts.map +1 -0
  29. package/dist/mode/preview-capture.js +137 -0
  30. package/dist/mode/preview-capture.js.map +1 -0
  31. package/dist/mode/preview.d.ts +227 -0
  32. package/dist/mode/preview.d.ts.map +1 -0
  33. package/dist/mode/preview.js +802 -0
  34. package/dist/mode/preview.js.map +1 -0
  35. package/dist/onboard/seeders/design-md.d.ts.map +1 -1
  36. package/dist/onboard/seeders/design-md.js +512 -17
  37. package/dist/onboard/seeders/design-md.js.map +1 -1
  38. package/dist/skills/install.d.ts +25 -5
  39. package/dist/skills/install.d.ts.map +1 -1
  40. package/dist/skills/install.js +34 -17
  41. package/dist/skills/install.js.map +1 -1
  42. package/dist/skills/known-skills.d.ts +2 -0
  43. package/dist/skills/known-skills.d.ts.map +1 -0
  44. package/dist/skills/known-skills.js +25 -0
  45. package/dist/skills/known-skills.js.map +1 -0
  46. package/package.json +2 -2
  47. package/skills/designer-build/SKILL.md.tmpl +14 -0
  48. package/skills/designer-handoff/SKILL.md.tmpl +28 -1
  49. package/skills/verify/producer/README.md +29 -4
  50. package/skills/verify/producer/playwright-route.sh +10 -0
  51. package/skills/verify/producer/surface-declaration.ts +373 -0
  52. package/skills/verify/producer/ui-route.producer.spec.ts +44 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/mode/preview.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"design-md.d.ts","sourceRoot":"","sources":["../../../src/onboard/seeders/design-md.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,YAAY,CAAC;AAoGtD,eAAO,MAAM,cAAc,EAAE,MA0B5B,CAAC"}
1
+ {"version":3,"file":"design-md.d.ts","sourceRoot":"","sources":["../../../src/onboard/seeders/design-md.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,MAAM,EAAe,MAAM,YAAY,CAAC;AAqoBtD,eAAO,MAAM,cAAc,EAAE,MA+B5B,CAAC"}
@@ -7,15 +7,31 @@
7
7
  // block + human-readable design intent underneath — the design-side sibling
8
8
  // of AGENTS.md. Deterministic emitter:
9
9
  //
10
- // - UI repo (react/next/vue/svelte/angular/... in `analysis.dependencies`)
11
- // → full skeleton with token placeholders + a reuse-existing-components
12
- // mandate (the guidance Designer Mode's persona and the chief-designer
13
- // critic bind to).
14
- // - No UI dependencies minimal declaration that the repo currently has
15
- // no UI surface, so agents don't invent one; the skeleton upgrades when
16
- // a UI lands.
10
+ // - UI repo (react/next/vue/svelte/angular/... in `analysis.dependencies`,
11
+ // OR a detected design system) → full skeleton with a reuse-existing-
12
+ // components mandate (the guidance Designer Mode's persona and the
13
+ // chief-designer critic bind to). The token frontmatter is a BEST-EFFORT
14
+ // DRAFT derived from the repo's detected design system (issue #356):
15
+ // * Tailwind config colors (`tailwind.config.{js,ts,cjs,mjs}` text
16
+ // heuristic, never eval'd);
17
+ // * CSS custom properties — Tailwind v4 `@theme { --color-*|--font-*|
18
+ // --spacing* }` and generic `:root { --… }` blocks;
19
+ // * a light component-library inventory (count + sample names under the
20
+ // detected `components/` / `ui/` roots).
21
+ // Where a category detects nothing it degrades to the static skeleton
22
+ // placeholder with an explicit TODO marker the operator refines.
23
+ // - No UI dependencies and no detected design system → minimal declaration
24
+ // that the repo currently has no UI surface, so agents don't invent one;
25
+ // the skeleton upgrades when a UI lands.
17
26
  // - Repo already has a DESIGN.md → explicit `skip` plan (observability in
18
27
  // the onboard dry-run rendering), never overwrite.
28
+ //
29
+ // Detection is heuristic and dependency-free: it reads a bounded set of files
30
+ // off `analysis.repoRoot` and MUST degrade to the skeleton on any parse or
31
+ // I/O failure — a broken detector can never crash the seed (belt-and-braces
32
+ // with `runSeeders`' per-seeder try/catch).
33
+ import { readdir, readFile } from "node:fs/promises";
34
+ import { join } from "node:path";
19
35
  const UI_DEPENDENCY_NAMES = new Set([
20
36
  "react",
21
37
  "react-dom",
@@ -40,7 +56,450 @@ function repoName(input) {
40
56
  const name = input.analysis.repo?.name;
41
57
  return name && name.length > 0 ? name : "this repo";
42
58
  }
43
- const TOKEN_FRONTMATTER = `---
59
+ function emptyTokens() {
60
+ return {
61
+ colors: [],
62
+ fonts: [],
63
+ spacing: [],
64
+ componentCount: 0,
65
+ componentExamples: [],
66
+ sources: [],
67
+ };
68
+ }
69
+ function hasAnyTokens(t) {
70
+ return (t.colors.length > 0 ||
71
+ t.fonts.length > 0 ||
72
+ t.spacing.length > 0 ||
73
+ t.componentCount > 0);
74
+ }
75
+ // Directories a repo scan must never descend into (build output, deps, VCS).
76
+ const SKIP_DIRS = new Set([
77
+ "node_modules",
78
+ "dist",
79
+ "build",
80
+ "out",
81
+ "coverage",
82
+ "vendor",
83
+ "tmp",
84
+ "temp",
85
+ "target",
86
+ ".git",
87
+ ]);
88
+ const MAX_DEPTH = 7;
89
+ const MAX_ENTRIES = 6000;
90
+ const MAX_CSS_CANDIDATES = 40;
91
+ const MAX_CSS_READ = 15;
92
+ const MAX_COMPONENT_FILES = 600;
93
+ const COLORS_CAP = 24;
94
+ const FONTS_CAP = 12;
95
+ const SPACING_CAP = 24;
96
+ const COMPONENT_EXAMPLES_CAP = 24;
97
+ const COMPONENT_EXT = /\.(tsx|jsx|vue|svelte)$/i;
98
+ const NON_COMPONENT_FILE = /\.(test|spec|stories)\./i;
99
+ // Framework routing / barrel files that are not reusable UI components.
100
+ const NON_COMPONENT_NAME = /^(index|page|layout|route|loading|error|not-found|template|default)$/i;
101
+ function isComponentPath(rel) {
102
+ return /(^|\/)(components?|ui)(\/|$)/i.test(rel);
103
+ }
104
+ async function scanTree(root) {
105
+ const css = [];
106
+ const componentFiles = [];
107
+ let visited = 0;
108
+ let bestCssRank = Number.POSITIVE_INFINITY;
109
+ // Retain the best MAX_CSS_CANDIDATES `.css` files by (rank, base) — NOT the
110
+ // first N in traversal order. A high-signal file (globals.css / theme.css)
111
+ // discovered late must never be dropped in favor of low-signal CSS modules
112
+ // found earlier, or the seeder emits a placeholder-only DESIGN.md even
113
+ // though real tokens exist. Correctness of the ranked set takes precedence
114
+ // over walk cost; MAX_ENTRIES bounds the worst-case I/O regardless.
115
+ function considerCss(abs, base) {
116
+ const rank = cssRank(base);
117
+ if (rank < bestCssRank)
118
+ bestCssRank = rank;
119
+ if (css.length < MAX_CSS_CANDIDATES) {
120
+ css.push({ abs, base, rank });
121
+ return;
122
+ }
123
+ let worstIdx = 0;
124
+ for (let i = 1; i < css.length; i++) {
125
+ const c = css[i];
126
+ const w = css[worstIdx];
127
+ if (c.rank > w.rank || (c.rank === w.rank && c.base > w.base))
128
+ worstIdx = i;
129
+ }
130
+ const worst = css[worstIdx];
131
+ if (rank < worst.rank || (rank === worst.rank && base < worst.base)) {
132
+ css[worstIdx] = { abs, base, rank };
133
+ }
134
+ }
135
+ // Perf early-exit (only in a form that cannot discard a high-signal file):
136
+ // stop once components are saturated AND the candidate set is full AND we
137
+ // already hold a rank-0 CSS file — no later file can outrank rank 0, so
138
+ // further traversal cannot change detection. Absent a rank-0 hit we keep
139
+ // scanning so ranked retention stays correct.
140
+ function canStopEarly() {
141
+ return (componentFiles.length >= MAX_COMPONENT_FILES &&
142
+ css.length >= MAX_CSS_CANDIDATES &&
143
+ bestCssRank === 0);
144
+ }
145
+ async function walk(absDir, relDir, depth) {
146
+ if (depth > MAX_DEPTH || visited > MAX_ENTRIES || canStopEarly())
147
+ return;
148
+ let entries;
149
+ try {
150
+ entries = await readdir(absDir, { withFileTypes: true });
151
+ }
152
+ catch {
153
+ // Permission denied / transient — treat as empty, keep scanning siblings.
154
+ return;
155
+ }
156
+ // Deterministic traversal order — the emitted DESIGN.md (token order and
157
+ // first-wins dedupe precedence) must not depend on filesystem readdir order.
158
+ entries.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
159
+ for (const entry of entries) {
160
+ if (visited > MAX_ENTRIES || canStopEarly())
161
+ return;
162
+ const name = entry.name;
163
+ if (name.startsWith("."))
164
+ continue;
165
+ const rel = relDir ? `${relDir}/${name}` : name;
166
+ if (entry.isDirectory()) {
167
+ if (SKIP_DIRS.has(name))
168
+ continue;
169
+ await walk(join(absDir, name), rel, depth + 1);
170
+ }
171
+ else if (entry.isFile()) {
172
+ visited += 1;
173
+ const lower = name.toLowerCase();
174
+ if (lower.endsWith(".css")) {
175
+ considerCss(join(absDir, name), name);
176
+ }
177
+ else if (COMPONENT_EXT.test(lower) &&
178
+ !NON_COMPONENT_FILE.test(lower) &&
179
+ !NON_COMPONENT_NAME.test(name.replace(COMPONENT_EXT, "")) &&
180
+ isComponentPath(rel) &&
181
+ componentFiles.length < MAX_COMPONENT_FILES) {
182
+ componentFiles.push(name);
183
+ }
184
+ }
185
+ }
186
+ }
187
+ await walk(root, "", 0);
188
+ return { css, componentFiles };
189
+ }
190
+ // Prefer the files most likely to hold the design-token declarations.
191
+ const CSS_PRIORITY = [
192
+ "globals",
193
+ "global",
194
+ "theme",
195
+ "tokens",
196
+ "app",
197
+ "index",
198
+ "main",
199
+ "base",
200
+ "root",
201
+ "styles",
202
+ "style",
203
+ ];
204
+ function cssRank(base) {
205
+ const b = base.toLowerCase();
206
+ for (let i = 0; i < CSS_PRIORITY.length; i++) {
207
+ if (b.includes(CSS_PRIORITY[i]))
208
+ return i;
209
+ }
210
+ return CSS_PRIORITY.length;
211
+ }
212
+ // --- Tailwind config (v3) — colors + font families via bounded text scrape ---
213
+ const TAILWIND_CONFIG_NAMES = [
214
+ "tailwind.config.js",
215
+ "tailwind.config.ts",
216
+ "tailwind.config.cjs",
217
+ "tailwind.config.mjs",
218
+ ];
219
+ async function readTailwindConfig(root) {
220
+ for (const name of TAILWIND_CONFIG_NAMES) {
221
+ try {
222
+ return await readFile(join(root, name), "utf8");
223
+ }
224
+ catch {
225
+ // try the next candidate
226
+ }
227
+ }
228
+ return undefined;
229
+ }
230
+ // Flat `name: '<color>'` pairs only — deliberately does NOT parse nested color
231
+ // objects, arrays, spreads or `require()` refs (issue #356 keeps this a
232
+ // best-effort v3 secondary path; the CSS `@theme` route covers Tailwind v4).
233
+ const TAILWIND_COLOR_RE = /(['"]?)([A-Za-z][\w-]*)\1\s*:\s*(['"])(#[0-9a-fA-F]{3,8}|rgba?\([^)]*\)|hsla?\([^)]*\)|oklch\([^)]*\)|oklab\([^)]*\))\3/g;
234
+ function extractTailwindColors(text) {
235
+ const out = [];
236
+ let m;
237
+ TAILWIND_COLOR_RE.lastIndex = 0;
238
+ while ((m = TAILWIND_COLOR_RE.exec(text)) !== null) {
239
+ out.push([m[2], m[4]]);
240
+ }
241
+ return out;
242
+ }
243
+ // `family: ['Inter', ...]` inside a bounded window after `fontFamily:`. The
244
+ // array literal is what distinguishes a font family from a color/spacing key.
245
+ const TAILWIND_FONT_RE = /(['"]?)([A-Za-z][\w-]*)\1\s*:\s*\[\s*(['"])([^'"\r\n]{1,60})\3/g;
246
+ function extractTailwindFonts(text) {
247
+ const idx = text.search(/fontFamily\s*:/);
248
+ if (idx < 0)
249
+ return [];
250
+ const region = text.slice(idx, idx + 2000);
251
+ const out = [];
252
+ let m;
253
+ TAILWIND_FONT_RE.lastIndex = 0;
254
+ while ((m = TAILWIND_FONT_RE.exec(region)) !== null) {
255
+ out.push([m[2], m[4]]);
256
+ }
257
+ return out;
258
+ }
259
+ // --- CSS custom properties — Tailwind v4 `@theme` + generic `:root` ---
260
+ const CSS_BLOCK_RE = /(?::root\b|@theme\b)[^{}]*\{([^{}]*)\}/g;
261
+ const CSS_PROP_RE = /(--[A-Za-z0-9_-]+)\s*:\s*([^;]+);/g;
262
+ const COLOR_VALUE_RE = /^(#|rgb|hsl|oklch|oklab|hwb|lab|lch|color\()/i;
263
+ const DIMENSION_VALUE_RE = /^-?\d*\.?\d+(px|rem|em|%|vh|vw|ch|pt)?$/i;
264
+ function extractCssProps(css) {
265
+ const out = [];
266
+ let block;
267
+ CSS_BLOCK_RE.lastIndex = 0;
268
+ while ((block = CSS_BLOCK_RE.exec(css)) !== null) {
269
+ const body = block[1];
270
+ let prop;
271
+ CSS_PROP_RE.lastIndex = 0;
272
+ while ((prop = CSS_PROP_RE.exec(body)) !== null) {
273
+ out.push([prop[1], prop[2].trim()]);
274
+ }
275
+ }
276
+ return out;
277
+ }
278
+ // Map a custom property to one of the three DESIGN.md token categories. Prefer
279
+ // the Tailwind v4 namespace (`--color-*`, `--font-*`, `--spacing*`), then fall
280
+ // back to a name/value heuristic for hand-rolled `:root` variables.
281
+ function mapCssProp(name, value, into) {
282
+ const lower = name.toLowerCase();
283
+ if (lower.startsWith("--color-")) {
284
+ into.colors.push([name.slice("--color-".length), value]);
285
+ return;
286
+ }
287
+ if (lower.startsWith("--font-")) {
288
+ into.fonts.push([name.slice("--font-".length), value]);
289
+ return;
290
+ }
291
+ if (lower === "--spacing" || lower.startsWith("--spacing-")) {
292
+ into.spacing.push([name.replace(/^--/, ""), value]);
293
+ return;
294
+ }
295
+ // Non-namespaced fallback (generic `:root` custom properties).
296
+ const bare = name.replace(/^--/, "");
297
+ if (COLOR_VALUE_RE.test(value) &&
298
+ /(color|bg|background|foreground|border|accent|primary|secondary|surface|muted|brand|ring|input|destructive|card|popover)/i.test(lower)) {
299
+ into.colors.push([bare, value]);
300
+ return;
301
+ }
302
+ if (/font/i.test(lower)) {
303
+ into.fonts.push([bare, value]);
304
+ return;
305
+ }
306
+ if (/(space|spacing|gap|radius)/i.test(lower) || DIMENSION_VALUE_RE.test(value)) {
307
+ into.spacing.push([bare, value]);
308
+ }
309
+ }
310
+ function dedupeCap(pairs, cap) {
311
+ const seen = new Set();
312
+ const out = [];
313
+ for (const [k, v] of pairs) {
314
+ if (!k || !v)
315
+ continue;
316
+ if (seen.has(k))
317
+ continue;
318
+ seen.add(k);
319
+ out.push([k, v]);
320
+ if (out.length >= cap)
321
+ break;
322
+ }
323
+ return out;
324
+ }
325
+ function componentNames(files) {
326
+ const seen = new Set();
327
+ const out = [];
328
+ for (const file of files) {
329
+ const name = file.replace(COMPONENT_EXT, "");
330
+ const safe = name.replace(/[^\w.-]/g, "");
331
+ if (!safe || NON_COMPONENT_NAME.test(safe) || seen.has(safe))
332
+ continue;
333
+ seen.add(safe);
334
+ out.push(safe);
335
+ }
336
+ out.sort((a, b) => a.localeCompare(b));
337
+ return out.slice(0, COMPONENT_EXAMPLES_CAP);
338
+ }
339
+ async function detectDesignSystem(repoRoot) {
340
+ const tokens = emptyTokens();
341
+ if (typeof repoRoot !== "string" || repoRoot.length === 0)
342
+ return tokens;
343
+ try {
344
+ // Tailwind config (v3) — colors + font families.
345
+ try {
346
+ const tw = await readTailwindConfig(repoRoot);
347
+ if (tw) {
348
+ const colors = extractTailwindColors(tw);
349
+ const fonts = extractTailwindFonts(tw);
350
+ if (colors.length > 0 || fonts.length > 0) {
351
+ tokens.colors.push(...colors);
352
+ tokens.fonts.push(...fonts);
353
+ tokens.sources.push("tailwind.config");
354
+ }
355
+ }
356
+ }
357
+ catch {
358
+ // ignore — best-effort
359
+ }
360
+ const { css, componentFiles } = await scanTree(repoRoot);
361
+ // CSS custom properties (Tailwind v4 @theme + generic :root).
362
+ try {
363
+ const ordered = [...css].sort((a, b) => a.rank - b.rank || (a.base < b.base ? -1 : a.base > b.base ? 1 : 0));
364
+ let cssMatched = false;
365
+ for (const cand of ordered.slice(0, MAX_CSS_READ)) {
366
+ let text;
367
+ try {
368
+ text = await readFile(cand.abs, "utf8");
369
+ }
370
+ catch {
371
+ continue;
372
+ }
373
+ for (const [name, value] of extractCssProps(text)) {
374
+ const before = tokens.colors.length + tokens.fonts.length + tokens.spacing.length;
375
+ mapCssProp(name, value, tokens);
376
+ if (tokens.colors.length + tokens.fonts.length + tokens.spacing.length >
377
+ before) {
378
+ cssMatched = true;
379
+ }
380
+ }
381
+ }
382
+ if (cssMatched) {
383
+ tokens.sources.push("CSS custom properties (@theme / :root)");
384
+ }
385
+ }
386
+ catch {
387
+ // ignore — best-effort
388
+ }
389
+ // Component-library inventory.
390
+ if (componentFiles.length > 0) {
391
+ tokens.componentCount = componentFiles.length;
392
+ tokens.componentExamples = componentNames(componentFiles);
393
+ tokens.sources.push("component-library scan");
394
+ }
395
+ }
396
+ catch {
397
+ // Any unexpected failure → degrade to the static skeleton.
398
+ return emptyTokens();
399
+ }
400
+ tokens.colors = dedupeCap(tokens.colors, COLORS_CAP);
401
+ tokens.fonts = dedupeCap(tokens.fonts, FONTS_CAP);
402
+ tokens.spacing = dedupeCap(tokens.spacing, SPACING_CAP);
403
+ return tokens;
404
+ }
405
+ // ---------------------------------------------------------------------------
406
+ // YAML-safe emission
407
+ // ---------------------------------------------------------------------------
408
+ // Sanitize a detected string for safe embedding as a double-quoted YAML
409
+ // scalar: no newlines (would break the scalar / could inject keys), no `---`
410
+ // run (frontmatter-delimiter collision), collapse whitespace, escape the
411
+ // backslash + double-quote, and cap the length.
412
+ function yamlSafe(value) {
413
+ const flat = value
414
+ .replace(/[\r\n]+/g, " ")
415
+ .replace(/-{3,}/g, "—")
416
+ .replace(/\s+/g, " ")
417
+ .trim();
418
+ const capped = flat.length > 80 ? `${flat.slice(0, 80)}…` : flat;
419
+ return capped.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
420
+ }
421
+ function q(value) {
422
+ return `"${yamlSafe(value)}"`;
423
+ }
424
+ function commentSafe(text) {
425
+ return text.replace(/[\r\n]+/g, " ").replace(/-{3,}/g, "—").trim();
426
+ }
427
+ function frontmatterHeader(tokens) {
428
+ if (!hasAnyTokens(tokens)) {
429
+ return [
430
+ "# DESIGN.md — machine-readable design tokens (Google Labs DESIGN.md spec).",
431
+ "# Replace the placeholder values below with your product's real tokens;",
432
+ "# agents treat this block as the single source of design truth.",
433
+ ];
434
+ }
435
+ const src = tokens.sources.length > 0 ? tokens.sources.join(", ") : "repo scan";
436
+ return [
437
+ "# DESIGN.md — machine-readable design tokens (Google Labs DESIGN.md spec).",
438
+ `# Best-effort auto-detected from this repo's design system (${commentSafe(src)}).`,
439
+ "# Detection is heuristic — review every value, resolve the TODO markers, and",
440
+ "# prune anything that is not a real design token. Agents treat this block as",
441
+ "# the single source of design truth.",
442
+ ];
443
+ }
444
+ function colorsBlock(tokens) {
445
+ const lines = ["colors:"];
446
+ if (tokens.colors.length > 0) {
447
+ for (const [k, v] of tokens.colors)
448
+ lines.push(` ${q(k)}: ${q(v)}`);
449
+ }
450
+ else {
451
+ lines.push(' primary: "#4f46e5" # TODO replace with your brand color');
452
+ lines.push(' surface: "#ffffff" # TODO');
453
+ lines.push(' text: "#111827" # TODO');
454
+ lines.push(' muted: "#6b7280" # TODO');
455
+ }
456
+ return lines;
457
+ }
458
+ function typographyBlock(tokens) {
459
+ const primary = tokens.fonts.length > 0 ? q(tokens.fonts[0][1]) : null;
460
+ const lines = ["typography:", " body:"];
461
+ lines.push(` family: ${primary ?? '"system-ui" # TODO set body font'}`);
462
+ lines.push(' size: "16px"');
463
+ lines.push(" lineHeight: 1.5");
464
+ lines.push(" heading:");
465
+ lines.push(` family: ${primary ?? '"system-ui" # TODO set heading font'}`);
466
+ lines.push(" weight: 600");
467
+ if (tokens.fonts.length > 0) {
468
+ lines.push(" families: # detected font tokens — assign to body/heading above, prune the rest");
469
+ for (const [k, v] of tokens.fonts)
470
+ lines.push(` ${q(k)}: ${q(v)}`);
471
+ }
472
+ return lines;
473
+ }
474
+ function spacingBlock(tokens) {
475
+ const lines = ["spacing:", ' unit: "4px" # TODO confirm your base spacing unit'];
476
+ if (tokens.spacing.length > 0) {
477
+ lines.push(" tokens: # detected spacing scale");
478
+ for (const [k, v] of tokens.spacing)
479
+ lines.push(` ${q(k)}: ${q(v)}`);
480
+ }
481
+ else {
482
+ lines.push(" scale: [4, 8, 12, 16, 24, 32, 48]");
483
+ }
484
+ return lines;
485
+ }
486
+ function componentsBlock(tokens) {
487
+ const lines = [
488
+ "components:",
489
+ ' policy: "reuse existing components before creating new ones"',
490
+ ];
491
+ if (tokens.componentCount > 0) {
492
+ lines.push(` detected_count: ${tokens.componentCount}`);
493
+ if (tokens.componentExamples.length > 0) {
494
+ const arr = tokens.componentExamples.map(q).join(", ");
495
+ lines.push(` examples: [${arr}]`);
496
+ }
497
+ }
498
+ return lines;
499
+ }
500
+ // The original static frontmatter — used verbatim for the no-UI-surface repo,
501
+ // where declaring the absence of a design system is the point.
502
+ const STATIC_TOKEN_FRONTMATTER = `---
44
503
  # DESIGN.md — machine-readable design tokens (Google Labs DESIGN.md spec).
45
504
  # Replace the placeholder values below with your product's real tokens;
46
505
  # agents treat this block as the single source of design truth.
@@ -64,8 +523,39 @@ components:
64
523
  policy: "reuse existing components before creating new ones"
65
524
  ---
66
525
  `;
67
- function uiBody(name) {
68
- return `${TOKEN_FRONTMATTER}
526
+ function renderFrontmatter(tokens) {
527
+ const lines = [
528
+ "---",
529
+ ...frontmatterHeader(tokens),
530
+ ...colorsBlock(tokens),
531
+ ...typographyBlock(tokens),
532
+ ...spacingBlock(tokens),
533
+ ...componentsBlock(tokens),
534
+ "---",
535
+ "",
536
+ ];
537
+ return lines.join("\n");
538
+ }
539
+ function componentInventorySection(tokens) {
540
+ if (tokens.componentCount === 0)
541
+ return "";
542
+ const list = tokens.componentExamples.length > 0
543
+ ? tokens.componentExamples.map((n) => `- \`${n}\``).join("\n")
544
+ : "_(no component names sampled — see the count above)_";
545
+ return `
546
+ ## Component Inventory (detected)
547
+
548
+ \`df onboard\` detected **${tokens.componentCount}** component file(s) under this
549
+ repo's \`components/\` / \`ui/\` roots. Reuse these before creating new ones:
550
+
551
+ ${list}
552
+
553
+ _Heuristic inventory — verify it against the real component library and prune
554
+ anything that isn't a reusable UI component._
555
+ `;
556
+ }
557
+ function uiBody(name, tokens) {
558
+ return `${renderFrontmatter(tokens)}
69
559
  # ${name} — Design System
70
560
 
71
561
  Seeded by \`df onboard\` (cycle 27). This file is the design-side sibling of
@@ -88,10 +578,10 @@ Describe density, tone, motion, and imagery expectations.
88
578
  - DO take every color, font, and spacing value from the tokens above.
89
579
  - DON'T introduce new colors, fonts, or spacing values outside the tokens.
90
580
  - DON'T remove accessibility affordances (focus rings, labels, contrast).
91
- `;
581
+ ${componentInventorySection(tokens)}`;
92
582
  }
93
583
  function noUiBody(name) {
94
- return `${TOKEN_FRONTMATTER}
584
+ return `${STATIC_TOKEN_FRONTMATTER}
95
585
  # ${name} — Design System
96
586
 
97
587
  Seeded by \`df onboard\` (cycle 27). ${name} currently exposes **no UI
@@ -122,15 +612,20 @@ export const designMdSeeder = {
122
612
  ];
123
613
  }
124
614
  const name = repoName(input);
125
- const ui = hasUiSurface(input);
615
+ const repoRoot = input.analysis.repoRoot;
616
+ const tokens = await detectDesignSystem(repoRoot);
617
+ const detected = hasAnyTokens(tokens);
618
+ const ui = hasUiSurface(input) || detected;
126
619
  return [
127
620
  {
128
621
  path: "DESIGN.md",
129
622
  action: "emit",
130
- rationale: ui
131
- ? "UI dependencies detected — seed the Google Labs DESIGN.md skeleton (token frontmatter + design intent) so agents and design-lens critics share one design source of truth."
132
- : "No UI dependencies detected — seed a minimal DESIGN.md declaring the absence of a UI surface so agents don't invent one.",
133
- tailored_content: ui ? uiBody(name) : noUiBody(name),
623
+ rationale: !ui
624
+ ? "No UI dependencies detected — seed a minimal DESIGN.md declaring the absence of a UI surface so agents don't invent one."
625
+ : detected
626
+ ? `Detected design system (${commentSafe(tokens.sources.join(", ") || "repo scan")}) — seed a best-effort DESIGN.md draft with the derived tokens (Google Labs spec) for agents and design-lens critics to share; TODO markers flag what to refine.`
627
+ : "UI dependencies detected but no design tokens found — seed the Google Labs DESIGN.md skeleton (token placeholders + TODO markers + design intent) so agents and design-lens critics share one design source of truth.",
628
+ tailored_content: ui ? uiBody(name, tokens) : noUiBody(name),
134
629
  },
135
630
  ];
136
631
  },
@@ -1 +1 @@
1
- {"version":3,"file":"design-md.js","sourceRoot":"","sources":["../../../src/onboard/seeders/design-md.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,EAAE;AACF,uCAAuC;AACvC,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,4EAA4E;AAC5E,uCAAuC;AACvC,EAAE;AACF,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,sBAAsB;AACtB,0EAA0E;AAC1E,2EAA2E;AAC3E,iBAAiB;AACjB,2EAA2E;AAC3E,sDAAsD;AAKtD,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,OAAO;IACP,WAAW;IACX,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,eAAe;IACf,UAAU;IACV,QAAQ;IACR,OAAO;IACP,eAAe;CAChB,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,KAAkB;IACtC,MAAM,IAAI,GAAI,KAAK,CAAC,QAAuD;SACxE,YAAY,CAAC;IAChB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,QAAQ,CAAC,KAAkB;IAClC,MAAM,IAAI,GAAI,KAAK,CAAC,QAAyC,CAAC,IAAI,EAAE,IAAI,CAAC;IACzE,OAAO,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;AACtD,CAAC;AAED,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBzB,CAAC;AAEF,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,GAAG,iBAAiB;IACzB,IAAI;;;;;;;;;;;;;;;;;;;;;;CAsBP,CAAC;AACF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,GAAG,iBAAiB;IACzB,IAAI;;uCAE+B,IAAI;;;;;;;;;;;;;CAa1C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAW;IACpC,IAAI,EAAE,WAAW;IACjB,KAAK,CAAC,IAAI,CAAC,KAAkB;QAC3B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;gBACL;oBACE,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,MAAM;oBACd,SAAS,EACP,sGAAsG;iBACzG;aACF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO;YACL;gBACE,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,EAAE;oBACX,CAAC,CAAC,4KAA4K;oBAC9K,CAAC,CAAC,0HAA0H;gBAC9H,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;aACrD;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"design-md.js","sourceRoot":"","sources":["../../../src/onboard/seeders/design-md.ts"],"names":[],"mappings":"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"}