plan-update

Par facebook · react

À utiliser lorsque vous devez mettre à jour un document de plan avec une recherche approfondie sur tous les passes du compilateur. Lance des sous-agents parallèles pour analyser l'impact d'un sujet sur chaque phase du compilateur, puis consolide les résultats dans le document de plan.

npx skills add https://github.com/facebook/react --skill plan-update

Mise à jour du plan

Approfondir un sujet à travers tous les passes du compilateur et mettre à jour un document de plan.

Arguments :

  • $ARGUMENTS : <plan-doc-path> <topic/question>
    • Exemple : compiler/docs/rust-port/rust-port-0001-babel-ast.md stratégie de résolution de portée
    • Exemple : compiler/docs/rust-port/rust-port-architecture.md modèles de gestion d'erreur

Instructions

Étape 1 : Lire le contexte

Lire ces fichiers pour comprendre l'état actuel :

  • Le document de plan spécifié dans $ARGUMENTS
  • compiler/docs/rust-port/rust-port-architecture.md (guide d'architecture et conventions de port)
  • compiler/packages/babel-plugin-react-compiler/docs/passes/README.md (vue d'ensemble des passes)

Étape 2 : Lancer des agents d'analyse en parallèle

Lancer 8 appels d'agents parallèles en utilisant l'agent analyze-pass-impact. Chaque agent analyse un groupe de phases. Passer à chaque agent le sujet de $ARGUMENTS et la liste des fichiers de documentation de pass pour sa phase.

Groupes de phases et leurs documentations de pass :

  1. Lowering & SSA (passes 01-03) : 01-lower.md, 02-enterSSA.md, 03-eliminateRedundantPhi.md

  2. Optimization & Types (passes 04-06) : 04-constantPropagation.md, 05-deadCodeElimination.md, 06-inferTypes.md

  3. Function & Effect Analysis (passes 07-09) : 07-analyseFunctions.md, 08-inferMutationAliasingEffects.md, 09-inferMutationAliasingRanges.md

  4. Reactivity & Scope Variables (passes 10-14) : 10-inferReactivePlaces.md, 11-inferReactiveScopeVariables.md, 12-rewriteInstructionKindsBasedOnReassignment.md, 13-alignMethodCallScopes.md, 14-alignObjectMethodScopes.md

  5. Scope Alignment & Terminals (passes 15-20) : 15-alignReactiveScopesToBlockScopesHIR.md, 16-mergeOverlappingReactiveScopesHIR.md, 17-buildReactiveScopeTerminalsHIR.md, 18-flattenReactiveLoopsHIR.md, 19-flattenScopesWithHooksOrUseHIR.md, 20-propagateScopeDependenciesHIR.md

  6. Reactive Function & Transforms (passes 21-30) : 21-buildReactiveFunction.md, 22-pruneUnusedLabels.md, 23-pruneNonEscapingScopes.md, 24-pruneNonReactiveDependencies.md, 25-pruneUnusedScopes.md, 26-mergeReactiveScopesThatInvalidateTogether.md, 27-pruneAlwaysInvalidatingScopes.md, 28-propagateEarlyReturns.md, 29-promoteUsedTemporaries.md, 30-renameVariables.md

  7. Codegen & Optimization (passes 31, 34-38) : 31-codegenReactiveFunction.md, 34-optimizePropsMethodCalls.md, 35-optimizeForSSR.md, 36-outlineJSX.md, 37-outlineFunctions.md, 38-memoizeFbtAndMacroOperandsInSameScope.md

  8. Validation Passes (passes 39-55) : 39-validateContextVariableLValues.md, 40-validateUseMemo.md, 41-validateHooksUsage.md, 42-validateNoCapitalizedCalls.md, 43-validateLocalsNotReassignedAfterRender.md, 44-validateNoSetStateInRender.md, 45-validateNoDerivedComputationsInEffects.md, 46-validateNoSetStateInEffects.md, 47-validateNoJSXInTryStatement.md, 48-validateNoImpureValuesInRender.md, 49-validateNoRefAccessInRender.md, 50-validateNoFreezingKnownMutableFunctions.md, 51-validateExhaustiveDependencies.md, 53-validatePreservedManualMemoization.md, 54-validateStaticComponents.md, 55-validateSourceLocations.md

Le prompt de chaque agent doit être :

Analyser comment le sujet « <topic> » affecte les passes du compilateur suivantes.

Lire la documentation de chaque pass dans compiler/packages/babel-plugin-react-compiler/docs/passes/ et son implémentation source. Lire également compiler/docs/rust-port/rust-port-architecture.md pour les conventions de port.

Documentations de pass à analyser : <liste des noms de fichiers de doc de pass>

Pour chaque pass, signaler :
- Nom et objectif du pass (1 ligne)
- Impact : « none », « minor » (changements mécaniques uniquement), « moderate » (changements logiques), ou « significant » (redesign nécessaire)
- Si l'impact n'est pas « none » : détails spécifiques des changements nécessaires
- Emplacements clés du code dans l'implémentation (références fichier:ligne)

Soyez thorough mais concis. Concentrez-vous sur les impacts concrets, pas sur la spéculation.

Étape 3 : Consolider et mettre à jour

Après que tous les agents se terminent :

  1. Fusionner leurs conclusions dans une analyse cohérente
  2. Grouper par niveau d'impact (significant > moderate > minor > none)
  3. Mettre à jour le document de plan. L'état final doit refléter les dernières conclusions et la compréhension actuelle :
    • Mettre à jour le document de plan sur place pour supprimer le contenu obsolète et décrire la dernière compréhension.
    • CONSERVER tout contenu existant qui reste pertinent
    • SUPPRIMER le contenu obsolète ou devenu non pertinent
    • Tableau récapitulatif de l'impact par pass (mis à jour sur place, c.-à-d. mettre à jour chaque section en fonction des nouvelles conclusions)
    • Notes détaillées pour les passes avec un impact modéré ou plus
    • Section « Statut actuel » ou « Travail restant » mise à jour si applicable

Étape 4 : Afficher le résumé

Afficher à l'utilisateur un bref résumé des conclusions : combien de passes sont affectées à chaque niveau, et les principaux constats.

Skills similaires