# jscodeshift

Набор правил для написания и отладки кодмодов на jscodeshift: разбор AST, миграции кода, авторефакторинг.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 410 установок · ★ 218
- Автор: pproenca
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/pproenca/dot-skills/tree/HEAD/skills/.experimental/jscodeshift/SKILL.md
- Обновлён: 2026-08-15
- HTML: https://affpapa.org/nevibecode/skills/jscodeshift

## Что делает

Скилл собирает практики разработки кодмодов на jscodeshift, которые применяют в Facebook/Meta. Внутри 40 правил по 8 категориям, отсортированных по важности — от настройки парсера и обхода AST до продвинутых приёмов. У каждого правила есть объяснение, примеры и метрики влияния.

Категории идут с префиксами: `parser-`, `traverse-`, `filter-`, `transform-`, `codegen-`, `test-`, `runner-`, `advanced-`. Самое критичное — конфигурация парсера и паттерны обхода дерева, потому что ошибка здесь ломает весь трансформ. Дальше по убыванию: фильтрация узлов, сама трансформация, генерация кода, тесты, оптимизация раннера.

Правила лежат отдельными файлами в `references/`, есть шаблон для добавления новых и собранная версия в `AGENTS.md`. Скилл пригодится, когда трансформ падает на неожиданном синтаксисе или нужно ускорить прогон по большой кодовой базе.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill jscodeshift -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/jscodeshift/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/jscodeshift/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill jscodeshift -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/jscodeshift/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill jscodeshift -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/jscodeshift/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install pproenca/dot-skills jscodeshift
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/jscodeshift/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill jscodeshift -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/pproenca/dot-skills --path skills/.experimental/jscodeshift
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/jscodeshift/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add pproenca/dot-skills --skill jscodeshift -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/pproenca/dot-skills/tree/HEAD/skills/.experimental/jscodeshift/SKILL.md

## Когда брать
- написать кодмод для миграции устаревшего API
- разобраться, почему трансформ падает на неожиданном узле
- выбрать парсер под TypeScript или Flow
- убрать неиспользуемые импорты после замены кода
- проверить кодмод на краевых случаях до прогона по репозиторию

## Примеры запросов агенту
- помоги написать jscodeshift-кодмод, который заменит вызовы старого API
- почему мой трансформ падает на этом файле — разбери по правилам jscodeshift
- проверь этот кодмод на краевые случаи и подскажи тесты

## Похожие
- [ast-grep-find](https://affpapa.org/nevibecode/skills/ast-grep-find.md) — скилл · 518 установок
- [code-quality](https://affpapa.org/nevibecode/skills/zernie-code-quality.md) — скилл · 391 установка
- [coding-standards](https://affpapa.org/nevibecode/skills/coding-standards.md) — скилл · 5700 установок
- [dry-refactoring](https://affpapa.org/nevibecode/skills/dry-refactoring.md) — скилл · 3600 установок
- [command-pattern](https://affpapa.org/nevibecode/skills/command-pattern.md) — скилл · 645 установок
- [jscpd](https://affpapa.org/nevibecode/skills/jscpd.md) — скилл · 2600 установок

Из того же набора: [pproenca/dot-skills](https://affpapa.org/nevibecode/by/pproenca/dot-skills.md) — 45 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
