extract-errors
Use when adding new error messages to React, or seeing "unknown error code" warnings.
Orchestrate the Rust compiler port end-to-end. Discovers the current frontier, fixes failing passes, ports new passes, reviews, and commits in a loop.
$ npx -y skills add facebook/react --skill compiler-orchestrator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/compiler-orchestratorContext preview
The summary Claude sees to decide when to auto-load this skill.
Orchestrate the Rust compiler port end-to-end. Discovers the current frontier, fixes failing passes, ports new passes, reviews, and commits in a loop.
name: compiler-orchestrator description: Orchestrate the Rust compiler port end-to-end. Discovers the current frontier, fixes failing passes, ports new passes, reviews, and commits in a loop.
Automatically drive the Rust compiler port forward by discovering the current state, fixing failures, porting new passes, reviewing, and committing — in a continuous loop.
Arguments:
These are the passes in Pipeline.ts order, with their exact log names:
| # | Log Name | Kind | Notes | |---|----------|------|-------| | 1 | HIR | hir | | | 2 | PruneMaybeThrows | hir | Validation: validateContextVariableLValues, validateUseMemo after | | 3 | DropManualMemoization | hir | Conditional | | 4 | InlineImmediatelyInvokedFunctionExpressions | hir | | | 5 | MergeConsecutiveBlocks | hir | | | 6 | SSA | hir | | | 7 | EliminateRedundantPhi | hir | | | 8 | ConstantPropagation | hir | | | 9 | InferTypes | hir | Validation: validateHooksUsage, validateNoCapitalizedCalls after (conditional) | | 10 | OptimizePropsMethodCalls | hir | | | 11 | AnalyseFunctions | hir | | | 12 | InferMutationAliasingEffects | hir | | | 13 | OptimizeForSSR | hir | Conditional: outputMode === 'ssr' | | 14 | DeadCodeElimination | hir | | | 15 | PruneMaybeThrows (2nd) | hir | Reuses existing fn, just needs 2nd call + log in pipeline.rs | | 16 | InferMutationAliasingRanges | hir | Validation block (8 validators) after (conditional) | | 17 | InferReactivePlaces | hir | Validation: validateExhaustiveDependencies after (conditional) | | 18 | RewriteInstructionKindsBasedOnReassignment | hir | Validation: validateStaticComponents after (conditional) | | 19 | InferReactiveScopeVariables | hir | Conditional: enableMemoization | | 20 | MemoizeFbtAndMacroOperandsInSameScope | hir | | | -- | outlineJSX | hir | Between #20 and #21, conditional: enableJsxOutlining, no log entry | | 21 | NameAnonymousFunctions | hir | Conditional | | 22 | OutlineFunctions | hir | Conditional | | 23 | AlignMethodCallScopes | hir | | | 24 | AlignObjectMethodScopes | hir | | | 25 | PruneUnusedLabelsHIR | hir | | | 26 | AlignReactiveScopesToBlockScopesHIR | hir | | | 27 | MergeOverlappingReactiveScopesHIR | hir | | | 28 | BuildReactiveScopeTerminalsHIR | hir | | | 29 | FlattenReactiveLoopsHIR | hir | | | 30 | FlattenScopesWithHooksOrUseHIR | hir | | | 31 | PropagateScopeDependenciesHIR | hir | | | 32 | BuildReactiveFunction | reactive | | | 33 | AssertWellFormedBreakTargets | debug | Validation | | 34 | PruneUnusedLabels | reactive | | | 35 | AssertScopeInstructionsWithinScopes | debug | Validation | | 36 | PruneNonEscapingScopes | reactive | | | 37 | PruneNonReactiveDependencies | reactive | | | 38 | PruneUnusedScopes | reactive | | | 39 | MergeReactiveScopesThatInvalidateTogether | reactive | | | 40 | PruneAlwaysInvalidatingScopes | reactive | | | 41 | PropagateEarlyReturns | reactive | | | 42 | PruneUnusedLValues | reactive | | | 43 | PromoteUsedTemporaries | reactive | | | 44 | ExtractScopeDeclarationsFromDestructuring | reactive | | | 45 | StabilizeBlockIds | reactive | | | 46 | RenameVariables | reactive | | | 47 | PruneHoistedContexts | reactive | | | 48 | ValidatePreservedManualMemoization | debug | Conditional | | 49 | Codegen | ast | |
Validation passes (no log entries, tested via CompileError/CompileSkip events):
Maintain a log file at `compiler/docs/rust-port/rust-port-orchestrator-log.md` that tracks all progress.
# Status HIR: complete (1717/1717) PruneMaybeThrows: complete (1717/1717) DropManualMemoization: complete (1717/1717) ... AnalyseFunctions: partial (1700/1717) InferMutationAliasingEffects: todo ... # Logs ## 20260318-143022 Port AnalyseFunctions pass Ported AnalyseFunctions from TypeScript to Rust. Added new crate react_compiler_analyse_functions. 1700/1717 tests passing, 17 failures in edge cases with nested functions. ## 20260318-141500 Fix SSA phi node ordering Fixed phi node operand ordering in SSA pass that caused 3 test failures. All 1717 tests now passing through OptimizePropsMethodCalls.
The `# Status` section lists every pass from #1 to #49 with one of:
Update the Status section after every test run to reflect the latest results.
Add a new log entry (below the most recent one, so newest entries are at the bottom) whenever:
Entry format: `## YYYYMMDD-HHMMSS <short-summary>` followed by 1-3 lines describing what changed.
Use the current timestamp when creating entries. Get it via `date '+%Y%m%d-%H%M%S'`.
On first run, if the log file doesn't exist, create it with the Status section populated from the current state (read pipeline.rs and run tests to determine pass statuses).
**Main context role**: The main context is ONLY an orchestration loop. It parses subagent results, updates the orchestrator log, prints status, and launches the next subagent. The main context MUST NOT read source code, investigate failures, debug issues, or make edits directly. ALL implementation work — fixing, port
React is a JavaScript library for building user interfaces. Declarative: React makes it painless to create interactive UIs.
Repo: facebook/react
Use when adding new error messages to React, or seeing "unknown error code" warnings.
Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or adding new flags to React.
Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.
Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release channels.
Use when you need to run Flow type checking, or when seeing Flow type errors in React code.
Use when you need to run tests for React core. Supports source, www, stable, and experimental channels.