mcpField
F
feature-flags-ruby

feature-flags-ruby

github.com/posthog開発7691 回インストール今日更新
リポジトリ

feature-flags-ruby について

Ruby アプリケーションに PostHog のフィーチャーフラグを追加するスキルです。実装の指針を示し、PostHog MCP サーバーが接続されていればフラグを管理する方法も案内します。

主な機能

  1. 01PostHog フィーチャーフラグの導入
  2. 02ブール値フラグの優先
  3. 03サーバーサイド評価の優先
  4. 04Ruby SDK の初期化と終了処理の案内
  5. 05PostHog MCP ツールによるフラグ管理

活用シーン

  1. 01Ruby アプリにフィーチャーフラグの判定を追加
  2. 02可能な場合はサーバーサイドで評価して画面のちらつきを回避
  3. 03MCP ツールでフラグを作成、更新、管理

MCP 対応

PostHog MCP サーバーの接続を確認し、利用可能であればフラグの作成、一覧表示、更新、削除にそのツールを使うよう案内します。

インストール

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

$npx skills add https://github.com/posthog/skills --skill feature-flags-ruby

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
adding-feature-flag-code.md
best-practices.md
ruby.md

詳細

Ruby 向け PostHog フィーチャーフラグ

このスキルは、Ruby アプリケーションへの PostHog フィーチャーフラグの追加を支援します。

参考ファイル

  • references/ruby.md - Ruby のフィーチャーフラグのインストール - ドキュメント
  • references/adding-feature-flag-code.md - フィーチャーフラグのコードの追加 - ドキュメント
  • references/best-practices.md - フィーチャーフラグのベストプラクティス - ドキュメント

API の詳細やフレームワーク固有のパターンについては、ドキュメントを参照してください。

主な原則

  • 環境変数:PostHog のキーには常に環境変数を使用してください。ハードコードしないでください。
  • 最小限の変更:既存のロジックにフィーチャーフラグのコードを追加してください。既存のコードを置き換えたり、再構成したりしないでください。
  • まずはブール値のフラグ:ユーザーから多変量フラグを明示的に求められない限り、デフォルトではブール値のフラグチェックを使用してください。
  • 可能な限りサーバーサイドで:UI のちらつきを避けるため、サーバーサイドでのフラグ評価を優先してください。

PostHog MCP ツール

PostHog MCP サーバーが接続されているか確認してください。利用可能な場合は、フィーチャーフラグ管理(フラグの作成、一覧表示、更新、削除)に関するツールを探してください。ユーザーにダッシュボードでの手動操作を求めるのではなく、これらのツールを使って PostHog 上のフラグを直接管理してください。

フレームワークのガイドライン

  • posthog-ruby は Ruby SDK の gem 名です(Gemfile に gem 'posthog-ruby' を追加)が、require 'posthog' で読み込みます(require 'posthog-ruby' ではありません)。
  • スクリプトや CLI でインスタンスベースの初期化を行う場合は、PostHog::Client.new(api_key: key, host: host) を使用してください。
  • CLI やスクリプトでは、終了前に必ず client.shutdown を呼び出してください。そうしないと、すべてのイベントが失われます。
  • 適切にクリーンアップするため、ensure ブロック内で shutdown を呼び出す begin/rescue/ensure を使用してください。
  • capture と identify は、ハッシュ引数を 1 つだけ受け取ります:client.capture(distinct_id: 'user_123', event: 'my_event', properties: { key: 'value' })
  • capture_exception は位置引数を取ります(キーワード引数ではありません):client.capture_exception(exception, distinct_id, additional_properties)。distinct_id: のキーワード構文は使用しないでください。

コメント