# 画面遷移図

Oh My Zsh は CLI（コマンドラインインターフェース）フレームワークであり、従来のGUI画面は存在しません。
本ドキュメントでは、CLIコマンドの遷移とツールスクリプトの呼び出し関係を「画面遷移」として表現しています。

## 1. omz コマンド遷移図

```mermaid
graph TD
    subgraph "omz メインコマンド"
        OMZ[omz]
        HELP[omz help]
        CHANGELOG[omz changelog]
        UPDATE[omz update]
        RELOAD[omz reload]
        VERSION[omz version]
        SHOP[omz shop]
    end

    subgraph "omz plugin サブコマンド"
        PLUGIN[omz plugin]
        PLUGIN_LIST[omz plugin list]
        PLUGIN_INFO[omz plugin info]
        PLUGIN_ENABLE[omz plugin enable]
        PLUGIN_DISABLE[omz plugin disable]
        PLUGIN_LOAD[omz plugin load]
    end

    subgraph "omz theme サブコマンド"
        THEME[omz theme]
        THEME_LIST[omz theme list]
        THEME_USE[omz theme use]
        THEME_SET[omz theme set]
    end

    subgraph "omz pr サブコマンド"
        PR[omz pr]
        PR_TEST[omz pr test]
        PR_CLEAN[omz pr clean]
    end

    OMZ --> HELP
    OMZ --> CHANGELOG
    OMZ --> UPDATE
    OMZ --> RELOAD
    OMZ --> VERSION
    OMZ --> SHOP
    OMZ --> PLUGIN
    OMZ --> THEME
    OMZ --> PR

    PLUGIN --> PLUGIN_LIST
    PLUGIN --> PLUGIN_INFO
    PLUGIN --> PLUGIN_ENABLE
    PLUGIN --> PLUGIN_DISABLE
    PLUGIN --> PLUGIN_LOAD

    THEME --> THEME_LIST
    THEME --> THEME_USE
    THEME --> THEME_SET

    PR --> PR_TEST
    PR --> PR_CLEAN

    PLUGIN_ENABLE --> RELOAD
    PLUGIN_DISABLE --> RELOAD
    THEME_SET --> RELOAD
    UPDATE --> RELOAD
```

## 2. ツールスクリプト呼び出し関係図

```mermaid
graph TD
    subgraph "エントリーポイント"
        USER[ユーザー]
        ZSHRC[.zshrc]
    end

    subgraph "インストール/アンインストール"
        INSTALL[install.sh]
        UNINSTALL[uninstall.sh]
    end

    subgraph "アップグレード"
        UPGRADE[upgrade.sh]
        CHECK_UPGRADE[check_for_upgrade.sh]
    end

    subgraph "ユーティリティ"
        CHANGELOG_SH[changelog.sh]
        THEME_CHOOSER[theme_chooser.sh]
        REQUIRE_TOOL[require_tool.sh]
    end

    subgraph "CLIコマンド"
        OMZ_UPDATE[omz update]
        OMZ_CHANGELOG[omz changelog]
    end

    USER -->|新規インストール| INSTALL
    USER -->|削除| UNINSTALL
    INSTALL --> ZSHRC

    ZSHRC -->|起動時| CHECK_UPGRADE
    CHECK_UPGRADE -->|更新あり| UPGRADE

    OMZ_UPDATE --> UPGRADE
    OMZ_CHANGELOG --> CHANGELOG_SH

    USER -->|対話式テーマ選択| THEME_CHOOSER
    INSTALL --> REQUIRE_TOOL
```

## 3. セッション状態遷移図

```mermaid
stateDiagram-v2
    [*] --> 未インストール

    未インストール --> インストール中: install.sh実行
    インストール中 --> インストール完了: 正常終了
    インストール中 --> 未インストール: エラー

    インストール完了 --> zshセッション開始: zsh起動

    state zshセッション開始 {
        [*] --> 初期化
        初期化 --> プラグイン読込
        プラグイン読込 --> テーマ適用
        テーマ適用 --> コマンド待機

        コマンド待機 --> プラグイン管理: omz plugin
        コマンド待機 --> テーマ管理: omz theme
        コマンド待機 --> 更新処理: omz update
        コマンド待機 --> セッション再起動: omz reload

        プラグイン管理 --> コマンド待機: 完了
        テーマ管理 --> コマンド待機: 完了
        更新処理 --> セッション再起動: 更新完了
        セッション再起動 --> 初期化: 再読込
    }

    zshセッション開始 --> アンインストール中: uninstall.sh実行
    アンインストール中 --> 未インストール: 完了
```

## 4. プラグイン/テーマ管理フロー

```mermaid
flowchart LR
    subgraph "プラグイン管理"
        PL_LIST[一覧表示<br/>omz plugin list]
        PL_INFO[情報表示<br/>omz plugin info]
        PL_ENABLE[有効化<br/>omz plugin enable]
        PL_DISABLE[無効化<br/>omz plugin disable]
        PL_LOAD[動的読込<br/>omz plugin load]
    end

    subgraph "テーマ管理"
        TH_LIST[一覧表示<br/>omz theme list]
        TH_USE[一時適用<br/>omz theme use]
        TH_SET[永続設定<br/>omz theme set]
    end

    subgraph "設定ファイル"
        ZSHRC[~/.zshrc]
    end

    subgraph "セッション"
        SESSION[現在のzshセッション]
    end

    PL_ENABLE --> ZSHRC
    PL_DISABLE --> ZSHRC
    TH_SET --> ZSHRC

    PL_LOAD --> SESSION
    TH_USE --> SESSION

    ZSHRC -->|reload時| SESSION
```
