一键导入
remove-feature-flag
Remove a feature flag after it has been rolled out and stabilized in the Warp codebase.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Remove a feature flag after it has been rolled out and stabilized in the Warp codebase.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use this skill when helping users add MCP servers to their Warp configuration.
Add a new feature flag to gate code changes in the Warp codebase.
Create a pull request in the warp repository for the current branch. Use when the user mentions opening a PR, creating a pull request, submitting changes for review, or preparing code for merge.
Repo-specific dedupe guidance for warp-external. Only the categories declared overridable by the core dedupe-issue skill may be specialized here.
Implement an approved feature from PRODUCT.md and TECH.md, keeping specs and code aligned in the same PR as implementation evolves. Use after the product and tech specs are approved and the next step is building the feature.
Promote a feature-flagged feature to Dogfood, Preview, or Stable in the Warp codebase. Use when a feature behind a FeatureFlag is ready to roll out to a broader audience, including wiring up the compile-time/runtime bridge and deferring flag cleanup safely.
| name | remove-feature-flag |
| description | Remove a feature flag after it has been rolled out and stabilized in the Warp codebase. |
Remove a feature flag after it has been rolled out and stabilized in the Warp codebase.
After a feature flag has been enabled for all users and has stabilized in production, the flag should be removed to reduce technical debt and simplify the codebase. This involves removing the flag definition and all conditional checks.
Remove a feature flag when:
default features in app/Cargo.tomlRemove the feature from both the [features] section and the default array:
[features]
default = [
# Remove "your_feature_name" from here
]
# Remove this line:
# your_feature_name = []
Remove the variant from the FeatureFlag enum in warp_core/src/features.rs:
#[derive(Sequence)]
pub enum FeatureFlag {
// Remove YourFeatureName,
}
Remove the conditional compilation directive:
// Remove these lines:
// #[cfg(feature = "your_feature_name")]
// YourFeatureName,
If the flag was listed in any of these arrays in features.rs, remove it:
pub const DOGFOOD_FLAGS: &[FeatureFlag] = &[
// Remove FeatureFlag::YourFeatureName,
];
Find and remove all FeatureFlag::YourFeatureName.is_enabled() checks throughout the codebase:
Before:
if FeatureFlag::YourFeatureName.is_enabled() {
// new behavior
} else {
// old behavior (dead code)
}
After:
// new behavior (unconditionally enabled)
Use ripgrep to find all occurrences:
rg "YourFeatureName" app/ warp_core/
If the feature flag was used in keybinding enabled predicates, remove the predicate:
Before:
EditableBinding::new(
"action:name",
"Action description",
YourAction::Variant
)
.with_enabled(|| FeatureFlag::YourFeatureName.is_enabled())
.with_key_binding("cmdorctrl-key")
After:
EditableBinding::new(
"action:name",
"Action description",
YourAction::Variant
)
.with_key_binding("cmdorctrl-key")
Remove any code paths that were only executed when the feature was disabled (the else branches in feature checks). These are now dead code.
After removing the flag:
# Format and lint
cargo fmt
cargo clippy --workspace --all-targets --all-features --tests -- -D warnings
# Run tests
cargo nextest run --no-fail-fast --workspace --exclude command-signatures-v2
# Build the app
cargo run
# Find all occurrences of the flag name
rg "YourFeatureName" app/ warp_core/
# Find feature flag checks
rg "FeatureFlag::YourFeatureName" app/
# Find cfg attributes
rg 'cfg\(feature = "your_feature_name"\)' app/