From ek-design
ek-design brand SSoT and evolution workflow. Use when the user wants to inspect, update, evolve, or roll back the ek-design Neo-Tokyo cyberpunk brand — colors, typography, motion, voice, or the design-model.yaml itself. Triggers include 'show ek brand', 'show cepsra brand', 'update ek design', 'evolve ek palette', 'ek design model', 'roll back ek brand to <tag>', '/ek-design'. The skill maintains design-model.yaml — the single file every other ek-* skill (ek-web, ek-craft, ek-review) reads.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ek-design:ek-designThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Brand SSoT skill. Owns `design-model.yaml` — the single file that defines Eric Kazmaier's personal cyberpunk brand for agentic UI surfaces. Every other ek-* skill (ek-web, ek-craft, ek-review as they ship) reads this file. Brand changes happen here; downstream skills auto-adapt.
Brand SSoT skill. Owns design-model.yaml — the single file that defines Eric Kazmaier's personal cyberpunk brand for agentic UI surfaces. Every other ek-* skill (ek-web, ek-craft, ek-review as they ship) reads this file. Brand changes happen here; downstream skills auto-adapt.
ek-design is the personal brand stack for Eric's agentic UI work. First consumer is cepsra (cepsr.app) — Eric's internal app for tasks + CEO briefings. Architecturally inherited from parspec-design (industrial, B2B Construction Materials Distributors); ek-design is the cyberpunk counterpart, tuned for agentic surfaces where the user is the operator and the UI must surface technical state (model, tokens, latency, agent status) plainly.
Register: Neo-Tokyo neon — Blade Runner / Ghost in the Shell. Deep blue-black backgrounds, magenta hero, electric cyan secondary, acid lime alive/success. Not synthwave (too nostalgic), not brutalist (too monochrome), not terminal-CRT (too austere for product use).
| Token | Value | Role |
|---|---|---|
background | #0A0A14 | Default app + marketing surface — deep blue-black |
panel | #15151F | Layered surface |
off_white | #F0F0F5 | Inverted (light-mode opt-in) |
white | #FFFFFF | Text on dark |
magenta_cta | #FF2A6D | Primary CTA monopoly |
cyan_secondary | #00D1FF | Secondary action / info / link |
lime_alive | #A6FF00 | Success + agent active indicator |
| Display | Chakra Petch | Headers, eyebrows |
| Body | Inter | UI body |
| Mono | JetBrains Mono | Code, IDs, timestamps — required for agentic UI |
Signature motifs: neon edge glow (CSS box-shadow), terminal-block insets (mono content on cyan-bordered black), katakana-numeric agent IDs, optional reduced-motion-safe scanline overlay.
| Block | Purpose |
|---|---|
meta | Version frontmatter — version, brand_version, source, updated_by, supersedes, notes |
surfaces | Mode-per-surface bindings (app=dark, marketing=dark, light-mode=opt-in, terminal-inset=cyan-on-black) |
primitives | Raw color ramps (neutral, magenta, cyan, lime, steel-violet, slate, red, amber), spacing, radii, cuts |
roles | Two-tier token model — every role token references exactly one primitive. Compile-time monopoly enforcement. |
tokens | Semantic mappings — light/dark color modes, typography scale, motion, iconography |
components | Spec for buttons, cards, terminal-blocks, agent-status badges, code-blocks |
voice | ek voice — operator-respecting, terminal-native, no AI-hype |
avoid | Forbidden colors / fonts / patterns — read by ek-craft for lint |
primary_axis_preserved | The locked anchors above |
invariants | 7 hard rules (CTA monopoly, semantic-locked statuses, mono-for-identifiers, no consumer-indigo/purple) |
When user says "show me the ek brand" or "show cepsra brand" or similar:
design-model.yamlmeta (version, brand_version, supersedes, notes), primary_axis_preserved, hue families, voicebrand-portal/, offer to open itWhen user says "evolve to " or "lock ek brand v0.2":
design-model.yamlprimary_axis_preserved without explicit override.meta.version semantically (0.1.0 → 0.1.1 for tweak, 0.2.0 for additions, 1.0.0 for major)meta.brand_version (e.g., ek-2026-Q4-v1), set meta.supersedes to prior brand_versionprimitives.*, roles.*, tokens.*, avoid: list to match new directionmeta.updated, meta.updated_by, meta.notes (one-line rationale)git add + commit + git tag brand-ek-<version> -m '<rationale>'"When user says "roll back to ":
git tag --list 'brand-ek-*' — confirm tag existsgit checkout <tag> -- plugins/ek-design/skills/ek-design/design-model.yamlFor "is this .tsx/.css on-brand?" — delegate to ek-craft (when shipped). That skill reads design-model.yaml's avoid list and primary_axis_preserved block and applies them as lint rules.
When user says "export tokens to cepsra" or "regenerate tailwind config" — delegate to ek-web (when shipped). Until then, hand-write tokens into the consumer's tailwind.config.ts.
meta.version change | When |
|---|---|
| Patch (0.1.0 → 0.1.1) | Typo, comment, or non-token edit |
| Minor (0.1.0 → 0.2.0) | Add a new tint, adjust an existing token, add a primitive ramp |
| Major (0.1.0 → 1.0.0) | Replace hue family anchor, change typography, alter primary axis (rare) |
Tag every committed brand change:
git tag -a brand-ek-2026-Q3-v1 -m "Founding: Neo-Tokyo neon (magenta CTA + cyan secondary + lime alive)"
git push origin brand-ek-2026-Q3-v1
ek-web — backlog v0.2).tsx/.css (that's ek-craft — backlog v0.3)ek-review — backlog v0.4)Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub ejkaz/ek-design --plugin ek-design