# makepad-skills, fourteen reference files for Makepad 2.0 and three ways to put them in a skills directory

> This repository is a set of fourteen agent skills describing Makepad 2.0, from app structure and DSL syntax through shaders, theming, and a 1.x migration guide. The tree holds no Rust source, and two of the three install routes assume you are standing in the repository root when you run them.

**ZhangHanDong/makepad-skills** — Build App with Makepad and AI skills

- Repository: https://github.com/ZhangHanDong/makepad-skills
- Stars: 747 · Forks: 88
- Language: Unknown
- License: not declared
- Published: 2026-09-15 · Updated: 2026-09-15 · Language: en
- Canonical page: https://hysenlabs.com/projects/zhanghandong-makepad-skills

## One skill is an entry point and thirteen are meant to be co-loaded

The set is fourteen skills, and the ordering is part of the design rather than a suggestion. `makepad-2.0-design-judgment` is labelled the entry point and carries design judgment anchors: the Elm Architecture, the Presentational and Container split, and a GPU rendering mental model. The instruction attached to it is to load it first and then co-load specific skills below. The remaining thirteen are named for the part of the framework they cover, so the co-load is meant to be selective rather than all at once.

The naming is consistent enough to filter on. Every one of the fourteen starts with `makepad-2.0-`, which means a symlink or copy into a shared skills directory cannot collide with an unrelated skill of the same generic name, and it also means a global search across an assistant's skills can be scoped to one framework version with a prefix match.

## Three install routes, and only two of them write into the skills directory

Route one adds the folder as a working directory, which is a settings edit rather than a file copy:

```json
// .claude/settings.json
{
  "additionalWorkingDirectories": [
    "/path/to/makepad-skills"
  ]
}
```

Route two links each skill into place:

```bash
for skill in skills/*; do
    ln -sf "$(pwd)/$skill" ~/.claude/skills/
done
```

Route three copies them:

```bash
cp -r skills/* ~/.claude/skills/
```

Routes two and three end at the same destination, `~/.claude/skills/`, while route one leaves the files where they are and only makes the directory reachable. Whether a reachable directory is the same thing to an assistant as an installed skill is not something this repository answers, so if you want the files discovered as skills rather than merely readable, routes two and three are the ones whose effect is visible in the filesystem.

## The symlink loop is anchored to wherever you happen to be standing

The loop builds each link from `$(pwd)`, so the absolute path it writes into `~/.claude/skills/` is your current directory at the moment you run it. Run it from your own project and every one of the fourteen links will point at a `skills` directory that does not exist there. Run it from the repository root and the links resolve correctly.

Two smaller assumptions ride along with it. The destination is written to without a preceding `mkdir`, so an existing `~/.claude/skills/` directory is taken for granted. And the loop uses `ln -sf`, where the force flag replaces an existing entry of the same name rather than stopping to ask, which is convenient for re-running after an update and uninformative when the name was already taken by something else.

Because the links are absolute rather than relative, they also stop working if the checkout moves. The copy route does not have that failure mode, at the cost of a manual refresh after every change.

## The catalogue names APIs, so it is pinned to a version by construction

Each entry is a one line description dense with API names, which makes the list double as an index of what Makepad 2.0 exposes. App structure covers `app_main!`, ScriptVm, Cargo setup, and hot reload. The DSL entry names `script_mod!`, the colon syntax, `mod.widgets`, and let bindings. Layout names Flow, Fill, Fit, Inset, spacing, and alignment. Widgets names View, Button, Label, TextInput, PortalList, and Dock. Events names `on_click`, `on_render`, Hit, and `ids!`. Animation covers the Animator, states, Forward, Snap, Loop, and ease functions. Shaders name `draw_bg`, Sdf2d, pixel and vertex functions, and DrawQuad. Splash is a scripting language with streaming evaluation and hot reload. Themes use `mod.themes` with colors, fonts, and a dark and light mode. Vector covers SVG paths, gradients, tweens, and DropShadow. Performance names GC, draw batching, and ViewOptimize.

Reading that list tells you what a Makepad 2.0 application is made of, in the author's own terms, before you open a single file of the framework itself. The repository does not show the contents of the `skills` directory, so the file layout behind the fourteen names is not visible here.

## The 1.x skills sit on a branch and one skill is the only bridge

Makepad 1.x material, including what the README calls the Robius and MolyKit patterns, is not deleted and not merged. It lives on the `v1/makepad-1.0` branch, and the link in the overview points at that branch's tree rather than at a directory on main.

