Source profileQuality 77/100Review permissions

affaan-m/ECC/docs/ja-JP/skills/flox-environments/SKILL.md

flox-environments

Use it for engineering tasks; the detail page covers purpose, installation, and practical steps.

Source repository stars
234,327
Declared platforms
0
Static risk flags
2
Last source update
2026-07-27
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Floxは単一のTOMLマニフェストで定義される再現可能な開発環境を作成します。チームのすべての開発者が同一のパッケージ、ツール、設定を取得できます — コンテナーやVMなしにmacOSとLinux間で同一です。150,000以上のパッケージにアクセスできるNixの上に構築されています。

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/flox-environments"
    Safe inspection promptEditorial

    Inspect the Agent Skill "flox-environments" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/ja-JP/skills/flox-environments/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      アクティベートするタイミング

      ユーザーが環境管理の問題を抱えている場合、Floxについて言及していなくても、このスキルを使用します。Floxが適切なツールとなるのは:

      プロジェクトがシステムレベルのパッケージ(コンパイラー、データベース、CLIツール)と言語固有の依存関係を必要とする場合再現性が重要な場合 — チームメイトのマシン、CI、または新しいラップトップでも同一に動作する必要がある場合ユーザーが複数のツールの共存を必要とする場合 — 例えばPython 3.11 + PostgreSQL 16 + Redis + Node.jsを一つの環境で
    2. 02

      コアコンセプト

      Flox環境は.flox/env/manifest.tomlで定義され、flox activateでアクティベートされます。マニフェストはパッケージ、環境変数、セットアップフック、シェル設定を宣言します — 環境をどこでも再現するために必要なすべてのものです。

      .flox/env/manifest.toml — 環境定義(コミットする)$FLOXENV — インストールされたパッケージへのランタイムパス(/usrに似ている — bin/、lib/、include/を含む)$FLOXENVCACHE — キャッシュ、venv、データの永続ローカルストレージ(リビルド後も存続)
    3. 03

      必須コマンド

      Review the “必須コマンド” section in the pinned source before continuing.

      Review and apply the “必須コマンド” source section.
    4. 04

      マニフェスト構造

      Review the “マニフェスト構造” section in the pinned source before continuing.

      Review and apply the “マニフェスト構造” source section.
    5. 05

      .flox/env/manifest.toml

      Review the “.flox/env/manifest.toml” section in the pinned source before continuing.

      Review and apply the “.flox/env/manifest.toml” source section.

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 363

    The documentation includes network, browsing, or remote request actions.

    curl.pkg-path = "curl"

    Runs scripts

    medium · line 411

    The documentation asks the agent to run terminal commands or scripts.

    git add .flox/

    Runs scripts

    medium · line 412

    The documentation asks the agent to run terminal commands or scripts.

    git commit -m "Add Flox environment"

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score77/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars234,327SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    affaan-m/ECC
    Skill path
    docs/ja-JP/skills/flox-environments/SKILL.md
    Commit
    4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    Flox環境

    Floxは単一のTOMLマニフェストで定義される再現可能な開発環境を作成します。チームのすべての開発者が同一のパッケージ、ツール、設定を取得できます — コンテナーやVMなしにmacOSとLinux間で同一です。150,000以上のパッケージにアクセスできるNixの上に構築されています。

    アクティベートするタイミング

    ユーザーが環境管理の問題を抱えている場合、Floxについて言及していなくても、このスキルを使用します。Floxが適切なツールとなるのは:

    • プロジェクトがシステムレベルのパッケージ(コンパイラー、データベース、CLIツール)と言語固有の依存関係を必要とする場合
    • 再現性が重要な場合 — チームメイトのマシン、CI、または新しいラップトップでも同一に動作する必要がある場合
    • ユーザーが複数のツールの共存を必要とする場合 — 例えばPython 3.11 + PostgreSQL 16 + Redis + Node.jsを一つの環境で
    • クロスプラットフォームサポートが必要な場合(同一設定からmacOSとLinux)
    • AIエージェントがツールをインストールする必要がある場合 — Floxはエージェントがsudoなし、システム汚染なし、サンドボックス制限なしにプロジェクトスコープの環境にパッケージを追加できます

    ユーザーがシステム依存関係のない単一の言語ランタイムだけが必要な場合、標準ツール(nvm、pyenv、rustup単独)で十分かもしれません。完全なOSレベルの分離が必要な場合、コンテナーがより適切かもしれません。Floxはその中間に位置します: コンテナーのオーバーヘッドなしの宣言的で再現可能な環境。

    前提条件: まずFloxをインストールする必要があります — macOS、Linux、Dockerについてはflox.dev/docsを参照してください。

    コアコンセプト

    Flox環境は.flox/env/manifest.tomlで定義され、flox activateでアクティベートされます。マニフェストはパッケージ、環境変数、セットアップフック、シェル設定を宣言します — 環境をどこでも再現するために必要なすべてのものです。

    主要なパス:

    • .flox/env/manifest.toml — 環境定義(コミットする)
    • $FLOX_ENV — インストールされたパッケージへのランタイムパス(/usrに似ている — bin/lib/include/を含む)
    • $FLOX_ENV_CACHE — キャッシュ、venv、データの永続ローカルストレージ(リビルド後も存続)
    • $FLOX_ENV_PROJECT — プロジェクトのルートディレクトリ(.flox/が存在する場所)

    必須コマンド

    flox init                       # 新しい環境を作成
    flox search <package> [--all]   # パッケージを検索
    flox show <package>             # 利用可能なバージョンを表示
    flox install <package>          # パッケージを追加
    flox list                       # インストール済みパッケージを一覧表示
    flox activate                   # 環境に入る
    flox activate -- <cmd>          # サブシェルなしで環境内でコマンドを実行
    flox edit                       # マニフェストをインタラクティブに編集
    

    マニフェスト構造

    # .flox/env/manifest.toml
    
    [install]
    # インストールするパッケージ — 環境の核心
    ripgrep.pkg-path = "ripgrep"
    jq.pkg-path = "jq"
    
    [vars]
    # 静的な環境変数
    DATABASE_URL = "postgres://localhost:5432/myapp"
    
    [hook]
    # 非インタラクティブなセットアップスクリプト(すべてのアクティベーション時に実行)
    on-activate = """
      echo "Environment ready"
    """
    
    [profile]
    # シェル関数とエイリアス(インタラクティブシェルで利用可能)
    common = """
      alias dev="npm run dev"
    """
    
    [options]
    # サポートされているプラットフォーム
    systems = ["x86_64-linux", "aarch64-linux", "x86_64-darwin", "aarch64-darwin"]
    

    パッケージインストールパターン

    基本インストール

    [install]
    nodejs.pkg-path = "nodejs"
    python.pkg-path = "python311"
    rustup.pkg-path = "rustup"
    

    バージョン固定

    [install]
    nodejs.pkg-path = "nodejs"
    nodejs.version = "^20.0"          # semverレンジ: 最新の20.x
    
    postgres.pkg-path = "postgresql"
    postgres.version = "16.2"         # 正確なバージョン
    

    プラットフォーム固有のパッケージ

    [install]
    # Linuxのみのツール
    valgrind.pkg-path = "valgrind"
    valgrind.systems = ["x86_64-linux", "aarch64-linux"]
    
    # macOSフレームワーク
    Security.pkg-path = "darwin.apple_sdk.frameworks.Security"
    Security.systems = ["x86_64-darwin", "aarch64-darwin"]
    
    # macOSでのGNUツール(BSDのデフォルトが異なる場合)
    coreutils.pkg-path = "coreutils"
    coreutils.systems = ["x86_64-darwin", "aarch64-darwin"]
    

    パッケージ競合の解消

    2つのパッケージが同じバイナリをインストールする場合、priorityを使用します(数値が低い方が優先):

    [install]
    gcc.pkg-path = "gcc12"
    gcc.priority = 3
    
    clang.pkg-path = "clang_18"
    clang.priority = 5               # gccがファイル競合を勝つ
    

    一緒にバージョンを解決する必要があるパッケージをグループ化するにはpkg-groupを使用します:

    [install]
    python.pkg-path = "python311"
    python.pkg-group = "python-stack"
    
    pip.pkg-path = "python311Packages.pip"
    pip.pkg-group = "python-stack"    # pythonと一緒に解決
    

    言語固有のレシピ

    uvを使ったPython

    [install]
    python.pkg-path = "python311"
    uv.pkg-path = "uv"
    
    [vars]
    UV_CACHE_DIR = "$FLOX_ENV_CACHE/uv-cache"
    PIP_CACHE_DIR = "$FLOX_ENV_CACHE/pip-cache"
    
    [hook]
    on-activate = """
      venv="$FLOX_ENV_CACHE/venv"
      if [ ! -d "$venv" ]; then
        uv venv "$venv" --python python3
      fi
      if [ -f "$venv/bin/activate" ]; then
        source "$venv/bin/activate"
      fi
    
      if [ -f requirements.txt ] && [ ! -f "$FLOX_ENV_CACHE/.deps_installed" ]; then
        uv pip install --python "$venv/bin/python" -r requirements.txt --quiet
        touch "$FLOX_ENV_CACHE/.deps_installed"
      fi
    """
    

    Node.js

    [install]
    nodejs.pkg-path = "nodejs"
    nodejs.version = "^20.0"
    
    [hook]
    on-activate = """
      if [ -f package.json ] && [ ! -d node_modules ]; then
        npm install --silent
      fi
    """
    

    Rust

    [install]
    rustup.pkg-path = "rustup"
    pkg-config.pkg-path = "pkg-config"
    openssl.pkg-path = "openssl"
    
    [vars]
    RUSTUP_HOME = "$FLOX_ENV_CACHE/rustup"
    CARGO_HOME = "$FLOX_ENV_CACHE/cargo"
    
    [profile]
    common = """
      export PATH="$CARGO_HOME/bin:$PATH"
    """
    

    Go

    [install]
    go.pkg-path = "go"
    gopls.pkg-path = "gopls"
    delve.pkg-path = "delve"
    
    [vars]
    GOPATH = "$FLOX_ENV_CACHE/go"
    GOBIN = "$FLOX_ENV_CACHE/go/bin"
    
    [profile]
    common = """
      export PATH="$GOBIN:$PATH"
    """
    

    C/C++

    [install]
    gcc.pkg-path = "gcc13"
    gcc.pkg-group = "compilers"
    
    # 重要: gcc単体ではlibstdc++ヘッダーを公開しません — gcc-unwrappedが必要
    gcc-unwrapped.pkg-path = "gcc-unwrapped"
    gcc-unwrapped.pkg-group = "libraries"
    
    cmake.pkg-path = "cmake"
    cmake.pkg-group = "build"
    
    gnumake.pkg-path = "gnumake"
    gnumake.pkg-group = "build"
    
    gdb.pkg-path = "gdb"
    gdb.systems = ["x86_64-linux", "aarch64-linux"]
    

    フックとプロファイル

    フック — 非インタラクティブなセットアップ

    フックはすべてのアクティベーション時に実行されます。速くべきで冪等性を保ちます。原則として: 自動的に実行すべきものは[hook]に; ユーザーが入力できるべきものは[profile]に。

    [hook]
    on-activate = """
      setup_database() {
        if [ ! -d "$FLOX_ENV_CACHE/pgdata" ]; then
          initdb -D "$FLOX_ENV_CACHE/pgdata" --no-locale --encoding=UTF8
        fi
      }
      setup_database
    """
    

    プロファイル — インタラクティブシェル設定

    プロファイルコードはユーザーのシェルセッションで利用可能です。

    [profile]
    common = """
      dev() { npm run dev; }
      test() { npm run test -- "$@"; }
    """
    

    アンチパターン

    絶対パス

    # 悪い例 — 他のマシンで壊れる
    [vars]
    PROJECT_DIR = "/home/alice/projects/myapp"
    
    # 良い例 — Flox環境変数を使用
    [vars]
    PROJECT_DIR = "$FLOX_ENV_PROJECT"
    

    フック内でのexitの使用

    # 悪い例 — シェルを終了させる
    [hook]
    on-activate = """
      if [ ! -f config.json ]; then
        echo "Missing config"
        exit 1
      fi
    """
    
    # 良い例 — exitではなくreturnを使用
    [hook]
    on-activate = """
      if [ ! -f config.json ]; then
        echo "Missing config — run setup first"
        return 1
      fi
    """
    

    マニフェストへのシークレットの保存

    # 悪い例 — マニフェストはgitにコミットされる
    [vars]
    API_KEY = "<set-at-runtime>"
    
    # 良い例 — 外部設定を参照するか、ランタイムで渡す
    # 使用方法: API_KEY="<your-api-key>" flox activate
    [vars]
    API_KEY = "${API_KEY:-}"
    

    冪等性ガードなしの遅いフック

    # 悪い例 — すべてのアクティベーション時に再インストールする
    [hook]
    on-activate = """
      pip install -r requirements.txt
    """
    
    # 良い例 — すでにインストール済みの場合はスキップ
    [hook]
    on-activate = """
      if [ ! -f "$FLOX_ENV_CACHE/.deps_installed" ]; then
        uv pip install -r requirements.txt --quiet
        touch "$FLOX_ENV_CACHE/.deps_installed"
      fi
    """
    

    フックへのユーザーコマンドの配置

    # 悪い例 — フック関数はインタラクティブシェルで利用できない
    [hook]
    on-activate = """
      deploy() { kubectl apply -f k8s/; }
    """
    
    # 良い例 — ユーザーが呼び出せる関数には[profile]を使用
    [profile]
    common = """
      deploy() { kubectl apply -f k8s/; }
    """
    

    フルスタックの例

    PostgreSQLを使用したPython APIの完全な環境:

    [install]
    python.pkg-path = "python311"
    uv.pkg-path = "uv"
    postgresql.pkg-path = "postgresql_16"
    redis.pkg-path = "redis"
    jq.pkg-path = "jq"
    curl.pkg-path = "curl"
    
    [vars]
    UV_CACHE_DIR = "$FLOX_ENV_CACHE/uv-cache"
    DATABASE_URL = "postgres://localhost:5432/myapp"
    REDIS_URL = "redis://localhost:6379"
    
    [hook]
    on-activate = """
      if [ ! -d "$FLOX_ENV_CACHE/pgdata" ]; then
        initdb -D "$FLOX_ENV_CACHE/pgdata" --no-locale --encoding=UTF8
      fi
    
      venv="$FLOX_ENV_CACHE/venv"
      if [ ! -d "$venv" ]; then
        uv venv "$venv" --python python3
      fi
      if [ -f "$venv/bin/activate" ]; then
        source "$venv/bin/activate"
      fi
    
      if [ -f requirements.txt ] && [ ! -f "$FLOX_ENV_CACHE/.deps_installed" ]; then
        uv pip install --python "$venv/bin/python" -r requirements.txt --quiet
        touch "$FLOX_ENV_CACHE/.deps_installed"
      fi
    """
    
    [profile]
    common = """
      serve() { uvicorn app.main:app --reload --host 0.0.0.0 --port 8000; }
      migrate() { alembic upgrade head; }
    """
    
    [services]
    postgres.command = "postgres -D $FLOX_ENV_CACHE/pgdata -k $FLOX_ENV_CACHE"
    redis.command = "redis-server --port 6379 --daemonize no"
    
    [options]
    systems = ["x86_64-linux", "aarch64-linux", "x86_64-darwin", "aarch64-darwin"]
    

    サービス付きでアクティベート: flox activate --start-services

    環境の共有

    Flox環境はgitネイティブです。.flox/ディレクトリをコミットすれば、すべての共同作業者が同じ環境を取得できます:

    git add .flox/
    git commit -m "Add Flox environment"
    # チームメイトは以下を実行するだけ:
    git clone <repo> && cd <repo> && flox activate
    

    プロジェクト間で再利用可能なベース環境には、FloxHubにプッシュします:

    flox push                         # FloxHubに環境をプッシュ
    flox activate -r owner/env-name   # どこでもリモート環境をアクティベート
    

    [include]で環境を合成します:

    [include]
    base.floxhub = "myorg/python-base"
    
    [install]
    # ベースの上にプロジェクト固有の追加
    fastapi.pkg-path = "python311Packages.fastapi"
    

    AI支援とバイブコーディング

    FloxはAI支援開発とバイブコーディングワークフローに理想的です。AIエージェントが現在の環境で利用できないツール(コンパイラー、データベース、リンター、CLIユーティリティ)を必要とする場合、sudoアクセス不要、システムパッケージの汚染なし、サンドボックス制限なしにプロジェクトのFloxマニフェストに追加できます。

    エージェントにとってこれが重要な理由:

    • sudo不要flox installは完全にユーザースペースで動作するため、エージェントは昇格した権限なしにパッケージを追加できる
    • プロジェクトスコープ — パッケージはグローバルにではなく、プロジェクト環境にのみインストールされるため、異なるプロジェクトが競合なく異なるバージョンを持てる
    • サンドボックスフレンドリー — サンドボックスまたは制限された環境で実行されるエージェントも、Floxを通じて必要なツールをインストールできる
    • 元に戻せる — すべての変更はmanifest.tomlに記録されるため、不要なパッケージはシステム残留なしにクリーンに削除できる
    • 再現可能 — エージェントが環境をセットアップすると、その正確なセットアップがgitにコミットされ、誰でも使用できる

    エージェントのワークフローパターン:

    # エージェントがツールが必要だと発見する(例: JSON処理のためのjq)
    flox search jq                    # パッケージが存在することを確認
    flox install jq                   # プロジェクト環境にインストール
    
    # またはより詳細な制御のために、マニフェストを直接編集する
    tmp_manifest="$(mktemp)"
    flox list -c > "$tmp_manifest"
    # [install]セクションにパッケージを追加し、適用する
    flox edit -f "$tmp_manifest"
    
    # ツールを利用可能にしてコマンドを実行
    flox activate -- jq '.results[]' data.json
    

    これにより、FloxはClaude Codeや他のAIエージェントがプロジェクトツールをその場でブートストラップする必要があるワークフローに自然に適合します。

    デバッグ

    flox list -c                      # 生のマニフェストを表示
    flox activate -- which python     # どのバイナリが解決されるか確認
    flox activate -- env | grep FLOX  # Flox環境変数を確認
    flox search <package> --all       # より広いパッケージ検索(大文字小文字を区別)
    

    一般的な問題:

    • パッケージが見つからない: 検索は大文字小文字を区別します — flox search --allを試してください
    • パッケージ間のファイル競合: 優先されるべきパッケージにpriorityを追加する
    • フックの失敗: exitではなくreturnを使用; ${FLOX_ENV_CACHE:-}でガードする
    • 古い依存関係: $FLOX_ENV_CACHE/.deps_installedフラグファイルを削除する

    関連スキル

    以下のスキルは、より深い統合のためにFlox Claude Codeプラグインの一部として利用可能です:

    • flox-services — サービス管理、データベースセットアップ、バックグラウンドプロセス
    • flox-builds — Floxによる再現可能なビルドとパッケージング
    • flox-containers — Flox環境からDocker/OCIコンテナーを作成
    • flox-sharing — 環境の合成、リモート環境、チームパターン
    • flox-cuda — CUDAとGPU開発環境

    詳細とインストールはflox.dev/docsで。

    Alternatives

    Compare before choosing

    Computed 88234,327

    affaan-m/ECC

    flox-environments

    Create reproducible, cross-platform (macOS/Linux) development environments with Flox, a declarative Nix-based environment manager. Use when setting up project toolchains for any language, installing system-level dependencies (compilers, databases, native libs like openssl/BLAS), pinning exact package versions for a team, running local services (PostgreSQL, Redis, Kafka), onboarding developers with one command, or solving 'works on my machine' problems — including agent/vibe-coding setups that ne

    Computed 9831,966

    K-Dense-AI/scientific-agent-skills

    dask

    Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.

    Computed 9831,966

    K-Dense-AI/scientific-agent-skills

    medchem

    Medicinal chemistry filters for compound triage. Apply drug-likeness rules (Lipinski, Veber, CNS), structural alert catalogs (PAINS, NIBR, ChEMBL), complexity metrics, and the medchem query language for library filtering.

    Computed 9831,966

    K-Dense-AI/scientific-agent-skills

    neurokit2

    Use NeuroKit2 to build or audit reproducible research workflows for physiological time-series preprocessing, event/interval analysis, multimodal alignment, variability, and complexity. Trigger when code imports neurokit2 or needs its current APIs, schemas, and method-aware validation—not for diagnosis or device validation.