# RxJS Next Migration

Migrates RxJS 7 code to RxJS Next with a green baseline and a recorded contract.

- Repository: https://github.com/ReactiveX/rxjs (31714 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-08-08
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add ReactiveX/rxjs --skill rxjs-next-migration -g -a claude-code -y`
Codex: `npx skills add ReactiveX/rxjs --skill rxjs-next-migration -g -a codex -y`
Cursor: `npx skills add ReactiveX/rxjs --skill rxjs-next-migration -g -a cursor -y`
Gemini CLI: `npx skills add ReactiveX/rxjs --skill rxjs-next-migration -g -a gemini-cli -y`

## Description

Migrate an RxJS 7 application, library, or test suite to RxJS Next through an agent-led workflow that establishes a green behavioral baseline, makes Observable lifecycle choices explicit, uses @rxjs/migrate only for bounded fixture-proved rewrites, repairs without weakening evidence, and records a versioned migration contract. Use for repository assessment, migration planning or execution, lifecycle review, TestScheduler conversion, or migration closeout.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# RxJS 7 to RxJS Next migration

Treat this as reviewed project work, not a codemod run. The objective is an
intentional RxJS Next contract backed by the project's own build and behavior
evidence. A transformed file, a clean diff, or one passing test is not proof
that the migration is complete.

Work through all eight stages in order. Re-enter an earlier stage whenever new
evidence changes scope, coverage, or lifecycle intent. Keep the developer
involved at every explicit pause.

## Non-negotiable rules

- Read and obey repository-local instructions before acting. Protect existing
  work and stay within the authorized repository and paths.
- Establish the RxJS 7 baseline before changing dependencies or source.
- Never infer platform sharing versus producer-per-direct-subscription behavior
  from syntax, filenames, operator names, or a currently passing output.
- Use the installed engine's versioned registry and schemas as authority. Do
  not reconstruct capability mappings from this Skill or from memory.
- Run the deterministic engine without writes first. A refusal is a successful
  safety outcome, not permission to improvise a mechanical rewrite.
- Preserve the project's test framework by default. Select a framework adapter
  only when the developer asked for that separate conversion.
- Do not weaken, skip, delete, or replace a behavioral expectation merely to
  make the migrated suite green.
- Do not add RxJS 7 compatibility shims, string-named platform methods, local
  substitute operators, or runtime generators unless the developer separately
  authorizes that product work.
- Keep changes in small coherent batches. Review and verify each batch before
  widening the scope.
- Do not call a migration complete while a required command is unknown,
  unapproved, skipped, or red without an explicitly accepted blocker.

## Working record

The rest: https://github.com/ReactiveX/rxjs/blob/HEAD/packages/migrate/skill/SKILL.md
