zenit UI dev Skill
Claude Code などの AI Agent 向けの開発マニュアルです。インストールすると、Agent は zenit の UI を書くときにまず既存コンポーネントを選び、token と recipe でスタイルを付け、zenit のライフタイムに沿って状態を管理し、引き渡す前に自らビルドしてスクリーンショットで確認します。
ダウンロード
アーカイブの中身は標準的な Agent Skill フォルダーです。エントリーの SKILL.md は短く、ルールと判断表だけを載せています。詳細は references/ に分割されており、Agent は必要なときだけ読むのでコンテキストを圧迫しません。
インストール
- 1Skill フォルダーに置く
個人で使うなら
~/.claude/skills/に置けば全プロジェクトで有効です。チームで共有するならリポジトリの.claude/skills/に置いてコミットすれば、クローンした全員が使えます。 - 2Agent のセッションを再起動
Claude Code はセッション開始時に Skill をスキャンします。新しいセッションを開き、
/skillsにzenit-ui-devが表示されればインストール完了です。 - 3いつもどおり依頼する
zenit の UI に関わるタスクでは自動で読み込まれます。「zenit-ui-dev skill を使って」と明示してもかまいません。
ダウンロード後、ユーザーフォルダーに展開します(全プロジェクトで有効):
~/.claude/skills/
└── zenit-ui-dev/
├── SKILL.md
├── references/
└── tools/または、プロジェクトに展開してコミットします(チームで共有):
.claude/skills/
└── zenit-ui-dev/
├── SKILL.md
├── references/
└── tools/# Codex and other agents that read AGENTS.md: unpack into the repo and reference it
unzip -oq zenit-ui-dev.zip -d .agents/skills
echo '- zenit UI: read .agents/skills/zenit-ui-dev/SKILL.md before writing UI code' >> AGENTS.md中身
SKILL.mdエントリーポイント:トリガー条件、ワークフロー、厳守ルール、判断表、どの reference をいつ読むかreferences/app-architecture.md本番運用のエディターを例にした大規模アプリの階層:状態、ビュー、コマンド、サービスreferences/components.mdui.widgets カタログ、2 種類の mount 形式、「デザイン要素 → コンポーネント」対応表references/macos-native.mdメニュー、ショートカット、ファイルダイアログ、クリップボード、ドラッグ&ドロップ、マルチウィンドウ、IMEreferences/pencil-design.mdPencil(pen.dev)デザインの再現:MCP での数値読み取り、フィールド対応表、スクリーンショットの数値比較references/performance.md仮想リスト、dirty レベル、大きなテキスト、バックグラウンドスレッドとメインスレッドの通信references/pitfalls.mdzenit と本番アプリの修正履歴から集めた「症状 → 原因 → 正しい対処」references/project-setup.md新規プロジェクト、build.zig / build.zig.zon、.app のパッケージング、ビルドオプションの転送references/state-reactivity.mdbindState / cx.on、Signal / Memo / Effect、Scope のライフタイムとクリーンアップreferences/styling.mdToken → styles.zig → recipe の 3 層、テーマ、ui.arb による逃げ道references/ui-tree-layout.mdノード、Flex レイアウト、サイズ、ノードの更新、表示 / 非表示、座標references/verification.mdAgent の自己検証ループ:ビルド、スクリーンショット、E2E harness、DevTools、ログtools/design_diff.tsデザイン PNG とアプリのスクリーンショットを数値比較し、具体的な修正ヒントを出力tools/png.tsdesign_diff が使う依存ゼロの PNG デコーダーtools/shot.tsファイル RPC 経由で任意の zenit アプリをスクリーンショット(Retina)デザインの各要素を ui.widgets の既存コンポーネントに対応付け、Agent が box で Button を作り直すのを防ぎます。
bindState、pub deinit、Scope のクリーンアップ、ページ切り替えのルール。最もよくあるリーク、二重解放、ダングリングポインターに直接効きます。
Agent にビルド、実行、スクリーンショット、要件との照合までさせ、「コンパイルが通った」で終わらせません。
本番アプリの修正履歴から整理した問題リスト。それぞれに原因と正しい対処が付いています。
おすすめ:Pencil でデザイン
Pencilpen.devPencil で画面を描き、この Skill を使って Agent に実装させるのがおすすめです。.pen の Flex レイアウト、間隔、角丸、文字サイズ、lucide アイコンは zenit のモデルとよく似ています。Skill にはフィールド対応表と design_diff 比較ツールが付属しているので、Agent は感覚ではなく数値で再現できます。
- 01.penPencil のデザイン
- 02MCPAgent が正確な数値を読む
- 03zigwidgets + token で zenit コード
- 04diffデザインとの数値比較
- 1Pencil MCP を接続
Agent で Pencil の MCP server を有効にし、.pen ファイルを開きます。Skill は .pen を MCP 経由でしか読みません。MCP はデザイン変数を展開し、解決後の実寸を返します。この 2 つこそ忠実な再現に必要なものです。
- 2画像ではなく数値を読む
Agent はまず
Get(nodeId, { resolveVariables: true })で gap、padding、角丸、文字サイズ、色を取得し、対応表に従って zenit に書き換えます:fill_container → .fill()、chevron-down → ui.icons.chevron_down。 - 3一致するまで数値比較
デザインを scale 2 で書き出し、
tools/shot.tsで実ウィンドウをキャプチャします。tools/design_diff.tsがずれ、サイズ差、ヒートマップ、配色のずれを報告し、Agent はそのヒントに沿って修正します。1 ラウンドは約 5 秒です。
SKILL=~/.claude/skills/zenit-ui-dev
bun $SKILL/tools/design_diff.ts --self-test
ZENIT_E2E_FILE_RPC_DIR=$RPCDIR bun $SKILL/tools/shot.ts /tmp/actual.png
bun $SKILL/tools/design_diff.ts /tmp/design/<nodeId>.png /tmp/actual.png使い方
特別な構文は不要です。欲しい UI や問題を説明するだけです。うまくいく依頼の例をいくつか挙げます:
Pencil MCP で開いている .pen の「Settings」フレームを読み取り、zenit で設定ウィンドウとして再現して、design_diff のスコアが 90 を超えたら渡してください。
zenit でこのアプリに設定ウィンドウを追加してください。左にカテゴリ一覧、右にフォーム、変更は即時反映です。
src/views/sidebar.zig に手書きされたスタイルを styles.zig + recipe に移行してください。
ファイルツリーが 5 万ノードになるとスクロールがカクつきます。原因を調べて修正し、修正後のスクリーンショットを見せてください。内容の出典
Skill のルールは 2 つのプロジェクトに由来します。zenit フレームワーク本体(公開 API、サンプル、コンポーネントカタログ、テストツール)と、zenit で開発された本番運用の macOS エディター(大規模アプリの階層化、ネイティブ統合、修正履歴)です。サンプルコードは可能な限りこの 2 つのリポジトリでコンパイルが通るコードから取り、本マニュアルと一致させています。
ソースはサイトリポジトリの skill/zenit-ui-dev/ にあり、ビルド時に scripts/pack-skill.mjs でパッケージされます。SKILL.md を直接読むこともできます。