The ko-design-md catalog (https://www.getdesign.kr) publishes one DESIGN.md per Korean
brand: colors in OKLCH, typography, spacing, radius, components, and do's & don'ts. This
skill pulls the right entry and uses it as the design brief for UI work in the current
project. Invoked by name it is /use-design-md (skills.sh) or
/ko-design-md:use-design-md (Claude Code plugin marketplace).
Fetching — files, failures, the whole document
Every catalog fetch (index, entry, token sidecar, GitHub raw fallback) follows these
rules. Fetch with curl, which writes the response body to a file byte for byte. A
web-reading tool that passes the page through a model (Claude Code: WebFetch)
summarizes and drops exact values (an OKLCH triple, a 13px step); use one only when you
have no shell at all.
- Save to a file, don't print to the terminal. Entries run to tens of kilobytes, and
a shell tool caps the output it hands back (Claude Code: around 30,000 characters),
silently dropping the back half — components, do's & don'ts, known gaps. Download into
your per-user cache,
"${XDG_CACHE_HOME:-$HOME/.cache}/use-design-md/"(not the user's project, not a shared/tmp);--create-dirsmakes it, so each fetch stays one plaincurlcommand (a compoundmkdir …; curl …is refused where onlycurlis allowed to run). - Make HTTP failures fail.
curl -fsSL --create-dirs -o <file> <url>.-fturns a 404/5xx into a non-zero exit — without it a missing slug's one-lineNot found: <slug>body arrives as if it were the document. After a non-zero exit you did not get the file; what's on disk may be stale or partial — don't read it. - Read the file to the end. Check its size (
wc -lc <file>), then read it with your file-reading tool. That tool may cap a single read too, so when one read doesn't reach the end, read the rest in chunks (Claude Code:offset/limit). You're done when you've seen the last line numberwc -lreported. If your file reader expects a different path form than your shell prints, convert it (Git Bash on Windows:cygpath -w <file>).
The references/ files this skill points to sit beside it. If you have only this file
(e.g. loaded from getdesign.kr's /.well-known/agent-skills/), fetch them the same way
from https://raw.githubusercontent.com/CaesiumY/ko-design-md/main/.claude/skills/use-design-md/references/<name>.md.
Step 1 — Discover: resolve the brand to a slug
curl -fsSL --create-dirs -o "${XDG_CACHE_HOME:-$HOME/.cache}/use-design-md/index.txt" https://www.getdesign.kr/llms.txt
If this fails you have no index — that is not a No match. Use the index fallbacks in
references/endpoints.md; if those fail too, tell the user you couldn't reach the
catalog — don't report the brand as missing.
Each entry line looks like:
- [당근](https://www.getdesign.kr/services/seed-design/llms.txt): community · SEED Design — <tagline>
An entry that publishes a design-system name carries it after the category, as above;
one that doesn't has the category alone (: finance — <tagline>). Match the user's
mention against the link text (name), the design-system name, AND the slug in the URL.
Most names are Korean and some slugs are design-system names (당근 → seed-design,
구름 → vapor-ui), so translate an English brand name to the Korean name first
(Karrot → 당근).
- One clear match → Step 2.
- Several plausible matches → ask the user which one they mean (Claude Code:
AskUserQuestion). - No match → tell the user plainly the brand isn't in the catalog, optionally list a
few catalogued brands in the nearest category, and note that adding it is the
design-mdskill's job (see Scope guardrails).
Step 2 — Fetch the DESIGN.md
curl -fsSL --create-dirs -o "${XDG_CACHE_HOME:-$HOME/.cache}/use-design-md/<slug>.md" https://www.getdesign.kr/services/<slug>/llms.txt
- 404 → the slug isn't in the catalog: take the No match path rather than guessing another slug.
- Any other failure (network, 5xx, 403/429) says nothing about the catalog: try the
GitHub raw fallback in
references/endpoints.md; if that fails too, tell the user you couldn't fetch the entry — don't report the brand as missing.
Read it to its last line before applying anything — the prose carries intent (do's &
don'ts, known gaps) that the tokens alone don't. If you need tokens as structured data
(to generate a theme programmatically), fetch the JSON sidecar the same way — it is on
GitHub raw, not getdesign.kr (references/endpoints.md §3).
Step 3 — Apply to the current project
Before editing anything, read references/apply-guide.md and follow it. Three parts are
never optional: the entry's Known Gaps come first (apply-guide §2), its Do's and Don'ts are
hard constraints, and you verify the result (apply-guide §5) before calling it done.
Scope guardrails
- Don't gate on the current repo — this skill runs anywhere.
- Adding or editing a catalog entry is the
design-mdproducer skill's job, inside the ko-design-md repo. Stop and point the user there. - Don't invent the design. A brand that isn't listed isn't available here — say so instead of writing a DESIGN.md for it or approximating it from memory. For a listed brand, don't invent values its DESIGN.md doesn't have: propose an extension marked as your inference, not the brand's spec.
- Loaded for a page that only wants a brand's tone ("a clean quiz like the Toss app")? Still fetch the entry rather than approximating the brand from memory.
- Stay vendor-neutral: keep the source's name — brand or design system — out of the
generated UI (
references/apply-guide.md§6).