💻 Développement

feature-flag-system

Concevoir et implémenter un système de feature flags pour des déploiements progressifs, A/B testing, canary releases et kill switches.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- feature-flag-system --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } feature-flag-system -Launch"

🚀 Déjà installé ?

claude "/feature-flag-system"

Ou tapez /feature-flag-system dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

feature flagfeature toggledéploiement progressifA/B testcanary deploymentkill switch

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/dev-skills/feature-flag-system ~/.claude/skills/

Source : dev-skills/feature-flag-system

📖 Manuel

Système de Feature Flags

Workflow

  1. Comprendre le besoin : identifier le type de flag nécessaire (rollout, A/B, kill switch, beta).
  2. Concevoir la configuration :
    • Définir les règles de ciblage (utilisateur, pourcentage, attribut, date)
    • Définir les variantes si nécessaire (A/B testing)
  3. Implémenter : proposer le code adapté au framework utilisé.
  4. Vérifier : s'assurer que les deux chemins (activé/désactivé) sont testés.

Types de feature flags

TypeUsageDurée de vie
Release flagDéploiement progressifCourt terme
Experiment flagA/B testingMoyen terme
Ops flagMode maintenance, kill switchPermanent
Permission flagFonctionnalités par rôle/planPermanent

Structure de base

interface FlagConfig {
  key: string;
  enabled: boolean;
  description: string;
  rules?: FlagRule[];
  variants?: FlagVariant[];
}

interface FlagRule {
  type: "user" | "percentage" | "attribute" | "datetime";
  operator: "in" | "equals" | "contains" | "gt" | "lt" | "between";
  attribute?: string;
  values: any[];
}

interface FlagVariant {
  key: string;
  weight: number;  // Pourcentage de trafic
  value: any;
}

Stratégies de rollout

Déploiement progressif

  1. 1% — Équipe interne uniquement
  2. 5% — Beta testeurs
  3. 25% — Premier quart d'utilisateurs
  4. 50%100% — Montée progressive avec monitoring

A/B Testing

Bonnes pratiques

À faire

À éviter

Règles