Skip to content
Development
Skill

/compiler-orchestrator

Orchestrate the Rust compiler port end-to-end. Discovers the current frontier, fixes failing passes, ports new passes, reviews, and commits in a loop.

From plugin
react
252k14 skills4 agents

Claude Code

$ npx -y skills add react/react --skill compiler-orchestrator --agent claude-code

SKILL.md

compiler-orchestrator.SKILL.md
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.

Compiler Orchestrator

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:

  • $ARGUMENTS: Optional. A pass name to start from, or `status` to just report current state without acting.

Pass Order Reference

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):

  • After PruneMaybeThrows (#2): validateContextVariableLValues, validateUseMemo
  • After InferTypes (#9): validateHooksUsage, validateNoCapitalizedCalls (conditional)
  • After InferMutationAliasingRanges (#16): 8 validators (conditional)
  • After InferReactivePlaces (#17): validateExhaustiveDependencies (conditional)
  • After RewriteInstructionKindsBasedOnReassignment (#18): validateStaticComponents (conditional)
  • After PruneHoistedContexts (#45): validatePreservedManualMemoization (conditional)
  • After Codegen (#46): validateSourceLocations (conditional)

Orchestrator Log

Maintain a log file at `compiler/docs/rust-port/rust-port-orchestrator-log.md` that tracks all progress.

Log file format

# 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.

Status section

The `# Status` section lists every pass from #1 to #49 with one of:

  • `complete (N/N)` — all tests passing through this pass
  • `partial (passed/total)` — some test failures remain
  • `todo` — not yet ported

Update the Status section after every test run to reflect the latest results.

Log entries

Add a new log entry (below the most recent one, so newest entries are at the bottom) whenever:

  • A pass is newly ported
  • Test failures are fixed
  • A commit is made

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'`.

Initialization

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).

Core Loop

**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

Read more
@facebook
Ships withreact

React is a JavaScript library for building user interfaces. Declarative: React makes it painless to create interactive UIs.

252k14 skills4 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
252.5k
Star history of facebook/react on GitHub, a chart by star-history.com

Other skills on react.

extract-errors

extract-errors

Use when adding new error messages to React, or seeing "unknown error code" warnings.

@facebook@facebookInstall Skill
feature-flags

feature-flags

Use when feature flag tests fail, flags need updating, understanding @gate pragmas, debugging channel-specific test failures, or…

@facebook@facebookInstall Skill
fix

fix

Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.

@facebook@facebookInstall Skill
flags

flags

Use when you need to check feature flag states, compare channels, or debug why a feature behaves differently across release…

@facebook@facebookInstall Skill
flow

flow

Use when you need to run Flow type checking, or when seeing Flow type errors in React code.

@facebook@facebookInstall Skill
test

test

Use when you need to run tests for React core. Supports source, www, stable, and experimental channels.

@facebook@facebookInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
act-on-feedback

act-on-feedback

Act on user feedback attached to the current session. Use when the user submits feedback on the session's changes via the Submit…

vscodetoday195k
@microsoft@microsoftInstall Skill

Questions about compiler-orchestrator.

Which coding agents can use compiler-orchestrator?
compiler-orchestrator installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.