feature-flag-system について
デプロイとリリースを分離し、段階的な展開や実験、緊急停止に対応するフィーチャーフラグの実装スキルです。TypeScriptサービス、Reactフック、分析、SDKの設計例、管理画面の資料を含みます。
主な機能
- 01段階的な機能展開
- 02A/Bテストと実験
- 03カナリアデプロイ
- 04緊急停止スイッチ
- 05サービス、フック、管理画面のガイド
活用シーン
- 01対象ユーザーへの機能リリース
- 02機能実験の実施
- 03変更の段階的な展開
- 04緊急時の重要機能の無効化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill feature-flag-systemインストール後、Claude Code で/feature-flag-systemを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/admin-ui-for-feature-flags.mdfeature-flag-service-typescript.mdfeature-flag-with-analytics.mdlaunchdarkly-style-sdk.mdreact-hook-for-feature-flags.mdscripts/scaffold-tests.shtemplates/test-template.js詳細
機能フラグシステム
目次
概要
機能フラグを実装すると、デプロイとリリースを切り離し、段階的なロールアウトや A/B テストを可能にし、緊急時のキルスイッチを提供できます。
使用する場面
- 機能の段階的なロールアウト
- A/B テストと実験
- カナリアデプロイ
- 特定のユーザー向けのベータ機能
- 緊急時のキルスイッチ
- トランクベース開発
- ダークローンチ
- 運用フラグ(メンテナンスモード)
- ユーザー固有の機能
クイックスタート
最小限の動作例:
interface FlagConfig {
key: string;
enabled: boolean;
description: string;
rules?: FlagRule[];
variants?: FlagVariant[];
createdAt: Date;
updatedAt: Date;
}
interface FlagRule {
type: "user" | "percentage" | "attribute" | "datetime";
operator: "in" | "equals" | "contains" | "gt" | "lt" | "between";
attribute?: string;
values: any[];
}
interface FlagVariant {
key: string;
weight: number;
value: any;
}
interface EvaluationContext {
userId?: string;
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装は references/ ディレクトリにあります。
| ガイド | 内容 |
|---|---|
| 機能フラグサービス(TypeScript) | 機能フラグサービス(TypeScript) |
| 機能フラグ用 React フック | 機能フラグ用 React フック |
| 分析機能付き機能フラグ | 分析機能付き機能フラグ |
| LaunchDarkly 風 SDK | LaunchDarkly 風 SDK |
| 機能フラグ用管理 UI | 機能フラグ用管理 UI |
ベストプラクティス
✅ 推奨事項
- 説明的なフラグ名を使用します
- フラグの目的とライフサイクルを文書化します
- 段階的なロールアウトを実装します
- フラグの評価を追跡します
- 古いフラグを定期的に削除します
- 実験に機能フラグを使用します
- 重要な機能にはキルスイッチを実装します
- 有効状態と無効状態の両方をテストします
- 安定したロールアウトのために一貫性のあるハッシュを使用します
- 技術者以外のユーザー向けに管理 UI を提供します
❌ 非推奨事項
- 恒久的な設定にフラグを使用しないでください
- 古いフラグによる技術的負債を蓄積しないでください
- フラグの削除を怠らないでください
- フラグを細分化しすぎないでください
- フラグのチェックをあらゆる場所にハードコードしないでください
- 分析とモニタリングを省略しないでください
コメント
Markdown 対応