vibeeditorlisted
Install: claude install-skill yusei531642/vibe-editor
# vibeeditor
vibe-editor (Tauri 2 + Vite 5 + React 18 + TypeScript 5.6) で開発するときに最初に読み込むナビゲーションスキル。
個別タスクのフローは別 skill (pullrequest / vibe-team / claude-design など) に委譲し、ここでは「どこに何があるか」「どのレイヤを触るか」を素早く判断するための地図を提供する。
---
## アーキテクチャの大原則
**3 レイヤ構成** (この境界を曖昧にしない):
```
┌─────────────────────────────────────────────────┐
│ Renderer (src/renderer/) — UI 描画のみ │
│ React 18 + TS strict + zustand + Monaco │
│ 状態: hooks + Context (Settings, Toast) │
│ + zustand (canvas / ui) │
└──────────────────┬──────────────────────────────┘
│ window.api (tauri-api.ts 互換層)
│ ↓ invoke() / listen()
┌──────────────────┴──────────────────────────────┐
│ Tauri main (src-tauri/) — Rust │
│ ファイル I/O / git / PTY / 設定 / TeamHub / │
│ updater / dialog │
│ commands/ にすべての IPC handler を集約 │
└─────────────────────────────────────────────────┘
```
- **Renderer から OS リソース (fs, child_process, network) に直接触らない**。必ず Rust 側コマンドを足してから `window.api` 経由で呼ぶ。
- **Rust 側は `src-tauri/src/commands/<領域>.rs` に handler を書き、`#[tauri::command]` を付けて main.rs (または builder) に登録**。
- **共有型は `src/types/shared.ts` に定義**し、Rust 側は `serde(rename_all = "camelCase")` で同名構造体をマッピング。片側だけ変更しないこと。
---
## ディレクトリ早見表
| 触りたいもの | 場所 |
|------------------------------------|--------------------------------------------------