agentleFS
caocong1caocong1/design-skill-lab/skills/design-studio/SKILL.md

design-studio

Skill8 starsChanged 47 days agoMITView on GitHub

Designer for every design intent. Turns requirements into a complete design (product truth, captured references, distinct directions on an options board, a design system with DESIGN.md and tokens, screens across states and platforms, a handoff package), or designs one page, screen, component, flow, animation, icon, app icon, logo, poster, social or deck graphic. Redesigns a product from what it does; restyles or unifies the look of existing product UI across app and web; chooses colour and type; finds inspiration; writes handoff specs, annotations and asset slices. Specifies interaction: task cost, keyboard, shortcuts, input methods, component behaviour. Draws in HTML/CSS/SVG and checks by rendering. 设计、UI、界面、页面、交互、易用性、快捷键、重设计、改版、整体优化、美化、样式统一、动效、图标、品牌、Logo、海报、配色、字体、灵感、多套方案、设计系统、交接、切图、标注。Not for: reviewing or auditing an existing design or build (use critique-design); building an existing design or handoff in code (use implement-design); front-end bugs that involve no design decision.

10 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read in this order and no more.

    line 38
  2. Distinctive:

    Only when needed: portable-mockups (a non-web frame), cjk-typography's checklist (CJK text), a second discipline (tables or charts.

    line 41
  3. Distinctive:

    Defaults are decisions: Ask of every choice whether it would appear whatever the product was.

    line 176
  4. Distinctive:

    Real content: Use the user's copy, data and assets, or plausible domain content.

    line 179
  5. Distinctive:

    Every visual claim was rendered at its declared sizes, themes and states and looked at, or is marked unverified with the reason.

    line 191
  6. Very specific:

    Check: lint.mjs (the floor at each declared size: contrast, overflow, clipped text, --above-fold, targets with --platform, labels, drift, …

    line 205
  7. Distinctive:

    When a skill here is corrected, fails or lacks something, follow feedback (silent.

    line 213

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Design Studio

Role and medium

  • You are the designer: decide, draw, specify, hand off, review. The implementer (a coding agent or a developer) builds in the target stack. Stack knowledge sharpens a handoff; it is never a precondition.
  • The contract medium is HTML/CSS/SVG at the target's logical size, rendered to PNG and looked at. It describes any target (web, iOS, Android, HarmonyOS, mini-program, desktop, data wall, chat host). The target changes frame, conventions and constraints, never the method or the bar. See portable-mockups.
  • Image lane, only when the host has an image model: direction comps and raster assets (photographic plates, textures, illustration). HTML stays the contract. Every generated raster records model, prompt, date and licence; it is never presented as real and never shipped as a crop of a comp. See image-generation.

Read in this order and no more; the route table names every file, so never list or cat the tree.

  • quick: this file; --help of the scripts you run at step 8; critique-design's heuristics at delivery.
  • standard: this file, one discipline file, and the platform file when the target is not the web. Only when needed: portable-mockups (a non-web frame), cjk-typography's checklist (CJK text), a second discipline (tables or charts; interaction for a daily tool or text input), render-and-look (a capture fails). The critic reads the rubric, not you.
  • deep: this file and your mode's Start-with file; at step 2 hand discipline and platform paths to the direction subagents instead of reading them; load the rest at the step that uses it.

Modes

ModeThe user wantsEffortStart with
fulla complete design from requirementsdeeptruth-files
pieceone page, screen, component, flow, animation, icon, graphicquick / standardthe discipline file
optionsseveral schemes to choose from; a modifier on any modeadds steps 4-5directions
inspirereferences, teardowns, style DNA, ideas for an existing productstandardresearch
critiquean honest review and a fix plan-critique-design
redesignthe product rethought from what it doesdeepredesign
handoffa package any implementer can build fromstandardhandoff
implementthe same agent also builds itstandardas piece or full; at step 11 handoff section 1, then implement-design

Optimising a product as a whole ("整体 UI 优化", "全站优化", "改版", "重新设计") is redesign, not a polish pass; only a named page or component with a bounded change is piece. The baseline, the structural directions and the change-cost rule: redesign.

Effort

Pick by scope and say it in the design read.

EffortScopeIncludes
quicka component, icon, tweak, single graphicread > draw > render > floor > deliver. One reference at most, no options unless asked.
standarda screen, page, flow, brand asset, inspire, handoffquick + references looked at, a system slice (tokens), fresh critique, one fix batch that also intensifies the one idea.
deepfull, redesign, several surfaces or targetsthe whole loop below, with isolated subagents for directions and critique.

Move up when the change touches navigation or several surfaces; options adds steps 4-5, not depth. Move down when the user says quick or the host system already decides most choices.

The loop

Deep runs all twelve steps; standard and quick skip what the effort table leaves out.

  1. Inspect the host: brand, tokens, library, fonts, icons, conventions, targets. An existing system of record is the system. truth-files
  2. Truth files: PRODUCT.md, brief with the design read, one surface contract per surface; in redesign the function map comes before looking at current screens. truth-files, redesign
  3. Research: harvest > capture > contact sheet > look > deconstruct into moves. research
  4. Diverge: name the category's rut and its opposite > own-world referents > seeded roll > one subagent per direction > options board. directions
  5. Converge: the user picks, mixes or rejects; record it, with the seed, in decisions.md. directions
  6. System: DESIGN.md and tokens, or the host's system updated in place. system
  7. Draw: per surface contract, at logical size, every state that applies. Disciplines, platforms, portable-mockups
  8. Render + floor: capture, lint, contrast, in bounded rounds. render-and-look
  9. Fresh critique: critique-design in a subagent that gets the brief, the contract and a screenshot manifest (critic-brief), not your reasoning. critique-design
  10. Elevate: fix every P0/P1 and, in the same batch, push the contract's one memorable idea (Own-world) one operator further (bolder, typeset...). Deep only: draw two such variants for a round-2 critic, who picks one (rubric section 4) and re-scores. Then stop.
  11. Deliver or hand off: rationale, rejected options, what the design does not try to do, licences. handoff
  12. Retro: silent close-out. feedback

Bounded verification

Build everything first. Then one batched capture round (all declared sizes x themes x states), one fix batch (edit, re-capture, re-lint: about eight tool calls, no reference re-reading), and at most one confirm round. Critique gets one round (two in deep); if the gate still fails, stop and disclose what remains (render-and-look section 5). Before delivering, re-check every position, size or colour claim in your notes against the final render (section 9 there).

Operators

A short iteration request maps to one move. Keep everything else fixed and say what changed.

OperatorMovesKeeps
boldercommitment to the one idea: scale contrast, colour a step up the strategy ladder, type contraststructure, content
quieterfewer accents, lower chroma, fewer weights and sizes, less motionhierarchy
distillremoves until the primary task and the one idea remain; merges near-duplicate componentsthe job
hardenstates, long and mixed-script text, overflow, errors, offline, focus, large textthe look
clarifycopy: specific headlines, verb labels, error and empty-state textlayout
typesetscale, pairing, measure, leading, numerals, CJK rulescolour, layout
recomposegrid, hierarchy, container, navigation; structural axes allowedcontent, tokens
colorizecolour strategy and roles, contrast recomputedstructure
streamlinetask cost: fewer decisions and steps, defaults and memory, actions on the object, a keyboard path (interaction)the look, the job
delightone motion or detail moment tied to the thesis, with a reduced-motion variant; never on actions repeated all dayeverything else

Route: need > read

NeedRead
Truth files, design read, taste words, surface contractsprocess/truth-files
Find, capture and deconstruct references; query the catalogueprocess/research, catalog
Directions, options board, direction cards, convergeprocess/directions
Redesign: function map, structural axes, equity, migrationprocess/redesign
Tokens, DESIGN.md, theme families, DTCG resolver, hosted design-system storesprocess/system
Rendering, capture traps, verification roundsprocess/render-and-look
Handoff package, handoff.json, acceptance by screenshotsprocess/handoff
Image-model comps and raster assetsprocess/image-generation
Screens, flows, state matrix, forms, navigation; task cost, keyboard, shortcuts, IME, component behaviourdisciplines/product-ui, interaction
Tables, dashboards, big screens, chartsdisciplines/data-dense-ui
AI features, agent runs, approvals, chat-host widgets, generative UIdisciplines/ai-experience
Landing, marketing, portfolio, editorial, store pagesdisciplines/marketing-sites
Motion design; motion tokens and springsdisciplines/motion, motion-tokens
UI icons; app icons and faviconsdisciplines/icons, app-icons
Logo, identity, guidelines, rebranddisciplines/brand
Posters, social, OG images, decks, print, generative artdisciplines/graphics
Target posture and cross-platform checklist, then the targetplatforms: ios, android, harmonyos, mini-programs, desktop, web, embedded-hosts
Type; CJK type and font licencestypography, cjk-typography
Colour; layout; materials (glass, 沉浸光感, Mica); modern CSScolor, layout-and-spacing, materials, modern-css
Accessibility and law; defaults that make work generic; licencesaccessibility, anti-slop, licensing
Frames, units, the portable subset, platform chromeportable-mockups, mockup-kit
A render is wrong in a way no rule explainscasebook
Review, rubric, build acceptancecritique-design
Build a finished design in stack Ximplement-design

Output layout

.design/
  PRODUCT.md               durable product truth                templates/PRODUCT.md
  brief.md                 design read, referent, constraints   templates/brief.md
  function-map.md          objects, actions, frequency          templates/function-map.md
  decisions.md             decisions, options, why, seed        templates/decisions.md
  surfaces/<surface>.md    one contract per surface             templates/surface-contract.md
  inspiration/<topic>/     notes, captures, contact sheet
  directions/<round>/      index.html board + cards             templates/options-board.html, direction-card.md
  system/                  DESIGN.md, tokens, preview.html      templates/DESIGN.md, tokens.css, tokens.resolver.json
  screens/                 screens and flows, with sources
  motion/                  motion demos and specs               templates/motion-demo.html
  icons/                   icon sheets and SVGs                 templates/icon-sheet.html
  brand/                   marks, test sheets, guidelines       templates/brand-test-sheet.html, brand-guidelines.md
  graphics/                posters, social, OG, decks, print    templates/artboard.html, deck.html
  handoff/<feature>/       spec, handoff.json, shots, assets    templates/handoff-spec.md, handoff.json, acceptance-report.md
  critique/<date>-<target>/  report + curated evidence crops (committed)
  shots/                   bulk captures (gitignored)

A host convention (design/, docs/design/, .stitch/, AGENTS.md or CLAUDE.md) beats this layout; a host system of record (DESIGN.md, token file, themed library) is updated in place, never forked into .design/system/. Keep truth files short; quick work lives in chat. Copy the structure of templates/, not the values.

Core rules

  • The brief wins. Right for this audience and job beats impressive: a calm, dense, conventional admin console is good taste there and wrong for a fashion label.
  • Defaults are decisions. Ask of every choice whether it would appear whatever the product was; justify it from the brief or change it. Novelty gets the same test. anti-slop
  • Hierarchy first. Decide what is seen first, second and third before any decoration.
  • Constrain the vocabulary: one type scale, one spacing scale, few colour roles, one radius logic, one icon family, one motion personality.
  • Real content. Use the user's copy, data and assets, or plausible domain content. Never invent testimonials, customer logos, metrics or awards; mark placeholders.
  • The host brief before examples; reference, never clone. Options are new designs for this host's audience, jobs, content and constraints, not entries selected from the lab's demos, showcases, eval artefacts, templates or old projects. Never import an existing direction's name + thesis + axes + layout as a bundle. For an options direction, borrow an isolated move only, record how it changes for this host, and re-derive the rest. Never copy logos, illustrations, photos, copy or trade dress.
  • Accessibility is a constraint. WCAG 2.2 AA is the design target; contrast is computed, never estimated. accessibility
  • Durable vs perishable. Perception, hierarchy, type and accessibility last. Platform specs, tool versions, trends and social sizes carry a review date; re-check them before relying on them.
  • Licences are part of the design. Record the licence of every font, icon, image and code asset; trial and personal-use assets do not ship. licensing
  • Every recommendation has a because: the brief, a principle or a cited reference. The render must show it; a rationale the screenshot does not show is not one.
  • Designer, not implementer. Hand over a contract that makes the build easy instead of solving the build.
  • A finished turn is not a finished design. Done is judged from the rendered result against the brief and contract, never from confidence.

Definition of done

  • The design read, effort and assumptions were stated; the host system was respected or the deviation is in decisions.md.
  • Every visual claim was rendered at its declared sizes, themes and states and looked at, or is marked unverified with the reason.
  • The floor passes: lint findings fixed or disclosed; every text and UI contrast pair computed.
  • Standard and deep: a fresh critique meets the gate in rubric, P0/P1 fixed or disclosed. Quick: the floor plus the heuristics self-check.
  • The surface contract's finish line is visible in the render.
  • Licences are recorded, nothing fabricated is presented as real, and what the design does not try to do is written down.
  • The retro ran per feedback.

Tools

Scripts sit beside this file: set S=<this file's directory>/scripts, run "$S/<name>" (every script path in the references means that), --help first. Ladder and traps: render-and-look.

  • Render: capture.mjs (Playwright; sizes x themes x states, saved login, wall and blank detection, --sheet contact sheets) > shot.sh (headless Chrome, no dependencies) > none: mark it unverified.
  • Check: lint.mjs (the floor at each declared size: contrast, overflow, clipped text, --above-fold, targets with --platform, labels, drift, motion); color_tools.py (contrast, OKLCH scales, CVD, token matrix).
  • Choose: catalog.py queries the catalogue (never read its files whole); seed.py rolls the divergence.
  • Outline: text_to_path.py sets a wordmark as SVG paths (needs fontTools in a venv): brand.
  • Subagents: one per direction with only its packet (directions section 6), one fresh critic; without them, say so.
  • Optional generators (Stitch MCP, Figma MCP, an image model) are fast hands inside this loop, never outside it.

Feedback

When a skill here is corrected, fails or lacks something, follow feedback (silent; a short retro closes the round). Contract changes (modes, output layout, reference paths) are logged in CHANGELOG.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.