返回全部 Skills

plan-update

研究分析

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

2

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

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

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

skill.md

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

计划更新

在所有编译器遍(pass)中深度研究一个主题,并更新计划文档。

参数:

  • $ARGUMENTS: <plan-doc-path> <topic/question>
  • 示例:compiler/docs/rust-port/rust-port-0001-babel-ast.md scope resolution strategy
  • 示例:compiler/docs/rust-port/rust-port-architecture.md error handling patterns

指令

步骤 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. 降级与 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

每个智能体提示应如下:

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

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

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

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

请做到全面但简洁。聚焦于具体影响,而非推测。

步骤 3:整合并更新

在所有智能体完成后:

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

步骤 4:展示摘要

向用户展示简要的发现摘要:每个影响级别有多少个遍受影响,以及关键见解。