feat: bootstrap-from-figma + patterns platformization#7
Merged
Conversation
Two intertwined product changes that ship together.
1) Bootstrap from Figma — visual theme only
- New /__omit/bootstrap endpoint (GET/PUT/DELETE) on dev-server
- BootstrapBanner in workspace Library page: paste a figma.com URL,
copy a Claude prompt, or pick one of 8 built-in palette swatches
- useThemeStore.importTheme() merges design tokens into draft +
immediately applies; only known semanticColors / spacing keys
- /bootstrap-from-figma skill extracts colors + spacing only.
Patterns are intentionally decoupled.
2) Patterns platformization — project-local, on demand
- Removed the 8 starter patterns from omit-design init. New projects
start with empty patterns/
- Removed --starters flag, importStarters handler, /starters/import
endpoint, Library "Import 8 starters" button, "Suggested from
Figma" panel
- New /distill-patterns-from-prd skill — reads a PRD, reuses
existing patterns where possible, writes new ones only for gaps;
HARD-GATEs on user review
- /add-pattern conversational mode — 5 fixed questions when no PRD
- /new-design HARD-GATE rewritten: auto-invokes distill (with PRD)
or add-pattern conversational (without PRD) when patterns/ empty
- "Distill patterns from this PRD" button in PRDs tab
Docs swept: README, preset-mobile/README, dev-server/README,
eslint-plugin/README, PATTERNS.md, CONTRIBUTING, docs/architecture,
docs/release no longer mention 8 patterns, --starters, or
patterns.config.json (already removed in 0.3.x).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two intertwined product changes that ship together.
1. Bootstrap from Figma — visual theme only
/__omit/bootstrapendpoint (GET/PUT/DELETE) on dev-serverBootstrapBannerin workspace Library page: paste afigma.comURL → copy a Claude prompt, or pick one of 8 built-in palette swatches as a no-URL fallbackuseThemeStore.importTheme()merges design tokens into draft + immediately applies; only baseline-knownsemanticColors/ spacing keys are accepted/bootstrap-from-figmaskill extracts colors + spacing only. Patterns are intentionally decoupled.2. Patterns platformization — project-local, on demand
omit-design init. New projects start with emptypatterns/--startersflag,importStartershandler,POST /__omit/starters/importendpoint, Library "Import 8 starters" button, "Suggested from Figma" panel/distill-patterns-from-prdskill — reads a PRD, reuses existing patterns where possible, writes new ones only for gaps; HARD-GATEs on user review/add-patternconversational mode — 5 fixed questions when no PRD/new-designHARD-GATE rewritten: auto-invokes distill (with PRD) or add-pattern conversational (without PRD) whenpatterns/is emptyDocs swept: README, preset-mobile/README, dev-server/README, eslint-plugin/README, PATTERNS.md, CONTRIBUTING, docs/architecture, docs/release no longer mention 8 patterns,
--starters, orpatterns.config.json(already removed in 0.3.x).Test plan
bun run build— all packages green (engine + dev-server + cli + preset-mobile + playground)omit-design init <name>→patterns/contains only.gitkeepGET /__omit/bootstrapreturns{"payload":null}initiallyPUT /__omit/bootstrapaccepts payload withoutpatternsfield, round-trips cleanPOST /__omit/starters/importreturns 404distill-patterns-from-prdpatterns/project writingdesign/foo.tsx→require-pattern-componentscorrectly fires (expected — must distill/add first)figma.com/design/vBAblnUXNiC2JEwbfjcJLR/AI-Chatproduces valid theme tokens (manual run earlier in session)Breaking changes
See CHANGELOG.md →
[Unreleased]section. Old projects withpatterns/<8 dirs>/work unchanged; old scripts hitting/starters/importget 404 with no replacement endpoint.🤖 Generated with Claude Code