Inside the 2.0 set, `makepad-2.0-migration` is the single skill that connects the two, and its stated scope is moving a project from Makepad 1.x to 2.0. If you are starting fresh, that skill is one of fourteen. If you are porting an existing application, it is the reason to read this repository rather than the framework documentation, because it is the only place here that assumes you already know the 1.x API.

The remaining legacy surface is the pattern libraries themselves. Whether those Robius and MolyKit patterns have 2.0 equivalents inside the current branch is not something this repository states.

## No releases, and the last commit on main is dated 2026-04-07

The repository has no GitHub releases, so there is no tag to install, no changelog to diff, and no version number in the skill names beyond the `2.0` that refers to the framework rather than to these files. Updates arrive as commits on the main branch, and the most recent one is dated 2026-04-07.

That has two practical consequences. Pinning a version means pinning a commit, and there is no signal in the repository telling you which commit is the good one. And the files describe Makepad 2.0 against a framework that moves on its own schedule, so a fresh pull can change what the skills say about an API without anything in this repository announcing it.

The skills also make no claim about which Makepad revision they were written against. The two version numbers in play, 2.0 in every skill name and nothing at all in the repository's own metadata, are easy to conflate and should not be.

## A plugin directory and a metadata file that the overview never mentions

The root holds `.claude-plugin/`, `metadata.json`, `CLAUDE.md`, `.gitignore`, `README.md`, and the `skills` directory. Two of those are the kind of file that indicates a second way in: a plugin manifest directory and a metadata file, both of which are how an assistant's tooling discovers an installable unit rather than a pile of loose documents.

The overview documents three manual routes and does not mention either file. If your tooling supports plugins, that route may well be the intended primary path and the manual routes may be the fallback, but nothing here states which is which, and a reader following the overview literally will never open either file.

The repository also carries a top level `CLAUDE.md`, which is a fourth piece of assistant-facing configuration that the overview does not describe.

## MIT is a single line, and there is no LICENSE file in the tree

The license statement is one line at the bottom of the overview: MIT. The top level entries are `.claude-plugin/`, `.gitignore`, `CLAUDE.md`, `README.md`, `metadata.json`, and `skills/`, so there is no LICENSE file beside it, and the repository's own license field is empty rather than filled with MIT.

MIT is a permissive choice with no network copyleft clause, which matters here because these files describe another project's API and will end up inside prompts, repositories, and products that carry their own terms. Nothing in the tree contradicts the README line, and nothing in the tree backs it either, so anyone who needs the permission text itself rather than the assertion has nowhere in this repository to find it.

## Conclusion

This is a reference shelf, not a framework, and it is worth taking if you are writing Makepad 2.0 code with an assistant that needs the API surface in context, and skipping if you want a starter project, since nothing here builds one. Three things to check before you rely on it. That your assistant actually reads the directory you installed into, because the working directory route and the skills directory route are not obviously the same thing to the tooling. Which Makepad 2.0 revision the files describe, since the repository has no releases and the last commit on the main branch is dated 2026-04-07, so there is no version to pin to. And the license, which is a single line in the README with no LICENSE file in the tree to back it up.

## FAQ

### How do I install the makepad-skills set?

Three routes are given: add the folder to additionalWorkingDirectories in .claude/settings.json, symlink each entry under skills/ into ~/.claude/skills/, or copy them with cp -r skills/* ~/.claude/skills/. The latter two assume the command is run from the repository root.

### Which makepad skill should be loaded first?

makepad-2.0-design-judgment, which is marked as the entry point and carries the design judgment anchors: the Elm Architecture, the Presentational and Container split, and a GPU rendering mental model. The other skills are meant to be co-loaded after it, selectively.

### Where are the older Makepad 1.x skills?

On the v1/makepad-1.0 branch, which also holds the Robius and MolyKit patterns. The 2.0 set carries a makepad-2.0-migration skill covering the move from 1.x, which is the only link between the two versions described here.

### What license does makepad-skills use?

The overview states MIT in a single line. There is no LICENSE file among the top level entries and the repository's license field is empty, so that README line is the only license statement in the tree.

## Sources

- [Issues](https://github.com/ZhangHanDong/makepad-skills/issues)
- [README](https://github.com/ZhangHanDong/makepad-skills/blob/main/README.md)
- [ZhangHanDong/makepad-skills on GitHub](https://github.com/ZhangHanDong/makepad-skills)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/zhanghandong-makepad-skills
