mcpField
F
flipt

flipt

github.com/civitaiクラウド・DevOps7.3k73 回インストール今日更新
リポジトリ

flipt について

Flipt の機能フラグを調べるためのスキルです。ロールアウト設定を確認するチーム向けで、API から読み取れますが、書き込みは拒否され、恒久的な変更にはレビュー付きの GitOps リポジトリ手順を使います。

主な機能

  1. 01すべての機能フラグを一覧表示
  2. 02個別フラグの詳細を取得
  3. 03revision で同期状態を確認
  4. 04API 書き込みを拒否し GitOps 手順を案内

活用シーン

  1. 01フラグと現在の設定を調べる
  2. 02GitOps の変更が同期したか確認
  3. 03リポジトリ経由でフラグ変更を準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/civitai/civitai --skill flipt

インストール後、Claude Code で/fliptを入力して読み込まれたか確認します。

同梱ファイル.env.exampleflipt.mjs

詳細

Flipt のフィーチャーフラグ管理

Flipt のフィーチャーフラグを管理し、機能のリリースを段階的に制御するには、このスキルを使用します。

コマンドの実行

同梱のスクリプトを使用します。

node .claude/skills/flipt/flipt.mjs <command> [options]
コマンド
コマンド説明
listすべてのフラグを一覧表示します
get <key>指定したフラグの詳細を取得します
create / enable / disable / delete終了コード 2 で拒否し、GitOps の手順を出力します。下記を参照してください
add-variant / remove-variant / set-rollout同様です

読み取りは API 経由で行えますが、書き込みは意図的に拒否されます。 この Flipt は v2 で、プライベートの状態リポジトリを使った GitOps で管理されているため、変更をマージすると ポーリング間隔の約 1 回分で反映されます。

API 経由では決して書き込まないでください。 フラグの状態はレビュー対象の成果物です。フラグを変更する場合は、 状態リポジトリに対する PR を作成してください。API を呼び出してはいけません。このスキルが書き込みを拒否するのはそのためです。

フラグは /api/v2/environments/{env}/namespaces/{ns}/resources/flipt.core.Flag にあります。 環境(civitai-app)と名前空間(default)は実行時に検出されます。まず default: true と指定された環境を検出し、次にその環境の default 名前空間を検出するため、2 つ目の環境によって読み取り先が意図せず変更されることはありません。必要な場合は FLIPT_ENVIRONMENT / FLIPT_NAMESPACE で上書きできます。

レスポンスには、flipt-state のコミット SHA と一致する revision が含まれます。これは、フラグの変更が実際に同期されたことを確認する最も手早い方法です。

node .claude/skills/flipt/flipt.mjs list --json | head -3   # revision == your commit
オプション
フラグ説明
--description <text>, -d新しいフラグの説明
--enabledフラグを有効として作成します(デフォルト:無効)
--variantバリアントフラグとして作成します(デフォルト:ブール値)
--variants <keys>カンマ区切りのバリアントキー(最初のキーがデフォルト)
--default <key>デフォルトのバリアントキーを設定します
--rollout <pct>ロールアウトの割合(デフォルト:100)
--segment <key>ルールに使用するセグメントキー(デフォルト:all-users)
--json結果を JSON 形式で出力します
--quiet, -q出力を最小限にします
--force, -f確認プロンプトをスキップします
例
# List all flags
node .claude/skills/flipt/flipt.mjs list

# Get a specific flag
node .claude/skills/flipt/flipt.mjs get gift-card-vendor-waifu-way

# Creating / toggling a flag goes through GitOps — see below.
# These commands exit 2 and print the steps:
node .claude/skills/flipt/flipt.mjs disable my-feature

# JSON output for scripting
node .claude/skills/flipt/flipt.mjs list --json

GitOps との統合

Flipt は GitOps を使用しており、フラグは civitai/flipt-state リポジトリに保存されています。API 経由で行った変更は一時的なもので、次回の Git 同期時(30 秒ごと)に上書きされます。

永続的な変更を行うには、リポジトリを直接編集してください。

# Clone the state repo
gh repo clone civitai/flipt-state /tmp/flipt-state

# Edit civitai-app/default/features.yaml
# Add your flag under the `flags:` section

# Commit and push
cd /tmp/flipt-state
git add -A && git commit -m "Add new feature flag" && git push
YAML でのフラグ形式
flags:
  - key: my-feature-flag
    name: my-feature-flag
    type: BOOLEAN_FLAG_TYPE
    description: Description of what this flag controls
    enabled: false
    # Optional: rollout rules
    rollouts:
      - threshold:
          percentage: 50
          value: true
      - segment:
          keys:
            - moderators
          operator: OR_SEGMENT_OPERATOR
          value: true

安全上の注意

  1. API 経由では書き込まないでください:レビューされていないコミットが flipt-state の main にプッシュされます
  2. 有効にする前にテストしてください:段階的なロールアウトにはセグメントを使用します
  3. チームと調整してください:他のメンバーが同じフラグを編集中の場合があります

環境のセットアップ

.env.example を .env にコピーし、次のように設定してください。

cp .claude/skills/flipt/.env.example .claude/skills/flipt/.env

Flipt に接続するには、このスキルに FLIPT_URL と FLIPT_API_TOKEN が必要です。

コメント