init-tauri-app について
init-tauri-app は、Tauri v2 のデスクトップアプリを作成するスキルです。公式スキャフォルダーで基盤を生成し、規約ファイルと選択したモジュールを追加します。
主な機能
- 01Tauri v2 プロジェクトの生成
- 02React、SvelteKit、Vanilla TypeScript に対応
- 03規約ファイルと基本設定の適用
- 04CLI、MCP、SQLite などの追加モジュール
- 05JTBD による製品情報の取り込み
- 06ビルドとバージョンの検証
活用シーン
- 01Tauri デスクトップアプリの新規作成
- 02CLI と MCP 機能の追加
- 03SQLite やシステムトレイの選択
- 04JTBD から製品ドキュメントを生成
MCP 対応
オプションで CLI+MCP モジュールを選択でき、生成した Tauri プロジェクトに関連ファイルを追加します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill init-tauri-appインストール後、Claude Code で/init-tauri-appを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/.gitkeepassets/core/AGENTS.mdCLAUDE.mdCONTRIBUTING.mdgitignoremcp.jsonnode-versionREADME.mdrust-toolchain.tomlassets/core/capabilities/default.jsonassets/core/scripts/check-versions.shassets/jtbd/agents-product-section.md.templateguardrails-check.md.templatejtbd-map.mdPRODUCT.md.templateassets/jtbd/fixtures/malformed-jtbd.jsonsample-jtbd.jsonassets/modules/cli-mcp/capability.jsoncargo-deps.tomlcli.rsINSERT.mdmcp.rsprotocol.rsassets/modules/release-preflight/ci.ymlINSERT.mdpreflight.shrelease.shrelease.ymlassets/modules/sqlite/cargo-deps.tomlcompat_golden.rs詳細
init-tauri-app
2 つの本番アプリ(cenno、cull)で実証された規約をあらかじめ適用した、新しい Tauri v2 プロジェクトをスキャフォールドします。バージョンに応じて更新されるボイラープレートは公式スキャフォルダーに任せたうえで、長期的に使える規約レイヤーと、ユーザーが選択したオプトインモジュールを適用します。
使用するタイミング
- 「新しい Tauri アプリを開始する」「Tauri プロジェクトを初期化する」「Tauri デスクトップアプリをスキャフォールドする」。
前提条件(スキャフォールド前に確認)
nodeとnpmが PATH 上にあること(node --version)cargoとrustcが PATH 上にあること(cargo --version)- Swift サイドカーモジュールを選択した場合に限り、macOS と Xcode CLT が必要です
手順
1. 入力を収集する(AskUserQuestion)
次の項目をまとめて尋ねます。
- アプリ名(kebab-case)。
^[a-z][a-z0-9-]*$に一致することを検証します。 - 識別子(逆引き DNS 形式、デフォルトは
com.glebkalinin.<name>)。 - ターゲットディレクトリ(デフォルトは
~/ai_projects/<name>)。存在していて空でない場合は中止します。 - フロントエンドフレームワーク:
react-ts|svelte-kit|vanilla-ts。 - モジュール(複数選択):CLI+MCP · SQLite · Tray/Updater · Release/Preflight · Swift sidecar。
- JTBD アーティファクト(任意):
jtbd.jsonのパス。指定されていない場合、スキルは./jtbd.json、次に~/jtbd/<name>/jtbd.jsonを自動検出します。Step 1.5 を参照してください。
Swift sidecar が選択されているものの、ホストが macOS でない、または xcrun --find swift が失敗する場合は、警告して選択を解除します。
1.5 JTBD を取り込む(任意、追加)
- 解決: アーティファクトを次の順に確認し、最初に見つかったものを使用します:明示的なパス →
./jtbd.json→~/jtbd/<name>/jtbd.json。見つからない場合はこの手順全体をスキップします(製品コンテキストが空のままスキャフォールドを進めます。エラーにはなりません)。 - 確認: アーティファクトの
hookを表示し、使用前にユーザーに確認します。拒否された場合はスキップします。 - 検証: アーティファクトを解析でき、
name、hook、jtbdが含まれている必要があります。満たさない場合は警告して取り込みをスキップします(スキャフォールドは中止しません)。render-jtbd.shは無効な入力に対して終了コード 3 を返します。これは「スキップ」として扱います。 - 事前入力: 有効な場合、アプリ名のデフォルトを
nameに、識別子のデフォルトをcom.glebkalinin.<name>に設定します(Step 1 ですでに選択されていない場合は、引き続きユーザーに確認します)。 - アーティファクトは Step 3(コアレイヤー)で書き込みます。JTBD ブロックを参照してください。
2. ベースをスキャフォールドする
cd <parent-of-target>
npm create tauri-app@latest <name> -- --template <framework> --manager npm --yes
次に、cd <target> && npm install を実行します。
既知の上流の修正(現行の rustc + Tauri 2.11.x): 素のスキャフォールドでは、最初の cargo check が cookie/time に関する error[E0119] で失敗することがあります(間接依存の cookie 0.18.1 と time 0.3.48 に起因)。これはスキルの不具合ではなく、新規の create-tauri-app であればどれでも発生します。発生した場合は、src-tauri/ 内で一度だけ cargo update -p time --precise 0.3.47 を実行してから、再度チェックしてください。
3. コアレイヤーを適用する
assets/core/ のすべてのファイルをプロジェクトにコピーし、以下の表に従って名前を変更したうえで、
ベースラインゲートを実行します。AGENTS.md と README 内の <name>(およびトークンがある場合は <identifier>)を置き換えます。
| アセット | コピー先 |
|---|---|
core/AGENTS.md | AGENTS.md |
core/CLAUDE.md | .claude/CLAUDE.md |
core/gitignore | .gitignore(マージ:まだ存在しない共通行のみを追加します。コメント見出しを含め、すでに存在する行はスキップします) |
core/rust-toolchain.toml | src-tauri/rust-toolchain.toml |
core/node-version | .node-version |
core/mcp.json | .mcp.json |
core/capabilities/default.json | src-tauri/capabilities/default.json(上書き) |
core/scripts/check-versions.sh | scripts/check-versions.sh(実行権限を付与) |
core/README.md | README.md |
core/CONTRIBUTING.md | CONTRIBUTING.md |
Step 1.5 で JTBD アーティファクトが確認された場合は、さらに以下を実行します:
scripts/render-jtbd.sh <artifact> assets/jtbd/PRODUCT.md.template <artifact-path>でassets/jtbd/PRODUCT.md.templateをdocs/PRODUCT.mdにレンダリングします。assets/jtbd/guardrails-check.md.templateをdocs/internal/guardrails-check.mdにレンダリングします。assets/jtbd/agents-product-section.md.templateをレンダリングし、最初の見出しの直後にAGENTS.mdへ挿入します(ファイルの先頭に製品コンテキストを配置します)。- アーティファクトをそのままプロジェクトルートの
jtbd.jsonにコピーします(ソースは変更しないでください)。 - フィールドとコピー先の詳細:
assets/jtbd/jtbd-map.md。
空の追跡対象ディレクトリ docs/internal/.gitkeep と docs/.gitkeep を作成します。
tsconfig.json で strict、noUnusedLocals、noUnusedParameters が true になるようにし、TS strict を有効にします。
ゲート: cd src-tauri && cargo check と cd .. && npm run build を実行します。どちらもモジュールの適用前に成功する必要があります。
4. 選択したモジュールを組み込む
選択した各モジュールについて、次の順序で作業します(cli-mcp、sqlite、tray-updater、swift-sidecar、
release-preflight)。assets/modules/<m>/INSERT.md を開き、記載された手順に正確に従います。そこにはコピーするファイル、src-tauri/Cargo.toml [dependencies] にマージする Cargo 依存関係、および src-tauri/src/lib.rs(tauri::generate_handler![...])と src-tauri/src/main.rs の挿入箇所が記載されています。
各モジュールの適用後: cd src-tauri && cargo check を実行します。失敗した場合は、次に進む前に、適用したばかりのマージを修正します(失敗箇所は現在のモジュールに絞り込まれます)。フロントエンドまたはスクリプト部分を含むモジュールでは、該当する INSERT.md に記載されたチェックも実行します。
5. 最終確認と引き継ぎ
cd src-tauri && cargo check→ 成功する必要がありますnpm run build→ 成功する必要がありますbash scripts/check-versions.sh→ 成功する必要がありますgit init && git add -A && git commit -m "chore: scaffold via init-tauri-app"を提案します。- 概要を出力します:フレームワーク、適用したモジュール、スキップしたモジュール(理由を含む)、次に実行するコマンド(
npm run tauri dev)。