← ClaudeAtlas

kerf-applisted

Build UIs in the kerf reactive framework (https://github.com/brianwestphal/kerf). Use this skill whenever the user is writing or modifying code that imports `kerfjs`, asks to add a feature to a kerf app, or asks "how do I do X in kerf?". Use it proactively the moment you spot a kerf import in the file you're editing.
brianwestphal/glassbox · ★ 6 · Code & Development · score 74
Install: claude install-skill brianwestphal/glassbox
# Building apps with kerf > Drop this file into your `~/.claude/skills/kerf-app/SKILL.md` (or your > project's `.claude/skills/kerf-app/SKILL.md`) so Claude Code activates > it whenever you work on a kerf app. kerf is a ~11 KB reactive UI framework (~12 KB with `arraySignal`): signals + DOM morphing + JSX → HTML strings. No virtual DOM, no compiler, no scheduler. The whole public surface fits in 15 exports. ## Setup - Install: `npm install kerfjs` - `tsconfig.json`: `"jsx": "react-jsx"`, `"jsxImportSource": "kerfjs"` - Vite / esbuild need no extra config. - **Dev diagnostics are opt-in by import, and only an APP installs them.** kerf does not infer dev mode. In the app entry add `if (import.meta.env.DEV) await import('kerfjs/dev');` (Vite) or `if (process.env.NODE_ENV !== 'production') await import('kerfjs/dev');` (webpack/Node). That enables the read-only store `get()` snapshot, the throwing dangerous-URL screen, and makes the `KERF_DEV_WARN_*` family available; omitting it is production shape and sheds ~4.7 KB min+gzip because the condition folds away and the chunk is never emitted. Put it FIRST if relying on the untracked-signal warning — `signal()` picks its constructor at creation time. - **Switch individual warnings on with `enableWarnings()`**, which is the only switch that works in a browser (no `process` object there, and a bundler `define` cannot reach the read): `const dev = await import('kerfjs/dev'); dev.enableWarnings({ staleBinding: true, narrowSet: true,