feature-flag-system
新機能の段階的リリースやA/Bテスト、本番環境でのテストなどを実現するために、機能フラグ(トグル)を実装し、新機能の展開を制御したり、機能のライフサイクルを管理したりするSkill。
📜 元の英語説明(参考)
Implement feature flags (toggles) for controlled feature rollouts, A/B testing, canary deployments, and kill switches. Use when deploying new features gradually, testing in production, or managing feature lifecycles.
🇯🇵 日本人クリエイター向け解説
新機能の段階的リリースやA/Bテスト、本番環境でのテストなどを実現するために、機能フラグ(トグル)を実装し、新機能の展開を制御したり、機能のライフサイクルを管理したりするSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o feature-flag-system.zip https://jpskill.com/download/21422.zip && unzip -o feature-flag-system.zip && rm feature-flag-system.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/21422.zip -OutFile "$d\feature-flag-system.zip"; Expand-Archive "$d\feature-flag-system.zip" -DestinationPath $d -Force; ri "$d\feature-flag-system.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
feature-flag-system.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
feature-flag-systemフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 7
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
フィーチャーフラグシステム
目次
概要
フィーチャーフラグを実装して、デプロイとリリースを分離し、段階的なロールアウト、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;
// ... (完全な実装についてはリファレンスガイドを参照してください)
リファレンスガイド
references/ ディレクトリ内の詳細な実装:
| ガイド | 内容 |
|---|---|
| Feature Flag Service (TypeScript) | フィーチャーフラグサービス (TypeScript) |
| React Hook for Feature Flags | フィーチャーフラグ用 React Hook |
| Feature Flag with Analytics | アナリティクス付きフィーチャーフラグ |
| LaunchDarkly-Style SDK | LaunchDarkly スタイル SDK |
| Admin UI for Feature Flags | フィーチャーフラグ用管理 UI |
ベストプラクティス
✅ DO
- わかりやすいフラグ名を使用する
- フラグの目的とライフサイクルを文書化する
- 段階的なロールアウトを実装する
- フラグの評価を追跡する
- 古いフラグを定期的にクリーンアップする
- 実験にフィーチャーフラグを使用する
- 重要な機能にキルスイッチを実装する
- 有効状態と無効状態の両方をテストする
- 安定したロールアウトのために一貫したハッシュを使用する
- 非技術系ユーザー向けに管理 UI を提供する
❌ DON'T
- 永続的な設定にフラグを使用する
- 古いフラグで技術的負債を蓄積する
- フラグのクリーンアップをスキップする
- フラグを細かすぎにする
- フラグのチェックをどこでもハードコードする
- アナリティクスとモニタリングをスキップする
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Feature Flag System
Table of Contents
Overview
Implement feature flags to decouple deployment from release, enable gradual rollouts, A/B testing, and provide emergency kill switches.
When to Use
- Gradual feature rollouts
- A/B testing and experiments
- Canary deployments
- Beta features for specific users
- Emergency kill switches
- Trunk-based development
- Dark launching
- Operational flags (maintenance mode)
- User-specific features
Quick Start
Minimal working example:
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)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Feature Flag Service (TypeScript) | Feature Flag Service (TypeScript) |
| React Hook for Feature Flags | React Hook for Feature Flags |
| Feature Flag with Analytics | Feature Flag with Analytics |
| LaunchDarkly-Style SDK | LaunchDarkly-Style SDK |
| Admin UI for Feature Flags | Admin UI for Feature Flags |
Best Practices
✅ DO
- Use descriptive flag names
- Document flag purpose and lifecycle
- Implement gradual rollouts
- Track flag evaluations
- Clean up old flags regularly
- Use feature flags for experiments
- Implement kill switches for critical features
- Test both enabled and disabled states
- Use consistent hashing for stable rollouts
- Provide admin UI for non-technical users
❌ DON'T
- Use flags for permanent configuration
- Accumulate technical debt with old flags
- Skip flag cleanup
- Make flags too granular
- Hard-code flag checks everywhere
- Skip analytics and monitoring
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (2,745 bytes)
- 📎 references/admin-ui-for-feature-flags.md (1,729 bytes)
- 📎 references/feature-flag-service-typescript.md (6,488 bytes)
- 📎 references/feature-flag-with-analytics.md (1,777 bytes)
- 📎 references/launchdarkly-style-sdk.md (3,853 bytes)
- 📎 references/react-hook-for-feature-flags.md (2,180 bytes)
- 📎 scripts/scaffold-tests.sh (574 bytes)