Ou tapez /feature-flags-manager 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 :
Implémenter : évaluation des flags, segmentation, analytics.
Gérer le cycle de vie : nettoyage, audit, monitoring.
OpenFeature (.NET Standard)
Configuration
// Installation : dotnet add package OpenFeature
// + un provider : dotnet add package LaunchDarkly.OpenFeature.ServerProvider
using OpenFeature;
using LaunchDarkly.OpenFeature.ServerProvider;
// Configurer le provider
var ldProvider = new Provider(Configuration.Builder("sdk-key").Build());
await Api.Instance.SetProviderAsync(ldProvider);
// Obtenir le client
var client = Api.Instance.GetClient();
Évaluation des flags
public class PaymentService
{
private readonly IFeatureClient _featureClient;
public PaymentService(IFeatureClient featureClient)
{
_featureClient = featureClient;
}
public async Task<PaymentResult> ProcessPayment(PaymentRequest request)
{
var context = EvaluationContext.Builder()
.Set("userId", request.UserId)
.Set("country", request.Country)
.Set("plan", request.Plan)
.Build();
// Flag booléen
var useNewEngine = await _featureClient.GetBooleanValueAsync(
"new-payment-engine", false, context);
if (useNewEngine)
return await ProcessWithNewEngine(request);
return await ProcessWithLegacyEngine(request);
}
public async Task<decimal> CalculateFees(decimal amount)
{
// Flag numérique (pourcentage de frais)
var feePercentage = await _featureClient.GetDoubleValueAsync(
"payment-fee-percentage", 2.5);
return amount * (decimal)(feePercentage / 100);
}
public async Task<CheckoutConfig> GetCheckoutConfig()
{
// Flag JSON (configuration complexe)
var config = await _featureClient.GetObjectValueAsync(
"checkout-config",
new Value(new Structure(new Dictionary<string, Value>
{
["maxRetries"] = new Value(3),
["showPromo"] = new Value(false)
})));
return MapToCheckoutConfig(config);
}
}