Skip to content

Vibe-based style clarification + generated theme catalog - #8

Merged
daniellee-ux merged 1 commit into
mainfrom
claude/gracious-euler-0fb780
Jul 4, 2026
Merged

daniellee-ux merged 1 commit into
mainfrom
claude/gracious-euler-0fb780

Conversation

@daniellee-ux

Copy link
Copy Markdown
Owner

What

When a design brief doesn't pin down the visual style, the create-design skill now instructs the agent to ask one clarification question in vibe space (bold & loud / minimal & clean / elegant & editorial / playful & colorful / warm / tech / retro — light-vs-dark folded into the same AskUserQuestion call), then map the answer to a built-in theme via a theme catalog generated from designPresets — or fall through to the create-theme skill to compose custom tokens when no preset fits.

How

  • Preset metadata — DesignSystem gains optional vibe (one-liner) and tags (shared vocabulary: light, dark, bold, minimal, elegant, playful, warm, calm, retro, tech, editorial); all 33 presets filled in. Previously the style descriptions lived only in source comments, so an agent had to interpret raw hex values.
  • Generated catalog — scripts/gen-theme-catalog.mts (npm run gen:catalog) rewrites the table between <!-- theme-catalog:start/end --> markers in create-design/SKILL.md from the presets, and errors if any preset lacks vibe/tags. npm run check:sync now chains a --check pass, so CI fails on drift.
  • /themes gallery — cards show the vibe line; detail pages gain a Style panel with vibe + tag chips (both --ui-* themed, verified in light and dark chrome).
  • Skill updates — create-design Step 1 rewritten (ask in vibe space, never as a list of 33 template names; state pick + one alternate; no second round-trip), create-theme documents the new required preset fields, canva-authoring points at the catalog. Committed copies re-synced via npm run sync.

Verification

  • npm run typecheck + npx tsc --noEmit -p apps/demo pass
  • npm run check:sync passes (skills in sync, CLAUDE.md == AGENTS.md, catalog matches presets)
  • Drove /themes and /themes/riptide in the browser: vibe lines + tag chips render in light and dark chrome, console clean

🤖 Generated with Claude Code

When a brief doesn't pin down visual style, the create-design skill now
asks one AskUserQuestion in vibe space (bold/minimal/elegant/playful/...,
light-vs-dark folded into the same call) and maps the answer to a preset
via a theme catalog generated from designPresets — falling through to
create-theme for custom tokens when nothing fits.

- design.ts: DesignSystem gains optional `vibe` + `tags`; all 33 presets
  filled in (tag vocabulary: light, dark, bold, minimal, elegant,
  playful, warm, calm, retro, tech, editorial)
- /themes gallery cards show the vibe line; detail pages gain a Style
  panel with vibe + tag chips
- scripts/gen-theme-catalog.mts regenerates the catalog table between
  markers in create-design/SKILL.md (`npm run gen:catalog`); check:sync
  now fails CI when the table drifts or a preset lacks vibe/tags
- create-theme + canva-authoring updated to match; skills re-synced

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@daniellee-ux

Copy link
Copy Markdown
Owner Author

Codex review (codex exec review --base main, gpt-5.5, reasoning effort high) came back clean:

The changes add optional theme metadata, surface it in the UI, and introduce a catalog generation/check workflow that appears consistent with the existing sync model. Typechecking passes, and I did not identify actionable correctness issues in the diff.

No findings to address — merging.

@daniellee-ux
daniellee-ux merged commit 1c47706 into main Jul 4, 2026
1 check passed
@daniellee-ux
daniellee-ux deleted the claude/gracious-euler-0fb780 branch July 4, 2026 11:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant