Ensure configurations are conditional, context-aware, and resilient. Use feature flags to control functionality availability rather than instructing systems to avoid certain features. Implement proper fallbacks for missing configuration values and support backward compatibility when introducing new config formats.
Ensure configurations are conditional, context-aware, and resilient. Use feature flags to control functionality availability rather than instructing systems to avoid certain features. Implement proper fallbacks for missing configuration values and support backward compatibility when introducing new config formats.
Key practices:
Example:
// Good: Conditional tool availability based on feature flag
if (experiments?.morphFastApply !== true) {
tools.delete("edit_file")
}
// Good: Fallback to system language instead of hardcoded default
initializeI18n(context.globalState.get("language") ?? formatLanguage(vscode.env.language))
// Good: Support multiple rule file formats for backward compatibility
const ruleFiles = [".kilocoderules", ".roorules", ".clinerules"]
// Good: Make hardcoded values configurable
const sizeLimit = config.get("sizeLimitFraction") ?? SIZE_LIMIT_AS_CONTEXT_WINDOW_FRACTION
Enter the URL of a public GitHub repository