원클릭으로
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 페이지를 검토하고 설치를 진행할 수 있습니다.
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.
SOC 직업 분류 기준
| 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/