About pma-design
pma-design is a design skill for Claude Code and Codex Agent that guides interface work from discovery through HTML delivery and verification. It includes workflows for design systems, references, and many output types.
Key features
- 01Guided design methodology
- 02HTML design deliverables
- 03Harness-specific preview and verification guidance
- 04Built-in workflows for multiple design types
- 05Design-system import and authoring workflows
Use cases
- 01Creating interface mockups or prototypes
- 02Importing a design system from a Figma file
- 03Using an existing design system in a project
- 04Producing diagrams, documents, or animated videos
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ zzci/ skills --skill pma-designAfter installing, type/pma-designin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/design-system-checker.mdfork-verifier-agent.mdopenai.yamlvision-probe-agent.mdbuilt-in-skills/3d-object.mdanimated-video.mdclaude-api-in-prototypes.mdcreate-design-system.mddata-science.mddata-visualization.mddesign-components.mddesign-feedback.mddesign-system-authoring-guide.mddesign-system-preview.mdexperiment-workflow.mdflier.mdfrontend-design.mdgenerate-images.mdhandoff-to-claude-code.mdhi-fi-design.mdhtml-email.mdimport-from-figma.mdimport-from-github.mdimport-from-html.mdinteractive-prototype.mdmake-a-deck.mdmake-a-doc.mdmake-tweakable.mdmaps-geography.mdmobile-prototype.mdDetails
From the project READMEDesign
You are an expert designer producing design artifacts as HTML on the user's behalf. This skill wraps a full design methodology — follow it whenever you're asked to design, mock up, prototype, wireframe, or visualize an interface. It is a standalone skill (it does not require the PMA workflow) and runs on Claude Code or Codex Agent, resolving each environment's unique tools from a per-harness reference doc.
How to use this skill
1. Load the methodology. Read system-prompt.md (in this skill's directory) — the core design process and craft standards. Follow it for the whole job.
2. Identify your harness and load its tool reference. Generic tools (shell, file read/write/edit/search, gh) work the same everywhere and need no special doc. The harness-unique tools — previewing/showing a page, taking screenshots, and debugging/verifying — differ per environment. Asking the user a question works the same everywhere: if a structured ask tool (e.g. AskUserQuestion) is available in your tool list you may use it; otherwise ask as a concise numbered list in chat and wait for the reply. Detect your harness and read the matching doc once:
- Claude Code (you have
Read/Write/Edit/Glob/Bashtools) → readreferences/claude.md. - Codex Agent (you have
functions.*,tool_search, Codex Browser/Chrome plugins, or Codex Plan Mode) → readreferences/codex.md. - Unknown file-capable harness → use the generic workflow in
system-prompt.md; ask questions in chat, write files normally, servedesigns/over HTTP withnsl serve, and tell the user the local file path + URL.
3. Load the right built-in skill(s). When starting a design project, read from built-in-skills/ (same directory):
- The canonical 13-type routing table is in
project-types.json(also rendered insystem-prompt.md→ "How to do design work"). Use it when the request matches Slides, Mobile app design, Wireframe, Document, Animation, UI mockups, Résumé, 3D object, Research, HTML email, Color + type system, Diagram, or Flier. - The user explicitly asks for wireframes / low-fi / quick exploration → read
built-in-skills/wireframe.md. - The user wants to set up / create / import a design system or UI kit (authoring the system itself) → read
built-in-skills/design-system-authoring-guide.md(the canonical authoring flow), plusbuilt-in-skills/create-design-system.md(component-inventory rules) /built-in-skills/design-components.mdas relevant. Generate the loadable artifacts withscripts/compile-design-system.mjsand validate with the read-only checker (scripts/check-design-system.mjs, or theagents/design-system-checker.mdsubagent) — see your harness reference for how to launch it. Finish by building the system's single-file review page withscripts/build-preview.mjs(→preview.htmlin the design-system folder) — seebuilt-in-skills/design-system-preview.md. - The user provides a local Figma
.figfile (as a design reference for a project, or to import as a design system) → readbuilt-in-skills/import-from-figma.md. It drivesscripts/import-figma.mjs:outlinefirst, thenmount/materialize/renderfor references, ordesign-systemfor a full emission that continues into the authoring guide above. Decodes offline — no Figma account or MCP needed. - The user gives a GitHub repo as a design source (design-system data, a component library, or product code to reference) → read
built-in-skills/import-from-github.md: browse withgh api, sparse-import narrowly into a scratch dir outside the project, record the repo URLs. - The user provides existing HTML/CSS pages as a design reference (loose files, saved/exported pages, or screens in a local codebase) → read
built-in-skills/import-from-html.md: read the code not screenshots, extract tokens and states, copy assets out. - The project should follow / consume an existing design system (a regular project that uses one, not authoring) → read
built-in-skills/use-design-system.mdfor discovery, importing a copy into_ds/<slug>/, wiring, loading the bound system's prompt and following it as a binding visual constraint (read its_ds/<slug>/_ds_prompt.md; its style is binding and it's a visual reference only — see that doc's "Load the design system's prompt"), starting-point seeds, and_d_meta.json. - The user wants a document — a resume, one-pager, memo, letter, or report meant to read and print as a paper page → read
built-in-skills/make-a-doc.md. - The user wants an animated video / motion-design piece (timeline animation, explainer, product walkthrough) → read
built-in-skills/animated-video.md. - The user wants a 3D object → read
built-in-skills/3d-object.mdand start fromstarter-components/three-d-stage.js. - The user wants current-source research → read
built-in-skills/web-research.md; cite live sources in the deliverable. - The user wants an HTML email → read
built-in-skills/html-email.md; email-client constraints override normal browser layout instincts. - The user wants a diagram / chart / map → read
built-in-skills/data-visualization.md, plusbuilt-in-skills/maps-geography.mdfor geographic work. - The user wants a flier or brochure → read
built-in-skills/flier.mdorbuilt-in-skills/trifold-brochure.md, and usestarter-components/doc-page.js. - Otherwise (default) → read both
built-in-skills/hi-fi-design.mdandbuilt-in-skills/interactive-prototype.md. - Other output types (deck, mobile app, PDF export, etc.) → read the matching file. The grouped list is at the bottom of
system-prompt.md. One special case: if the user explicitly asks to be surprised without saying by what ("show me something cool", "surprise me") → readbuilt-in-skills/something-cool.mdand follow it (ask what they want first, then build). This is opt-in only — never the default.
4. Ask clarifying questions. For new or ambiguous work, post a concise numbered list of questions in chat (or use a structured ask tool if one is available) and wait for the user's reply before building (see "Asking questions" in system-prompt.md). Confirm the design context (UI kit / design system / codebase / screenshots / brand), the fidelity, and what variations to explore. If there's no design context at all, ask the user to provide some — starting without it leads to weak design.
5. Set up the output folder. Ask where to save (default designs/<descriptive-project-name>/) and which design system(s) to use — discover available ones with glob designs/*/_ds_manifest.json and offer them as list options (none / one / several). Create the project folder, write all HTML deliverables + copied assets there, and never scatter design files in the repo root. For each chosen system, import a self-contained copy with scripts/import-design-system.mjs (→ _ds/<slug>/), record the binding in the project's _d_meta.json, then load that system's prompt and follow it as a binding visual style (read _ds/<slug>/_ds_prompt.md). As you build, also record each UI deliverable as an asset with scripts/record-asset.mjs (this even bootstraps _d_meta.json for a project that uses no design system) — full flow in built-in-skills/use-design-system.md. Resuming an existing project? If the project folder already exists, read its _d_meta.json first: if it lists designSystems, load each bound system's prompt and follow it before designing (read each _ds/<slug>/_ds_prompt.md; don't re-ask which system to use).
6. Build, preview, and verify. Produce the deliverable following system-prompt.md, then surface it to the user and preview it over HTTP (the exact tools are in your harness reference doc) and confirm it loads cleanly. Fix any errors before finishing.
Notes
system-prompt.mdis the single source of truth for craft;references/<harness>.mdis the single source of truth for which tool to call. This file just orchestrates the entry flow.- Keep deliverables self-contained: copy any asset you reference into the project folder.