Design memory
The typed .ui-craft/ directory — durable, project-local design decisions plus self-correction that the skill reads at Discovery.
Updated 2026-06-26
UI Craft remembers each project’s design decisions in a typed .ui-craft/ directory — plain markdown, project-local, committable. The skill reads it at Discovery so decisions survive across sessions and corrections stop being re-litigated.
The directory
.ui-craft/
brief.md # always loaded — purpose, user, ranked principles, success metric, scope
tokens.md # always loaded — the resolved token spine
decisions.md # lazy — architectural / product design decisions
patterns.md # lazy — recurring component + layout patterns
spec.md # the composition decision (written by /sddesign and /shape)
surfaces/
*.md # lazy — per-surface specs
brief.md and tokens.md are always loaded. The rest load lazily, only when the task needs them — so memory scales without bloating every prompt.
Self-correction
When you reject or redirect a choice, /remember appends a dated learned constraint to brief.md (§6) — pinning what and why. Learned constraints rank with the project principles.
The precedence ladder:
- Accessibility / correctness floor — never overridden.
- Project memory — learned constraints + the brief.
- Skill defaults — the built-in baseline.
Project memory can invert a skill default (your brand is blue; you do want ALL CAPS labels here) but never the floor. That’s how the skill adapts per-project while keeping one curated quality baseline.
Spec
.ui-craft/spec.md records the composition decision per surface — chosen recipe, layout skeleton, component inventory, state lattice, and acceptance bar. It’s written by /sddesign (the full spec-driven pipeline) or /shape (opt-in), and is the bridge between the brief (why) and the build (how).
Spotted something out of date? Open an issue on GitHub →