Design logo

Design

Community
phuryn
design

Before designing a screen or design system, choosing colours, type or components, or judging the look: design, build and review product UI with its owner.

Overview

Publisherphuryn
Repositoryproduct-engineering
Skill namedesign
Stars
189
Forks
27
Bundled files
5
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by phuryn on GitHub. Read the source before you install it.

Installation

Install the Design AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/phuryn/product-engineering/tree/main/app-stack/skills/design
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/phuryn/product-engineering.git /tmp/product-engineering
mkdir -p .claude/skills
cp -r /tmp/product-engineering/app-stack/skills/design .claude/skills/design
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Design in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Design on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Design is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Design

One skill for the whole of a product's look: the rules, which outside skill to use when, and how to judge the result. Before it, the method lived in one file, the choice of skills in another, the screen rules in the test docs and the review in a skill of its own, and a product that read only some of them repeated mistakes the others had already written down.

What binds, in order

  1. The owner's words. Taste, and any change to a written rule, is the owner's call. Put each visual question to them as specimens built in the product's real tokens, side by side, never described in words. references/review.md says how to sort a fix from an owner's call.
  2. The method (references/method.md). Every kit and every screen satisfies it. A product departs from a rule only by the owner's decision, recorded in its kit README with the reason.
  3. The product's kit, three files wherever the product keeps them (often a design/ folder): tokens.css, every raw value (colour, type, space, radius, duration); kit.css, the primitives, built from tokens only; and the kit README, the product's own design document: its direction, palette, type, layout and button roles, each with its reason, and every departure from the method. Screens compose the kit; a screen never invents a style.
  4. The collections advise (references/collections.md). A suggestion reaches code only as a token or a primitive in the kit, recorded in the kit README. Where a collection disagrees with the method, the method wins.

A product carries this skill in its own repository, at .claude/skills/design/, copied, never pointed at. A rule that lives only in another repository doesn't get read. A monitoring product's kit README pointed at the method in another repository instead of copying it. It then shipped borderless Cancels in five places, which the method already forbade (2026-10-22).

A builder that isn't Claude Code reads these as plain files. Codex never sees a Claude Code plugin or a skill trigger. So a product's agent instructions name this folder by path. Whatever a collection taught that the next screen needs goes into the kit README, not just the session that used it.

Which collection leads, stage by stage

StageLeadsTakeKeep out
Direction. No look yet; the look is the problem; a public page whose job is to persuadefrontend-design (always on)a direction grounded in the product's subject; a plan (palette, type, layout, principles) checked against the generic defaults before anything is builta new direction per screen. Once one is picked, it stops leading
A choice between options. A palette, a font pairing, a chart type, a stack's conventionUI/UX Pro Maxcandidates to choose from. The pick goes into the kit by handits persisted design-system files and its installer: a second design system beside the kit
The kitthe method, with frontend-design's plantokens and primitives that satisfy every rule in method.md, each held by a test where one can be writtenanything a collection proposes that the method forbids
Screens people work in. Dashboards, admin, tables, settingsTaste (design-taste-frontend), its app-screen runthe screen's one question; every block's empty, zero, loading and error state; colour only on data, status and the one primary action; its screenshot critique, three rounds at mostits page run, and its palette and type when a kit exists
Chartsdataviz (built in)form first, colour last; its palette validator; one axis; hover by defaultstate colours reused as series colours
What a screen saysreferences/screens.md § What a screen may claim, and frontend-design's section on writingsentences only as true as what the renderer is handed; one function for every summary of a state—
Before it shipsreferences/screens.md § What to verify visually, then Impeccableevery width, state, theme and role; Pro Max's pre-delivery checklist as a quick pass; Impeccable's audit, hardening and polishImpeccable's commands that write their own design documents, and any redesign through it; ellipsis for text a person typed
The owner judges the lookreferences/review.mdmeasured claims, before/after specimens in the real tokens, fixes split from the owner's callsopinions without numbers
A page published as a claude.ai artifactartifact-design (built in)its page contract and both themes—

collections.md has each collection's detail: what it is, what to take, what to keep out, how to install it, and a checklist usable without installing it. Without the third-party collections, design from the method, frontend-design and those checklists.

The owner's standing preferences

This section is yours to fill, in your own words, with the date you said each. The entries below are the author's, kept as a worked example of what belongs here: a taste call with its receipt, and how far it reaches. Replace them with your own; until you do, treat them as one owner's taste, not as rules.

  • Weight doesn't mark state. "Colors already say this. Two things saying the same it unnecessary in my opinion." (2026-10-22, rejecting "bold only on problems".)
    • Don't propose bold, size or weight as a second signal for what colour, shape and word already carry.
    • This is separate from the method's state is form as well as text. That rule exists so colour is never the only signal: it's accessibility, not emphasis, and it stays.
    • It covers bold that's already there, not only new proposals. "Same weight for every state" (2026-10-22, asked whether a down badge's word and a failed value should lose their bold): a problem's badge, value, row and name wear the weight of their healthy counterparts. A title stays bold because every title is, whatever state it describes.
  • 8 px corners on an app's buttons. "8 px corners in the app" (2026-10-22, a monitoring product, shown its pill buttons beside 8 px ones).
    • Inside the app, buttons and segmented controls take a corner between an input's and a panel's, so a control reads as part of the form around it.
    • Tags stay pills everywhere, so inside the app a pill means a label, not something to press. The marketing site and public pages may keep pill buttons.
    • Start the next product's app this way. If its brand points elsewhere, show the owner both before choosing.
  • Calm and reassuring is the target for monitoring and status products. Supabase is the reference the owner named. A healthy screen says so in its own colour, and nothing on it says press or beware louder than that.

How you can tell it worked

The owner looked at the screens at phone and desktop width and approved them, and every colour, size and spacing value on them comes from the tokens.

When something is learned

  • True for any product:

    • a rule for the kit or for building screens goes in method.md;
    • a rule about what screens claim, or how they're checked, goes in screens.md;
    • a change to the review procedure goes in review.md.

    Give each its receipt: the date, and what happened, in a product named by kind, not by name. Hold it with a test where one can be written: a rule only in a report is gone by the next product.

  • True for this product only: its kit README.

  • An owner preference: the section above, in their words.

Where the copies live

  • Each product carries its own copy (.claude/skills/design/, or .agents/skills/design/ for agents that read that folder), copied whole, never pointed at (above).
  • Keep one master copy across your products and send a lesson back to it, generalized, the day a product learns it. A product's copy that differs from your master is a lesson not yet sent back: diff -r <master>/design <product>/.claude/skills/design shows it.

Files

FileHoldsRead when
references/method.mdthe rules every kit and screen satisfieswriting or changing a kit; building any screen
references/collections.mdeach design skill collection: what to take, what to keep out, how to install it, its checklist distilledchoosing or running a collection, or working without one
references/screens.mdwhat a screen may claim; what to verify visuallychanging what a screen says; before a release
references/review.mdreviewing a built product's look with its ownerthe owner judges the look; a release's visual pass
scripts/color.pyOKLCH lightness, chroma and hue, and WCAG contrast (standard library only)any question about a colour: measure it, don't describe it

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Design AI skill do?

Before designing a screen or design system, choosing colours, type or components, or judging the look: design, build and review product UI with its owner.

Why use Design on TypingMind?

Because you install it once and use it with any model. Design is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Design in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/phuryn/product-engineering/tree/main/app-stack/skills/design. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Design?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Design?

As many as you like. As long as a model supports skills, you can use Design with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Design AI skill free?

Yes. It is published on GitHub by phuryn under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