codemod-react-pipeline
Guided, scripted pipeline for running JSX/TSX/React codemods safely across large legacy codebases. Use when you need to scaffold a codemod, dry-run it, validate its findings, and apply it across many files (50 to 100k+) without breaking the build. Walks the full inner/outer loop with the Codemod CLI (JSSG, ast-grep, workflows). Triggers on large-scale refactor, legacy React migration, codemod a prop/API change, migrate components across the codebase, run a codemod safely, batched/resumable codemod apply, dry-run a codemod.
How do I install this agent skill?
npx skills add https://github.com/pproenca/dot-skills --skill codemod-react-pipelineIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The 'Codemod React Pipeline' skill is a well-structured and safe automation workflow for managing React migrations at scale. It implements robust security practices such as mandatory dry-runs, validation gates, and batched application with git checkpoints to prevent codebase corruption. All external tool references are to well-known developer utilities.
- Socketwarn
1 alert: gptAnomaly
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
Codemod React Pipeline
A safe, repeatable workflow for applying JSX / TSX / React codemods to large legacy
codebases — from a 50-file rename to a 100k-file API migration. It composes the
Codemod CLI (JSSG, ast-grep, workflows) into an inner/outer loop and
gates every mass change behind a dry-run plus validation. For the why behind each rule it cites,
see the sibling codemod best-practices reference.
When to Apply
Use this skill when:
- You're migrating a pattern across a large React/TS codebase (component/prop rename, deprecated
API, import swap, hook migration) and a hand-run
codemod jssg run ./t.ts ./srcis too risky. - You need the change to land incrementally and reviewably — per-batch commits, resumable on failure, with the build/typecheck/tests green at every checkpoint.
- You want to see and validate the findings (what would change, and whether it's safe) before touching files at scale.
- The transform must be idempotent and proven so before mass apply.
Don't use it for a one-file edit, or a change better done by hand in a single PR.
Workflow Overview
00 plan ─▶ 01 scaffold ─▶ 02 inner loop ─▶ 03 dry-run ─▶ 04 validate ─▶ 05 batched apply ─▶ 06 verify
goal templates fixture tests preview gates per-batch final
+ blast (transform/ + 1-file trial + findings (idempotency, apply+verify+commit assertions
radius rule/wf/tests) report type/lint/test) (resumable)
│ │
└── sentinel ──── required by ──────┘
(on any failure: working tree reverted; fix and re-run — nothing committed yet)
| Step | Action | Tool / Script | Risk |
|---|---|---|---|
| 0 | Capture goal, classify transform, count blast radius | scripts/00-plan.sh | read-only |
| 1 | Scaffold transform + fixtures + workflow from templates | scripts/01-scaffold.sh | write (new files) |
| 2 | Fixture tests + single-file trial run (auto-reverted) | scripts/02-inner-loop.sh | read-only (reverts) |
| 3 | Preview changes; write findings report + dry-run sentinel | scripts/03-dry-run.sh | read-only (reverts) |
| 4 | Gate: idempotency, typecheck, lint, format, tests | scripts/04-validate-findings.sh | read-only (reverts) |
| 5 | Apply in resumable batches, verify + commit each | scripts/05-run-batched.sh | destructive (commits) |
| 6 | Final assertions over the whole migration | scripts/verify.sh | read-only |
A PreToolUse hook (hooks/hooks.json) blocks a broad codemod jssg run that lacks --dry-run
when no dry-run sentinel exists — so step 5 (or an ad-hoc apply) cannot skip steps 3–4.
Requirements
- Codemod CLI —
npm i -g codemod(or the scripts fall back tonpx codemod). Providesjssg run/testandworkflow run/validate/resume/status. - git — the pipeline requires a clean tree and makes per-batch checkpoint commits.
- jq — the scripts read
config.jsonwith it. - Your project's gate tooling — TypeScript, ESLint, Prettier, a test runner (whichever gates
you enable in
config.json).
Setup
Edit config.json for the target repo (see each field's _setup_instructions):
src_globs: the files the codemod may touch (scopes blast radius + gates)language:tsx|jsx|typescript|javascripttypecheck_cmd/lint_cmd/format_cmd/test_cmd: gate commands (empty disables a gate)batch_size: files per checkpoint in the outer loopgates: per-gate on/off toggles
Add your state_dir (default .codemod-pipeline) to the target repo's .gitignore.
Quick Reference
| Script | Purpose |
|---|---|
scripts/00-plan.sh "<goal>" [name] | Plan + blast-radius estimate |
scripts/01-scaffold.sh <name> [--rule] | Scaffold a JSSG transform (or ast-grep rule) |
scripts/02-inner-loop.sh <name> [--watch|--file P|-u] | Tight loop: fixture tests / 1-file trial |
scripts/03-dry-run.sh <name> [--sample N] | Preview; write findings + sentinel |
scripts/04-validate-findings.sh <name> | Run validation gates |
scripts/05-run-batched.sh <name> [--batch-size N|--dry] | Resumable batched apply + commits |
scripts/verify.sh <name> | Final sign-off assertions |
scripts/selftest.sh | Self-test this skill's scripts/assets |
How to Use
- From the target repo root, run
00-plan.sh "<goal>"and read the generatedplan.md. 01-scaffold.sh <name>, then implementcodemods/<name>/transform.tsand its fixtures.- Iterate with
02-inner-loop.sh <name> --watchuntil fixtures pass; try--file <path>on a real file. 03-dry-run.sh <name>and read the findings report; then04-validate-findings.sh <name>.- Only after gates pass:
05-run-batched.sh <name>(resume by re-running it after any fix). verify.sh <name>to confirm the migration is complete and idempotent.
See references/workflow.md for per-step inputs, outputs, failure handling, and rollback; references/inner-outer-loop.md for the mental model; and references/safety-and-scale.md for batching and rollback at 100k-file scale.
Gotchas
See gotchas.md. The big ones: workflow commit: checkpoints are cloud-only (the
pipeline commits locally instead); always exclude generated/vendored trees; and design for
idempotency from the first line.
Related Skills
codemod— the best-practices reference (48 rules) this pipeline operationalizes. Steps here cite specific rules (e.g.test-run-on-subset-first,state-use-for-resumability,pattern-ensure-idempotency,security-minimize-capabilities).
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/pproenca/dot-skills/codemod-react-pipeline">View codemod-react-pipeline on skillZs</a>