mcpField
A
adding-feature-flags

adding-feature-flags

github.com/spencerpauly開発868367 回インストール13 週間前に更新
リポジトリ

adding-feature-flags について

PostHog またはローカル設定で機能フラグを追加するコーディングスキルです。クライアント側とサーバー側の評価、ターゲティングルール、段階的なリリース方法を説明します。

主な機能

  1. 01PostHog のクライアント側フラグ
  2. 02サーバー側でのフラグ評価
  3. 03ダッシュボードのターゲティングルール
  4. 04環境変数によるローカルフラグ
  5. 05不要になったフラグの整理

活用シーン

  1. 01新機能の段階的なリリース
  2. 02ユーザー属性やコホートに基づく対象設定
  3. 03外部サービスなしでのフラグ運用
  4. 04サーバールートでのフラグ評価

インストール

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

$npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill adding-feature-flags

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

詳細

機能フラグの追加

ユーザーから機能フラグ、機能トグル、段階的なロールアウト、または A/B テストの追加を依頼された場合に、このスキルを使用します。

オプション A:PostHog の機能フラグ(推奨)

  1. PostHog がまだ導入されていない場合はインストールします。

    npm install posthog-js
    
  2. コードで機能フラグを使用します。

    import { useFeatureFlagEnabled } from "posthog-js/react";
    
    function MyComponent() {
      const showNewFeature = useFeatureFlagEnabled("new-checkout-flow");
      if (showNewFeature) return <NewCheckout />;
      return <OldCheckout />;
    }
    
  3. サーバーサイドで評価します — サーバーコンポーネントまたは API ルートで使用します。

    import { PostHog } from "posthog-node";
    
    const posthog = new PostHog(process.env.POSTHOG_API_KEY!);
    const isEnabled = await posthog.isFeatureEnabled("new-checkout-flow", userId);
    
  4. PostHog のダッシュボードでフラグを作成します — ユーザープロパティ、割合ベースのロールアウト、またはコホートに基づくターゲティングルールを設定します。

オプション B:シンプルなローカル機能フラグ

サードパーティーサービスを必要としないプロジェクト向けです。

  1. フラグの設定ファイルを作成します — lib/feature-flags.ts:

    export const FLAGS = {
      NEW_CHECKOUT: process.env.NEXT_PUBLIC_FF_NEW_CHECKOUT === "true",
      DARK_MODE: process.env.NEXT_PUBLIC_FF_DARK_MODE === "true",
    } as const;
    
  2. コンポーネントで使用します。

    import { FLAGS } from "@/lib/feature-flags";
    
    function App() {
      return FLAGS.NEW_CHECKOUT ? <NewCheckout /> : <OldCheckout />;
    }
    
  3. 環境変数を追加します — .env と .env.example にフラグを追加します。

    NEXT_PUBLIC_FF_NEW_CHECKOUT=false
    NEXT_PUBLIC_FF_DARK_MODE=true
    

注意事項

  • ロールアウト中は、実験だけでなく、ユーザー向けのすべての変更に機能フラグを使用します。
  • 古くなったフラグを整理します。機能のロールアウトが完了したら、フラグと古いコードパスを削除します。
  • サーバーサイドのフラグでは、リクエストごとに API を呼び出さないよう、評価結果をキャッシュします。
  • フラグには内容が分かる名前を付けます。flag-1 ではなく new-checkout-flow を使用します。

コメント