# dx-code-analyzer-custom-rule-create

Скилл помогает создавать пользовательские правила для Salesforce Code Analyzer на базе Regex, PMD и ESLint. Пригодится, когда встроенных проверок кода Apex или метаданных недостаточно.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 4800 установок · ★ 1112
- Автор: forcedotcom
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/forcedotcom/sf-skills/tree/HEAD/skills/dx-code-analyzer-custom-rule-create/SKILL.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/skills/dx-code-analyzer-custom-rule-create

## Что делает

Скилл автоматизирует написание правил статического анализа для проектов Salesforce. Он покрывает текстовый поиск через регулярные выражения, структурные запросы XPath к дереву AST для Apex и метаданных в движке PMD, а также правила ESLint для LWC. Чтобы не допустить ошибок в синтаксисе AST, скилл требует обязательного вызова `sf code-analyzer ast-dump` перед составлением каждого XPath-выражения. Вслепую писать селекторы нельзя.

Запись настроек в `code-analyzer.yml` идёт строго через вспомогательные скрипты `create-regex-rule.js` и `create-pmd-rule.js`. Прямое ручное редактирование файла конфига запрещено из-за сбоев экранирования в YAML. Если проверка ломается, скилл полностью удаляет сбойный блок и перезапускает скрипт с исправленными параметрами. Это защищает разметку от повреждений.

Для работы в системе нужны `sf` версии от 2.0.0, `git` от 2.0.0, `node` от 18.0.0 и `npm` от 9.0.0. Ручная правка сгенерированного файла сразу ломает валидатор `sf code-analyzer rules`, поэтому доверять экранирование стоит только скриптам. Правила создаются и тестируются строго по очереди с обязательным прогоном позитивных и негативных примеров.

## Требования
- Работает с: Salesforce

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-custom-rule-create -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-custom-rule-create -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-custom-rule-create -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install forcedotcom/sf-skills dx-code-analyzer-custom-rule-create
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-custom-rule-create -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/forcedotcom/sf-skills --path skills/dx-code-analyzer-custom-rule-create
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-custom-rule-create -a opencode
```

### Claude.ai

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

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/forcedotcom/sf-skills/tree/HEAD/skills/dx-code-analyzer-custom-rule-create/SKILL.md

## Когда брать
- запретить вызовы `System.debug` в рабочем коде Apex через регулярные выражения
- найти захардкоженные идентификаторы записей Salesforce в классах
- составить XPath-запрос к AST для выявления нежелательных конструкций PMD
- проверить структуру метаданных XML на наличие опасных прав доступа
- переопределить пороги сложности вроде `CyclomaticComplexity`

## Примеры запросов агенту
- Создай правило Regex, запрещающее использование System.debug в Apex-классах
- Сделай PMD-правило на базе XPath для поиска SOQL-запросов внутри циклов for
- Напиши проверку метаданных, которая требует заполнения описаний полей

## Похожие
- [salesforce-apex-quality](https://affpapa.org/nevibecode/skills/salesforce-apex-quality.md) — скилл · 884 установки
- [salesforce-flow-design](https://affpapa.org/nevibecode/skills/salesforce-flow-design.md) — скилл · 839 установок
- [salesforce-development](https://affpapa.org/nevibecode/skills/mindrally-salesforce-development.md) — скилл · 659 установок
- [salesforce-apex-cursorrules-prompt-file](https://affpapa.org/nevibecode/rules/salesforce-apex-cursorrules-prompt-file.md) — правило · ★ 41011
- [create-hook](https://affpapa.org/nevibecode/skills/create-hook.md) — скилл · 1200 установок
- [shader-graph-create-custom-node](https://affpapa.org/nevibecode/skills/shader-graph-create-custom-node.md) — скилл · 5600 установок

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

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