---
name: feature-flag-lifecycle
description: >
  Manage feature flag add, rollout, and removal. Use when introducing flags or cleaning
  old flags, or Chinese "特性开关", "feature flag", "灰度", "删 flag". Prevent eternal flags.
---

# Feature Flag Lifecycle

## Overview

Flags without owners become permanent debt. Plan **create → rollout → cleanup**.

## Steps

1. **Create**: name, default, owner, success metric, expiry target date.  
2. **Code**: single check site if possible; avoid scattered `if (flag)` without abstraction.  
3. **Rollout**: stages (0% → internal → % → 100%), kill switch.  
4. **Cleanup ticket**: remove flag + dead branches after 100% stable.  
5. **Inventory**: list existing flags touched by this change; any overdue expiry?  

## Exit criteria

- [ ] Owner + expiry  
- [ ] Rollout stages  
- [ ] Cleanup plan  
- [ ] No new flag without default and scope  

## Anti-patterns

- Flag forever “just in case”  
- Nested flags for one feature  

## Output template

```markdown
## Flag plan
- Name / default / owner / expiry
- Rollout: ...
- Cleanup PR criteria: ...
- Overdue flags nearby: ...
```
