帮助开发者排查功能开关相关测试失败、更新标记并新增 React flags。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "feature-flags" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/react/main/.claude/skills/feature-flags/SKILL.md 2. 保存为 ~/.claude/skills/feature-flags/SKILL.md 3. 装好后重载技能,告诉我可以用了
请帮我分析这个功能开关测试失败的原因。我会提供报错信息、相关测试代码和当前 flag 配置。请定位可能的问题,并给出修复建议与修改示例。
返回失败原因分析、涉及的 flag 或测试逻辑、以及可执行的修复方案。
请解释这段测试中的 @gate pragma 是如何工作的,它控制了哪些运行条件,以及我在修改功能开关时需要注意什么。
输出对 @gate 语法与行为的说明,并指出对测试覆盖和执行路径的影响。
我想在 React 项目中新增一个功能开关。请告诉我应该修改哪些文件、如何命名这个 flag、如何补充测试,以及怎样避免影响现有渠道或环境。
给出新增 flag 的步骤清单、代码改动建议、测试方案和兼容性注意事项。
| File | Purpose |
|---|---|
packages/shared/ReactFeatureFlags.js | Default flags (canary), __EXPERIMENTAL__ overrides |
packages/shared/forks/ReactFeatureFlags.www.js | www channel, __VARIANT__ overrides |
packages/shared/forks/ReactFeatureFlags.native-fb.js | React Native, __VARIANT__ overrides |
packages/shared/forks/ReactFeatureFlags.test-renderer.js | Test renderer |
@gate pragma (test-level)Use when the feature is completely unavailable without the flag:
// @gate enableViewTransition
it('supports view transitions', () => {
// This test only runs when enableViewTransition is true
// and is SKIPPED (not failed) when false
});
gate() inline (assertion-level)Use when the feature exists but behavior differs based on flag:
it('renders component', async () => {
await act(() => root.render(<App />));
if (gate(flags => flags.enableNewBehavior)) {
expect(container.textContent).toBe('new output');
} else {
expect(container.textContent).toBe('legacy output');
}
});
ReactFeatureFlags.js with default value*.www.js, *.native-fb.js, etc.)__VARIANT__ in the fork file@gate flagName or inline gate()Use /flags to view states across channels. See the flags skill for full command options.
__VARIANT__ Flags (GKs)Flags set to __VARIANT__ simulate gatekeepers - tested twice (true and false):
/test www <pattern> # __VARIANT__ = true
/test www variant false <pattern> # __VARIANT__ = false
/flags --diff <channel1> <channel2> to compare values@gate conditions - test may be gated to specific channels/test <channel> <pattern> to isolate the failurewww AND www variant false for __VARIANT__ flagsgate() if both paths should rungate(flags => flags.name), not gate('name')帮助开发者提取并核对 React 错误信息与错误码映射,排查未知错误码警告。
在提交前验证代码变更,并检查是否满足 React 贡献要求。
检查功能开关状态、对比发布渠道差异并定位异常行为原因。
快速修复代码格式、Lint与常见错误,帮助提交前顺利通过 CI 检查
用于运行 Flow 类型检查并定位修复 React 代码中的类型错误。
帮助开发者编写并运行基于 Markdown 的 Relay 端到端测试。
用于把现有可用功能改成新行为,并同步更新测试、实现与提交把关。
端到端编排新功能开发流程,覆盖调研、规划、测试驱动实现、评审与提交把关。
对比两个版本并标记原文承诺消失的位置,辅助审阅变更风险。
帮助你系统复现、定位并修复代码或环境中的复杂故障问题。
读取 PostHog 功能开关状态与元数据,支持列出、评估和检查陈旧标记。
根据本地集成测试失败信息,自动整理并创建 GitHub 缺陷问题。