返回全部 Skills

plan-update

研究分析

当您需要通过对所有编译器阶段进行深度研究来更新计划文档时使用。它启动并行子代理,分析某个主题如何影响每个编译器阶段,然后将研究结果整合到计划文档中。

2

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add facebook/react --skill plan-update

skill.md

name: plan-update
description: 当您需要通过对所有编译器阶段进行深度研究来更新计划文档时使用。它启动并行子代理,分析某个主题如何影响每个编译器阶段,然后将研究结果整合到计划文档中。

计划更新

在所有编译器遍中对某个主题进行深度研究,并更新计划文档。

参数:

  • $ARGUMENTS:<计划文档路径> <主题/问题>
  • 示例:compiler/docs/rust-port/rust-port-0001-babel-ast.md 作用域解析策略
  • 示例:compiler/docs/rust-port/rust-port-architecture.md 错误处理模式

说明

步骤 1:读取上下文

读取以下文件以了解当前状态:

  • $ARGUMENTS 中指定的计划文档
  • compiler/docs/rust-port/rust-port-architecture.md(架构指南和移植约定)
  • compiler/packages/babel-plugin-react-compiler/docs/passes/README.md(遍概述)

步骤 2:启动并行分析代理

使用 analyze-pass-impact 代理启动 8 个并行代理工具调用。每个代理分析一个阶段组。向每个代理传递 $ARGUMENTS 中的主题及其阶段对应的遍文档文件列表。

阶段组及其遍文档:

  1. Lowering 与 SSA(第 01-03 遍):

01-lower.md02-enterSSA.md03-eliminateRedundantPhi.md

  1. 优化与类型(第 04-06 遍):

04-constantPropagation.md05-deadCodeElimination.md06-inferTypes.md

  1. 函数与效果分析(第 07-09 遍):

07-analyseFunctions.md08-inferMutationAliasingEffects.md09-inferMutationAliasingRanges.md

  1. 响应性与作用域变量(第 10-14 遍):

10-inferReactivePlaces.md11-inferReactiveScopeVariables.md12-rewriteInstructionKindsBasedOnReassignment.md13-alignMethodCallScopes.md14-alignObjectMethodScopes.md

  1. 作用域对齐与终结器(第 15-20 遍):

15-alignReactiveScopesToBlockScopesHIR.md16-mergeOverlappingReactiveScopesHIR.md17-buildReactiveScopeTerminalsHIR.md18-flattenReactiveLoopsHIR.md19-flattenScopesWithHooksOrUseHIR.md20-propagateScopeDependenciesHIR.md

  1. 响应函数与变换(第 21-30 遍):

21-buildReactiveFunction.md22-pruneUnusedLabels.md23-pruneNonEscapingScopes.md24-pruneNonReactiveDependencies.md25-pruneUnusedScopes.md26-mergeReactiveScopesThatInvalidateTogether.md27-pruneAlwaysInvalidatingScopes.md28-propagateEarlyReturns.md29-promoteUsedTemporaries.md30-renameVariables.md

  1. 代码生成与优化(第 31、34-38 遍):

31-codegenReactiveFunction.md34-optimizePropsMethodCalls.md35-optimizeForSSR.md36-outlineJSX.md37-outlineFunctions.md38-memoizeFbtAndMacroOperandsInSameScope.md

  1. 验证遍(第 39-55 遍):

39-validateContextVariableLValues.md40-validateUseMemo.md41-validateHooksUsage.md42-validateNoCapitalizedCalls.md43-validateLocalsNotReassignedAfterRender.md44-validateNoSetStateInRender.md45-validateNoDerivedComputationsInEffects.md46-validateNoSetStateInEffects.md47-validateNoJSXInTryStatement.md48-validateNoImpureValuesInRender.md49-validateNoRefAccessInRender.md50-validateNoFreezingKnownMutableFunctions.md51-validateExhaustiveDependencies.md53-validatePreservedManualMemoization.md54-validateStaticComponents.md55-validateSourceLocations.md

每个代理的提示应如下所示:

分析主题“<主题>”如何影响以下编译器遍。

阅读以下每个遍的文档:compiler/packages/babel-plugin-react-compiler/docs/passes/ 及其实现源码。同时阅读 compiler/docs/rust-port/rust-port-architecture.md 了解移植约定。

要分析的遍文档:<遍文档文件名列表>

对于每个遍,报告:
- 遍名称和用途(一行)
- 影响程度:“无”、“轻微”(仅机械性更改)、“中等”(逻辑更改)或“重大”(需重新设计)
- 如果影响不是“无”:具体说明需要哪些更改的细节
- 实现中的关键代码位置(文件:行引用)

做到全面但简洁。关注具体影响,而非推测。

步骤 3:合并与更新

所有代理完成后:

  1. 将其发现合并为连贯的分析
  2. 按影响程度分组(重大 > 中等 > 轻微 > 无)
  3. 更新计划文档。最终状态应反映最新的发现和理解:
  • 就地更新计划文档,移除过时内容,描述最新理解。
  • 保留所有仍相关的现有内容
  • 移除过时或不再相关的内容
  • 按遍影响摘要表(就地更新,即根据新发现更新每个部分)
  • 对中等及以上影响的遍添加详细说明
  • 如有必要,更新“当前状态”或“剩余工作”部分

步骤 4:显示摘要

向用户展示简要的发现摘要:每个影响级别的遍数量,以及关键洞察。