> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# プロジェクト構造

Rust シェル、ブート ページ、リリース スクリプト、Web アプリとの境界を見つけます。

## インストールとセットアップ

すべてのステップの前に、[開始する前に](https://supastack.dev/ja/docs/desktop/before-you-start.md)と[ターミナルの基本](https://supastack.dev/ja/docs/desktop/terminal-basics.md)を読みます。package.json を含むフォルダーであるルートで supastack フォルダーを開きます。Desktop チェックアウトには apps/desktop とそのリリース スクリプトが含まれ、All Platforms モノレポには Web バックエンドとモバイル アプリも追加されます。環境変数とは、ローカルの .env ファイルまたはホスティング ダッシュボードに保存された名前付き設定です。シェルは SUPASTACK_APP_URL をファイルからではなくターミナル設定として読みます。

1. `apps/desktop/src-tauri/src/lib.rs` を開きます — すべてのネイティブ動作はこの 1 つのファイルにあります。

2. `apps/desktop/src-tauri/` を閲覧します — 構成、capabilities、アイコン。

3. リポジトリ ルートから `corepack pnpm --filter @supastack/desktop dev` を到達可能なバックエンドで実行します。

チェックアウトには Tauri シェルのみが含まれます: Rust ソース、その構成、ブート ページ、リリース スクリプト。プロダクト画面はウィンドウが読み込む Web アプリにあります — Desktop 専用チェックアウトには独自のアプリ画面がありません。動作を変更する前に AGENTS.md と .ai/PROJECT_CONTEXT.md を読んでください。`.ai/` ミラー ドキュメントは、ファイルだけからは見えない決定を記録しています。

```
apps/desktop/src-tauri/src/    Rust — window, tray, menus, deep links, updater
apps/desktop/src-tauri/        tauri.conf.json, capabilities/, Cargo.toml, icons
apps/desktop/ui/               Boot page (index.html + boot.js) shown while loading
apps/desktop/scripts/          Release preflight + update manifest
docs/                          Runbooks incl. desktop updates
.agents/skills/                Task guides for coding agents
```


## 変更が属する場所

編集前に、どちら側が変更を所有するか決めます: ユーザーがプロダクト UI として見るものは Web アプリに属し、OS レベルの動作のみが Rust に属します。

[最初のデスクトップ機能を構築する](https://supastack.dev/ja/docs/desktop/first-feature.md)

- ウィンドウ、トレイ、メニュー、ショートカット、単一インスタンスの動作 → `apps/desktop/src-tauri/src/lib.rs`。
- 新しい webview 権限 → `apps/desktop/src-tauri/capabilities/default.json` — ネイティブ機能が必要とするときのみ拡大します。
- バンドル識別子、バージョン、アップデーター エンドポイント、プラグイン オプション → `apps/desktop/src-tauri/tauri.conf.json`。
- プレースホルダー製品アイコン → `placeholder-icon.png` を置き換えてアイコン スクリプトを実行します。
- ブート、読み込み、オフライン オーバーレイの動作 → `apps/desktop/ui/`。
- プロダクト画面、設定、データはすべて → Web アプリ リポジトリ — シェルはプロダクト UI をフォークしません。


## 実装ワークフロー

ネイティブな変更では、`lib.rs` を編集し、`cargo check` と Rust テストを実行し、各ターゲット OS でウィンドウを実際に操作します — トレイ、ショートカット、ディープリンクの動作はプラットフォームごとに異なります。`.agents/skills/` の `add-a-desktop-capability` スキルが同じ順序をたどります。


## 検証とトラブルシューティング

`cargo check` はコンパイル エラーを捕捉し、`cargo test` は純粋なロジックをカバーします。真の検証は Windows、macOS、Linux で実行されるウィンドウです — トレイ、ショートカット、ディープリンクはテストだけでは証明できません。

```
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
```


## 次へ

[最初の機能を作る](https://supastack.dev/ja/docs/desktop/first-feature.md)
