mcpField
0
057-design-feature-toggles

057-design-feature-toggles

github.com/jabrena开发456152 次安装1 天前更新
代码仓库

关于 057-design-feature-toggles

面向 Java 企业开发者的交互式 Skill,指导功能开关的设计与生命周期管理。内容涵盖开关分类、类型化评估、发布与回滚安全、可观测性、测试和清理。

主要功能

  1. 01分类开关类型并明确负责人
  2. 02设计集中式类型化评估
  3. 03规定默认值与失败回退
  4. 04规划发布、回滚和可观测性
  5. 05测试启用、禁用及失败路径
  6. 06定义开关清理触发条件

适用场景

  1. 01规划 Java 服务的分阶段发布
  2. 02设计安全的运维紧急开关
  3. 03审查开关的安全与维护风险
  4. 04测试开关行为并规划移除

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jabrena/plinth --skill 057-design-feature-toggles

安装后在 Claude Code 中输入/057-design-feature-toggles确认已加载。

附带文件references/057-design-feature-toggles.md

详细介绍

功能开关设计

指导 Java 企业开发者安全地设计功能开关并管理其生命周期。这是一个交互式技能。

此技能涵盖哪些内容?

  • 判断何时适合使用功能开关,而不是分支、配置变更、部署变更或并行变更
  • 对发布开关、运维紧急开关、实验开关、权限开关和迁移开关进行分类
  • 设计类型化的开关归属、默认值、评估范围、回退行为、可观测性和回滚控制
  • 在 Java 服务中实现开关,避免散落各处的标志检查或产生隐蔽的长期复杂性
  • 从发布、回滚、安全、隐私、并发和维护风险等方面审查开关
  • 测试启用和禁用路径、配置失败行为、发布规则以及清理准备情况

约束

将功能开关用作明确且有负责人的运行时控制点,而不是隐藏的条件复杂性。

  • MUST 在应用功能开关指南前阅读 references/057-design-feature-toggles.md
  • MUST 在建议实现方案前,对开关类型、负责人、预期生命周期、默认状态、发布受众和移除触发条件进行分类
  • MUST 为运行时评估失败设计安全的默认值、回退行为、可观测性和回滚行为
  • MUST 集中管理开关评估,并使其具备类型安全且可测试,避免在业务逻辑中散布原始配置查询
  • MUST 将临时开关的清理要求纳入实现完成条件
  • MUST NOT 使用功能开关掩盖未完成的设计决策、削弱安全控制,或在没有明确负责人的情况下留下永久分支

何时使用此技能

  • 设计功能开关策略
  • 审查此功能开关实现
  • 安全地添加紧急开关
  • 规划 Java 服务中的金丝雀发布或分阶段发布
  • 测试开关的启用和禁用路径
  • 清理已过期的功能开关
  • 判断此运行时行为变更是否需要开关

工作流

  1. 对开关需求进行分类

阅读 references/057-design-feature-toggles.md,然后确定运行时行为变更、发布风险、回滚预期、受影响用户、运维负责人,以及功能开关是否是最小且安全的控制机制。

  1. 设计开关契约

定义开关类型、稳定名称、类型化决策 API、默认状态、评估上下文、回退行为、审计需求、指标、日志和清理触发条件。优先为每种行为设置单一决策点,而不是重复进行原始标志检查。

  1. 规划实现边界

将开关评估放在应用服务、适配器、策略选择器或请求边界附近。保持领域代码明确,避免在规则中使用机密或个人数据,并确保同一个请求、事务、消息或批处理项中的决策一致。

  1. 审查发布和回滚安全性

检查禁用状态下的行为是否保留当前生产契约,启用状态下的行为是否具备发布防护,运维团队能否快速禁用该行为,以及清理是否会破坏旧部署、数据或集成。

  1. 测试并观测两种路径

测试禁用、启用、回退、配置失败、发布目标定位和清理等场景。添加指标、日志、告警或仪表板,以显示开关状态、决策量、错误率、延迟影响和紧急开关激活情况。

  1. 报告开关计划

报告决策、开关契约、实现边界、测试矩阵、可观测性计划、发布和回滚步骤、清理负责人、移除触发条件、跳过的检查以及剩余风险。

参考资料

详细指南、示例和约束请参阅 references/057-design-feature-toggles.md。

评论

支持 Markdown