一键导入
form
Work on form UI components
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Work on form UI components
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Synchronise Nix deps hash after changing deps.edn
Diagnose and fix CI build failures
Create atomic commits from all unstaged changes
Create atomic commits from session changes only
Create a new Clojure component
Run Kaocha tests
| name | form |
| description | Work on form UI components |
| allowed-tools | Read, Edit, Write, Grep, Glob, Bash(just css, just tailwind, just fmt), mcp__clojure-mcp__* |
Work on form UI components. Before starting, read docs/forms.org.
Forms communicate through physical metaphor:
BANNED:
form-error, rejected?| Pristine field + blur | No validation | | Touched field + blur | Validate on blur | | Field with error + input | Validate immediately (debounced) | | Form submission | Validate all, shake if invalid |
Use data structures for classes:
;; Good: Data structures with Winnow
:class (tw/merge-classes ["h-5" "flex" "items-center"
(if message "opacity-100" "opacity-0")])
;; Good: Use with-defaults
[:input (tw/with-defaults attrs ["w-full" "rounded-lg" ring-class])]
BANNED: Hiccup class shorthand
;; BANNED
[:label.block.text-xs "Email"]
;; REQUIRED
[:label {:class "block text-xs"} "Email"]
After modifying dev-resources/templates/tailwind.css.selmer:
just css
Watch for class changes:
just tailwind
Always use qualified keywords:
:bits.form/pristine
:bits.form/advisory
:bits.form/error
$ARGUMENTS