Skip to content

Migration Readiness

Migration readiness is a 0–100 score that answers one question: what fraction of your detected direct LaunchDarkly calls can FlagLint safely automate?

safely automatable calls ÷ total detected direct LaunchDarkly calls × 100

A call is counted as safely automatable when FlagLint can statically prove that the flag key is a string literal, the fallback value and type are known, the LaunchDarkly source client is traceable to a supported SDK import, and a configured OpenFeature destination binding is present. Every other call — dynamic keys, detail evaluations, bulk calls, ambiguous clients, unknown fallbacks — is counted as requiring manual review and is excluded from the automatable numerator.

ScoreGradeMeaning
≥ 80readyMost calls are safe to automate. Migration can proceed with minimal manual effort.
50–79moderateA significant portion of calls require manual review. Plan time for manual migration work.
< 50complexMore than half of calls require manual review. Prioritize resolving manual-review signals before migrating.
not-applicableNo direct LaunchDarkly calls detected. Score is null and no readiness bar is displayed.

The following categories explain why a call is counted as requiring manual review. This breakdown is informational — it helps you understand where effort will be needed, but it does not numerically alter the score beyond those calls being counted as non-automatable.

Manual-review reasonWhy review is requiredRecommended next step
Dynamic flag keyFlag key determined at runtime — cannot be statically rewrittenExtract key to a named constant
Detail evaluationboolVariationDetail/variationDetail — returns metadata with no direct OpenFeature equivalentMigrate manually or check OpenFeature provider metadata support
Bulk evaluationallFlagsState — no single-flag codemod existsRequires architecture decision; migrate flag by flag
Unknown fallback valueFallback type cannot be inferred staticallyAdd an explicit typed fallback literal
Ambiguous client bindingCall site cannot be proven to use a supported LD clientEnsure client provenance is traceable from a supported SDK import

When no direct LaunchDarkly calls are detected, the readiness score is null and the grade is not-applicable. This happens when:

  • The scanned directory contains no LaunchDarkly SDK imports.
  • All detected calls are from unsupported SDKs (browser, React, non-Node).
  • The directory is empty or contains only test files excluded via --exclude-tests.

No readiness bar or score line is printed to the terminal in this case.