feature-flaglisted
Install: claude install-skill afine907/skills
# Feature Flag — 功能开关技能
设计和实现功能开关系统,支持精细化的功能发布控制。
## Goal
设计和实现功能开关(Feature Flag)系统,支持灰度发布、A/B测试、动态配置、紧急降级
## Trigger
- 用户要求"功能开关"、"灰度发布"、"Feature Flag"
- 需要控制功能的上线节奏
- 需要做 A/B 测试
## 功能开关类型
| 类型 | 用途 | 生命周期 |
|------|------|----------|
| 发布开关 | 控制功能发布节奏 | 短期(发布后删除) |
| 实验开关 | A/B 测试 | 中期(实验结束删除) |
| 运维开关 | 紧急降级 | 长期 |
| 权限开关 | 按用户/租户控制 | 长期 |
## 设计方案
### 数据模型
```sql
CREATE TABLE feature_flags (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
key VARCHAR(100) NOT NULL UNIQUE COMMENT '开关标识',
name VARCHAR(200) NOT NULL COMMENT '开关名称',
description TEXT COMMENT '开关说明',
type VARCHAR(20) NOT NULL COMMENT '类型: release/experiment/ops/permission',
enabled BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否启用',
rollout_percentage INT DEFAULT 100 COMMENT '灰度比例(0-100)',
targeting_rules JSON COMMENT '定向规则',
default_value BOOLEAN DEFAULT FALSE COMMENT '默认值',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_key (key),
INDEX idx_type (type)
);
CREATE TABLE feature_flag_evaluations (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
flag_key VARCHAR(100) NOT NULL,
user_id VARCHAR(100),
value BOOLEAN NOT NULL,
reason VARCHAR(50) COMMENT '评估原因: default/percentage/targeting/override',
eval