💻 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
Copier
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } feature-flag-system -Launch"
Copier
🚀 Déjà installé ?
claude "/feature-flag-system"
Copier
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 flag feature toggle déploiement progressif A/B test canary deployment kill 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/
Copier
Source : dev-skills/feature-flag-system
📖 Manuel
Système de Feature Flags
Workflow
Comprendre le besoin : identifier le type de flag nécessaire (rollout, A/B, kill switch, beta).
Concevoir la configuration :
Définir les règles de ciblage (utilisateur, pourcentage, attribut, date)
Définir les variantes si nécessaire (A/B testing)
Implémenter : proposer le code adapté au framework utilisé.
Vérifier : s'assurer que les deux chemins (activé/désactivé) sont testés.
Types de feature flags
Type Usage Durée de vie Release flag Déploiement progressif Court terme Experiment flag A/B testing Moyen terme Ops flag Mode maintenance, kill switch Permanent Permission flag Fonctionnalités par rôle/plan Permanent
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% — Équipe interne uniquement
5% — Beta testeurs
25% — Premier quart d'utilisateurs
50% → 100% — Montée progressive avec monitoring
A/B Testing
Utiliser un hash stable (userId + flagKey) pour des résultats cohérents
Toujours tracker les évaluations pour l'analyse
Définir les métriques de succès avant le lancement
Bonnes pratiques
À faire
Nommer les flags de manière descriptive
Documenter le but et le cycle de vie de chaque flag
Tracker les évaluations pour l'analytique
Nettoyer régulièrement les anciens flags
Tester les deux états (activé/désactivé)
Utiliser un hashing cohérent pour la stabilité
À éviter
Utiliser des flags pour de la configuration permanente
Accumuler de la dette technique avec des flags obsolètes
Rendre les flags trop granulaires
Hard-coder les vérifications de flags partout
Ignorer le monitoring
Règles
Toujours proposer une stratégie de nettoyage des flags.
Chaque flag doit avoir une date d'expiration prévue (sauf ops flags).
Ne jamais déployer un flag sans monitoring associé.